Conversation
The `repositories[].managed` field and the `--no-managed` sync flag exist in the CLI but appear nowhere on the docs site. - reference/configuration: add a Managed Repositories section covering the full mode table (omitted/false, "clone", true/"sync"), the source/repo requirement, and the pull-skip conditions - reference/cli: document `--no-managed` and correct the update flag table, which listed a `--client` flag removed from workspace sync in #248 and omitted `--force`, `--verbose`, and `--no-managed` - guides/workspaces: explain the managed vs unmanaged ownership split and the CI case that motivated it Closes #362
Deploying allagents with
|
| Latest commit: |
ce6f03d
|
| Status: | ✅ Deploy successful! |
| Preview URL: | https://c1547df4.allagents.pages.dev |
| Branch Preview URL: | https://docs-362-managed-repo-field.allagents.pages.dev |
`repositories[].branch` was validated by RepositorySchema and published in the v1 JSON schema, but never appeared in any documentation, so it is renamed rather than deprecated. `ref` matches the `ref` field already used by plugin entries for the same concept. RepositorySchema is not strict, so renaming alone would have silently stripped a stale `branch` key — quietly moving a pinned checkout back to the default branch with no error. The key is now declared as `never` with a migration message so old configs fail loudly, and the published schemas annotate it as removed for editor validation. Closes #362
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Closes #362.
Two commits:
faf36cf— document themanagedfield and--no-managedflag, which existed in the CLI but on no page of the docs site.ce6f03d— breaking: renamerepositories[].branchtorepositories[].ref.Why the rename
repositories[].branchwas validated byRepositorySchemaand published in thev1JSON schema, but it never appeared in any documentation — the docs PR in this branch was about to be the first prose description of it. It is renamed rather than deprecated.It also collided with an existing, documented name for the same concept:
plugins[].refalready means "tag or branch" (workspace-config.ts:138,configuration.mdx:437). Newer code already normalizes URL-parsed branches intoref(skill-update.ts:362);repositories[]was the last holdout.branchnever fit the use case anyway. Verified against real git:git clone --branch v1.0.0 <url>git clone --branch <full-sha> <url>fatal: Remote branch … not found in upstream originsimple-gitstatus()on that tag checkoutcurrent: "HEAD"git pullon detached HEADYou are not currently on a branch.So
branchcould only express a movable pointer, never a pinned revision.refnow names a branch or tag, matching plugin entries.Why a bare rename would have been a silent break
RepositorySchemais not strict, so replacing the key outright strips a stale one with no error:A user with
branch: release-1.xwould have silently started cloning the default branch. So the removed key is declared asneverwith a migration message:That produces a precise runtime error and
{"description": "Renamed to 'ref'", "not": {}}in both published schemas, so editor validation flags the removed key too.Surface
repositories[].branchhad exactly two consumers (managed-repos.ts:155,168) and zero writers —refis not accepted elsewhere on repository entries. Changes:src/models/workspace-config.ts—refplus theneverguardsrc/core/managed-repos.ts— param rename, call sites, and a note that a tag ref leaves the checkout detached so pull is skipped rather than run against the wrong revisiondocs/public/schemas/v1/*.json— regenerated (bun run schema:generate)tests/—refaccepted and preserved; removedbranchrejected with the message; newmanaged-repos-ref.test.tscaptures the git-client boundary to proverefreachesclone --branchand the pull comparisonref, with a migration noteVerification
Built CLI against a temp workspace, real exit codes:
allagents update --no-managedref: release-1.xbranch: release-1.xRendered
docs/distchecked, not just source: the Managed Repositories section usesrefin every example, with no stalebranch:left in either page, and the publishedrefproperty is{"type":"string"}.Known gap this surfaced (pre-existing, not fixed here)
allagents updateexits 1 for a project-config validation failure without printing the reason — the multi-pass path only collects thrown errors, whilesyncWorkspacereturns afailedSyncResultfor parse failures (sync.ts:2953-2959). Confirmed pre-existing: a repository entry missingpathbehaves identically.allagents statusprints the message correctly. Worth a separate issue; fixing it here would change failure output for every validation error, well beyond this rename.Migration
Rename
branch:toref:inrepositories[]. Nothing else changes;managed,source, andrepoare untouched.