Skip to content

[S31] bug : historical rollup hardening#46

Merged
Doogie201 merged 1 commit intomainfrom
codex/s31-historical-rollup-hardening
Mar 11, 2026
Merged

[S31] bug : historical rollup hardening#46
Doogie201 merged 1 commit intomainfrom
codex/s31-historical-rollup-hardening

Conversation

@Doogie201
Copy link
Owner

Summary

  • harden historical long-range truth verification so committed S30 rollups validate by stable schema/internal consistency instead of mutable live-state byte parity
  • derive evidence index references from sprint id instead of hardcoding the S30 evidence path
  • add S31 contract, tests, and durable evidence proving the historical check path remains valid after future roadmap/ADR evolution

Evidence

  • docs/sprints/S31/evidence/work_items/S31-HIST-01_20260311_000000/
  • docs/sprints/S31/evidence/work_items/S31-HIST-02_20260311_000000/
  • docs/sprints/S31/evidence/followthrough_20260311_000000/

Gates

  • npm run -s verify:s18
  • npm run -s verify:s19
  • npm run -s verify:s25
  • npm run -s verify:s26
  • npm run -s verify:s27
  • npm run -s verify:s30
  • npm run -s verify:s31
  • npm run -s lint
  • npm test
  • npm run -s build
  • pre-commit run --all-files

@codecov
Copy link

codecov bot commented Mar 11, 2026

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ All tests successful. No failed tests found.

📢 Thoughts on this report? Let us know!

@codecov
Copy link

codecov bot commented Mar 11, 2026

Bundle Report

Bundle size has no change ✅

@Doogie201 Doogie201 merged commit 0ab341e into main Mar 11, 2026
6 checks passed
@Doogie201 Doogie201 deleted the codex/s31-historical-rollup-hardening branch March 11, 2026 06:11
Copy link

@chatgpt-codex-connector chatgpt-codex-connector bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: acf89d25ee

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment on lines +191 to +198
export function assertEvidenceSources(sources, label, minimumCount) {
if (!Array.isArray(sources) || sources.length < minimumCount) {
throw new Error(`${label} evidence sources incomplete`);
}
for (const source of sources) {
ensureKeys(source, ['id', 'path', 'kind', 'section'], `${label} evidence source`);
if (typeof source.id !== 'string' || typeof source.path !== 'string' || typeof source.kind !== 'string' || typeof source.section !== 'string') {
throw new Error(`${label} evidence source fields must be strings`);

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1 Badge Enforce sprint-scoped evidence paths during rollup checks

assertEvidenceSources now only validates key presence and string types, and the three long-range truth validators (project_state_summary, architecture_snapshot, epoch_closeout) rely on it as their evidence-source gate in check mode. Because this commit also removed generator byte-parity checks, a committed artifact can carry stale or wrong evidence_bundle paths (for example, pointing to another sprint or a nonexistent index) and still pass verification, which undermines the historical-rollup hardening goal.

Useful? React with 👍 / 👎.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant