b68040c
feat(translation): add
Amolith created
b68040c
feat(translation): add
Amolith created
740fb56
feat(i18n): introduce internationalization support
Add i18n system with localization support: - New `internal/i18n/localizer.go` with TOML-based locale management (en, tok) - New `internal/config/config.go` with locale preference storage - Refactored all commands to use i18n strings instead of hardcoded text - Updated CLI environment and plan generation for i18n - Added comprehensive tests for config and localization Co-authored-by: Crush <crush@charm.land>
Amolith and Crush created
a302fa1
feat(agents): in-repo np interaction instructions
Tell the agents how to interact with `np` when they're in this repo. I've noticed they try to test dev changes with the installed version and update their normal lists with the dev version. Hopefully this helps resolve that.
Amolith created
6509e9e
refactor(cmd/t/u): omit goal/desc from output
Co-authored-by: Crush <crush@charm.land>
Amolith and Crush created
0e3e8f4
docs(cmd/r): update for new s instructions, polish
Co-authored-by: Crush <crush@charm.land>
Amolith and Crush created
bc8b404
docs(cmd): improve agent prompts
Refined guidance messages across session workflow commands: - np s: expanded with detailed goal-setting instructions including title length limits, description requirements, reference formatting, and task management examples with multi-line syntax - np g s: condensed to single actionable message focusing on study then task planning - np g u: simplified to one line about task alignment - np r: added task creation examples with multi-line description syntax Changes make prompts more prescriptive where needed (session start) and more concise where appropriate (goal commands). Co-authored-by: Crush <crush@charm.land>
Amolith and Crush created
875258d
refactor(cmd/t/u): simplify completion messages
Remove redundant else branches and duplicate instructions when all tasks are complete. The completion message now only advises escalating to operator without repeating usage patterns already shown elsewhere. Co-authored-by: Crush <crush@charm.land>
Amolith and Crush created
a600f5a
docs(cmd/s): add examples to np s error output
Co-authored-by: Crush <crush@charm.land>
Amolith and Crush created
a6f433e
fix(cmd/t): show only tasks without goal header
Implements: 87aeb06 Co-authored-by: Crush <crush@charm.land>
Amolith and Crush created
78a9210
refactor(cmd): clarify batch operation output
- Show full plan only when multiple tasks added; print 'Added' for single task - Recommend batch mode first in goal set help text - Add guidance to check task list after sequential adds Co-authored-by: Crush <crush@charm.land> Implements: bug-8461b50
Amolith and Crush created
65355ec
build(version): use extended tag when appropriate
Amolith created
9ff4395
docs: document batch task operations
Updated README.md and AGENTS.md to document the new batch task capabilities: - Task addition: np t a -t 'one' -d 'desc' -t 'two' -d 'desc' - Status updates: np t u -i id1 -s status1 -i id2 -s status2 Clarified both single and batch patterns in workflow descriptions. Co-authored-by: Crush <crush@charm.land>
Amolith and Crush created
4e03f31
feat(cmd/t): support batch status updates
Modified cmd/t/u.go to accept StringArray for -i (id) and -s (status)
flags,
enabling batch status updates like:
np t u -i abc123 -s completed -i def456 -s in_progress
This reduces context window usage by printing the plan once instead of
multiple times when updating several tasks.
Updated all help text across cmd/{s,r,g/s,g/u,t/a,t/u}.go to show:
- Multi-task addition examples with multi-line descriptions
- Batch status update patterns (especially completed + in_progress)
- Both single and batch operation examples side-by-side
The implementation validates ID/status count matching, processes updates
in a single transaction, and provides appropriate feedback messages for
both single-task and batch operations.
Co-authored-by: Crush <crush@charm.land>
References: bug-b529dcf
Amolith and Crush created
2eb8292
fix(cmd): remove errant newline in plan output
RenderPlan already returns string with trailing newline. Changed Fprintln to Fprint in PrintPlan and runListTasks. Implements: bug-ae16af8 Co-authored-by: Crush <crush@charm.land>
Amolith and Crush created
4fb3d59
fix(db): move badger database into subdirectory
The database directory ~/.config/nasin-pali now contains the badger database at ~/.config/nasin-pali/data/ instead of being the database itself. This provides cleaner separation and allows for potential future configuration files in the parent directory. Implements: bug-4b90e13 Co-authored-by: Crush <crush@charm.land>
Amolith and Crush created
6bd3b20
docs(prompt): fix typo
Amolith created
b986545
docs: polish
Amolith created
403ee3a
docs(installation): improve wording
Amolith created
550282e
docs: reorganise so it's a bit clearer
Amolith created
6c3773b
docs(usage): add
Amolith created
45ceda1
docs(installation): specify where to put prompt
Amolith created
2e0bae9
docs(typo): fix
Amolith created
99777b6
fix(cmd): ignore fmt errors in output
Co-authored-by: Crush <crush@charm.land>
Amolith and Crush created
f61b9d3
chore: fumpt
Amolith created
d6716df
build: migrate to taskfile
Co-authored-by: Crush <crush@charm.land>
Amolith and Crush 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