Skip to content

phobos 1.3.0 — tab spinner, /phobos-update, effort badge, 1M meter fix - #1

Merged
broisnees merged 7 commits into
mainfrom
feat/1.3.0-spinner-effort-updater
Jul 28, 2026
Merged

broisnees merged 7 commits into
mainfrom
feat/1.3.0-spinner-effort-updater

Conversation

@broisnees

Copy link
Copy Markdown
Owner

Release 1.3.0. Five self-contained changes, each in its own commit; tests green (bash tests/run.sh → 103 passed, 0 failed).

Added

  • Terminal tab-title spinner (spinner.sh). While Claude works, the terminal tab/window title animates with a braille spinner (⠋ myrepo · working…) and resets to the plain project name on turn end. Pure bash + OSC title escapes to the controlling terminal; a detached nohup animator started on UserPromptSubmit, killed on Stop/SessionEnd; a quiet no-op where there's no tty. Opt out with PHOBOS_SPINNER=off.
  • /phobos-update command — update phobos from inside Claude Code. Installed by install.sh into ~/.claude/commands/; ships in the plugin as /phobos:update. Runs update.sh for git checkouts, else points at /plugin marketplace update phobos.
  • update.sh — pull latest + re-apply the (idempotent) installer in one command, passing install flags through. install.sh referenced it but it never existed.
  • Auto-ignored scratch files — session-start.sh registers .claude/phobos-{activity.log,state.md,benchmark.jsonl} in the repo's .git/info/exclude, so they stay out of git without touching the user's tracked .gitignore.

Changed

  • Status line shows reasoning effort instead of cost — renders .effort.level (effort high/max, colour-escalated on pricey tiers) where the dollar figure used to be; hidden when the model has no effort knob. Cost still available via benchmark.sh/savings.sh.

Fixed

  • Context-fill meter on 1M-context models — the UserPromptSubmit payload lacks the native context_window %, so the warn hook divided real tokens by a hardcoded 200k window and reported impossible values like ~115%. Now sizes the window from a 1m model marker or infers 1M when tokens already exceed 200k, and caps at 100%. statusline.sh's gauge got the same guard.

Commits

  1. fix: context-fill meter reads >100% on 1M-context models
  2. feat: show reasoning effort instead of cost in the status line
  3. feat: keep phobos per-repo scratch files out of git
  4. feat: add updater and in-session /phobos-update command
  5. feat: animate the terminal tab title while Claude works
  6. chore: wire command + spinner into installer, tests, and docs
  7. chore: release 1.3.0

Notes for review

  • New env knob PHOBOS_SPINNER (default on); installer flag --no-spinner.
  • Version bumped in VERSION, .claude-plugin/plugin.json, .claude-plugin/marketplace.json; CHANGELOG.md updated.
  • uninstall.sh removes the /phobos-update command; spinner hooks are stripped by the existing phobos/hooks/ marker.

UserPromptSubmit lacks the native context_window %, so the warn hook divided real tokens by a hardcoded 200k window and reported impossible values like ~115% on 1M sessions. Size the window from a 1m model marker, or infer 1M when tokens already exceed the 200k standard tier, and cap at 100%.
Render .effort.level (effort high/max, colour-escalated on the pricey tiers) in place of the dollar-cost badge; hidden when the model has no effort knob. Also applies the 1M-window guard to the status line's context-gauge fallback.
Register .claude/phobos-{activity.log,state.md,benchmark.jsonl} in the repo's .git/info/exclude at session start - never pushed, and never touches the user's tracked .gitignore. Idempotent; a no-op outside a git repo.
update.sh fast-forwards the checkout and re-applies the installer (install flags passed through). commands/update.md ships as /phobos:update (plugin) and is installed as /phobos-update by install.sh. uninstall.sh removes the command file.
spinner.sh runs a detached OSC-title animator started on UserPromptSubmit and stopped on Stop/SessionEnd - pure bash, a no-op without a tty, opt out with PHOBOS_SPINNER=off. Wired into the plugin hooks.json.
install.sh installs the /phobos-update command and the spinner hooks (with a --no-spinner opt-out), idempotently. Adds spinner + effort-badge tests and corrects the stale context-warn threshold test. README documents the spinner, /phobos-update, and PHOBOS_SPINNER.
@changeset-bot

changeset-bot Bot commented Jul 28, 2026

Copy link
Copy Markdown

⚠️ No Changeset found

Latest commit: ab89d69

Merging this PR will not cause a version bump for any packages. If these changes should not result in a new version, you're good to go. If these changes should result in a version bump, you need to add a changeset.

Click here to learn what changesets are, and how to add one.

Click here if you're a maintainer who wants to add a changeset to this PR

@broisnees broisnees self-assigned this Jul 28, 2026
@broisnees
broisnees merged commit 0acbff0 into main Jul 28, 2026
3 of 4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant