ab6ef3b
chore: remove exhaustruct linter
Click to expand commit body
Assisted-by: Claude Sonnet 4 via Crush
Amolith created
ab6ef3b
chore: remove exhaustruct linter
Assisted-by: Claude Sonnet 4 via Crush
Amolith created
ae0941f
refactor(client): move builders to Client methods
Builders are now created via client.NewX() instead of lunatask.NewX(),
and Create/Update methods no longer require a client parameter.
Before: lunatask.NewTask("x").Create(ctx, client) After:
client.NewTask("x").Create(ctx)
Assisted-by: Claude Sonnet 4 via Crush
Amolith created
780cc03
docs: add coverage badge and update task
Add coverage badge to README and task to update it automatically. Assisted-by: Claude Opus 4.5 via Crush
Amolith created
47bac30
test: add comprehensive API endpoint tests
Cover all major client methods with unit tests: - helpers_test.go: shared mock servers and assertions - Individual test files for habits, journal, notes, people, ping, tasks, timeline Include two small fixes discovered during testing: - Remove client-side name validation for tasks (API says it's optional, if impractical) - Use value receiver for Date.MarshalJSON to support non-pointer dates Assisted-by: Claude Opus 4.5 via Crush
Amolith created
c81f221
refactor(client): drop With prefix from options
Functional options now use plain names (HTTPClient, BaseURL, UserAgent) to distinguish them from builder pattern methods (WithNote, WithStatus). Updated package docs and README with UserAgent example. Assisted-by: Claude Opus 4.5 via Crush
Amolith created
69026b1
feat(client): add dynamic version and UA option
Version is now determined at runtime via debug.ReadBuildInfo() instead of being hardcoded. WithUserAgent option allows consumers to set a custom User-Agent prefix; the library identifier is always appended. Assisted-by: Claude Opus 4.5 via Crush
Amolith created
a1ba550
fix(journal): validate date_on is required
Assisted-by: Claude Opus 4.5 via Crush
Amolith created
6c35add
refactor(people): require name in NewPerson
Assisted-by: Claude Opus 4.5 via Crush
Amolith created
309d7c6
feat(notes): add Pinned field to Note struct
Assisted-by: Claude Opus 4.5 via Crush
Amolith created
18f4b49
feat(types): add MotivationUnknown, doc defaults
Add MotivationUnknown constant for clearing/unsetting motivation. Document default values for StatusLater, RelationshipCasualFriend, and MotivationUnknown. Clarify Eisenhower quadrant meanings and task duplicate detection constraints. Assisted-by: Claude Opus 4.5 via Crush
Amolith created
a50e896
chore(lint): add varnamelen ignore rules
Assisted-by: Claude Opus 4.5 via Crush
Amolith created
c5d2d01
refactor: use direct Create/Update on builders
- Add generic CRUD helpers in crud.go to reduce duplication - Move builders from builders.go into their respective domain files - Builders now call Create/Update directly instead of returning request structs - Make request types unexported (createTaskRequest, etc.) - Update examples in README and AGENTS.md Assisted-by: Claude Sonnet 4 via Crush
Amolith created
4a6f76b
docs: fix examples and add doc links
- Fix PersonBuilder example to use RelationshipCloseFriend constant - Add godoc links for RelationshipCloseFriend, ErrUnauthorized Assisted-by: Claude Sonnet 4 via Crush
Amolith created
8bc2980
feat(tasks): add TaskStatus and Motivation types
Replace raw strings with typed constants for better discoverability and compile-time safety. - TaskStatus: StatusLater, StatusNext, StatusStarted, StatusWaiting, StatusCompleted - Motivation: MotivationMust, MotivationShould, MotivationWant Assisted-by: Claude Sonnet 4 via Crush
Amolith created
2bfbde0
docs(readme): point to module docs
Amolith created
81835f7
docs(badges): add pkg.do.dev alongside godocs.io
Amolith created
00ce7e1
fix: use real LICENSE file, not symlink
Go module zips strip symlinks entirely. Assisted-by: Kimi K2 Thinking via Crush
Amolith created
15c63ed
chore: add LICENSE symlink for pkg.go.dev
Assisted-by: Kimi K2 Thinking via Crush
Amolith created
152fc32
feat(people): typed enums, custom field support
- Add RelationshipStrength type with constants for valid values - Add CustomFields map for arbitrary fields (email, birthday, phone, etc.) - Custom MarshalJSON flattens CustomFields to top-level JSON - Add WithCustomField builder method Assisted-by: Claude Opus 4.5 via Crush
Amolith created
f4ceb65
docs(client): fix access token instructions
Assisted-by: Claude Opus 4.5 via Crush
Amolith created
2300d24
docs(readme): add
Amolith created
ed05579
extract from lunatask-mcp-server, polish
Amolith created