Commit log

d72d8c0 docs(prompt): make np optional

Amolith created

1c51538 feat(cmd/t): prompt for archival on completion

Click to expand commit body
Co-authored-by: Crush <crush@charm.land>

Amolith and Crush created

6d6ca4b docs(installation): add

Amolith created

38988c6 feat(cmd/a): make archive idempotent

Click to expand commit body
Co-authored-by: Crush <crush@charm.land>

Amolith and Crush created

408543b feat(internal/session): add LatestArchivedByPath

Click to expand commit body
Co-authored-by: Crush <crush@charm.land>

Amolith and Crush created

cfc072e fix(internal/db): fix reverse prefix iteration

Click to expand commit body
Co-authored-by: Crush <crush@charm.land>

Amolith and Crush created

7481464 feat(cmd/r): implement session resumption

Click to expand commit body
Co-Authored-By: Crush <crush@charm.land>

Amolith and Crush created

cff54d7 refactor: remove init functions from command files

Click to expand commit body
Co-authored-by: Crush <crush@charm.land>

Amolith and Crush created

72896b1 docs(typo): correkshun

Amolith created

d66c8a5 feat(cmd/p): implement print plan command

Click to expand commit body
Co-authored-by: Crush <crush@charm.land>

Amolith and Crush created

d463be7 feat(cmd/a): implement archive session command

Click to expand commit body
Co-authored-by: Crush <crush@charm.land>

Amolith and Crush created

5d89ca6 feat(cmd/t): implement task commands

Click to expand commit body
Task commands form a cohesive feature set for managing session tasks.

- t: list tasks with optional status filter
- t a: add multiple tasks (validates title/description pairs)
- t u: update task status, title, or description (requires reason for
  content changes and cancel/fail)
- All commands print plan and provide contextual next steps

Co-authored-by: Crush <crush@charm.land>

Amolith and Crush created

0c1bd58 feat(cmd/g): implement goal commands

Click to expand commit body
Goal commands form a cohesive feature set for managing session goals.

- g: show goal with full plan
- g s: set goal (requires title and description)
- g u: update goal (requires reason and at least one change)
- All commands print plan and provide contextual next steps

Co-authored-by: Crush <crush@charm.land>

Amolith and Crush created

4a18082 feat(cmd/s): implement session start

Click to expand commit body
Start command is the entry point for creating directory-scoped sessions.

- Replace stub with full implementation
- Handle AlreadyActiveError with helpful message
- Print next steps after session creation

Co-authored-by: Crush <crush@charm.land>

Amolith and Crush created

20f725f feat(cmd): wire root command lifecycle

Click to expand commit body
Root command bootstraps environment for all subcommands.

- Add PersistentPreRunE to open environment
- Add PersistentPostRunE to close environment
- Register all top-level commands
- Set SilenceUsage to avoid double error output

Co-authored-by: Crush <crush@charm.land>

Amolith and Crush created

f5283dc feat(cli): add shared infrastructure

Click to expand commit body
All CLI commands need shared foundation for environment management, plan
rendering, and common helpers.

- Add Environment with DB and store wrappers
- Add plan rendering with status icons
- Add shared command helpers (Environment, ActiveSession, PrintPlan,
  CommandString)
- Add db_test.go for database tests

Co-authored-by: Crush <crush@charm.land>

Amolith and Crush created

50a7d5c feat(session): add transaction support

Click to expand commit body
Session store now exposes transactional helpers for CLI commands to
coordinate updates across goal/task/event stores atomically.

- Add WithTxn() to create TxnStore
- Add TxnStore with Load() and TouchAt() methods
- Refactor internal loadDocument() helper for reuse
- Add TestTxnStoreTouchAt

Co-authored-by: Crush <crush@charm.land>

Amolith and Crush created

35c9633 chore(build): add install task to justfile

Click to expand commit body
Co-authored-by: Crush <crush@charm.land>

Amolith and Crush created

4241039 feat(session): add session lifecycle management

Click to expand commit body
Implements Store with Start, Get, Archive, and ActiveByPath operations.
Sessions use ULID-based identifiers and track state transitions between
active and archived.

Co-authored-by: Crush <crush@charm.land>

Amolith and Crush created

7ea0c8b docs(agents): update

Amolith created

4169dca chore(licensing): remove placeholder header

Amolith created

80f2431 feat(core): add data layer for sessions

Click to expand commit body
Introduces event, goal, and task storage subsystems built on Badger:

- event: append-only log with typed payloads for state changes
- goal: CRUD operations for session goals with event tracking
- task: full lifecycle management with status indexing
- testutil: helpers for deterministic test clocks and databases
- timeutil: clock abstraction for testability

All packages include comprehensive test coverage.

Co-authored-by: Crush <crush@charm.land>

Amolith and Crush created

cec0cca build: correct bin name

Amolith created

59b1849 fix(db): fix View txn and improve defaults

Click to expand commit body
Fix View transaction to return nil on success instead of ctx.Err(),
which
caused spurious failures when a context deadline was set but the
operation
completed successfully before expiration.

Improve configuration defaults for CLI durability:
- Default SyncWrites to true to ensure planning state persists across
  crashes
- Use os.UserConfigDir() instead of custom platform logic for better
cross-platform config directory handling

Code cleanup:
- Remove redundant txn.Discard() after successful commit
- Rename suffixTasks to suffixTask for singular/plural consistency
- Fix KeyString doc to correctly state it allocates
- Remove unused ctx assignment in View

Signed-off-by: Crush <crush@charm.land>

Amolith created

7c0c9d0 fix(db): clean up db helpers

Click to expand commit body
Refine the Badger helpers.

Signed-off-by: Crush <crush@charm.land>

Amolith created

60d9c06 docs(schema): refine event payloads and keys

Click to expand commit body
Co-authored-by: Crush <crush@charm.land>

Amolith and Crush created

da6c09e docs: add pronounciation

Amolith created

176a9fa docs(schema): noodle about a schema

Click to expand commit body
Had a combo of Claude Code/Sonnet 4.5 and Amp/GPT-5 (Oracle) write one
schema each, then used CC and Crush/GPT-5 (high) to polish up CC's
version. Then I presented both schemas to CC and Crush/GPT-5 and asked
which they prefer. Both suggested copying some choice ideas from CC's
schema, but instead adopting Amp's schema overall.

Co-authored-by: Crush <crush@charm.land>

Amolith and Crush created

1c6203b chore: ignore binary

Amolith created

6102955 chore(agents): replace sqlite with badger

Amolith created

8e97b92 docs(badges): update repo path

Amolith created

91b2921 feat(cmd): scaffold the CLI

Click to expand commit body
Co-authored-by: Crush <crush@charm.land>

Amolith and Crush created

f5dc764 docs: mention m subcommand

Amolith created

8696e59 docs: add db detail

Amolith created

659f8cb chore: add licensing

Amolith created

6d02c7b docs: remove rumdl

Click to expand commit body
A bit too buggy to use yet

Amolith created

4bb8a7d docs: set expectations for interactivity

Amolith created

750e925 docs: elaborate on toki pona

Amolith created

0a6d6da docs: elaborate on resumption

Amolith created

15b8ad9 docs: repair heading link

Amolith created

c9927be docs: typo

Amolith created

5d8c2fc docs: elaboraaaaaaaaaa-shun!

Amolith created

7074116 docs: flesh out a bit more

Amolith created

d6ebba2 docs: typo

Amolith created

8924ed9 docs: fix startup desc

Amolith created

82b37a7 docs: fix typo

Amolith created

1843ed0 docs: mention status updates

Amolith created

f89ac43 docs: mention how updates work

Amolith created

386c7db docs: mention why CLI over MCP

Amolith created

5082fee docs: moar elaboration

Amolith created