Releases: worksome/worksome-cli
Release list
v0.6.2
One bug fix, in the same family as v0.6.1: output that was wrong without saying so.
Compliance and approval state fields are no longer stripped
worksome hires get <id> returned a hire's compliances as catalogue entries with no indication of which applied or were already done — rows that read as outstanding requirements when the real answer was zero. And the same data was unreachable from the other direction:
$ worksome hires get <id> --fields id,compliances.completed
Error: unknown field "compliances.completed"Two commands, same data, opposite answers — compliance get <id> had been correct all along.
Nested objects are filtered through an allowlist of field names that are safe to request, which exists to avoid asking for access-controlled fields. The labels were on it; the state was not. Six field names have been added — actor, state, cancellationReason, applicable, completed, completedAt:
- compliances { name type title description }
+ compliances { actor name applicable completed completedAt type title description }
- approvalStates { id state createdAt }
+ approvalStates { id state cancellationReason createdAt }79 of the 198 generated queries changed. Four table columns that could not previously render now do: Compliances Actor, Approval States State, and — because the allowlist matches on field name rather than type — Address State and Location State, where "state" is a geographic region rather than a workflow one.
A note on what was deliberately not done
An earlier revision of this change took a broader rule: select every enum on nested objects, on the reasoning that access-controlled fields are sensitive booleans and strings, never enums. That was withdrawn.
GraphQL introspection does not return applied directives, so the vendored schema the CLI generates from carries none of the API's field-level authorization. A rule that selects by type is therefore permissive about a property the generator cannot see — and at least one field disproves the assumption. The narrower change touches 79 documents instead of 118 and grows the generated GraphQL by 2.2% rather than 19.4%.
Upgrade: brew upgrade --cask worksome
v0.6.1
Four bug fixes, all reported from real use. Every one of them failed quietly — a command that errored against the server, or output that was wrong without saying so.
worksome accounts get now works
It sent a bare accounts field with no subfield selection, which the server rejects. accounts returns an interface, and the generator only built selection sets for object types. Nested interface-typed fields (supplier, owner, employerOfRecord) had been silently omitted from every query for the same reason.
53 of the 198 generated queries changed: interface-typed fields now get a selection set, and interface results carry __typename — so a list of accounts tells you which of Company, Organisation, Partner, Recruiter or Worker each row is.
--fields no longer drops nested paths through lists
--fields id,owners.name came back with owners missing — no error, just absent. The query was correct and the server returned the data; the output filter threw it away because it only descended into maps, never lists.
Table columns that traverse a list now render
--output table left cells blank when the path continued into a list, which reads as "this record has none" rather than "the CLI could not follow that path".
53 columns rendered blank across the generated commands. 28 of them now carry data — their fields were interface-typed and had never been selected. The other 25 were generated for fields no query asks for and have been removed, so a column present in a table now means the data was actually requested. A regression test fails the build if the two ever drift apart again.
Input-object flags are sent as JSON
--order-by and the --*-date-range filters were registered as strings and sent verbatim, so the server rejected the type on every invocation. They now take JSON:
$ worksome hires list --start-date-range '{"start":"2026-07-01","end":"2026-07-31"}'
$ worksome hires list --order-by '[{"column":"CREATED_AT","order":"DESC"}]'A bad value fails locally with the type it needs, instead of a server-side type error:
$ worksome hires list --order-by '"nonsense"'
Error: --order-by expects a JSON object for [HiresOrderByClauseInput!], got "nonsense"--help now names the expected type on those flags.
Note on table output
Removing the 25 dead columns changes the shape of --output table for the commands that had them, and a few columns changed identity where a phantom was replaced by a field that is actually fetched (hires list shows Latest Contract Status where it showed an always-blank Latest Contract Job Name). Nothing that carried data was removed. If you are parsing output in a script, use --output json — column layout is presentation and will keep moving.
Upgrade: brew upgrade --cask worksome
v0.6.0
Changelog
- 84af81a Merge pull request #17 from worksome/dependabot/github_actions/actions/setup-go-7.0.0
- e77dc40 Merge pull request #18 from worksome/dependabot/go_modules/github.com/spf13/pflag-1.0.10
- 4e1318a Merge pull request #16 from worksome/dependabot/go_modules/golang.org/x/term-0.45.0
- 95b06b4 chore: bump github.com/spf13/pflag from 1.0.9 to 1.0.10
- 59fcf45 chore: bump actions/setup-go from 5.6.0 to 7.0.0
- 54ee7f3 chore: bump golang.org/x/term from 0.41.0 to 0.45.0
- fd78c05 Merge pull request #15 from worksome/dependabot/go_modules/github.com/vektah/gqlparser/v2-2.5.36
- ccfbed0 Merge pull request #14 from worksome/dependabot/github_actions/actions/checkout-7.0.1
- 601203b Merge pull request #13 from worksome/dependabot/github_actions/goreleaser/goreleaser-action-7.2.3
- 57e95a1 Merge pull request #12 from worksome/dependabot/github_actions/golangci/golangci-lint-action-9.3.0
- 3f874eb chore: bump github.com/vektah/gqlparser/v2 from 2.5.32 to 2.5.36
- 34e4f08 chore: bump actions/checkout from 4.4.0 to 7.0.1
- 3d24969 chore: bump goreleaser/goreleaser-action from 6.4.0 to 7.2.3
- f101067 chore: bump golangci/golangci-lint-action from 8.0.0 to 9.3.0
- 895d71b Merge pull request #11 from worksome/docs/community-health
- 5466405 fix: address PR review feedback
- aeb6393 docs: add security policy and contributing guide, pin actions
v0.5.0
Changelog
- 97d8ac8 Merge pull request #10 from worksome/feat/update-check
- 7a9004d fix: address PR review feedback (round 2)
- 40b0cb7 fix: address PR review feedback
- a284193 Merge pull request #9 from worksome/fix/fields-narrows-selection-set
- f1953c3 feat: check for new releases
- 26945f2 fix: address PR review feedback
- b1a2f07 fix: cap the field list in unknown-field errors
- 29dd7e0 fix: make --fields narrow the GraphQL selection set
v0.4.1
v0.4.0
v0.3.0
Changelog
- f9f8879 Merge pull request #6 from worksome/fix/partial-graphql-responses
- 4bda30f docs: clarify how a failed field appears in partial responses
- 48f3d9c fix: check fmt.Fprint return value in partial-response warning
- 481d740 fix: keep data from partial GraphQL responses
- dad425a Merge pull request #5 from worksome/fix/linux-container-support
- 3f054a2 fix: address PR review feedback
- 82d7543 fix: work in containers without a writable HOME
- 4b0b592 Merge pull request #4 from worksome/docs/install-trust-step
- fb4c053 docs: document the brew trust step required to install the cask
v0.2.0
Changelog
- b35fa45 Merge pull request #1 from worksome/chore/publish-homebrew-cask
- 270a178 docs: the cask publishes on release now that the repo is public
- abf23dc chore: publish the homebrew cask on release
- 04a639e Merge pull request #2 from worksome/docs/readme-domain-context
- 4116317 Potential fix for pull request finding
- 6c9d205 Merge pull request #3 from worksome/chore/public-hardening
- c9699f6 chore: harden CI permissions and clear the x/sys advisory
- eff1be9 docs: explain what Worksome is and add agent-facing guidance
- 450d60d Merge pull request #3 from worksome/chore/prepare-public-release
- 3341f7d fix: address PR review feedback
- 2815cfa chore: prepare repo for public release