Releases: boggspa/TaskWraith
TaskWraith v1.5.7
TaskWraith v1.5.7 — local-first macOS workbench for running and reviewing AI coding agents.
Added
- Guided Tailscale device linking. Settings → Devices walks you through connecting a phone over Tailscale (setup signposting + guided auth-key linking), so remote access works without hand-editing config. The standalone APNs credentials section is hidden; push wake goes through the relay path.
- Plan import. Bring an external plan into a chat and TaskWraith makes it actionable — grounds
@-file mentions against your workspace, rewrites defensive/uncertain phrasing into concrete steps, and estimates execution risk before anything runs, with intake-safety guards. - iOS companion — composer shells, welcome dashboard, transcript font. The phone composer now matches the Mac's per-shell layout (Codex, Claude, Cursor, Grok, Gemini and the rest — rows, tucked tabs, rims, corner radii); the New Chat welcome screen shows a compact usage dashboard mirrored live from the Mac; and Settings adds a Transcript response-font picker (Avenir Next, SF Pro, Serif, Monospaced, Rounded).
- Richer iOS transcripts. Tool calls render with their family glyphs and true tool names on the phone, matching desktop.
Fixed
- Run permission posture. Hardened so a run can't end up with a broader posture than intended.
- Welcome dashboard robustness. The Mac→remote broadcast no longer swallows errors silently, numeric fields are rounded before crossing the wire, and remote clients decode partial payloads defensively.
- Sidebar typography. Thread titles and section headers unified/tightened; thread labels normalize under shell themes.
- Windows CI. Transcript path redaction + update-service test determinism fixed so the Windows build stays green.
The macOS build is notarized + stapled (universal). Windows (unsigned) and Linux (AppImage/deb) installers are attached by CI.
TaskWraith 1.5.6
TaskWraith 1.5.6
Added
- iOS composer shells. The phone composer mirrors the Mac's composer style — Default, Codex, Claude, Cursor, Grok, Gemini, Kimi, Modular, Terminal, Ticket Stub, Satellite, Obsidian, and Alabaster — following the Mac by default, with a per-device override in Settings → Composer Shell.
- Multiview panes. Open several chats side by side in a pane grid, with a composer layout picker, per-pane focus/close, and simultaneous streaming.
Fixed
- Ensemble runaway-loop guard; iOS Ensemble Stop cancels the whole round (per true provider); consecutive identical assistant restatements collapse into one bubble on iOS; local (Ollama) identical-read redirect preserves edit budget; Ensemble Work Session halts on a stuck file.
The macOS build is notarized + stapled (universal). Windows (unsigned) and Linux (AppImage/deb) installers are attached by CI shortly after publish.
TaskWraith v1.5.5
TaskWraith v1.5.5 — iOS Ensemble per-participant controls + reorder fix.
Fixed
- iOS Ensemble participant editing. Each participant chip can now set its own approval mode (Plan / Default / Full workspace) and reasoning/thinking (effort for Codex/Claude/Grok, extended thinking for Kimi, plus fast mode) from the phone — previously only provider / model / role were editable there.
- iOS Ensemble reorder. The Earlier / Later (and drag) participant reorder no longer snaps back: the new speaking order is confirmed to the phone immediately and held until the desktop echoes it.
- Ensemble reasoning on concurrent rounds. Per-participant reasoning / thinking is now applied on concurrent (fan-out) rounds too, not only serial turns.
The macOS build is notarized + stapled (universal). Windows (unsigned) and Linux (AppImage/deb) installers are attached by CI.
TaskWraith v1.5.4
TaskWraith v1.5.4 — local-model edits, iOS lifecycle/UI fixes, Discord context.
Fixed
- Local (Ollama) models can now edit files. Choosing a file-edit tier (or Tier 4 / Provider parity) reliably grants edit tools — the per-workspace parity grant is matched tolerant of path form, and selecting Tier 4 on an ungranted workspace now shows a clear in-run warning instead of silently dropping to read-only. Small local models are prompted to make focused edits directly at edit tiers rather than only drafting a plan to hand off.
- iOS "always running" sub-thread tombstones. Deleting a parent chat now cascades to its sub-threads / side-chats (and already-orphaned ones are reaped), so the phone no longer shows long-dead sub-threads stuck as "running."
- iOS thread count. Archived chats are hidden from the phone's lists and counts, matching the desktop sidebar.
Changed
- iOS notification banners now use a translucent glass style with a top-lit rim and consistently appear pinned at the top of the screen instead of crowding the composer.
- iOS Ensemble @-mentions — tagging a single participant scopes the round to them, so the "Participants reachable" card narrows to the tagged participant (desktop parity).
- iOS usage inspector — added 90-day daily token bar charts (TaskWraith Tokens and External Tokens) below the activity heatmaps.
- Discord context — runs can be supplied with Discord channel context, including across ensemble participants.
The macOS build is notarized + stapled (universal). Windows (unsigned) and Linux (AppImage/deb) installers are attached by CI.
TaskWraith v1.5.3
TaskWraith v1.5.3 — iOS companion stabilization + parity fixes.
Fixed
- iOS Stop button targets the live run immediately and works on global chats and experimental providers — including Stop in Global Chats, which previously failed with a workspace-allowlist error.
- iOS composer state re-syncs the model / provider / reasoning picker to the loaded thread, and the new-chat welcome screen follows the chosen provider's theme.
- iOS new-chat workspace + global handling — switch workspace before the first message; global chats are classified by an authoritative scope check (correct plan-mode pin + read-only treatment).
- Stray draft cleanup — opening "New Chat" and backing out no longer leaves a phantom "New Chat" row in the desktop sidebar or the phone list; abandoned drafts are reaped on reconnect.
- Guest-participant replies project to iOS with provider identity (rendered as a provider-tinted reply rather than a generic "System" row), and guests no longer appear in the iOS Side-chats tab.
- iOS transcript crash on cellular at run completion is hardened.
Changed
- App Store export compliance — the iOS companion declares standard, exempt encryption (
ITSAppUsesNonExemptEncryption = NO) per App Store Connect's questionnaire result.
The macOS build is notarized + stapled (universal). Windows (unsigned) and Linux (AppImage/deb) installers are attached by CI.
TaskWraith v1.5.2
Added
- iOS companion TestFlight path. The companion now has a release archive
script, app lifecycle readiness coverage, lifted remote-pairing flags, APNs
wake/reconnect hardening, and foreground/background reconnect fixes for paired
iPhone and iPad sessions. - Remote composer parity. iOS receives projected secondary workspace rows,
richer mobile thread metadata, queue prompt projection/pumping, inspector
affordances, and compact telemetry when the available rail is narrow. - Remote file and transcript parity. iOS can lazily browse workspace files,
load older transcript chunks, receive transcript chunks in ACK responses, and
show run file changes in task-complete summaries. - Usage activity depth. Model Usage gained stacked and 90-day activity
heatmaps so provider activity history is easier to scan.
Changed
- Runtime prompt compaction. The TaskWraith runtime preamble is more compact
and carries an explicit persisted version so future prompt upgrades can be
reasoned about and migrated deliberately. - iOS material polish. Remote welcome, inspector, status banners, composer
shell rows, run controls, streaming tails, and activity panels now track the
desktop visual model more closely. - Desktop transcript polish. Returned sub-thread cards, Diff/guest state,
roster preset saving, composer shell themes, notes dock, activity viewport
masks, and run-summary copy labelling were tightened.
Fixed
- Remote security and allowlists. Explicit workspace capabilities now persist,
secondary workspace writes require write allowlist coverage, APNs attention
payloads are sanitized, stale bridge state is cleaned up, and workspace file
list envelopes are capped more narrowly. - iOS E2EE and lifecycle safety. Cipher validation rejects invalid sequence
and key inputs predictably, and wake/reconnect paths avoid stale or slow bridge
state after notification-driven launches. - Provider and cost projections. Cache-aware cost estimates now propagate to
iOS, Grok empty ACP tool failures surface correctly, welcome activity panels
keep cycling, and iOS preserves composer model/workspace state across empty
drafts.
TaskWraith v1.5.1
Added
- Persistent thread goals. Use
/goal <objective>or the new composer goal
control to set an active objective and stopping condition for a chat. Codex can
mirror goals into native app-server goal state when supported; other providers
use TaskWraith-steered goal context plusgoal_read,goal_update,
goal_complete, andgoal_blockedtools. - Audit orchestration.
/auditnow runs a policy-aware multi-agent review
pipeline with provider-selection controls, live progress cards, dismissible
completion banners, structured findings/verdicts, and safer failure reporting. - Expanded local-model roster. Ollama support now includes Qwen 3.6, Granite,
MiniCPM-V, and Nemotron presets alongside the existing GPT-OSS, Gemma, and Qwen
profiles. - Provider failover controls. Providers can be paused so queued or recovered
work can move to an available fallback rather than silently retrying a blocked
runtime.
Changed
- GPT-OSS/Ollama coding harness. Local models get richer model metadata,
profile-aware context budgets, native-first tool calling, safer loop stopping
around goal lifecycle tools, workspace symbols/git context, and stricter
explore-before-edit/read-before-edit discipline. - Provider and transcript parity. Cursor, Grok, Ollama, and native provider
tool results now render with closer markdown/tool-card parity in the transcript
pane, including expanded tool-result prose. - Model usage accounting. Cursor IDE Composer activity, external provider
usage, cached-token pricing, manual refresh, and local Ollama RAM samples are
surfaced in the model-usage table with clearer provider rows. - Brand and onboarding polish. The first-launch sheet and workspace mastheads
use the theme-aware monoline ghost mark, clearer provider availability LEDs, and
updated copy for the current seven-provider surface.
Fixed
- Audit runs no longer assume Claude. Audit provider selection respects the
configured provider set instead of spawning a provider the user may not have. - Audit banners are dismissible. Completed audit run cards can be hidden after
the user has seen the result. - Cursor cache stat handling. External Cursor usage scans use the correct file
stat helper and avoid crashing the cache prewarm path. - Light-mode sky reveal. Weather/sky effects retain the visible sky band
without washing out the transcript reading surface.
TaskWraith 1.5.0
TaskWraith 1.5.0
44 commits since v1.4.9 (2714e43c). Theme: quiet iOS source publication
and remote companion hardening, with the public Electron app still shipping
the iOS remote surface behind IOS_REMOTE_TRUE=1.
iOS source goes public, dark
ios/now has local ignore rules instead of being blanket-ignored, so the
companion source can land in public history while.build,.swiftpm,
xcuserdata, DerivedData,.DS_Store, and signing-local state stay out.- The Swift package is now tracked: CryptoKit port of
taskwraith-e2ee-v1,
key schedule, protocol frames, trusted-resolve helpers, session replay state,
relay transport client, package pins, and interop vectors. - The iOS app target is tracked with asset catalogs, privacy manifest,
entitlements, Xcode project, README, SwiftUI app shell, UI resources, and
design notes. Signing team identifiers were deliberately redacted; physical
device signing remains a local Xcode selection. - The Swift<->Node live interop harness is tracked and opt-in:
RUN_SWIFT_INTEROP=1 npx vitest run ios/interop/swift-node.e2e.test.ts.
Remote bridge and reconnect
- Multi-door pairing records carry LAN and Tailscale candidates; phones dial
LAN first and fall through to the wss front door. - Tailscale serve setup now verifies and self-heals the advertised front door
before pairing publishes it. - Relay seat takeover and per-socket liveness allow cellular app quit/reopen
to reclaim the session reliably. - Trusted reconnect on iOS now self-heals with a backoff loop plus network-path
trigger, covering cold cellular launches where the VPN route appears late. - Stale workspace chats no longer ride the global lane onto phones.
iOS runtime and UI
- Stream-time transcript fidelity: tool calls interleave at the true stream
positions and settled paragraphs render markdown live. - Edit-file +N/-M chips now reach phones for every provider/MCP shape, and
deletions backfill into non-git run summaries from tool evidence. - Global chats are visible and conversational from iOS, with phone-origin turns
clamped to plan mode. - The iOS sidebar now has glass-pill sections, Active Runs, collapsed
workspaces, read-only Global Chats, and the Ensembles section. - Git workflow actions and the iOS panel support status, stage/commit,
push/publish, PR readiness, and PR creation through the typed bridge. - UI stragglers and resources landed: Diff Studio, file editor, ensemble roster,
QR scanner, ghost/masthead images, identicons, and Ollama provider glyphs.
Electron performance
- Mtime-validated chat record cache.
- Workspace-changes cache with retention and compaction.
- Startup rehydrate now fetches only referenced chats.
- Persisted chat compaction removes historical raw-event bulk on save.
Grok and provider polish
- Grok CLI probing handles newer global plumbing flags.
- Grok slash palette rides the generic CLI core for
/review,/diff, and
/status. - Ollama gets a provider glyph asset and renderer support.
Security and release hygiene
- iOS signing identifiers, concrete Tailnet fixture hostnames, user-state
project files, certificates, provisioning profiles, and APNs key material are
excluded or redacted from public history. - Remote/iOS features remain gated behind
IOS_REMOTE_TRUE. TestFlight and App
Store exposure remain deferred to 1.5.1/1.5.2 after export compliance and
review are complete.
Validation plan
npm run validate:releasenpm run security:depscd ios/TaskWraithKit && swift build && swift testRUN_SWIFT_INTEROP=1 npx vitest run ios/interop/swift-node.e2e.test.tsxcodebuild -quiet -project ios/TaskWraithApp/TaskWraith.xcodeproj -scheme TaskWraith -configuration Debug -destination 'generic/platform=iOS Simulator' CODE_SIGNING_ALLOWED=NO buildAPPLE_KEYCHAIN_PROFILE="TaskWraith Notary" npm run build:mac:notarized
Checksums
695954606f93b69d82a9ce832055af36261ac203e8b495429f9710e026413a46 dist/TaskWraith-1.5.0-universal-mac.zip
cff2748c002189bb9373b1f00a98c86fe9a9bec9d788ee42c8d4d7e18fb8809c dist/TaskWraith-1.5.0-universal-mac.zip.blockmap
3717cb9513f931409bfde623ecef65b20794cd41973cc32e90eb9e927050e2b3 dist/TaskWraith-1.5.0-universal-mac.dmg
cc8995dc0ae279899c3458bd6a01e0fe0653eacf6c4b9379b0e1fee5e0c3808d dist/TaskWraith-1.5.0-universal-mac.dmg.blockmap
6e61fc9e27b10fe8aa4b540bdb7d0d79c4a9cad5d853ee7f0945cb8e89a7970b dist/latest-mac.yml