Skip to content

feat(cli): add disconnect and allocate GitHub checkouts by repository identity - #21

Merged
ggordonhall merged 3 commits into
mainfrom
feat/disconnect-and-repository-identity
Sep 15, 2026
Merged

ggordonhall merged 3 commits into
mainfrom
feat/disconnect-and-repository-identity

Conversation

@ggordonhall

Copy link
Copy Markdown
Collaborator

Summary

Focused Context Tree changes required by OpenTag's per-Agent Context Tree settings, plus the 0.1.15 release preparation.

  • disconnect — new idempotent command that removes only a project's stored connection, preserving the tree and repository. It validates neither the tree nor its contents, so it also cleans up setup-project records after a successful create.
  • GitHub checkout identity — connect OWNER/REPO allocates a managed name derived from the full repository identity, so equal repository names under different owners never share a directory, and reuses an existing checkout only after its verified origin matches.
  • Error classification — connect and publish now report GITHUB_PERMISSION for clear permission denials and GITHUB_AUTH for authentication failures instead of collapsing both into a generic incomplete result.

Documentation

  • README and docs/specification.md cover disconnect, GITHUB_PERMISSION, and identity-based allocation.
  • The retired opentag context-tree connect instructions are replaced with the per-Agent Agent settings → Context Tree flow.

Release

package.json is prepared at 0.1.15, which also brings main level with the newest published tag (0.1.14, which main was behind).

Verification

On this branch:

  • pnpm check — pass
  • pnpm typecheck — pass
  • pnpm test — 13 files, 203 tests pass
  • pnpm check:package — pass

OpenTag's pinned dependency is updated separately once 0.1.15 is published.

… identity

Add an idempotent `disconnect` command that removes only a project's stored
connection while preserving its tree and repository, including setup-project
records after a successful create.

Allocate GitHub checkouts under a name derived from the full OWNER/REPO
identity so equal repository names under different owners never share a
directory, and reuse an existing checkout only after verifying its origin.
Classify GitHub authentication and permission failures during connect and
publish as GITHUB_AUTH and GITHUB_PERMISSION instead of a generic incomplete
result.
Document the new `disconnect` command and the GITHUB_PERMISSION code, describe
identity-based GitHub checkout allocation, and replace the retired
`opentag context-tree connect` instructions with the per-Agent Context Tree
settings flow.
@ggordonhall
ggordonhall merged commit 31fccc1 into main Sep 15, 2026
3 checks passed
@ggordonhall
ggordonhall deleted the feat/disconnect-and-repository-identity branch September 15, 2026 08:52
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant