Release 0.4.4 — reconcile unshipped META-101/102 spec fixes + @workspacejson/cli - #19
Merged
Conversation
… semantics VR-640: pin fileIndex/fragility.file/coChange.files to repository-root-relative POSIX in schema/v1.json + schema.ts + types.ts. Documentation catching up to the emitter (both key paths already emit git-root-relative, verified via HAC-75 probe); the canonical form the CLI normalization shim targets. VR-639: CoChangeEntry.files [string,string] -> string[] with a documented two-element, order-independent (set) invariant; join must use membership, not index. Adds order-independence + anchor-pin tests (30 pass; VR-640 guards proven red-first). Refs VR-639, VR-640, HAC-75. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…alization shim The HAC-75 fix as a package: normalize dbt manifest original_file_path (dbt-project-root-relative) to workspace.json fileIndex keys (repository-root-relative POSIX, per @workspacejson/spec VR-640) before joining, so a nested dbt project doesn't silently produce zero rows. - normalize.ts: computeProjectPrefix / normalizeModelPath (+ null guard for a project outside the git root) - dbt.ts: extractModels + findDbtProjects (VR-640 multi-project enumeration) - join.ts: membership join (order-independent, no positional assumptions) - cli.ts: bin — reads manifest.json + workspace.json, exits non-zero on 0-row join - tests (6 pass): red-first nested join 0/5 naive vs 5/5 normalized (HAC-75 treatment fixtures), control-at-root, out-of-root rejection, multi-project guard Declares @workspacejson/spec as a workspace sibling. Full typecheck/build/publish pending `pnpm install` (adds @types/node, builds spec dist). Refs HAC-75, VR-640. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
qmarcelle
added a commit
that referenced
this pull request
Jul 22, 2026
…gration pass Records: SAFE_DRIFT check, triple preservation, PR #19, validation (275 tests green), META-101/102 Done->In Review, and the G2 test/impl coupling that requires a follow-up authorization.
6 tasks
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.
Summary
Reconciles previously unshipped spec work into a governed 0.4.4 release. The fixes for META-101 (VR-639) and META-102 (VR-640) were marked Done on 2026-07-12 but never reached
main— the published0.4.3line still ships the tuple contradiction and the unanchoredfileIndexkey format. This branch lands them through the canonical PR path.Basis: reconciliation audit in
docs/audits/worktree-reconciliation/2026-07-22/(committed separately ondocs/reconciliation-audit-2026-07-22).What this ships
coChange.filestyped and documented as an unordered two-file set (string[]), not a positional tuple.origin/main(0.4.3) still hasfiles: [string, string].fileIndexkeys pinned to repository-root-relative POSIX paths (anchor present inschema/v1.json+src/schema.ts). Absent on 0.4.3.@workspacejson/cli— dbt-manifest→workspace.json path-normalization shim (new package; absent onmain).Commits:
0566ee9fix(spec): pin fileIndex key format + reconcile coChange.files to set semantics8dca4e7feat(cli): scaffold @workspacejson/cli5ded233release: reconcile 0.4.4 spec contracts3a77e1bdocs(spec): record npx bin fallbackValidation (run 2026-07-22 on branch head
3a77e1b)pnpm -r build— passpnpm -r typecheck— pass (spec, rules, cli, agents-audit)pnpm -r test— 275 passed, 0 failed (spec 36, cli 6, rules 173, agents-audit 60)types.ts→files: string[]; schema anchor present (2 sites).Not in scope of this PR (deferred, evidence in the audit)
agents-auditCLI hardening tests exist only in an uncommitted working tree (--check+--dry-rundrift gate;--forceinvalid-file recovery messaging). They are regression tests for two uncommittedcli.tsbehavior changes and fail against this branch as-is (proven: exit 0≠1; missinginvalidFileMovedbranch). Landing them requires porting the coupledcli.tsimplementation — a scope decision left to a maintainer. The work is fully preserved (git tagpreserve/vr-639-640-worktree-2026-07-22+preservation/tracked-changes.patch).Remaining steps (NOT done here)
origin/main(docs-only, PR docs: clarify generated and manual workspace evidence #17). Use "Update branch" before merge.Refs: META-101, META-102, VR-639, VR-640. Context: META-31 (Merged-vs-Done pipeline).