Skip to content

v0.14.0 -- Projects tab + vault tooling Phase 1-3

Choose a tag to compare

@github-actions github-actions released this 26 May 20:39
· 118 commits to main since this release

What's New

The old AI-briefing Projects tab is gone; a new vault-driven Projects tab takes its place and sits before Notes in the tab bar. One row per project (any top-level vault folder containing a `Tasks.md`). Tap to reveal three subsections rendered verbatim from the Karpathy archive:

  • Status — the project's `Tasks.md` preamble + `Dashboard.md` first paragraph if present, reflowed to the panel width (source-markdown 80-char wrapping no longer leaks into the UI).
  • Tasks — `## Active` parsed into day-planner one-line checkboxes. Sub-bulleted phase plans render as nested one-liners; bodies stay hidden behind each row's chevron so a single verbose task (like the multi-phase plans this project has been using) can't blow out the panel.
  • Notes — `Dashboard.md`, `Technical Notes.md`, `Session Log.md`, `Sessions.md`, and any other `.md` files in the project folder. Click opens in the existing floating-note window with full wikilink + image resolution.

The old `ProjectBriefingService` and `ProjectDashboardView` are kept instantiated but unused — the same "inert for re-enable" pattern as the push-notification and permission-watcher subsystems.

Vault tooling — Phases 1, 2, 3. Five managed files are bundled into the app: `vault-ingest.sh` (SessionEnd hook), `vault-ingest-prompt.md` (its prompt), `vault-reset.sh`, `obsidian-sync.sh`, and `com.bbdaniels.obsidian-sync.plist`. On launch, `VaultScriptInstaller.audit()` classifies each installed copy (`missing`, `unmanagedSameBody`, `unmanagedDifferentBody`, `current`, `outdated`, `userEdited`) — observation-only at this stage; the cockpit Settings button that will surface conflicts and offer reinstall lands in a later phase. `VaultIngestService` watches `~/.claude/ingest-state/` and parses per-project `Sessions.md` to feed ingest provenance to the new Projects rows and (next release) Session History badges.

Styling matches Session History throughout. Fira Sans 14pt semibold for project names, Fira Code 10pt for the "today / 3d / 2w" relative-age labels, captionFont uppercase-semibold for the `done/archived` divider — and the whole tab scales with `fontScale` so it tracks the panel width like the other tabs.

Also lands in this release: Agents panel matches Open Sessions via process attach tree (`e60ed26`).