Repository navigation
archctx / archctx-contracts 0.14.1
archctx / archctx-contracts 0.14.1 fixes the 0.14.0 re-baseline of a manifest that carries floors, and stops repo-harness/v1 from writing agent-context regions into root contract files. Upgrade both packages together.
Fixes:
- #579:
archctx docs apply --approvedre-baselines a superseded v1–v3 manifest whoseminimumRendererVersion/minimumProtocolVersionfloors this engine meets. The new v4 manifest does not carry those floors. A floor this engine does not meet still refuses withAC_PRECONDITION_FAILED/projection-manifest-incompatible, and without--approveda superseded manifest still refuses withprojection-manifest-upgrade-required. - #579,
archctx-contracts:architectureDocsProjectionCompatibilityIssuesno longer reports floors on a superseded declared schema; it still checks each floor against the engine. Floors with no declared schema, a non-string schema or an unsupported schema reportprojection manifest floors require a current or superseded schema, which replacesprojection manifest floors require the current schema.
Behavior changes (#580, ADR-0056 §9 amendment):
- Under
repo-harness/v1,docs apply, adoption andprojection runwrite noagent-contextrow and no region for acontractFilespath that is the rootAGENTS.mdorCLAUDE.md.contractFilesstill requires and accepts the root files, andexport nativestill lists them. Capability-local contract files keep theirprojection_target.agent-context.<agents|claude>.<node>rows and regions. archctx agent-context plan|preview|applyreads the committed manifest by profile, instead of checking foragent-contextrows. A superseded v1–v3 manifest refuses withprojection-manifest-upgrade-required. A v4repo-harness/v1manifest refuses withAC_PRECONDITION_FAILED/agent-context-owned-by-projection, whether or not it records anagent-contextrow. Without a manifest, or under a v4defaultmanifest, the command runs as before.- Under a
repo-harness/v1manifest, a rawrender_agent_contextChangeSet that writes a root contract file (for example through MCParchcontext_plan_update) is not allowed at preview, with the findingRoot contract has no agent-context region under repo-harness/v1, and throws at apply. - The #572 root-create branch is removed in every profile. A root contract write requires an existing file with an exact
sha256:expectedHash(Root contract must exist with an exact expectedHash), and anexpectedHashofmissingis refused. Outsiderepo-harness/v1, the write must still equal the canonical render byte for byte. - In a projection-writer pull request, a change to the root
AGENTS.mdorCLAUDE.mdis non-generated, because the root files have no row.
Known issue: colbymchenry/codegraph#3280 is unchanged from 0.14.0; the single-rerun rule in the 0.14.0 checklist still applies.
Upgrade
Upgrade archctx and archctx-contracts together. Reason codes, protocol and manifest schemas, RPC v2, SQLite migrations, CodeGraph, Bun 1.4.3 and Node >=22.22 <26 are unchanged from 0.14.0. No runtime schema changes.
- From 0.13.0: follow the 0.14.0 Compatibility section and
docs/runbooks/architecture-documentation-projections.md. A v3 manifest whose floors this engine meets now re-baselines in onearchctx docs apply --approved --profile <default|repo-harness/v1>. Do not deleteminimumRendererVersionfirst. - From 0.14.0 under
repo-harness/v1with root contract files: the manifest has root rows. The next apply stops at those files withorphaned-document-review(docs applyrefuses withprojection-orphan-review-required). There is no retire step: remove the root regions by hand, then apply again; the apply drops the rows. - repo-harness raising its pin from 0.13.0 to 0.14.1 (aimpact-inc/repo-harness#2686): target 0.14.1, not 0.14.0. 0.14.0 refuses repo-harness's v3 manifest, which records
minimumRendererVersion: archcontext.docs-renderer/v6. Every 0.14.0 note for repo-harness still applies: deduplicatedifferingPathsor key targets bytargetId, acceptcalleesandindex-stale, re-confirm symbol anchors, and use full clones. On top of those:- The re-baseline writes no region into the root
AGENTS.md/CLAUDE.md; repo-harness never ran 0.14.0, so there are no root rows to clear. The #580 acceptance run on repo-harness main844d59141kept both root files byte-identical and wrote six capability-local rows:assets/,scripts/andsrc/cli/hook/, each withAGENTS.mdandCLAUDE.md. - The same run refused first with
projection-ambiguous-ownershipfordocs/architecture/runtime-topology.md, the ADR-0056 §11 step for an unvouched whole-file output. Run thegit rminerror.details.commands, then apply again. - After the re-baseline,
archctx agent-context plan|preview|applyrefuses withagent-context-owned-by-projection; before it, withprojection-manifest-upgrade-required. Callers must usedocs applyorprojection runinstead. - A writer pull request that touches the root contract files is not generated-only.
- The re-baseline writes no region into the root