Skip to content

Releases: thrillmade/logmind

v1.2.0

Choose a tag to compare

@github-actions github-actions released this 07 Jun 19:19
c64e4a6

Changelog

  • 66ccd99 [skip-logmind] feat(skill push): privacy gate layers 3+4 — content scanner + repo-visibility (§8.2 wave-2) (#143)
  • c64e4a6 feat(v1.2.0): logmind log Go port + markdown self-healing (3 layers) (#152)

Install

  • Homebrew (macOS / Linux): brew install thrillmade/tap/logmind - Curl: curl -fsSL logmind.dev/install.sh | sh - Manual: download the matching logmind_VERSION_OS_ARCH.tar.gz
    from the assets below, extract logmind, drop into $PATH.

Verify checksums against SHA256SUMS before running unknown binaries.

v1.1.0

Choose a tag to compare

@github-actions github-actions released this 05 Jun 23:44
f415c59

Changelog

  • f415c59 feat(v1.1.0): install.sh fetch-latest + setup-logmind scaffold pattern (#147)

Install

  • Homebrew (macOS / Linux): brew install thrillmade/tap/logmind - Curl: curl -fsSL logmind.dev/install.sh | sh - Manual: download the matching logmind_VERSION_OS_ARCH.tar.gz
    from the assets below, extract logmind, drop into $PATH.

Verify checksums against SHA256SUMS before running unknown binaries.

v1.0.1

Choose a tag to compare

@github-actions github-actions released this 05 Jun 20:13
ae2f7c7

Changelog

  • 3ab27c7 [skip-logmind] chore(notify): port off Python import + idempotent fallback (§8.3) (#140)
  • 6c908d4 [skip-logmind] chore(version): refresh stale docstring + SpecVersion 0.1.0 → 0.1.1 (§8.4 + #154) (#139)
  • 2fbf93e [skip-logmind] chore: add dependabot auto-merge caller workflow (§8.1) (#138)
  • a112d70 [skip-logmind] chore: re-pin dependabot-auto-merge to §8.6 SHA b208d22 (#144)
  • 0ad6083 [skip-logmind] feat(skill push): privacy gate layers 1+2 (frontmatter + dir convention) (§8.2) (#141)
  • 5a74ded chore(deps): bump thrillmade/clud-bug from 0.6.32 to 0.6.34 (#120)
  • 231aa2a feat(check-links): exclude docs/reviews/PR-*.md from orphan check (SPEC §6.2) (#145)
  • 637c655 feat(skill push): port logmind skill push from Python (G4.b) (#136)
  • 0d77e0e feat(sync): port logmind sync from Python (B5b / G4.a) (#135)
  • e294c2a feat: lead install with Go binary v1.0; deprecate Python install path (G6.a) (#134)
  • 126e22b v1.0.0 cutover: Go rewrite → main (#132)

Install

  • Homebrew (macOS / Linux): brew install thrillmade/tap/logmind - Curl: curl -fsSL logmind.dev/install.sh | sh - Manual: download the matching logmind_VERSION_OS_ARCH.tar.gz
    from the assets below, extract logmind, drop into $PATH.

Verify checksums against SHA256SUMS before running unknown binaries.

v1.0.0

Choose a tag to compare

@github-actions github-actions released this 03 Jun 15:55

Changelog

  • b898da9 logmind: fix(B7): GORELEASER_CURRENT_TAG to disambiguate double-tagged commits

Install

  • Homebrew (macOS / Linux): brew install thrillmade/tap/logmind - Curl: curl -fsSL logmind.dev/install.sh | sh - Manual: download the matching logmind_VERSION_OS_ARCH.tar.gz
    from the assets below, extract logmind, drop into $PATH.

Verify checksums against SHA256SUMS before running unknown binaries.

v1.0.0-rc3

v1.0.0-rc3 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 03 Jun 15:02

Changelog

  • f6c38ba logmind: Wire thrillmade-orchestrator[bot] App for cask-bump (G1.e.2)

Install

  • Homebrew (macOS / Linux): brew install thrillmade/tap/logmind - Curl: curl -fsSL logmind.dev/install.sh | sh - Manual: download the matching logmind_VERSION_OS_ARCH.tar.gz
    from the assets below, extract logmind, drop into $PATH.

Verify checksums against SHA256SUMS before running unknown binaries.

v1.0.0-rc2

v1.0.0-rc2 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 03 Jun 03:58

Changelog

  • f3a727a chore(v1.0): polish before final tag — SpecVersion final + brew-not-pip suggestion (#131)
  • 53d3767 logmind: fix(B7): wire HOMEBREW_TAP_PAT now that it's provisioned

Install

  • Homebrew (macOS / Linux): brew install thrillmade/tap/logmind - Curl: curl -fsSL logmind.dev/install.sh | sh - Manual: download the matching logmind_VERSION_OS_ARCH.tar.gz
    from the assets below, extract logmind, drop into $PATH.

Verify checksums against SHA256SUMS before running unknown binaries.

v1.0.0-rc1

v1.0.0-rc1 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 03 Jun 02:22
e062462

Changelog

  • 20e2d77 B1.scaffold: Go module + cobra + version + snapshot infrastructure (#116)
  • bca92f8 B2: git integration + hooks (install-hook, check-decisions, check-links, post-merge/post-rewrite bodies) (#117)
  • f220d1d B3: derived doc generators (timeline, file-structure, tree, rebase) (#119)
  • e075b02 B4: agent file templating (agents list/add/remove/update/migrate + inserter package) (#118)
  • 35e1dbd B5: skill CLI (new/test/bench/audit/suggest) (#124)
  • 2d15030 B6: config + doctor + init + self-update (+ v0.6.16 PATH probe carry-forward) (#125)
  • 0ca203d B7: distribution (GoReleaser + brew + curl + Mac codesign + notarize) (#127)
  • 2963283 carry-forward: v0.6.16 features into B2/B3/B4 Go ports (#128)
  • e062462 fix(B7): release.yml startup_failure — replace Apple-Actions/import-codesign-certs with inline security commands (#130)
  • 078d038 fix: strip 'origin/' prefix in post-merge hook's default-branch skip (#129)
  • 6c6e3b0 logmind: bisect(B7): add workflow_dispatch inputs + packages:write back
  • 772edce logmind: fix(B7): bisect release.yml — minimal version to identify startup_failure cause
  • 5c00c19 logmind: fix(B7): remove empty env: block from GoReleaser snapshot step
  • a50770e logmind: fix(B7): replace missing HOMEBREW_TAP_PAT secret with GITHUB_TOKEN
  • ad34a28 logmind: fix(B7): tag-trigger glob pattern (v[1-9]+ → v[1-9]*)
  • 6490670 logmind: test(B6 follow-up): port commit-msg hook tests from main to v1-go-rewrite

Install

  • Homebrew (macOS / Linux): brew install thrillmade/tap/logmind - Curl: curl -fsSL logmind.dev/install.sh | sh - Manual: download the matching logmind_VERSION_OS_ARCH.tar.gz
    from the assets below, extract logmind, drop into $PATH.

Verify checksums against SHA256SUMS before running unknown binaries.

v0.6.16

Choose a tag to compare

@github-actions github-actions released this 02 Jun 18:17
28e7b51

Tokenomics-agent verification-report follow-up (Concerns 2/3 + dogfood enforcement + multi-branch self-heal regression). Three changes, one release — all bridge directly into the v1.0 Go rewrite parity matrix.

Fixed — multi-branch self-heal contract restored

The v0.6.15 blanket default-branch skip in the post-merge hook fixed the gh pr merge --squash --delete-branch unstaged-docs case, but broke local-merge regen on main. Concrete failure mode: when agent A merges feat/agent-a locally and agent B merges feat/agent-b against the same main, the merge driver fires for docs/timeline.md with a partial working tree (B's decisions-branches/feat__agent-b.md not yet checked out), producing a timeline missing B's content. The post-merge hook was supposed to sweep — but the v0.6.15 skip made it a no-op on main, freezing the partial output.

v0.6.16 tightens the skip: instead of "skip whenever current branch == default," the hook skips only when HEAD already matches origin/<default> (the actual fast-forward / pull-up case where regen-timeline.yml server-side is authoritative). Local merges that introduce new commits not yet on origin run regen normally, so the working tree reflects the merged-in decision content.

Surfaced by three new regression tests in tests/test_merge_driver.py (two-branch, three-branch, squash-then-merge variants). All exercise real git + logmind subprocess calls — no mocks. The whole dogfood loop assumes this contract holds; without it, every concurrent-PR cycle would silently lose decisions on local merges.

Added — logmind doctor PATH-resolution probe (Concern 3)

Tokenomics-agent's 2026-06-01 recurrence had a non-obvious root cause: logmind doctor reported current for the post-merge hook, but logmind init (invoked from the user's shell, via PATH) was writing a v0.3.4 hook body. The discrepancy: doctor was running via python -m logmind (PYENV_VERSION=3.11.8 → v0.6.13), while logmind typed at the shell prompt resolved through the pyenv shim to an older active pyenv → v0.3.4.

v0.6.16 adds _probe_path_resolution() in core/doctor.py. The probe runs shutil.which("logmind") + <path> --version and compares the resolved binary's version against the currently-running version. Drift surfaces as stale with a marker showing both versions + the conflicting path, so doctor exits non-zero on PATH-conflict (Stack status: DRIFT).

Added — commit-msg hook (dogfood enforcement)

Tokenomics-session feedback "why git add instead of logmind" revealed that even with AGENTS.md guidance, agents fall back to raw git commit on substantive code changes. v0.6.16 adds a commit-msg hook installed by logmind init (alongside post-merge + post-rewrite) that warns when:

  1. Commit message's first line does NOT start with one of the exempt prefixes (logmind:, Revert , Merge , Bump version, chore(release):, fixup!, squash!)
  2. Staged diff exceeds 20 lines across code-bearing extensions (.py .go .ts .tsx .js .jsx .sh .yaml .yml .toml .rs .rb)

WARN by default. STRICT mode (exits 1, rejecting the commit) when .logmind/config.yml contains commit_msg_hook: strict: true. Bypass via git commit --no-verify for intentional overrides. The hook reads strict mode at runtime so users flip without re-installing.

Changed — AGENTS.md template bumps + strengthened framing

  • AGENTS.md.template: v5 → v6 — heading reframed to "REQUIRED for substantive commits" + new blockquote with "DO NOT run raw git add / git commit / git push" warning that references the commit-msg hook
  • AGENTS.md.slim.template: v7-pointer → v8-pointer — same strengthening with the contract sentence preserved verbatim ("logmind log replaces git add + git commit + git push")

The contract sentence stays load-bearing for tests/test_agents_consolidation.py discovery; new v0.6.16 framing is additive on top.

Validation gate

  • pytest -q green: 846 passed, 1 skipped (+17 over v0.6.15 — 3 self-heal + 9 commit-msg-hook + 5 PATH-probe).
  • After propagation: tokenomics agent's next logmind doctor should surface PATH-conflict if their pyenv shim still resolves to v0.3.4. Their next substantive git commit (without logmind log) will fire the warning. Multi-branch self-heal test guards regression for the v1.0 Go rewrite parity gate.

Go v1.0 parity carry-forward

Every v0.6.16 change is a parity item for the Go rewrite waves:

  • B2 (hooks): port _build_commit_msg_hook_body() to internal/hooks/commit_msg_body.go with byte-identical hook body
  • B3 (timeline): port the multi-branch self-heal tests to internal/timeline/merge_driver_test.go
  • B4 (templates): bump embedded AGENTS.md.template + slim variant in embed.FS
  • B6 (doctor): port _probe_path_resolution() to internal/doctor/probe_path.go
  • Phase 2 convergence: cross-binary parity test (Python v0.6.16 vs Go v1.0 timeline.md byte-identical) is a release gate

v0.6.15

Choose a tag to compare

@github-actions github-actions released this 02 Jun 16:58
4218207

Hotfix surfaced by the tokenomics agent's v0.6.14 verification cycle.

Fixed — post-merge hook skips regen on default branch

After gh pr merge --squash --delete-branch, the post-merge hook fires on main. v0.6.14 correctly fixed the orphan-branch-blocks-checkout failure (issue #112), but on main the regen still ran — producing output that DIFFERED from origin/main (the squash compressed history that the local regen reads), leaving docs/timeline.md + docs/file-structure.md as unstaged modifications on every merge cycle. Every merge needed a manual git checkout -- docs/timeline.md docs/file-structure.md to make local main clean.

v0.6.15: the hook now exits 0 when the current branch matches refs/remotes/origin/HEAD's symbolic ref (the default branch). The regen-timeline.yml workflow already handles main server-side; local main converges on next pull. Trade "immediate local view of the new entry" for "main matches origin/main after every merge" — the latter is what users expect.

Trade-off accepted (alternatives considered + rejected):

  • Pre-merge regen via a server-side workflow committing to PR branch → invasive (extra commit per PR, requires PAT, adds CI time); deferred to a possible v0.7.x design
  • Auto-amend the merge commit on main locally → surprising; would rewrite history mid-pull
  • Document git checkout -- docs/ as the recommended cleanup → doesn't actually solve the "main should match origin/main" intent

Files: src/logmind/core/gitattributes.py _build_post_merge_hook_body extends the orphan-branch guard with a default-branch guard; tests/test_merge_driver.py adds test_post_merge_hook_body_embeds_default_branch_skip_logic.

Validation gate

  • pytest -q green: 829 passed, 1 skipped (+3 over v0.6.14).
  • After v0.6.15 propagates + tokenomics agent re-upgrades: next gh pr merge --squash --delete-branch should leave git status clean on main (no unstaged docs files). Verifies the structural fix end-to-end.

v0.6.14

Choose a tag to compare

@github-actions github-actions released this 02 Jun 04:01
a42bd10

Three propagation-pipeline polish fixes surfaced during the v0.6.13 cycle (2026-06-02). All three address pain points that required manual intervention during v0.6.13 propagation and that the workflow should handle structurally going forward.

Fixed — Doctor content-diff for installed hooks (issue #112 addendum)

logmind doctor now content-diffs installed .git/hooks/post-merge (and post-rewrite) bytes against the bundled canonical body, in addition to the v0.6.10 version-marker equality check. Closes the failure mode the tokenomics reporter flagged in the #112 addendum: "doctor's check is too cheap a signal" — if the hook drifts after install while preserving the marker line (manual edit, clobber-then-restore by another tool, marker-propagation bug), the v0.6.10 check would still report current while the body is genuinely stale.

v0.6.14: marker equality stays as the cheap fast-path; the content-diff is the expensive correctness check that fires when it matters. Drift surfaces as STALE (content drift) with the existing "reinstall via logmind self-update" remediation pointer.

Files: src/logmind/core/doctor.py (_probe_post_merge_hook + _probe_post_rewrite_hook); tests/test_merge_driver.py (new content-drift and byte-identical tests).

Fixed — logmind-self-update.yml v7: [skip-logmind] PR title prefix

Bot-generated propagation PRs from logmind-self-update.yml are by-definition NOT decision commits — they're pin-bumps + template body refreshes owned by the workflow itself. v0.6.13 propagation surfaced this as a consistent failure: consumer-repo check-decisions.yml failed every PR because the diff exceeded the 20-line threshold AND no decision file was present. The fix required manually editing each PR title to include [skip-logmind] (the existing maintainer-override path) + closing and reopening the PR to re-fire the title-cached check-decisions workflow.

v0.6.14: the self-update template now sets [skip-logmind] logmind self-update: X.Y.Z → A.B.C as both the commit message AND the gh pr create --title at workflow creation time. Eliminates the manual editing + close+reopen ritual entirely.

Files: src/logmind/templates/github/logmind-self-update.yml.template (bumped to v7); tests/test_v0_2_1_audit_fixes.py (new test + marker bump).

Fixed — logmind-self-update.yml v7: PyPI CDN-aware retry

The version-check step polls the PyPI simple/ index OR JSON API to find the latest published logmind. Both propagate via a CDN that lags 30-60s behind a publish event. Cron-triggered self-update workflows can fire during the gap, see "Latest: ", and silently no-op. Hit on v0.6.12 (1/5 propagations) and v0.6.13 (1/5 propagations).

v0.6.14: wraps the version-check in a 3-attempt exponential backoff (0s → 30s → 60s). If all 3 see the same version, accept and proceed as today (legitimate no-op). If any sees a higher version, use it. Adds 0-90s to worst-case workflow runtime; eliminates the silent-skip class of bug.

Files: same template; same test file.

Validation gate end-to-end

After v0.6.14 propagates through all 5 thrillmade consumer repos, the next release cycle (v0.6.15+) should:

  • 5/5 consumers' self-update workflows pin-bump-only releases succeed first attempt with NO manual title editing, NO close+reopen rituals, NO CDN-race silent-skips
  • doctor on any repo with a hand-edited or drifted hook body reports STALE (content drift) with the logmind self-update remediation pointer