Skip to content

add github copilot, copilot cli support, fix opencode - #23

Open
mervynzhang wants to merge 3 commits into
tyql688:masterfrom
mervynzhang:master
Open

add github copilot, copilot cli support, fix opencode #23
mervynzhang wants to merge 3 commits into
tyql688:masterfrom
mervynzhang:master

Conversation

@mervynzhang

@mervynzhang mervynzhang commented Aug 21, 2026

Copy link
Copy Markdown

Summary

add github copilot, copilot cli support, fix opencode

Test plan

  • cd src-tauri && cargo test passes
  • npm test passes
  • cd src-tauri && cargo fmt --check passes
  • cd src-tauri && cargo clippy --all-targets --all-features -- -D warnings passes
  • npm run check passes
  • Manual testing: run local and view local copilot and opencode sessions

Index Copilot's copilot-agent event logs from both hosts that write
them: the CLI ($COPILOT_HOME/session-state/<uuid>/events.jsonl) and
the VS Code agent panel (workspaceStorage/<hash>/GitHub.copilot-chat/
transcripts/<uuid>.jsonl). VS Code transcripts omit session.start
context, so their project resolves from the per-workspace
workspace.json folder URI.

Usage comes from session.shutdown.modelMetrics, whose inputTokens are
cache-inclusive; cached portions are subtracted to keep SessionView's
disjoint input/cache-read/cache-write invariant. Sessions without a
shutdown record carry no usage rather than partial fabricated totals.
transformedContent and reasoningText never reach the transcript;
unknown event types skip silently since the format is explicitly
unstable, while malformed lines count as parse warnings.

Resume: copilot --resume <id>.
Newer OpenCode builds repurposed the workspace table (provider/binding
bookkeeping) and dropped its branch column, so the batched branch
lookup failed with "no such column: w.branch" and the whole provider's
scan was skipped. Gate the query on the column via pragma_table_info —
the same pattern already used for session.version — so either schema
scans cleanly; branch is optional metadata.
libsqlite3-sys 0.38 (pinned transitively via rusqlite 0.40 with the
bundled feature) uses cfg_select! in its build script, which only
stabilized in Rust 1.95 — so the tree never actually built on the
declared 1.91, failing with a cryptic E0658 inside a dependency's
build script instead of cargo's normal "requires rustc X" message.
Declare the real floor.
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.

2 participants