Chronos 0.2.2
Resolves the #5–#11 milestone (provider-agnostic, multi-provider login, agentic
vision experts) and folds in the pre-release adversarial-review hardening.
Added
- Multiple source references per data row (#5): chronos_page/bbox/source may be
lists, rendering one clickable citation chip per reference; scalars stay
backward-compatible. - Resizable data-viewer columns: drag a header's right edge, double-click to
auto-fit. - First-class in-panel login (#6): header "Log in" button, a "no models"
banner, the chronos.login command, and a Getting Started walkthrough — plus
Anthropic subscription (Claude Pro/Max) OAuth sign-in. No more pi /login in chat. - Vision experts run a bounded agentic tool loop (#11): they can view_region /
view_page and read the workspace to self-zoom, instead of answering from one
fixed crop. Read-only by default; bash/write/edit are human-gated per call. - Auto-generated session names (#8) from a cheap, provider-aware model, cached
in a sidecar with graceful fallback to the first-message truncation. - Auto-start the agent when a Chronos workspace (a .chronos/ folder) is opened
(opt out with chronos.autoStartSession). - Dedicated setup command + Getting Started walkthrough.
Changed
- Provider-agnostic (#7): no Gemini-specific API-key prompt and no hardcoded
Gemini default expert model; experts fall back to the orchestrator's current
model, and model recommendations moved to the docs. - "N messages" in the history list counts only user prompts (#9).
- A new session resets the page viewer + source dropdown so the display matches
the (empty) selection (#10). - Migrated pi peer deps to @earendil-works (0.79).
Fixed / Security (pre-release adversarial review)
- Read-only experts can no longer read .chronos/.env (provider API keys) via
read_file / list_dir / grep — the dot-dir/SKIP_DIRS policy now covers every
path-based tool. - A mid-flight expert cancel is no longer committed as a successful turn (it had
written "(empty response)" to output files and dropped the turn on restore). - Column-resize and splitter drags use pointer capture, so a pointer-up released
outside the webview can't leak the move listener (previously stuck a column to
the cursor with no recovery short of reload). - Auto-start is gated on a reconciled bootstrap, so it never fires an unsolicited
pi install; concurrent starts are serialised to avoid a double panel. - Credential files (.chronos/.env and ~/.pi/agent/auth.json) are written 0o600;
the chronos.piPackageSource / piNpmPackage dev overrides are machine-scoped so
a workspace can't inject them into the setup shell command. - Helper-model ladder prefers a provider's current small tier / rolling "*-latest"
alias over the registry's retired "cheapest" (which 404s); plus view_region
bbox-bounds clamping and history-label fixes.
Full diff: v0.2.1...v0.2.2 (PR #12)