Skip to content

SideCrab 0.27.0 - panel approvals are safe to turn on

Choose a tag to compare

@Dixie-sketch Dixie-sketch released this 02 Sep 02:43
· 9 commits to main since this release

Widget 0.27.0 (SideCrab-0.27.0.icuewidget, attached) and companion crabd 0.29.0. This release closes the two disclosed panel-approval residuals, SEC-a and WID-a.

What changed

  • A tap on Approve or Deny now carries a pairing code that crabd mints into ~/.sidecrab/panel-token on first start. The widget holds it as the iCUE property Approval Pairing Code, which no web page can read, so a page that forges the widget's null Origin is refused with 403. Ten wrong codes in a minute lock the gate for a minute. A companion with no gate answers 503, never 204.
  • Each pending request carries a requestId the tap must echo; a stale id is 409, decided under the broker's lock.
  • Install-SideCrab.ps1 -PairingCode prints the code; -Status and Test-SideCrab.ps1 show pairing state.
  • /v1/state gains an approvals block; /v1/health gains panelToken (presence and lockout, never the code).

Upgrade

  1. git pull then pwsh -File .\setup\Update-SideCrab.ps1 (crabd 0.29.0).
  2. Import SideCrab-0.27.0.icuewidget into iCUE (the widget updates only by import).
  3. pwsh -File .\setup\Install-SideCrab.ps1 -PairingCode, paste the code into the widget's Approval Pairing Code setting.
  4. Optional: pwsh -File .\setup\Install-SideCrab.ps1 -WithApprovals to arm approvals.

A widget older than 0.27.0 cannot approve against crabd 0.29.0: the tap is refused and the terminal dialog decides, which is the safe direction. Contract: docs/STATE-CONTRACT.md v0.29.0.