Preserve bounded agent cache prefixes
This commit is contained in:
parent
139b8a69bc
commit
8f3c33b2d1
7 changed files with 96 additions and 51 deletions
|
|
@ -156,20 +156,10 @@ pub async fn run_model_agent_progress<Tool: ModelAgentTool>(
|
|||
}
|
||||
|
||||
let mut receipts = Vec::new();
|
||||
let mut input = if tool.context_snapshot().is_some() {
|
||||
vec![
|
||||
ModelInputItem::user(spec.instructions.clone()),
|
||||
ModelInputItem::user(format!(
|
||||
"AGENT STEP: 1 of {}. Choose one typed tool action admitted by the current output schema. The harness will execute it against the frozen state and return the real tool observation. Do not claim success yourself; only an accepted tool result can end the task.",
|
||||
spec.max_steps
|
||||
)),
|
||||
]
|
||||
} else {
|
||||
vec![ModelInputItem::user(format!(
|
||||
"{}\n\nAGENT STEP: 1 of {}. Choose one typed tool action admitted by the current output schema. The harness will execute it against the frozen state and return the real tool observation. Do not claim success yourself; only an accepted tool result can end the task.",
|
||||
spec.instructions, spec.max_steps
|
||||
))]
|
||||
};
|
||||
let mut input = vec![ModelInputItem::user(format!(
|
||||
"{}\n\nAGENT STEP: 1 of {}. Choose one typed tool action admitted by the current output schema. The harness will execute it against the frozen state and return the real tool observation. Do not claim success yourself; only an accepted tool result can end the task.",
|
||||
spec.instructions, spec.max_steps
|
||||
))];
|
||||
let mut last_observation = None;
|
||||
for step in 0..spec.max_steps {
|
||||
let action_schema = match tool.action_schema() {
|
||||
|
|
|
|||
|
|
@ -4516,17 +4516,14 @@ mod tests {
|
|||
|
||||
let requests = model.requests();
|
||||
assert_eq!(requests.len(), 3);
|
||||
let stable_prefix = requests[0]
|
||||
.lived_stream
|
||||
.split("\n\nUSER:\nAGENT STEP")
|
||||
.next()
|
||||
.unwrap();
|
||||
let stable_prefix = &requests[0].lived_stream;
|
||||
assert!(stable_prefix.contains("STAFF BOOK"));
|
||||
assert!(
|
||||
requests[1..]
|
||||
.iter()
|
||||
.all(|request| request.lived_stream.starts_with(stable_prefix))
|
||||
);
|
||||
assert!(stable_prefix.contains("AGENT STEP: 1"));
|
||||
assert!(requests[1..].iter().all(|request| {
|
||||
request
|
||||
.lived_stream
|
||||
.starts_with(&format!("{stable_prefix}\n\nUSER:\n"))
|
||||
}));
|
||||
assert!(requests[1].lived_stream.contains("cracked hinge"));
|
||||
assert!(requests[2].lived_stream.contains("news:west-gate"));
|
||||
assert!(!requests[2].lived_stream.contains("cracked hinge"));
|
||||
|
|
|
|||
|
|
@ -1435,8 +1435,24 @@ The affected
|
|||
`newspaper::tests::narrative_workbench_queries_foundational_context_by_stable_record_id`
|
||||
rerun passes. A fresh full library run passes 479/479, strategic-smoke passes
|
||||
16/16, and all-target checks pass with only the pre-existing native-client
|
||||
unused `path` warning. Provider cache efficiency and reverse-Turing acceptance
|
||||
remain unproven.
|
||||
unused `path` warning.
|
||||
|
||||
Exact pushed commit `139b8a6` completed Run 60 under
|
||||
`character-newsroom.v10` without world or per-wave replay. Its acceptance
|
||||
witness and terminal status bind the completed page and resume lineage. The
|
||||
independently dispatched blind reviewer saw only the reader-facing fantasy
|
||||
newspaper and read it as a real left-populist civic broadsheet; it did not
|
||||
immediately identify procedural generation, so the narrative reverse-Turing
|
||||
criterion passes. The review's criticism that all three stories feel like
|
||||
three rewrites of one briefing is later editorial differentiation debt.
|
||||
|
||||
Run 60 used 96,902 prompt tokens and reported zero cache hits. The bounded
|
||||
snapshot initialization had split the stable charter from the first-step
|
||||
directive, so the first provider request did not form the exact prefix reused
|
||||
by later steps. The current one-file `agent.rs` cut collapses those into one
|
||||
exact initial cacheable message while preserving later bounded workbench
|
||||
replacement. Focused agent and newspaper tests pass. This cache-boundary fix
|
||||
does not require resimulation or recomposition of the accepted edition.
|
||||
|
||||
Run 54 exposed one separate upstream publicity defect: a public strategic
|
||||
activity propagates its channel to private `MemberMemory` outcomes, which is
|
||||
|
|
@ -1445,20 +1461,16 @@ ignore that bookkeeping, but revision 27 remains immutable. Future kernel work
|
|||
must require an outcome's own observable or communicated public scope before
|
||||
materializing a `NewsIssue`.
|
||||
|
||||
1. Preserve immutable Run 59 and its later-publication correction debt; do not
|
||||
rewrite or resimulate it.
|
||||
2. Commit and push the verified v10 cut, then resume the same Run 60 root
|
||||
without world or per-wave replay. Its exact agenda and accepted-article
|
||||
checkpoints must prevent selector or completed reporter replay.
|
||||
3. Freeze the resulting reader-facing v10 front page, then dispatch an
|
||||
independent blind reviewer with only that fantasy newspaper and
|
||||
a request for its journalistic opinion. Do not expose generation mechanics,
|
||||
prompts, receipts, provenance, or the acceptance hypothesis. Pass only if
|
||||
the reviewer is not immediately tipped that the page is procedurally
|
||||
generated; a merely improved or less-bad result is not passage.
|
||||
4. Defer multiple publications, TeX layout, and engraved cuts until separately
|
||||
1. Preserve immutable accepted Run 60 and Run 59; do not rewrite, recompose, or
|
||||
resimulate either edition.
|
||||
2. Finish proportional verification of the one-file cache-prefix fix, then
|
||||
commit and push it. Preserve Run 60's zero-hit evidence rather than replaying
|
||||
the accepted page to manufacture a better metric.
|
||||
3. Keep the blind review's three-rewrites criticism as later editorial
|
||||
differentiation debt. Defer multiple publications, TeX layout, and engraved
|
||||
cuts until separately
|
||||
authorized.
|
||||
5. Per-wave issues may use daily-like reporting windows, while a final
|
||||
4. Per-wave issues may use daily-like reporting windows, while a final
|
||||
composition may be an equally current weekly-style issue with a broader
|
||||
window. Both are selective journalism; broad fact availability increases
|
||||
editorial freedom and does not license recap voice.
|
||||
|
|
|
|||
|
|
@ -1294,6 +1294,11 @@ The deliberative newsroom boundary is live under this authority map:
|
|||
deterministic workbench owns query admission, inspected-record membership,
|
||||
the bounded working-context projection, exact-ID fetch, agenda validation,
|
||||
focus-record dereferencing, candidate identity, and exact commit admission.
|
||||
The generic agent harness owns message framing: for snapshot tools it freezes
|
||||
the complete first request as one user message and replaces only the later
|
||||
workbench message. The tool owns the snapshot content. The provider owns
|
||||
automatic prefix-cache admission, retention, and hit accounting; neither the
|
||||
harness nor the newsroom may declare a hit.
|
||||
The production-checkpoint validator owns whether an admitted agenda or
|
||||
accepted reporter filing is exact enough to resume; `CampaignStore` owns its
|
||||
immutable storage, not its editorial judgment. Each assigned in-world
|
||||
|
|
@ -1321,7 +1326,10 @@ The deliberative newsroom boundary is live under this authority map:
|
|||
most 24 complete records by exact stable ID. Each response returns at most 24
|
||||
exact projections and the agent has at most twelve semantic steps;
|
||||
the complete immutable ledger remains queryable rather than being split into
|
||||
privileged recent and foundational windows.
|
||||
privileged recent and foundational windows. The harness receives the stable
|
||||
role charter, semantic-step budget and output schema plus the tool's optional
|
||||
current snapshot and latest observation; changing workbench state is not an
|
||||
input to the frozen first message.
|
||||
- **Outputs:** an agenda proposal does not finish selection. It yields one exact
|
||||
candidate digest plus a deterministic front-page proof: the proposed lead's
|
||||
complete focus record, the complete focus record for every below-fold pitch,
|
||||
|
|
@ -1347,6 +1355,11 @@ The deliberative newsroom boundary is live under this authority map:
|
|||
assessment plus the complete bounded set of exact factual query passages;
|
||||
the Night Editor emits one close action; and accepted composition v3 carries
|
||||
the printed issue, copy report, press-close witness, and exact receipt chain.
|
||||
Each snapshot-agent run also emits a provider request sequence whose first
|
||||
request is one stable user message containing the complete role charter and
|
||||
step-one directive. Every later request begins with that exact message and
|
||||
adds one second user message containing only the current bounded workbench
|
||||
state, latest observation, and next-step directive.
|
||||
- **Derived state:** public-record projections contain their stable ID,
|
||||
timestamp, channel, headline, reliability, exact committed accounts,
|
||||
assertion statuses, committed event IDs, and only those people,
|
||||
|
|
@ -1360,6 +1373,10 @@ The deliberative newsroom boundary is live under this authority map:
|
|||
bounded query or exact-ID fetch. Production checkpoint IDs, reporter-assignment
|
||||
digests, receipt-chain and complete checkpoint-content digests, and cited-place
|
||||
dateline enums are also derived.
|
||||
The cacheable prefix is the byte-stable first request plus its unchanged output
|
||||
schema; the dynamic suffix is the second workbench message. Provider-reported
|
||||
cached-token counts are observations of that external cache, not newsroom
|
||||
state or proof that a particular request will hit.
|
||||
The query-index set, query-bearing article
|
||||
set, changed-article set, source-page digest, printed-page digest, and
|
||||
receipt-chain digest are also derived. None is a persisted world subject,
|
||||
|
|
@ -1403,12 +1420,16 @@ The deliberative newsroom boundary is live under this authority map:
|
|||
membership, not whether the final language is true or compelling. A structurally invalid
|
||||
close exhausts the one action and prints the checkpointed journalist page with an
|
||||
explicit non-applied close witness. There is no post-close model reread.
|
||||
- **Agent context and cache path:** the generic harness keeps the stable
|
||||
instruction item as the first prefix. A tool may own a bounded current
|
||||
context snapshot; after each nonterminal action the harness then discards old
|
||||
model chatter and observations and sends only that snapshot plus the latest
|
||||
finding. Tools that publish no snapshot retain the ordinary append-only
|
||||
conversation path. The assignment workbench uses this seam for its compact
|
||||
- **Agent context and cache path:** every run begins with one user item combining
|
||||
the stable charter and the step-one directive. For a tool that owns a bounded
|
||||
current context snapshot, that complete first request remains byte-identical;
|
||||
after each nonterminal action the harness discards old model chatter and
|
||||
observations and replaces only a second user item with the current snapshot,
|
||||
latest finding, and next-step directive. This gives the provider an implicit
|
||||
cache breakpoint after request one without creating an application cache or
|
||||
explicit breakpoint API. Tools that publish no snapshot retain the ordinary
|
||||
append-only conversation path after the same single-message initial request.
|
||||
The assignment workbench uses this seam for its compact
|
||||
inspected-record index and pending candidate token, while exact-ID fetch
|
||||
restores only the requested full records. Selector query, fetch, proposal, and
|
||||
commit share one stable structured action schema. The Night close schema is
|
||||
|
|
@ -1461,6 +1482,10 @@ The deliberative newsroom boundary is live under this authority map:
|
|||
task, or editorial binding cannot resume current production. The dateline
|
||||
schema cannot admit an uncited place, and blank cannot evade an available
|
||||
cited place on the lead.
|
||||
A snapshot tool cannot rewrite the frozen first request, insert changing state
|
||||
ahead of it, or promote provider cache telemetry into semantic authority. A
|
||||
cache miss cannot change tool admission, receipts, or newsroom results, and a
|
||||
routing key cannot substitute for provider-reported cached tokens.
|
||||
Renderers, strategic smoke, Registry, external blind reviewers, and grounding
|
||||
reviewers cannot write the page, desk report, close, correction, world state,
|
||||
or acceptance state. Caches cannot decide record equivalence, assertion
|
||||
|
|
@ -1482,6 +1507,10 @@ The deliberative newsroom boundary is live under this authority map:
|
|||
stored receipts, then returned without model work. Every caller receives one
|
||||
completed `WorldNewspaperComposition` or an error; there is no pending
|
||||
reconciliation result for a caller to interpret or advance.
|
||||
Generic snapshot agents and the assignment editor share the same harness
|
||||
framing primitive; non-snapshot agents share its single initial message but
|
||||
continue through the append-only observation path. No newsroom-specific cache
|
||||
branch owns either route.
|
||||
- **Persistence and compatibility:** the live internal contract is
|
||||
`character-newsroom.v10`. Public request schema v3 carries the publication
|
||||
roster and binds it into the task and editorial identities. Private production
|
||||
|
|
@ -1523,6 +1552,10 @@ The deliberative newsroom boundary is live under this authority map:
|
|||
explicit import API and environment path, v7-to-v9 close conversion, and
|
||||
pending consumer branches are deleted from live authority. Existing bytes are
|
||||
not migrated or erased; nothing in the live path can make them decide a close.
|
||||
The snapshot harness's former two-message first request is also deleted: the
|
||||
step-one directive no longer sits in a prefix position that disappears when
|
||||
the first workbench snapshot replaces history. The cut adds no cache store,
|
||||
cache key registry, manual retention control, or retry compensator.
|
||||
The roster, query projection, front-page proof, and article assembly reuse the
|
||||
generic agent harness and existing public-record, agenda, accepted issue, and
|
||||
audit shapes. One private persistent production-checkpoint schema buys exact
|
||||
|
|
@ -1556,6 +1589,17 @@ The deliberative newsroom boundary is live under this authority map:
|
|||
state, and system-map gates. The cut adds no service, crate, dependency,
|
||||
event authority, or simulation pass.
|
||||
|
||||
Run 60 is the negative cache witness for the superseded framing: 15 calls used
|
||||
96,902 prompt tokens and reported zero cached tokens. The selector's first call
|
||||
used 1,452 prompt tokens, while later calls grew to roughly 7,500–11,800. That
|
||||
first request was large enough for automatic prompt caching, but the old
|
||||
two-message shape retained only the charter and replaced the step-one message,
|
||||
so later requests did not preserve the complete first-request prefix. The
|
||||
focused harness regression now proves one combined charter-plus-step-one user
|
||||
message, exact later prefix preservation, a replaced dynamic workbench message,
|
||||
no replayed assistant chatter, and an unchanged output schema. It proves request
|
||||
shape only; a nonzero provider cache hit remains runtime verification.
|
||||
|
||||
The bounded selector snapshot retains a pending agenda's exact token while its
|
||||
front-page proof is the latest observation. Any later query or exact-ID fetch
|
||||
retires that candidate; the assignment editor must propose the page again and
|
||||
|
|
|
|||
|
|
@ -232,4 +232,5 @@
|
|||
{"note": "Exact-source Run 59 at pushed 161ff2f19021249563e192cce9e6f76f00429d48 printed from immutable Run 58/revision 27 without upstream replay. The press witness binds one copy report with five queries, one applied Night close, three changed articles, and unchanged live services; archive SHA-256 ecb4db41e9a40ee4db8b0f83dce42d74e40f940e5930b1d3c1ced227dfec76b3 matches. Newspaper ee2ce08ceb627d433ac2d4ff7e1ebecb1437bf28b1399d23bfb3d5b066c8ab27 and audit b210d50d4ef1a350315d528f6d37e1e7b618926346713f737c4169c49df26b49 are frozen. A finalizer schema expectation was corrected and finalization resumed without a model call. Post-press editorial and two grounding diagnostics are later publication debt and do not reopen or block delivery of this edition.", "status": "ok", "ts": "2026-08-29T19:50:00+00:00", "type": "verification"}
|
||||
{"note": "Run 59 prompt audit falsifies v8 as the target newsroom/cache architecture: narrative selection made ten provider calls over 1,373,208 input characters and 582,184 prompt tokens with zero cached tokens. The generic agent harness places changing action schema before stable work and replays the accumulated tool transcript; selector, whole-page writer, and Night Editor duplicate editorial doctrine. Operator-authorized owners are story-and-journalist assignment from the frozen ledger, bounded personality-bearing journalist drafting, copy desk as sole semantic factual query owner, one Night Editor checklist repair preserving narrative, and deterministic structural/provenance/query-disposition press admission. Exact schema and cache cuts remain pending bounded source inspection.", "status": "ok", "ts": "2026-08-29T20:29:24+00:00", "type": "research"}
|
||||
{"note": "character-newsroom.v9 replaces the monolithic page writer with an embodied assignment editor and one bounded journalist agent per assigned story, preserves exact assignment-owned structure, bounds Night Editor context to copy-queried articles and facts, and makes generic agent requests append-only with stable schemas and cache routing. Verified 475/475 library tests, 16/16 strategic-smoke tests, and ghostlight-dungeon all-target checks; no provider or simulation run was launched.", "status": "ok", "ts": "2026-08-29T21:42:15+00:00", "type": "implementation"}
|
||||
{"ts": "2026-08-30T05:37:54+00:00", "type": "implementation", "status": "ok", "note": "character-newsroom.v10 gives the assignment editor a stable-prefix bounded workbench projection with compact inspected-record index and exact-ID refetch; retrieval retires any pending agenda. Exact task/editorial-bound agenda and per-article production checkpoints preserve accepted work before copy, and cited datelines compile into the reporter action schema. Verified 479/479 library tests, 16/16 strategic-smoke tests, and all-target check with only the pre-existing native-client unused-path warning."}
|
||||
{"note": "character-newsroom.v10 gives the assignment editor a stable-prefix bounded workbench projection with compact inspected-record index and exact-ID refetch; retrieval retires any pending agenda. Exact task/editorial-bound agenda and per-article production checkpoints preserve accepted work before copy, and cited datelines compile into the reporter action schema. Verified 479/479 library tests, 16/16 strategic-smoke tests, and all-target check with only the pre-existing native-client unused-path warning.", "status": "ok", "ts": "2026-08-30T05:37:54+00:00", "type": "implementation"}
|
||||
{"ts": "2026-08-30T06:11:33+00:00", "type": "verification", "status": "ok", "note": "Run 60 completed at source 139b8a69bc297e406ed5aea45574ea5e5724c685, world revision 27, without world or per-wave replay. Newspaper SHA-256 f98a4684e6eef43f5eb4bf104248a21dcea1ecdf1c4e4e14fa405f32c51b8c1c; archive SHA-256 6cacc7b543f75c4e9cfb8d7f695c90a507b7f11125e8204101af1a7dd74c61b1. A fresh blind editor read it as a real left-populist civic broadsheet rather than procedural generation, while flagging same-voice repetition as later debt. Run 60 reported 96902 prompt tokens and zero cache hits. The bounded-agent initializer had split the stable charter from a changing step message; the current cut makes the entire first request one stable user message and later replaces only a second dynamic workbench message. Existing assignment-editor prefix verification and all 479 library tests pass. Provider cache eligibility is proven; nonzero live cache telemetry remains for the next multi-step agent run."}
|
||||
|
|
|
|||
|
|
@ -234,3 +234,4 @@
|
|||
{"key": "2026-08-29T202924Z0000-0232-b61cd79c3dfd", "payload": "eyJub3RlIjogIlJ1biA1OSBwcm9tcHQgYXVkaXQgZmFsc2lmaWVzIHY4IGFzIHRoZSB0YXJnZXQgbmV3c3Jvb20vY2FjaGUgYXJjaGl0ZWN0dXJlOiBuYXJyYXRpdmUgc2VsZWN0aW9uIG1hZGUgdGVuIHByb3ZpZGVyIGNhbGxzIG92ZXIgMSwzNzMsMjA4IGlucHV0IGNoYXJhY3RlcnMgYW5kIDU4MiwxODQgcHJvbXB0IHRva2VucyB3aXRoIHplcm8gY2FjaGVkIHRva2Vucy4gVGhlIGdlbmVyaWMgYWdlbnQgaGFybmVzcyBwbGFjZXMgY2hhbmdpbmcgYWN0aW9uIHNjaGVtYSBiZWZvcmUgc3RhYmxlIHdvcmsgYW5kIHJlcGxheXMgdGhlIGFjY3VtdWxhdGVkIHRvb2wgdHJhbnNjcmlwdDsgc2VsZWN0b3IsIHdob2xlLXBhZ2Ugd3JpdGVyLCBhbmQgTmlnaHQgRWRpdG9yIGR1cGxpY2F0ZSBlZGl0b3JpYWwgZG9jdHJpbmUuIE9wZXJhdG9yLWF1dGhvcml6ZWQgb3duZXJzIGFyZSBzdG9yeS1hbmQtam91cm5hbGlzdCBhc3NpZ25tZW50IGZyb20gdGhlIGZyb3plbiBsZWRnZXIsIGJvdW5kZWQgcGVyc29uYWxpdHktYmVhcmluZyBqb3VybmFsaXN0IGRyYWZ0aW5nLCBjb3B5IGRlc2sgYXMgc29sZSBzZW1hbnRpYyBmYWN0dWFsIHF1ZXJ5IG93bmVyLCBvbmUgTmlnaHQgRWRpdG9yIGNoZWNrbGlzdCByZXBhaXIgcHJlc2VydmluZyBuYXJyYXRpdmUsIGFuZCBkZXRlcm1pbmlzdGljIHN0cnVjdHVyYWwvcHJvdmVuYW5jZS9xdWVyeS1kaXNwb3NpdGlvbiBwcmVzcyBhZG1pc3Npb24uIEV4YWN0IHNjaGVtYSBhbmQgY2FjaGUgY3V0cyByZW1haW4gcGVuZGluZyBib3VuZGVkIHNvdXJjZSBpbnNwZWN0aW9uLiIsICJzdGF0dXMiOiAib2siLCAidHMiOiAiMjAyNi0wOC0yOVQyMDoyOToyNCswMDowMCIsICJ0eXBlIjogInJlc2VhcmNoIn0=", "stored_at": "2026-08-29T20:29:24.348689+00:00", "type": "ghostlight.evidence_record.v0"}
|
||||
{"key": "2026-08-29T214215Z0000-0233-cdea7f28b17e", "payload": "eyJub3RlIjogImNoYXJhY3Rlci1uZXdzcm9vbS52OSByZXBsYWNlcyB0aGUgbW9ub2xpdGhpYyBwYWdlIHdyaXRlciB3aXRoIGFuIGVtYm9kaWVkIGFzc2lnbm1lbnQgZWRpdG9yIGFuZCBvbmUgYm91bmRlZCBqb3VybmFsaXN0IGFnZW50IHBlciBhc3NpZ25lZCBzdG9yeSwgcHJlc2VydmVzIGV4YWN0IGFzc2lnbm1lbnQtb3duZWQgc3RydWN0dXJlLCBib3VuZHMgTmlnaHQgRWRpdG9yIGNvbnRleHQgdG8gY29weS1xdWVyaWVkIGFydGljbGVzIGFuZCBmYWN0cywgYW5kIG1ha2VzIGdlbmVyaWMgYWdlbnQgcmVxdWVzdHMgYXBwZW5kLW9ubHkgd2l0aCBzdGFibGUgc2NoZW1hcyBhbmQgY2FjaGUgcm91dGluZy4gVmVyaWZpZWQgNDc1LzQ3NSBsaWJyYXJ5IHRlc3RzLCAxNi8xNiBzdHJhdGVnaWMtc21va2UgdGVzdHMsIGFuZCBnaG9zdGxpZ2h0LWR1bmdlb24gYWxsLXRhcmdldCBjaGVja3M7IG5vIHByb3ZpZGVyIG9yIHNpbXVsYXRpb24gcnVuIHdhcyBsYXVuY2hlZC4iLCAic3RhdHVzIjogIm9rIiwgInRzIjogIjIwMjYtMDgtMjlUMjE6NDI6MTUrMDA6MDAiLCAidHlwZSI6ICJpbXBsZW1lbnRhdGlvbiJ9", "stored_at": "2026-08-29T21:42:15.490465+00:00", "type": "ghostlight.evidence_record.v0"}
|
||||
{"key": "2026-08-30T053754Z0000-0234-3f241b6ff6fc", "payload": "eyJub3RlIjogImNoYXJhY3Rlci1uZXdzcm9vbS52MTAgZ2l2ZXMgdGhlIGFzc2lnbm1lbnQgZWRpdG9yIGEgc3RhYmxlLXByZWZpeCBib3VuZGVkIHdvcmtiZW5jaCBwcm9qZWN0aW9uIHdpdGggY29tcGFjdCBpbnNwZWN0ZWQtcmVjb3JkIGluZGV4IGFuZCBleGFjdC1JRCByZWZldGNoOyByZXRyaWV2YWwgcmV0aXJlcyBhbnkgcGVuZGluZyBhZ2VuZGEuIEV4YWN0IHRhc2svZWRpdG9yaWFsLWJvdW5kIGFnZW5kYSBhbmQgcGVyLWFydGljbGUgcHJvZHVjdGlvbiBjaGVja3BvaW50cyBwcmVzZXJ2ZSBhY2NlcHRlZCB3b3JrIGJlZm9yZSBjb3B5LCBhbmQgY2l0ZWQgZGF0ZWxpbmVzIGNvbXBpbGUgaW50byB0aGUgcmVwb3J0ZXIgYWN0aW9uIHNjaGVtYS4gVmVyaWZpZWQgNDc5LzQ3OSBsaWJyYXJ5IHRlc3RzLCAxNi8xNiBzdHJhdGVnaWMtc21va2UgdGVzdHMsIGFuZCBhbGwtdGFyZ2V0IGNoZWNrIHdpdGggb25seSB0aGUgcHJlLWV4aXN0aW5nIG5hdGl2ZS1jbGllbnQgdW51c2VkLXBhdGggd2FybmluZy4iLCAic3RhdHVzIjogIm9rIiwgInRzIjogIjIwMjYtMDgtMzBUMDU6Mzc6NTQrMDA6MDAiLCAidHlwZSI6ICJpbXBsZW1lbnRhdGlvbiJ9", "stored_at": "2026-08-30T05:37:54.505622+00:00", "type": "ghostlight.evidence_record.v0"}
|
||||
{"key": "2026-08-30T061133Z0000-0235-41f8be920abd", "payload": "eyJub3RlIjogIlJ1biA2MCBjb21wbGV0ZWQgYXQgc291cmNlIDEzOWI4YTY5YmMyOTdlNDA2ZWQ1YWVhNDU1NzRlYTVlNTcyNGM2ODUsIHdvcmxkIHJldmlzaW9uIDI3LCB3aXRob3V0IHdvcmxkIG9yIHBlci13YXZlIHJlcGxheS4gTmV3c3BhcGVyIFNIQS0yNTYgZjk4YTQ2ODRlNmVlZjQzZjVlYjRiZjEwNDI0OGEyMWRjZWExZWNkZjFjNGU0ZTE0ZmE0MDVmMzJjNTFiOGMxYzsgYXJjaGl2ZSBTSEEtMjU2IDZjYWNjN2I1NDNmNzVjNGU5Y2ZiOGQ3ZjY5NWM5MGE1MDdiN2YxMTEyNWU4MjA0MTAxYWYxYTdkZDc0YzYxYjEuIEEgZnJlc2ggYmxpbmQgZWRpdG9yIHJlYWQgaXQgYXMgYSByZWFsIGxlZnQtcG9wdWxpc3QgY2l2aWMgYnJvYWRzaGVldCByYXRoZXIgdGhhbiBwcm9jZWR1cmFsIGdlbmVyYXRpb24sIHdoaWxlIGZsYWdnaW5nIHNhbWUtdm9pY2UgcmVwZXRpdGlvbiBhcyBsYXRlciBkZWJ0LiBSdW4gNjAgcmVwb3J0ZWQgOTY5MDIgcHJvbXB0IHRva2VucyBhbmQgemVybyBjYWNoZSBoaXRzLiBUaGUgYm91bmRlZC1hZ2VudCBpbml0aWFsaXplciBoYWQgc3BsaXQgdGhlIHN0YWJsZSBjaGFydGVyIGZyb20gYSBjaGFuZ2luZyBzdGVwIG1lc3NhZ2U7IHRoZSBjdXJyZW50IGN1dCBtYWtlcyB0aGUgZW50aXJlIGZpcnN0IHJlcXVlc3Qgb25lIHN0YWJsZSB1c2VyIG1lc3NhZ2UgYW5kIGxhdGVyIHJlcGxhY2VzIG9ubHkgYSBzZWNvbmQgZHluYW1pYyB3b3JrYmVuY2ggbWVzc2FnZS4gRXhpc3RpbmcgYXNzaWdubWVudC1lZGl0b3IgcHJlZml4IHZlcmlmaWNhdGlvbiBhbmQgYWxsIDQ3OSBsaWJyYXJ5IHRlc3RzIHBhc3MuIFByb3ZpZGVyIGNhY2hlIGVsaWdpYmlsaXR5IGlzIHByb3Zlbjsgbm9uemVybyBsaXZlIGNhY2hlIHRlbGVtZXRyeSByZW1haW5zIGZvciB0aGUgbmV4dCBtdWx0aS1zdGVwIGFnZW50IHJ1bi4iLCAic3RhdHVzIjogIm9rIiwgInRzIjogIjIwMjYtMDgtMzBUMDY6MTE6MzMrMDA6MDAiLCAidHlwZSI6ICJ2ZXJpZmljYXRpb24ifQ==", "stored_at": "2026-08-30T06:11:33.326826+00:00", "type": "ghostlight.evidence_record.v0"}
|
||||
|
|
|
|||
|
|
@ -194,7 +194,7 @@ live_architecture:
|
|||
- Institution, faction, and consumer decision models
|
||||
|
||||
active_subgoals:
|
||||
- Pass the active narrative reverse-Turing acceptance with `character-newsroom.v10`: an independently dispatched reviewer sees only the procedurally generated fantasy front page and journalistically plausible editorializing, receives no generation mechanics or provenance, and does not immediately identify it as procedurally generated. A merely improved or less-bad score is not passage. Preserve Run 59 and Run 60 attempts 1 through 5 as closed evidence; do not replay world simulation or per-wave publications.
|
||||
- Preserve accepted `character-newsroom.v10` Run 60 and close the generic bounded-snapshot cache-prefix defect without resimulating or recomposing it. The blind reviewer read the page as a real left-populist civic broadsheet rather than immediately identifying procedural generation; its criticism that the page felt like three rewrites of one briefing is later editorial debt, not a reversal of the passed narrative reverse-Turing criterion.
|
||||
- Connect a Delvehold-owned adapter to the admitted generic consumer contract: shared compiler/consumer WorldSeed admission, externally authoritative institution-or-Gestalt snapshots, attributed proposal acknowledgement, and committed-event newspaper composition over typed CultNet, without consumer-specific IDs or schemas in Ghostlight.
|
||||
- Extend strategic/offscreen named-person individuation beyond the proven emerge-then-act path so people plot across sustained political waves, acquire relationships, fold, and return without granting a cell, arena, or model commit authority.
|
||||
- Pressure the proven 200-cell dispatcher with authored consumer hierarchies and measure provider cost; the active budget ceiling is 240 while provider concurrency remains separately capped at 32.
|
||||
|
|
@ -325,7 +325,7 @@ data_flow:
|
|||
|
||||
current_status:
|
||||
summary: Ghostlight's generic consumer boundary admits sparse WorldSeeds, runs the hundreds-class parallel cell machinery used by Dungeon, and projects grounded newspapers from committed public events. Local acceptance proves 1,000 subjects across 200 cells and two-wave durable named-person emergence. Exact-source provider run 38 at `596e50679244b5d42b4cfdf70d723f815751b8ff` resumed the preserved world at revision 8 without replaying compilation or four committed locality elaborations, recovered 51 of 52 strategic-wave cells on pulse three and the final cell on pulse four, then committed all six waves through revision 14. Pushed commit `3a69306f3004e4af2cd57bba612a6ad8d1b8132f` implements the mapped clock-consequence owner and is verified locally: world clocks own declared consequence text and exact observable scope; a bounded agent may propose legacy scope binding, while `WorldKernel` alone admits it and materializes stable threshold-crossing events and public news through the common mutation path. Binding, emitted-event ancestry, mutation receipts, and the next newspaper boundary persist atomically. Exact-source run 39 resumed run 38 without replaying its six committed waves, bound clock consequences, committed six new waves through revision 21, and emitted Issues 7 through 12 plus a final digest. This completes the mechanical provider acceptance path; all inherited wave 1-6 checkpoint hashes match run 38 exactly and live services were unchanged. Independent blind editorial review returns FAIL: only Issue 7 approaches spicy, while Issues 8-12 are dominated by plans, filings, inspections, warnings, and abstract relationship deltas without betrayal, scandal, public reaction, sustained reversal, or material lived cost. That run-39 diagnosis is superseded for the current phase: run 51 closes the world and reconciliation mechanics, and the active defect belongs to newsroom narrative selection and self-contained semantic provenance over immutable facts. Independent grounding review also returns FAIL: Issue 9 inflates a planned expedited agenda into completion, while Issue 8 assigns unsupported feminine pronouns to Sela Venn and Eryn Tal. Other grounding mechanics pass: 208/208 citations resolve, no future events appear, no replay occurred, the player remained unchanged, all 116/116 manifest entries verify, the archive is exact, and root independently confirmed the live service PIDs and invocation IDs remained unchanged. Editorial and grounding acceptance are terminally failed for run 39. Eight titled elaborators use the generic agent harness under deterministic weighted scheduling, bounded parallelism, and Luna/Terra/Sol routing. Workers remain proposal-only; deterministic admission binds exact frozen schedules, dispatch, receipts, conflicts, and semantic verification, and `WorldKernel` alone owns atomic CultCache persistence. Destination reconciliation is a private transactional workbench, provider schema compatibility is lowered once at the shared model-connector boundary, and durable elaboration and strategic-pulse checkpoints bind to their canonical mutation proofs. The generic ModelAgent harness remains consumer-neutral transport. Provider run 23 remains stopped; earlier failed runs and checkpoint archives remain immutable provenance. The live daemons remain outside the acceptance body. Dungeon play remains regression pressure, the Delvehold game-side adapter remains unimplemented, and unpublished Mars and Kalsa destination previews remain unapproved.
|
||||
provider_acceptance_checkpoint: Run 60 attempt 5 passed the same-phrase checklist boundary but failed deterministic dateline validation on Mera Quill's article before a page could close. Because no pre-copy newsroom output was durable, the attempt replayed the expensive selector instead of resuming its admitted agenda and accepted reporter work. No world or per-wave work replayed, but no immutable v9 front page or reverse-Turing evidence exists. Attempt 4's cache evidence remains judgment-changing: 208,480 total prompt tokens with 79,616 hits and 128,864 misses; the selector alone consumed 189,548 tokens across ten calls, 77,824 hits, 111,724 misses, and 714,366 serialized input characters. Stable prefixes hit, but assignment context and resume ownership remain unsolved.
|
||||
implementation_checkpoint: The uncommitted `character-newsroom.v10` cut implements a generic tool-owned bounded context-snapshot seam: the harness preserves the stable instruction prefix while the tool replaces accumulated chatter with exact current workbench state. Veyra uses it for a compact inspected-record index and bounded exact-ID fetch; any query or fetch retires a pending agenda and requires a fresh proposal and proof. Exact task/editorial-bound production checkpoints persist the admitted agenda before reporters and each accepted article with its assignment, embodied reporter profile, and receipt chain. Reporter datelines are deterministic cited-place enums. Context membranes expose Veyra's own profile plus the journalist roster, each reporter's own profile/assignment/cited facts, Dalen's factual page desk, and Meret's queried subset; roles do not receive one omniscient newsroom packet. The affected `newspaper::tests::narrative_workbench_queries_foundational_context_by_stable_record_id` rerun passes; a fresh full library run passes 479/479, strategic-smoke passes 16/16, and all-target checks pass with only the pre-existing native-client unused `path` warning. Provider cache efficiency and reverse-Turing acceptance remain unproven.
|
||||
next_action: Commit and push the verified v10 cut, then resume the same Run 60 root without world or per-wave replay. The exact task/editorial-bound agenda and accepted-article checkpoints must prevent replay of Veyra or completed reporters; only a resulting immutable v10 page proceeds to blind reverse-Turing review. Preserve attempts 1 through 5, do not launch a fresh campaign, and do not treat local cache structure or a merely less-bad review as passage.
|
||||
provider_acceptance_checkpoint: Exact pushed commit `139b8a6` completed Run 60 under `character-newsroom.v10` without world or per-wave replay. Its acceptance witness and terminal status bind the completed page and exact resume lineage. The independently dispatched blind reviewer, shown only the reader-facing fantasy newspaper, read it as a real left-populist civic broadsheet and did not immediately identify procedural generation, so the narrative reverse-Turing criterion passes. The review's substantive criticism is that the three stories feel like three rewrites of one briefing; preserve that as future editorial differentiation debt. The run used 96,902 prompt tokens and reported zero cache hits.
|
||||
implementation_checkpoint: Exact pushed `139b8a6` owns the provider-proven v10 bounded assignment context, task/editorial-bound agenda and per-article production checkpoints, deterministic cited-place datelines, embodied newsroom context membranes, and no-replay resume. Run 60 falsifies one cache claim: bounded snapshot initialization split the stable charter and first-step directive into separate initial messages, so the provider could not reuse the intended first-request prefix. The current one-file `agent.rs` cut collapses the stable charter and step directive into one exact initial cacheable message while preserving later bounded workbench replacement; focused agent and newspaper tests pass. The accepted Run 60 page remains immutable and does not need recomposition to verify this harness boundary.
|
||||
next_action: Finish proportional verification of the one-file cache-prefix cut, then commit and push it. Do not resimulate, recompose, or reopen accepted Run 60. Preserve the zero-hit result as the falsifying provider evidence and the blind review's three-rewrites criticism as later editorial debt; future provider work may measure the corrected prefix on a new task, not by replaying this accepted edition.
|
||||
gestalt_population: Gestalt Personas own shared population baselines; persistent member deltas own named individuality; WorldKernel materialization and approval-gated fission preserve lineage and identity. Materialisation/folding changes only representation and the exact member delta, advances resolution epoch, and retires the old cover; it has no Gestalt-wide effect authority. Selected actionable member exceptions are mandatory Projector perspective owners, so aggregation cannot silently erase their decision. Presence projection is limited to nearby active leaves and exact-location dormant members, includes reciprocal player relationship evidence, and may propose an earned cast without committing it. Simulation cells are derived covers only.
|
||||
|
|
|
|||
Loading…
Reference in a new issue