Skip to content

v3.10.4 — Learning improvements, feedback loop, Python migration

Choose a tag to compare

@fermonterom fermonterom released this 12 Apr 16:09
· 167 commits to main since this release

What's new since v3.7.0

Three minor releases + patches bringing Cortex from v3.7.0 to v3.10.4, driven by a deep analysis of Sinapsis v4.4 and gstack.

v3.7.4 — Patch

  • cx-status.md: Step 3 (Projects) now counts observations/instincts per project hash via bash loop instead of showing "—" placeholders.

v3.8.0 — New features

  • Subagent observation capture: observe.py no longer skips Agent tool use. New aid field in JSONL.
  • Command usage timeline: session-learner.js detects /cx-* invocations and logs to timeline.jsonl. Feeds into /cx-audit and /cx-dream health score.
  • Decision capture reflex: detects "from now on", "always use", "never use" (EN+ES) and reminds to persist strategic decisions.
  • Reflex migration: install.sh/install.ps1 automatically appends new reflexes to existing installations.

v3.9.0 — Feedback loop

  • /cx-downvote: Negative feedback on incorrect instinct injections. Reduces confidence at 20/30/50% rejection thresholds. Auto-archives below 0.10.
  • /cx-retro: Weekly retrospective — command usage, instinct activations, downvotes, health trend, maintenance recommendations.
  • .last-instinct: Injector writes last injected IDs for /cx-downvote targeting.
  • instinct-downvote reflex: detects "wrong instinct" phrases and suggests /cx-downvote.

v3.10.0 — Shell to Python migration

  • session-start.sh → session-start.py: Pure Python rewrite. Eliminates BSD/GNU date fallbacks, 4 inline python3 -c snippets, sed/tr/grep chains.
  • observe.sh deleted: Direct python3 observe.py invocation. The 12-line wrapper added zero value.
  • injector-engine.js: 315 lines of inline Node.js extracted from injector.sh for testability and linting.
  • cortex_utils.py: New shared Python module (sanitize_injection, detect_project, read_json_safe, atomic_write).
  • Installer: Legacy .sh cleanup on upgrade, python3 hook commands in settings.json.

v3.10.3 — Inline staleness

  • Read-only inline staleness: Instincts not seen in 60+ days silently skipped at injection time (no file writes). Immediate effect without manual /cx-dream. Dream Cycle still handles permanent archival.

Patches (v3.10.1, v3.10.2, v3.10.4)

  • Fixed timeline bug (Skill tool was skipped by observer — timeline always empty)
  • Fixed atomic_write() fd double-close risk
  • Fixed session-start.py commands hint (was missing 5 of 16 commands)
  • Synced all docs (FEATURES.md, README.md, SKILL.md, FEATURES-visual.html) to 16 commands, 10 reflexes
  • Fixed CI lint referencing deleted .sh files
  • Added gstack to Credits

Stats

Metric v3.7.0 v3.10.4
Commands 14 16 (+cx-downvote, +cx-retro)
Tests 159 155 (refactored, net coverage same)
Reflexes 8 10 (+capture-decision, +instinct-downvote)
Shell hooks 4 .sh files 1 .sh + 2 .py + 1 .js
Lib modules 3 5 (+cortex_utils.py, +injector-engine.js)
CI status ✅ All green ✅ All green (lint fixed)

Install / Upgrade

git clone https://github.com/fermonterom/fs-cortex.git
cd fs-cortex && bash install.sh

Existing installations upgrade cleanly — all user data preserved, legacy .sh files removed automatically.

🤖 Generated with Claude Code