Skip to content

feat(cli): distinguish stored accounts in auth list - #59783

Open
lancy69 wants to merge 3 commits into
anomalyco:devfrom
lancy69:auth-list-identity
Open

lancy69 wants to merge 3 commits into
anomalyco:devfrom
lancy69:auth-list-identity

Conversation

@lancy69

@lancy69 lancy69 commented Oct 28, 2026 •

Copy link
Copy Markdown

Issue for this PR

Closes #59040

Design approval requested on the issue; still pending. Implementation prepared with OpenAI Codex assistance.

Type of change

  • Bug fix
  • New feature
  • Refactor / code improvement
  • Documentation

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?

Updated against upstream dev 06aa6da22e in d89823b7d7. Upstream readiness now uses /api/plugin; the regression retains the readiness-before-integration ordering check with an active-plugin fixture. Feature docs follow the upstream move to services/site.

  • packages/cli: bun test --timeout 30000 test/auth.test.ts: 13 passed, 82 assertions. These spawn the actual CLI and cover distinct stored IDs, unchanged JSON, and the environment - row.
  • packages/cli: bun run typecheck:tsc: passed.
  • Focused implementation/test oxlint: no warnings/errors.

The installed Bun 1.4.3 cannot run the new --no-script typecheck flag, so focused typechecks used the repository's pinned official compiler. The mandatory pre-push bun run check then passed with Bun 1.4.4: lint completed (unrelated warnings remain) and 34/34 typecheck tasks succeeded.

Screenshots / recordings

Plain CLI output change; verified through command output.

Checklist

  • I have tested my changes locally
  • I have not included unrelated changes in this PR

Added by the opencode bot (AI-generated).

Public API: adds a credential ID column to the default opencode auth list table output (JSON output unchanged)

Visual

<svg xmlns="http://www.w3.org/2000/svg" width="240" height="72" viewBox="0 0 240 72"><g fill="none" stroke="currentColor" opacity=".3"><rect x="4" y="4" width="232" height="64" rx="6"/></g><g fill="currentColor" font-family="monospace" font-size="12"><text x="14" y="28">work  stored  cred_a</text><text x="14" y="50">work  stored  cred_b</text></g><rect x="117" y="13" width="103" height="43" rx="3" fill="none" stroke="currentColor"><animate attributeName="opacity" values="1;.3;1" dur="2s" repeatCount="indefinite"/></rect></svg>

@lancy69
lancy69 marked this pull request as ready for review October 30, 2026 07:03
@lancy69

lancy69 commented Oct 30, 2026

Copy link
Copy Markdown
Author

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 action_required before any jobs start. Could a maintainer approve the workflow runs? Design approval requested in #59040 is still pending.

@opencodejr opencodejr Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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).

Comment thread packages/cli/test/auth.test.ts Resolved

@opencodejr opencodejr Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

@opencodejr opencodejr Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The merge with current dev keeps the earlier ordering point covered: the test now checks that /api/plugin is requested before /api/integration, matching loadIntegrations on dev. The docs edit moved to services/site, and list.ts is unchanged. Re-checked with auth list from source against a mock server (base shows identical same-label rows; this PR shows distinct credential IDs and - for env connections). 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.

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

auth list hides subpath identity and shows duplicate rows for distinct auth records

1 participant