Skip to content

Commit 233861c

Browse files
hyperpolymathclaude
andcommitted
Phase 1 complete: 5 new crates, event bus, scheduler, state, resources
New crates (5): - rpa-config: configuration loading + Nickel bridge + validators (6 tests) - rpa-events: async pub/sub event bus with pre/post lifecycle hooks (5 tests) - rpa-resources: semaphore-based resource pooling + ResourceManager (5 tests) - rpa-scheduler: cron expression parser + scheduled task execution (6 tests) - rpa-state: persistence layer with JsonFileBackend + snapshots (11 tests) Integration: - rpa-fs-workflow now delegates config loading to rpa-config::ConfigLoader - Workspace expanded from 3 to 8 crates (48 total tests, zero warnings) Documentation: - ROADMAP: Phase 1 COMPLETE, Phases 6-10 added (Enterprise, Distributed, AI-Native, Marketplace, Autonomous Operations) - README: Phase 2 next, 8-crate description - TOPOLOGY: all new crates at 100%, overall 55% - STATE: completion 55%, next actions = Phase 2 - META: ADR-009 (event bus), ADR-010 (resource pooling) Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
1 parent 67d2755 commit 233861c

26 files changed

Lines changed: 2407 additions & 92 deletions

File tree

.machine_readable/META.a2ml

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,18 @@ status = "accepted"
5757
date = "2026-03-17"
5858
rationale = "JSON panel definitions in panels/ enable integration with PanLL monitoring system. Two panels: fs-workflow (runtime) and plugin-status (sandbox)."
5959

60+
[architecture-decisions.adr-009]
61+
title = "Event bus architecture — async pub/sub with lifecycle hooks"
62+
status = "accepted"
63+
date = "2026-03-17"
64+
rationale = "Async publish/subscribe event bus (rpa-events) decouples components and enables lifecycle hooks (pre/post execution callbacks). Supports error propagation through structured error types with recovery strategies. Enables future distributed event routing in Phase 7."
65+
66+
[architecture-decisions.adr-010]
67+
title = "Resource pooling with semaphore-based allocation"
68+
status = "accepted"
69+
date = "2026-03-17"
70+
rationale = "Semaphore-based resource pooling (rpa-resources) provides bounded concurrency for shared resources (browser sessions, API connections, file handles). Prevents resource exhaustion under load while maintaining fairness. Integrates with rpa-scheduler for capacity-aware task scheduling."
71+
6072
[development-practices]
6173
test-coverage-target = "80%"
6274
ci-pipelines = 17

.machine_readable/STATE.a2ml

Lines changed: 24 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -9,13 +9,15 @@ status = "active"
99

1010
[project-context]
1111
name = "rpa-elysium"
12-
completion-percentage = 30
13-
phase = "Phase 1 — Core Framework (In Progress)"
12+
completion-percentage = 55
13+
phase = "Phase 1 Complete — Phase 2 Planned"
1414
description = "Rust-based RPA toolkit with WASM plugin system"
1515

1616
[current-position]
17-
milestone = "Phase 1.1 — Scaffolding"
18-
focus = "Multi-language scaffold, ABI/FFI layer, governance cleanup"
17+
milestone = "Phase 1 — Complete"
18+
focus = "Phase 2 planning — automation modules"
19+
20+
# Phase 1.1 — Scaffolding
1921
rust-workspace = "done"
2022
abi-ffi-scaffold = "done"
2123
proven-fsm-bindings = "done"
@@ -24,17 +26,30 @@ ephapax-linear-types = "done"
2426
multi-lang-scaffold = "done"
2527
hypatia-workflow = "done"
2628

29+
# Phase 1.2 — Bot Core
30+
rpa-core = "done"
31+
rpa-scheduler = "done"
32+
rpa-state = "done"
33+
rpa-resources = "done"
34+
rpa-config = "done"
35+
36+
# Phase 1.3 — Event System
37+
rpa-events = "done"
38+
lifecycle-hooks = "done"
39+
error-propagation = "done"
40+
2741
[blockers]
2842
# No active blockers
2943

3044
[next-actions]
31-
priority-1 = "rpa-fs-workflow standalone release prep (--version, --dry-run, README)"
32-
priority-2 = "Extract rpa-config crate from rpa-fs-workflow"
33-
priority-3 = "Implement rpa-scheduler (cron-like task scheduling)"
34-
priority-4 = "Wire plugin host into rpa-fs-workflow runner"
35-
priority-5 = "Implement rpa-state persistence layer"
45+
priority-1 = "Phase 2.1 — Web automation: browser driver (CDP/WebDriver protocol)"
46+
priority-2 = "Phase 2.2 — Desktop automation: window management, input simulation"
47+
priority-3 = "Phase 2.3 — API integration: HTTP/GraphQL client, auth, rate limiting"
48+
priority-4 = "Phase 2.4 — Document processing: PDF, Excel/CSV, email"
49+
priority-5 = "Wire WASM plugin host into rpa-fs-workflow runner (Phase 2 stretch)"
3650

3751
[session-history]
3852
# 2026-03-16: Governance cleanup, license alignment, ABI/FFI scaffold, multi-lang scaffold
3953
# 2026-03-17: Doc cleanup, security fixes (wasmtime 36.0.6), SPDX alignment, Hypatia rules config, CodeQL matrix fix, cruft removal
4054
# 2026-03-16: proven-fsm bindings (ProvenFSM.idr), proven-queueconn bindings (ProvenQueue.idr), Ephapax linear types (LinearDispatch.eph)
55+
# 2026-03-17: Phase 1 completion — all core framework crates done (rpa-core, rpa-config, rpa-events, rpa-resources, rpa-scheduler, rpa-state). Documentation updated for Phase 2 planning.

Cargo.lock

Lines changed: 73 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Cargo.toml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,12 @@
55
resolver = "2"
66
members = [
77
"crates/rpa-core",
8+
"crates/rpa-config",
9+
"crates/rpa-events",
810
"crates/rpa-plugin",
11+
"crates/rpa-resources",
12+
"crates/rpa-scheduler",
13+
"crates/rpa-state",
914
"crates/rpa-fs-workflow",
1015
]
1116

README.adoc

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -28,11 +28,12 @@ toc::[]
2828

2929
[IMPORTANT]
3030
====
31-
*Current Phase*: Core Framework (Phase 1In Progress)
31+
*Current Phase*: Phase 2Automation Modules (Next)
3232
33-
This repository contains:
33+
Phase 1 (Core Framework) completed 2026-03-17. This repository contains:
3434
35-
* Rust workspace with 3 crates (rpa-core, rpa-plugin, rpa-fs-workflow)
35+
* Rust workspace with 8 crates (rpa-core, rpa-config, rpa-events, rpa-plugin, rpa-resources, rpa-scheduler, rpa-state, rpa-fs-workflow)
36+
* Bot framework with scheduling, state management, event bus, and resource pooling
3637
* Working filesystem automation CLI (rpa-fs-workflow)
3738
* CI/CD infrastructure and governance workflows (17 workflows)
3839
* Language policy and development standards
@@ -174,7 +175,7 @@ See link:ROADMAP.adoc[ROADMAP.adoc] for detailed development phases.
174175

175176
|*1. Core Framework*
176177
|Bot framework, task scheduling, state management
177-
|In Progress
178+
|✓ Complete
178179

179180
|*2. Automation Modules*
180181
|Web, desktop, API, document automation

0 commit comments

Comments
 (0)