Skip to content

v0.2.1

Latest

Choose a tag to compare

@NetDevAutomate NetDevAutomate released this 05 Sep 11:21
· 1526 commits to main since this release

v0.2.1

The honesty-and-hardening release for the second-brain layer, closing out the
2026-09-04 independent review. No new provider; the layer's claims now match
its evidence, the wind-down decision is data instead of protocol prose, and a
learning record finally has a writer.

Changes

  • The wind-down decision becomes a command. studyloop brain wind-down --json [--connector NAME] answers the one question the end-of-session
    protocol needs — which second-brain offer to make, if any — as
    {channel, offer, sentence, reason}. Two rules, not one conjunction: the
    publish offer needs a configured, publish-capable provider; the xTiles offer
    needs provider: xtiles plus an xtiles connector the session can actually
    see. The offer sentences are pinned byte-identical across the CLI, the
    protocol, the skill and the guide.
  • Learning records have a writer. studyloop plan record <plan-id> --title … [--body …] (and the record_plan_learning MCP tool) appends a learning
    record through the plan renderer — idempotent, numbered max+1, refusing
    bodies that would corrupt the document. The xTiles wind-down records into
    the plan first, so a second-brain page is a projection of a record the plan
    already has, never the only copy. ADR-0010 clause 1 amended to the rule the
    code obeys.
  • xTiles guidance says what was actually proven (first hand-run of the
    prompts, Kiro CLI 2.21.0): the planner prompt creates a tile and returns a
    URL; the project prompt stops promising board views or collection-page
    refreshes; the wind-down prompt skips the Review task when nothing is due;
    data sent is your whole study state, not one plan's; cleanup boundaries are
    stated. studyloop install agents no longer double-links the skill for
    OpenCode.
  • Obsidian writer hardening: no directory can be created outside the
    vault; --dry-run previews the "would replace your edits" warning; a note
    whose permissions cannot be read is refused rather than rewritten with
    defaults.
  • Fixed: get_study_history (MCP) and studyloop plan evaluate no longer
    fail on the session-history search (ambiguous column + multiple FTS MATCH
    constraints); multi-word topics now match as phrases.
  • Test honesty: the three tests that were red on main are root-caused
    and fixed; six wait_for_function async predicates that never awaited are
    replaced with a real polling helper; an acceptance suite (truth table, CLI
    contract, sentence pins, stub xTiles MCP server, live transcript gate
    checks) covers what previously needed a human; the release gate now fails on
    shipped-but-unarchived OpenSpec changes and stale ADR statuses, with an
    early-warning hook for three harnesses.

Verification

  • just preflight — 4790 passed, 4 skipped
  • just e2e — 503 passed, 20 skipped
  • just gate-checks — all three wind-down gate checks pass on captured
    transcripts (offer-once/decline/silence at 3/3, zero flakes)
  • GitHub CI green on the merged PR (#16), all 16 checks