Commit Graph
536 Commits
Author SHA1 Message Date
Daniel Buckner 5b1fd81815 fix: vision slot filters to image-capable + custom models (was relaxing for all providers)
The prior change made the vision slot show every model (image-capable first),
which relaxed the filter for built-in providers too — built-in text-only models
became selectable for Vision. Centralize the vision rule in ModelMenuList:
built-ins must report image input; custom-endpoint models stay selectable (their
capability may be unreported). Image-capable still float first.
2026-10-27 15:56:17 -07:00
Daniel Buckner 870a1ad343 feat: custom endpoint as a first-class provider (add via dropdown, required key, vision ordering) 2026-10-27 15:50:51 -07:00
Daniel Buckner 07b6403d94 feat: custom OpenAI-compatible endpoint as a first-class provider (vision + context from /models) 2026-10-27 15:48:16 -07:00
amosblomqvist 4f4b5643d4 test: await completed ChatGPT sign-in and consent saves
Replace arbitrary event-loop budgets in two release-gate tests with fresh per-attempt sign-in notifications and the actual consent control reply, bounded by a clear watchdog. Retain all final-state assertions and explicitly verify successful connected/error-free completion.

Controlled token/save gates demonstrate both old 100-turn waits return before completion; the corrected waits remain pending and retain the final persistence/UI assertions after release. Add small watchdog result/error/timeout tests. No production, workflow or dependency changes.

Isolated checks: focused 87/87, full suite once 2517/2517, full ESLint and typecheck. The full run preceded three runtime-erased non-null array-index annotations; focused tests/typecheck/full ESLint passed again on final source.
2026-10-27 23:44:48 +02:00
amosblomqvist 8337836199 Use sans settings labels and link Deepgram key setup 2026-10-27 22:32:55 +02:00
amosblomqvist 27e277099f Align dictation controls with settings dropdowns and show setup guidance 2026-10-27 22:18:01 +02:00
amosblomqvist f5a655b2f9 Preserve native Enter activation on dictation language options 2026-10-27 22:01:16 +02:00
amosblomqvist fbafc5e53a Finish Deepgram language settings with shared searchable picker 2026-10-27 21:51:09 +02:00
amosblomqvist 88266eaaf4 Merge PR114 dictation foundation for approved provider-row finishing
Preserve original contributor commit 3bb28e5f29. Resolve only the settings-dialog conflict by retaining current General/update behavior: the donor General-only language placement is explicitly superseded by the human-approved row BELOW the full-width Deepgram key. The assigned implementation worker will implement that placement and approved shared dropdown finishing. Foundation only, not a checked candidate.
2026-10-27 21:33:40 +02:00
amosblomqvist 00a7d1437c Merge accepted main probe baseline before maintenance checks 2026-10-27 21:13:59 +02:00
amosblomqvistandaksalatdev f01fdf3260 fix: require a successful probe result before handoff
Adapt the bounded probe-completion foundation from PR #130 by aksalatdev (source commit 535202bebe038fa1e0648f5df809d5ccfc26d071), not its mixed stream-salvage implementation.

Require a non-failed call followed by a matching probe_done result with neither isError nor explicit details.ok:false. Preserve older clean acknowledgments, saved attempts, and all existing handoff/retry/provider policies. Share the native completion seam with phase detection and exclude explicit refusals from UI phases.

Verify retained failed-probe Retry recovery with real agent/tool composition and synthetic engines: one fresh conclusion, one handoff, then teacher selection, without stored-tool replay. Focused tests 58/58; full tests 2473/2473; typecheck and full ESLint pass in isolated storage with scrubbed provider credentials.

Co-authored-by: aksalatdev <73862605+aksalatdev@users.noreply.github.com>
2026-10-27 20:49:04 +02:00
amosblomqvist 31ea0c9f52 Integrate approved PR #216 maintenance foundation 2026-10-27 20:37:01 +02:00
amosblomqvist 354bd34c0c Merge PR #184 test typing compatibility for combined send contract 2026-10-27 19:18:20 +02:00
amosblomqvist 3b97056d01 test: infer the session send return type in refusal coverage
Avoid hardcoding Promise<void> so the test also typechecks with PR154's Promise<boolean> admission result. Type-only correction; no product behavior changes.
2026-10-27 19:17:27 +02:00
amosblomqvist 320d5e4704 Merge PR #154 short opening URLs and recoverable prompt handoff 2026-10-27 19:13:19 +02:00
amosblomqvist 3b29b5e9e7 fix: retire stale composer recovery drafts before retry
A failed-response Retry submits no composer text. Retire the earlier accepted text send's recovery fallback synchronously so a Retry model/key refusal cannot restore it over the current unsent draft. Never clear a later ordinary send's fallback at async settlement.

Add key/model503, superseding-draft and ordinary-refusal coverage. Verified 183 focused tests, typecheck, full ESLint, production build, and a red/green live production regression plus ordinary-draft recovery; no external provider calls.
2026-10-27 18:56:55 +02:00
amosblomqvist 1ff60b4681 fix: recover opening refusals after view teardown 2026-10-27 18:39:42 +02:00
amosblomqvist 5984eb4914 fix: render failed-response retry refusals as readable text
Decode only Retry's HTTP 400 error field for the existing banner. Preserve raw model/key refusal envelopes and other submission-error handling.

Verified on the accepted-main integration: 2424 full-suite tests, typecheck, full ESLint, production build and isolated synthetic production-browser Retry/Submit smoke. No real provider calls.
2026-10-27 18:35:31 +02:00
amosblomqvist f24fda926a fix: finish new-session opening-message handoff 2026-10-27 18:19:38 +02:00
amosblomqvist 282f01e1f4 Merge accepted local main into PR #184 working branch 2026-10-27 18:12:09 +02:00
amosblomqvist 8ca291526c Merge accepted local main into PR #154 working branch 2026-10-27 17:13:15 +02:00
amosblomqvist 82c6999a63 fix: preserve failed responses when retrying model calls
Keep failed attempts in the saved transcript and omit only trailing failures from Retry's temporary agent history. Use the matching temporary prefix length when persisting genuinely new output.

Preserve the error notice across plan/compaction markers, refuse Retry after later compaction, and avoid synthesizing results for tool calls inside failed generations while retaining Pi's native filtering.

Verified: 173 focused Retry/session/compaction-projection/practice-record tests, typecheck, changed-file lint, and diff --check. No app launch or real provider calls.
2026-10-27 16:49:29 +02:00
amosblomqvist 06714e5998 Keep unresolved session identity separate from Strong fallback 2026-10-27 16:21:54 +02:00
amosblomqvist 419dcf1ba2 Restore exclusive provider-first setup recovery 2026-10-27 16:12:13 +02:00
amosblomqvist c1ef6d6822 Merge PR #211 dynamic dock sizing with reviewed viewport corrections 2026-10-27 15:47:15 +02:00
amosblomqvist d30acd4fdd fix: finish measured dock sizing and short-window scrolling 2026-10-27 15:27:08 +02:00
amosblomqvist ae380b156b Merge model-label, OpenCode key-row and setup initialization fixes 2026-10-27 15:01:44 +02:00
amosblomqvist d6ae6f3256 Merge compaction summary projection and incomplete-checkpoint guard 2026-10-27 14:57:36 +02:00
Casimir ArlabosseandClaude Opus 5.5 cb7e719e92 test: resolve golden fixture path with import.meta.dirname
new URL(import.meta.url).pathname keeps percent-encoding, so the test
failed with ENOENT when the checkout path contains a space. Use
import.meta.dirname like the other tests.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-27 15:46:28 +08:00
amosblomqvist 683eb93bcc Fix model labels and catalog-backed setup initialization 2026-10-26 19:43:09 +02:00
amosblomqvist b81f0a3455 fix: avoid replaying superseded compaction summaries 2026-10-26 19:08:15 +02:00
amosblomqvist 88ba42fd37 fix: allow repairing model slots after subscription disconnect 2026-10-26 18:50:54 +02:00
Evangelos Stavropoulos a572675900 fix: let the learner retry a turn whose model call failed 2026-10-26 14:31:51 +02:00
amosblomqvist 8c277f8320 Merge source-preserving math content presentation 2026-10-26 05:26:13 +02:00
amosblomqvist d3c8709bd2 fix: preserve source data and recover tool math at presentation 2026-10-26 04:49:47 +02:00
amosblomqvist c1d044f91b Merge server-owned web subscription connections 2026-10-26 03:18:19 +02:00
amosblomqvist c0c670b810 feat: enable subscription connections in web and dev 2026-10-26 03:00:40 +02:00
amosblomqvist a19f53b2b4 test: preserve PDF history guards alongside canonical result delivery 2026-10-26 02:57:33 +02:00
amosblomqvist 6370c9d618 Merge durable background job delivery and recovery 2026-10-26 02:39:59 +02:00
amosblomqvist 90828cef49 fix: scope wake settlement ownership and allow legacy result deletion 2026-10-26 02:04:18 +02:00
amosblomqvist c7c4bd2cbe Merge Claude learner-facing message output 2026-10-26 01:57:26 +02:00
amosblomqvist 87b04cc86e fix: deliver Claude teaching prose through an output tool 2026-10-26 01:55:57 +02:00
amosblomqvist e851432f4c fix: separate worker completion from durable session delivery 2026-10-26 01:55:52 +02:00
ferponse 472844e691 fix: keep the opening chat text out of the URL
A long first message in ?prompt= exceeds Node's header limit. The chat GET returns 431 and Electron commits an empty window. Stash the text in sessionStorage and open /chat/<id>.
2026-10-26 00:45:16 +01:00
amosblomqvist 926486e37b Merge PDF home-relative path consistency 2026-10-26 01:34:49 +02:00
amosblomqvist d9fa314c20 fix(pdf): resolve learner paths relative to home 2026-10-26 01:18:53 +02:00
amosblomqvist 6701503801 fix: isolate generated SVG figures as images 2026-10-25 23:29:00 +02:00
amosblomqvist fc3673466d Merge bounded session answer and stream recovery 2026-10-25 20:46:25 +02:00
amosblomqvist 7d65fa8754 fix: recover session submissions and failed turn settlement 2026-10-25 19:45:17 +02:00
amosblomqvist dc131a311f Merge automatic-update preference gate and Settings controls 2026-10-25 19:27:00 +02:00