<feed xmlns='http://www.w3.org/2005/Atom'>
<title>pantograph.git/src/auth_manager.zig, branch main</title>
<subtitle>Unnamed repository; edit this file 'description' to name the repository.
</subtitle>
<id>https://code.tjp.lol/pantograph.git/atom?h=main</id>
<link rel='self' href='https://code.tjp.lol/pantograph.git/atom?h=main'/>
<link rel='alternate' type='text/html' href='https://code.tjp.lol/pantograph.git/'/>
<updated>2026-06-23T16:53:26Z</updated>
<entry>
<title>ponytail simplifications to panto cli and lua extensiosn</title>
<updated>2026-06-23T16:53:26Z</updated>
<author>
<name>t</name>
<email>t@tjp.lol</email>
</author>
<published>2026-06-23T15:38:23Z</published>
<link rel='alternate' type='text/html' href='https://code.tjp.lol/pantograph.git/commit/?id=69a1ee138bb78ad4663fe2d9e58678f7b0d07b74'/>
<id>urn:sha1:69a1ee138bb78ad4663fe2d9e58678f7b0d07b74</id>
<content type='text'>
</content>
</entry>
<entry>
<title>models.dev list validation against actual provider's /models</title>
<updated>2026-06-16T02:52:24Z</updated>
<author>
<name>t</name>
<email>t@tjp.lol</email>
</author>
<published>2026-06-16T02:51:54Z</published>
<link rel='alternate' type='text/html' href='https://code.tjp.lol/pantograph.git/commit/?id=8206642d3a1736aaf928a5b9a732e747f5294228'/>
<id>urn:sha1:8206642d3a1736aaf928a5b9a732e747f5294228</id>
<content type='text'>
</content>
</entry>
<entry>
<title>anthropic credentials in oauth providers (eg copilot)</title>
<updated>2026-06-15T23:18:20Z</updated>
<author>
<name>t</name>
<email>t@tjp.lol</email>
</author>
<published>2026-06-15T23:08:00Z</published>
<link rel='alternate' type='text/html' href='https://code.tjp.lol/pantograph.git/commit/?id=9f8719929dbd1326d9b327885c4da319c6d2673c'/>
<id>urn:sha1:9f8719929dbd1326d9b327885c4da319c6d2673c</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Add Codex Responses support and session debugging</title>
<updated>2026-06-15T21:08:32Z</updated>
<author>
<name>t</name>
<email>t@tjp.lol</email>
</author>
<published>2026-06-14T05:45:59Z</published>
<link rel='alternate' type='text/html' href='https://code.tjp.lol/pantograph.git/commit/?id=02b4c7a35ac0b714bc045d54fb4bb45d1ce4e490'/>
<id>urn:sha1:02b4c7a35ac0b714bc045d54fb4bb45d1ce4e490</id>
<content type='text'>
Teach provider config and auth resolution about the Codex Responses
dialect, including user-facing `style = "openai_responses"` with
`dialect = "codex"`. Serialize and parse Responses traffic with
provider-specific reasoning replay, assistant phase metadata, and robust
function-call assembly keyed by `output_index` so streamed tool inputs
survive proxy quirks and empty terminal payloads.

Also persist thinking origins and message metadata across sessions, add
the Anthropic interleaved-thinking header switch, write per-session
debug logs, and improve the TUI and scripts for inspecting tool output
and session costs.
</content>
</entry>
<entry>
<title>auth: flatten [auth.&lt;name&gt;] config + ${...} substitution</title>
<updated>2026-06-15T21:08:32Z</updated>
<author>
<name>t</name>
<email>t@tjp.lol</email>
</author>
<published>2026-06-13T20:24:31Z</published>
<link rel='alternate' type='text/html' href='https://code.tjp.lol/pantograph.git/commit/?id=20e6e08a42240aef0b36ecf627cbcde921912071'/>
<id>urn:sha1:20e6e08a42240aef0b36ecf627cbcde921912071</id>
<content type='text'>
Collapse the auth schema: infer `type` from keys, replace key/key_env_var with
a single `key` (resolved via substitution), flatten the exchange to flat
`exchange_*` keys, and drop the auth-level headers tables in favor of reusing
the provider's `extra_headers` on the auth HTTP calls. Add `${sibling}` and
`${env:VAR}` substitution over auth values (GitHub Enterprise = set `domain`).
Restore api_key-empty → provider-drop. Update default config, docs, and tests.
</content>
</entry>
<entry>
<title>auth: openai_responses provider for Codex subscription (Tier 2)</title>
<updated>2026-06-15T21:08:32Z</updated>
<author>
<name>t</name>
<email>t@tjp.lol</email>
</author>
<published>2026-06-13T18:22:18Z</published>
<link rel='alternate' type='text/html' href='https://code.tjp.lol/pantograph.git/commit/?id=eb19fd812e15de5a6930daf2fcd0b2b0757687c7'/>
<id>urn:sha1:eb19fd812e15de5a6930daf2fcd0b2b0757687c7</id>
<content type='text'>
Add the OpenAI Responses API wire dialect (openai_responses APIStyle +
OpenAIResponsesConfig), a request serializer (instructions/input items,
flat function tools, reasoning, store:false, include encrypted reasoning),
and a streaming state machine over the typed response.* SSE events mapping
to the shared block model. Wire dispatch, buildProviderConfig, the C-ABI
free switch, and the reasoning selectors. Ship a commented Codex example in
the default config.

Implemented from the Responses API docs + the open-source Codex client and
covered by fixture tests; live verification against a ChatGPT plan is still
required (documented).
</content>
</entry>
<entry>
<title>auth: CLI auth manager + `panto auth` subcommands</title>
<updated>2026-06-15T21:08:32Z</updated>
<author>
<name>t</name>
<email>t@tjp.lol</email>
</author>
<published>2026-06-13T18:09:00Z</published>
<link rel='alternate' type='text/html' href='https://code.tjp.lol/pantograph.git/commit/?id=73324a15aa524cf75deebc4172f5a1f0d0051bc6'/>
<id>urn:sha1:73324a15aa524cf75deebc4172f5a1f0d0051bc6</id>
<content type='text'>
Add src/auth_manager.zig (turn-time resolution: load→login→refresh→exchange→
build credential, patch live config) and `panto auth status|login|logout`
subcommands with a line-based device-code presenter. Add config_file.loadFromString.
</content>
</entry>
</feed>
