Skip to content

v0.6.1

Choose a tag to compare

@github-actions github-actions released this 30 Aug 08:16
· 5 commits to main since this release
d53d2f1

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