Skip to content

Releases: rigsmith/rigsmith

v1.18.0

Choose a tag to compare

@github-actions github-actions released this 11 Sep 03:19

Changelog

Fixes

  • 265e3ee fix(rig): don't let one package derail a --all run (#383)

Others

  • 3545df8 clauderig: desktop main — get back to the Claude Desktop that is not a profile (#386)

claudeRig UI 0.3.0

Choose a tag to compare

@github-actions github-actions released this 11 Sep 03:26

🚀 Enhancements

  • clauderig-ui: The tray lists every open Claude Desktop window by name, and clicking one brings it forward.

    Two Claude Desktop windows look identical in the Dock. Each instance does get its own tile, but they carry the same icon and the same name, so telling the work profile from the machine-wide app means clicking one and looking — and nothing in macOS can badge another application's tile, since the tile belongs to that process. The Claude Desktop submenu names them instead: each profile, the machine-wide app, and any window running on a directory outside the store.

    Raising is by process id rather than by activating the application, which is what the Dock already does and is the ambiguity being solved — every instance is one application to the OS, which then picks the window itself. On macOS that needs Automation permission, so the first raise prompts.

    The menu is rebuilt only when the set of windows changes, and the pid is re-checked against the live process list before anything is raised: it comes from a menu built up to ten seconds ago, so a window that has closed raises nothing rather than dragging whatever inherited its pid to the front. A process scan that fails says so, rather than reporting an empty machine.

    Open the main app at the bottom runs clauderig desktop main, which decides for itself whether to launch or raise, so the item works whether or not that window is there.

claudeRig UI 0.2.1

Choose a tag to compare

@github-actions github-actions released this 09 Sep 04:16

🩹 Fixes

  • clauderig-ui: The window's Windows downloads are now spelled claudeRigUi, the same as its macOS one.

    The two halves of the same release disagreed: claudeRigUi_0.2.0_darwin_universal.zip beside clauderigUi_0.2.0_windows_amd64.zip. The macOS bundle takes its name from the wordmark and the Windows binary took its from GoReleaser's binary: field, and nothing ever compared them. Neither was broken — each consumer referenced the right one — but a download URL written by hand from the other platform's example was always going to 404.

    The Windows executable is claudeRigUi.exe now, which is also what its version resources declare and what a winget submission will use as its command alias. Windows resolves commands case-insensitively, so anything already typed keeps working. The 0.2.0 assets keep their old names; this takes effect from the next release.

claudeRig UI 0.2.0

Choose a tag to compare

@github-actions github-actions released this 09 Sep 04:03

🚀 Enhancements

  • clauderig-ui: The claudeRig UI now ships on its own tag, so a window release no longer waits for a toolchain release.

    It has always been a separate module on its own version — 0.x while the command line tools are at 1.x — and shiprig tag has always rendered ui/vX.Y.Z for it. Nothing consumed that tag: the window rode the CLIs' release, which meant every fix to it waited for one, and the Windows download lived in a release named after a version the app does not have.

    Pushing ui/vX.Y.Z now fires its own workflow, built from the pieces that already existed. GoReleaser builds and Authenticode-signs the Windows binaries through the same hook the CLIs use, a macOS runner builds, signs and notarizes the .app through the same script as before, and the two are published together as one GitHub release, a Homebrew cask and a winget submission. brew install --cask rigsmith/tap/clauderig-ui is unchanged; the zip it downloads now sits in a release carrying the window's own version rather than the CLIs'.

    A tag that disagrees with ui/go.mod is refused before anything is built. The two are written at different moments, and a mismatch would ship a window reporting one number under a tag promising another, with the cask and the winget manifest each believing a different one.

  • clauderig-ui: The window now tells you when the machine-wide Claude Desktop is launched, because that is the window a session meant for a profile can end up in.

    A watch scans the running Claude Desktop processes every ten seconds — five while the notice is up — and raises a small window the moment one appears with no --user-data-dir: the ordinary install, the one the Dock and Spotlight start. While it is open a claude:// deep link is routed by scheme rather than to a chosen window, so Open in Desktop can land there instead of the profile that was picked, and clauderig desktop send --session refuses rather than guess. Until now the first sign of any of that was a refusal, or a conversation filed under the wrong account.

    It is the app's own window rather than an OS notification, and deliberately: a real notification needs a signed bundle and the user's permission, so it would be silent in a dev build and silent again for anyone who ever declined the prompt. A window is the one surface a tray app can always put on screen.

    Three decisions about when NOT to speak, each of them a way this could have become noise. A Desktop window already open when the tray starts is not a launch, so starting the app never greets you with a warning about something you have had open all morning. A failed process scan holds the previous answer instead of reading as "closed", which would otherwise make the next successful scan look like a launch. And a machine with no clauderig Desktop profiles is never warned at all — with nothing to route a session to, the main app is simply Claude Desktop.

    Raising only on the transition is also what makes dismissing it work: it will not come back until that app is closed and opened again. Don't warn again on the notice turns it off for good, and the tray's Warn when Claude Desktop opens is the way back on — an off switch whose on switch is a file somebody has to find is not a setting.

🩹 Fixes

  • clauderig-ui: The sessions window no longer hangs on Windows when a CLI store's project folder has to be named from its transcripts.

    Recovering the real directory behind a project slug walks up the working directory a transcript recorded, and it stopped when it saw /. Windows spells its root \ or C:\, filepath.Dir returns those unchanged, and the walk ran forever — the window wedged on the first folder whose name had to be recovered. It now stops where Dir stops changing the path, which is the root on every platform.

    A group id from the window that begins with / is also refused on Windows now. The guard called filepath.IsAbs, which is the host's rule: /etc/passwd is not absolute on Windows because it names no volume, so an id written to be refused walked straight past it.

  • clauderig-ui: Two Claude Desktop accounts whose ids begin the same way no longer merge into one folder in the Places view.

    The group was keyed by the NAME shown for an account, and with no email on file that name was the account id cut at its first -. Two accounts sharing that prefix therefore shared a key: one group, holding both accounts' sessions, carrying one account's id. Clicking it showed only that one account's sessions, because the drawer filters on the id — so the row advertised a count it could not produce, which is the exact failure the split exists to prevent. Groups are now keyed by the account id, and an account with no email on file is named by its id in full: long, but never two accounts under one heading.

    A Desktop sidecar that will not parse also keeps its filename as its label. It used to be relabelled (untitled) <first segment of the filename>, which presented a slice of a filename as though it were a session id — for local_broken.json, a session called "broken". The relabelling is right for a record that parsed and simply had no title; for one we could not read at all, the filename is the only fact there is, and it is also what somebody needs in order to go and look at the file.

  • clauderig-ui: The claudeRig UI's Windows executable now carries an icon, a version and a description.

    build/winres/ had an entry for each CLI and none for the window, so scripts/winres.sh embedded nothing into it: a generic icon in Explorer, an empty properties dialog, and no FileDescription for winget's tooling to read — komac classifies a binary from exactly that field. It shipped that way for its whole life, and nothing in the repo said so.

    Its version comes from ui/go.mod rather than from git describe, which would have answered with whichever tag is newest in the history — usually the CLIs' — and put a different number in the properties dialog than the app reports about itself.

v1.17.0

Choose a tag to compare

@github-actions github-actions released this 08 Sep 05:32

Changelog

Features

  • a92d488 feat(rig): propose names the pins only the stackspace can answer (#353)
  • 34d281e feat(rig): rig stack pack builds a member here, where the overlay applies (#355)

Fixes

  • 3ab7ab5 fix(clauderig): confine restored memory links (#339)
  • b5f5510 fix(gitrepo): fetch onto a private ref, never read FETCH_HEAD (#354)
  • 5c855fa fix(rig): reach private stack upstreams with the gh credential (#349)

Others

  • f5020d2 docs(shiprig): relative paths in vars are root-relative for the shell only
  • 84f11a9 rig stack pull: name the dirty manifest, and record a conflicted pull resolved by hand (#350)

v1.16.0

Choose a tag to compare

@github-actions github-actions released this 07 Sep 18:46

Changelog

Features

  • f8fe2c9 feat(site): rigsmith.sh/brew installs with Homebrew

Fixes

  • c8b5ec9 fix(clauderig-ui): write the cask the way Homebrew now wants

Others

  • 4f91d6d .github/workflows: Migrate workflows to Blacksmith runners (#333)
  • 6b82b7c CI: spend rules and warm caches on top of the Blacksmith move (#334)
  • d145bc5 Retire the June parity handoff notes from the repo root (#320)
  • e318ccd clauderig guard: catch the worktree an agent makes for itself (#329)
  • 27cd517 clauderig sync: an mtime is not evidence when the clock has not moved (#335)
  • 648108f rig stack: a setup verb, and a README the next person can follow (#330)
  • 4694e39 rig stack: propose one topic branch, so a second fix can be its own PR (#328)
  • 1c7ea22 rig stack: status says where each topic's pull request went (#331)

v1.15.5

Choose a tag to compare

@github-actions github-actions released this 06 Sep 19:11

Changelog

Others

  • 1d69e1a clauderig-ui: the desktop window, and a Places view for finding a session by where it was (#314)

v1.15.4

Choose a tag to compare

@github-actions github-actions released this 06 Sep 17:00

Changelog

Fixes

  • d4602a6 fix(rig): worktree new --dry-run created the worktree (#316)

Others

  • e288746 ci: point the winget-pkgs fork sync at JohnCampionJr, drop the org fork (#313)

v1.15.3

Choose a tag to compare

@github-actions github-actions released this 06 Sep 16:33

Changelog

Others

  • 515990c clauderig: staging waiting for the next sync is not a warning (#312)

v1.15.2

Choose a tag to compare

@github-actions github-actions released this 06 Sep 04:32

Changelog

Fixes

  • 14e8faf fix(clauderig): distinguish sync lock owners at identical timestamps

Others

  • c3c4fc4 Merge v1 byte-preservation fixes into v2 (#295)
  • 01e213f Merge v1.15.1 into the shared ClaudeRig foundation
  • 4339af3 clauderig: unblock syncing, and stop re-reading the whole backup every run (#305)
  • 5ccf9f4 docs(changeset): describe fixes in end-user terms
  • 3a85089 refactor(clauderig): complete synchronous capture and journal service
  • 4e202dc refactor(clauderig): extract publication and pull services for v2
  • e5e1bca test(clauderig): establish v2 workflow compatibility baseline (#289)