unified-context-provider
π― The Unified Context Provider
Case Details
Case ID: task-02b87f47-4b6e-43a3-959c-c861ed6002f7
Status: parked
Created: 2026-01-26T01:03:11.481Z
Updated: 2026-01-26T01:03:11.481Z
Priority: 2
Investigation Details
Case Type: story Urgency Level: routine
Notes
The Problem
GraphNode provider and PipelineProvider have separate config/context injection mechanisms:
- GraphNode - Tries to inject config from node's Config section, but has issues with parsing and merging
- PipelineProvider - Uses session-based context that accumulates through chain execution
Currently when PipelineProvider calls graphnode:node:fetch, the node's own config YAML doesn't get loaded - only pipeline params are passed.
The Solution
Unify on sessions: GraphNode provider should use the same session context system as PipelineProvider.
When a graphnode fence executes:
- Create a temporary session (or join an existing pipeline session)
- Load the node's config section YAML into
_context - Merge any passed params on top
- Execute the fence with unified context
- Clean up temporary session (or leave pipeline session intact)
Benefits
- Single context system - No more confusion about how config gets injected
- Automatic config loading - Every fence gets its node's config automatically
- Pipeline compatibility - Standalone execution works same as pipeline execution
- Session tracking - Even standalone executions get tracked for debugging
Implementation
Modify
GraphNodeProvider.execute()to:- Check for existing session in contextIf no session, create temporary one
Load node's config section into session context
Merge with passed params
Execute fence
Cleanup if temporary
Config section becomes the "default context" for any fence in that node
Related Files
oculus/providers/graphnode_provider.py- Needs session integrationoculus/providers/pipeline_provider.py- Reference implementationoculus/pipeline_session_store.py- Session storage
Acceptance Criteria
-
graphnode:wh-demand-history:fetchloads config from node's config section - Pipeline execution still works (no regression)
- Standalone fence execution creates temporary session
- Session visible in
/api/pipeline/sessions(optional flag to exclude temp sessions)
Investigation Timeline
2026-01-26T01:03:11.487Z - System - case_created
Case opened from CLI
Consciousness Links
Context: Spawned from Beye demo work - config injection not working through pipeline
This case file is automatically updated. For investigation logs, see the corresponding log channel.
π Case To-Do List
This case has an integrated to-do list system that syncs with the Oculus knowledge graph. The to-do list uses the virtual:todo-list fence which auto-detects GitHub-style checkbox markdown.
How the To-Do System Works
- Auto-Detection: Checkbox lists are automatically detected as
virtual:todo-listfences - Alice Integration: Display in Alice dashboard using
:::wonderland-todo-list slug="${current_case}" - ISA Operations: Use fence exec for add/check/update operations
- Metadata Support: Add
[assignee:name][priority:level]tags to tasks
Case To-Do Operations
- View state:
oculus fence list ${slug}thenoculus fence view ${slug} <fence-index> - Add task:
oculus fence exec ${slug} <fence-index> add "New task" - Check task:
oculus fence exec ${slug} <fence-index> check 0 - Update task:
oculus fence exec ${slug} <fence-index> update 0 "Updated content" - Reference: See virtual-fence-todo for full documentation
Current Case Tasks
- π― Solve the case
- π Document findings in investigation notes
- π Link relevant evidence and consciousness resources
- β Update case status when complete
Next Steps
Add investigation notes and evidence tags as you progress. The to-do list will evolve with your investigation. Tasks can be managed via Oculus fence operations or edited directly in the node.
Provenance
Document
- Status: π΄ Unverified