Allow complete copy desk objections
This commit is contained in:
parent
26d1d878c2
commit
8add243ccc
4 changed files with 56 additions and 15 deletions
|
|
@ -1599,14 +1599,9 @@ fn validate_copy_desk_report(
|
|||
report: &WorldNewspaperCopyDeskReport,
|
||||
) -> Result<()> {
|
||||
validate_single_line(&report.assessment, 500, "copy-desk assessment")?;
|
||||
let mut exact_claims = BTreeSet::new();
|
||||
for query in &report.queries {
|
||||
let article_index = usize::from(query.article_index);
|
||||
validate_single_line(&query.claim_or_phrase, 500, "copy-desk claim")?;
|
||||
validate_single_line(&query.reason, 500, "copy-desk reason")?;
|
||||
if !exact_claims.insert((article_index, query.claim_or_phrase.as_str())) {
|
||||
return Err(anyhow!("copy desk repeated one exact query phrase"));
|
||||
}
|
||||
validate_grounding_finding_target(draft, query)?;
|
||||
}
|
||||
Ok(())
|
||||
|
|
@ -3482,6 +3477,33 @@ mod tests {
|
|||
}
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn copy_desk_may_lodge_distinct_objections_to_one_exact_phrase() {
|
||||
let draft: EditorialPageDraft = serde_json::from_str(ACCEPTED_PAGE).unwrap();
|
||||
let phrase =
|
||||
"A gambling debt reaches the throne room and leaves one official carrying the blame.";
|
||||
let report = WorldNewspaperCopyDeskReport {
|
||||
assessment: "The deck has both a factual and a copy-level defect.".into(),
|
||||
queries: vec![
|
||||
WorldNewspaperGroundingFinding {
|
||||
article_index: 0,
|
||||
category: WorldNewspaperGroundingCategory::UnsupportedFact,
|
||||
claim_or_phrase: phrase.into(),
|
||||
reason: "The cited record does not locate the debt in the throne room.".into(),
|
||||
},
|
||||
WorldNewspaperGroundingFinding {
|
||||
article_index: 0,
|
||||
category: WorldNewspaperGroundingCategory::MechanicalCopy,
|
||||
claim_or_phrase: phrase.into(),
|
||||
reason: "The deck states blame abstractly instead of naming the court action."
|
||||
.into(),
|
||||
},
|
||||
],
|
||||
};
|
||||
|
||||
validate_copy_desk_report(&draft, &report).unwrap();
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn narrative_workbench_owns_lead_and_allows_shared_foundational_records() {
|
||||
let records = public_news_records(&campaign_with_two_news()).unwrap();
|
||||
|
|
|
|||
|
|
@ -1393,6 +1393,25 @@ v9 issue runs despite a matching historical row. Gates pass 475/475 library
|
|||
tests, 16/16 strategic-smoke tests, and all-target checks. Provider and
|
||||
reverse-Turing acceptance remain unproven.
|
||||
|
||||
Run 60 attempt 4 at exact pushed `26d1d87` passed the historical tombstone and
|
||||
reached live v9 provider work without world or per-wave replay. Ten Sol selector
|
||||
actions assigned Mera Quill, Ossan Reed, and Lysa Fen; each reporter needed one
|
||||
semantic correction. The first copy-desk transport attempt timed out at 300
|
||||
seconds and the second completed. Deterministic validation then rejected two
|
||||
distinct checklist objections because they named the same exact article phrase.
|
||||
The current tiny fix deletes only that false uniqueness rule while preserving
|
||||
exact single-occurrence target validation: distinct factual or copy objections
|
||||
may target one phrase, and Night must address every query index once. Focused
|
||||
newspaper tests pass 21/21 and strategic-smoke tests pass 16/16; full library
|
||||
passes 476/476 and all-target checks pass.
|
||||
|
||||
Live cache evidence is mixed, not acceptance: all work used 208,480 prompt
|
||||
tokens, with 79,616 hits and 128,864 misses. The selector alone used 189,548
|
||||
tokens across ten calls, with 77,824 hits, 111,724 misses, and 714,366 serialized
|
||||
input characters. Stable prefixes eventually hit, but selector context remains
|
||||
too large and needs a later ownership cut. No v9 front page or reverse-Turing
|
||||
result is accepted yet.
|
||||
|
||||
Run 54 exposed one separate upstream publicity defect: a public strategic
|
||||
activity propagates its channel to private `MemberMemory` outcomes, which is
|
||||
how Orin Pell retaining a memory became a public news row. The newsroom should
|
||||
|
|
@ -1402,11 +1421,10 @@ 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 inert-tombstone compatibility fix. Resume the same Run
|
||||
60 root at final composition without simulation or per-wave replay; do not
|
||||
launch a fresh campaign or let the historical tombstone regain close
|
||||
authority. Measure actual cached tokens and freeze the resulting
|
||||
reader-facing v9 front page.
|
||||
2. Commit and push the verified checklist-admission fix. Resume the same Run 60 root as attempt 5
|
||||
without simulation or per-wave replay; do not launch a fresh campaign.
|
||||
Freeze the resulting reader-facing v9 front page. Keep selector context
|
||||
reduction as a later ownership cut; partial cache hits do not close it.
|
||||
3. 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
|
||||
|
|
|
|||
|
|
@ -1480,8 +1480,9 @@ The deliberative newsroom boundary is live under this authority map:
|
|||
admission, exact focus proof, agenda commit, selected-record alignment, and
|
||||
audit grounding. V9 gates prove stable selector and Night schemas plus
|
||||
append-only provider prefixes, assignment-aware reporter context isolation, one complete
|
||||
copy report, exact unique query targets, one Night Editor action over only the
|
||||
queried articles and facts, complete query disposition, preservation of
|
||||
copy report, exact single-occurrence query targets, multiple categorical
|
||||
objections to the same phrase, one Night Editor action over only the queried
|
||||
articles and facts, complete query disposition, preservation of
|
||||
assignment-owned structure and citations, no post-close copy or editorial
|
||||
stage, deterministic source/printed digests, exact receipt ancestry,
|
||||
close-checkpoint resume without reporter or copy replay, idempotent persisted
|
||||
|
|
|
|||
|
|
@ -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 remains the active `character-newsroom.v9` acceptance root and has made no v9 provider call. Attempt 1 stopped on the missing `wave_count + 1` final-only sentinel. Attempt 2 reached final composition without simulation or per-wave replay, then exposed automatic v7 close import as obsolete authority. Attempt 3 built exact pushed source `c0a001c` and stopped before any provider call with an empty receipt list because the private close-origin enum could not decode historical `legacy_v7_checkpoint`. Run 59 remains the prior immutable printed evidence; no Run 60 attempt changes it or supplies reverse-Turing evidence.
|
||||
implementation_checkpoint: Exact pushed commit `c0a001c` removes legacy reconciliation/import from live newsroom authority, makes advance return exactly one composition, and leaves the exact-current close checkpoint as the sole resume owner. `character-newsroom.v9` retains its embodied assignment editor, bounded assigned journalists, single factual copy checklist, checklist-bound Night close, typed append-only prompt history, stable action schemas, and deterministic press admission. The current single-file uncommitted fix reintroduces `legacy_v7_checkpoint` solely as an inert private decoding tombstone, filters it before exact-current close selection, and adds a regression proving a fresh v9 issue runs despite a matching historical row. Gates pass 475/475 library tests, 16/16 strategic-smoke tests, and all-target checks. Provider and reverse-Turing acceptance remain unproven.
|
||||
next_action: Commit and push the inert-tombstone compatibility fix, then resume the same Run 60 root again at final composition without replaying simulation or per-wave publications. Capture real cached-token behavior and the immutable v9 front page, then dispatch the independent blind journalistic review under the exact reverse-Turing criterion. Preserve Run 59 and all three failed Run 60 attempts; do not launch a fresh campaign, let the tombstone regain resume authority, or redefine a merely less-bad review as passage. Defer multi-publication expansion, TeX layout, and engraved cuts.
|
||||
provider_acceptance_checkpoint: Run 60 attempt 4 at exact pushed `26d1d87` passed the historical tombstone and reached live `character-newsroom.v9` provider work with no world or per-wave replay. Ten Sol selector actions assigned Mera Quill, Ossan Reed, and Lysa Fen; each reporter needed one semantic correction. The copy-desk inference completed on its second transport attempt after the first timed out at 300 seconds. Deterministic admission then rejected two distinct checklist objections that named the same exact article phrase. Total prompt use was 208,480 tokens: 79,616 cache hits and 128,864 misses. The selector alone used 189,548 tokens across ten calls, with 77,824 hits, 111,724 misses, and 714,366 serialized input characters. Stable prefixes now produce real hits, but selector context remains excessive; no front page or reverse-Turing evidence is accepted yet.
|
||||
implementation_checkpoint: Exact pushed `26d1d87` owns the inert historical tombstone and exact-current close resume boundary. `character-newsroom.v9` retains its embodied assignment editor, bounded assigned journalists, single factual copy checklist, checklist-bound Night close, typed append-only prompt history, stable action schemas, and deterministic press admission. The current tiny uncommitted fix removes only the false checklist-phrase uniqueness rule while preserving exact single-occurrence target validation: a copy editor may lodge distinct factual or copy objections against the same phrase, and the Night Editor must address every query index once. Verification passes 21/21 focused newspaper tests, 476/476 library tests, 16/16 strategic-smoke tests, and all-target checks. Provider execution and partial cache reuse are proven, but caching and reverse-Turing acceptance are not solved.
|
||||
next_action: Commit and push the verified checklist-admission fix. Resume the same Run 60 root as attempt 5 without replaying simulation or per-wave publications; capture the immutable v9 front page and dispatch the independent blind journalistic review under the exact reverse-Turing criterion. Preserve attempts 1 through 4. Do not weaken exact phrase occurrence, let one objection erase another, claim caching solved from partial hits, launch a fresh campaign, or redefine a merely less-bad review as passage. Treat selector context size as a later ownership cut after this acceptance boundary.
|
||||
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