Skip to content

docs(devlog): record the Wave 3/4 second pass, audit corrections and deferrals - #1865

Merged
lidge-jun merged 1 commit into
devfrom
codex/wave34-second-pass-record
Aug 16, 2026
Merged

docs(devlog): record the Wave 3/4 second pass, audit corrections and deferrals#1865
lidge-jun merged 1 commit into
devfrom
codex/wave34-second-pass-record

Conversation

@lidge-jun

@lidge-jun lidge-jun commented Aug 16, 2026

Copy link
Copy Markdown
Owner

Summary

Devlog-only. Records what the Wave 3/4 continuation established, including the corrections two independent read-only audits forced on plans that had been written against a stale snapshot.

Verification

Nothing in the build, typecheck, or test path reads from devlog/, so no code gate is affected. privacy:scan does read it, and these documents contain no credentials, tokens, account identifiers, or home paths.

Remote Linux suite numbers recorded in 120, taken at each PR head:

Head pass skip fail
798ecbfb7 (earlier baseline) 12684 15 16
acfedae0a (#1861) 12687 15 16
6cd5b04b3 (#1862) 12687 15 16

The 16 failures are identical across all three and are bun-not-on-PATH harness cases. No regression.

Checklist

  • Targets dev
  • Documentation only — no src/, tests/, or gui/ changes
  • No security or pre-disclosure material (the #1795 note describes a shipped, publicly visible guard)
  • Tests — not applicable
  • Docs-site update — not applicable; devlog/ is maintainer-facing

Summary by CodeRabbit

  • Documentation
    • Added release records covering capability fallback behavior, request-size handling, and context-length limits.
    • Clarified configuration restoration behavior when application URLs are rewritten.
    • Documented fail-closed handling for undeclared tool calls in streaming and non-streaming requests.
    • Corrected legacy adoption guidance and recorded deferred work, known limitations, and verification results.
    • No user-facing functionality changes were introduced.

…deferrals

Documents what the continuation established, including the corrections two
independent read-only audits forced on pre-written plans.

- 090 (#1524): the plan's two-mechanism split was unnecessary -- policy fallback
  reaches comboFailureDecision through shouldHopPolicyCandidate, so one change
  covers both paths. Modality filtering already worked; the plan's image tests
  would have passed before any change. Records the remaining optimization.
- 101 (#1049): corrected plan after audit. The original was unreachable
  (withCodexWriteLock refuses routed residue before inject.ts can adopt) and
  reintroduced the crash window the archived contract removes. Deferred with the
  corrected five-file shape recorded.
- 102 (#1798): a true baseline/injected/current merge is not implementable from
  today's journal, which stores only a hash of the injected state. Records what
  shipped instead and why the catalog claim in the plan was false.
- 120: continuation outcome, per-head remote suite numbers against the dev
  baseline, and the ablation lesson -- disabling the structured-code arm alone
  still passes because a message.includes fallback catches it, so only the
  ordering ablation proves the mechanism.
- 130 (#1795): new. The undeclared-tool guard is a deliberate fail-closed
  contract, so the request is a safety-boundary loosening whose scope is a
  product decision. NEEDS_HUMAN with the evidence gap named.
@github-actions github-actions Bot added the documentation Improvements or additions to documentation label Aug 16, 2026
@github-actions

Copy link
Copy Markdown
Contributor

Deterministic PR hygiene checks passed.

@coderabbitai

coderabbitai Bot commented Aug 16, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

Caution

Review failed

The pull request is closed.

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: ASSERTIVE

Plan: Pro Plus

Run ID: 8789b611-4f24-414b-a91b-e55c5ce80d39

📥 Commits

Reviewing files that changed from the base of the PR and between cc9087c and 57e07ba.

📒 Files selected for processing (5)
  • devlog/_plan/260816_wave34_closeout/090_1524_capability_preflight.md
  • devlog/_plan/260816_wave34_closeout/101_1049_legacy_adoption.md
  • devlog/_plan/260816_wave34_closeout/102_1798_restore_merge.md
  • devlog/_plan/260816_wave34_closeout/120_outcome.md
  • devlog/_plan/260816_wave34_closeout/130_1795_undeclared_tools.md

📝 Walkthrough

Walkthrough

This PR adds Wave 3/4 closeout records for capability admission, legacy adoption, configuration restoration, undeclared tools, deferred work, and verification results.

Changes

Wave 3/4 closeout records

Layer / File(s) Summary
Capability admission and pass verification
devlog/_plan/260816_wave34_closeout/090_1524_capability_preflight.md:51-108, devlog/_plan/260816_wave34_closeout/120_outcome.md:65-143
Documents fallback behavior for input_admission_refused, retained stopping behavior for context_length_exceeded, implementation findings, deferred optimizations, issue status, and verification results.
Configuration and catalog restoration
devlog/_plan/260816_wave34_closeout/102_1798_restore_merge.md:34-85
Records the restore-merge audit correction, exact injected URL journaling, matching-value removal, backward compatibility, and the unresolved custom catalog-path restoration defect.
Crash-safe legacy adoption audit
devlog/_plan/260816_wave34_closeout/101_1049_legacy_adoption.md:27-109
Corrects implementation references, identifies crash and resumability flaws, specifies adoption-pending state and atomic publication requirements, and defers issue #1049.
Undeclared tool-call disposition
devlog/_plan/260816_wave34_closeout/130_1795_undeclared_tools.md:1-57
Documents streaming and non-streaming rejection of undeclared tool calls with 502 upstream_error responses, scope considerations, missing reproduction evidence, and the NEEDS_HUMAN/OPEN status.

Estimated code review effort: 2 (Simple) | ~15 minutes

Possibly related PRs

Suggested labels: chore

Suggested reviewers: ingwannu, wibias

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch codex/wave34-second-pass-record

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@lidge-jun
lidge-jun merged commit fd141f0 into dev Aug 16, 2026
16 of 17 checks passed

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 57e07ba74a

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

(`src/server/responses/policy-fallback.ts:72`) delegates to it, which the plan missed
when it proposed re-evaluating candidates inside `policy-fallback.ts:153`.

So the context-window half of #1524 is closed by one change rather than two.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Retract the claim that context fallback is closed

With the real local 413 response, the message contains "context window", so classifyError returns context_length_exceeded and comboFailureDecision stops at src/combos/failover.ts:124 before reaching the input_admission_refused check at line 132. The newly added 120_outcome.md:100-105 records this same ordering defect and leaves PR #1864 open, so this section incorrectly describes both fallback paths as fixed; mark the first change incomplete until the admission check is ordered before the generic stop list.

Useful? React with 👍 / 👎.

a `capability-unsatisfied` exclusion. `rankPolicyFallbackCandidates` only considers
candidates with `eligible === true` and zero exclusions
(`policy-fallback.ts:32`), so an image request can never hop onto a text-only candidate.
The plan's proposed image tests would have passed before any change.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Keep combo modality filtering in the remaining work

This evidence path applies only to policy profiles. Combo selection still uses payloadEligible in src/server/responses/core.ts:1298-1299, which checks only encrypted-task decryptability; tests/server-combo-failover-e2e.test.ts:1440-1470 even demonstrates an image request invoking a noVisionModels target rather than skipping it. Therefore the proposed test that a combo skips a text-only candidate would not have passed before this change, so qualify this conclusion as policy-only and retain the combo modality preflight as an unresolved case.

Useful? React with 👍 / 👎.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

documentation Improvements or additions to documentation

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant