docs: document replay history normalization contract#89585
Conversation
6515710 to
513f9ea
Compare
|
Codex review: stale review; fresh review needed. Summary Next step Review history (3 earlier review cycles) |
5596d9d to
3bd721c
Compare
4281412 to
20ca6bd
Compare
09165c2 to
dce8eae
Compare
198ad15 to
3541bca
Compare
1130777 to
32bfe03
Compare
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 91500e00ec
ℹ️ 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".
| | `channels.bluebubbles.allowFrom` | `channels.imessage.allowFrom` | Same handle formats (`+15555550123`, `[email protected]`). Pairing-store approvals do not transfer — see below. | | ||
| | `channels.bluebubbles.groupPolicy` | `channels.imessage.groupPolicy` | Same values (`allowlist` / `open` / `disabled`); default `allowlist`. | | ||
| | `channels.bluebubbles.groupAllowFrom` | `channels.imessage.groupAllowFrom` | Same. Does not fall back to `allowFrom` — an empty `groupAllowFrom` under `groupPolicy: "allowlist"` drops all groups regardless of `allowFrom`. | | ||
| | `channels.bluebubbles.groupAllowFrom` | `channels.imessage.groupAllowFrom` | Same. When unset, iMessage falls back to `allowFrom`; an explicitly empty `groupAllowFrom: []` blocks all groups under `groupPolicy: "allowlist"`. | |
There was a problem hiding this comment.
Teach doctor the iMessage fallback contract
When a migrated config leaves channels.imessage.groupAllowFrom unset but keeps senders in allowFrom, this new guidance says groups are admitted via the fallback, and monitor-provider.ts now suppresses the drop-all warning for that case. openclaw doctor still uses extensions/imessage/src/doctor.ts:6 to declare groupAllowFromFallbackToAllowFrom: false, so src/commands/doctor/shared/empty-allowlist-policy.ts:94-108 will continue telling those users that all group messages are silently dropped; simply flipping the flag would also miss the explicit groupAllowFrom: [] block-all case documented here, so the doctor path needs the same unset-vs-empty iMessage semantics.
Useful? React with 👍 / 👎.
91500e0 to
69c0765
Compare
69c0765 to
b6e1945
Compare
|
Replayed only the still-useful contract note from the original 71-file comment stack.
This is the bounded canonical remainder; the broad historical stack is not needed for this contract. |
b6e1945 to
6b9fc22
Compare
|
Merged via squash.
|
Summary
Linked context
Related #88554
Requested by maintainer in chat after confirming #88554 should be the only landing target before the next PR.
Real behavior proof
Behavior addressed: comment-only maintainability for embedded-agent replay-history normalization, tool-result char estimation, usage accumulation, compaction runtime context assembly, sandbox info prompt summaries, tool-name allowlist generation, embedded resource loading, compaction successor transcript rotation, and post-compaction loop guarding; no runtime behavior intended.
Real environment tested: local source checkout.
Exact steps or command run after this patch: git diff --check; git diff --check origin/main..HEAD; pnpm test src/agents/embedded-agent-runner/replay-history.test.ts; pnpm test src/agents/embedded-agent-runner/tool-result-char-estimator.test.ts; pnpm test src/agents/embedded-agent-runner/usage-accumulator.test.ts; pnpm test src/agents/embedded-agent-runner/compaction-runtime-context.test.ts; pnpm test src/agents/embedded-agent-runner.buildembeddedsandboxinfo.test.ts; pnpm test src/agents/embedded-agent-runner/tool-name-allowlist.test.ts src/agents/embedded-agent-runner.splitsdktools.test.ts; pnpm test src/agents/embedded-agent-runner/resource-loader.test.ts; pnpm test src/agents/embedded-agent-runner/compaction-successor-transcript.test.ts; pnpm test src/agents/embedded-agent-runner/post-compaction-loop-guard.test.ts.
Evidence after fix: latest pushed commit 41d4901 documents post-compaction loop guard contracts; whitespace checks passed; focused tests passed: replay-history 25, tool-result-char-estimator 4, usage-accumulator 12, compaction-runtime-context 18, buildembeddedsandboxinfo 11, tool-name-allowlist/splitsdktools 11, resource-loader 1, compaction-successor-transcript 10, post-compaction-loop-guard 12.
Observed result after fix: branch codex/replay-history-comments pushed with scoped documentation changes for replay-history, tool-result estimator, usage accumulator, compaction runtime context, sandbox info, tool-name allowlists, resource loader, compaction successor transcript rotation, and post-compaction loop guard.
What was not tested: broader agent suites and live runtime behavior because this PR only adds comments and does not change runtime behavior.
Proof limitations or environment constraints: no live behavior proof collected for comment-only documentation.
Before evidence: the touched exported helpers/types lacked declaration-level contract comments before this PR.
Tests and validation
Commands run:
Regression coverage added or updated: none; existing focused tests cover the runtime behavior for the touched files.
What failed before this fix, if known: no runtime failure; this is a maintainability/documentation slice.
If no test was added, why not? Runtime behavior was unchanged.
Risk checklist
Did user-visible behavior change? (
Yes/No)No.
Did config, environment, or migration behavior change? (
Yes/No)No.
Did security, auth, secrets, network, or tool execution behavior change? (
Yes/No)No.
What is the highest-risk area?
Low documentation-only risk in embedded agent runtime helper code.
How is that risk mitigated?
The PR changes comments only and focused tests passed.
Current review state
What is the next action?
Maintainer review and CI on the latest pushed head.
What is still waiting on author, maintainer, CI, or external proof?
CI after the latest push.
Which bot or reviewer comments were addressed?
None yet.