Skip to content

🚑 fix: sdk: run extension updates through the target version - #397

Merged
pascalandy merged 2 commits into
mainfrom
cor-103-t8-target-updater
Oct 30, 2026
Merged

pascalandy merged 2 commits into
mainfrom
cor-103-t8-target-updater

Conversation

@pascalandy

@pascalandy pascalandy commented Oct 30, 2026 •

Copy link
Copy Markdown
Owner

An extension runs its copied updater, so an old recipe can finish without the target version's replacement rules.

Run the downloaded target module's SDK updater and document bootstrap and conflict continuation.
Every template recipe now has one command line.
Go rejects go run package@tag with replacements, so bootstrap uses go mod download and go -C.
The proof uses a local module proxy with unpublished scratch tags.

Proved by: green just check, untouched v0.23.2 bootstrap, conflict recovery, and red controls for the copied updater and multi-line recipes.

COR-103-T8 checklist:

  • 1. Spec: the sections that the card reads cover every command, flag, JSON key, and error code you add or change
  • 2. Scenario: each scenario that the card proves fails for the missing behavior
  • 3. Code: those scenarios pass
  • 4. Text: each new user-facing string is a catalog entry with a description; n/a: repository-task diagnostics, outside ncly
  • 5. Checks: just check passes
  • 6. Verify: claude-haiku-5-5 (xhigh) ran verify-nicely on template at 3c46d353, clean (evidence/commit.txt: 3c46d35385ef):
    • ncly v0.23.4-0.20261030042203-3c46d35385ef; every step of template passes
    • The rendered justfile has one-line check and update recipes, each running sdk/extensionrepo/cmd/extensionrepo
    • The rendered just check exits 0: go mod tidy -diff, go vet ./..., go test -count=1 ./..., ok example.com/ncly-probe
    • just --dry-run update v0.0.0 prints go -C "$(go mod download -json github.com/pascalandy/nicely@'v0.0.0' | ...)" run ./sdk/extensionrepo/cmd/extensionrepo update 'v0.0.0' <repo>
    • The scratch copy is no Git repository, so the real update ran only in scripts/template-update-test.sh, which Sol reran: the untouched v0.23.2 render updates and recovers from a conflict
  • 7. Docs: the card is done in its backlog item, README.md shows any change a user sees, and a skill teaches any command you add: the extension's, or nicely for core
  • 8. Sign off: just signoff passes, or just signoff-layers for a stack; pending: root

Review fixes: the SDK's check runs its tests through T4's extensionrepo.Test, so a passing just check still prints the kit's notices (Sol S1). Declined as follow-ups: the Copier pin lives in both update.go and template/justfile (S2), and the bootstrap reads go mod download -json with sed (S3). The rebase onto T4 and T9 kept each subcommand's dispatch, T4's notice wrapper, and T9's signoff recipe.

Root review: Opus 5.5 read the full diff, the fix, and the seven rebase resolutions.

Reviewed with sol-loop: 2 rounds with gpt-6.1-sol on xhigh. Sol verdict: approved

by GPT-6.1-Sol via Codex

@coderabbitai

coderabbitai Bot commented Oct 30, 2026 •

Copy link
Copy Markdown

Important

Review skipped

Auto reviews are disabled on this repository. Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

Run configuration
  • Source mode: Auto
  • Repository: Unavailable
  • Branch: Unavailable
  • File: No configuration file from this repository applied
  • Commit: Unavailable
  • Layers: Repository UI
  • Review profile: ASSERTIVE
  • Plan: Advanced
  • Run ID: 1142fd2a-0e0c-4d54-bc93-84b20d52e03b

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review
  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Comment @coderabbitai help to get the list of available commands.

@pascalandy
pascalandy force-pushed the cor-103-t8-target-updater branch from e617b0a to 3c46d35 Compare October 30, 2026 04:33
- Purpose: Older recipes cannot change during their own update
- Impact: Run the target updater and resume Copier conflicts through bootstrap
- Purpose: Passing Go tests can hide skipped-example notices
- Impact: Run checks through Test and preserve its exit code
@pascalandy
pascalandy force-pushed the cor-103-t8-target-updater branch from 3c46d35 to e35bd0b Compare October 30, 2026 04:48
@pascalandy
pascalandy merged commit e35bd0b into main Oct 30, 2026
3 checks passed
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