Skip to content

Complete-source activity selection

The activity experiment now accepts reviewed evidence from any bounded source page. The first version could enumerate later pages but its artifact builder still discarded reviews outside the original 128-source batch. buildPagedActivityArtifact resolves at most 64 reviewed source IDs through the full source stream and binds the manifest to both that stream's hash and the exact baseline context hash. An edit to either invalidates an old manifest. The original v1 artifact and exact baseline embedding input remain compatible.

Model input and review

activity-packets.ts groups complete original fields into at most 32 sources and 96 KiB of serialized JSON per packet. This includes framing, escaping and the exact existing baseline for premise/role context. A field that cannot fit alone is counted and omitted whole. The builder authenticates the page against the supplied immutable world snapshot. Hash validation alone cannot establish publication eligibility; the caller must supply an eligible published snapshot.

activity-model.ts makes separate proposal and independent-review requests through the existing bounded, journaled transport. Proposals contain at most six literal quotations, with no proposer rationale. Local validation requires a unique exact occurrence, complete structural sentence boundaries, no more than 256 embedding tokens and 8,192 UTF-8 bytes. Review sees the complete packet and each proposed quote, returning exactly one supported, unsupported or ambiguous decision per proposal. Rejected responses are not repaired or retried by these adapters.

The prompts ask for concrete reader actions and consequences or enacted relationships. Generic interactivity, character lists, secrets and danger do not establish those experiences. Source instructions remain untrusted data. Independent model review remains a fallible semantic judgment, not human ground truth.

The v2 artifact preserves at most three separately embedded passages within an 8-KiB aspect artifact; conflicts and ambiguous/unsupported reviews abstain. Neither source paging nor packet limits guarantee that a model selects the most useful evidence. Selection across all packets, language performance and downstream ranking effects need evaluation.

The new wire schema names reuse the existing platform-funded evidence operations. Journaling remains mandatory before dispatch, records actual usage before output validation, and never charges reader wallets. Static ownership tests admit the new adapter as a transport caller and require it to have no production caller. There are no new providers, dependencies, database changes or serving flags in this change.

Development observations

The same twelve public development snapshots resolve all 1,258 source records exactly, across 17 pages. Their previous full-stream hashes and three earlier v1 artifact hashes remain identical. The original baseline matches on all twelve worlds. No private reader data, frozen evaluation content or previously consumed benchmark content was opened for this development check.

A deliberately inspected passage at source ordinal 152 in the Chinese fairy world describes a new player form or element combination doubling combat damage. The original artifact cannot resolve this source. V2 retains the exact 41-token, 108-byte quotation and its review provenance in a 1,239-byte aspect artifact, and rejects its stale manifest after a later edit. This demonstrates late-source integration, not ranking relevance or classifier accuracy.

The final integration probe is activity-selection-integration-probe-v2.json, SHA-256 b4e93417fd11a07e28a219061ab2a537bfc7d963a262ae37cdfe4252918ec9cd; the earlier v1 probe remains preserved. The development snapshot is unchanged, SHA-256 5f535464d471f7ced86a4ea650b82ef0fe48e5b55306969955587a3f262eb94d.

Whole-source packet construction covers the same 1,258 records exactly in 46 packets, totaling 1,477,108 serialized bytes including repeated baseline context. The largest packet is 96,910 bytes and there are no omitted sources in this development set. These bytes are not provider token counts. Final coverage probe v2, including the validation preflight, has SHA-256 914563932aa9f8b9a0d40c143652e46fc36cab393afdabfbc8fbedadea966dcb; v1 remains preserved.

Validation and remaining gates

After the independent-review corrections, the selected personalization, baseline and billing suites pass 482 tests, with no failures or skips. Full workspace typecheck passes all eight tasks and build passes all five tasks. Tests cover late source resolution, snapshot changes, complete review coverage, exact quotation/model provenance, byte/token boundaries, cancellation, mandatory journaling and source-count rejection before traversal. A sparse selector and oversized review-envelope traversal were reproduced and corrected. Final-commit CI is checked separately.

Review also reproduced two substantive issues: packet validation could clone/hash a multi-megabyte field before rejecting it, and an oversized field omitted from the source stream could still change the baseline context without invalidating a manifest. A fixed-shape preflight bounds fields before copying/hashing; v2 now additionally requires and records baselineHash. The baseline-context regression first failed for the missing rejection, then passed after enforcing that binding. These changes preserve v1 and page hashes.

A separate bounded development smoke protocol selected four packets from these same worlds, one each in EN/ZH/ES/JA, including a second-page Chinese packet. It permitted eight sequential requests, no retries and fifteen minutes, using a fresh private durable cost journal. An observed USD 5 threshold stopped the next request; it could not bound unknown or already in-flight charges. Unknown cost also stopped subsequent spend. All errors and abstentions were retained. This deliberately selected sample tests the real pipeline and cannot establish ranking uplift.

The real-model smoke failed: all four Gemini proposals were rejected with descriptor_validation, so no independent review or artifact construction ran. Four requests cost USD 0.04562, with no unknown costs and complete begin/usage/outcome journal records. The preserved result SHA-256 is 56ef22a957e63241e57835a8a6a66d847cc8b1578cc7db7e826474346e802d14. Passing mocked transport tests did not establish real-model quotation reliability.

A new, separately bounded two-request diagnostic examined only fixed-label failure categories in memory; it stored no raw provider responses, unknown text or credential-bearing fields. Both responses had the correct envelope version/hash and six proposals. In English, four quotations passed and two began outside the accepted complete-unit boundary. In Chinese, one quotation was nonliteral and five began outside that boundary. Both entire responses therefore abstained. These two new calls cost USD 0.00908325, with complete journals and no unknown costs; diagnostic result SHA-256 is de5832c42e43bc7a427b9ba79741c5ffa6027e07aa6f29805d2f83b9b3a6b7f7. They are not retries hidden inside the original protocol. The combined six development requests cost USD 0.05470325.

The next candidate must address selection reliability without accepting cut conditions or silently repairing model quotations. A bounded presentation of complete, numbered source units would let a model select existing ranges instead of copying text or guessing offsets. This is a proposed next experiment, not a demonstrated fix. The current literal-quote adapter is not ready for a catalog-wide job or ranking evaluation.

The experimental ranking candidate is not promoted. It still needs a fresh preregistered evaluation and a measured reader experiment. The production foundation additionally awaits the two discovery ClickPipe mappings, real CDC/erasure verification, and production capacity/rollback checks. The earlier ranking candidate failed its evaluation; these structural passes do not reverse that finding.