Skip to content

Releases

Release 2.8.1

Choose a tag to compare

@github-actions github-actions released this 14 Nov 02:38
3349b55

Release the CLI as 2.8.1, with the Grok Build line from #445 and the new repository name from #439 (#457)

Release 2.8.0

Choose a tag to compare

@github-actions github-actions released this 13 Nov 22:38
4241168

Release the CLI as 2.8.0, with allthings propose from #443 (#450)

Release 2.7.0

Choose a tag to compare

@github-actions github-actions released this 13 Nov 20:32
2868675

Release the CLI as 2.7.0, with allthings coach from #421 (#424)

Release 2.6.0

Choose a tag to compare

@github-actions github-actions released this 13 Nov 19:31
7bdce5a

Release the CLI as 2.6.0, with allthings guide from #411 (#415)

Release 2.5.0

Choose a tag to compare

@github-actions github-actions released this 13 Nov 18:33
cab4b9b

Release the CLI as 2.5.0, with allthings open from #397 (#404)

Release 2.4.0

Choose a tag to compare

@github-actions github-actions released this 13 Nov 08:07
de6b584

Release the CLI as 2.4.0, suggesting what a typo meant, from #393 (#396)

Release 2.3.0

Choose a tag to compare

@github-actions github-actions released this 13 Nov 07:39
dfefb45

Release the CLI as 2.3.0, with allthings mcp from #391 (#392)

Release 2.2.0

Choose a tag to compare

@github-actions github-actions released this 13 Nov 04:44
dbe5c8c

Release the CLI as 2.2.0, where a bare allthings shows the next evening and next and latest stand for an evening, from #389 (#390)

Release 2.1.1

Choose a tag to compare

@github-actions github-actions released this 12 Nov 17:44
718fce1

Release the CLI as 2.1.1, naming allthings-sf as its repository from #387 and installed from allthings.dev from #385 (#388)

Release 2.1.0

Choose a tag to compare

@github-actions github-actions released this 09 Nov 07:22
ce408c5

Let guests set the room's lights with allthings aux, through the aux hub's MCP endpoint and the code on their card, and release the CLI as 2.1.0 (#366)

  • Let guests set the room's lights with allthings aux, through the aux hub's MCP endpoint and the code on their card, and release the CLI as 2.1.0

[Agent: Claude Code | Model: Opus 5.5 | Thinking: Extra High | Acting on behalf of: Erik | Skill: none]

allthings aux talks to the aux hub (https://aux.allthings.dev/mcp, or
ALLTHINGS_AUX_URL) over the same stateless MCP JSON-RPC the CLI already
speaks, with the guest's code as a bearer token: status, scenes, scene,
color [--zone], request, pass, and tracks, queue and skip once tools/list
shows music is on. login saves the code in ALLTHINGS_HOME (~/.allthings)
as aux-code, mode 0600; ALLTHINGS_AUX_CODE wins over it. The code is
masked in everything the CLI prints.

Each of the hub's error codes gets its own message, rate_limited and an
HTTP 429 with the seconds to wait. Unknown scenes and colors exit 2; other
refusals exit 1.

  • Check the aux hub's address before sending a guest's code: https, or http only to a hub on this machine

[Agent: Claude Code | Model: Opus 5.5 | Thinking: Extra High | Acting on behalf of: Erik | Skill: none]

CodeRabbit asked that the bearer code never go to a plain-HTTP remote host. createAuxClient now checks the endpoint first and refuses anything but https or http to a loopback host with a usage error naming ALLTHINGS_AUX_URL, and a blank ALLTHINGS_AUX_URL falls back to the default. Tests cover refused endpoints making no request, accepted loopback and https endpoints, and the blank variable.

  • Accept only real loopback hosts for a plain-http aux hub, so a name like 127.evil.com is refused

[Agent: Claude Code | Model: Opus 5.5 | Thinking: Extra High | Acting on behalf of: Erik | Skill: none]

CodeRabbit found that the loopback check accepted any hostname starting with "127.". isLoopbackHost now accepts localhost, ::1 and 127.0.0.0/8 dotted quads only, and the refused-endpoint test adds 127.evil.com and 127.0.0.1.evil.com.

  • Mask a guest's code inside --json's values, so the output stays valid JSON whatever the code is

[Agent: Claude Code | Model: Opus 5.5 | Thinking: Extra High | Acting on behalf of: Erik | Skill: none]

Review 5822163750 (outside the diff): masking replaced the code in the serialized JSON, so a code such as "true" turned the saved flag into a string and broke the JSON. --json now masks the data's string values before serializing; text output is masked as before. A test logs in with codes that match a JSON word, a key and the file name, and parses the output.

  • Save the aux code under ~/.allthings when ALLTHINGS_HOME is blank, not in the working directory

[Agent: Claude Code | Model: Opus 5.5 | Thinking: Extra High | Acting on behalf of: Erik | Skill: none]

Review 5822288101: a blank or whitespace-only ALLTHINGS_HOME made auxCodePath resolve aux-code relative to the current directory. It now counts as unset, like ALLTHINGS_AUX_URL, and falls back to ~/.allthings; a test covers unset, blank, whitespace and a set path.

  • Refuse --zone on every command but aux color, instead of ignoring it

[Agent: Claude Code | Model: Opus 5.5 | Thinking: Extra High | Acting on behalf of: Erik | Skill: none]

Review 5822478429: --zone was silently ignored outside aux color. runAux now refuses it first, before login saves anything, and run refuses it for the non-aux commands, each with exit code 2 and the existing usage message. Tests cover aux status, scene and request, login (which saves nothing), events and about.