You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -372,7 +372,7 @@ inkcheck can be driven by a human at a terminal, a CI job, or an optional AI cod
372
372
- **Compilation** uses `inklecate`, the canonical compiler — found via `$INKLECATE_PATH`, then `PATH`, then auto-downloaded from the pinned official ink 1.2.1 release into `~/.cache/inkcheck` on first run. Downloaded archives are verified against pinned SHA-256 hashes before extraction. Stories are compiled with `-c` so all knot visits are counted.
373
373
- **Exploration** runs the compiled story in [inkjs](https://github.com/y-lohse/inkjs) (the official JS runtime port), reusing pooled story instances so the compiled JSON is parsed once per pass and states rewind via `LoadJson`. Inkcheck initializes story randomness from `--story-seed` (default 1), then preserves Ink's RNG state in every saved branch; authored `SEED_RANDOM(...)` remains authoritative when executed. States are deduplicated by content hash. `INCLUDE`s are followed.
374
374
- The CLI uses a bounded, adaptive portfolio search. Complementary passes — last-choice-first, first-choice-first, and inside-out DFS, a diversity-first beam, and seeded random walks — run interleaved in ten deterministic rounds. Initial weights (roughly 20/20/26/15/20%, or a shape profile's suggestion under `--auto`) are reallocated each round toward passes whose findings are still growing, with an intended 8% fractional floor per active pass. Research-only policy replay turns that intent into auditable cumulative integer service and normalizes recency to each pass's observed execution windows instead of a global state count. It requires three windows before estimating yield, expires signals after one or two measured windows without renewal, and permits experimental allocation overlays only for renewed runtime/assertion evidence or explicit goal progress; broad coverage stays with the established scheduler. The production scheduler remains unchanged until the full promotion corpus passes. The passes are complementary: the DFS orderings systematically exhaust subtrees, the beam spreads budget across variable-state lineages within a hard frontier cap, and random walks re-roll every choice point so early-choice combinations get sampled instead of repeated. Findings merge into one report, each labeled with the pass that found it, and the executed schedule appears in `--json` output.
375
-
- Workload-aware `--concurrency auto` is the local portfolio default. Its live 1,024-state inside-out DFS pilot becomes the prefix of the normal first adaptive round, then either continues sequentially or overlaps untouched passes in bounded persistent workers. The 80-cell 100K gate retained exact findings, proof, and adaptive schedules with only two open-frontier activations; matched 5M *The Intercept* depth-30/depth-100 gates retained exact evidence, rejected the depth-bound job, and improved the sustained job from 657.7s to 489.0s. Every state remains inside one ceiling and duplicate pilot evaluations are zero. Explicit `1` preserves sequential execution; explicit 2-16 ceilings preserve fixed concurrency. See the [concurrency evaluation](docs/concurrency-evaluation.md).
375
+
- Workload-aware `--concurrency auto` is the local portfolio default. Its live 1,024-state inside-out DFS pilot becomes the prefix of the normal first adaptive round, then either continues sequentially or overlaps untouched passes in bounded persistent workers. If time or memory binds during that pilot—or the deadline arrives before any worker initializes—the valid pilot is returned as an explicitly resource-truncated partial report, never mislabeled as state-budget exhaustion. The 80-cell 100K gate retained exact findings, proof, and adaptive schedules with only two open-frontier activations; matched 5M *The Intercept* depth-30/depth-100 gates retained exact evidence, rejected the depth-bound job, and improved the sustained job from 657.7s to 489.0s. Every state remains inside one ceiling and duplicate pilot evaluations are zero. Explicit `1` preserves sequential execution; explicit 2-16 ceilings preserve fixed concurrency. See the [concurrency evaluation](docs/concurrency-evaluation.md).
376
376
- Experimental `--search=shared` keeps one global state identity and exposes the pending work through deep, novelty, and seeded frontier views. A state chosen by any view is expanded once; expanded checkpoint JSON is released immediately, compact parent links survive only while a pending descendant needs the exact repro path, and stale view IDs are periodically compacted. Reports expose component accounting and optional explicit checkpoint envelopes. Variable-state and variable-transition rarity are recorded as evaluation telemetry.
377
377
- Experimental `--search=shared-variable` replaces one of every eight shared-frontier selections with a variable-rarity view. Its score combines the observed frequency of the destination variable snapshot and the rarest change on that edge; it cannot consume more than its fixed slice, so graph novelty, depth, and seeded exploration remain represented.
378
378
- The moment any systematic pass visits every reachable state without hitting a limit, the whole portfolio stops: every further state would be redundant. A small fully-explorable story at the default 10,000,000-state budget still finishes in the handful of states it actually has — the large default costs nothing when a story is exhaustible.
Copy file name to clipboardExpand all lines: docs/report-schema-v1.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -53,7 +53,7 @@ Search goals may contain ordered `stages`. Each stage reports `reached`, `not_re
53
53
54
54
Each `explore.passes` entry includes a deterministic `discoveryCurve`, bounded to at most 64 samples. Samples record pass-local state count; cumulative and marginal exact terminals, fallback visible outcomes, runtime errors, assertion violations, reached goals/stages, authored knots, and unique-state novelty; plus the gap from the immediately preceding discovery event. Portfolio reports also carry a merged curve recorded in actual scheduler order (cross-pass unique-state novelty is zero because independent pass hashes are not globally comparable). When compaction occurs, early and latest samples are retained while intermediate samples are deterministically downsampled. Wall-clock time remains observational in progress `elapsedMs`, outside the deterministic curve. These are measured yield facts, not an asymptote estimate, stopping recommendation, or coverage proof.
55
55
56
-
Portfolio reports record the resolved worker ceiling and `concurrencyMode` (`auto` or `fixed`) in `effectiveConfiguration`. Automatic mode adds `explore.execution.activation`: a versioned deterministic decision and reason, pilot pass/budget/consumption, uncertainty, production eligibility, and duplicate state evaluations. The production `single-pass-frontier-v3` policy reports zero duplicates because its pilot is the prefix of the ordinary first round. `explore.execution` also records requested/effective concurrency plus canonical per-pass grants, consumption, ownership, and completion/resource/failure status. Persistent worker slots retain pass state across adaptive rounds; pass grants and final merge order remain deterministic regardless of completion timing. A failed worker sets `truncatedBy.worker` and `bindingLimit: "worker"` unless another systematic pass independently proves exhaustion; the latest completed snapshots remain valid partial evidence.
56
+
Portfolio reports record the resolved worker ceiling and `concurrencyMode` (`auto` or `fixed`) in `effectiveConfiguration`. Automatic mode adds `explore.execution.activation`: a versioned deterministic decision and reason, pilot pass/budget/consumption, uncertainty, production eligibility, and duplicate state evaluations. The production `single-pass-frontier-v3` policy reports zero duplicates because its pilot is the prefix of the ordinary first round. If the live pilot binds on memory or time, `pilot_memory_limit` or `pilot_time_limit` keeps that pilot as the partial result. If the deadline arrives after the pilot but before any worker initializes, `worker_initialization_deadline` does the same. These reasons set the matching resource truncation and explicitly clear `truncatedBy.maxStates`; genuine worker initialization failures remain errors. `explore.execution` also records requested/effective concurrency plus canonical per-pass grants, consumption, ownership, and completion/resource/failure status. Persistent worker slots retain pass state across adaptive rounds; pass grants and final merge order remain deterministic regardless of completion timing. A failed worker sets `truncatedBy.worker` and `bindingLimit: "worker"` unless another systematic pass independently proves exhaustion; the latest completed snapshots remain valid partial evidence.
57
57
58
58
Shared-search pass telemetry includes `sharedMemory.current`, per-component `peak` values, configured pending-state/byte `limits`, `releasedNodes`, and `frontierCompactions`. Components cover pending and active state JSON/variable snapshots, retained witness ancestry, dedupe keys, semantic indexes, frontier references, and findings. Serialized strings use UTF-8 byte counts; structural bytes are documented estimates. `totalAccountedBytes` is deterministic retained-payload accounting, not process heap or RSS.
0 commit comments