v0.1.0-rc9.3 Added enum helpers and status mapping
✨ Features
- [enum]: added All*() enumeration functions for core types
- [enum]: mapped "in-progress" status to API "started" format
📚 Documentation
- added license information for go.sum
-----BEGIN SSH SIGNATURE-----
U1NIU0lHAAAAAQAAAEoAAAAac2stc3NoLWVkMjU1MTlAb3BlbnNzaC5jb20AAAAgFhbSln
9jcsTCiLgfQNQnfLwx6HkJonoGDwu1P2eRk9EAAAAEc3NoOgAAAANnaXQAAAAAAAAABnNo
YTUxMgAAAGcAAAAac2stc3NoLWVkMjU1MTlAb3BlbnNzaC5jb20AAABAfQCx7sJf0xRpFE
doki1+YUoh5kSliDCP1+6U0cDSG3XUJhD7NswPoUCzz6UC8dZWwljoqIrUYLCk2IuHzh2K
BQEAAEeW
-----END SSH SIGNATURE-----
v0.1.0-rc10 Better parsing
✨ Features
- deeplink: Add UUID validation and helpers. Validate UUIDs in both parse
and build operations with `Resource.Valid()` and `Resource.String()`.
- eisenhower: Add `ParseEisenhower` function to parse "do-now",
"delegate", or numeric "0"-"4" to Eisenhower quadrants. Includes
`ErrInvalidEisenhower`.
- Add `String()` methods to enum types `Motivation`, `TaskStatus`, and
`RelationshipStrength` for consistency.
- relationship: Add `ParseRelationshipStrength` with case-insensitive
parsing for all 7 values.
- deeplink: Add `ParseDeepLink`/`BuildDeepLink` functions. Introduce
`Resource` type with 6 constants and allow parsing of
`lunatask://resource/uuid` or plain UUID.
- motivation: Add `ParseMotivation` function for case-insensitive parsing
of unknown/must/should/want values.
- status: Add `ParseTaskStatus` function for case-insensitive parsing of
task status strings. Matches `ParsePriority` pattern.
♻️ Code Refactoring
- Move enum types `Motivation`, `TaskStatus`, `RelationshipStrength` and
their constants from `types.go` to dedicated files. `types.go` now
contains only `Source` and `Date`.
- status: Rename 'Started' to 'InProgress' to match Lunatask UI. Wire
format remains "started" but also accepts "in-progress" as input.
- eisenhower: Extract `Eisenhower` type, constants, and methods from
`types.go` to `eisenhower.go`. Add `String()` method for human-readable
quadrant descriptions.
-----BEGIN SSH SIGNATURE-----
U1NIU0lHAAAAAQAAAEoAAAAac2stc3NoLWVkMjU1MTlAb3BlbnNzaC5jb20AAAAgFhbSln
9jcsTCiLgfQNQnfLwx6HkJonoGDwu1P2eRk9EAAAAEc3NoOgAAAANnaXQAAAAAAAAABnNo
YTUxMgAAAGcAAAAac2stc3NoLWVkMjU1MTlAb3BlbnNzaC5jb20AAABA9mPIxI8KqrU6NM
faTewoAX6nIj4LF2l3uBVQl7U+L+/qwXKzimvBvgPpaxRdT/EiLfWfor18xfjO738jF1M0
CwEAAEOy
-----END SSH SIGNATURE-----
v0.1.0-rc8 Improve Eisenhower, support update person
✨ Features
- tasks: Introduce Eisenhower semantic builder API
Replaces raw int Eisenhower values with typed Eisenhower constants
and adds intuitive builder methods (.Important(), .Urgent(),
.NotImportant(), .NotUrgent()) that compute the correct quadrant at
create/update time. Consumers can now use:
client.NewTask("x").Important().Urgent().Create(ctx) // DoNow
client.NewTask("x").Important().Create(ctx) // DoLater
Reading tasks also benefits from helper methods:
task.Eisenhower.IsImportant()
task.Eisenhower.IsUrgent()
- people: Add update person endpoint
🧪 Tests
- integration: Add live API validation tests Adds build-tagged
integration tests that run against the live Lunatask API. Requires
LUNATASK_API_KEY and LUNATASK_TEST_AREA environment variables. Tests
cover ping, list operations, and full create/read/update/delete
round-trips for tasks and notes. Also excludes dupl and goconst
linters from test files and updates coverage badge.
-----BEGIN SSH SIGNATURE-----
U1NIU0lHAAAAAQAAAEoAAAAac2stc3NoLWVkMjU1MTlAb3BlbnNzaC5jb20AAAAgFhbSln
9jcsTCiLgfQNQnfLwx6HkJonoGDwu1P2eRk9EAAAAEc3NoOgAAAANnaXQAAAAAAAAABnNo
YTUxMgAAAGcAAAAac2stc3NoLWVkMjU1MTlAb3BlbnNzaC5jb20AAABAIlVRPbbArAVKr+
AHNqQ7pB7fQ/BX5s97Bv2l4n1JLZxSjOjc44r2eW9KxCQEG87nT6ZmVtu0HhtZ+mxce1tZ
AAEAAEKF
-----END SSH SIGNATURE-----
v0.1.0-rc7 Client builder API updated
⚠️ BREAKING CHANGES
- client: Builders are now created via client.NewX() instead
of lunatask.NewX(). Create/Update methods no longer require
a client parameter directly.
Migration:
Before: lunatask.NewTask("x").Create(ctx, client)
After: client.NewTask("x").Create(ctx)
♻️ Code Refactoring
- (client): Moved builders to Client methods for better client
ownership and API ergonomics.
🔧 Build System
- chore: Removed exhaustruct linter.
-----BEGIN SSH SIGNATURE-----
U1NIU0lHAAAAAQAAAEoAAAAac2stc3NoLWVkMjU1MTlAb3BlbnNzaC5jb20AAAAgFhbSln
9jcsTCiLgfQNQnfLwx6HkJonoGDwu1P2eRk9EAAAAEc3NoOgAAAANnaXQAAAAAAAAABnNo
YTUxMgAAAGcAAAAac2stc3NoLWVkMjU1MTlAb3BlbnNzaC5jb20AAABAvCJxMnMXVtaN9D
vkuQV+IN/y9R4StZPbcutW1SsgefovQwIua3klM5A/V13GyMGPRmn8Y19lXzFhauFqDl/J
DAEAAD/9
-----END SSH SIGNATURE-----
v0.1.0-rc6 Refactor implementation
API should be mostly the same
-----BEGIN SSH SIGNATURE-----
U1NIU0lHAAAAAQAAAEoAAAAac2stc3NoLWVkMjU1MTlAb3BlbnNzaC5jb20AAAAgFhbSln
9jcsTCiLgfQNQnfLwx6HkJonoGDwu1P2eRk9EAAAAEc3NoOgAAAANnaXQAAAAAAAAABnNo
YTUxMgAAAGcAAAAac2stc3NoLWVkMjU1MTlAb3BlbnNzaC5jb20AAABA2NzwiHwjD5NAAm
lAzbY71Xp9N1eA4AOL5AUMEqvcovniMOCwDVvchQcLE65RhuobK9jMdES7bdFmy+sDwy48
AgEAAD/i
-----END SSH SIGNATURE-----
v0.1.0-rc5 Add TaskStatus and Motivation types
✨ Features
- tasks: Add new types for TaskStatus and Motivation. Replaced raw
strings with typed constants
📚 Documentation
- Fix PersonBuilder example to use RelationshipCloseFriend constant
- Add godoc links for RelationshipCloseFriend, ErrUnauthorized
-----BEGIN SSH SIGNATURE-----
U1NIU0lHAAAAAQAAAEoAAAAac2stc3NoLWVkMjU1MTlAb3BlbnNzaC5jb20AAAAgzEkAhr
f0dc6ZiSJXHc/mDhl7rRRGcNCSuENi7R/pfKkAAAAEc3NoOgAAAANnaXQAAAAAAAAABnNo
YTUxMgAAAGcAAAAac2stc3NoLWVkMjU1MTlAb3BlbnNzaC5jb20AAABAm+L3quq1AEQf71
UqkNXaQEwFSZEeGxGeERxR5/0sH1KAbDSQy5j+aU3lyQWThk7hZqwy866HEzSscC8xsOr2
BwEAAKy3
-----END SSH SIGNATURE-----
v0.1.0-rc4 Just README changes
Tag is to push an update to pkg.go.dev and godocs.io
-----BEGIN SSH SIGNATURE-----
U1NIU0lHAAAAAQAAAEoAAAAac2stc3NoLWVkMjU1MTlAb3BlbnNzaC5jb20AAAAgFhbSln
9jcsTCiLgfQNQnfLwx6HkJonoGDwu1P2eRk9EAAAAEc3NoOgAAAANnaXQAAAAAAAAABnNo
YTUxMgAAAGcAAAAac2stc3NoLWVkMjU1MTlAb3BlbnNzaC5jb20AAABAFmKe9sBSQZL4ii
9YRI4MhqteW55q+xl/fs1StOuTaJTgnztzwnzwquOB5I62IGEVn2xEI9DNihKpKBj6hTco
AwEAAD+J
-----END SSH SIGNATURE-----