Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
29 commits
Select commit Hold shift + click to select a range
6eefc7d
feat(reborn): add scoped lifecycle admin foundation
serrrfirat Jun 8, 2026
0e1ff3b
refactor(reborn): simplify scoped lifecycle lookups
serrrfirat Jun 8, 2026
44fd9e7
fix(reborn): reject duplicate scoped lifecycle packages
serrrfirat Jun 8, 2026
1e2be9b
fix(reborn): make scoped lifecycle package uniqueness atomic
serrrfirat Jun 8, 2026
17863f0
fix(reborn): guard scoped lifecycle deletes by version
serrrfirat Jun 8, 2026
a3ffe9d
fix(reborn): keep scoped lifecycle delete tombstones durable
serrrfirat Jun 8, 2026
b670561
fix(reborn): reserve scoped lifecycle installation ids
serrrfirat Jun 8, 2026
7334847
fix(reborn): tombstone scoped lifecycle id reservations
serrrfirat Jun 8, 2026
b408246
fix(reborn): make scoped lifecycle id deletes retryable
serrrfirat Jun 8, 2026
68dc061
fix(reborn): classify scoped lifecycle package races
serrrfirat Jun 8, 2026
c506170
fix: address scoped lifecycle review comments
serrrfirat Jun 17, 2026
be2ab7c
Merge remote-tracking branch 'origin/main' into codex/reborn-scoped-l…
serrrfirat Jun 17, 2026
e7609e9
docs: capability policy architecture (continuation of #4628)
zetyquickly Jun 25, 2026
77f4f93
feat(capability-policy): add ironclaw_capability_policy crate
zetyquickly Jun 25, 2026
fde29e2
feat(capability-policy): add CapabilityDefaultPolicySource for per-ca…
zetyquickly Jun 25, 2026
de1cd61
Merge origin/main into scoped-lifecycle-admin (take over #4544)
zetyquickly Jun 25, 2026
fa455cc
feat(reborn): DB-backed user role + admin gate on the WebChat-v2 call…
zetyquickly Jun 25, 2026
fc014da
feat(reborn): availability resolver at the dispatch seam (#5267)
zetyquickly Jun 26, 2026
a325b70
docs(capability-policy): record implementation status + corrections (…
zetyquickly Jun 26, 2026
96c9df8
feat(capability-policy): delta store + store-backed PolicyResolver (#…
zetyquickly Jun 26, 2026
f445594
feat(reborn): capability-policy engine — durable delta store, resolve…
zetyquickly Jun 26, 2026
5471c7a
Merge remote-tracking branch 'origin/codex/reborn-scoped-lifecycle-ad…
zetyquickly Jun 26, 2026
b3a9432
feat(reborn): capability-policy availability dimension — scoped-lifec…
zetyquickly Jun 26, 2026
2fc0d7e
refactor(reborn): align engine principal_user_id with the shared modu…
zetyquickly Jun 26, 2026
0600714
Merge branch 'wt-engine' into wt-availability
zetyquickly Jun 26, 2026
20c508b
fix(reborn): availability branch = dispatch resolver combine only; ad…
zetyquickly Jun 26, 2026
9e40dee
feat(reborn): role rank primitives + carry role to the dispatch actor…
zetyquickly Jun 26, 2026
d5bf7e6
Merge branch 'feat/reborn-user-role' into feat/capability-policy-avai…
zetyquickly Jun 26, 2026
d9fddd7
feat(reborn): role-aware availability + builtin capability governance…
zetyquickly Jun 26, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
16 changes: 16 additions & 0 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
[workspace]
members = [".", "crates/ironclaw_common", "crates/ironclaw_host_api", "crates/ironclaw_filesystem", "crates/ironclaw_attachments", "crates/ironclaw_extractors", "crates/ironclaw_memory", "crates/ironclaw_memory_native", "crates/ironclaw_events", "crates/ironclaw_event_projections", "crates/ironclaw_event_streams", "crates/ironclaw_reborn_event_store", "crates/ironclaw_extensions", "crates/ironclaw_processes", "crates/ironclaw_dispatcher", "crates/ironclaw_scripts", "crates/ironclaw_process_sandbox", "crates/ironclaw_mcp", "crates/ironclaw_wasm", "crates/ironclaw_wasm_sandbox_core", "crates/ironclaw_wasm_limiter", "crates/ironclaw_capabilities", "crates/ironclaw_secrets", "crates/ironclaw_network", "crates/ironclaw_host_runtime", "crates/ironclaw_runtime_policy", "crates/ironclaw_authorization", "crates/ironclaw_run_state", "crates/ironclaw_approvals", "crates/ironclaw_resources", "crates/ironclaw_auth", "crates/ironclaw_trust", "crates/ironclaw_turns", "crates/ironclaw_agent_loop", "crates/ironclaw_threads", "crates/ironclaw_prompt_envelope", "crates/ironclaw_hooks", "crates/ironclaw_hooks_postgres", "crates/ironclaw_hooks_libsql", "crates/ironclaw_hooks_parity", "crates/ironclaw_loop_support", "crates/ironclaw_reborn", "crates/ironclaw_reborn_config", "crates/ironclaw_reborn_composition", "crates/ironclaw_reborn_identity", "crates/ironclaw_first_party_extensions", "crates/ironclaw_reborn_cli", "crates/ironclaw_reborn_traces", "crates/ironclaw_reborn_webui_ingress", "crates/ironclaw_reborn_openai_compat", "crates/ironclaw_reborn_openai_compat_storage", "crates/ironclaw_conversations", "crates/ironclaw_product_adapters", "crates/ironclaw_product_context", "crates/ironclaw_product_workflow", "crates/ironclaw_product_workflow_storage", "crates/ironclaw_product_adapter_registry", "crates/ironclaw_wasm_product_adapters", "crates/ironclaw_telegram_v2_adapter", "crates/ironclaw_slack_v2_adapter", "crates/ironclaw_outbound", "crates/ironclaw_triggers", "crates/ironclaw_projects", "crates/ironclaw_architecture", "crates/ironclaw_safety", "crates/ironclaw_skills", "crates/ironclaw_oauth", "crates/ironclaw_llm", "crates/ironclaw_embeddings", "crates/ironclaw_engine", "crates/ironclaw_gateway", "crates/ironclaw_tui", "crates/ironclaw_webui_v2", "crates/ironclaw_webui_v2_static", "crates/ironclaw_skill_learning"]
members = [".", "crates/ironclaw_common", "crates/ironclaw_host_api", "crates/ironclaw_filesystem", "crates/ironclaw_attachments", "crates/ironclaw_extractors", "crates/ironclaw_memory", "crates/ironclaw_memory_native", "crates/ironclaw_events", "crates/ironclaw_event_projections", "crates/ironclaw_event_streams", "crates/ironclaw_reborn_event_store", "crates/ironclaw_extensions", "crates/ironclaw_processes", "crates/ironclaw_dispatcher", "crates/ironclaw_scripts", "crates/ironclaw_process_sandbox", "crates/ironclaw_mcp", "crates/ironclaw_wasm", "crates/ironclaw_wasm_sandbox_core", "crates/ironclaw_wasm_limiter", "crates/ironclaw_capabilities", "crates/ironclaw_secrets", "crates/ironclaw_network", "crates/ironclaw_host_runtime", "crates/ironclaw_runtime_policy", "crates/ironclaw_authorization", "crates/ironclaw_run_state", "crates/ironclaw_approvals", "crates/ironclaw_resources", "crates/ironclaw_auth", "crates/ironclaw_trust", "crates/ironclaw_turns", "crates/ironclaw_agent_loop", "crates/ironclaw_threads", "crates/ironclaw_prompt_envelope", "crates/ironclaw_hooks", "crates/ironclaw_hooks_postgres", "crates/ironclaw_hooks_libsql", "crates/ironclaw_hooks_parity", "crates/ironclaw_loop_support", "crates/ironclaw_reborn", "crates/ironclaw_reborn_config", "crates/ironclaw_reborn_composition", "crates/ironclaw_reborn_identity", "crates/ironclaw_first_party_extensions", "crates/ironclaw_reborn_cli", "crates/ironclaw_reborn_traces", "crates/ironclaw_reborn_webui_ingress", "crates/ironclaw_reborn_openai_compat", "crates/ironclaw_reborn_openai_compat_storage", "crates/ironclaw_conversations", "crates/ironclaw_product_adapters", "crates/ironclaw_product_context", "crates/ironclaw_product_workflow", "crates/ironclaw_product_workflow_storage", "crates/ironclaw_product_adapter_registry", "crates/ironclaw_wasm_product_adapters", "crates/ironclaw_telegram_v2_adapter", "crates/ironclaw_slack_v2_adapter", "crates/ironclaw_outbound", "crates/ironclaw_triggers", "crates/ironclaw_projects", "crates/ironclaw_architecture", "crates/ironclaw_safety", "crates/ironclaw_skills", "crates/ironclaw_oauth", "crates/ironclaw_llm", "crates/ironclaw_embeddings", "crates/ironclaw_engine", "crates/ironclaw_gateway", "crates/ironclaw_tui", "crates/ironclaw_webui_v2", "crates/ironclaw_webui_v2_static", "crates/ironclaw_skill_learning", "crates/ironclaw_capability_policy"]
exclude = [
"channels-src/discord",
"channels-src/feishu",
Expand Down
2 changes: 1 addition & 1 deletion FEATURE_PARITY.md
Original file line number Diff line number Diff line change
Expand Up @@ -337,7 +337,7 @@ Trace Commons issuer/TenantCtx note: the server-side `zmanian/tracedao-server` s
| Z.AI tool_stream | ✅ | ❌ | Real-time tool call streaming |
| Plugin tools | ✅ | ✅ | WASM tools |
| GSuite WASM tools | ✅ | 🚧 | Reborn bundles operation-level Google Drive/Docs/Sheets/Slides WASM packages with host-mediated HTTP egress, product-auth scoped bearer injection, and manifest-declared Google OAuth setup metadata; full live-recorded parity remains follow-up |
| Hosted MCP extensions | ✅ | 🚧 | Reborn composes host-mediated MCP runtime, bundles the current Notion MCP supported tool set, wires Notion ProductAuth OAuth exchange/refresh, can use Reborn ProductAuth DCR OAuth setup through the host callback origin, and can activate hosted MCP packages with live `tools/list` schema discovery through host-staged product-auth credentials |
| Hosted MCP extensions | ✅ | 🚧 | Reborn composes host-mediated MCP runtime, bundles the current Notion MCP supported tool set, wires Notion ProductAuth OAuth exchange/refresh, can use Reborn ProductAuth DCR OAuth setup through the host callback origin, can activate hosted MCP packages with live `tools/list` schema discovery through host-staged product-auth credentials, and now has a product-workflow scoped lifecycle model/store foundation for admin-shared plus user-private package resolution; WebUI/API wiring and adapter activation against that scoped store remain pending |
| NEAR AI MCP extension | ✅ | 🚧 | Host-bundled Reborn MCP extension exposes `nearai.web_search` via host-mediated HTTP and `llm_nearai_api_key`; local-dev startup now auto-seeds product-auth and activates the bundled MCP extension when `NEARAI_BASE_URL` plus `NEARAI_API_KEY` are configured, and WebChat v2 no longer projects that host-managed credential as extension setup work while NEAR remains a static supported-tool adapter |
| Tool policies (allow/deny) | ✅ | ✅ | Reborn now stores scoped persistent `AlwaysAllow` approval policies for manifest-allow capabilities and replays them at the current sandbox scope; WebChat v2 exposes authenticated caller-scoped tool approval settings at `/api/webchat/v2/settings/tools` so regular multi-user sessions do not need operator config access; product-facing revoke paths remain follow-up while the policy-store revoke interface is available |
| Exec approvals (`/approve`) | ✅ | ✅ | TUI approval overlay |
Expand Down
Loading
Loading