Commit graph

3 commits

Author SHA1 Message Date
Kayshen-X e79ff82833 style: clear clippy lints for the workspace -D warnings gate
CI's Rust Check runs `cargo clippy --workspace --all-targets -- -D
warnings`; the fmt failure had masked it, so accumulated lints surfaced
once formatting was fixed. Resolve them:

- op-acp / op-ai-skills (this change set): while-let loop, redundant
  struct update, and `should_implement_trait` allows on the Option /
  infallible token parsers.
- Pre-existing in op-editor-core / op-figma, swept so the workspace
  gate is clean: redundant `drop`, `too_many_arguments` allow,
  collapsible `if let`, a type alias for a complex tuple, manual
  `Iterator::find`, and an `approx_constant` test value.

Lint fixes only — no behaviour change.
2026-05-17 23:12:16 +08:00
Kayshen-X 5b6874b7d8 style: apply rustfmt across the AI-subsystem crates
CI's Rust Check runs a workspace-wide `cargo fmt --check`. Reformat the
new op-acp / op-ai-skills crates and the Part A chat changes to rustfmt
canon. Also sweeps two files an earlier commit left non-compliant
(canvas_viewport_paint.rs, op-pen-loader/adapter.rs) so the workspace
check is clean. Formatting only — no behaviour change.
2026-05-17 22:50:27 +08:00
Kayshen-X ddaf3b7a17 feat(ai): add op-acp crate — Agent Client Protocol client
Port of the TS packages/pen-acp: ndJSON transport, a hand-rolled
JSON-RPC engine (request-id correlation, session/update notification
routing, session/request_permission auto-approval, and a pending-request
drain on EOF so a dead agent fails fast instead of timing out), and an
AcpConnection driving initialize / session/new / session/prompt over
local stdio or a remote WebSocket. The event adapter maps ACP session
updates onto the chat panel's ChatDelta vocabulary.
2026-05-17 22:44:10 +08:00