Dark-Alex-17
35e75e5b4f
fix: ctrl-c inside of an auto-continue loop created an infinite loop
CI / All (ubuntu-latest) (push) Failing after 26s
CI / All (macos-latest) (push) Has been cancelled
CI / All (windows-latest) (push) Has been cancelled
2026-07-31 11:44:16 -06:00
Dark-Alex-17
4f38214681
fix: sbx update doesn't allow undefined fields in sbx spec
CI / All (ubuntu-latest) (push) Failing after 25s
CI / All (macos-latest) (push) Has been cancelled
CI / All (windows-latest) (push) Has been cancelled
2026-07-31 10:07:29 -06:00
Dark-Alex-17
69e1b98c44
fix: ctrl-c interruption doesn't discard session messages when throbber is showing
CI / All (ubuntu-latest) (push) Failing after 27s
CI / All (macos-latest) (push) Has been cancelled
CI / All (windows-latest) (push) Has been cancelled
2026-07-30 13:38:37 -06:00
Dark-Alex-17
0324436114
feat: ctrl-c interrupts ongoing prompt in a session, but lets the user inject more instructions mid-stream
CI / All (ubuntu-latest) (push) Failing after 24s
CI / All (macos-latest) (push) Has been cancelled
CI / All (windows-latest) (push) Has been cancelled
2026-07-30 10:21:19 -06:00
Dark-Alex-17
233c212d2a
feat: improved function calling performance by allowing parallel tool calling
CI / All (ubuntu-latest) (push) Failing after 25s
CI / All (macos-latest) (push) Has been cancelled
CI / All (windows-latest) (push) Has been cancelled
2026-07-29 12:40:52 -06:00
Dark-Alex-17
e288b41365
fix: improper handling of fd-style globbing for directories in fs_glob
2026-07-29 12:40:33 -06:00
Dark-Alex-17
fbf6a6bdf4
fix: properly templated architect design doc path in starter commands
CI / All (ubuntu-latest) (push) Failing after 25s
CI / All (macos-latest) (push) Has been cancelled
CI / All (windows-latest) (push) Has been cancelled
2026-07-29 11:59:09 -06:00
Dark-Alex-17
57b72702b2
feat: created the architect and gatekeeper agents for dramatically improved coding performance
CI / All (ubuntu-latest) (push) Failing after 25s
CI / All (macos-latest) (push) Has been cancelled
CI / All (windows-latest) (push) Has been cancelled
2026-07-29 11:23:52 -06:00
Dark-Alex-17
38ba303c3c
feat: Improved readability of session message exchange replays
CI / All (ubuntu-latest) (push) Failing after 26s
CI / All (macos-latest) (push) Has been cancelled
CI / All (windows-latest) (push) Has been cancelled
2026-07-29 10:15:35 -06:00
Dark-Alex-17
fc7bc0ff8f
fix: .copy works when sessions are resumed
2026-07-29 09:50:40 -06:00
Dark-Alex-17
7f7ea758a7
fix: ACP session/prompt now drives the full tool-execution loop
...
CI / All (ubuntu-latest) (push) Failing after 25s
CI / All (macos-latest) (push) Has been cancelled
CI / All (windows-latest) (push) Has been cancelled
run_prompt_turn previously performed a single completion and returned,
leaving tool calls unexecuted. It now mirrors start_directive's loop:
call -> execute tools -> merge results -> continue until no tool results,
then check the pending-agents guardrail before returning.
The pending-agents guardrail injects a reminder prompt when sub-agents
are pending, matching the same loop termination semantics as --headless.
The session is NOT exited between turns (unlike start_directive) so
multi-turn ACP conversations retain history across session/prompt calls.
Manual gate (tool-probe agent, fs_write + fs_read tools):
id 3 result: {"output":"DONE:probe.txt","stopReason":"end_turn"}
probe.txt exists: YES, content: hello
2026-07-28 15:42:51 -06:00
Dark-Alex-17
06b2c384e3
fix: ACP spec conformance — ContentBlock prompt params and protocolVersion type
...
CI / All (ubuntu-latest) (push) Failing after 26s
CI / All (macos-latest) (push) Has been cancelled
CI / All (windows-latest) (push) Has been cancelled
DEFECT 1: session/prompt now accepts the spec-shaped params as primary:
{"prompt": [{"type": "text", "text": "..."}]}
Text blocks are joined with newlines. Non-text block types are silently
ignored. The legacy params.text alias is preserved as a fallback. -32602
is returned only when neither a non-empty prompt array with text blocks
nor a non-empty text field is present.
DEFECT 2: initialize result now emits protocolVersion as integer 1
instead of the string "1", matching the ACP spec's InitializeResponse.
Tests: 4 new unit tests pin the spec-shaped prompt path, the non-text
block ignore behavior, the missing-both -32602 path, and the numeric
protocolVersion type.
2026-07-28 14:41:22 -06:00
Dark-Alex-17
d50de7c06a
lint: fixed test ordering
CI / All (ubuntu-latest) (push) Failing after 25s
CI / All (macos-latest) (push) Has been cancelled
CI / All (windows-latest) (push) Has been cancelled
2026-07-27 19:52:51 -06:00
Dark-Alex-17
0956f08791
refactor: move ACP server dispatch into run() for shared flag setup
...
All CLI flag processing (--agent, --role, --rag, --model, --no-memory,
--no-stream, --no-workspace-instructions, etc.) now runs through run()
before the REPL/cmd split. The ACP server is dispatched right before
match is_repl, after apply_prelude and skills loading, so it benefits
from the complete context setup with no duplication or drift risk.
2026-07-27 19:44:11 -06:00
Dark-Alex-17
087d0c320c
feat: apply --agent/--role/--rag/--model flags in --acp-server mode
...
These CLI flags were previously ignored because the ACP branch returned
before run() could apply them. Now the context is configured with the
requested agent, role, RAG index, and model before the server starts.
Session management remains protocol-driven via session/new and session/load.
2026-07-27 19:31:45 -06:00
Dark-Alex-17
2128390f99
fmt: applied formatting
CI / All (ubuntu-latest) (push) Failing after 25s
CI / All (macos-latest) (push) Has been cancelled
CI / All (windows-latest) (push) Has been cancelled
2026-07-27 19:26:29 -06:00
Dark-Alex-17
d008de1848
fix: restore stdout output for standalone --headless mode
...
RenderMode::Silent was incorrectly applied to --headless in addition to
--acp-server. Standalone headless should still display the LLM response;
only ACP mode requires stdout purity for JSON-RPC. The acp server's
run_prompt_turn already sets Silent before each prompt call.
2026-07-27 19:22:51 -06:00
Dark-Alex-17
d79787bf96
fix: suppress tool-call display in headless mode; initialize session on session/new
2026-07-27 19:14:28 -06:00
Dark-Alex-17
577c51b62f
fix: skip stdin drain and set silent render mode when --acp-server is active
2026-07-27 18:59:09 -06:00
Dark-Alex-17
d462b09f80
feat: add headless profile to sbx-kit spec
2026-07-27 18:03:35 -06:00
Dark-Alex-17
b711e4983b
feat: implement ACP user-interaction to request_permission bridge
2026-07-27 18:00:07 -06:00
Dark-Alex-17
6ae3efb06c
feat: implement ACP session/load and session/cancel
2026-07-27 17:52:49 -06:00
Dark-Alex-17
02dd14394b
feat: implement ACP session/prompt
2026-07-27 17:48:31 -06:00
Dark-Alex-17
f11d4ca760
feat: add ACP server skeleton with stdout-purity test
2026-07-27 17:31:47 -06:00
Dark-Alex-17
f1415067f2
feat: add --headless flag for unattended operation
2026-07-27 17:17:56 -06:00
Dark-Alex-17
af5c34fde5
Merge branch 'main' of github.com:Dark-Alex-17/coyote
2026-07-27 15:05:25 -06:00
Dark-Alex-17
2ffa278f2d
test: testing potential nerdbox regression fix for coyote sandbox mode
2026-07-27 15:04:41 -06:00
Dark-Alex-17
f4cbee9611
docs: remove comment in spec.yaml about copying in coyote password file
2026-07-27 10:50:40 -06:00
Dark-Alex-17
e95fd1e06e
ci: fix typo in coyote image tag; needs leading 'v'
CI / All (ubuntu-latest) (push) Failing after 23s
CI / All (macos-latest) (push) Has been cancelled
CI / All (windows-latest) (push) Has been cancelled
2026-07-27 09:51:23 -06:00
Dark-Alex-17
d79ea55e09
fix: include graph-agent descriptions in .agent <TAB> completions
CI / All (ubuntu-latest) (push) Failing after 25s
CI / All (macos-latest) (push) Has been cancelled
CI / All (windows-latest) (push) Has been cancelled
2026-07-27 09:34:36 -06:00
Dark-Alex-17
58d9d4c64e
docs: updated help message for --fresh flag
CI / All (ubuntu-latest) (push) Failing after 25s
CI / All (macos-latest) (push) Has been cancelled
CI / All (windows-latest) (push) Has been cancelled
2026-07-24 18:30:45 -06:00
Dark-Alex-17
63a768aa46
fix: fresh wizard openai-compatible support
CI / All (ubuntu-latest) (push) Failing after 25s
CI / All (macos-latest) (push) Has been cancelled
CI / All (windows-latest) (push) Has been cancelled
2026-07-24 18:29:24 -06:00
Dark-Alex-17
2c3f671efa
fix: config existence check for --fresh sandboxes
CI / All (ubuntu-latest) (push) Failing after 24s
CI / All (macos-latest) (push) Has been cancelled
CI / All (windows-latest) (push) Has been cancelled
2026-07-24 18:09:06 -06:00
Dark-Alex-17
8b0a536f4e
feat: Dynamically detect if a selected client in the sandbox first run wizard supports oauth
CI / All (ubuntu-latest) (push) Failing after 24s
CI / All (macos-latest) (push) Has been cancelled
CI / All (windows-latest) (push) Has been cancelled
2026-07-24 18:07:30 -06:00
Dark-Alex-17
5a1bb569b4
feat: Add support for the --fresh flag again with host environment configuration injection
CI / All (ubuntu-latest) (push) Failing after 24s
CI / All (macos-latest) (push) Has been cancelled
CI / All (windows-latest) (push) Has been cancelled
2026-07-24 18:00:41 -06:00
Dark-Alex-17
0c12580836
fix: Improve coyote sandbox startup time
2026-07-24 17:23:08 -06:00
Dark-Alex-17
df909325a7
fmt: applied formatting
CI / All (ubuntu-latest) (push) Failing after 25s
CI / All (macos-latest) (push) Has been cancelled
CI / All (windows-latest) (push) Has been cancelled
2026-07-24 16:50:27 -06:00
Dark-Alex-17
d379fcddf8
fix: bypass forgotten sandbox mode check for MCP secret interpolation
CI / All (ubuntu-latest) (push) Failing after 24s
CI / All (macos-latest) (push) Has been cancelled
CI / All (windows-latest) (push) Has been cancelled
2026-07-24 16:50:04 -06:00
Dark-Alex-17
b405acd8f0
feat: force overwrite global sbx secrets
2026-07-24 16:45:51 -06:00
Dark-Alex-17
805ae7112a
feat: add sbx secrets globally
CI / All (ubuntu-latest) (push) Failing after 24s
CI / All (macos-latest) (push) Has been cancelled
CI / All (windows-latest) (push) Has been cancelled
2026-07-24 16:41:00 -06:00
Dark-Alex-17
6ddbf37523
feat: only create secrets local to a sandbox
CI / All (ubuntu-latest) (push) Failing after 25s
CI / All (macos-latest) (push) Has been cancelled
CI / All (windows-latest) (push) Has been cancelled
2026-07-24 16:36:16 -06:00
Dark-Alex-17
f510bb649b
feat: Improved credentials management for docker sandboxes
2026-07-24 16:26:35 -06:00
Dark-Alex-17
c1b14bdfdf
docs: Created a mermaid diagram for Sisyphus
CI / All (ubuntu-latest) (push) Failing after 24s
CI / All (macos-latest) (push) Has been cancelled
CI / All (windows-latest) (push) Has been cancelled
2026-07-24 13:55:31 -06:00
Dark-Alex-17
46f2a9eae2
docs: added in forgotten connection to the librarian agent diagram
CI / All (ubuntu-latest) (push) Failing after 25s
CI / All (macos-latest) (push) Has been cancelled
CI / All (windows-latest) (push) Has been cancelled
2026-07-24 13:44:07 -06:00
Dark-Alex-17
cf3a12141b
docs: updated the graph agent diagrams to use mermaid diagrams for more easily readable diagramming in their READMEs
CI / All (ubuntu-latest) (push) Failing after 24s
CI / All (macos-latest) (push) Has been cancelled
CI / All (windows-latest) (push) Has been cancelled
2026-07-24 13:39:59 -06:00
Dark-Alex-17
8f13810f0f
chore: updated models.yaml
2026-07-24 13:27:20 -06:00
Dark-Alex-17
eba8c86e21
fix: properly wrap sub-style changes in markdown rendering
CI / All (ubuntu-latest) (push) Failing after 25s
CI / All (macos-latest) (push) Has been cancelled
CI / All (windows-latest) (push) Has been cancelled
2026-07-24 12:13:33 -06:00
Dark-Alex-17
d75fb47de1
docs: Updated project license
CI / All (ubuntu-latest) (push) Failing after 24s
CI / All (macos-latest) (push) Has been cancelled
CI / All (windows-latest) (push) Has been cancelled
2026-07-23 21:07:51 -06:00
Dark-Alex-17
49a281bf93
feat: renamed --contents arg for fs_write/patch to --content since most models attempt that first and error otherwise
CI / All (ubuntu-latest) (push) Failing after 24s
CI / All (macos-latest) (push) Has been cancelled
CI / All (windows-latest) (push) Has been cancelled
2026-07-23 19:13:36 -06:00
Dark-Alex-17
b9474ce6ef
feat: Used improved theme selections for tool call highlighting colors
CI / All (ubuntu-latest) (push) Failing after 25s
CI / All (macos-latest) (push) Has been cancelled
CI / All (windows-latest) (push) Has been cancelled
2026-07-23 18:51:57 -06:00
Dark-Alex-17
d328310880
feat: Improved theme-derived syntax highlighting for LLM tool call logging
2026-07-23 18:45:23 -06:00
Dark-Alex-17
5eb77ab467
feat: Improved coloring of LLM tool invocation outputs to make LLM output more readable and cohesive
2026-07-23 18:27:54 -06:00
Dark-Alex-17
a2c4f05c8c
feat: renamed the user__ask to user__select and improved descriptions to improve model usage
2026-07-23 18:22:18 -06:00
Dark-Alex-17
89fadcca15
feat: Improved coloring/highlighting of tool calls to make LLM invocation logs easier to read
2026-07-23 18:12:18 -06:00
Dark-Alex-17
ab3a818507
docs: Added the new compression control fields to the config example file
CI / All (ubuntu-latest) (push) Failing after 24s
CI / All (macos-latest) (push) Has been cancelled
CI / All (windows-latest) (push) Has been cancelled
2026-07-23 12:40:38 -06:00
Dark-Alex-17
63f73f22c3
style: applied formatting to new long run features
CI / All (ubuntu-latest) (push) Failing after 25s
CI / All (macos-latest) (push) Has been cancelled
CI / All (windows-latest) (push) Has been cancelled
2026-07-23 12:30:30 -06:00
Dark-Alex-17
54c5079cb7
feat: long-running session improvements
...
- Hang fix: 120s timeout on compression LLM call + raw_stream
channel-close handling (None => break instead of spinning)
- Supervisor effective active count: stop counting finished
JoinHandles as occupying capacity slots
- Universal tool result size cap: truncate_if_needed() on
ToolResult, applied in eval_tool_calls() after escalation block;
configurable via max_tool_result_chars in AppConfig/AgentConfig
- Windowed compression: compression_keep_last config param keeps
the N most recent messages visible after compression
- Fix pre-existing flaky test: add #[serial] to
handle_list_available_unrestricted_when_no_whitelist so it does
not race with TestConfigDirGuard-based tests that temporarily
populate the agents data dir
2026-07-23 12:25:54 -06:00
Dark-Alex-17
d51bdd3086
feat: Made sisyphus suite of agents all auto-approved for tool usage
CI / All (ubuntu-latest) (push) Failing after 24s
CI / All (macos-latest) (push) Has been cancelled
CI / All (windows-latest) (push) Has been cancelled
2026-07-22 22:28:20 -06:00
Dark-Alex-17
56ec58a748
fix: removed accidental duplicate ast_grep tool in explore agent
CI / All (ubuntu-latest) (push) Failing after 24s
CI / All (macos-latest) (push) Has been cancelled
CI / All (windows-latest) (push) Has been cancelled
2026-07-22 17:42:14 -06:00
Dark-Alex-17
93f9c5425e
fix: npm and npx need the /usr/local/share/npm-global/lib directory to exist to run properly so I've added it to the dockerfile
CI / All (ubuntu-latest) (push) Failing after 24s
CI / All (macos-latest) (push) Has been cancelled
CI / All (windows-latest) (push) Has been cancelled
2026-07-22 17:11:57 -06:00
Dark-Alex-17
77dfd08103
fix: added executable bit to adversary agent tools script
2026-07-22 16:38:42 -06:00
Dark-Alex-17
46dcef0dec
Merge branch 'main' of github.com:Dark-Alex-17/coyote
2026-07-22 16:37:34 -06:00
Dark-Alex-17
72c6bb74c2
feat: created the adversay agent and adversarial-review skill
2026-07-22 16:35:00 -06:00
Dark-Alex-17
6bf80dcce9
feat: added ast_grep tool to Sisyphus suite agents
CI / All (ubuntu-latest) (push) Failing after 25s
CI / All (macos-latest) (push) Has been cancelled
CI / All (windows-latest) (push) Has been cancelled
2026-07-22 15:41:09 -06:00
Dark-Alex-17
df948c69bf
feat: new spawnable_agents field in agents to let users restrict what agents can be spawned by a parent agent
CI / All (ubuntu-latest) (push) Failing after 25s
CI / All (macos-latest) (push) Has been cancelled
CI / All (windows-latest) (push) Has been cancelled
2026-07-22 14:29:55 -06:00
Dark-Alex-17
e5d0fcc764
test: fixed linter issues on markdown tests
CI / All (ubuntu-latest) (push) Failing after 24s
CI / All (macos-latest) (push) Has been cancelled
CI / All (windows-latest) (push) Has been cancelled
2026-07-22 13:32:37 -06:00
Dark-Alex-17
c60d3e7cda
style: updated some stylistic things across the new markdown rendering implementation
CI / All (ubuntu-latest) (push) Failing after 24s
CI / All (macos-latest) (push) Has been cancelled
CI / All (windows-latest) (push) Has been cancelled
2026-07-22 13:20:56 -06:00
Dark-Alex-17
c21fd47b42
feat: replay pre-compressed messages as well when resuming sessions for users to see
2026-07-22 13:05:06 -06:00
Dark-Alex-17
ab0b89dd67
fix: fetch descriptions from graph agent configs as well when listing agents
2026-07-22 12:59:30 -06:00
Dark-Alex-17
420db4bb88
feat: created a new builtin function for agents who can spawn other agents to list available agents via agent__list_available
2026-07-22 12:50:41 -06:00
Dark-Alex-17
dfacf31f6a
fix(render): suppress blank lines above rendered table
2026-07-22 12:37:30 -06:00
Dark-Alex-17
8cfd5ee2c4
docs(render): update phase 2.7 SHA after amend
2026-07-22 12:30:34 -06:00
Dark-Alex-17
e82e5ab8e4
test(render): comprehensive table rendering coverage
2026-07-22 12:30:10 -06:00
Dark-Alex-17
d790782ace
feat(render): hanging-indent line wrapping for lists and blockquotes
2026-07-22 12:27:13 -06:00
Dark-Alex-17
bf06d5e8f3
feat(render): wire table state machine and finalize hook
2026-07-22 12:23:44 -06:00
Dark-Alex-17
cdfaa0f111
feat(render): render markdown tables with comfy-table
2026-07-22 12:20:02 -06:00
Dark-Alex-17
c062f34852
feat(render): parse table cells and column alignments
2026-07-22 12:16:05 -06:00
Dark-Alex-17
7671d28d6e
feat(render): detect markdown table rows and separators
2026-07-22 12:14:45 -06:00
Dark-Alex-17
fcc4a1d2b5
feat(render): add comfy-table dependency and table border style
2026-07-22 12:11:04 -06:00
Dark-Alex-17
b0eeba110d
test(render): comprehensive coverage for rich markdown renderer
2026-07-22 11:48:43 -06:00
Dark-Alex-17
d65d63ee50
feat(render): activate rich markdown renderer as default
2026-07-22 11:47:39 -06:00
Dark-Alex-17
9890cf0ddc
feat(render): rich block-level markdown rendering (headings, quotes, lists, hr)
2026-07-22 11:45:03 -06:00
Dark-Alex-17
89db5b3887
feat(render): rich inline markdown rendering (bold, italic, code, links)
2026-07-22 11:41:35 -06:00
Dark-Alex-17
f40ba4ccbe
feat(render): detect markdown block-level line types
2026-07-22 11:37:11 -06:00
Dark-Alex-17
d2940a8d32
feat(render): precompute markdown scope styles for rich rendering
2026-07-22 11:31:23 -06:00
Dark-Alex-17
ed7ad36475
feat: Created the raw_markdown configuration flag
2026-07-22 11:03:27 -06:00
Dark-Alex-17
393ed16963
fix: chown the full sandbox cache dir, not just the coyote subdir
CI / All (ubuntu-latest) (push) Failing after 24s
CI / All (macos-latest) (push) Has been cancelled
CI / All (windows-latest) (push) Has been cancelled
2026-07-22 10:08:00 -06:00
Dark-Alex-17
3f94d2003a
fix: chown the whole coyote cache dir not just the oauth dir in the sandbox
CI / All (ubuntu-latest) (push) Failing after 25s
CI / All (macos-latest) (push) Has been cancelled
CI / All (windows-latest) (push) Has been cancelled
2026-07-22 09:48:11 -06:00
Dark-Alex-17
50ff9008fe
chore: updated deepseek models
CI / All (ubuntu-latest) (push) Failing after 25s
CI / All (macos-latest) (push) Has been cancelled
CI / All (windows-latest) (push) Has been cancelled
2026-07-22 09:31:17 -06:00
Dark-Alex-17
9606d7f8aa
feat: added a .fork command to fork a new session from a running conversation
CI / All (ubuntu-latest) (push) Failing after 24s
CI / All (macos-latest) (push) Has been cancelled
CI / All (windows-latest) (push) Has been cancelled
2026-07-21 14:54:55 -06:00
Dark-Alex-17
d8ae9e25d9
docs: reworded explore agent instructions to empower agent to spawn as many sub agents as it deems necessary
CI / All (ubuntu-latest) (push) Failing after 25s
CI / All (macos-latest) (push) Has been cancelled
CI / All (windows-latest) (push) Has been cancelled
2026-07-21 14:14:00 -06:00
Dark-Alex-17
006f64bfa0
docs: Improved sisyphus wording to empower agent to spawn as many subagents as necessary
2026-07-21 14:12:51 -06:00
Dark-Alex-17
000559bc9d
style: Applied formatting
CI / All (ubuntu-latest) (push) Failing after 25s
CI / All (macos-latest) (push) Has been cancelled
CI / All (windows-latest) (push) Has been cancelled
2026-07-21 11:24:18 -06:00
Dark-Alex-17
3aede58a11
feat(oauth): enable browser-paste PKCE flow for OpenAI-compatible providers
...
Two coordinated changes that make openai-compatible OAuth providers usable
with a non-localhost redirect_uri (browser shows the callback URL, user
copies it back into the terminal — the same UX Claude uses).
Fix: OpenAICompatibleOAuthProvider::fixed_redirect_uri() previously returned
Some(uri) for any redirect_uri including public HTTPS URLs, which trapped
run_pkce_flow into trying to bind a TCP listener on a public URL. It now
returns Some only for loopback URIs (127.0.0.1, localhost, ::1). Non-loopback
URIs return None, routing run_pkce_flow to the paste branch.
New tri-format paste parser (parse_paste_input):
- Full callback URL (starts with http:// or https://): parse code + state from
the query string. This is what most modern OAuth providers redirect to and
what a naive user copies from the browser bar.
- Anthropic-style code#state fragment: preserved for Claude compatibility.
- Bare code: accepted with a warning that CSRF state validation is skipped.
For providers whose callback page shows only the code with no state.
State validation moved from mandatory to conditional — if a paste didn't
carry state (bare-code path), we warn and skip the check instead of hard-
failing. The listener path (localhost + LAN redirects) still requires state
because the server sends it in the query.
Adds 9 unit tests covering both changes.
2026-07-21 11:14:55 -06:00
Dark-Alex-17
cab1e72b97
fix: fix typo in Gemini's generation_config property to use camelCase exclusively
2026-07-21 11:11:00 -06:00
Dark-Alex-17
cd4bf245e9
chore: updated models.yaml
2026-07-21 11:09:51 -06:00
Dark-Alex-17
82bf6176f8
fix(oauth): treat missing expires_in as non-expiring device_code token
...
GitHub OAuth Apps issue tokens that never expire and omit expires_in from
the response (they only send access_token, token_type, scope). RFC 6749 §5.1
allows this — expires_in is only REQUIRED for tokens that actually expire.
When expires_in is missing, save the token with expires_at = i64::MAX so
prepare_oauth_access_token never tries to refresh. If the token is ever
revoked server-side, the eventual 401 on the API call is the user's cue
to re-authenticate.
No effect on providers that include expires_in (Moonshot etc. — unchanged).
2026-07-21 10:32:47 -06:00
Dark-Alex-17
d407eb5a6a
fix(oauth): send Accept: application/json in device flow requests
...
GitHub's device flow endpoints (and likely other RFC 8628 servers) default
to responding in application/x-www-form-urlencoded unless the client asks
for JSON via the Accept header. Our device auth and polling paths both call
.json() on the response and were failing to decode form-urlencoded bodies
with 'expected value at line 1 column 1'.
Adds Accept: application/json to:
- The device authorization POST in run_device_code_flow
- The device_code polling POST (on the RequestBuilder returned by build_token_request)
RFC 6749 §5.1 already specifies JSON as the token response format, so this
is spec-compliant across providers. Servers that already default to JSON
(Moonshot, etc.) ignore the redundant header.
2026-07-21 10:30:36 -06:00
Dark-Alex-17
6f2594712f
refactor: Standardized paths module function names to not use 'path' in the name and to just always be either 'dir' or 'file'
CI / All (ubuntu-latest) (push) Failing after 25s
CI / All (macos-latest) (push) Has been cancelled
CI / All (windows-latest) (push) Has been cancelled
2026-07-21 10:15:42 -06:00
Dark-Alex-17
79d43c8791
docs: config.example.yaml example for Device Authorization Grant
...
Adds a commented example under the openai-compatible client section showing
how to configure flow: device_code for RFC 8628 device flow. Uses Moonshot's
kimi-code endpoints as the illustrative reference (users supply their own
client_id — no bundled defaults per §5.8 of the design plan).
2026-07-20 15:27:20 -06:00