feat(projects): finish multi-repository workspace flows - #6602
Conversation
81ee2e0 to
20dbe5a
Compare
Cassandra adversarial/security review — needs workReviewed exact diff P1 — A repository signer can cause a project owner to enroll the signer's repository (confidence: 100)Evidence:
Trigger scenario: Mallory publishes her own valid kind Required direction: restore an authorization proof before absorption/healing (same owner or project owner named as repo maintainer), or never auto-sign inferred membership. P1 — A forged project-channel claim can redirect channel-created issues into an attacker's repository (confidence: 100)Evidence:
Trigger scenario: Mallory publishes a listed kind Required direction: retain the authoritative project↔repo join and reject ambiguous claims; a project announcement alone must not prove ownership of an arbitrary channel. P1 — Every post-create validation/publish failure leaves an unlinked channel behind (confidence: 100)Evidence:
Trigger scenario: the cached project is stale, the live-head fetch times out, the relay rejects kind Required direction: preflight before creation and compensate by deleting the channel on every failure before successful project binding (including cleanup-failure reporting). Coverage / residual riskChecked security and adversarial lenses over: trust boundaries in unsigned/signed project↔repo inference, channel-to-repo issue routing, concurrent project mutation, partial-failure cleanup, agent owner-control publication, and project creation ordering. I did not exercise a live relay/Desktop workflow at this exact head, so there may be additional UI/runtime failures in the ~4.1k-line PR; the three defects above are code-verifiable and do not depend on runtime behavior. |
Complete project-home defaults, category-specific creation, responsive grouping, and project-wide task and commit views across every repository. Signed-off-by: Thomas Petersen <thomasp@squareup.com> Co-authored-by: Thomas Petersen <thomasp@squareup.com>
Give project workspace sheets explicit auxiliary priority so Tasks, Reviews, Commits, Files, and People remain accessible without discarding an open conversation thread. Signed-off-by: Thomas Petersen <thomasp@squareup.com> Co-authored-by: Thomas Petersen <thomasp@squareup.com>
Make workspace-sheet precedence independent of whether the active thread uses a focus drawer, split pane, or narrow auxiliary layout. Signed-off-by: Thomas Petersen <thomasp@squareup.com> Co-authored-by: Thomas Petersen <thomasp@squareup.com>
Suppress the browser-default outline on the programmatically focused drawer while retaining focus indicators on its interactive controls. Signed-off-by: Thomas Petersen <thomasp@squareup.com> Co-authored-by: Thomas Petersen <thomasp@squareup.com>
Route non-DM sidebar icons through the shared channel glyph so project-home channels render with their project folder mark. Signed-off-by: Thomas Petersen <thomasp@squareup.com> Co-authored-by: Thomas Petersen <thomasp@squareup.com>
Collapse the context rail before a workspace drawer enters so the sheet keeps a fixed width, and hide the sidebar-style resize guide without removing resizing. Signed-off-by: Thomas Petersen <thomasp@squareup.com> Co-authored-by: Thomas Petersen <thomasp@squareup.com>
Use the stateful drawer affordance in both wide and narrow Projects layouts so context controls match the rest of the project surfaces. Signed-off-by: Thomas Petersen <thomasp@squareup.com> Co-authored-by: Thomas Petersen <thomasp@squareup.com>
Co-authored-by: Thomas Petersen <thomasp@squareup.com> Signed-off-by: Thomas Petersen <thomasp@squareup.com>
047395e to
19fe55e
Compare
Gauge review — correctness / testing / reliability — PR #6602 (pt7)Reviewed exact head Verdict: needs-work (blocked on F1 rebase; F2 is the one code finding I'd fix before merge)F1 — P1, confidence 100 — Stale base ancestry: PR is CONFLICTING and missing three pt6 fixesSame mechanism as earlier parts of this stack. #6600 was squash-merged into shared base
F2 — P2, confidence 75 — Aggregated Commits panel silently masks per-repository failures once any repository has commits
but the failure presentation is only reachable inside the empty branch: Trace: project with repos A (loads, has commits) and B (fails — relay down, clone URL missing). F3 — P2, confidence 75 — Canvas-seeding branch has no test that would fail if it were wrongNew branching in The only unit test ( F4 — P2, confidence 75 — Multi-repository commit aggregation (merge/sort/attribution) is untested
F5 — P2, confidence 75 —
|
Co-authored-by: Wrench <0eabe6ea5758c1e4c5b68cea4ac42b32c479072883cb28da8110b4a47c32b9a1@buzz.block.builderlab.xyz> Signed-off-by: Wrench <0eabe6ea5758c1e4c5b68cea4ac42b32c479072883cb28da8110b4a47c32b9a1@buzz.block.builderlab.xyz>
Cassandra adversarial/security re-review — head
|
Co-authored-by: Wrench <0eabe6ea5758c1e4c5b68cea4ac42b32c479072883cb28da8110b4a47c32b9a1@buzz.block.builderlab.xyz> Signed-off-by: Wrench <0eabe6ea5758c1e4c5b68cea4ac42b32c479072883cb28da8110b4a47c32b9a1@buzz.block.builderlab.xyz>
Cassandra adversarial/security re-review — head
|
Gauge re-review — PR #6602 at exact head
|
Co-authored-by: Wrench <0eabe6ea5758c1e4c5b68cea4ac42b32c479072883cb28da8110b4a47c32b9a1@buzz.block.builderlab.xyz> Signed-off-by: Wrench <0eabe6ea5758c1e4c5b68cea4ac42b32c479072883cb28da8110b4a47c32b9a1@buzz.block.builderlab.xyz>
Gauge review — round 3 at exact head
|
c5f60a2
into
projects-channel-first-pt5-navigation-requests
Summary
This is the final part of the channel-first Projects stack, based on #6600.
Testing
Post-Deploy Monitoring & Validation