d72d8c0
docs(prompt): make np optional
Amolith created
d72d8c0
docs(prompt): make np optional
Amolith created
1c51538
feat(cmd/t): prompt for archival on completion
Co-authored-by: Crush <crush@charm.land>
Amolith and Crush created
6d6ca4b
docs(installation): add
Amolith created
38988c6
feat(cmd/a): make archive idempotent
Co-authored-by: Crush <crush@charm.land>
Amolith and Crush created
408543b
feat(internal/session): add LatestArchivedByPath
Co-authored-by: Crush <crush@charm.land>
Amolith and Crush created
cfc072e
fix(internal/db): fix reverse prefix iteration
Co-authored-by: Crush <crush@charm.land>
Amolith and Crush created
7481464
feat(cmd/r): implement session resumption
Co-Authored-By: Crush <crush@charm.land>
Amolith and Crush created
cff54d7
refactor: remove init functions from command files
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
Co-authored-by: Crush <crush@charm.land>
Amolith and Crush created
d463be7
feat(cmd/a): implement archive session command
Co-authored-by: Crush <crush@charm.land>
Amolith and Crush created
5d89ca6
feat(cmd/t): implement task commands
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
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
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
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
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
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
Co-authored-by: Crush <crush@charm.land>
Amolith and Crush created
4241039
feat(session): add session lifecycle management
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
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
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
Refine the Badger helpers. Signed-off-by: Crush <crush@charm.land>
Amolith created
60d9c06
docs(schema): refine event payloads and keys
Co-authored-by: Crush <crush@charm.land>
Amolith and Crush created
da6c09e
docs: add pronounciation
Amolith created
176a9fa
docs(schema): noodle about a schema
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
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
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