- dispatcher-check: add :level :approval-required to network/high-impact returns
- cognitive-verify: distinguish approval-required from hard rejection; pass
approval requests through to act gate instead of returning early
- loop-gate-reason: don't retry approval requests; pass them as approved-action
with :status :requires-approval
- loop-gate-act: detect approval-required, create Flight Plan, dispatch HITL
message to user's client, don't execute original action
- loop-gate-perceive: handle re-injected approved signals from
dispatcher-approvals-process; set :approved-action on signal
- dispatcher-approvals-process: fix function name (stimulus-inject) and wrap
action in proper signal envelope with :sensor :approval-required
- Fix: list-objects-with-attribute → memory-objects-by-attribute
- Fix: org-id-new → org-id-generate
- Fix: inject-stimulus → stimulus-inject (correct function name)
Flow:
1. LLM proposes high-risk action → dispatcher returns approval-required
2. cognitive-verify collects approval request → passes to reason as :requires-approval
3. loop-gate-act creates Flight Plan → dispatches HITL message to client → exits
4. Human approves in Emacs → heartbeat re-injects with :approved t
5. Re-injected signal flows through pipeline → dispatcher passes through
6. Action executed normally
- Added ;; REPL-VERIFIED: comments to all 164 definition blocks across 30 org files
- Split 32 multi-definition blocks into one-per-block (one function per block)
- Added Org headlines to 45 blocks missing prose-before-code
- verify-repl now returns PASS on entire org/ directory
- system-context-manager (new skill): stack-based project focusing with
push-context/pop-context, path resolution relative to base path, and
scope-aware memory queries via context-scoped-query.
- core-memory: add :scope slot to memory-object struct (default :memex).
- core-memory: ingest-ast accepts &key (scope :memex), propagates to children.
- core-context: context-query accepts :scope parameter for filtering.
- DEFECT FIX: renamed org-object-* accessors to memory-object-*
across core-context, security-dispatcher, tests, and defpackage exports.
The struct was renamed but accessor references were never updated —
the code referenced nonexistent functions.
- system-embeddings (new skill): hashing-trick embeddings for memory-object
vectors. Works offline with no Ollama/API dependency. Falls back to
hashing-trick when no embedding backend is registered. Extensible —
set *embedding-backend* to use Ollama/OpenAI/any provider.
- programming-org: add org-subtree-extract and org-heading-list for
targeting specific headlines in Org text without loading whole files.
- core-context: add context-skill-subtree thin wrapper delegating to
org-subtree-extract. Core stays thin — parsing lives in the skill.
- ROADMAP.org now has per-version ** Tasks sections with TODO/DONE states
- The TODO headings are the authoritative task tracker
- Feature tables kept for readability; checkboxes removed (state is in headlines)
- docs/TODO.org deleted
- All references updated to point to ROADMAP.org
- New docs/ARCHITECTURE.org with four quadrants, code map, pipeline flow, skill lifecycle, protocol format
- TODO.org moved to docs/TODO.org
- README now answers What/Why, links to 6 specialized documents
- Each document now answers exactly one of the six Ws
- New system-event-orchestrator skill with hook registry, cron registry, and tier classifier
- Three dispatch tiers: :reflex (no LLM), :cognition (light), :reasoning (full)
- Org-mode timestamp parsing for repeat patterns (+1w, +1d, +1m)
- Registers on heartbeat via defskill, dispatches due cron jobs
- Fix all remaining harness-log → log-message references across org files
- Create TODO.org for project-specific tasks (migrated from gtd.org)
- Expand DESIGN_DECISIONS.org with 8 new sections:
- Self-modification without boundaries (vs Hermes)
- Lisp and the AI Dream (1958 vision fulfilled)
- REPL as cognitive substrate (with REPL explanation)
- Evaluation harness (SWE-bench, chaos testing)
- Observability and the thought trace
- MCP strategy (native Lisp client)
- Local-first architecture
- Zero-dependendency deployment
- Fix org-mode syntax errors in tui-client
Parent gtd.org now links to projects/opencortex/TODO.org
Add projects/opencortex/TODO.org to org-agenda-files in emacs-gtd.org
Replace Ollama-specific backend with unified org-skill-unified-llm-backend
that speaks OpenAI API. Works with:
- Local: Ollama (default), vLLM, LM Studio, llama.cpp
- Cloud: OpenRouter, OpenAI, Anthropic, Groq, Gemini
Providers auto-registered from env vars. No separate skills per provider.
Cascade order configured via PROVIDER_CASCADE env var.
Also fix .env loading path in loop (was .local/share, now .config matches wizard).
- Updated all 23 skill org files to use absolute path
- Tangle now outputs directly to ~/.local/share/opencortex/skills/
- Removed env var (org-babel doesn't expand it)
- Updated all 22 skill org files to use $OC_DATA_DIR/skills/ paths
- Removed manually created .lisp file (tangling now targets XDG)
- Files will now tangle to ~/.local/share/opencortex/skills/