TaskWraith 1.8.5
1.8.5 - 2026-07-20
Added
- Kimi ACP sessions can resume as durable, isolated seats. Native ACP
continuity now survives TaskWraith run boundaries, with seat checkpoints,
resumable provider sessions, and bounded prompt compaction for longer-lived
work. - Kimi K3 exposes selectable thinking and plan-aware context. K3 offers
Low, High, and Max reasoning controls, while the usable context limit follows
the detected Moonshot plan from 256K through as much as 1M rather than
advertising one fixed window to every account. - Needs your input surfaces pending agent questions. A global banner and
Sidebar/Approvals attention markers call out chats that are waiting on a
user answer, and the unfocused desktop window can bounce or flash so a
parked question is harder to miss. - Node Graphs show project thread relationships. A Work-scoped sidebar
section and thread-graph pane project user-drawn dependency edges between
chats, with SVG connectors for the active project map. - Execution Graph, Stack, and Map inspect main-owned run structure. Main
owns stack runtime, permission ceilings, terminal joins, and dispatch wiring
so repository diagnostics and attention stacks stay coherent across
multi-step work. - PDF text extraction and on-device OCR are brokered tools. Bundled
pdfjs-disttext-layer extraction plus generalized Vision OCR let agents
read PDF text and image contents through TaskWraith-hosted tools rather than
opaque provider-side parsing. - Projects have a guarded reference library. A selected project now exposes
a References section for cataloguing relevant files, folders, and links. Each
row can be excluded from or restored to the library, removed, and—when it is
a file or folder—checked for last-known availability. The main-owned Projects
registry persists the metadata through main-renderer-only IPC and the
renderer facade. Its file/folder picker remains deliberately separate from
access-grant pickers, verification performs one main-side existence check
without reading content, and URL verification is rejected rather than
fetching the network. A reference grants no file or network access and is
never indexed or injected into agent context. - Sub-thread status ticker and Ensemble mailbox delivery. Parent chats show
a live sub-thread status ticker, and Ensemble parents can drain a durable
sub-thread mailbox into the idle authority seat once so returned worker
results reach Boss/Captain context without a manual paste. - Host-rerun continuation keeps Codex work on a fresh run identity. After a
host rerun, TaskWraith mints an independent continuation run that resumes the
existing provider session instead of double-joining history on the approval
run or spawning a virgin seat. - The host sky follows local conditions. Weather, solar and lunar state,
and the starfield can now shape the optional sky effects. When those effects
are enabled, TaskWraith resolves the host's approximate location through
ipapi.cowithipwho.isas fallback, rounds coordinates to 0.1 degrees
(about 11 km) before requesting Open-Meteo data, and stores the result in the
localhost-weather-cache.json. No workspace or task content is sent as part
of that lookup.
Changed
- Cursor runs again under Path-B contained native sandbox (+ write).
Managed Cursor is always-enabled (no brittle per-build fingerprint gate) and
re-admitted through the shared CLI transport. Production argv always comes
from the contained builders that hard-pin--sandbox enabled, with separate
read-only and write-capable argv shapes routed by seat permission—never a
bare uncontainedcursor-agentspawn, never sandbox-disabled / force /
yolo / resume-token argv from the production entry. - Fresh Ensemble panels start small and role-shaped. New Ensemble chats now
seed at most four active seats (Boss, Captain, Specialist, and an independent
Outsider), while new saved roster presets begin with the first three roles
and room for at most five. The twenty-seat limit remains a capacity ceiling
rather than the default panel size. - Primary navigation is organized as Chat, Code, and Work. The surface
split makes conversation, workspace activity, and projects/workflows easier
to distinguish. Switching or choosing a workspace from a pristine draft now
preserves its selected provider, model, reasoning, permission posture, and
unsent composer text. - Provider brand marks appear on the transcript filter rail. Official
provider logos replace ad-hoc colour-only chips so multi-provider transcripts
are easier to scan. - Solo tool grants stay editable while a run is live. Permission grants for
solo seats can be adjusted during an active turn without waiting for the run
to finish. - Projects now use a main-backed optimistic registry. Shared pure registry
operations, a main-ownedprojects.json, snapshot/apply/import IPC, change
broadcasts, one-shot legacy import, and explicit main-renderer channel
classification establish the durable boundary. The renderer store now uses
that boundary through an optimistic facade. Main-owned Project Work profiles
also establish an atomic home-chat claim for each project, with Work-surface
controls to set, clear, and open the claimed home. View-only preferences such
as the active surface and expanded state remain in renderer storage, while
per-surface search queries stay session-only. An unhomed project can also
Start Project Home: TaskWraith opens an ordinary pristine General draft
and claims it for that project on the first committed message or run, while
an abandoned draft remains reusable/reapable like any other pristine draft. - The right dock remembers the surface for the current context. Chat and
Code keep the last-selected dock destination per chat for the current app
session. In Work, a chat that belongs unambiguously to one project uses that
project's dock memory, so moving among the project's member threads retains
the same destination; ambiguous membership safely falls back to the chat.
Fixed
- Provider and orchestration edges are more resilient. Fixes cover Kimi
transport and usage hardening, Ensemble roster imports, stale broker sockets,
and related run-lifecycle cleanup. - Grok broker tools advertise under the TaskWraith MCP namespace. The
progressive gateway presents Grok-facing broker tools as TaskWraith rather
than a legacy unqualified surface, and parent-provider binding prefers the
live run session so approval modals name the correct seat. - External activity includes Grok and keeps paired-device rollups honest.
The activity scan reads Grok usage instead of reporting zero, and the paired
device rollup agrees with the header totals. - Universal Mac builds ship both
@napi-rs/canvasarchitectures. The
notarized macOS package includes the canvas native binaries required on both
Apple Silicon and Intel so Canvas/PDF paths do not miss one arch. - iOS reconnect wakes coalesce instead of flap. APNs, foreground, and path
reconnect signals single-flight through one coordinator so the companion no
longer races competing reconnects after push or resume.
Security
- Managed Kimi authentication and admission stay fail-closed where it
matters. Rotating Kimi OAuth credentials use a source-home-keyed durable
authority across isolated ACP seats and crash recovery. The brittle per-build
fingerprint gate is dropped for always-enabled development admission, but
packaged builds still require an exact reviewed runtime tuple and the
embedded qualification roster remains intentionally empty—so packaged Kimi
and sealed scheduled Kimi execution stay unavailable until their respective
admission/authority evidence is commissioned. A successfulkimi loginor a
Settings usage key does not qualify a managed run. - Manual unsigned builds cannot write GitHub Release assets. Windows and
Linux testing builds now upload only immutable SHA/run-labelled Actions
artifacts under read-only repository permission. The credentialed provider
canary also stays fail-closed until its protected environment has been
explicitly commissioned, and signed publication requires a fresh successful
exact-commit canary attestation plus commissioned immutablev*tag/release
controls. Both signed publishers re-resolve the remote tag and reject
auto-created or moved tags before uploading. - Deleting chat history now clears the adjoining TaskWraith audit state. The
Settings action removes chats, run/run-queue and execution-graph history,
approval/feedback ledgers, sub-thread mailboxes, Canvas workspaces/artifacts,
Kimi seat state, and the bridge subprocess log. Provider-native history and
provider credentials remain separate and are not removed by that control. canvas_evalreceipts retain correlation metadata instead of executable
content. Human-approved execution and Canvas-audit receipts retain the
joined approval id, unkeyed SHA-256 digest, lengths, and outcome rather than
script/result content. Auto-denial and compatibility/tool rows are
content-redacted but may omit that full receipt. The digest is integrity and
correlation metadata, not encryption; provider-authored transcript prose,
provider-native history, and opt-in debug capture remain outside the
guarantee.
Ship commit: 314c2338a6cb250940f4889f53a1f8957ec270ff
CI matrix: run 29765225079 (success)
Notary (DMG): 0fa4889c-19ab-49e0-a099-a99ea1674bf9 Accepted
iOS companion: build 80 VALID on App Store Connect / TestFlight