Skip to content

feat(export): add point-in-time projections - #477

Merged
tcballard merged 1 commit into
mainfrom
feat/point-in-time-export
Sep 7, 2026
Merged

feat(export): add point-in-time projections#477
tcballard merged 1 commit into
mainfrom
feat/point-in-time-export

Conversation

@tcballard

Copy link
Copy Markdown
Collaborator

Summary

  • adds decided export --at <revision> for viewer, documents, and graph projections
  • reconstructs historical governing config and recursive federation/submodule closure from exact committed blobs using read-only, offline Git object access
  • preserves requested-path identity and existing public Rust construction contracts while failing closed on missing objects, unsafe paths, and bounded snapshot limits
  • prevents snapshot writes inside the worktree, Git directory, or Git common directory

Verification

  • cargo clippy -p asdecided-core -p decided --all-targets -- -D warnings
  • 31 focused point-in-time tests: 10 engine snapshot tests and 21 CLI/federation/guard tests
  • affected existing CLI, export, and federation regression suites
  • release build: cargo build --release --locked -p decided
  • corpus validation: 469/469 artifacts valid; relationships, review, and gate completed without blockers
  • clean committed-tree byte parity for viewer, documents, and graph projections
  • SurfaceCheck: 42 passed, 0 failed

A monolithic cargo test --workspace --release attempt exhausted the shared volume while LTO-linking integration binaries; it reported no code or test failure before storage exhaustion. The focused suites and release binary build completed successfully.

Closes #257

Materialize exact historical blobs and bounded federation closures for viewer, documents, and graph exports.

Closes #257

Signed-off-by: Tom Ballard <tom@armytage.co>
@tcballard
tcballard merged commit c59e397 into main Sep 7, 2026
13 checks passed
@tcballard
tcballard deleted the feat/point-in-time-export branch September 7, 2026 19:44
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.

corpus-sync: point-in-time export — decided export --at <rev>

1 participant