Commit log

1342923 fix(task): remove duplicate init in delete

Click to expand commit body
Assisted-by: Claude Sonnet 4 via Crush

Amolith created

1ee2888 refactor: let Cobra handle error display

Click to expand commit body
Remove redundant ui.Error calls outside cmd/init/. Errors are now
returned directly to Cobra for consistent display. ui.Success is still
used for explicit success confirmations.

Assisted-by: Claude Sonnet 4 via Crush

Amolith created

85fdc39 feat(task): implement delete command

Click to expand commit body
Prompts for confirmation using huh unless --force is specified. Returns
error to Cobra rather than printing custom error message.

Assisted-by: Claude Sonnet 4 via Crush

Amolith created

bc97d84 feat(task): implement show command

Click to expand commit body
Displays task metadata including status, area/goal (resolved to names
from config when available), scheduling dates, and attributes like
priority, estimate, progress, motivation, and eisenhower quadrant.

Adds AreaByID and GoalByID helpers to config package for name
resolution. Upgrades go-lunatask to v0.1.0-rc9 for Priority type
support.

Assisted-by: Claude Sonnet 4 via Crush

Amolith created

3201482 refactor(task): rename get to show for consistency

Click to expand commit body
Assisted-by: Claude Sonnet 4 via Crush

Amolith created

4f6020f fix(goal): show area in no-goals msg when default

Click to expand commit body
Assisted-by: Claude Sonnet 4 via Crush

Amolith created

7a481ba feat(goal): add list and show commands

Click to expand commit body
- list: table/JSON output, defaults to config's default area
- show: full details with ID, deeplink, task count
- Auto-detects area if goal key is unique, prompts for --area on
  collision

Assisted-by: Claude Opus 4.5 via Crush

Amolith created

cc25d60 feat(area): add list and show commands

Click to expand commit body
- list: table/JSON output with goal preview
- show: full details with ID, deeplink, goals, task counts

Uses H1/H2 headings for visual hierarchy.

Assisted-by: Claude Opus 4.5 via Crush

Amolith created

b4fdc57 feat(task): implement add command

Click to expand commit body
Supports all task metadata flags:
- area/goal (resolved from config keys)
- status, priority, estimate, motivation
- important/urgent (Eisenhower matrix)
- schedule date, note

Name and note support stdin via "-".

Assisted-by: Claude Opus 4.5 via Crush

Amolith created

351587d feat(stats): add TaskCounter for task counts

Click to expand commit body
Provides reusable helpers to count uncompleted tasks by area or goal ID
with lazy loading of task list.

Assisted-by: Claude Opus 4.5 via Crush

Amolith created

0bbb38b refactor(config): add goal lookup across areas

Click to expand commit body
Adds GoalMatch type and FindGoalsByKey helper for collision detection.
Also adds json tags to config structs for JSON output.

Assisted-by: Claude Opus 4.5 via Crush

Amolith created

44130c1 refactor(ui): replace Muted with H1/H2 headings

Click to expand commit body
Muted (gray foreground) was hard to read on some terminal themes. H1/H2
use background colors for reliable contrast regardless of theme.

Assisted-by: Claude Opus 4.5 via Crush

Amolith created

7aedbf9 chore(deps): bump go-lunatask to v0.1.0-rc8

Click to expand commit body
Assisted-by: Claude Opus 4.5 via Crush

Amolith created

21675bd refactor(ui): use lctime for date formatting

Click to expand commit body
Assisted-by: Claude Opus 4.5 via Crush

Amolith created

1370900 feat(task): use default area filter from config

Click to expand commit body
Assisted-by: Claude Opus 4.5 via Crush

Amolith created

f0a75b5 refactor(task): use lipgloss/table for list output

Click to expand commit body
Assisted-by: Claude Opus 4.5 via Crush

Amolith created

122d8b8 feat(task): implement list command

Click to expand commit body
- Default filter: incomplete tasks + completed today
- --all flag to show full history
- --area and --status filters
- JSON and table output
- Locale-aware date formatting via ui.FormatDate

Assisted-by: Claude Opus 4.5 via Crush

Amolith created

0ebf056 style: standardize command descriptions

Click to expand commit body
- 'Track a habit activity' -> 'Track a habit'
- 'Add a timeline note to a person' -> 'Add a timeline note'
- 'Verify your access token is valid' -> 'Verify access token'

Assisted-by: Claude Opus 4.5 via Amp

Amolith created

5c4286f chore: enable prealloc linter

Click to expand commit body
- Enable prealloc linter in golangci config
- Preallocate slice capacity in Goals completion function

Assisted-by: Claude Opus 4.5 via Amp

Amolith created

529d833 refactor(init): wizard UX improvements

Click to expand commit body
- Token validation uses errTokenRequired instead of errKeyRequired
- Access-token step offers 'Skip for now' on errors instead of
  discarding config
- Ctrl+C on save prompt shows clearer message
- Color summary shows 'auto' when config value is empty
- Extract printConfigSummary helper to reduce function length
- Add colorAuto constant to avoid magic string duplication

Assisted-by: Claude Opus 4.5 via Amp

Amolith created

579789e refactor: config permissions and done shortcut

Click to expand commit body
- Config file now written with 0o600 instead of 0o644
- done shortcut creates fresh command copy instead of mutating global
  state

Assisted-by: Claude Opus 4.5 via Amp

Amolith created

df1c4f4 refactor(init): deep links, nav, token rename

Click to expand commit body
- Add internal/deeplink package for parsing lunatask:// URLs
- Resource commands (task/note/person) now accept deep links or UUIDs
- Init wizard gains Back/Next navigation between steps
- Rename "API key" to "access token" throughout
- Remove LUNATASK_API_KEY env var fallback; keyring-only auth

Assisted-by: Claude Opus 4.5 via Crush

Amolith created

27edae9 refactor(cmd/init): extract to subpackage

Click to expand commit body
- Split monolithic init.go into focused files: areas, notebooks,
habits, defaults, apikey, ui
- Move API key configuration to last step with ping validation
- Add spinner feedback during API key verification
- Make keyring errors blocking instead of silent
- Add bounds checks on slice operations
- Handle ErrUserAborted consistently across all huh forms
- Change parseEditIndex to (int, bool) signature
- Add unit tests for validators

Assisted-by: Claude Opus 4.5 via Amp

Amolith created

4de9297 docs(agents): mention go-keyring and huh

Amolith created

5a9bab7 docs(agents): move E2E note to concepts section

Click to expand commit body
Assisted-by: Claude Opus 4.5 via Crush

Amolith created

08bd405 refactor: centralize completions and ui helpers

Click to expand commit body
- Move completion functions to internal/completion package
- Add Static() helper for inline static value completions
- Extract ui.Confirm() using charmbracelet/huh
- Implement done command via task.UpdateCmd delegation

Assisted-by: Claude Opus 4.5 via Crush

Amolith created

66874c8 docs(agents): add

Amolith created

75170db feat(cmd): add CLI command structure with stubs

Click to expand commit body
Implements the command hierarchy for lune CLI:
- task: add, list, get, update, delete
- note: add, list, get, update, delete
- person: add, list, get, update, delete, timeline
- journal: add
- habit: track
- Shortcuts: add, done, jrnl

Includes supporting infrastructure:
- internal/client: API client with version from build info
- internal/config: TOML config with ErrNotFound sentinel
- internal/validate: UUID validation for IDs
- internal/ui: lipgloss styles

All commands use RunE flag lookups for testability, dynamic shell
completions for config-based flags, and delete commands require --force
or confirmation.

Assisted-by: Claude Opus 4.5 via Crush

Amolith created

f306d8b chore(gitignore): add build artefact

Amolith created

aac2eca chore(gitignore): add

Amolith created

e48841b build(taskfile): add

Amolith created

e37ce02 build(tooling): add crush/golangci-lint configs

Amolith created