Orchestrata Ultimate / RTM / 006-session-management
RTM: 006-session-management
Requirement to symbol to test rows for 006-session-management: Session Management.
At a glance
| Item | Value |
|---|---|
| Requirement IDs | 144 |
Traced from src/ |
144 (100.0%) |
| Untraced | 0 |
Cited from tests/ |
19 (13.2%) |
Traced in src/ but not cited from tests/ |
125 |
Reading this matrix
This matrix lists each of the 144 requirement IDs of spec 006-session-management with the src/ symbols that cite it and the tests that cite it. 144 of them (100.0%) have at least one citing symbol and 0 have none.
19 requirements are also cited from tests/, and 125 are traced in code but never named by a test. A test citation is a @traces on a test function; it shows intent to cover, not that the test runs or reaches the symbol.
Every row has at least one citing symbol; the remaining work is on the test column.
Requirement to symbols to tests
| Requirement | Symbols in src/ |
Tests citing it |
|---|---|---|
REQ-006-US-001-001 User can create a new session with a unique session ID |
orchestrata_ultimate/session/controller/_core begin L168orchestrata_ultimate/session/interfaces open_session L22 |
none |
REQ-006-US-001-002 System generates session ID automatically if not provided |
orchestrata_ultimate/session/constants generate_session_id L17orchestrata_ultimate/session/controller/_core begin L168orchestrata_ultimate/session/portfolio begin_session L134 |
none |
REQ-006-US-001-003 Session creation includes timestamp and initial state |
orchestrata_ultimate/session/controller/_core begin L168orchestrata_ultimate/session/models SessionRecord L127orchestrata_ultimate/session/portfolio begin_session L134+1 more |
none |
REQ-006-US-001-004 Session is registered in the Prolog fact database |
orchestrata_ultimate/session/prolog_facts assert_fact L48orchestrata_ultimate/session/prolog_interface assert_session_open L79 |
none |
REQ-006-US-001-005 Session creation completes in < 50ms |
orchestrata_ultimate/session/controller/_core begin L168orchestrata_ultimate/session/redis_store save_session L127 |
none |
REQ-006-US-001-006 Verification: session_exists(SessionID) returns true |
orchestrata_ultimate/session/prolog_interface fact_exists L383orchestrata_ultimate/session/prolog_interface query_session L185 |
none |
REQ-006-US-002-001 User can explicitly close a session |
orchestrata_ultimate/session/cli/lifecycle _finalize_session L254orchestrata_ultimate/session/cli/lifecycle _prompt_achievements L426orchestrata_ultimate/session/cli/lifecycle _prompt_upcoming L443+6 more |
none |
REQ-006-US-002-002 System removes session from active sessions list |
orchestrata_ultimate/session/controller/_core SessionController L111orchestrata_ultimate/session/redis_store _checkpoints_key L117orchestrata_ultimate/session/redis_store clear_active L237+1 more |
none |
REQ-006-US-002-003 Session facts are retracted from Prolog database |
orchestrata_ultimate/orchestrator/fact_graph delete_fact L169orchestrata_ultimate/orchestrator/fact_manager unregister_fact L225orchestrata_ultimate/orchestrator/fact_store retract_fact L145+4 more |
none |
REQ-006-US-002-004 Session cleanup completes successfully |
orchestrata_ultimate/session/controller/_core SessionController L111orchestrata_ultimate/session/controller/_core end L222orchestrata_ultimate/session/graph_store GraphSessionStore L47+2 more |
none |
REQ-006-US-002-005 Session resources are released |
orchestrata_ultimate/session/controller/_core SessionController L111orchestrata_ultimate/session/redis_store cleanup_session L448orchestrata_ultimate/session/redis_store clear_context L365+1 more |
none |
REQ-006-US-002-006 Verification: session_exists(SessionID) returns false after closure |
orchestrata_ultimate/session/controller/_core SessionController L111orchestrata_ultimate/session/prolog_interface fact_exists L383orchestrata_ultimate/session/prolog_interface retract_session L116 |
none |
REQ-006-US-002-007 [DRAFT — derived-from-code, UNRATIFIED]: When ending a session, the system... |
orchestrata_ultimate/session/cli/lifecycle _auto_detect_session_data L486orchestrata_ultimate/session/cli/lifecycle _count_lines L530orchestrata_ultimate/session/cli/lifecycle _detect_modified_artifacts L498 |
none |
REQ-006-US-002-008 [DRAFT — derived-from-code, UNRATIFIED]: When ending a session, the system... |
orchestrata_ultimate/session/cli/lifecycle _auto_detect_session_data L486orchestrata_ultimate/session/cli/lifecycle _detect_recent_commits L568 |
none |
REQ-006-US-002-009 [DRAFT — derived-from-code, UNRATIFIED]: When ending a session, the system runs test... |
orchestrata_ultimate/session/cli/lifecycle _auto_detect_session_data L486orchestrata_ultimate/session/cli/lifecycle _detect_test_state L539 |
none |
REQ-006-US-002-010 [DRAFT — derived-from-code, UNRATIFIED]: When ending a session, the user can... |
orchestrata_ultimate/session/cli/lifecycle _commit_code_changes L594 |
none |
REQ-006-US-003-001 User can query current session state |
orchestrata_ultimate/session/cli/lifecycle _get_active_session L643orchestrata_ultimate/session/controller/_core active_session L162orchestrata_ultimate/session/controller/_core get_session L444+5 more |
none |
REQ-006-US-003-002 System returns all facts associated with session |
orchestrata_ultimate/orchestrator/fact_manager get_session_facts L393orchestrata_ultimate/session/fact_emitter get_facts L177orchestrata_ultimate/session/graph_store query_fact_timeline L318+4 more |
none |
REQ-006-US-003-003 Query includes session metadata (ID, timestamp, status) |
orchestrata_ultimate/session/models SessionRecord L127orchestrata_ultimate/session/prolog_interface query_session L185orchestrata_ultimate/session/redis_store RedisSessionStore L52+1 more |
none |
REQ-006-US-003-004 Query execution completes in < 10ms |
orchestrata_ultimate/session/fact_emitter query_facts L193orchestrata_ultimate/session/redis_store RedisSessionStore L52orchestrata_ultimate/session/redis_store get_facts L285 |
none |
REQ-006-US-003-005 Results are formatted correctly (JSON/Prolog terms) |
orchestrata_ultimate/session/facts write_facts_file L45orchestrata_ultimate/session/mcp_tools _query_facts L227orchestrata_ultimate/session/prolog_interface query_session L185+5 more |
none |
REQ-006-US-003-006 Verification: Query returns expected session data |
orchestrata_ultimate/session/fact_emitter query_facts L193orchestrata_ultimate/session/prolog_interface query_session L185orchestrata_ultimate/session/redis_store RedisSessionStore L52 |
none |
REQ-006-US-004-001 User can emit facts to current session |
orchestrata_ultimate/orchestrator/fact_manager register_fact L148orchestrata_ultimate/orchestrator/fact_store assert_fact L96orchestrata_ultimate/session/fact_emitter FactEmitter L47+3 more |
none |
REQ-006-US-004-002 Facts are immediately available in Prolog database |
orchestrata_ultimate/governance/prolog_gate _run_volk_goals L245orchestrata_ultimate/session/fact_emitter FactEmitter L47orchestrata_ultimate/session/fact_emitter flush_to_prolog L220+2 more |
none |
REQ-006-US-004-003 Fact emission includes source attribution |
orchestrata_ultimate/session/fact_emitter FactEmitter L47orchestrata_ultimate/session/fact_emitter emit_typed L141orchestrata_ultimate/session/types Fact L42 |
none |
REQ-006-US-004-004 Fact emission completes in < 10ms |
orchestrata_ultimate/session/fact_emitter FactEmitter L47orchestrata_ultimate/session/fact_emitter emit L114orchestrata_ultimate/session/redis_store save_fact L261 |
none |
REQ-006-US-004-005 Multiple facts can be emitted in single operation |
orchestrata_ultimate/session/fact_emitter FactEmitter L47orchestrata_ultimate/session/fact_emitter batch_emit L160orchestrata_ultimate/session/graph_store persist_facts_batch L188+4 more |
none |
REQ-006-US-004-006 Verification: Emitted facts can be queried immediately |
orchestrata_ultimate/session/fact_emitter FactEmitter L47orchestrata_ultimate/session/fact_emitter get_facts L177orchestrata_ultimate/session/fact_emitter query_facts L193 |
none |
REQ-006-US-005-001 System maintains session-specific context |
orchestrata_ultimate/context/providers/mission_context render_mission_context L20orchestrata_ultimate/session/carryover WorkCarryoverManager L19orchestrata_ultimate/session/controller/_core set_handoff L381+5 more |
none |
REQ-006-US-005-002 Context includes conversation history |
orchestrata_ultimate/session/models SessionRecord L127orchestrata_ultimate/session/redis_store get_all_context L342 |
none |
REQ-006-US-005-003 Context includes emitted facts |
orchestrata_ultimate/session/fact_emitter get_facts L177orchestrata_ultimate/session/redis_store get_facts L285 |
none |
REQ-006-US-005-004 Context is isolated per session |
orchestrata_ultimate/session/redis_store _context_key L111orchestrata_ultimate/session/redis_store _facts_key L98orchestrata_ultimate/session/types FactFilter L133 |
none |
REQ-006-US-005-005 Context persists throughout session lifetime |
orchestrata_ultimate/session/checkpoint CheckpointManager L20orchestrata_ultimate/session/handover attach_to_session L64orchestrata_ultimate/session/redis_store RedisSessionStore L47 |
none |
REQ-006-US-005-006 Verification: Context queries return session-specific data only |
orchestrata_ultimate/session/handover extract_from_session L201orchestrata_ultimate/session/handover get_from_session L78orchestrata_ultimate/session/redis_store get_all_context L342+1 more |
none |
REQ-006-US-006-001 System triggers on_session_start hook |
orchestrata_ultimate/session/hook_registry fire L139orchestrata_ultimate/session/hooks/session_auto_start_hook _build_session_output L93orchestrata_ultimate/session/hooks/session_auto_start_hook _detect_auto_closed_session L78+12 more |
none |
REQ-006-US-006-002 System triggers on_session_end hook |
orchestrata_ultimate/session/hook_registry fire L139orchestrata_ultimate/session/hooks/session_pre_close_hook check_git_clean L77orchestrata_ultimate/session/hooks/session_pre_close_hook main L135+1 more |
none |
REQ-006-US-006-003 Hooks can execute custom logic |
orchestrata_ultimate/session/hook_registry SessionHook L32orchestrata_ultimate/session/hook_registry add L80 |
none |
REQ-006-US-006-004 Hook execution does not block session operations |
orchestrata_ultimate/session/hook_registry fire L139 |
none |
REQ-006-US-006-005 Hook failures are logged but do not crash system |
orchestrata_ultimate/session/exceptions SessionError L11orchestrata_ultimate/session/hook_registry fire L139 |
none |
REQ-006-US-006-006 Verification: Hooks are called with correct parameters |
orchestrata_ultimate/session/hook_registry SessionHook L32orchestrata_ultimate/session/hook_registry __call__ L52orchestrata_ultimate/session/hook_registry fire L139 |
none |
REQ-006-US-007-001 System supports multiple concurrent sessions |
orchestrata_ultimate/session/portfolio PortfolioController L24orchestrata_ultimate/session/redis_store set_active L232 |
none |
REQ-006-US-007-002 Each session has isolated state |
orchestrata_ultimate/session/portfolio PortfolioController L24orchestrata_ultimate/session/redis_store _session_key L94orchestrata_ultimate/session/types FactFilter L133 |
none |
REQ-006-US-007-003 Sessions do not interfere with each other |
orchestrata_ultimate/session/portfolio PortfolioController L24orchestrata_ultimate/session/redis_store _context_key L111orchestrata_ultimate/session/redis_store _facts_key L98 |
none |
REQ-006-US-007-004 Session switching is supported |
orchestrata_ultimate/session/controller/_core resume L415orchestrata_ultimate/session/interfaces pause_session L42orchestrata_ultimate/session/interfaces resume_session L47+1 more |
none |
REQ-006-US-007-005 Session list can be queried |
orchestrata_ultimate/kernel/session_manager get_active_sessions L530orchestrata_ultimate/kernel/session_manager is_active L121orchestrata_ultimate/session/controller/_core all_sessions L460+3 more |
none |
REQ-006-US-007-006 Verification: Multiple sessions can be active simultaneously |
orchestrata_ultimate/session/portfolio PortfolioController L24orchestrata_ultimate/session/redis_store get_active_sessions L242orchestrata_ultimate/session/redis_store is_active L254 |
none |
REQ-006-FR1-001 System generates unique session IDs |
orchestrata_ultimate/session/constants generate_session_id L17orchestrata_ultimate/session/controller/_core SessionController L100 |
none |
REQ-006-FR1-002 Session IDs follow format: session_YYYYMMDD_HHMMSS_UUID... |
orchestrata_ultimate/session/constants generate_session_id L17orchestrata_ultimate/session/controller/_core SessionController L100 |
none |
REQ-006-FR1-003 Session IDs are collision-resistant |
orchestrata_ultimate/session/constants generate_session_id L17orchestrata_ultimate/session/controller/_core SessionController L100 |
none |
REQ-006-FR1-004 Session IDs are human-readable |
orchestrata_ultimate/session/constants generate_session_id L17orchestrata_ultimate/session/controller/_core SessionController L100 |
none |
REQ-006-FR1-005 Verification: Generated IDs are unique across 1000+ sessions |
orchestrata_ultimate/session/constants generate_session_id L17orchestrata_ultimate/session/controller/_core SessionController L100 |
none |
REQ-006-FR2-001 Session state is stored in Prolog fact database |
orchestrata_ultimate/session/prolog_facts PrologFactBridge L22orchestrata_ultimate/session/prolog_interface assert_session_open L79 |
none |
REQ-006-FR2-002 State includes: session ID, timestamp, status, metadata |
orchestrata_ultimate/session/models SessionRecord L127orchestrata_ultimate/session/types SessionState L16 |
none |
REQ-006-FR2-003 State is queryable via Prolog interface |
orchestrata_ultimate/session/prolog_interface execute_query L405orchestrata_ultimate/session/prolog_interface query_session L185 |
none |
REQ-006-FR2-004 State updates are atomic |
orchestrata_ultimate/session/context write L318orchestrata_ultimate/session/redis_store save_session L127 |
none |
REQ-006-FR2-005 Verification: State persists across multiple queries |
orchestrata_ultimate/session/cli/lifecycle _get_active_session L643orchestrata_ultimate/session/prolog_interface query_session L185orchestrata_ultimate/session/redis_store get_session L164 |
none |
REQ-006-FR3-001 Facts are tagged with session ID |
orchestrata_ultimate/orchestrator/fact_manager register_fact L148orchestrata_ultimate/session/fact_emitter FactEmitter L36orchestrata_ultimate/session/facts FactGenerator L19+6 more |
none |
REQ-006-FR3-002 Facts include timestamp of emission |
orchestrata_ultimate/session/fact_emitter FactEmitter L36orchestrata_ultimate/session/facts _work_facts L141orchestrata_ultimate/session/facts session_fact L165+3 more |
none |
REQ-006-FR3-003 Facts include source attribution |
orchestrata_ultimate/session/fact_emitter FactEmitter L36orchestrata_ultimate/session/graph_store persist_fact L155orchestrata_ultimate/session/types Fact L42+1 more |
none |
REQ-006-FR3-004 Facts are queryable by session ID |
orchestrata_ultimate/orchestrator/fact_manager get_session_facts L393orchestrata_ultimate/session/fact_emitter FactEmitter L36orchestrata_ultimate/session/fact_emitter get_facts L177+2 more |
none |
REQ-006-FR3-005 Verification: Facts are correctly associated with sessions |
orchestrata_ultimate/session/fact_emitter FactEmitter L36orchestrata_ultimate/session/fact_emitter get_fact_count L215orchestrata_ultimate/session/types FactFilter L133+1 more |
none |
REQ-006-FR4-001 Each session has separate fact namespace |
orchestrata_ultimate/session/controller/_core SessionController L89orchestrata_ultimate/session/prolog_facts _fact_to_term L189orchestrata_ultimate/session/redis_store _facts_key L98 |
none |
REQ-006-FR4-002 Queries are scoped to current session by default |
orchestrata_ultimate/session/controller/_core SessionController L89orchestrata_ultimate/session/fact_emitter query_facts L193orchestrata_ultimate/session/types FactFilter L133 |
none |
REQ-006-FR4-003 Cross-session queries are explicitly supported |
orchestrata_ultimate/session/controller/_core SessionController L89orchestrata_ultimate/session/interfaces get_active_sessions L37orchestrata_ultimate/session/prolog_interface _session_query L426+1 more |
none |
REQ-006-FR4-004 Session isolation prevents fact leakage |
orchestrata_ultimate/session/controller/_core SessionController L89orchestrata_ultimate/session/prolog_facts query_facts L98orchestrata_ultimate/session/redis_store _session_key L94 |
none |
REQ-006-FR4-005 Verification: Session A cannot access Session B facts without explicit permission |
orchestrata_ultimate/session/controller/_core SessionController L89orchestrata_ultimate/session/redis_store _facts_key L98orchestrata_ultimate/session/types FactFilter L133+1 more |
none |
REQ-006-FR5-001 Closed sessions retract all associated facts |
orchestrata_ultimate/core/protocols/decoupling end_session L53orchestrata_ultimate/orchestrator/fact_manager on_session_end L288orchestrata_ultimate/session/controller/_core SessionController L78+3 more |
none |
REQ-006-FR5-002 Session resources are released on closure |
orchestrata_ultimate/session/controller/_core SessionController L78orchestrata_ultimate/session/graph_store GraphSessionStore L47orchestrata_ultimate/session/graph_store cleanup_session L387+2 more |
none |
REQ-006-FR5-003 Cleanup is atomic (all-or-nothing) |
orchestrata_ultimate/session/controller/_core SessionController L78orchestrata_ultimate/session/controller/_core end L222orchestrata_ultimate/session/redis_store cleanup_session L448 |
none |
REQ-006-FR5-004 Failed cleanup attempts are logged |
orchestrata_ultimate/session/controller/_core SessionController L78orchestrata_ultimate/session/controller/_core end L222orchestrata_ultimate/session/exceptions SessionError L11 |
none |
REQ-006-FR5-005 Verification: No memory leaks after 1000+ session cycles |
orchestrata_ultimate/session/controller/_core SessionController L78orchestrata_ultimate/session/redis_store cleanup_session L448orchestrata_ultimate/session/redis_store delete_checkpoints L409 |
none |
REQ-006-FR6-001 Invalid session IDs return clear error messages |
orchestrata_ultimate/session/controller/_core SessionController L67orchestrata_ultimate/session/exceptions SessionError L11orchestrata_ultimate/session/exceptions SessionStartError L57+2 more |
none |
REQ-006-FR6-002 Operations on closed sessions fail gracefully |
orchestrata_ultimate/session/cli/lifecycle _finalize_session L254orchestrata_ultimate/session/cli/lifecycle _report_ended_session L276orchestrata_ultimate/session/controller/_core SessionController L67+2 more |
none |
REQ-006-FR6-003 Prolog errors are caught and logged |
orchestrata_ultimate/session/controller/_core SessionController L67orchestrata_ultimate/session/prolog_facts assert_fact L48orchestrata_ultimate/session/prolog_interface assert_session_open L79 |
none |
REQ-006-FR6-004 System remains stable after errors |
orchestrata_ultimate/session/controller/_core SessionController L67orchestrata_ultimate/session/exceptions SessionError L11orchestrata_ultimate/session/hook_registry fire L139 |
none |
REQ-006-FR6-005 Verification: System continues operating after error conditions |
orchestrata_ultimate/session/controller/_core SessionController L67orchestrata_ultimate/session/exceptions SessionError L11 |
none |
REQ-006-FR7-001 Session creation: < 50ms |
orchestrata_ultimate/session/controller/_core SessionController L55orchestrata_ultimate/session/controller/_core begin L168orchestrata_ultimate/session/redis_store save_session L127 |
none |
REQ-006-FR7-002 Fact emission: < 10ms |
orchestrata_ultimate/session/controller/_core SessionController L55orchestrata_ultimate/session/fact_emitter emit L114 |
none |
REQ-006-FR7-003 Session query: < 10ms (Redis LRANGE + filter, validated in benchmarks) |
orchestrata_ultimate/session/controller/_core SessionController L55orchestrata_ultimate/session/redis_store get_facts L285orchestrata_ultimate/session/redis_store get_session L164 |
none |
REQ-006-FR7-004 Session closure: < 50ms (pipeline cleanup, validated in benchmarks) |
orchestrata_ultimate/session/controller/_core SessionController L55orchestrata_ultimate/session/controller/_core end L222orchestrata_ultimate/session/redis_store cleanup_session L448 |
none |
REQ-006-FR7-005 Concurrent operations: 100+ sessions without degradation |
orchestrata_ultimate/session/controller/_core SessionController L55orchestrata_ultimate/session/redis_store get_active_sessions L242 |
none |
REQ-006-FR7-006 Verification: Performance benchmarks pass |
orchestrata_ultimate/session/controller/_core SessionController L55orchestrata_ultimate/session/fact_emitter FactEmitter L31orchestrata_ultimate/session/sync SessionSync L20 |
none |
REQ-006-FR8-001 Python API: emit_fact(session_id, fact_term) |
orchestrata_ultimate/orchestrator/fact_graph build_create_query L51orchestrata_ultimate/orchestrator/fact_manager register_fact L148orchestrata_ultimate/orchestrator/fact_store assert_fact L96+4 more |
none |
REQ-006-FR8-002 Supports Prolog term strings |
orchestrata_ultimate/session/facts generate_all_facts L32orchestrata_ultimate/session/prolog_facts _fact_to_term L189orchestrata_ultimate/session/prolog_interface assert_session_fact L147 |
none |
REQ-006-FR8-003 Supports structured fact dictionaries |
orchestrata_ultimate/session/fact_emitter emit_typed L141orchestrata_ultimate/session/types Fact L42orchestrata_ultimate/session/types from_dict L76+4 more |
none |
REQ-006-FR8-004 Returns success/failure status |
orchestrata_ultimate/session/fact_emitter emit L114orchestrata_ultimate/session/mcp_tools _emit_fact L213 |
none |
REQ-006-FR8-005 Verification: API calls succeed with valid inputs |
orchestrata_ultimate/session/fact_emitter emit L114 |
none |
REQ-006-FR9-001 Python API: query_session(session_id, query_term) |
orchestrata_ultimate/session/controller/_core SessionController L44orchestrata_ultimate/session/fact_emitter query_facts L193orchestrata_ultimate/session/interfaces query_facts L69+2 more |
none |
REQ-006-FR9-002 Returns list of matching facts |
orchestrata_ultimate/orchestrator/fact_manager get_facts_by_predicate L411orchestrata_ultimate/session/controller/_core SessionController L44orchestrata_ultimate/session/fact_emitter query_facts L193+2 more |
none |
REQ-006-FR9-003 Supports complex Prolog queries |
orchestrata_ultimate/session/controller/_core SessionController L44orchestrata_ultimate/session/prolog_interface _session_query L426orchestrata_ultimate/session/prolog_interface _work_query L444+3 more |
none |
REQ-006-FR9-004 Returns empty list for no matches |
orchestrata_ultimate/session/controller/_core SessionController L44orchestrata_ultimate/session/fact_emitter query_facts L193orchestrata_ultimate/session/prolog_interface query_session L185 |
none |
REQ-006-FR9-005 Verification: Queries return correct results |
orchestrata_ultimate/session/controller/_core SessionController L44orchestrata_ultimate/session/fact_emitter query_facts L193orchestrata_ultimate/session/types FactFilter L133+1 more |
none |
REQ-006-FR10-001 Python API: open_session(session_id=None) |
orchestrata_ultimate/session/controller/_core SessionController L33orchestrata_ultimate/session/interfaces open_session L22orchestrata_ultimate/session/mcp_tools _create L182 |
none |
REQ-006-FR10-002 Python API: close_session(session_id) |
orchestrata_ultimate/session/controller/_core SessionController L33orchestrata_ultimate/session/controller/_core end L222orchestrata_ultimate/session/interfaces close_session L27+1 more |
none |
REQ-006-FR10-003 Python API: get_session_info(session_id) |
orchestrata_ultimate/session/controller/_core SessionController L33orchestrata_ultimate/session/controller/_core get_session L444orchestrata_ultimate/session/interfaces get_session L32+1 more |
none |
REQ-006-FR10-004 Returns session metadata |
orchestrata_ultimate/session/cli/achievements achievement_add L52orchestrata_ultimate/session/cli/achievements achievement_list L20orchestrata_ultimate/session/context read_latest_session L376+4 more |
none |
REQ-006-FR10-005 Verification: APIs work as documented |
orchestrata_ultimate/session/controller/_core SessionController L33orchestrata_ultimate/session/interfaces ISessionManager L14orchestrata_ultimate/session/mcp_tools handle_tool_call L156 |
none |
REQ-006-FR11-001 Hooks are registered via Python API |
orchestrata_ultimate/session/hook_registry __init__ L75orchestrata_ultimate/session/hook_registry add L80orchestrata_ultimate/session/hook_registry clear L214+2 more |
none |
REQ-006-FR11-002 Hook signature: hook_function(session_id, **kwargs) (SessionHook protocol in... |
orchestrata_ultimate/session/hook_registry SessionHook L32orchestrata_ultimate/session/hook_registry __call__ L52orchestrata_ultimate/session/hooks/session_pre_close_hook run_tests L44 |
none |
REQ-006-FR11-003 Hooks execute synchronously during lifecycle events |
orchestrata_ultimate/session/hook_registry fire L139orchestrata_ultimate/session/hooks/session_pre_close_hook run_tests L44 |
none |
REQ-006-FR11-004 Hook failures are logged |
orchestrata_ultimate/session/hook_registry fire L139orchestrata_ultimate/session/hooks/session_pre_close_hook run_tests L44 |
none |
REQ-006-FR11-005 Verification: Hooks execute with correct parameters |
orchestrata_ultimate/session/hook_registry count L194orchestrata_ultimate/session/hook_registry fire L139orchestrata_ultimate/session/hooks/session_pre_close_hook run_tests L44 |
none |
REQ-006-FR12-001 All session operations are logged |
orchestrata_ultimate/session/controller/_core end L222orchestrata_ultimate/session/controller/_core log_achievement L365orchestrata_ultimate/session/controller/_core log_artifact L323+2 more |
none |
REQ-006-FR12-002 Logs include: session ID, operation, timestamp, result |
orchestrata_ultimate/session/models LogEntry L91orchestrata_ultimate/session/models SessionRecord L127 |
none |
REQ-006-FR12-003 Performance metrics are captured |
orchestrata_ultimate/orchestrator/fact_manager get_stats L432orchestrata_ultimate/session/fact_emitter emit_count L102orchestrata_ultimate/session/sync SessionSync L20+4 more |
none |
REQ-006-FR12-004 Errors are logged with stack traces |
orchestrata_ultimate/session/controller/_core end L222orchestrata_ultimate/session/exceptions SessionError L11 |
none |
REQ-006-FR12-005 Verification: Logs are complete and accurate |
orchestrata_ultimate/session/controller/_core log_achievement L365orchestrata_ultimate/session/controller/_core log_artifact L323orchestrata_ultimate/session/controller/_core log_choice L349+2 more |
none |
REQ-006-FR13-001 Session management exposed via MCP protocol |
orchestrata_ultimate/session/mcp_tools SessionMCPTools L22 |
none |
REQ-006-FR13-002 MCP tools can manage sessions (create, get, close) |
orchestrata_ultimate/session/mcp_tools _close L205orchestrata_ultimate/session/mcp_tools _create L182orchestrata_ultimate/session/mcp_tools _get L197 |
none |
REQ-006-FR13-003 MCP clients can query session state and facts |
orchestrata_ultimate/session/mcp_tools _fact_count L251orchestrata_ultimate/session/mcp_tools _query_facts L227orchestrata_ultimate/session/redis_store get_fact_count L313 |
none |
REQ-006-FR13-004 MCP tool schemas follow standard format |
orchestrata_ultimate/session/mcp_tools tool_definitions L39 |
none |
REQ-006-FR13-005 MCP integration verified with comprehensive tests |
orchestrata_ultimate/session/mcp_tools handle_tool_call L156 |
none |
REQ-006-FR14-001 context.json is machine-readable source of truth |
orchestrata_ultimate/session/cli/main _find_project_root L21orchestrata_ultimate/session/context __init__ L76orchestrata_ultimate/session/context _read_json L259+4 more |
none |
REQ-006-FR14-002 context.md rendered from context.json via Jinja2 |
orchestrata_ultimate/session/context _parse L1044orchestrata_ultimate/session/context _parse_current_state L903orchestrata_ultimate/session/context write L318 |
none |
REQ-006-FR14-003 Atomic writes — both files updated or neither |
orchestrata_ultimate/session/context initialize L218orchestrata_ultimate/session/context write L318 |
none |
REQ-006-FR14-004 context.history.md is canonical archive filename |
orchestrata_ultimate/session/archive SessionArchiver L21orchestrata_ultimate/session/context ensure_initialized L165 |
tests/session/test_session_archive.py::TestSessionArchiverInit |
REQ-006-FR14-005 Auto-archive when session count exceeds SESSION_LIMIT |
orchestrata_ultimate/session/archive SessionArchiver L21orchestrata_ultimate/session/archive should_archive L247orchestrata_ultimate/session/context archive_old_sessions L502 |
tests/session/test_session_archive.py::TestShouldArchive |
REQ-006-FR14-006 Schema defined by ContextData Pydantic model |
orchestrata_ultimate/context/providers/mission_context render_mission_context L20orchestrata_ultimate/session/cli/lifecycle _prompt_achievements L426orchestrata_ultimate/session/cli/lifecycle _prompt_handoff L473+3 more |
none |
REQ-006-FR14-007 Sync integrity — gapless ascending session numbers |
orchestrata_ultimate/session/context _collect_history_session_nums L673orchestrata_ultimate/session/context _collect_json_session_nums L660orchestrata_ultimate/session/context _get_max_session_from_history L542+5 more |
none |
REQ-006-FR15-001 Auto-archive on session close |
orchestrata_ultimate/session/archive SessionArchiver L21orchestrata_ultimate/session/archive archive L73orchestrata_ultimate/session/context archive_old_sessions L502 |
tests/session/test_session_archive.py::TestArchivetests/session/test_session_archive.py::TestArchivedSessionNumstests/session/test_session_archive.py::TestClear+9 more |
REQ-006-FR15-002 Append-only to context.history.md |
orchestrata_ultimate/session/archive SessionArchiver L21orchestrata_ultimate/session/archive archive L73 |
tests/session/test_session_archive.py::TestArchivetests/session/test_session_archive.py::TestSessionArchiverIntegration |
REQ-006-FR15-003 Idempotent archive operation |
orchestrata_ultimate/session/archive SessionArchiver L21orchestrata_ultimate/session/archive archive L73orchestrata_ultimate/session/archive archived_session_nums L132 |
tests/session/test_session_archive.py::TestArchivetests/session/test_session_archive.py::TestSessionArchiverIntegration |
REQ-006-FR16-001 Gap detection in session numbering |
orchestrata_ultimate/session/context _check_gaps L683orchestrata_ultimate/session/context verify_history_integrity L616 |
tests/session/test_session_integrity.py::TestVerifyHistoryIntegrity |
REQ-006-FR16-002 Duplicate detection across files |
orchestrata_ultimate/session/context _check_duplicates L698orchestrata_ultimate/session/context verify_history_integrity L616 |
tests/session/test_session_integrity.py::TestVerifyHistoryIntegrity |
REQ-006-FR16-003 Sync validation (context.md matches context.json render) |
orchestrata_ultimate/session/context _check_sync L713orchestrata_ultimate/session/context read L235orchestrata_ultimate/session/context verify_history_integrity L616 |
tests/session/test_session_integrity.py::TestVerifyHistoryIntegrity |
REQ-006-FR16-004 History continuity (no overlapping ranges) |
orchestrata_ultimate/session/archive SessionArchiver L21orchestrata_ultimate/session/archive archived_session_nums L132orchestrata_ultimate/session/context _check_continuity L741+1 more |
tests/session/test_session_integrity.py::TestVerifyHistoryIntegrity |
REQ-006-FR17-001 Scan git history for lost sessions |
orchestrata_ultimate/session/context _git_context_commits L817orchestrata_ultimate/session/context recover_from_git L750 |
tests/session/test_session_integrity.py::TestRecoverFromGit |
REQ-006-FR17-002 Extract session data from historical commits |
orchestrata_ultimate/session/context _scan_commits_for_sessions L844orchestrata_ultimate/session/context recover_from_git L750 |
tests/session/test_session_integrity.py::TestRecoverFromGit |
REQ-006-FR17-003 Append with [RECOVERED] annotation |
orchestrata_ultimate/session/context _append_recovered_sessions L882orchestrata_ultimate/session/context recover_from_git L750 |
tests/session/test_session_integrity.py::TestRecoverFromGit |
REQ-006-FR17-004 Non-destructive (never overwrites) |
orchestrata_ultimate/session/archive SessionArchiver L21orchestrata_ultimate/session/archive archive L73orchestrata_ultimate/session/context _collect_known_session_nums L800+1 more |
tests/session/test_session_integrity.py::TestRecoverFromGit |
REQ-006-FR18-001 archive command triggers archive |
orchestrata_ultimate/session/cli/archive archive L21orchestrata_ultimate/session/cli/main main L44 |
tests/session/test_session_cli.py::TestArchiveCommandtests/session/test_session_cli.py::TestCLIGroup |
REQ-006-FR18-002 archive --verify runs integrity check |
orchestrata_ultimate/session/cli/archive archive L21orchestrata_ultimate/session/cli/main main L44orchestrata_ultimate/session/context verify_history_integrity L616 |
tests/session/test_session_cli.py::TestArchiveCommandtests/session/test_session_cli.py::TestCLIGroup |
REQ-006-FR18-003 archive --recover runs git recovery |
orchestrata_ultimate/session/cli/archive archive L21orchestrata_ultimate/session/cli/main main L44orchestrata_ultimate/session/context recover_from_git L750 |
tests/session/test_session_cli.py::TestArchiveCommandtests/session/test_session_cli.py::TestCLIGroup |
REQ-006-FR18-004 archive --stats shows statistics |
orchestrata_ultimate/session/archive SessionArchiver L21orchestrata_ultimate/session/archive count_archived L117orchestrata_ultimate/session/archive stats L209+2 more |
tests/session/test_session_cli.py::TestArchiveCommandtests/session/test_session_cli.py::TestCLIGroup |
REQ-006-FR18-005 status command shows current state |
orchestrata_ultimate/session/cli/archive status L69orchestrata_ultimate/session/cli/lifecycle _echo_handoff_block L403orchestrata_ultimate/session/cli/lifecycle _echo_summary_achievements L413+15 more |
tests/session/test_session_cli.py::TestCLIGrouptests/session/test_session_cli.py::TestStatusCommand |
REQ-006-FR18-006 list command shows all sessions |
orchestrata_ultimate/session/cli/achievements achievement L13orchestrata_ultimate/session/cli/achievements achievement_add L52orchestrata_ultimate/session/cli/achievements achievement_list L20+5 more |
tests/knowledge_graph/test_kg_sync.py::TestKGSyncerIntegrationtests/knowledge_graph/test_kg_sync.py::TestKGSyncerOfflinetests/knowledge_graph/test_kg_sync.py::TestSyncStats+2 more |
REQ-006-FR18-007 [DRAFT — derived-from-code, UNRATIFIED]: overview command runs a one-shot startup... |
orchestrata_ultimate/session/cli/overview overview L388 |
none |
REQ-006-FR19-001 task add adds a deferred/carryover work item (text + optional priority) to the... |
orchestrata_ultimate/session/cli/tasks task_add L50 |
none |
REQ-006-FR19-002 task done <index> marks a carryover task done by index, persisting completion to... |
orchestrata_ultimate/session/cli/tasks task_done L66orchestrata_ultimate/session/cli/tasks task_reopen L88 |
none |
REQ-006-FR19-003 task list lists all carryover tasks with index, state, and priority |
orchestrata_ultimate/session/cli/tasks task_list L19 |
none |
REQ-006-FR19-004 task status shows aggregate carryover-task statistics by state |
orchestrata_ultimate/session/cli/tasks task_status L106 |
none |
REQ-006-NFR9-001 Archive completes in < 500ms |
orchestrata_ultimate/session/archive SessionArchiver L21orchestrata_ultimate/session/archive archive L73 |
none |
REQ-006-NFR9-002 Verification completes in < 1s |
orchestrata_ultimate/session/context verify_history_integrity L616 |
none |
REQ-006-NFR9-003 Git scan max 200 commits |
orchestrata_ultimate/session/context _git_context_commits L817orchestrata_ultimate/session/context recover_from_git L750 |
none |