v0.2.0
Pre-releasework-buddy v0.2.0 — ~95 merged PRs since v0.1.0. This release relicenses work-buddy to GPL-3.0-only, redesigns the task pipeline around Getting Things Done, adds local model inference, migrates the knowledge store to a new file-per-unit substrate, and reworks the dashboard.
Pre-release. work-buddy remains pre-release software under active development; APIs may still change.
License
work-buddy is relicensed from MIT to the GNU General Public License v3.0 (GPL-3.0-only) as of this release; the 0.1.x line remains MIT. Copyleft keeps the runtime a shared resource — free to use, study, modify, and redistribute, with redistributed modifications staying free software. Contributions are now governed by a Developer Certificate of Origin (not a CLA): every commit is signed off, enforced by a required check. (#123, #124)
Task pipeline — a Getting Things Done redesign
The task pipeline was rebuilt around the five-phase structure of David Allen's Getting Things Done (GTD): Capture → Clarify → Organize → Reflect → Engage. Items are now captured without an immediate verdict, then processed through a structured Clarify decision tree (actionable or not? trash, reference, calendar, or task?) and routed to typed destinations rather than a single master list. Three deliberate extensions adapt GTD for AI-mediated work:
- Outcome, next action, and definition-of-done as separate first-class fields — what you want apart from what you do, plus an explicit closure signal the agent can check. (#60)
- An automation-tier model (0–4) formalizing where the agent acts autonomously vs. requires consent, grounded in a typed risk model. (#68)
- Action contexts (
@vault,@email_send, …) determining which tasks are executable in the current environment;/wb-task-meis a re-runnable "what can I do now" surface. (#69)
The Threads rework unified these into one FSM-governed entity: every captured item walks proposed → intent → context → action → execution, decomposable into sub-threads, with autonomy composed per-transition. (#74, #98) The weekly review is replaced by continuous, AI-assisted micro-review.
Task infrastructure
Independent of the GTD work, the task store was hardened and extended:
- Hierarchical namespace tags —
#research/electricrag/experiments-style tags with embedding-backed suggestion and a dashboard tree. (#42) - Store hardening — a description column, atomic line mutations (closing the read-modify-write race), multi-effect post-write-uncertain recovery, cross-session consent inheritance. (#61)
task_readcapability + shared read helper;projects/made first-class;task_set_tagsunified to manage#projects/*. (#45, #47, #92)
Local inference & embedding
Local model inference is new in this release — v0.1.x had none:
- Local inference foundation —
llm_call/llm_submit/llm_with_toolsrunning local models through LM Studio, with LM Link as the remote transport. Tool access is governed by a server-side capability ACL enforced at the work-buddy gateway, not in LM Studio config. (#29) - Unified LLM runner — one
LLMRunner.call(tier, …)with semantic model tiers, a normalized response, an error taxonomy, and tier escalation, fed by a 13-source context pipeline. (#40) - Inference broker + embedding offload — priority-classed slot scheduling so one workload can't starve another; LM Studio added as an embedding provider, letting document-side bulk encoding be offloaded to a remote device via LM Link. (#52)
Knowledge store
- File-per-unit substrate — every knowledge unit is now a single Markdown file (frontmatter + body) instead of packed JSON; editing a unit is editing its file. (#120)
- Op registry + capability declarations — the executable callable is separated from the inert capability declaration; capability prose is editable as data. All ~199 capabilities migrated. (#119, #120)
- 9-kind taxonomy — unit kinds evolved 5 → 9; 89 units reclassified. (#89)
- Placeholders & retrieval —
<<wb:path>>cross-references with cycle detection; per-source multi-projection retrieval (BM25 + dense via RRF). (#17, #36)
Dashboard
- Live event bus — the 30-second wholesale refresh is gone; server-pushed SSE mutates only the cards an event touches (morphdom-backed surgical DOM updates). (#66)
- Settings, rebuilt — a unified control graph (domain→subsystem→component→requirement) backs a reworked Settings tab with a typed fix system (
programmatic/input_required/agent_handoff) and diagnostic help agents. The Status tab was absorbed into Settings as sub-tabs and the Overview tab retired (Today is the new landing); cards became preference-gated via a registry; the fix-flow and scheduler runtime were hardened. (#44, #110, #112, #113) - New tabs — Jobs (user + system cron jobs), Chats (conversation search), Projects (relational temporal model, activity scoring), Memory (the entity registry). (#82, #103, #109, #122)
- Agent launching — start or resume Claude Code sessions from the dashboard, desktop or mobile. (#22, #53)
Reliability, data safety & consent
- Data-safety model — soft-delete (no
DELETEin code), a versioned migration ladder (user_version+ audit + AST-stable hash check + downgrade guard), off-machine backups to GitHub Releases on an hourly cron. (#100, #101, #102) - Artifact lifecycle —
Artifact = Storage × Lifecycle × Provenance, replacing ad-hoc per-module pruners. (#94) - MarkdownDB — a markdown-canonical two-way-sync abstraction (markdown is the source of truth; SQLite is a queryable projection). (#115)
- Typed Obsidian exceptions — a typed error hierarchy and three-layer closure of the double-write hazard; vault writes that would clobber unsaved editor typing are refused. (#56, #50)
- Consent hardening — call-stack-aware risk reduction, cross-session consent inheritance for sidecar replay, modal-consent routing. (#32, #61, #99)
- Sidecar & scheduling — instance takeover on restart, bounded shutdown, user-authored cron jobs with parametric workflows, a filesystem watchdog, opt-in cron jitter. (#37, #82, #86)
Integrations
- Thunderbird email triage — an email-provider abstraction and triage adapter; ships disabled by default (needs the companion add-on). (#63)
- Multi-repo git context — context collection walks every repo under the repos root, attributing commits per project. (#51)
- Vault-recon collector — a daily pass that surfaces recurring vault conventions via significance rules. (#84)
- Entity registry — an authored store of people, places, projects, and concepts, with hierarchical tags and a federated
entity_resolveacross the entity and project registries. (#122) - Conversation observability — a durable, session-attributed activity DB (commits, file writes, topic summaries) derived from Claude Code session logs. (#109)
- Tailscale — wired across all four health-system layers. (#91)
Breaking changes & retirements
- Removed task surfaces — Review Queue, Daily Log, Engage, and Blocked-by-Context, and the clarify pool — all superseded by Threads. (#74, #95)
- Status and Overview dashboard tabs retired. (#110)
_generated_capabilities.jsonandbuild.pyremoved; the JSON knowledge-store loading path is gone. (#120)moduleknowledge-unit kind dropped (folded intoreference). (#89)/wb-dev-commitrenamed/wb-dev-pr. (#93)
Companion repositories
work-buddy's two companion repositories also advanced this cycle:
obsidian-work-buddy(the Obsidian plugin, 0.1.0 → 0.1.1) — prepared for Obsidian community-plugin review (plugin-ID rename, manifest cleanup, lint compliance); an EditorConflict guard that auto-refreshes open editors and refuses changes that would clobber unsaved typing; a modal-consent message fix. Tracks the work-buddy-side bridge and consent work.thunderbird-work-buddy(new) — an initial read-only Thunderbird bridge, created to pair with this release's email triage. The email integration ships disabled by default until this add-on is installed.
Full changelog: 0.1.0...0.2.0