Skip to content

v1.91.92.0 feat(outside-voice): enforce codex_reviews consent in the send binaries, codex_effort setting, privacy disclosures (Wave 9 Lane C) - #3144

Merged
capy-ai[bot] merged 8 commits into
mainfrom
wave9/c-outside-voice-consent
Oct 11, 2026
Merged

capy-ai[bot] merged 8 commits into
mainfrom
wave9/c-outside-voice-consent

Conversation

@garrytan

@garrytan garrytan commented Oct 11, 2026 •

Copy link
Copy Markdown
Owner

Summary

Wave 9 Lane C. Outside-review consent (codex_reviews) is now enforced by the binaries that send repository content, not by skill prose (#3102, plan D5). Codex reasoning effort becomes a setting with one precedence (D1-A; adopts #3098, closes #2934). The README and telemetry privacy disclosures now match what gstack actually does (#1081, #1080, #1150).

  • Consent at the send (/design-review and /ship send code to Codex without asking #3102). These four senders read codex_reviews before any CLI starts:

    • gstack-codex-probe run-with-timeout
    • gstack-claude-code
    • gstack-outside-voice run
    • the unattended /autoplan runner (lib/autoplan-run.ts)

    When the value is disabled, the config is unreadable, or the value is unknown, they refuse with not_run / consent_missing (exit 3). The refusal line says what happened and why, gives the fix command and links docs/troubleshooting.md#outside-review-consent-missing; it comes from the new lib/gate-outcomes.ts row. unset means the default (enabled) and shows the one-time first-send notice. --user-invoked is passed only by /codex and /claude-code, where the user asked for the review by name. The shared TS reader is lib/outside-consent.ts, with the bash twin gstack-config get --stored <key>. Both print enabled|disabled|unset|unreadable (unreadable exits 2), and a test keeps them equal.

  • Skill text. Every preflight reads get --stored codex_reviews, and disabled or unreadable gives CODEX_MODE: disabled. The hard-coded _OUTSIDE_CFG=enabled in /ship design-lite and the other opt-in callers is gone. Each skill's preflight carries one shared sentence telling the agent to relay a send's consent_missing line. There is no per-invocation consent check in skill prose.

  • Reasoning effort (D1-A). run-with-timeout --effort <gate default> resolves GSTACK_CODEX_EFFORT, then codex_effort (new gstack-config key, validated), then the gate default, and appends -c model_reasoning_effort="X". An invalid level stops before any Codex call. /codex --xhigh becomes a GSTACK_CODEX_EFFORT=xhigh prefix on the dispatch. /spec keeps a pinned medium inside its 120 s budget. gstack-codex-probe check-effort remains as a no-call diagnostic. gstack-models list (and --json codexEffort) shows the effective value, and docs/model-policy.md gains a "Reasoning effort" section.

  • Privacy text (Undisclosed hourly GitHub network call in every skill preamble (update-check) #1081, Telemetry consent text says 'no repo names ever sent' but omits that they're recorded locally #1080, Session tracking and OPENCLAW_SESSION preamble not gated by telemetry config #1150). The README's Privacy & Telemetry section now covers:

    • which telemetry fields are sent and what is never sent
    • the local skill-usage.jsonl, whose repo and branch are stripped before upload, and the fact that nothing is logged when telemetry is off
    • the update-check GET to GitHub and its TTLs
    • outside-review egress (default on, first-send notice, consent_missing)
    • session markers and the timeline as local state, and egress receipts

    The gstack-skill-start telemetry prompt and the gstack-config header now match.

Call-site consent

Call site Sender Consent source Unattended / disabled behavior
Plan reviews (CEO, eng, design, devex outside voice) run-with-timeout / gstack-claude-code codex_reviews preflight prints CODEX_MODE: disabled; the send refuses consent_missing if reached
/autoplan (interactive and gstack-autoplan run) probe / runner initRun codex_reviews runner records each phase outside voice disabled, not_run, consent_missing; the native voice still runs
/codex, /claude-code run-with-timeout --user-invoked / gstack-claude-code --user-invoked the user's explicit request runs even when codex_reviews=disabled
/office-hours (second opinion, sketch) probe / gstack-claude-code codex_reviews disabled: skipped, no ask
/design-review, /design-consultation probe / gstack-claude-code codex_reviews (previously "automatic, no opt-in needed") disabled: native voice only, outside_status: disabled
/ship design-lite probe codex_reviews (previously hard-coded enabled) disabled: skipped
/review, /ship adversarial probe codex_reviews disabled: Codex passes skipped, the Claude adversarial pass still runs
gstack-outside-voice run (API runner) itself codex_reviews writes <out>.meta.json, prints OUTSIDE_STATUS: not_run reason=consent_missing, exits 3

Behavior changes

  • codex_reviews=disabled now stops /ship design-lite and /design-review's outside voice. Both previously sent regardless.
  • An unreadable config.yaml, or an unknown codex_reviews value, now refuses outside sends (fail closed). It used to fall back to enabled.
  • In skill preflights, a gstack-config that fails to run, or exits 2 for an unreadable config, now reads as CODEX_MODE: disabled, and its fix line is shown. It previously fell back to enabled.
  • The four sending binaries exit 3 with consent_missing when refused. Callers that pass neither --user-invoked nor a consenting config get no CLI launch.
  • GSTACK_CODEX_EFFORT / codex_effort now change the effort of every outside-review gate except /spec. Unset keeps today's defaults.
  • gstack-config get --stored <key> is new. Plain get is unchanged.

Parity (no cap raised)

Every skill fits under its existing cap on the integrated tree (main 8fc9f2a). Three raises approved earlier in development (ship, plan-ceo-review, office-hours) were reverted after trimming. The preflight's consent read now sits in its if condition, and the relay of a send's consent_missing line is folded into each caller's existing "Disabled ..." sentence.

Skill Peak during development Final (bytes / ratio) Cap
ship 1.652 308,772 / 1.6450 1.645 (unchanged)
plan-ceo-review 1.092 164,915 / 1.0868 1.088 (unchanged)
plan-eng-review 1.221 151,630 of 151,634 / 1.2170 1.217 (unchanged, 4 B left)
office-hours 1.187, skeleton 96,681 154,630 / 1.1794, skeleton 95,653 1.18 / 95,900 (unchanged)
autoplan 1.173 117,121 / 1.1485 1.149 (unchanged)
spec 1.070 86,856 / 1.0647 1.07 (unchanged)
review 1.303 140,578 / 1.2954 1.296 (unchanged)
design-consultation 1.163 104,613 / 1.1575 1.16 (unchanged)
codex skeleton 60,738 60,058 60,200 (unchanged)
plan-design-review skeleton 86,181 85,668 85,900 (unchanged)

Test edits

  • New: test/outside-consent.test.ts, test/outside-send-boundary.test.ts (static check that no rendered skill on either host launches codex exec|review or a headless claude except through the consent-enforcing binaries), test/codex-effort.test.ts, and a run-with-timeout --effort case in test/codex-probe-subcommands.test.ts. That case covers the env, then config, then default order turning --effort X into -c model_reasoning_effort="X", and that a bad level or a non-codex command never runs.
  • test/gen-skill-docs.test.ts (branches correctly per skillName): the expectation for the literal model_reasoning_effort="high"|"medium" becomes run-with-timeout --effort high for plan-design-review and --effort medium for design-consultation, and each skill asserts the other value is absent. The literal is still checked where it is produced (the probe test above).
  • test/claude-code-skill.test.ts and test/host-config.test.ts: the runner-call pattern now includes --user-invoked.
  • test/skill-validation.test.ts (adversarial in /review and /ship): reasoning_effort="high" becomes run-with-timeout --effort high.
  • Regex updates for the optional --user-invoked / --effort <level> arguments: codex-hardening, codex-invocation-sites, codex-skill-isolation, model-role-invocation, outside-send-boundary, outside-voice-invocation, binding-template-drift, autoplan-dual-voice-evidence (plus its helper's command needle), run-in-background-guidance, outside-voice-preflight (/design-review and /ship send code to Codex without asking #3102 ship case), design-consultation-contract, gstack-config-key-locale (validator count) and spec-quality-gate-secret-sink.
  • Out-of-lane files changed with approval: lib/claude-code-migration.ts (adds lib/outside-consent.ts to CLAUDE_CODE_RUNTIME_FILES), claude-code/SKILL.md.tmpl (--user-invoked on its three runner calls) (no cap changes in test/helpers/carve-guards.ts).

Contributor PRs

PR Author Verdict What carried over
#3098 @Lockyer228 accept (adapted) The GSTACK_CODEX_EFFORT precedence, the check-effort subcommand with its validation and repair hint, and its probe tests. Its template contract (a per-block check-effort capture) is superseded by run-with-timeout --effort to keep skill text small. Credit: CHANGELOG thanks plus a Co-authored-by trailer.
#2934 @lubosxyz supersede, close The env override for outside-voice effort is delivered through #3098's mechanism plus the codex_effort setting. GSTACK_CLAUDE_EFFORT is declined: the Claude runner takes no effort setting in the plan (D1-A), and adding a flag would override the CLI's own configuration. Credit: CHANGELOG thanks plus a Co-authored-by trailer for the original diagnosis.

Verification

  • bun run typecheck is clean, and the typecheck:test ratchet reports no new diagnostics.
  • Skill docs are fresh for both hosts.
  • gstack-pregate --stage preflight --only secrets,strays,literals passes.
  • bun test test/parity-suite.test.ts passes 22/22.
  • Focused sweep (102 files touching the changed surfaces) on the integrated tree: 4311 pass, 4 skip, 0 fail.
  • Full free suite (Ubicloud standard-16, bun run test:ubicloud) at head 76ef2bd7 (merged with main 8fc9f2a, restamped 1.91.92.0): 17 shards, 1,202 files, 27,983 tests, 27,892 pass, 91 skip, 0 fail, no flaky retry. The VM was destroyed.
    • The first full run, at 619610c7, failed 2 tests that reproduce serially: test/claude-code-skill.test.ts (plan-review consultation) and test/host-config.test.ts (Claude outside-voice golden). Both match "$CLAUDE_RUNNER" --cwd, and the approved --user-invoked change to claude-code/SKILL.md.tmpl moved that string. The two test patterns were updated in c9b646ab; 21 claude-code test files then gave 1517 pass, 0 fail.
    • That first run's test/bootstrap-retention-shard.test.ts failure passed on the serial retry and locally (4/4), and it was clean in the final run.

Not verified

  • No paid evals were run. The behavioral evals that read the changed outside-voice prose (plan reviews, autoplan dual voice, design voices) have not been rerun against the new wording.
  • No live Codex or Claude send was made. The consent refusal and effort injection are proven against stub CLIs only.

garrytan and others added 8 commits October 11, 2026 16:13
…es, codex_effort setting, privacy disclosures

Wave 9 Lane C (#3102, D1-A, #1081, #1080, #1150).

Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com>
…stamp --next)

Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com>
…ort high|medium

Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com>
…-consent

Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com>

# Conflicts:
#	CHANGELOG.md
#	VERSION
#	agents-digest/gstack-AGENTS.md
#	package.json
…-consent

Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com>

# Conflicts:
#	CHANGELOG.md
#	VERSION
#	agents-digest/gstack-AGENTS.md
#	package.json
…n and the disabled sentence; drop the cap raises

Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com>
Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com>
Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com>
@trunk-io

trunk-io Bot commented Oct 11, 2026 •

Copy link
Copy Markdown

😎 This pull request was merged.

@github-actions

Copy link
Copy Markdown
Contributor

E2E Evals: ✅ PASS

[test:paid] VERDICT GREEN — lane gate/pr, attempt 1
  rule 106/106 · behavior 0/0 · judge 24/24 · quarantined 0 (0 failing the lane)
  SKIPPED 0 · INFRA 0 · INCOMPLETE 0 · unattributed 0 · ACTION REQUIRED 0
  wall 10m22s · cost $93.13 known + 54 of 130 trial(s) cost unknown

119 executed, 0 reused rule/judge records | 0 manual accepted (unscored; no score-cache credit) | $93.13 rule/judge cost | reconcile exit: 0

Profile: pr / mode dependents; selected behaviors: 106, judges: 24. Deferred to scheduled/release coverage: 131 behaviors and 2 changed prompt files. Deferred checks did not run and receive no PR-pass credit.

Derived dependents (scripts/pr-dependencies.ts):

  • bin/gstack-autoplan: 71 case(s), 3 judge(s)
  • bin/gstack-outside-voice: 71 case(s), 3 judge(s)
  • lib/autoplan-run.ts: 71 case(s), 3 judge(s)
  • lib/model-catalog.ts: 237 case(s), 24 judge(s)
  • lib/model-policy-cli.ts: 237 case(s), 24 judge(s)
  • lib/outside-consent.ts: 163 case(s), 9 judge(s)
Rule and judge shards
Shard Automated result Manual/unscored Executed Reused Status Cost
e2e/skill-e2e-workflow 4/4 0 4 0 ✅ $3.34
e2e-deploy/skill-e2e-deploy--land-and-deploy-workflow 1/1 0 1 0 ✅ $1.8
e2e-safety-codex-consult/skill-e2e-safety-codex-consult 1/1 0 1 0 ✅ $0.93
e2e-ship-docsync/skill-e2e-ship-docsync--ship-docsync-stale-before 1/1 0 1 0 ✅ $1.21
e2e-review-attribution/skill-e2e-review-attribution 3/3 0 3 0 ✅ $0.92
e2e/skill-e2e-shared-libs--shared-libs-review-lifecycle 1/1 0 1 0 ✅ $2.5
e2e-qa-workflow/skill-e2e-qa-workflow--qa-quick 1/1 0 1 0 ✅ $1.59
e2e/skill-e2e-shared-libs-paths--shared-libs-review-prior-coverage 1/1 0 1 0 ✅ $2.65
e2e/skill-e2e-ship-skip 1/1 0 1 0 ✅ $0.61
e2e-qa-callers/skill-e2e-qa-callers--review-exploratory-small-cli 1/1 0 1 0 ✅ $1.88
e2e/skill-e2e-test-value 3/3 0 3 0 ✅ $2.5
e2e-qa-workflow/skill-e2e-qa-workflow--qa-only-no-fix 1/1 0 1 0 ✅ $1.53
e2e-qa-callers/skill-e2e-qa-callers--ship-exploratory-plan-checks 1/1 0 1 0 ✅ $1.81
e2e/skill-e2e-shared-libs--shared-libs-review-revalidation 1/1 0 1 0 ✅ $5.01
e2e-ship-docsync/skill-e2e-ship-docsync--ship-docsync-recovery 1/1 0 1 0 ✅ $0.98
e2e-review/skill-e2e-review 2/2 0 2 0 ✅ $1.26
e2e-ship-docsync/skill-e2e-ship-docsync--ship-docsync-failure 1/1 0 1 0 ✅ $1.99
e2e-skillify/skill-e2e-skillify 3/3 0 3 0 ✅ $2.54
e2e/skill-e2e-shared-libs-paths--shared-libs-review-path-eligibility 1/1 0 1 0 ✅ $3.83
e2e-ship-docsync/skill-e2e-ship-docsync--ship-docsync-current 1/1 0 1 0 ✅ $3.29
llm-judge/skill-llm-eval 24/24 0 24 0 ✅ $1.44
e2e/skill-e2e-coverage-audit 2/2 0 2 0 ✅ $0.86
e2e-deploy/skill-e2e-deploy--setup-deploy-workflow 1/1 0 1 0 ✅ $0.53
e2e-review-army/skill-e2e-review-army--review-army-perf-n-plus-one 1/1 0 1 0 ✅ $1.28
e2e/skill-e2e-shared-libs-paths--shared-libs-review-index-flags 1/1 0 1 0 ✅ $2.5
e2e/skill-e2e-investigate-owned-completion 1/1 0 1 0 ✅ $0.2
e2e-ship-docsync/skill-e2e-ship-docsync--ship-docsync-late-result 1/1 0 1 0 ✅ $0.89
e2e-review-army/skill-e2e-review-army--review-army-json-findings 1/1 0 1 0 ✅ $0.21
e2e-deploy/skill-e2e-deploy--benchmark-workflow 1/1 0 1 0 ✅ $0.64
e2e-qa-callers/skill-e2e-qa-callers--ship-exploratory-small-cli 1/1 0 1 0 ✅ $1.92
e2e-learnings/skill-e2e-learnings 1/1 0 1 0 ✅ $0.39
e2e-deploy/skill-e2e-deploy--land-and-deploy-review-gate 1/1 0 1 0 ✅ $1.22
e2e-review-army/skill-e2e-review-army--review-army-migration-safety 1/1 0 1 0 ✅ $1.24
e2e/skill-e2e-shared-libs--shared-libs-read-only 1/1 0 1 0 ✅ $0.72
e2e-ship-docsync/skill-e2e-ship-docsync--ship-docsync-stale-after 1/1 0 1 0 ✅ $1.13
e2e-deploy/skill-e2e-deploy--land-and-deploy-first-run 1/1 0 1 0 ✅ $0.87
e2e-docsync-spawned/skill-e2e-docsync-spawned 1/1 0 1 0 ✅ $1.36
e2e-qa-functional-fix/skill-e2e-qa-functional-fix 2/2 0 2 0 ✅ $2.39
e2e/skill-e2e-plan--plan-review-report 1/1 0 1 0 ✅ $1.71
e2e-qa-callers/skill-e2e-qa-callers--ship-exploratory-unavailable 1/1 0 1 0 ✅ $1.85
e2e-retro/skill-e2e-retro 1/1 0 1 0 ✅ $1.02
e2e-qa-functional/skill-e2e-qa-functional 2/2 0 2 0 ✅ $2.44
e2e-qa-callers/skill-e2e-qa-callers--ship-exploratory-late-input 1/1 0 1 0 ✅ $2.26
e2e-cso/skill-e2e-cso 1/1 0 1 0 ✅ $1.54
e2e-ship-docsync/skill-e2e-ship-docsync--ship-docsync-store 1/1 0 1 0 ✅ $3.6
e2e-ship-docsync/skill-e2e-ship-docsync--ship-docsync-completion 1/1 0 1 0 ✅ $4.17
e2e-design/skill-e2e-design--design-review-detector-shim-dom 1/1 0 1 0 ✅ $0.65
e2e/skill-e2e-shared-libs--shared-libs-unsupported-git 1/1 0 1 0 ✅ $0.63
e2e-ship-docsync/skill-e2e-ship-docsync--ship-docsync-missing-asset 1/1 0 1 0 ✅ $1.14
e2e-review-army/skill-e2e-review-army--review-army-quality-score 1/1 0 1 0 ✅ $0.34
e2e-safety-ship-evidence/skill-e2e-safety-ship-evidence 1/1 0 1 0 ✅ $0.56
e2e-design/skill-e2e-design--design-review-plugin-handoff 1/1 0 1 0 ✅ $0.58
e2e-ship-docsync/skill-e2e-ship-docsync--ship-docsync-missing-marker 1/1 0 1 0 ✅ $0.5
e2e-browse/skill-e2e-bws 6/6 0 6 0 ✅ $0.85
e2e-third-party-actions/skill-e2e-third-party-actions 5/5 0 5 0 ✅ $1.15
e2e-plan-tune/skill-e2e-plan-tune 1/1 0 1 0 ✅ $0.42
e2e-session-intelligence/skill-e2e-session-intelligence 4/4 0 4 0 ✅ $0.82
e2e-safety-pair-agent/skill-e2e-safety-pair-agent 1/1 0 1 0 ✅ $0.3
e2e-design/skill-e2e-design--design-review-detector-shim 1/1 0 1 0 ✅ $0.36
e2e-qa-workflow/skill-e2e-qa-workflow--qa-bootstrap 1/1 0 1 0 ✅ $0.25
e2e-triage/skill-e2e-triage 1/1 0 1 0 ✅ $0.44
e2e/skill-e2e-ship-hook-consent 2/2 0 2 0 ✅ $0.7
e2e-review-army/skill-e2e-review-army--review-army-delivery-audit 1/1 0 1 0 ✅ $0.35
e2e-ship-docsync/skill-e2e-ship-docsync--ship-docsync-timeout-unsettled 1/1 0 1 0 ✅ $0.52
e2e/skill-e2e-ship-hook-refresh 1/1 0 1 0 ✅ $0.28
e2e/skill-e2e-investigate-owned-termination 2/2 0 2 0 ✅ $0.52
e2e-ship-docsync/skill-e2e-ship-docsync--ship-docsync-launch-failure 1/1 0 1 0 ✅ $0.43
e2e-deploy/skill-e2e-deploy--canary-workflow 1/1 0 1 0 ✅ $0.36
e2e-design/skill-e2e-design--plan-design-review-no-ui-scope 1/1 0 1 0 ✅ $0.43
Fail-closed reconciliation
-deploy.test.ts#land-and-deploy-first-run
  slice 12  passed            185s  test/skill-e2e-qa-callers.test.ts#ship-exploratory-small-cli
  slice 12  passed            181s  test/skill-e2e-shared-libs-paths.test.ts#shared-libs-review-index-flags
  slice 12  passed            122s  test/skill-e2e-ship-docsync.test.ts#ship-docsync-late-result
  slice 12  passed             94s  test/skill-e2e-deploy.test.ts#benchmark-workflow
  slice 12  passed            180s  test/skill-e2e-review-army.test.ts#review-army-perf-n-plus-one
  slice 12  passed            191s  test/skill-e2e-plan-ceo-plan-mode.test.ts
  slice 12  passed             31s  test/skill-e2e-investigate-owned-completion.test.ts
  slice 12  passed             24s  test/skill-e2e-review-army.test.ts#review-army-json-findings
  slice 13  passed            107s  test/skill-e2e-ship-docsync.test.ts#ship-docsync-missing-asset
  slice 13  passed             80s  test/skill-e2e-plan-devex-plan-mode.test.ts
  slice 13  passed             89s  test/skill-e2e-safety-ship-evidence.test.ts
  slice 13  passed             82s  test/skill-e2e-design.test.ts#design-review-detector-shim-dom
  slice 13  passed             96s  test/skill-e2e-shared-libs.test.ts#shared-libs-unsupported-git
  slice 13  passed             61s  test/skill-e2e-office-hours-auto-mode.test.ts
  slice 13  passed             83s  test/skill-e2e-design.test.ts#design-review-plugin-handoff
  slice 13  passed             60s  test/skill-e2e-bws.test.ts
  slice 13  passed             61s  test/skill-e2e-ship-docsync.test.ts#ship-docsync-missing-marker
  slice 13  passed             46s  test/skill-e2e-review-army.test.ts#review-army-quality-score
  slice 14  passed             61s  test/skill-e2e-third-party-actions.test.ts
  slice 14  passed             58s  test/skill-e2e-plan-tune.test.ts
  slice 14  passed             77s  test/skill-e2e-triage.test.ts
  slice 14  passed             67s  test/skill-e2e-ship-docsync.test.ts#ship-docsync-timeout-unsettled
  slice 14  passed             51s  test/skill-e2e-ask-user-question-format-compliance.test.ts
  slice 14  passed             49s  test/skill-e2e-ship-docsync.test.ts#ship-docsync-launch-failure
  slice 14  passed             54s  test/skill-e2e-session-intelligence.test.ts
  slice 14  passed             47s  test/skill-e2e-ship-hook-consent.test.ts
  slice 14  passed             33s  test/skill-e2e-investigate-owned-termination.test.ts
  slice 14  passed             36s  test/skill-e2e-design.test.ts#design-review-detector-shim
  slice 14  passed             50s  test/skill-e2e-deploy.test.ts#canary-workflow
  slice 14  passed             40s  test/skill-e2e-ship-hook-refresh.test.ts
  slice 14  passed             43s  test/skill-e2e-design.test.ts#plan-design-review-no-ui-scope
  slice 14  passed             35s  test/skill-e2e-review-army.test.ts#review-army-delivery-audit
  slice 14  passed             37s  test/skill-e2e-safety-pair-agent.test.ts
  slice 14  passed             35s  test/skill-e2e-qa-workflow.test.ts#qa-bootstrap
  slice 15  passed             36s  test/skill-e2e-learnings.test.ts
  slice 15  passed             27s  test/skill-e2e-diagram.test.ts
[test:paid] collector final outcomes: 119 executed, 0 reused; 119 passed, 0 failed, 0 manual accepted (unscored; no score-cache credit) (119 attempt records from 69 collectors; every record counts)
[test:paid] deselected testcases, zero credit (307):
[test:paid]    293  sibling case of a case shard (its own shard runs it)
[test:paid]      8  periodic-tier case (this lane runs gate)
[test:paid]      6  Bun hook placeholder of a skipped describe block (not a test)
[test:paid] VERDICT GREEN — lane gate/pr, attempt 1
  rule 106/106 · behavior 0/0 · judge 24/24 · quarantined 0 (0 failing the lane)
  SKIPPED 0 · INFRA 0 · INCOMPLETE 0 · unattributed 0 · ACTION REQUIRED 0
  wall 10m22s · cost $93.13 known + 54 of 130 trial(s) cost unknown
[test:paid] report: every planned shard accounted and passed

Sliced lane: planner → duration-packed executors → fail-closed report. Behavior cases run a pre-registered 3-trial panel (PASS at 2/3 with no contract violation); a PASS 2/3 is shown with its failed trial, never as a clean pass. Reused results retain their original provenance and expiry.

@capy-ai
capy-ai Bot merged commit 3b7254a into main Oct 11, 2026
68 checks passed
@capy-ai
capy-ai Bot deleted the wave9/c-outside-voice-consent branch October 11, 2026 19:09
levi85 pushed a commit to levi85/gstack that referenced this pull request Oct 14, 2026
…send binaries, codex_effort setting, privacy disclosures (Wave 9 Lane C) (garrytan#3144)

Outside-review consent (codex_reviews) is enforced in gstack-codex-probe
run-with-timeout, gstack-claude-code, gstack-outside-voice run and the
autoplan runner (not_run / consent_missing, exit 3; garrytan#3102). Codex reasoning
effort resolves GSTACK_CODEX_EFFORT, then codex_effort, then each gate's
default inside run-with-timeout --effort (D1-A; garrytan#3098, closes garrytan#2934). README
and telemetry privacy disclosures corrected (garrytan#1081, garrytan#1080, garrytan#1150).

Co-authored-by: Lockyer <135391289+Lockyer228@users.noreply.github.com>
Co-authored-by: Lubos Buracinsky <159481718+lubosxyz@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant