openpencil/crates
Fini 7f5152ac07 feat(orchestrator): concurrent executor — semaphore + serialized replay
Task B2 of S3b-2: implements `run_concurrent` — the concurrent executor
that drives screen-group workers via a tokio Semaphore (RAII permits,
FIFO-fair, cap = effective_concurrency), collects per-worker buffered
EditorCommands, replays them into the real DocSink in subtask-plan-index
order, and fan-ins Progress events via mpsc channel.

Also splits concurrent.rs test block into concurrent_tests.rs (STEP 0)
to keep both files under the 800-line ceiling, wired via
`#[path = "concurrent_tests.rs"] mod tests` (same pattern as plan_repair).

Updated run_screen_group_worker signature: now takes Arc<Semaphore> +
mpsc::UnboundedSender<Progress> instead of &mut dyn FnMut(Progress).

Added CountingLlm to test_support for semaphore-cap verification.
Added tokio (sync + rt + macros) to op-orchestrator Cargo.toml.

208 tests pass; clippy -D warnings clean; fmt clean.
concurrent.rs: 432 lines; concurrent_tests.rs: 727 lines.
2026-05-23 04:06:51 +08:00
..
op-acp style: clear clippy lints for the workspace -D warnings gate 2026-05-17 23:12:16 +08:00
op-ai feat(ai): chat image attachments + per-provider thinking/effort 2026-05-17 22:44:28 +08:00
op-ai-skills style: clear clippy lints for the workspace -D warnings gate 2026-05-17 23:12:16 +08:00
op-app refactor(rust): add op-app composition-root crate 2026-05-16 23:57:03 +08:00
op-cli feat: close six TS-parity gaps in the Rust shell 2026-05-17 13:03:11 +08:00
op-codegen feat(editor): add Design-MD panel and complete i18n coverage 2026-05-19 22:29:22 +08:00
op-editor-core Merge branch 's3a-orchestrator' into v0.8.0-new 2026-05-23 01:27:30 +08:00
op-editor-ui Merge branch 's3a-orchestrator' into v0.8.0-new 2026-05-23 01:27:30 +08:00
op-figma feat(editor): add Design-MD panel and complete i18n coverage 2026-05-19 22:29:22 +08:00
op-git Merge branch 's3a-orchestrator' into v0.8.0-new 2026-05-23 01:27:30 +08:00
op-host-desktop Merge branch 's3a-orchestrator' into v0.8.0-new 2026-05-23 01:27:30 +08:00
op-host-native Merge branch 's3a-orchestrator' into v0.8.0-new 2026-05-23 01:27:30 +08:00
op-host-web Merge branch 's3a-orchestrator' into v0.8.0-new 2026-05-23 01:27:30 +08:00
op-i18n Merge branch 's3a-orchestrator' into v0.8.0-new 2026-05-23 01:27:30 +08:00
op-mcp Merge branch 's3a-orchestrator' into v0.8.0-new 2026-05-23 01:27:30 +08:00
op-opmerge Merge branch 's3a-orchestrator' into v0.8.0-new 2026-05-23 01:27:30 +08:00
op-orchestrator feat(orchestrator): concurrent executor — semaphore + serialized replay 2026-05-23 04:06:51 +08:00
op-pen-loader Merge branch 's3a-orchestrator' into v0.8.0-new 2026-05-23 01:27:30 +08:00
wasm-libc-shim fix: clear clippy -D warnings across the workspace 2026-05-17 01:26:29 +08:00
CLAUDE.md docs: fix stale i18n + renderer paths flagged by Codex review 2026-05-16 15:45:54 +08:00