Commit Graph
9 Commits
Author SHA1 Message Date
Ole André Vadla Ravnås 0e933206fb Boot virtual machines from the target picker
Add a machine abstraction to LumaCore, with QEMU as its first
backend: templates mirroring frida-core's test guests, a QMP client,
and a display that maps QEMU's surface over D-Bus rather than
copying frames.

Leave readiness to the user: drive the guest, mark it ready, and come
back to that snapshot later. Keep the machine in the project, so
booting it again resumes where it was marked. Hand the stub to
addBareboneDevice, so it joins the picker beside the other devices.

Show the display while booting, and afterwards in a Machines panel,
which the side panel now models as an enum to share its slot.
2026-08-20 14:52:52 +02:00
Ole André Vadla Ravnås 1e66b7a4f9 Say what a failed snippet did, and where
A compile error reads in words with a dot at the failing spot.
Evaluate splits from evaluate-and-inspect, the snippet spins while
it runs, and print it, format and browse sit on GT's keys.
2026-08-13 12:46:08 +02:00
Ole André Vadla Ravnås a9917a2b4c Browse and edit classes natively
Open any class in a browser folded into the inspector: its methods,
class-side ones too, a method saved from the editor, a sent method
opened in place, and a wrench offering fixes for an undeclared name.
2026-08-13 12:46:08 +02:00
Ole André Vadla Ravnås 6080bff60c Open Pharo values in panes beside the page
Each value opens in a pane on the gutter, beside the page rather
than under it. Panes drag, close and walk, a crowded tab strip
scrolls, and the split and its divider stay where they were put.
2026-08-13 12:46:08 +02:00
Ole André Vadla Ravnås b1a8cf484c Rework New Mission dialog
Mission defaults (provider, model, budgets, thinking, effort)
and provider base URLs move from the project document to
LumaAppState. Opening a project on another machine no longer
drags in someone else's model choice or localhost URL.

The dialog loads models asynchronously, shows loading and
error states inside a stable "Model" row, debounces typed
API keys with a length floor, and persists the key on the
first successful fetch.

Base URL field surfaces only for providers that opt in via
capability (local). Reasoning effort dropdown surfaces for
Claude Code; the extended-thinking toggle is hidden when
the provider doesn't support it.
2026-05-11 14:39:18 +02:00
Ole André Vadla Ravnås f9c760ff10 agent: List Claude Code subprocess provider first
Reorder the provider registry so Claude Code (subprocess)
shows up at the top of the New Mission picker, and update
the ProjectUIState defaults to match — fresh projects pick
"claude-code" + "default" instead of Anthropic Sonnet.
2026-05-09 22:48:07 +02:00
Ole André Vadla Ravnås b9094d4cf4 ui: Remember last new-mission settings
Provider, model, token budgets, and thinking config persist
on the project's UI state, so opening New Mission a second
time pre-fills the previous choices instead of resetting.
The API key continues to live in the credential store.
2026-05-09 21:37:17 +02:00
Ole André Vadla Ravnås 98cecac06d core: Make UI state structs Equatable
Synthesised conformance lets the host de-dupe writes before
publishing them to SwiftUI.
2026-05-07 19:52:39 +02:00
Ole André Vadla Ravnås 91385e11a4 core: Wire ITrace, deltas, and UI state in engine
Engine subscribes to module/thread deltas and trace updates, drives
the unified ITrace lifecycle, paginates set-trace-data uploads with
lazy server-stat resume, and falls back to a paginated +fetch with
optional first-paint prefix and onProgress reporting. Server-driven
trace-data-progressed broadcasts feed back as cache invalidations.

ProjectStore picks up itrace, project_ui_state and session_ui_state
tables; the schema is created with if-not-exists, no migrations.
SessionOp carries upsertTrace, removeTrace, traceDataProgressed,
and the module/thread updates are now ModuleDelta/ThreadDelta.
2026-05-07 16:40:30 +02:00