cc-cream 0.1.13 → 0.1.14

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -4,6 +4,11 @@ All notable changes to cc-cream are documented here. Format follows
4
4
  [Keep a Changelog](https://keepachangelog.com/en/1.1.0/); versions follow
5
5
  [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
6
6
 
7
+ ## [0.1.14] — 2026-05-29
8
+
9
+ ### Changed
10
+ - **The status bar now turns itself on — no manual `/cc-cream:setup` for fresh installs** (CREAM-nywsljfq). Claude Code can't let a plugin contribute the main status line natively (only `agent`/`subagentStatusLine` are plugin-settable — verified by probe), so the bar still needs a write to `settings.json`. Instead of making you run `/cc-cream:setup`, the `SessionStart` hook (`hooks/auto-setup.js`, renamed from `setup-reminder.js`) now **auto-wires** cc-cream's `statusLine` on the first session after install — but **only when no status line is configured**. It never clobbers a status line you set for something else (that still routes through the interactive `/cc-cream:setup`), and a one-shot marker means it never re-adds the bar after you remove it with `/cc-cream:uninstall`. The nudge to run `/cc-cream:setup` now appears only in the foreign-status-line case. Output stays a single `systemMessage` (zero model tokens). You may need to restart/trust the workspace for the bar to appear.
11
+
7
12
  ## [0.1.13] — 2026-05-29
8
13
 
9
14
  ### Fixed
package/README.md CHANGED
@@ -66,16 +66,21 @@ To use the self-hosted marketplace directly:
66
66
  /plugin install cc-cream
67
67
  ```
68
68
 
69
- Then wire it into your settings in one step:
69
+ That's usually all you need: on the first session after install, cc-cream
70
+ **auto-wires** its `statusLine` into `~/.claude/settings.json` (you may need to
71
+ restart or trust the workspace for the bar to appear). It only does this when no
72
+ status line is configured — it never overwrites one you set for something else,
73
+ and it never re-adds the bar after you remove it.
74
+
75
+ If you already have a status line and want to replace it with cc-cream's, run:
70
76
  ```
71
77
  /cc-cream:setup
72
78
  ```
73
79
 
74
80
  The `/cc-cream:setup` command runs the consent installer, which writes the
75
- `statusLine` block to `~/.claude/settings.json`. Until you run it, cc-cream
76
- prints a one-line reminder at the start of each session (it stops once the bar
77
- is wired). Updates are automatic: when `/plugin update` drops a new version into
78
- the cache, the next render picks it up without any further action.
81
+ `statusLine` block to `~/.claude/settings.json`. Updates are automatic: when
82
+ `/plugin update` drops a new version into the cache, the next render picks it up
83
+ without any further action.
79
84
 
80
85
  ### Option 2 — npm
81
86
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "cc-cream",
3
- "version": "0.1.13",
3
+ "version": "0.1.14",
4
4
  "description": "Claude Code cache/context/cost status-line tool",
5
5
  "directories": {
6
6
  "doc": "docs"
package/src/install.js CHANGED
@@ -49,7 +49,7 @@ function isInstalled(existing, command) {
49
49
  // (dev repo, copied home runtime, or the plugin cache-glob) — every command
50
50
  // references the cc-cream entrypoint. Used by uninstall so we never touch a
51
51
  // statusLine the user wired for something else.
52
- function isCcCreamStatusLine(existing) {
52
+ export function isCcCreamStatusLine(existing) {
53
53
  return (
54
54
  !!existing &&
55
55
  typeof existing === 'object' &&
@@ -187,7 +187,7 @@ function copyRuntimeFiles(sourceFile, destDir) {
187
187
  // PATH, so a bare `node` is unsafe. We prefer the shell's `command -v node`
188
188
  // (the path the user's interactive shell would pick), falling back to
189
189
  // process.execPath (the node currently running setup) if that fails.
190
- function resolveNodePath() {
190
+ export function resolveNodePath() {
191
191
  try {
192
192
  const found = execSync('command -v node', { encoding: 'utf8' }).trim();
193
193
  if (found) return found;