Demo Behavior Tree Integration with API v2#293
Merged
ahouseholder merged 41 commits intomainfrom Feb 19, 2026
Merged
Conversation
…ration plan - Added last updated date for better tracking - Updated related ADR references for clarity - Improved executive summary and key challenge descriptions for better understanding - Enhanced key components section with clearer formatting - Added current implementation status to provide an overview of progress - Expanded primary objectives and non-goals for comprehensive project scope - Included critical design points and implementation strategies for clarity - Documented open questions and design decisions for future reference
… BT_INTEGRATION.md
…BT_INTEGRATION.md
Updates based on comprehensive review of specs/ and implementation status: Handler Status Corrections: - Correct handler count: 36 total (not 47) - 6 report handlers complete with business logic (17%) - 1 UNKNOWN handler (WARNING level logging) - 29 handlers remain as stubs - Updated test count to 378 (from implementation notes) New Architecture Lessons: - Docker health check coordination and service dependencies - FastAPI response_model serialization issue (HP-07-001) - Environment variable consistency in docker-compose - Image rebuilds after Dockerfile changes Common Pitfalls: - Added Docker health check coordination section - Documented retry logic patterns for service startup - Expanded on container health checks vs readiness Infrastructure Updates: - Added Docker infrastructure to completed features - Clarified MessageSemantics enum count - Updated timestamp to 2026-02-18 Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
…e redundancies - Add behavior-tree-integration.md: BT execution model, bridge layer, DataLayer integration - Add idempotency.md: Consolidate duplicate detection requirements from 4 files - Add specs/README.md: Documentation of specification structure and reading order - Refine inbox-endpoint.md: Remove redundant cross-references, point to idempotency.md - Refine error-handling.md: Move error response format to http-protocol.md - Refine message-validation.md: Consolidate idempotency requirements - Refine handler-protocol.md: Simplify idempotency cross-references - Refine response-format.md: Point to idempotency.md for duplicate response handling - Update http-protocol.md: Add error response format (HP-06-001), reorganize requirements Changes align with PRIORITIES.md focus on BT integration prototype and reduce specification redundancy while maintaining atomic, verifiable requirements. Total: 1855 lines (+329 from consolidation and new requirements) Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Per PRIORITIES.md and PLAN_prompt.md instructions: - Performed gap analysis comparing specs/behavior-tree-integration.md against vultron/api/v2 - Key finding: BT integration in design phase only; no py_trees implementation exists - Added Phase BT-1 tasks as top priority (POC with validate_report handler) - Documented critical gaps: py_trees dependency, BT bridge, workflow trees, CaseActor creation - Updated IMPLEMENTATION_NOTES.md with detailed findings and implementation strategy Changes: - plan/IMPLEMENTATION_PLAN.md: Added Phase BT-1 (6 sub-phases, 25 tasks) - plan/IMPLEMENTATION_NOTES.md: Gap analysis findings, comparison table, file structure Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Added py-trees>=2.2.0 to pyproject.toml to support behavior tree integration per specs/behavior-tree-integration.md. This is the first step in Phase BT-1 of the implementation plan. Changes: - Added py-trees>=2.2.0 to dependencies in pyproject.toml - Ran uv sync to install the package - Verified import works successfully - All 378 tests still pass Next: Create behavior tree directory structure (BT-1.1.2) Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
- Created vultron/behaviors/ with report/ subdirectory - Created test/behaviors/ with report/ subdirectory - Added __init__.py files with package documentation - All 378 tests pass - Ready for BT bridge layer implementation Task: BT-1.1.2 from plan/IMPLEMENTATION_PLAN.md Next: BT-1.1.3 - Implement BT bridge layer Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
- Created vultron/behaviors/bridge.py with BTBridge class - Provides handler-to-BT execution interface per specs/behavior-tree-integration.md - Implements requirements BT-05-001 through BT-05-004: * BT execution bridge for handler invocation * py_trees context setup with DataLayer access * Blackboard population with activity and actor state * Single-shot tree execution with result capture - BTBridge methods: * setup_tree(): Configure BehaviourTree with blackboard context * execute_tree(): Run BT to completion (max_iterations safety limit) * execute_with_setup(): Convenience method combining setup+execution - BTExecutionResult dataclass returns status, feedback, and errors - Comprehensive test coverage (16 tests in test/behaviors/test_bridge.py) - All 394 tests passing, no regressions - Black formatted Key implementation decisions: - Blackboard keys registered with WRITE access for population - Synchronous execution within handler context (meets BT-04-003) - Error handling with exception capture and logging - Actor isolation via separate blackboard clients per actor_id Next: BT-1.2.1 - Implement DataLayer-aware helper nodes Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Created base classes and common CRUD nodes for behavior tree integration:
- DataLayerCondition/DataLayerAction: Abstract bases for BT nodes
- ReadObject: Read from DataLayer and store in blackboard
- UpdateObject: Apply updates to objects in DataLayer
- CreateObject: Create new objects in DataLayer
Key implementation notes:
- py_trees blackboard keys must be simple (no URL slashes)
- Use simplified keys like 'object_{id}' for URL-based object IDs
- Nodes access DataLayer via blackboard (set by BTBridge)
- Full CRUD workflow support with proper error handling
Tests: 18 new tests, all passing. Total: 412 tests passing.
Implements specs/behavior-tree-integration.md BT-07-001/002/003.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
- Created comprehensive analysis document in session workspace - Documented 6-phase procedural flow of current handler - Identified decision points and condition nodes - Compared procedural handler against simulation BT structure - Mapped proposed BT implementation strategy (minimal match + policy evaluation) - Updated IMPLEMENTATION_NOTES.md with findings and cross-references - Updated IMPLEMENTATION_PLAN.md to mark BT-1.3.1 complete - Added markdown linting tip to AGENTS.md All 412 tests passing. Ready for BT-1.3.2: Implement report validation BT nodes. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
- Created vultron/behaviors/report/nodes.py (724 lines, 10 node classes)
* Condition nodes: CheckRMStateValid, CheckRMStateReceivedOrInvalid
* Action nodes: TransitionRMtoValid, TransitionRMtoInvalid, CreateCaseNode,
CreateCaseActivity, UpdateActorOutbox
* Policy stubs: EvaluateReportCredibility, EvaluateReportValidity (always SUCCESS)
- Created test/behaviors/report/test_nodes.py (398 lines, 18 comprehensive tests)
* All node classes tested (SUCCESS/FAILURE paths)
* Full integration test (9-step validation workflow)
* Idempotency test (duplicate case creation)
- All nodes inherit from DataLayerCondition/DataLayerAction base classes
- Blackboard key passing: case_id → activity_id → outbox update
- Status updates via set_status(), DataLayer persistence
- Updated IMPLEMENTATION_NOTES.md with implementation details
- Updated IMPLEMENTATION_PLAN.md to mark BT-1.3.2 complete
All 430 tests passing (412 base + 18 new). Ready for BT-1.3.3: Compose validation tree.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Created vultron/behaviors/report/validate_tree.py with factory function for composing the report validation workflow as a py_trees behavior tree. Tree structure (Phase 1): - Root: Selector (early exit OR full validation) - Early exit: CheckRMStateValid (short-circuit if already valid) - Validation flow: Sequence of preconditions, policy checks, and actions - CheckRMStateReceivedOrInvalid (precondition) - EvaluateReportCredibility/Validity (policy stubs) - ValidationActions: TransitionRMtoValid, CreateCase, CreateActivity, UpdateOutbox Key changes: - Added setup() overrides in CreateCaseActivity and UpdateActorOutbox nodes to register blackboard keys (case_id, activity_id) for READ access - Created comprehensive integration tests (12 tests, 502 lines) - Updated 2 existing node tests to handle blackboard key registration All 442 tests passing (430 base + 12 new). Implements specs/behavior-tree-integration.md BT-06 requirements. Per plan/IMPLEMENTATION_PLAN.md Phase BT-1.3.3. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Created default policy implementation for Phase 1 BT integration: - Added vultron/behaviors/report/policy.py: - ValidationPolicy abstract base class with is_credible/is_valid interface - AlwaysAcceptPolicy implementation (always returns True) - INFO-level logging for policy decisions - Comprehensive docstrings with extension points - Added test/behaviors/report/test_policy.py: - 12 comprehensive tests covering policy behavior - Tests for abstract base class, inheritance, logging, immutability - All tests passing (454 total: 442 base + 12 new) - Updated plan/IMPLEMENTATION_PLAN.md: Marked BT-1.3.4 complete - Updated plan/IMPLEMENTATION_NOTES.md: Added implementation details and lessons learned Per specs/behavior-tree-integration.md and plan/BT_INTEGRATION.md. Black formatting applied. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Updates following LEARN_prompt design review: AGENTS.md: - Update last modified date to 2026-02-18 - Add BT Integration Infrastructure section documenting Phase BT-1.1-1.3.4 - Document 5 key insights from py_trees integration (blackboard keys, registration, composition, policy pattern, DataLayer injection) - Update Future Work section to reflect BT infrastructure completion specs/behavior-tree-integration.md: - Update status: infrastructure complete (Phase BT-1.1-1.3.4) - Reduce library lock-in: BT-02-001 now recommends industry-standard library (not hardcoded py_trees mandate) - Add blackboard key restriction to BT-03-003 (no slashes in keys) - Improve BT-06-003 determinism definition with verification criteria - Expand BT-07 DataLayer protocol documentation with concrete API details - Update Implementation section showing completed components (bridge, helpers, trees, policy, tests) specs/handler-protocol.md: - Add HP-07-002: Handler timeout requirement (30s max) - Add HP-07-003: Long-running operation guidance (async subtasks) - Add verification criteria for timeout requirements specs/http-protocol.md: - Clarify HP-06-001 timeout measurement point (response headers, not body) - Add measurement exclusions (network latency, client processing) - Expand HP-06-003 log format specification specs/code-style.md: - Reduce formatter lock-in: CS-01-001 now requires PEP 8 (recommends Black) - Add CS-01-004/CS-01-005: Docstring standards with Google style guidance - Add docstring examples showing public API vs. utility function patterns specs/semantic-extraction.md: - Add SE-01-003: Rehydration failure handling (log warning, return UNKNOWN) - Update verification criteria to include rehydration failure tests specs/testability.md: - Add TB-06-004: Test cleanup requirement (fixtures must clean up data) - Add rationale and scope for cleanup requirement Rationale: - BT Phase BT-1 infrastructure now complete; documentation reflects reality - Reduces over-specification (library/tool mandates → capability requirements) - Improves clarity (timeout measurement, determinism definition) - Adds missing requirements (handler timeouts, test cleanup, rehydration failures) - Follows meta-specifications.md guidance: atomic, testable, less prescriptive Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Gap analysis summary (2026-02-18): - Phase BT-1.1 through BT-1.3 complete (infrastructure, nodes, trees) - 76 BT tests passing, all 454 total tests passing - Router test infrastructure fixed (18/18 passing) - Phase BT-1.4 through BT-1.6 remain (handler refactoring, demo, docs) Updates: - Marked Phase 0.5 as resolved (router tests fixed) - Updated BT integration status with completed phases - Added comprehensive gap analysis with spec compliance status - Updated test counts (454 passing, 2 xfailed) - Added Phase BT-1 progress summary to IMPLEMENTATION_NOTES.md - Identified critical path: complete BT-1.4-1.6 per PRIORITIES.md Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Complete Phase BT-1.4 (Handler Refactoring): - Replaced 165 lines of procedural logic with BT invocation - Handler validates inputs, delegates workflow to BT, handles results - Uses BTBridge.execute_with_setup() with create_validate_report_tree() - Preserves @verify_semantics decorator and error handling - All 454 tests passing (no regressions) - Demo test and reporting workflow tests passing Implementation approach: - Keep rehydration/validation in handler (input validation) - Delegate orchestration to BT (status, case creation, outbox) - Clean separation: validate → execute → log results - No parallel implementation needed Updates: - Modified vultron/api/v2/backend/handlers.py:validate_report() - Updated plan/IMPLEMENTATION_PLAN.md (marked BT-1.4.1, BT-1.4.2 complete) - Updated plan/IMPLEMENTATION_NOTES.md (added lessons learned) Next: Phase BT-1.5 (demo verification) and BT-1.6 (documentation) Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Enhancements: - Added tree visualization logging to BTBridge using py_trees.display - Enhanced handler logging with detailed BT execution results (✓/✗/⚠ symbols) - Created performance tests (test/behaviors/test_performance.py) - Updated demo script docstring with BT logging guidance Results: - BT execution logging: tree structure at DEBUG, results at INFO - Performance baseline: P50=0.44ms, P95=0.69ms, P99=0.84ms - All 456 tests passing (added 2 performance tests) Documentation: - Updated plan/IMPLEMENTATION_PLAN.md: marked BT-1.5 complete - Updated plan/IMPLEMENTATION_NOTES.md: documented enhancements and results Per BUILD_prompt.md task BT-1.5.1, BT-1.5.2, BT-1.5.3 Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Comprehensive design review findings (2026-02-18) including: ### BT Integration Status - Update Phase BT-1 status to complete (infrastructure + handler refactoring) - Document handler-calls-BT pattern as validated approach - Add decision tree for when to use BTs vs procedural code - Clarify that validate_report refactoring is complete (P99 < 1ms) ### Production Readiness Assessment - Add explicit production readiness gap analysis - Categorize gaps by severity (Critical/Important/Nice-to-have) - Recommend prioritization: idempotency → response generation → observability ### Known Specification Issues - Document cross-reference errors (EH-05-001 references wrong section) - Clarify ambiguities (rehydration timing, idempotency strength) - List incomplete specs (outbox, CaseActor, BT naming conventions) - Provide workarounds for agents implementing features ### Implementation Prioritization Guidance - Add scenario-based prioritization (POC vs Production vs Maintenance) - Decision tree for BT adoption (complexity assessment) - Agent self-assessment checklist for feature implementation - Context: Validated prototype with 454 tests, 6/36 handlers complete ### Additional Updates - Add test suite status section with verification command - Expand Future Work section with more detail - Update "Last Updated" timestamp to reflect design review completion Rationale: Design review revealed critical gaps (idempotency, response generation) and specification issues that agents need to be aware of. AGENTS.md now provides clearer guidance on implementation priorities, BT adoption criteria, and known issues to avoid. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Per user guidance, separate technical reference from implementation history: ### New Structure - **AGENTS.md** (871 lines, -26%): Quick technical reference only - How-tos, gotchas, key file locations - Removed: Implementation status, lessons learned, planning - Focus: 'How to' not 'what's done' or 'why' - **plan/IMPLEMENTATION_NOTES.md** (+298 lines): Historical context - Design review findings (2026-02-18) - Implementation status assessments - Known specification issues - Architectural lessons learned - Implementation prioritization guidance - **specs/project-documentation.md** (NEW): Documentation structure spec - Defines purpose and scope of each documentation file - AGENTS.md vs IMPLEMENTATION_NOTES.md vs IMPLEMENTATION_PLAN.md - Content migration guidelines - File size targets ### Benefits - Agents can quickly scan AGENTS.md for technical patterns - Historical context preserved in IMPLEMENTATION_NOTES.md - Clear documentation structure prevents future drift - Reduces cognitive load (quick ref vs deep dive) ### Changes Summary - Moved implementation status from AGENTS.md → IMPLEMENTATION_NOTES.md - Moved production readiness assessment → IMPLEMENTATION_NOTES.md - Moved known specification issues → IMPLEMENTATION_NOTES.md - Moved BT integration lessons → IMPLEMENTATION_NOTES.md - Moved prioritization guidance → IMPLEMENTATION_NOTES.md - Kept: Technical gotchas, handler protocol, registry pattern, common pitfalls (technical only) AGENTS.md now adheres to <800 line target (currently 871). Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
- specs/behavior-tree-integration.md: mark Phase BT-1 COMPLETE; expand Implementation section to include handler integration and performance results (BT-1.6.1) - plan/IMPLEMENTATION_NOTES.md: record Phase BT-1.5 and BT-1.6 completion; replace outdated 'Next Steps' guidance with completed summary (BT-1.6.2) - plan/IMPLEMENTATION_PLAN.md: mark BT-1.6.1 and BT-1.6.2 done; update Phase BT-1 status to COMPLETE - docs/adr/0008-use-py-trees-for-handler-bt-integration.md: new ADR capturing the decision to use py_trees for handler-level BT execution - docs/adr/index.md: add ADR-0007 and ADR-0008 to accepted ADR list All 456 tests pass (2 xfailed, expected). Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
…ealthcheck The docker-compose healthcheck was polling GET /api/v2/actors/ every 2s, causing continuous verbose log output even when no external requests were being made. This is both noisy and indicates the healthcheck was hitting a heavyweight data endpoint. Fix: - Add lightweight /health/live and /health/ready endpoints (implements OB-05-001 and OB-05-002 from specs/observability.md) - Update docker-compose.yml healthcheck to use /api/v2/health/live - Add 4 tests covering both endpoints Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
…nd 3 setup_clean_environment resets the TinyDB data layer but did not clear the in-memory ACTOR_IO_STORE. When demos 2 and 3 called setup_clean_environment after demo 1, init_actor_io raised KeyError because the actor IDs from demo 1 were still present in the store. Fix: call clear_all_actor_ios() in setup_clean_environment before re-initializing actor I/O, so each demo starts with a fully clean state. Add regression test test_all_demos_succeed that captures errors logged by main() and asserts no ERROR SUMMARY is printed, verifying all 3 demos complete successfully. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
…TATION_NOTES.md Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
…t and clarify health check endpoint usage
Contributor
There was a problem hiding this comment.
Pull request overview
This PR successfully integrates behavior trees (BT) using the py_trees library into the Vultron API v2 handler system, marking a significant architectural milestone. The integration refactors the validate_report handler to use BT execution, replacing ~165 lines of procedural logic with ~25 lines of BT invocation while maintaining all existing functionality.
Changes:
- Complete BT infrastructure implementation (bridge, helpers, nodes, tree composition, policies)
- Refactored
validate_reporthandler to use BT execution - Added 78 comprehensive BT tests with performance baselines (P99 < 1ms)
- Documented architectural decisions in ADR-0008
- Updated specifications and implementation plans
Reviewed changes
Copilot reviewed 49 out of 50 changed files in this pull request and generated no comments.
Show a summary per file
| File | Description |
|---|---|
| vultron/behaviors/bridge.py | New BT bridge layer for handler-to-BT execution with blackboard management |
| vultron/behaviors/helpers.py | DataLayer-aware base node classes (Condition, Action) and common operations |
| vultron/behaviors/report/nodes.py | 10 domain-specific validation nodes (conditions, actions, policy stubs) |
| vultron/behaviors/report/validate_tree.py | Composed validation tree with early exit optimization |
| vultron/behaviors/report/policy.py | ValidationPolicy interface and AlwaysAcceptPolicy default implementation |
| vultron/api/v2/backend/handlers.py | Refactored validate_report handler to delegate to BT execution |
| vultron/scripts/receive_report_demo.py | Enhanced with clean environment setup and BT logging guidance |
| vultron/api/v2/routers/health.py | New health check endpoints (/health/live, /health/ready) |
| vultron/api/v2/routers/v2_router.py | Integrated health router |
| test/behaviors/* | 78 new BT tests covering infrastructure, integration, and performance |
| test/scripts/test_receive_report_demo.py | Added regression test for actor IO cleanup |
| test/api/v2/routers/test_health.py | Tests for health check endpoints |
| specs/*.md | Updated specifications for BT integration, idempotency, HTTP protocol, observability |
| docs/adr/0008-*.md | New ADR documenting py_trees integration decision |
| plan/*.md | Updated implementation plan, notes, and priorities |
| pyproject.toml, uv.lock | Added py-trees>=2.2.0 dependency |
| docker/, prompts/ | Updated Docker health checks and agent prompts |
…review
- Fix EH-05-001: replace incorrect HP-06-001 cross-reference (timeouts)
with inline error response format specification and correct HP-03-001 ref
- Fix BT-03-003: document blackboard key naming convention
({noun}_{id_segment} pattern, no slashes in keys)
- Clarify HP-07-001/ID-04-004: state-changing handlers MUST be idempotent
(not just SHOULD) to prevent data corruption in RM/EM/CS state machines
- Add BT Blackboard Key Naming pitfall to AGENTS.md with code examples
Rationale: Issues identified in plan/IMPLEMENTATION_NOTES.md design review
(2026-02-18) under 'Known Specification Issues' and 'Specification Ambiguities'.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
- specs/outbox.md: new spec for outbox population and delivery (RF-06-001 gap) - specs/semantic-extraction.md: fix SEMANTIC_ACTIVITY_PATTERNS → SEMANTICS_ACTIVITY_PATTERNS to match code - specs/message-validation.md: fix MV-02-004 log level ERROR → WARNING (validation failures are 4xx client errors per SL-03-001) - specs/response-format.md: add cross-reference to new outbox.md - specs/project-documentation.md: remove fragile current-line-count note - AGENTS.md: add 'When to Use BTs' pitfall section; add BT files to Key Files Map; add outbox.md to Specification Usage Guidance - plan/IMPLEMENTATION_NOTES.md: mark resolved spec maintenance TODOs; add two remaining open items (CaseActor spec, async dispatcher spec) - prompts/LEARN_prompt.md: add note about IMPLEMENTATION_NOTES reset cycle Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
…s and relaxed constraints
Tag production-only requirements across 5 spec files per PROTO-04-001/002: - http-protocol.md: HP-02-001 (size limits), HP-05-001/02 (correlation ID headers), HP-06-003 (timeout warning logging), HP-07-001/02/03 (rate limiting headers) - structured-logging.md: SL-01-001/02/03/04 (structured log format), SL-02-001/02 (correlation ID fields), SL-06-001/02/03/04 (authorization logging, auth deferred per PROTO-01-001), SL-07-001/02/03 (data access audit logging), SL-08-001 (performance metrics) - handler-protocol.md: HP-07-002/03 (execution timeout enforcement) - outbox.md: OX-05-001/02 (federation delivery, deferred per PROTO-02-001) - behavior-tree-integration.md: BT-10-004 (CaseActor authorization, auth deferred per PROTO-01-001), BT-11-003 (resource-level locking) Also update specs/README.md to document the PROD_ONLY tag convention, including format, meaning, and common categories. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
…g sanitization Co-authored-by: Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@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.
This PR leverages the older custom Behavior Tree implementation in the Vultron simulator to integrate a completely new reimplementation of the Behavior Tree structure into the
receive-report-demo. The backend semantic message dispatcher now uses a behavior tree implementation usingpy_treesto complete the "validate report" step. This is significant in that it's the first instance of the ActivityPub based front-end connecting up with a Behavior Tree based backend. This has been a longstanding architectural goal of the project.Copilot summary
This pull request introduces and documents the integration of the
py_treeslibrary for handler-level behavior tree (BT) execution in the Vultron API v2, marking the completion of Phase BT-1. The changes update the implementation plan and documentation to reflect BT integration as the top priority, summarize the completed BT infrastructure, and add a new architectural decision record (ADR) justifying the use ofpy_trees. Additionally, minor improvements are made to Docker configuration and health checks.Behavior Tree (BT) Integration and Documentation:
docs/adr/0008-use-py-trees-for-handler-bt-integration.md) documenting the decision to usepy_treesfor handler-level BT execution, including context, decision drivers, alternatives, consequences, and validation results.docs/adr/index.md) to include ADR-0007 (behavior dispatcher) and ADR-0008 (py_trees integration).plan/IMPLEMENTATION_PLAN.md) to make BT integration the top priority, summarize BT infrastructure completion, and reflect the current status of handler refactoring and tests. [1] [2] [3]Cleanup and Status Tracking:
plan/BUGS.mdandplan/IMPLEMENTATION_NOTES.md, as these issues are now fully addressed and documented elsewhere. [1] [2]Docker Configuration Improvements:
LOG_LEVEL=DEBUGin theapi-devDocker build stage for easier debugging during development.api-devservice to use the/api/v2/health/liveendpoint, improving reliability and accuracy of service readiness checks.