Commit graph

8 commits

Author SHA1 Message Date
Chris Lettieri
cc62c4d591 release tooling: scripts/release.sh + version-consistency guard test
Codify the release process so we stop drifting version files and stop
leaving the repo advertising a version with no published release (the
inconsistency that plausibly got the plugin auto-removed from the store).

- scripts/release.sh: one-shot, self-verifying release. Bumps manifest.json,
  package.json AND versions.json in lockstep, runs tests+build, pushes,
  tags (no v prefix), waits for CI, PUBLISHES the draft immediately, then
  verifies root manifest == released asset == tag. Includes a store-listing
  health check.
- tests/version-consistency.test.ts: guard test — fails the build if the
  three version files ever disagree (catches a forgotten versions.json bump
  before tagging).
- docs/PUBLISHING.md: rewritten script-first; adds versions.json (was
  omitted), the publish-immediately rule, and a 'if de-listed from the
  store' runbook (ask #plugin-dev, community.obsidian.md portal, the
  'entry already exists' gotcha).
- CLAUDE.md: quick-summary now points at the script and the three files.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-07 15:04:53 -04:00
Chris Lettieri
cbc0c1b471 test: make distill date-range filter test deterministic
The 'filters content by date range' test used fixed fixture dates
(### 2026-02-25) inside a 30-day window, so it passed only while the
real clock was within 30 days of that date and began failing as the
current date advanced. extractContentByDateRange is correct; it uses
new Date() as "now". Pin the system clock with vi.setSystemTime so the
fixed fixture dates evaluate deterministically regardless of the wall
clock.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-07 08:27:40 -04:00
Chris Lettieri
521399efd3 M3b: Augi task-file commands; deprecate Task Dispatch
Add TaskFileService, which writes `status: pending` task files to
OpenAugi/Tasks/ via the Obsidian vault API — no shell-out, no HTTP, no
Node modules, so it works on mobile too. The file format mirrors the
parent repo's templates/task-template.md contract consumed by
task_watcher.py.

New commands (all platforms):
- Augi: Run review pass       -> "run the review pass"
- Augi: Process dashboard     -> "process the dashboard"
- Augi: Distill selection     -> selection/active-note body becomes the
                                 ## Context; distill-lens instruction

Deprecate the legacy Task Dispatch feature (it launches tmux itself,
bypassing the watcher). Kept functional for community users without the
Python watcher; steer new use to task files via docs banner, settings UI
label, and a @deprecated marker. To be removed over a release or two.

Docs: new docs/AGENT_TASKS.md; README + CODEBASE_MAP updated to lead with
the task-file flow. Tests: 18 new, including a watcher-frontmatter-regex
compat check and same-second collision handling.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-07 08:26:30 -04:00
Chris Lettieri
6e9ed65d40 Fix mobile compatibility: dynamic import for task dispatch
TaskDispatchService uses Node.js modules (child_process, fs, path) that
are unavailable on Obsidian mobile. Switch to dynamic import with
Platform.isMobile guard so the plugin loads cleanly on mobile while
keeping full task dispatch functionality on desktop.

- Use `import type` + dynamic `import()` for TaskDispatchService
- Guard task dispatch commands behind Platform.isMobile check
- Lazy-import detectTmuxPath in settings tab
- Bump version to 0.5.2

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-25 21:53:33 -05:00
Chris Lettieri
8072306a89 user prompt 2026-02-25 17:34:31 -05:00
Chris Lettieri
850c270434 use mcp to write back 2026-02-25 17:27:49 -05:00
Chris Lettieri
b7d4a3b225 repo setting 2026-02-25 17:27:26 -05:00
Chris Lettieri
2d3c5d75ec mock api testing 2026-02-25 08:03:28 -05:00