Repository navigation
Conversation
|
Ready for review after local verification: 13 auth regressions, CLI typecheck, changed-file lint, and an isolated CLI/server smoke passed. The new CI workflows report |
There was a problem hiding this comment.
Works as described. I ran opencode auth list from source against a mock server returning two credentials with the same label: on the base they print as identical rows, and with this change they show distinct IDs, with - for the environment connection. test/auth.test.ts passes and tsc -b is clean.
Public API: the default text output of opencode auth list gains a fourth column (credential ID, or -). --format json is unchanged, as are all flags and commands. Scripts that parse the table by splitting on whitespace will see an extra field; the JSON output is the stable interface for those.
One thing worth fixing before merge: the rewritten test drops an existing check that is unrelated to this feature (see inline comment).
| } | ||
| return new Response("Not found", { status: 404 }) | ||
| }, requests) | ||
| }) |
There was a problem hiding this comment.
This rewrite drops the requests capture and the assertion that /api/model/default is requested before /api/integration. That was the only test of the readiness ordering loadIntegrations depends on (see the comment in auth/shared.ts), and it has nothing to do with the new column. Could you keep it (pass requests back to authServer and restore the indexOf check)? As written, authServer's requests parameter is also left unused.
There was a problem hiding this comment.
Restored in f070bb3: the test passes requests to authServer, checks that /api/model/default was requested, and asserts it precedes /api/integration. The JSON command completes and its ordering is checked before the table command starts, so concurrent requests cannot mask the assertion. Verified with bun test --timeout 30000 test/auth.test.ts (13 passed, 82 assertions), bun typecheck, and oxlint (0 warnings/errors).
There was a problem hiding this comment.
The earlier point is fixed: the test again passes requests to authServer and checks that /api/model/default is requested before /api/integration. Running the JSON and table commands one after the other keeps that check about the JSON run only. test/auth.test.ts passes and tsc -b is clean. Public API: unchanged since the last review (the default opencode auth list table gains a credential ID column; JSON output is unchanged). No new concerns.
Issue for this PR
Closes #59040
Design approval requested on the issue; still pending. Implementation prepared with OpenAI Codex assistance.
Type of change
What does this PR do?
Append stable credential IDs to the auth table so same-label stored accounts are distinguishable. JSON output and environment connection handling remain intact.
How did you verify your code works?
Bun 1.4.4, from
packages/cli:bun test --timeout 30000 test/auth.test.ts: 13 passed, 0 failed.bun typecheck: passed.Actual CLI against an isolated authenticated server verified distinct IDs for two accounts labeled
work, preserved JSON without secret values, and an environment connection shown with-rather than a stored ID. Switching and logging out by ID targeted only the selected credential. Reproduce by importing two same-label credentials, runningopencode auth list, then using an ID withauth switchorauth logout.Upstream full CI currently requires maintainer approval before jobs can run; the existing green checks cover PR metadata only.
Screenshots / recordings
Plain CLI output change; verified through command output.
Checklist
Added by the opencode bot (AI-generated).
Public API: adds a credential ID column to the default
opencode auth listtable output (JSON output unchanged)