refactor: clean up ACP package metadata and helpers#88659
Conversation
|
Codex review: needs maintainer review before merge. Reviewed May 31, 2026, 10:42 AM ET / 14:42 UTC. Summary PR surface: Source +113, Tests +18, Config +27, Other +55. Total +213 across 16 files. Reproducibility: not applicable. This PR is a refactor/package cleanup, not a bug report. The relevant verification is package/build/runtime proof rather than a failing reproduction path. Review metrics: 1 noteworthy metric.
Merge readiness Overall follows the weaker of proof and patch quality, so missing proof can cap an otherwise strong patch. Rank-up moves:
Risk before merge
Maintainer options:
Next step before merge
Security Review detailsBest possible solution: Land after maintainer review confirms the export-map-derived ACP package surfaces preserve compatibility and all required head checks are green. Do we have a high-confidence way to reproduce the issue? Not applicable: this PR is a refactor/package cleanup, not a bug report. The relevant verification is package/build/runtime proof rather than a failing reproduction path. Is this the best way to solve the issue? Yes, with maintainer review: deriving ACP package surfaces from package exports is the maintainable source-of-truth direction. Because it changes resolver and build-boundary behavior, the safer merge path is to wait for full head CI/runtime proof and explicit package-compatibility review. AGENTS.md: found and applied where relevant. Codex review notes: model gpt-5.5, reasoning high; reviewed against d689893a6fa8. Label changesLabel changes:
Label justifications:
Evidence reviewedPR surface: Source +113, Tests +18, Config +27, Other +55. Total +213 across 16 files. View PR surface stats
What I checked:
Likely related people:
What the crustacean ranks mean
Shiny media proof means a screenshot, video, or linked artifact directly shows the changed behavior. Runtime, network, CSP, and security claims still need visible diagnostics. How this review workflow works
|
281752f to
352058e
Compare
|
Pre-merge verification for head Behavior addressed: ACP package metadata/alias maps now derive from
|
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 61f47c9961
ℹ️ 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".
| function buildAcpCoreDistEntries(): Record<string, string> { | ||
| return buildPackageDistEntriesFromExports("acp-core"); |
There was a problem hiding this comment.
Keep ACP error-format in the packaged dist
When building from a clean tree, buildAcpCoreDistEntries() now mirrors only packages/acp-core/package.json exports, so error-format is no longer emitted into the root dist/acp-core output. However packages/acp-core/src/runtime/errors.ts imports ../error-format.js, and the package's own build script still lists src/error-format.ts, so the emitted runtime/errors module needs that sibling artifact; otherwise built imports of @openclaw/acp-core/runtime/errors (for example through src/acp/runtime/errors.ts) will fail at runtime with a missing ../error-format.js. Please keep error-format as an emitted entry or bundle it into runtime/errors.
Useful? React with 👍 / 👎.
…n-rotation-current * origin/main: (52 commits) fix(agents): prevent embedded runtime shadowing fix(outbound): route source replies through configured channels refactor(cron): split tool and doctor repair helpers perf: reduce tui refresh work feat: default exec shell snapshots fix(ui): keep chat usable during session loading fix(cron): guard flat atMs canonicalization refactor(cron): keep runtime on canonical sqlite rows fix(codex): restore bounded recovery continuity refactor: clean up ACP package metadata and helpers (#88659) fix(discord): ping mention-bearing final replies fix(telegram): preserve usage footer for tool-only replies fix(agents): avoid alias setup load for matching refs chore(ui): translate thinking default label fix(agents): preserve runtime tools in lean mode (#88381) fix(messages): use best-effort for implicit tool-only source replies (#84232) docs: raise bulk PR close threshold feat: add exec shell snapshot cache fix: use typed tui empty session defaults perf: speed up tui session refresh ... # Conflicts: # src/tui/tui-command-handlers.test.ts
* refactor: derive acp core package subpath maps * refactor: split acp manager task and timeout helpers * refactor: split acp translator presentation helpers * fix: keep packaged acp core plugin aliases * ci: split gateway control plane runtime shard
* refactor: derive acp core package subpath maps * refactor: split acp manager task and timeout helpers * refactor: split acp translator presentation helpers * fix: keep packaged acp core plugin aliases * ci: split gateway control plane runtime shard
* refactor: derive acp core package subpath maps * refactor: split acp manager task and timeout helpers * refactor: split acp translator presentation helpers * fix: keep packaged acp core plugin aliases * ci: split gateway control plane runtime shard
Summary
@openclaw/acp-core/*plugin aliases when source package metadata is unavailable by deriving from shippeddist/acp-core/**/*.jsVerification
pnpm test src/plugins/sdk-alias.test.ts src/plugins/plugin-sdk-native-resolver.test.ts test/vitest-scoped-config.test.ts src/plugins/contracts/extension-package-project-boundaries.test.ts src/acp/policy.test.ts src/acp/control-plane/manager.test.ts src/acp/translator.lifecycle.test.ts src/acp/translator.session-lineage-meta.test.ts src/acp/translator.session-rate-limit.test.ts src/acp/translator.set-session-mode.test.ts src/acp/translator.event-ledger.test.ts src/acp/translator.permission-relay.test.ts src/acp/translator.cancel-scoping.test.ts src/acp/translator.stop-reason.test.ts src/acp/translator.error-kind.test.ts src/acp/translator.prompt-prefix.test.ts -- --reporter=verbosepnpm build:plugin-sdk:dtspnpm --filter @openclaw/acp-core buildpnpm build.agents/skills/autoreview/scripts/autoreview --mode branch --base origin/main-> clean, no accepted/actionable findingspnpm check:changedwas attempted but blocked before repo checks by local Crabbox0.21.0; current Testbox path requires Crabbox>=0.22.0. Focused local proof above passed, and PR CI should cover the broad lanes.Real behavior proof
Behavior addressed: ACP refactor cleanup keeps ACP core package alias/boundary generation aligned with exported package surfaces while splitting manager/translator helpers without behavior changes.
Real environment tested: local macOS checkout, Node/pnpm repo wrappers.
Exact steps or command run after this patch: focused ACP/plugin alias tests,
build:plugin-sdk:dts,@openclaw/acp-corepackage build, fullpnpm build, and branch autoreview.Evidence after fix: all listed commands passed; autoreview clean after fixing the packaged ACP alias fallback finding.
Observed result after fix: ACP manager and translator tests continue to pass, package d.ts generation passes, full build passes, and packaged ACP aliases are covered by a regression test without source package metadata.
What was not tested: remote CI/Testbox via
pnpm check:changedlocally because the installed Crabbox binary is too old for current Testbox sync.