@junghanacs/entwurf 0.36.1 → 0.37.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/AGENTS.md +2 -2
- package/CHANGELOG.md +301 -0
- package/CONTRIBUTING.md +1 -1
- package/README.md +5 -0
- package/VERIFY.md +26 -17
- package/docs/setup-clean-host.md +1 -0
- package/mcp/entwurf-bridge/dist/pi-extensions/meta-bridge-pi-durable.js +16 -1
- package/package.json +4 -3
- package/pi/pi-durable/bootstrap.mjs +113 -11
- package/pi/pi-durable/carrier/harness-setup.js +4 -1
- package/pi/pi-durable/carrier/prompt.js +31 -2
- package/pi/pi-durable/carrier/runtime.js +11 -2
- package/pi/pi-durable/carrier/sessions.js +75 -5
- package/pi/pi-durable/carrier/tui.js +23 -0
- package/pi/pi-durable/overlay/upstream-pin.json +10 -10
- package/pi-extensions/meta-bridge-pi-durable.ts +20 -0
- package/run.sh +44 -17
- package/scripts/check-gate-qualification.ts +3 -3
- package/scripts/check-release-gate-outcomes.ts +200 -387
- package/scripts/fixtures/herdr-supply.json +11 -10
- package/scripts/lib/codex-fresh-live-protocol.ts +6 -1
- package/scripts/lib/qualification-ledger.ts +2 -2
- package/scripts/mutants/herdr-supply.json +5 -5
- package/scripts/mutants/pi-durable.json +117 -45
- package/scripts/mutants/release-gate.json +18 -52
- package/scripts/smoke-mux-lifecycle-live.ts +1 -1
- package/scripts/ci-qualify-decide.sh +0 -256
- package/scripts/fixtures/qualify-replay.json +0 -149
package/run.sh
CHANGED
|
@@ -181,7 +181,9 @@ Usage:
|
|
|
181
181
|
./run.sh check-pi-durable-contact # #129 L-identity gate, CHECKOUT-ONLY (an installed package refuses it in run_ts). Opens the REAL durable app from THIS checkout's verified carrier (pi/pi-durable/carrier/ under its resolver, against the checkout's pinned pi SDK set — refused by name first) with the pi-durable contact, births the citizen and runs its tools adapter-direct through a privately emitted branch bridge (ENTWURF_PI_DURABLE_BRIDGE_ENTRY; its registry must match this checkout). Matrix roots {default, explicit} x {fresh, --continue}: one record keyed by the durable session dir, sender marker on the spawned host pid, exactly one bridge child whose /proc PPID is that host, poisoned identity carriers kept from it, its four root carriers bound to the roots written, the receiver ARMED (raw marker owned by the host pid + start key as pi-durable-host, joined to the sender marker; removed on close), self = the record and replyable, peers from an outside bridge, same garden id on reopen; the bundle's compiled owner join must admit pi-durable-host. Reaps only the host/bridges it owns on any failure. Harness-bypassed: no model turn, no ToolTask. Missing inputs → SKIP (97), never a pass
|
|
182
182
|
./run.sh check-pi-durable-send # #129 L-send FIRST CELL, CHECKOUT-ONLY. Same input as check-pi-durable-contact. One native durable turn: the app's own controller input → GenerationTask → ToolTask → the contact's entwurf_v2 → the private bridge → a seeded self-fetch target (C2 recipe, owned by a separate idle child). S = a 127.0.0.1 scripted OpenAI-compatible endpoint configured through the app's documented models.json (dummy key, PI_OFFLINE); H = the native ToolTask path; V (a vendor turn) is NOT run. Oracles: the wire (tools offered, v2 schema = the bridge's tools/list, exactly two requests, the tool result + receipt in the second), the raw mailbox (.msg 1, signal, sender = the host record), the native view (one call, its settled result, root current). Not exactly-once, not recovery, not a recipient turn. Missing inputs → SKIP (97)
|
|
183
183
|
./run.sh check-demo-reproducibility # source-checkout-only: discover offline demo Node tests; no LIVE, model, render or publication
|
|
184
|
-
./run.sh check-pi-durable-beside # #129 mutant execution coordinate (VERIFY rule 3): run_vitest over
|
|
184
|
+
./run.sh check-pi-durable-beside # #129 mutant execution coordinate (VERIFY rule 3): run_vitest over four pi-durable beside tests (adapter, carrier/SDK-set verifier, preflight, owner join) — a pi-durable qualification lane gate argv. Same files check-tests-beside-behavior already runs.
|
|
185
|
+
./run.sh check-pi-durable-carrier # #144 mutant execution coordinate (VERIFY rule 3): run_vitest over the carrier test alone (relocation/resolver, owned-source emission and typecheck fence, package file list, task footer, the real bootstrap on the 1.2 SDK, stream transport, skills prompt) — the gate argv of the carrier claims, whose QKs live only in that file. Same file check-tests-beside-behavior already runs.
|
|
186
|
+
./run.sh check-pi-durable-native-module # #144 mutant execution coordinate (VERIFY rule 3): run_vitest over the bootstrap's native-module file and directory ingress test alone — the gate argv of the ingress claims, whose QKs live only in that file. Same file check-tests-beside-behavior already runs.
|
|
185
187
|
./run.sh check-pi-durable-receive # #129 L-receive FIRST CELL, CHECKOUT-ONLY. Same input (the bundle must carry the pi-durable-host owner join). The host driver gives the app NO input; a seeded claude-code sender (marker owned by a separate idle child, handed to a gate-owned sending bridge through ENTWURF_META_SENDER_MARKER) enqueues one message, the host's doorbell admits its notice to the ROOT conversation, and the scripted model drains it with entwurf_inbox_read. S withholds response #1 until the ENQUEUE receipt, the .delivered bytes, the signal, the host-owned receiver marker and the notice are captured. Oracles: receiver() admission, native view, raw archive (.delivered.read + lastReadAt), wire (exactly two requests, drain result = view), and after a green reap a forensic read-only SQLite copy (submission row by request id = reported id, root, input, done, placed entry = the notice). V NOT run. Missing inputs → SKIP (97)
|
|
186
188
|
./run.sh check-copilot-receive-arm # #82 RAIL 5 gate: the REAL receiver installer + the REAL extension.mjs forked with a stubbed SDK. Arms only after birth, marker owned by the WATCHER pid, self-fetch dispatch answer, doorbell carries the garden id and NOT the body, id-drift/foreign-parent refusals. Hermetic; no Copilot, no model turn
|
|
187
189
|
./run.sh check-copilot-launch # #82 RAIL 7 gate: the MANAGED launch `entwurf copilot`, driven through its public address against a FAKE VENDOR on a sandbox PATH. Receiver precondition refusals, EXTENSIONS token + operator token preservation, injected defaults before the `--` terminator, byte-identical argv, the 11 explicit permission/surface policy overrides that suppress `--yolo`, exec (not fork) pid identity, exit passthrough, recursion refusal. Hermetic; no Copilot, no model turn
|
|
@@ -254,8 +256,8 @@ Usage:
|
|
|
254
256
|
./run.sh smoke-omp-receive-live # #87 bundle B acceptance: another harness wakes an ALREADY-OPEN omp citizen, which reads its inbox and answers in the same session. Decides its own outcome from the capability registry — omp without a drainable mailbox is a protocol SKIP (no receiver unit exists to arm), which an unattended release-gate reports and `--cut` reads as RED; a registry that claims a receive rail with no acceptance body here is a FAIL
|
|
255
257
|
./run.sh smoke-entwurf-chain-live # LIVE cross-harness delivery chain: native Claude Code -> pi GPT -> pi ACP Sonnet -> mailbox terminus, proving sender identity/replyable at every hop and a real read receipt at the end. Prerequisites (claude on PATH, pi credentials per backend) report protocol SKIP, never a pass
|
|
256
258
|
./run.sh check-release-gate-outcomes # release-gate STEP OUTCOME protocol (P1): one skip exit code shared by the shell + TS halves, classifier never rounds a skip up to a pass, `--cut` refuses a MUST SKIP while a bare diagnostic stays exit 0, no LIVE smoke keeps the old exit-0 skip shape, and both real skip surfaces are INVOKED and observed to propagate the code
|
|
257
|
-
./run.sh check-gate-manifests # the HEAD of that qualification, on its own: runner self-test + the committed manifests validated against the origin index + the declared lane inventory. Executes ZERO committed mutants (only the self-test's synthetic fixture mutants, in tmp fixture repos) and never snapshots this repo (~20s), which is why it lives in check:hermetic while the body
|
|
258
|
-
./run.sh check-gate-qualification # kill-proof qualification (the gate-of-gates): runner self-test (classifier truth table + synthetic negatives incl. wrong-reason/hang/control-red/impurity) + committed mutant manifests (scripts/mutants/*.json) run in an isolated snapshot repo under control→mutant→restore→control; the real checkout is never written. Evidence = claim IDs + killed mutant IDs, never assertion counts. Bare = the whole body (the
|
|
259
|
+
./run.sh check-gate-manifests # the HEAD of that qualification, on its own: runner self-test + the committed manifests validated against the origin index + the declared lane inventory. Executes ZERO committed mutants (only the self-test's synthetic fixture mutants, in tmp fixture repos) and never snapshots this repo (~20s), which is why it lives in check:hermetic while the body runs only as the optional CI schedule/manual-dispatch drift diagnostic (#144) — three of the five reds qualification ever produced in CI died right here, before a mutant gate ran (#99 B-3)
|
|
260
|
+
./run.sh check-gate-qualification # kill-proof qualification (the gate-of-gates): runner self-test (classifier truth table + synthetic negatives incl. wrong-reason/hang/control-red/impurity) + committed mutant manifests (scripts/mutants/*.json) run in an isolated snapshot repo under control→mutant→restore→control; the real checkout is never written. Evidence = claim IDs + killed mutant IDs, never assertion counts. Bare = the whole body (the CI schedule/dispatch drift diagnostic, #144); `--group '<argv JSON>' --receipt <abs path outside the repo>` = one affected exact-argv group, a PARTIAL receipt (development's run, #133)
|
|
259
261
|
./run.sh check-probe-ordering # §11-7 ordering-probe deterministic gate: raw-client SAMENESS pinned to backend.ts (sequence/args/timeouts/permission policy — the probe may never measure a lookalike), phase attribution incl. set-model, probe-mode fixture wire markers (delay honored, probeRunId REQUIRED, smoke-acp-mcp-live legacy compat), event-log door integrity (reserved keys refused at write; unknown marker name, broken sort axis, or a payload the classifier cannot judge on is MALFORMED, never a quiet event), and the §11-7 paired-verdict truth table (P0/I0 outside the space, phase-qualified D, B promotion ladder, C, A two-delay rule). Offline/deterministic; one product claim (no production prompt cutoff) is replant-qualified via scripts/mutants/probe-ordering.json, while the other assertions are direct [CHECK:*] contracts
|
|
260
262
|
./run.sh check-probe-cli-shim # §11-7-c B-name-snapshot PRODUCER gate: the CLI shim driven as a REAL process against fake CLIs (no API, no cost). Proves what a defect would buy — FABRICATED evidence (a malformed init is never reported as an empty name set; the boot report carries the true target path+sha256 the classifier verifies against the roster), a DESTROYED turn (byte transparency across mid-UTF8/CRLF/oversized/unterminated framing, exit-code fidelity, signal re-raise, inbound signal forwarding, stderr passthrough, stdout backpressure), and LEAKED operator state (exact-allowlist env scrub, no argv/env/prompt body in the log). Offline/deterministic; 20 direct [CHECK:*] contracts, deliberately no longer replant-qualified after #70 subtraction
|
|
261
263
|
./run.sh smoke-agy-statusline-state # agy ambient garden-id statusLine install/doctor/inverse regression. Offline/deterministic
|
|
@@ -273,7 +275,7 @@ Usage:
|
|
|
273
275
|
./run.sh uninstall-meta-bridge # 1.0.0 meta-bridge Phase 2: stateful GLOBAL uninstall (restore only keys/items captured in install-state)
|
|
274
276
|
./run.sh doctor-meta-bridge # THE RELEASE ORACLE (#51, Linux-certified repair axis). exit 0 = every required layer was MEASURED on this Linux host: toolchain + state + plugin/MCP + resolved-artifact launch-form classification (all 3 owner hooks + doorbell static contract) + synthetic owner join + store scan + hook errors + SessionStart evidence + REQUIRED live MCP↔marker join + writer-version parity. Missing live evidence is NOT CERTIFIED (open a Claude session and re-run), never a pass; Darwin is NOT CERTIFIED and stays nonzero, on ONE narrowed reason — start-key and ppid are portable there (`ps` fallback, same string the TS core mints), so what holds the lane closed is per-process environment DISCOVERY alone, pending physical-host evidence. Detection power is held by check-meta-doctor-oracle
|
|
275
277
|
./run.sh copilot [args...] # #82 RAIL 7: the MANAGED Copilot launch. exec()s the vendor CLI in THIS terminal (cwd/pid/exit preserved) with COPILOT_CLI_ENABLED_FEATURE_FLAGS=EXTENSIONS set for that one invocation — entwurf owns no part of your shell and writes nothing to it, but it owns the process it is about to become. Without that flag Copilot skips the extension scan SILENTLY. Refuses to launch unless the receiver unit is actually installed. Injects `--model auto` when no --model was given and `--yolo` when no explicit permission/surface policy flag was given, both BEFORE any `--`; every argument you pass is forwarded byte-identical. RUNNING THIS IS YOUR CONSENT to that profile — use plain `copilot` for stock vendor behaviour. Not tmux, not fresh-call, mints no citizen (birth is still the first prompt)
|
|
276
|
-
./run.sh pi-durable [args...] # #129/#130: the MANAGED durable launch. Verifies this package's pi-durable CARRIER (pi/pi-durable/carrier/, emitted deterministically from Entwurf's owned source pi/pi-durable/src) and the pi SDK set it resolves — every declared member/direct edge at exactly the pinned version — refusing by name (package-incomplete / carrier-drift / sdk-absent / sdk-mismatch, exit 3), then exec()s node under the carrier resolver with the packaged bootstrap (pi/pi-durable/bootstrap.mjs) in this terminal. A new session needs --provider <p> --model <exact catalog id> --width task-wide [--entwurf-bootstrap <{v:2,task}>]; --continue
|
|
278
|
+
./run.sh pi-durable [args...] # #129/#130: the MANAGED durable launch. Verifies this package's pi-durable CARRIER (pi/pi-durable/carrier/, emitted deterministically from Entwurf's owned source pi/pi-durable/src) and the pi SDK set it resolves — every declared member/direct edge at exactly the pinned version — refusing by name (package-incomplete / carrier-drift / sdk-absent / sdk-mismatch, exit 3), then exec()s node under the carrier resolver with the packaged bootstrap (pi/pi-durable/bootstrap.mjs) in this terminal. A new session needs --provider <p> --model <exact catalog id> --width task-wide [--entwurf-bootstrap <{v:2,task}>]; --continue (this directory's newest session) and --resume (choose one of its sessions) take none of them. Nothing outside the package is located, installed or repaired
|
|
277
279
|
./run.sh install-copilot-bridge # #82: GLOBAL install of the Copilot BIRTH plugin (own marketplace root; node+entry baked into the no-argv exec string). MCP wiring and the RECEIVER extension are separate install surfaces (install-copilot-mcp, install-copilot-receive). Also retires the stale Claude unit (--keep-stale-claude-unit opts out)
|
|
278
280
|
./run.sh uninstall-copilot-bridge # #86 C3a: honest inverse of install-copilot-bridge from the package-owned install-state (exact qualified id + exact marketplace name/path + recorded assembly only; state deleted LAST; a failing vendor list is UNKNOWN and refuses; never --force, never the stale Claude unit)
|
|
279
281
|
./run.sh doctor-copilot-bridge # #82/#86: fail-loud surface for that unit — runtime axis (red = a hook that RAN and failed, or a broken/unbaked artifact; "installed with zero records" is NOT red and is reported as NOT-YET: a Copilot session is born on its FIRST PROMPT, not when the window opens, measured) + ownership axis (install-state shape/binding, marketplace path drift, UNKNOWN vendor lists; legacy no-state install = named non-green, repair = install-copilot-bridge adoption). Either axis red = red
|
|
@@ -1606,12 +1608,30 @@ check_pi_durable_beside() {
|
|
|
1606
1608
|
# #129: the pi-durable qualification lane's execution coordinate (VERIFY 「Four rules」 rule 3). It is
|
|
1607
1609
|
# not a discovery path — check-tests-beside-behavior already finds these files. It exists because the
|
|
1608
1610
|
# qualification runner re-invokes a gate argv once per mutant, and the narrow filter keeps one mutant
|
|
1609
|
-
# from re-running every beside test. The
|
|
1611
|
+
# from re-running every beside test. The four files are one contact: the adapter and its packaged
|
|
1610
1612
|
# bootstrap, the installed carrier/SDK-set verifier (which also reads the three checkout gates as
|
|
1611
|
-
# SOURCE), the fresh preflight, the owner join that admits the durable host
|
|
1612
|
-
#
|
|
1613
|
-
#
|
|
1614
|
-
run_vitest pi-extensions/meta-bridge-pi-durable.test.ts pi-extensions/lib/pi-durable-runtime.test.ts pi-extensions/lib/pi-durable-fresh-preflight.test.ts pi-extensions/lib/entwurf-deliverability.owner-join.test.ts
|
|
1613
|
+
# SOURCE), the fresh preflight, and the owner join that admits the durable host. The carrier and the
|
|
1614
|
+
# bootstrap's native-module ingress have their own coordinates, check-pi-durable-carrier and
|
|
1615
|
+
# check-pi-durable-native-module (#144).
|
|
1616
|
+
run_vitest pi-extensions/meta-bridge-pi-durable.test.ts pi-extensions/lib/pi-durable-runtime.test.ts pi-extensions/lib/pi-durable-fresh-preflight.test.ts pi-extensions/lib/entwurf-deliverability.owner-join.test.ts
|
|
1617
|
+
}
|
|
1618
|
+
|
|
1619
|
+
check_pi_durable_carrier() {
|
|
1620
|
+
# #144: the execution coordinate for the carrier — its relocation grammar, resolver, owned-source
|
|
1621
|
+
# emitter (#130, #141), source fence and package file list, its task footer (#134), and the real
|
|
1622
|
+
# bootstrap driving it on the 1.2 SDK, the stream transport and the skills prompt (#141, #143). Every
|
|
1623
|
+
# claim on it carries its QK only in this one file, and a kill is attributed from the mutant's own QK,
|
|
1624
|
+
# so its mutants run this file alone. The file reaches the bridge through the bootstrap, so its
|
|
1625
|
+
# mutants still declare the bridge build. Not a discovery path either.
|
|
1626
|
+
run_vitest pi-extensions/lib/pi-durable-carrier.test.ts
|
|
1627
|
+
}
|
|
1628
|
+
|
|
1629
|
+
check_pi_durable_native_module() {
|
|
1630
|
+
# #144: the execution coordinate for the bootstrap's explicit --native-module ingress (#130 P2) and its
|
|
1631
|
+
# --native-module-dir (#134). Every claim on that ingress carries its QK only in this one file, and a
|
|
1632
|
+
# kill is attributed from the mutant's own QK, so its mutants run this file alone rather than
|
|
1633
|
+
# re-running the carrier and adapter tests once per mutant. Not a discovery path either.
|
|
1634
|
+
run_vitest pi-extensions/lib/pi-durable-native-module.test.ts
|
|
1615
1635
|
}
|
|
1616
1636
|
|
|
1617
1637
|
smoke_mux_fresh_call_live() {
|
|
@@ -6999,11 +7019,10 @@ release_gate() {
|
|
|
6999
7019
|
results+=("FAIL static (pnpm run check:full)"); failc=$((failc + 1))
|
|
7000
7020
|
fi
|
|
7001
7021
|
|
|
7002
|
-
# 1b. Discriminating power is NOT re-proven here
|
|
7003
|
-
#
|
|
7004
|
-
#
|
|
7005
|
-
#
|
|
7006
|
-
# Its head still rides check:full as check-gate-manifests.
|
|
7022
|
+
# 1b. Discriminating power is NOT re-proven here (#132 / #133), and since #144 not by the
|
|
7023
|
+
# release at all: the whole qualification body is a schedule/dispatch drift diagnostic that
|
|
7024
|
+
# no cut waits for, and the release oracle (verify-exact-ci.sh) reads only the push run's
|
|
7025
|
+
# four required jobs. Its head still rides check:full as check-gate-manifests.
|
|
7007
7026
|
|
|
7008
7027
|
# 2. (gemini-availability step removed — claude-only floor; gemini CLI is
|
|
7009
7028
|
# deprecated, so the gate no longer asserts a three-backend claim.)
|
|
@@ -7071,6 +7090,9 @@ release_gate() {
|
|
|
7071
7090
|
# → first-user augment delivery + empty-carrier billing-clean (핀1) →
|
|
7072
7091
|
# ACP-target garden guard (deterministic half). Opt-in LIVE: LIVE!=1 is an
|
|
7073
7092
|
# HONEST SKIP via run_live_step (see its note) — a CUT needs LIVE=1, SKIP=0.
|
|
7093
|
+
# The mux lifecycle runs before the ACP tier (0.37.1): its pi-native callback is the step
|
|
7094
|
+
# that went red in the last two cuts, so a red answer must come before the ACP tier spends its turns.
|
|
7095
|
+
run_live_step "smoke-mux-lifecycle-live (mux public-harness lifecycle: fresh -> send -> dormant -> same-id visible resume -> recall)" gate bash "$self" smoke-mux-lifecycle-live
|
|
7074
7096
|
run_live_step "smoke-acp-socket-citizen-live (S1: turn-free socket citizenship)" gate bash "$self" smoke-acp-socket-citizen-live
|
|
7075
7097
|
run_live_step "smoke-acp-raw-turn-live (S2a: pinned ACP pipe + local auth)" gate bash "$self" smoke-acp-raw-turn-live
|
|
7076
7098
|
run_live_step "smoke-acp-overlay-live (S2b: config overlay + hooks:{} + tool meta)" gate bash "$self" smoke-acp-overlay-live
|
|
@@ -7099,7 +7121,6 @@ release_gate() {
|
|
|
7099
7121
|
# is either wired here or excluded by a reason the docs still carry.
|
|
7100
7122
|
run_live_step "smoke-claude-native-resume-live (native Claude Code resume + meta-bridge neutrality)" gate bash "$self" smoke-claude-native-resume-live
|
|
7101
7123
|
run_live_step "smoke-entwurf-chain-live (P3: Claude Code -> pi GPT -> pi ACP Sonnet -> mailbox, identity + receipt)" gate bash "$self" smoke-entwurf-chain-live
|
|
7102
|
-
run_live_step "smoke-mux-lifecycle-live (mux public-harness lifecycle: fresh -> send -> dormant -> same-id visible resume -> recall)" gate bash "$self" smoke-mux-lifecycle-live
|
|
7103
7124
|
# #87 bundle B: MUST, and since bundle B moved omp's wakeMode to self-fetch this is a
|
|
7104
7125
|
# REAL demand under LIVE=1, not a standing SKIP — it reads the registry, so an honest
|
|
7105
7126
|
# SKIP now only ever names a missing prerequisite, and a registry claiming a receive
|
|
@@ -7399,6 +7420,12 @@ case "$cmd" in
|
|
|
7399
7420
|
check-pi-durable-beside)
|
|
7400
7421
|
check_pi_durable_beside
|
|
7401
7422
|
;;
|
|
7423
|
+
check-pi-durable-carrier)
|
|
7424
|
+
check_pi_durable_carrier
|
|
7425
|
+
;;
|
|
7426
|
+
check-pi-durable-native-module)
|
|
7427
|
+
check_pi_durable_native_module
|
|
7428
|
+
;;
|
|
7402
7429
|
check-mux-resume-call)
|
|
7403
7430
|
check_mux_resume_call
|
|
7404
7431
|
;;
|
|
@@ -7684,8 +7711,8 @@ case "$cmd" in
|
|
|
7684
7711
|
# Arguments reach the runner's own parser unchanged (#133): `--group '<argv JSON>'
|
|
7685
7712
|
# --receipt <abs path>` is the affected PARTIAL a development lane runs, and a malformed,
|
|
7686
7713
|
# missing or repeated flag is refused there before any body or snapshot. Dropping them
|
|
7687
|
-
# turned a requested PARTIAL into the whole body. Bare, it stays the whole body — the
|
|
7688
|
-
#
|
|
7714
|
+
# turned a requested PARTIAL into the whole body. Bare, it stays the whole body — the CI
|
|
7715
|
+
# schedule/dispatch diagnostic (#144). Never retry bare after a refusal.
|
|
7689
7716
|
shift || true
|
|
7690
7717
|
run_ts scripts/check-gate-qualification.ts "$@"
|
|
7691
7718
|
;;
|
|
@@ -1214,7 +1214,7 @@ function buildDeclaredOutputFixture(): string {
|
|
|
1214
1214
|
const partial = viaDoor(requested);
|
|
1215
1215
|
const bare = viaDoor([]);
|
|
1216
1216
|
ok(
|
|
1217
|
-
"[QK:QUALIFY-DOOR-FORWARDS-ARGV] run.sh check-gate-qualification hands --group/--receipt to the parser unchanged (a space and a glob inside the argv JSON included) and the parser reads one PARTIAL group; called bare it still reads the whole body — the
|
|
1217
|
+
"[QK:QUALIFY-DOOR-FORWARDS-ARGV] run.sh check-gate-qualification hands --group/--receipt to the parser unchanged (a space and a glob inside the argv JSON included) and the parser reads one PARTIAL group; called bare it still reads the whole body — the CI schedule/dispatch diagnostic (#144)",
|
|
1218
1218
|
partial.status === 0 &&
|
|
1219
1219
|
JSON.stringify(partial.started?.argv) === JSON.stringify(requested) &&
|
|
1220
1220
|
partial.started?.parsed.mode === "group" &&
|
|
@@ -3464,7 +3464,7 @@ let manifestCount: number;
|
|
|
3464
3464
|
"pi-bridge-sender": 4,
|
|
3465
3465
|
"pi-mcp-bridge": 2,
|
|
3466
3466
|
"pi-mcp-register": 3,
|
|
3467
|
-
"pi-durable":
|
|
3467
|
+
"pi-durable": 84,
|
|
3468
3468
|
"copilot-receive": 20,
|
|
3469
3469
|
"entwurf-peers": 1,
|
|
3470
3470
|
"fresh-call-dispatch": 12,
|
|
@@ -3496,7 +3496,7 @@ let manifestCount: number;
|
|
|
3496
3496
|
"omp-fresh": 24,
|
|
3497
3497
|
"omp-receive": 11,
|
|
3498
3498
|
"probe-ordering": 1,
|
|
3499
|
-
"release-gate":
|
|
3499
|
+
"release-gate": 21,
|
|
3500
3500
|
"retired-sent-surface": 2,
|
|
3501
3501
|
"resume-args": 6,
|
|
3502
3502
|
"resume-launch-identity": 7,
|