tag:github.com,2008:https://github.com/unfault/unlost/releases Release notes from unlost 2026-03-03T12:59:52Z tag:github.com,2008:Repository/1142486546/v0.13.1 2026-03-03T13:48:04Z unlost v0.13.1 <h2>What's changed</h2> <h3>Fixed</h3> <ul> <li>Previous release broke because release was created by agent as immutable<br> before the workflow existed</li> </ul> github-actions[bot] tag:github.com,2008:Repository/1142486546/v0.13.0 2026-03-03T10:36:21Z v0.13.0 <p>v0.13.0</p> Lawouach tag:github.com,2008:Repository/1142486546/v0.12.0 2026-02-27T15:21:21Z unlost v0.12.0 <h2>What's changed</h2> <h3>Added</h3> <ul> <li><strong>GitHub Copilot CLI integration</strong>: <code>unlost shim copilot</code> and <code>unlost config agent copilot</code> provide hooks-based integration with GitHub Copilot CLI. Session transcripts are read directly from <code>~/.copilot/session-state/&lt;uuid&gt;/events.jsonl</code>, giving access to full user and assistant text without synthesis. Session discovery uses <code>workspace.yaml</code> <code>created_at</code> proximity and <code>summary</code> cross-check at <code>sessionStart</code>, and <code>updated_at</code> proximity at <code>sessionEnd</code>. Installs <code>sessionStart</code>, <code>userPromptSubmitted</code>, and <code>sessionEnd</code> hooks via <code>.github/hooks/unlost.json</code>, and writes a Copilot-compatible skill to <code>.github/copilot/skills/unlost/</code>.</li> </ul> <h3>Changed</h3> <ul> <li><strong><code>docs/index.html</code></strong>: Restructured landing page to prioritize Context Ownership and Memory over control. "How It Works" now follows the Memory Lifecycle (Record → Extract → Ground). Added "One Memory. Many Lenses" section to showcase <code>trace</code>, <code>challenge</code>, and <code>explore</code> as different views on the same grounded context. Moved "Cognitive Mirror" technical details to a dedicated deep-dive section at the bottom.</li> </ul> github-actions[bot] tag:github.com,2008:Repository/1142486546/v0.11.2 2026-02-26T10:43:33Z unlost v0.11.2 <h2>What's changed</h2> <h3>Fixed</h3> <ul> <li><strong>Friction detection false positives</strong>: Three targeted changes reduce spurious de-escalation interventions during productive back-and-forth discussions. (1) The <code>anger_streak</code> fast path now requires trajectory intensity &gt;= Watch threshold (0.5) in addition to 2+ consecutive negative turns — pure emotion-classification noise can no longer trigger an intervention without corroborating behavioral evidence. (2) The go_emotions <code>disapproval</code> label is excluded from the anger streak counter, since it maps to intellectual disagreement rather than user upset; it still contributes to trajectory intensity via valence. (3) The heuristic override that mapped <code>neutral + 1 frustration signal → disapproval</code> is removed — a single matched keyword (e.g. <code>"broken"</code> in a technical description) is too weak a signal to override a neutral classification.</li> </ul> <h3>Changed</h3> <ul> <li><strong><code>README</code></strong>: Reframed mission around ownership vs. authorship. The README now leads with the human engineer's perspective — accountability in incidents, reviews, and architecture decisions — rather than agent failure modes. Removed the babysitting tax framing and failure mode table from the lead; commands are now grouped by the moment you reach for them (understanding, deciding, handing off).</li> </ul> github-actions[bot] tag:github.com,2008:Repository/1142486546/v0.11.1 2026-02-25T19:47:05Z unlost v0.11.1 <h2>What's changed</h2> <h3>Changed</h3> <ul> <li><strong>README</strong>: Restructured for better readability, moving installation to top and collapsing technical details.</li> </ul> <h3>Fixed</h3> <ul> <li><strong><code>unlost checkpoint</code> output</strong>: Fixed narrative output not wrapping at 80 columns. Now uses <code>render_narrative</code> to ensure proper formatting and ANSI coloring.</li> <li><strong>Recall/inspect filtering bug</strong>: Fixed an issue where <code>unlost recall</code> and <code>unlost inspect</code> with filters (e.g. <code>--emotion joy</code>) would return no results. The optimization to fetch only the most recent rows was calculating the offset based on the total row count instead of the filtered row count, often skipping all matching rows.</li> </ul> github-actions[bot] tag:github.com,2008:Repository/1142486546/v0.11.0 2026-02-24T22:59:12Z unlost v0.11.0 <h2>What's changed</h2> <h3>Added</h3> <ul> <li><strong><code>/unlost-walkthrough</code> skill</strong>: Installs a walkthrough skill for both OpenCode and Claude Code that guides users through recent changes step-by-step (with VSCode <code>code --goto</code> navigation).</li> <li><strong>"Under the Hood" section</strong>: Added to both <code>README.md</code> and <code>docs/index.html</code> — a grouped inventory of every technique, algorithm, and strategy Unlost uses (trajectory sensing, emotion/NLP, retrieval/memory, storage/infrastructure), with "where it's used" context on the landing page.</li> </ul> <h3>Changed</h3> <ul> <li><strong><code>unlost pr-comment</code> dual-audience comment</strong>: The comment now serves both the author (staying close to code written by AI agents) and the reviewer. Voice changed from "you" to "we". New sections: "What we were navigating" (shared tradeoff framing with emotional signal woven in), "Ripple effects" (functional knock-on effects across commands/features, not just code imports), "Left open" (deferred decisions, open questions, unresolved next_steps from capsules), and "Re-read this" (1-2 linked file:function pointers to non-obvious logic). File references are now clickable GitHub blob links built from the head SHA and repo coordinates. "How To Verify" removed. Em-dashes banned from output. A blockquote hook at the top of every comment shows the decision count and explains what unlost does; if no decisions were found, it says so plainly and suggests a replay command. Fixed: <code>headRepositoryOwner</code> is now fetched as a top-level field (the nested <code>headRepository.owner.login</code> path was always empty).</li> </ul> <h3>Fixed</h3> <ul> <li><strong><code>unlost inspect</code> capsule order</strong>: Capsules are now displayed oldest-first (newest at end) instead of newest-first.</li> <li><strong>LanceDB timestamp filter crash</strong>: Avoids a DataFusion interval planning error (<code>lhs:Null, rhs:Int64</code>) when applying <code>ts_ms</code> range filters on mixed-schema datasets; falls back to client-side time filtering and prints a repair command (<code>unlost reindex</code>).</li> </ul> github-actions[bot] tag:github.com,2008:Repository/1142486546/opencode-v0.2.6 2026-02-24T11:19:16Z opencode-v0.2.6 <p>opencode-v0.2.6: fix duplicate capsules via turn_key dedup</p> Lawouach tag:github.com,2008:Repository/1142486546/v0.9.0 2026-02-23T22:15:58Z unlost v0.9.0 <h2>What's changed</h2> <h3>Added</h3> <ul> <li><strong><code>unlost explore</code></strong>: New command for forward-looking planning grounded in workspace memory. Given a scenario or goal (e.g. <code>unlost explore "should we keep lancedb or move to sqlite+fts?"</code>), retrieves the most relevant capsules via semantic search combined with an importance-scored full scan (failure modes, rationale, cross-session recurrence). Capsules are context — not a cage — so the LLM can reason beyond them while clearly labelling what comes from memory (<code>[memory]</code>) vs. external knowledge (<code>[outside]</code>). Output sections: CONTEXT FROM MEMORY, PATHS WORTH CONSIDERING, TENSIONS, QUESTIONS TO SIT WITH, IF YOU GO FURTHER.</li> <li><strong><code>unlost challenge</code></strong>: New command to pressure-test a past decision or technology choice (e.g. <code>unlost challenge "lancedb"</code> or <code>unlost challenge "is our code currently properly organized?"</code>). Uses three evidence sources: (1) the live code graph via unfault-core (hotspots, dependency topology, routes, file list — ground truth even when capsules are thin), (2) changelog capsules (version history), and (3) conversational memory capsules (decisions, rationale, failure modes). Output sections: THE DECISION, ALTERNATIVES (as readable named cards with Upside/Downside/Cost/Evidence fields), VERDICT (keep if / change if), UNKNOWNS, PROBES.</li> <li><strong><code>GraphContext</code> + <code>build_graph_context_for_workspace</code></strong>: New helper in <code>workspace.rs</code> that builds the full unfault-core code graph and extracts hotspots (centrality), hub dependencies, routes, and file paths in one call. Used by <code>challenge</code> to inject structural ground truth into the LLM prompt.</li> </ul> <h3>Changed</h3> <ul> <li><strong>Grouped help output</strong>: <code>unlost --help</code> and <code>unlost</code> (no args) now display commands organised into four sections — <strong>Memory</strong> (<code>query</code>, <code>trace</code>, <code>recall</code>, <code>explore</code>, <code>challenge</code>, <code>brief</code>), <strong>Workspace</strong> (<code>init</code>, <code>reindex</code>, <code>clear</code>, <code>where</code>), <strong>Setup</strong> (<code>config</code>, <code>model</code>), and <strong>Diagnostics</strong> (<code>metrics</code>, <code>replay</code>, <code>inspect</code>) — instead of a single flat list. Implemented via a custom <code>help_template</code> on the root <code>Cli</code> struct (clap's <code>next_help_heading</code> derive attribute does not apply to struct-variant subcommands).</li> <li><strong><code>explore</code> prompt redesign</strong>: Rewritten to be genuinely open-ended and generative — a thinking partner, not an auditor. The LLM is instructed to use workspace memory as background and constraint, then think freely beyond it. Alternatives are labelled <code>[memory]</code> or <code>[outside]</code> so the user knows what is grounded and what is creative.</li> <li><strong><code>challenge</code> alternatives format</strong>: Replaced pipe-separated table (unreadable at terminal width) with named card format per alternative. Each card uses circled numbers (①②③④), with dimmed field labels (<code>Upside:</code>, <code>Downside:</code>, <code>Cost:</code>, <code>Evidence:</code>) and a blank line between cards for scannability.</li> <li><strong>Higher-signal recall selection</strong>: <code>unlost recall</code> now filters low-signal capsules (e.g. replay/ghost extractions), scans a wider recent window to avoid crowd-out, and includes git commit capsules by default so the narrative stays anchored when conversational signal is thin.</li> <li><strong>Recall interventions controls</strong>: Interventions can be hidden from output (<code>UNLOST_RECALL_HIDE_INTERVENTIONS=1</code>) and are excluded from the LLM narrative context by default unless explicitly enabled (<code>UNLOST_RECALL_INTERVENTIONS_IN_CONTEXT=1</code>).</li> <li><strong>Faster <code>reindex</code> rebuilds</strong>: <code>unlost reindex</code> now batches embeddings and LanceDB inserts, clears the workspace DB directory in one operation, and shows in-place progress during rebuild.</li> <li><strong>Richer <code>trace --raw</code> output</strong>: Raw trace printing now includes capsule source and best-effort references (e.g. <code>commit:&lt;hash&gt;</code> / <code>version:vX.Y.Z</code>) when available.</li> </ul> <h3>Fixed</h3> <ul> <li><strong><code>render_structured</code> polish</strong>: Space inserted between circled number and card title text (<code>①Keep</code> → <code>① Keep</code>). Probe lines changed from dim cyan (<code>\x1b[2;36m</code>, nearly invisible on dark backgrounds) to normal cyan (<code>\x1b[36m</code>). All prose, card field values, and probe lines now wrap at 80 columns via a new <code>wrap_ansi_line()</code> helper that measures visible width by skipping ANSI SGR escape sequences.</li> <li><strong>Safer <code>reindex</code> confirmation</strong>: Confirmation prompt now reads a single line from stdin (instead of blocking on EOF), improving behavior in non-interactive environments.</li> <li><strong>Recall rendering clarity</strong>: The narrative output now labels the final section as <code>Next steps (if any):</code> to avoid implying that every recap must produce action items.</li> </ul> github-actions[bot] tag:github.com,2008:Repository/1142486546/v0.8.0 2026-02-20T19:59:34Z unlost v0.8.0 <h2>What's changed</h2> <h3>Added</h3> <ul> <li></li> </ul> github-actions[bot] tag:github.com,2008:Repository/1142486546/v0.7.0 2026-02-19T21:19:41Z unlost v0.7.0 <h2>What's changed</h2> <h3>Added</h3> <ul> <li><strong><code>unlost brief</code></strong>: New command that produces a staff-engineer-style codebase debrief. Answers "what do I need to know to work here without getting surprised?" by scanning all recorded history (not just recent turns), scoring capsules by importance (failure modes, explicit rationale, cross-session recurrence), and producing four structured sections: MENTAL MODEL, KEY DESIGN DECISIONS, THINGS THAT BITE, ENTRY POINTS. Ends with a GO DEEPER section of suggested <code>unlost</code> commands to drill down further. Scoped variant (<code>unlost brief src/governor.rs</code>) narrows the debrief to a specific file or concept.</li> <li><strong>Git commit ingestion</strong>: Git commits are now first-class capsules. Each commit becomes an <code>IntentCapsule</code> with <code>category: "GitCommit"</code>, subject as the decision, body as the rationale, and touched files as symbols — embedded for semantic search, zero LLM cost. Deduplicates by hash across runs.</li> <li><strong><code>unlost replay git</code></strong>: New subcommand to ingest git history on demand (<code>unlost replay git --max-commits 500</code>).</li> <li><strong>Automatic git ingestion</strong>: <code>unlost replay opencode</code>, <code>unlost replay claude</code>, and <code>unlost init</code> now automatically ingest git history after their main work completes. No extra step needed.</li> </ul> <h3>Changed</h3> <ul> <li><strong>Git capsule routing</strong>: Git capsules are included in <code>brief</code> and <code>query</code> (where historical decisions are valuable) but excluded from <code>recall</code> (which stays focused on the conversational story) and from the trajectory controller's history window (which operates on live agent turns only).</li> </ul> github-actions[bot]