@companion-ai/feynman 0.5.36 → 0.5.37
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/RELEASES.md +4 -0
- package/dist/model/commands.js +5 -4
- package/package.json +1 -1
package/RELEASES.md
CHANGED
|
@@ -6,6 +6,10 @@ GitHub release notes are generated from the matching `## vX.Y.Z` section in this
|
|
|
6
6
|
|
|
7
7
|
## Unreleased
|
|
8
8
|
|
|
9
|
+
## v0.5.37 - 2026-10-12
|
|
10
|
+
|
|
11
|
+
- **A sign-in that came back without a code says what to do.** When the browser returned to `feynman model login` or `feynman setup` without an authorization code (seen mostly on Windows), Feynman printed only "Missing authorization code". It now gives the same advice as for `invalid_grant`: sign out of the provider's site or use a private window, then retry, and for ChatGPT it suggests `feynman model login openai-codex`.
|
|
12
|
+
|
|
9
13
|
## v0.5.36 - 2026-10-12
|
|
10
14
|
|
|
11
15
|
- **A new user gets to a working model instead of a dead end.** Launching `feynman` with no model opens a menu to set one up.
|
package/dist/model/commands.js
CHANGED
|
@@ -742,11 +742,12 @@ export function getOrCreateDeviceId(authPath) {
|
|
|
742
742
|
writeFileSync(settingsPath, `${JSON.stringify({ ...settings, deviceId }, null, 2)}\n`, "utf8");
|
|
743
743
|
return deviceId;
|
|
744
744
|
}
|
|
745
|
-
// A provider answers invalid_grant when it rejects the authorization code,
|
|
746
|
-
//
|
|
747
|
-
//
|
|
745
|
+
// A provider answers invalid_grant when it rejects the authorization code, and
|
|
746
|
+
// the browser comes back with no code when the sign-in was denied or lost a
|
|
747
|
+
// redirect; a stale browser session usually causes both. Signing out there (or
|
|
748
|
+
// using a private window) and retrying fixes it.
|
|
748
749
|
export function describeOAuthLoginFailure(providerId, error) {
|
|
749
|
-
if (!(error instanceof Error) ||
|
|
750
|
+
if (!(error instanceof Error) || !/invalid_grant|Missing authorization code/.test(error.message))
|
|
750
751
|
return error;
|
|
751
752
|
const alternative = providerId === "openai" ? " Or sign in with `feynman model login openai-codex` instead." : "";
|
|
752
753
|
return new Error(`${error.message}\nThe sign-in was rejected, usually because of a stale browser session. Sign out of the provider's site in your browser, or use a private window, then run \`feynman model login ${providerId}\` again.${alternative}`);
|