feat(projects): support multiple repositories - #4671
Conversation
Add an owner-authored project event that groups NIP-34 repositories while preserving standalone repositories as legacy single-repository projects.
Load grouped project announcements throughout the desktop experience and keep Git operations scoped to the selected repository. Preserve legacy single-repository projects while adding shareable repository selection and end-to-end coverage.
Publish the project grouping alongside its initial NIP-34 repository and make partial-write retries idempotent. Add protocol validation and end-to-end coverage for accepted, rejected, and lost-acknowledgement paths.
Add repository selection and creation within projects, expose repository-level activity, and preserve usability when connected relays lack project announcement support.
…-projects Signed-off-by: Thomas Petersen <thomasp@squareup.com>
Resolve Inbox work against its owning repository so project navigation and canonical PR or issue actions remain correctly scoped after the model merge. Signed-off-by: Thomas Petersen <thomasp@squareup.com>
Preserve repository-aware project routing while incorporating current main behavior and test selectors. Signed-off-by: Thomas Petersen <thomasp@squareup.com>
Keep pull request attribution compact while distinguishing people from agents without obscuring repository context. Signed-off-by: Thomas Petersen <thomasp@squareup.com>
Distinguish Buzz-hosted repositories from linked GitHub repositories, provide a safe local clone flow for public GitHub remotes, and replace misleading empty states with actionable availability feedback. Signed-off-by: Thomas Petersen <thomasp@squareup.com>
Pass the parent project through repository detail views and normalize repository-only filters when returning to project lists. Signed-off-by: Thomas Petersen <thomasp@squareup.com>
…-projects Signed-off-by: Thomas Petersen <thomasp@squareup.com>
Keep the Node configuration free of an obsolete TypeScript diagnostic now that process is typed. Signed-off-by: Thomas Petersen <thomasp@squareup.com>
Point the shared Xcode scheme at the Buzz application product name. Signed-off-by: Thomas Petersen <thomasp@squareup.com>
Reuse the compact avatar and identity-only tooltip across issue and pull-request rows so work-item authors render consistently. Signed-off-by: Thomas Petersen <thomasp@squareup.com>
…-projects Signed-off-by: Thomas Petersen <thomasp@squareup.com>
Signed-off-by: Thomas Petersen <thomasp@squareup.com>
Bring issue conversations to pull-request timeline parity while keeping rapid comments ordered safely. Signed-off-by: Thomas Petersen <thomasp@squareup.com>
Preserve both project kind names while integrating the latest CLI and git transport changes. Signed-off-by: Thomas Petersen <thomasp@squareup.com>
Use the finalized project contract and exhaustive secure folding so multi-repository projects remain complete without allowing grouping metadata to hide repositories. Signed-off-by: Thomas Petersen <thomasp@squareup.com>
…-projects Signed-off-by: Thomas Petersen <thomasp@squareup.com>
Let project owners group repositories that already exist while retaining the current create-and-add flow and NIP-MP ownership boundaries. Signed-off-by: Thomas Petersen <thomasp@squareup.com>
Bind project repositories to explicit access channels, reuse project data efficiently, and retain privacy-safe activation context on agent-authored Git activity. Signed-off-by: Thomas Petersen <thomasp@squareup.com>
Centralize the paired session and Git attribution environment updates so the managed-agent runtime stays within its enforced file-size ceiling. Signed-off-by: Thomas Petersen <thomasp@squareup.com>
…-projects Signed-off-by: Thomas Petersen <thomasp@squareup.com>
Keep the shared provider payload contract synchronized with the privacy-safe Git attribution environment. Signed-off-by: Thomas Petersen <thomasp@squareup.com>
Update project smoke assertions for provenance, repository hosts, and multi-repository layouts while keeping repository cards visually consistent. Signed-off-by: Thomas Petersen <thomasp@squareup.com>
|
🤖 Screenshots of the multi-repository project flows (captured from this branch against the E2E mock relay). One project, multiple repositoriesThe Projects list shows the Repository picker inside a projectThe project header carries a repository picker listing every repository in the project. The active repository drives the Files/Commits/Issues/PR tabs. Switching the active repositorySelecting Adding repositories to a projectThe Create with an access channelNew repositories are bound to an access channel at creation time (members of the channel get Git access), fixing the earlier "repository not initialized" failure mode. Attach an existing repositoryStandalone repositories (here Four repositories under one projectAfter creating |







Summary
Test plan
main