fix: the last refusals stop quoting file and config values (#1873) #1916

Merged
jason.woltje merged 2 commits from org-redact4 into refactor 2026-11-11 02:21:42 +00:00
Owner

Redaction round 4 (#1873): the last refusals that quoted a value from a file or config.

  • Closes the 17 sites redact3 listed (all but control-board serve.mjs:142, which returns a caller's own body parse error to that caller) and the follow-ups from redact3's review: harness runner session, stdin and policy parsing; project onboarding template parse errors; Discord turn records, binding and gateway; organization access, appearance, project, role and vocabulary values; queue values; task and config values; and the config-command stderr relay.
  • Refusals name the file, key or field and the expected shape. The config-command relay now extracts only known system key paths from child stderr and prints fixed expected constraints; no child stderr is relayed.
  • Error classes, refusal codes, exit codes, errno codes and load or refuse decisions are unchanged. Tests and scripts that parsed the old text keep the part they read.
  • Test-only: the v2 role fixture in scripts/test-task.sh gains the ## Authority heading BASE already requires, so the wrapper exercises its success path.

Lane: Sol. The acceptance files use the sentinel sk-test-NOT-A-SECRET-1234: 122/0 on the candidate, 2/120 on BASE (the two passes are documented safe controls). Gate on ddf4f895c: 250 files, 3299/0, one skip, including test-config.sh 55/0, test-task.sh 95/0 and test-queue.sh 30/0. Review: Opus, changes 3 (all P3), all fixed.

Known follow-up: some refusals now drop names that already passed a closed-vocabulary or strict-pattern check (an action name, a seat name), which are safe to show and help the reader fix the file. A follow-up lane restores those.

Redaction round 4 (#1873): the last refusals that quoted a value from a file or config. - Closes the 17 sites redact3 listed (all but control-board `serve.mjs:142`, which returns a caller's own body parse error to that caller) and the follow-ups from redact3's review: harness runner session, stdin and policy parsing; project onboarding template parse errors; Discord turn records, binding and gateway; organization access, appearance, project, role and vocabulary values; queue values; task and config values; and the config-command stderr relay. - Refusals name the file, key or field and the expected shape. The config-command relay now extracts only known system key paths from child stderr and prints fixed expected constraints; no child stderr is relayed. - Error classes, refusal codes, exit codes, errno codes and load or refuse decisions are unchanged. Tests and scripts that parsed the old text keep the part they read. - Test-only: the v2 role fixture in `scripts/test-task.sh` gains the `## Authority` heading BASE already requires, so the wrapper exercises its success path. Lane: Sol. The acceptance files use the sentinel `sk-test-NOT-A-SECRET-1234`: 122/0 on the candidate, 2/120 on BASE (the two passes are documented safe controls). Gate on ddf4f895c: 250 files, 3299/0, one skip, including test-config.sh 55/0, test-task.sh 95/0 and test-queue.sh 30/0. Review: Opus, changes 3 (all P3), all fixed. Known follow-up: some refusals now drop names that already passed a closed-vocabulary or strict-pattern check (an action name, a seat name), which are safe to show and help the reader fix the file. A follow-up lane restores those.
jason.woltje added 2 commits 2026-11-11 02:21:38 +00:00
jason.woltje merged commit a3e82efe23 into refactor 2026-11-11 02:21:42 +00:00
Sign in to join this conversation.