slashvibe-mcp 0.8.7 → 0.8.8
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/config.js +29 -3
- package/package.json +1 -1
- package/version.json +5 -6
package/config.js
CHANGED
|
@@ -160,11 +160,26 @@ function getOneLiner() {
|
|
|
160
160
|
}
|
|
161
161
|
|
|
162
162
|
function isInitialized() {
|
|
163
|
-
//
|
|
163
|
+
// A VALID CREDENTIAL IS INITIALISATION. Asking the file was the bug.
|
|
164
|
+
//
|
|
165
|
+
// This checked only for a stored handle, so a config that held a perfectly good token
|
|
166
|
+
// and no `username` reported "not initialized" forever. Tools behind requireInit()
|
|
167
|
+
// refused with "Run `vibe init` first" while presence — which resolves identity from
|
|
168
|
+
// the credential — worked in the same response. One reply, two answers about whether
|
|
169
|
+
// you are signed in.
|
|
170
|
+
//
|
|
171
|
+
// It is reachable by accident: save() writes `username: config.handle ||
|
|
172
|
+
// config.username || existing.username`, and when all three are absent that value is
|
|
173
|
+
// `undefined`, which JSON.stringify DROPS. So the key does not go null, it disappears,
|
|
174
|
+
// and nothing puts it back. Observed on this machine 2026-08-01.
|
|
175
|
+
//
|
|
176
|
+
// The credential is the identity (#107). If one names us, we are initialised — and if
|
|
177
|
+
// one does not, no remembered string should pretend otherwise.
|
|
178
|
+
if (getHandle()) return true;
|
|
164
179
|
const sessionHandle = getSessionHandle();
|
|
165
180
|
if (sessionHandle) return true;
|
|
166
181
|
const config = load();
|
|
167
|
-
return config.handle && config.handle.length > 0;
|
|
182
|
+
return !!(config.handle && config.handle.length > 0);
|
|
168
183
|
}
|
|
169
184
|
|
|
170
185
|
// Session management - unique ID per Claude Code instance
|
|
@@ -302,10 +317,21 @@ function saveAuthToken(token) {
|
|
|
302
317
|
authMethod: 'github' // Track that this is GitHub OAuth
|
|
303
318
|
});
|
|
304
319
|
|
|
305
|
-
// Also save to shared config for persistence across MCP restarts
|
|
320
|
+
// Also save to shared config for persistence across MCP restarts.
|
|
321
|
+
//
|
|
322
|
+
// The handle rides WITH the token. Persisting a credential and no identity is how a
|
|
323
|
+
// config comes to hold a valid token under no name — and save() cannot repair it,
|
|
324
|
+
// because it writes `username: undefined` in that case and JSON.stringify drops the
|
|
325
|
+
// key rather than storing null. The state is invisible and permanent.
|
|
306
326
|
const cfg = load();
|
|
307
327
|
cfg.authToken = token;
|
|
308
328
|
cfg.authMethod = 'github';
|
|
329
|
+
if (!cfg.handle) {
|
|
330
|
+
// Derive it from the credential itself rather than leaving the file anonymous.
|
|
331
|
+
try {
|
|
332
|
+
cfg.handle = require('./auth-store').inspectToken(token).handle || cfg.handle;
|
|
333
|
+
} catch (e) { /* auth-store unavailable at early boot — the token still saves */ }
|
|
334
|
+
}
|
|
309
335
|
save(cfg);
|
|
310
336
|
}
|
|
311
337
|
|
package/package.json
CHANGED
package/version.json
CHANGED
|
@@ -1,12 +1,11 @@
|
|
|
1
1
|
{
|
|
2
|
-
"version": "0.8.
|
|
2
|
+
"version": "0.8.8",
|
|
3
3
|
"updated": "2026-08-01",
|
|
4
|
-
"changelog": "
|
|
4
|
+
"changelog": "A credential that names you is being signed in. A config could end up holding a perfectly good token and no username — and once that happened nothing put it back — so `vibe dm` answered \"Not initialized, run vibe init\" in the same breath as the footer showing who was online. One reply, two answers. Signing in now records whose token it is, so the file can never go anonymous.",
|
|
5
5
|
"features": [
|
|
6
|
-
"A
|
|
7
|
-
"
|
|
8
|
-
"
|
|
9
|
-
"One login lifetime — 30 days, including for brand-new accounts"
|
|
6
|
+
"A valid credential counts as being signed in, no matter what the file says",
|
|
7
|
+
"Signing in records the handle with the token, so it cannot be lost",
|
|
8
|
+
"Sign-in fails with a clear message instead of a crash page when storage is down"
|
|
10
9
|
],
|
|
11
10
|
"deprecated": [],
|
|
12
11
|
"breaking": false,
|