feat(prd9): Phase 0 isometric visualization + McpProvider actor/gate + datum logic#63
Merged
Merged
Conversation
… suite
- iso.rs: Vec3/IsoProjected/iso_project(), ZLayer (6 variants), SemanticType (12),
VisualizationSpec, HasVisualization trait, IsoEasing, IsoTransform, IsoAnimationPath
with to_smil_svg() and to_manim_script(); self-contained (no glam dep)
- iso_objects.rs: HasVisualization impls for all 20 PRD-6/7 domain types across
z=1 Pipeline, z=2 Constraint, z=3 Legal, z=4 FormalProof layers
- tests/iso_lint.rs: 20 lint tests enforcing description/rhai_dsl/z_layer/semantic_type
contract per type; all pass
- book/src/iso-pipeline-objects.md: mdBook chapter with per-type DSL blocks
- _docs/iso-pipeline.tomllmd: verbatim/executive/epigram + TOML layer stack +
EntanglementRef + {{ cmd: }} interpolation blocks
- SUMMARY.md: wire iso-pipeline-objects chapter into Visualization System section
- PRD-9.md: specification document for isometric pipeline visualization
Closes #62
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…rate - ledgerr-mcp-core: new crate extracting McpProvider trait + StdioMcpProvider, McpProviderRegistry, B00tProvider, JustProvider, Ir0ntologyProvider definitions - actor.rs: MCP actor loop with typed message dispatch - gate.rs: commit gate integration for MCP tool authorization - mcp_adapter.rs: expanded MCP adapter surface - provider.rs: refactored to re-export from ledgerr-mcp-core - datum/logic.rs: additional symbolic gate tests and NAND/NOR/ADD/WAIT/TX/RX coverage - README.md: add Future Ambitions section linking PRD-7, PRD-8, PRD-6-FUTURE Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Member
|
@copilot good faith critically evaluate errors, gaps, synergistic capability utilization and idiomatic composition of visual narrative animation readiness |
Adds `legacy` feature flag (`cfg-if`-gated) to the old direct-Mutex `mcp_adapter` dispatch functions. The modern actor/gate channel system is the default; the `legacy` flag keeps the pre-PRD-7 dispatch compiled for backward compatibility until the migration is fully validated. Also adds `cfg-if = 1.0` dep, bumps `ledgerr-mcp` and `ledgerr-mcp-core` to 1.8.1, and fixes duplicate `handle_external_tool` definitions from the previous phase.
…tive readiness gaps - mcp_adapter.rs: remove duplicate tool_descriptors/handle_external_tool definitions introduced in PRD-7 commit; add non-legacy tool_names() wrapping BUILTIN_TOOL_NAMES so contract tests pass without the legacy feature - mcp_adapter.rs: gate ToolDescriptor/OnceLock imports under #[cfg(feature = "b00t")] to fix unused-import warnings - gate.rs: remove duplicate #[cfg(feature = \"xero\")] attributes on GateMessage variants - actor.rs: fix Shutdown handling — check for Shutdown before entering catch_unwind boundary so the actor thread terminates correctly instead of continuing to recv - iso.rs: add Display impls for ZLayer and SemanticType for idiomatic use in diagnostics and logging - iso.rs: guard IsoAnimationPath::to_smil_svg against empty transforms (returns \"\") - iso.rs: add xml_attr_escape helper (narrative animation readiness — safe SMIL output) - iso.rs: fix sanitize_class_name empty-input guard; avoid double allocation on first-char capitalise path - iso.rs: add 8 targeted unit tests covering new helpers and edge cases - scripts/mcp_cli_demo.sh: sync with generated_mcp_cli_demo_script() (adds DEMO_ROOT, ONTOLOGY_PATH, spinning-wheels mode, exit 0 guards) — fixes contract_codegen test Agent-Logs-Url: https://github.com/PromptExecution/l3dg3rr/sessions/a3e5a568-6e5c-4ae9-92ac-ffdf7eb13997 Co-authored-by: elasticdotventures <35611074+elasticdotventures@users.noreply.github.com>
- mcp_adapter.rs: remove legacy gates from handle_external_tool (gated on b00t only, not b00t+legacy) so the function is available when b00t is active without needing the legacy feature; server binary already calls it under b00t cfg - mcp_adapter.rs: remove duplicate #[cfg(feature = \"legacy\")] on legacy tool_names - iso.rs: promote xml_attr_escape to pub with corrected doc comment (removes #[allow(dead_code)] - callers can use it for safe SMIL attribute embedding) - iso.rs: fix sanitize_class_name comment to accurately describe the allocation behavior of to_uppercase().collect() Agent-Logs-Url: https://github.com/PromptExecution/l3dg3rr/sessions/a3e5a568-6e5c-4ae9-92ac-ffdf7eb13997 Co-authored-by: elasticdotventures <35611074+elasticdotventures@users.noreply.github.com>
Contributor
Good faith critical evaluation — findings and fixes (commits Errors
Gaps
Idiomatic composition
Visual narrative animation readiness
|
added 9 commits
May 2, 2026 22:09
| $( | ||
| { | ||
| let mut cap = $crate::logic::FluxCapacitor::new(); | ||
| let mut ids: Vec<usize> = Vec::new(); |
| $( | ||
| { | ||
| let mut cap = $crate::logic::FluxCapacitor::new(); | ||
| let mut ids: Vec<usize> = Vec::new(); |
| $( | ||
| { | ||
| let mut cap = $crate::logic::FluxCapacitor::new(); | ||
| let mut ids: Vec<usize> = Vec::new(); |
| $( | ||
| { | ||
| let mut cap = $crate::logic::FluxCapacitor::new(); | ||
| let mut ids: Vec<usize> = Vec::new(); |
|
|
||
| fn call_tool(&self, _name: &str, _arguments: Value) -> ProviderResult<Value> { | ||
| self.call_count.fetch_add(1, Ordering::SeqCst); | ||
| self.call_result.as_ref().map_err(|e| e.clone()).and_then(|v| Ok(v.clone())) |
| mod tests { | ||
| use super::*; | ||
| use crate::{AccountSummary, ListAccountsRequest}; | ||
| use ledger_core::manifest::Manifest; |
|
|
||
| fn global_raw_service() -> &'static ledgerr_mcp::TurboLedgerService { | ||
| static PAIR: OnceLock<(&'static ledgerr_mcp::TurboLedgerService, ledgerr_mcp::actor::ServiceHandle)> = OnceLock::new(); | ||
| PAIR.get_or_init(|| build_service()).0 |
|
|
||
| fn global_raw_service() -> &'static ledgerr_mcp::TurboLedgerService { | ||
| static PAIR: OnceLock<(&'static ledgerr_mcp::TurboLedgerService, ledgerr_mcp::actor::ServiceHandle)> = OnceLock::new(); | ||
| PAIR.get_or_init(|| build_service()).0 |
Signed-off-by: Brian Horakh <35611074+elasticdotventures@users.noreply.github.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
ledgerr-mcp-corecrate, newactor.rsandgate.rsmodulesPRD-9 Phase 0 details
New files
crates/ledger-core/src/iso.rsVec3,IsoProjected,iso_project(),ZLayer(6),SemanticType(12),HasVisualization,IsoAnimationPathcrates/ledger-core/src/iso_objects.rsHasVisualizationimpls for all 20 domain typescrates/ledger-core/tests/iso_lint.rsbook/src/iso-pipeline-objects.md_docs/iso-pipeline.tomllmdPRD-9.mdZLayer stack
Projection formula (matches JS rhai-live-core.js)
Animation backends
IsoAnimationPath::to_smil_svg()— SVG SMIL<animateTransform>IsoAnimationPath::to_manim_script()— Python manim sceneTest plan
cargo test -p ledger-core --test iso_lint— 20/20 passcargo check -p ledger-core— cleancargo check -p ledgerr-mcp— cleanRelated issues
🤖 Generated with Claude Code