Commit Graph

1800 Commits

Author SHA1 Message Date
Armin Ronacher 2fbdff9dab fix(coding-agent): fix pnpm self-update bin-dir
closes #5689
2026-06-14 01:31:50 +02:00
Armin Ronacher 9e9fc79478 fix(coding-agent): treat uppercase config values as literals
closes #5661
2026-06-13 21:24:22 +02:00
Armin Ronacher b4bff7f0d0 fix(coding-agent): avoid project trust prompt for update (#5674) 2026-06-12 23:37:16 +02:00
Armin Ronacher adf567c1c6 fix(coding-agent): rechain fork paths without labels
closes #5669
2026-06-12 18:50:31 +02:00
Armin Ronacher 1b2c32c653 fix(coding-agent): resolve authenticated slash model ids
closes #5643
2026-06-12 18:32:42 +02:00
Armin Ronacher 6102dd2084 fix(coding-agent): handle missing export themes
closes #5596
2026-06-12 17:56:43 +02:00
Armin Ronacher 1fc80f4f6c fix(coding-agent): preserve custom fallback thinking
closes #5552
2026-06-12 17:26:42 +02:00
Vegard Stikbakke 1da903983a fix(coding-agent): skip first-time setup for forks (#5627) 2026-06-11 21:36:26 +02:00
Mario Zechner 019b022068 Merge remote-tracking branch 'origin/main' into model-registry 2026-06-11 00:43:04 +02:00
Mario Zechner 6e98573f24 feat(ai): sync model reads, explicit async refresh
Provider.getModels() is sync-only (last-known list; must not throw) with
an optional refreshModels() where dynamic providers fetch. The
sync-or-async union invited latent sync assumptions that would detonate
on the first dynamic provider; async-only reads would force sync
consumer surfaces (extension find/getAll) through Promises. Sync reads
plus an explicit refresh verb keeps the contract single and the
staleness visible.

Models.getModels()/getModel() are sync best-effort reads;
Models.refresh(provider?) rejects with ModelsError(model_source) for a
single provider and is concurrent best-effort across all providers.
createProvider() takes a models array plus an optional refreshModels
fetcher (stored on success, in-flight calls deduped, list unchanged on
rejection). forceRefresh options are gone.

Also finishes the in-progress AuthStorage fallbackResolver removal
(drops the now-unused includeFallback option from getApiKey).
2026-06-10 23:30:04 +02:00
Mario Zechner 8a0903ebf2 feat(ai): compat entrypoint, core-only root barrel (phase 5)
The root barrel is now core-only and side-effect free: types,
createModels/createProvider, auth substrate, lazyStream/lazyApi, faux,
utils. Generated catalogs, api-registry, env-api-keys, images, global
stream functions, and per-API lazy wrappers leave the root.

New @earendil-works/pi-ai/compat preserves the old surface verbatim as
a strict superset of the root: api-dispatch stream/complete with env
key injection, the builtin registration side effect (skip-if-present so
it cannot clobber earlier overrides), deprecated getModel/getModels/
getProviders aliases of the new getBuiltin* reads in providers/all,
lazy api wrappers + setBedrockProviderModule, and image generation.
Compat dies with the coding-agent ModelManager migration.

Packaging: exports map gains ./compat, ./providers/*, ./api/*;
sideEffects array lists only the effectful modules.

Old-global imports across agent/coding-agent/examples and pi-ai tests
switch to /compat (path-only; compat is a superset). The coding-agent
extension loader resolves the pi-ai ROOT specifier to compat, so
existing user extensions using the old global API keep working at
runtime until compat is removed. vitest configs alias /compat to src;
browser smoke imports old globals from /compat.
2026-06-10 21:17:12 +02:00
Vegard Stikbakke 406a2214aa fix(coding-agent): refine setup copy 2026-06-10 19:55:19 +02:00
Vegard Stikbakke 0ab2aa86af feat(coding-agent): add experimental first-time setup flow (#5587)
Behind PI_EXPERIMENTAL=1, show a first-time setup dialog on interactive startup when the default agent directory is used and settings.json does not exist. The dialog preselects the detected terminal appearance with an explicit dark/light choice (live preview) and asks for opt-in analytics data sharing. Submitting writes settings.json, which serves as the completion marker; opting in stores a generated trackingId. Escape at any point skips out of setup.
2026-06-10 12:11:49 +02:00
haoqixu aa03982169 fix(coding-agent): parse :thinking suffix from custom model IDs in fallback path
Fixes #5552
2026-06-10 02:01:35 +08:00
Mario Zechner 143b251e77 Merge branch 'main' into prompt-template-defaults 2026-06-09 14:23:00 +02:00
Mario Zechner ae7a885da2 Closes #5045, /new should not persist if original session was ephemeral 2026-06-09 14:17:33 +02:00
Mario Zechner b7e721cb38 feat(tui): support autocomplete trigger characters
closes #4703
2026-06-09 14:15:39 +02:00
Danila Poyarkov d81ac20920 feat(coding-agent): add prompt template argument defaults 2026-06-09 15:12:07 +03:00
Mario Zechner d041b5cc35 Merge pull request #5549 from earendil-works/approval-settings
feat(ui): Improved project approval settings
2026-06-09 13:47:29 +02:00
Armin Ronacher c20ea06d4a fix: --help and --version redirect 2026-06-09 13:43:54 +02:00
Mario Zechner 9632bddd38 fix(coding-agent): stabilize OAuth login prompt rows
closes #5433
2026-06-09 13:41:08 +02:00
Armin Ronacher 359a0769f1 fix: simplify help 2026-06-09 13:36:05 +02:00
Armin Ronacher 5cb4f597f7 feat(ui): Improved project approval settings 2026-06-09 13:25:54 +02:00
Vegard Stikbakke 66335d3a49 feat(coding-agent): add experimental feature guard (#5547) 2026-06-09 13:23:07 +02:00
Mario Zechner 28c83e8385 fix(coding-agent): sync queue modes on reload
closes #5377
2026-06-09 13:21:59 +02:00
Mario Zechner 1906074369 fix(coding-agent): handle invalid models json during migration
closes #5418
2026-06-09 13:14:24 +02:00
Mario Zechner e4907b3b09 fix(tui): restore prompt draft after history browsing
closes #5494
2026-06-09 13:06:13 +02:00
Mario Zechner db3f9953ee feat(coding-agent): expose project trust to extensions
closes #5523
2026-06-09 13:03:59 +02:00
Armin Ronacher 20b78eafb4 fix(coding-agent): fix changelog links
Fixes #5516
2026-06-08 20:31:20 +02:00
Mario Zechner d8aef0feff feat(coding-agent): allow project trust extensions to defer 2026-06-08 13:38:29 +02:00
Mario Zechner 718215bd95 feat(coding-agent): add extension project trust decisions 2026-06-08 12:59:08 +02:00
Mario Zechner 38f18be447 fix(coding-agent): persist implicit project trust on reload 2026-06-08 10:08:01 +02:00
Mario Zechner 72fd911356 fix(coding-agent): neutralize compaction summarization prompt
closes #5401
2026-06-07 11:28:27 +02:00
Mario Zechner eb43bd4493 fix(coding-agent): export package asset path helpers
closes #5415
2026-06-07 11:25:15 +02:00
Mario Zechner b8f6f660e7 fix(ai): honor OpenAI Responses developer role compat
closes #5456
2026-06-07 11:07:36 +02:00
Mario Zechner 22ac2713a3 feat(coding-agent): export RPC extension UI types
closes #5455
2026-06-07 10:56:01 +02:00
Mario Zechner ff3e9df5f5 fix(coding-agent): make trust input traversal portable 2026-06-06 22:32:35 +02:00
Mario Zechner 89a92207f1 feat(coding-agent): add project trust gating 2026-06-05 10:51:43 +02:00
Mario Zechner db594d3a59 feat(coding-agent): show cache hit rate in footer 2026-06-05 10:51:43 +02:00
Mario Zechner 3e73204242 Merge pull request #5371 from Perlence/fix/skill-user-message-spacing
fix(coding-agent): add a space between the skill and user messages
2026-06-04 23:52:17 +02:00
Mario Zechner c45787411e Fix tool expand hint punctuation styling
closes #5359
2026-06-04 23:44:25 +02:00
Sviatoslav Abakumov e9a9322199 fix(coding-agent): add a space between the skill and user messages 2026-06-03 22:42:38 +04:00
Mario Zechner 564ad70fb8 Merge pull request #5333 from vastxie/zai-coding-cn-provider
feat(ai): add ZAI Coding Plan China provider
2026-06-03 01:07:01 +02:00
Armin Ronacher ea3465a8e3 fix(coding-agent): move temporary extension cache (#5345) 2026-06-03 00:44:21 +02:00
Armin Ronacher 135fb545f9 fix(coding-agent): set auth file mode on creation 2026-06-03 00:32:54 +02:00
Armin Ronacher ba6e5298df fix(oauth): harden browser launch handling 2026-06-02 23:15:46 +02:00
Armin Ronacher a98e087e5d fix(coding-agent): harden git package install paths 2026-06-02 18:20:35 +02:00
弎水 51df39b9b9 feat(ai): add ZAI Coding Plan China provider 2026-06-02 23:39:56 +08:00
Mario Zechner 25a4a8ed1e Add Ant Ling provider 2026-06-02 16:37:44 +02:00
Mario Zechner 6cb23f9b5d Fix HTML export URL sanitization 2026-06-02 16:32:18 +02:00