Skip to content

docs(memory): clarify self-upstream release manifest semantics - #10

Merged
E-G-C merged 7 commits into
mainfrom
backlog-lifecycle-sync
Aug 12, 2026
Merged

docs(memory): clarify self-upstream release manifest semantics#10
E-G-C merged 7 commits into
mainfrom
backlog-lifecycle-sync

Conversation

@E-G-C

@E-G-C E-G-C commented Aug 12, 2026

Copy link
Copy Markdown
Owner

Records the source-vs-release manifest contract in the existing project context instead of adding a duplicate lesson.

This repository is its own upstream. Its source/dogfood manifest intentionally remains:

  • source_ref: main — live development and catalog/upgrade channel
  • installed_ref: main — branch-tracking install pin, not a release version

For a tagged release, scripts/build-release.mjs --tag <tag> reads but does not modify that committed manifest and writes only the staged dist/ manifest as source_ref: latest / installed_ref: <tag>. The repo has no package manifests and no version write-back step.

Hand-bumping the committed fields would either pin upgrade/catalog resolution away from live main or create false upgrade status.

The claim was independently audited against all production readers/writers and reproduced from the exact origin/main tree with v0.4.8: source stayed main/main, dist became latest/v0.4.8, and the source manifest hash did not change.

The branch was synchronized with the squash-merged main before this PR was finalized. Net diff: one existing context entry; no new memory entry. Lint: 0 warnings, 0 failures.

E-G-C added 7 commits August 11, 2026 12:39
Adds a dedicated 'compose refresh <pack>' subcommand that updates an
installed pack's .github/ projection from its current authoritative
source in one all-or-restored transaction.

Editing a pack source previously made that pack unrefreshable: 'remove'
refuses on the Feature 028 recorded-source digest guard, and 'add --force'
early-returns as already installed. The documented remove-then-add path
was unusable in exactly the case it documented.

Refresh proves installed-side authority (exact profile bytes, whole-profile
currency, files-to-inventory congruence, per-artifact recorded hashes),
stages the current source through the canonical add pipeline, applies the
destination-set difference, and updates the profile in the same
transaction. It does not apply the uninstall digest guard, because it
expects the source to have changed. That guard and 'add --force' semantics
are unchanged.
@E-G-C E-G-C changed the title docs(memory): record release manifest lesson docs(memory): clarify self-upstream release manifest semantics Aug 12, 2026
@E-G-C
E-G-C merged commit 03efd51 into main Aug 12, 2026
2 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