Skip to content

feat(profile): AO-3 project projections with exact support manifests and bounded SessionStart delta (T-1703) - #298

Merged
wolverin0 merged 51 commits into
mainfrom
lane/ao3build
Oct 23, 2026
Merged

wolverin0 merged 51 commits into
mainfrom
lane/ao3build

Conversation

@wolverin0

Copy link
Copy Markdown
Owner

Summary

AO-3 build v1 (design v3 _intel/briefs/2026-10-22-AO-3-PROJECTION-DESIGN-v3.md, Argon design review r2). Everything is OFF by default (MEMORYMASTER_PROJECT_PROJECTION_* switches, documented rollback in docs/project-projections.md).

  • Project projection builder: exact support manifest (claim/card supports with hashes and byte spans), 2,200-byte SessionStart cap and 3 KB file cap in UTF-8 bytes, per-bullet invalidation, loop guard (generated spans stripped before ingest, never whole-document poisoning), egress filtering on every rendered line including configured identities and public manifests.
  • SessionStart template: projection + bounded delta against the prior start baseline; incremental source reads via migration 0029_project_source_cursor (transactional epoch/sequence cursor + crossed temporal boundaries, constant SQL work when unchanged); unclosed-session TTL; atomic receipt pointer.
  • Capture adapters: generated HTML masked with inert offset-preserving placeholders, raw-text (script/style) context preserved.
  • Operational review checks for the projection pair and the M2 receipt; malformed cache data is an unavailable pair, never an aborted review.

Review trail

Independent Codex review rounds 1-9 (fix rounds in between); round 9 verdict approve with one docs minor (fixed). Two probes from round 9 that still failed at that head were fixed in the last commit: an unhashed exported manifest field (next_temporal_boundary) is now validated as an aware ISO instant, and a SKIP tick after a complete validation renews the read TTL. Argon code review covered chunk 3a of an earlier head.

Verification

  • tests/test_project_*, tests/test_capture_adapters.py, tests/test_operational_review.py, tests/test_public_demo.py: 270 passed, 1 skipped after rebase onto a35de17.
  • ruff, scripts/generate_release_truth.py --check, scripts/check_contract_witness.py --base origin/main green.

🤖 Generated with Claude Code

wolverin0 and others added 21 commits October 23, 2026 00:43
…w the read TTL on SKIP ticks

A tampered next_temporal_boundary sits outside every digest yet is exported by
project-read; only an aware ISO instant passes read_manifest now. A SKIP tick
that still ran a complete source validation renews checked_at once the stored
check is older than half the read TTL, so an unchanged projection never goes
dark. Both witnessed by the round-9 reviewer probes, now regression tests.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
…e removed high-ID arm

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
…ad the projection switch without the package

Linux CI runs CPython patch releases whose html.parser closes a raw-text element on
'</script' followed by whitespace, so the space mask after a retained closing-tag
prefix completed a token that crossed the excluded range. The mask inside
script/style is now a tag-name character. The SessionStart template reads the
projection switch from the environment before importing the package: an
unimportable package degrades to the legacy skip when the consumer is off and
still withholds legacy delivery when it is on.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
…dary as crossing it

Hardened html.parser matches '</style' with a lookahead and leaves the '>' past
the excluded bytes, so the previous strict comparison let that token through on
Linux CI; the terminator on the other side of the boundary means the tag crosses.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
…nish inside the timeout

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
@wolverin0
wolverin0 merged commit e5321c8 into main Oct 23, 2026
12 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