sigrank 0.17.4 → 0.17.5

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.
Files changed (3) hide show
  1. package/README.md +1 -1
  2. package/package.json +1 -1
  3. package/tui.mjs +9 -7
package/README.md CHANGED
@@ -147,7 +147,7 @@ smithery tool call sigrank rank_paste '{"text": "1000000 500000 50000 800000"}'
147
147
  ## Commands
148
148
 
149
149
  ```
150
- ⊙ SigRank CLI v0.17.4
150
+ ⊙ SigRank CLI v0.17.5
151
151
 
152
152
  Default (no args)
153
153
  sigrank unified dashboard: cascade + token pillars + board
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "sigrank",
3
- "version": "0.17.4",
3
+ "version": "0.17.5",
4
4
  "author": "SunrisesIllNeverSee (https://github.com/SunrisesIllNeverSee)",
5
5
  "description": "SigRank MCP server — the yield cascade + live leaderboard as MCP tools any agent can call",
6
6
  "mcpName": "io.github.SunrisesIllNeverSee/sigrank-mcp",
package/tui.mjs CHANGED
@@ -2192,9 +2192,11 @@ export async function runTui({
2192
2192
  "sign-in is temporarily unavailable — try again shortly.",
2193
2193
  };
2194
2194
  connectMsg = `${red("✗")} ${reasons[out.reason] || `sign-in failed (${out.reason || "unknown"}).`}`;
2195
+ codeBuf = ""; // auto-clear on failure — the code is consumed/invalid
2195
2196
  }
2196
2197
  } catch (e) {
2197
2198
  connectMsg = `${red("✗")} ${e.message}`;
2199
+ codeBuf = ""; // auto-clear on error too
2198
2200
  }
2199
2201
  await redraw();
2200
2202
  return;
@@ -2225,13 +2227,13 @@ export async function runTui({
2225
2227
  await redraw();
2226
2228
  return;
2227
2229
  } // backspace
2228
- // [X] sign out / reset — when the code field is empty (so an 'x' typed mid-code
2229
- // still feeds the buffer). Drops the local credential so a server-revoked OR
2230
- // server-enrolled-but-locally-unbound device stops holding a stale device_id,
2231
- // and the next enroll provisions a fresh device_id (escapes the Frankenstein-
2232
- // identity / 409-re-enroll deadlock). Works whether or not isSignedIn() —
2233
- // otherwise a device enrolled server-side but unbound locally is un-escapable
2234
- // (can't sign in: device_already_enrolled; can't sign out: X gated off).
2230
+ // [X] sign out / reset — only when the code field is empty (so 'x'/'X' typed
2231
+ // mid-code still feeds the buffer — codes can contain X). The auto-clear on
2232
+ // sign-in failure (above) ensures the buffer is empty after a failed attempt,
2233
+ // so X works immediately when the user wants to reset. Drops the local
2234
+ // credential so a server-revoked OR server-enrolled-but-locally-unbound device
2235
+ // stops holding a stale device_id, and the next enroll provisions a fresh
2236
+ // device_id (escapes the Frankenstein-identity / 409-re-enroll deadlock).
2235
2237
  if (k === "x" && !codeBuf) {
2236
2238
  const wasSignedIn = isSignedIn(loadIdentity());
2237
2239
  clearIdentity();