v1.2.2
·
45 commits
to development
since this release
Ivy Tendril 1.2.2
Tendril 1.2.2 delivers a major redesign of the Chat app and Plan Workspace (Drafts and Review), dedicated side-by-side plan chat sessions, unified terminal and chat experiences, GitHub-style daily activity heatmaps, interactive KPI calculation breakdown sheets with DataTables, dynamic port allocation and project environment file materialization, OpenAI GPT-6 Astra support for Codex, Team Vault themes and CLI operations, and enhanced agent rate limit capacity telemetry.
Highlights
- Chat App Redesign & Unified Terminal: Rebuilt the Chat app frontend following the Figma prototype with a streamlined composer, side-panel agent/model selection, tool call disclosures, and merged chat and PTY agent terminal modes behind a unified sidebar entry.
- Plan Workspace with Integrated Plan Chat: Overhauled Drafts and Review around the new
PlanWorkspacewidget, featuring dedicated side-panel plan chat sessions ("Ask Tendril to Change Anything"), top-bar icon actions with keyboard shortcuts, and the newPlanChangesViewfile tree. - Interactive KPI Breakdown Sheets & Dual Cost Forecasting: Introduced clickable calculation breakdown sheets with DataTables for all dashboard KPI cards, accompanied by dual cost forecasting distinguishing direct API billed spend from subsidized subscription usage.
- Dynamic Port Allocation & Environment Files: Added automatic, conflict-free port allocation (30000–45000) and
.envtemplate materialization per plan worktree, injecting assigned ports directly into review action commands and processes. - OpenAI GPT-6 Astra Support for Codex: Integrated OpenAI's
gpt-6-astramodel into the Codex catalog, pricing engine, and Deep profile prioritization. - Team Vault CLI & Custom Themes: Added a comprehensive
tendril vaultCLI command suite alongside support for authoring, sharing, and applying custom themes within Team Vaults. - Agent Rate Limit Capacity Telemetry: Added live agent rate limit window indicators and remaining quota tracking for Codex and Antigravity in Coding Agent settings.
- Sidebar Collapse Flyout & Fluid Animation: Replaced rail chips with a portaled flyout menu for chat sessions and introduced smooth width-only sidebar collapse transitions.
Features
- Redesigned Figma Chat App & Component Suite (#2418): Rebuilt the chat frontend with a pill-style composer, assistant turn tool call disclosures, agent picker with model/effort side panels, streaming metrics, and session navigation in the shell sidebar.
- PlanWorkspace with Side-by-Side Plan Chat (#2441): Overhauled Drafts and Review pages with the
PlanWorkspacewidget, introducing top-bar actions, keyboard shortcut navigation, and dedicated plan chat panels scoped to plan execution jobs. - PlanChangesView File Tree Widget (#2501): Replaced the framework tree with an embedded file tree in Review featuring addition/deletion counts, folder collapse, status-tinted icons, and automatic switching to a "Jump to file" selector on narrower viewports.
- Unified Chat & PTY Agent Terminal (#2440): Merged Chat and PTY Terminal agents behind a single sidebar Chat entry, configurable via
chatMode(chatorterminal), displaying terminal sessions with dedicated icons in the sidebar. - Interactive KPI Calculation Breakdown Sheets (#2405, #2409): Added click-to-open breakdown sheets powered by DataTables for "Avg Daily PRs", "Avg Cost/Month", "Forecast This Month", and "Avg Cost/Plan" cards.
- Direct API Forecasting & Subsidized Usage Analysis (#2495, #2334): Added cost provenance tracking across jobs, displaying direct API projected spend alongside total market value and subsidized subscription percentages on the Dashboard and KPI sheets.
- Dynamic Port Allocation & Project Environment Files (#2406): Implemented conflict-free port assignment (scanning 30000–45000) and automatic
.envfile generation from templates into worktrees, with${ports.<name>}andPORT_<NAME>variables injected into review action commands and CLI commands (tendril project port,tendril project env-file,tendril plan env). - OpenAI GPT-6 Astra for Codex (#2361): Added
gpt-6-astrato the Codex model catalog, catalog sorter, pricing calculator, and Deep profile tier candidate list. - Team Vault CLI Suite (#2311): Exposed 13
tendril vaultsubcommands enabling discovery, connection, synchronization, project importing/merging, catalog browsing, and pushing/deleting projects from team configuration vaults. - Custom Themes in Team Vaults (#2368, #2393, #2397): Supported creating, managing, sharing, and applying custom themes stored within Team Vaults, including Appearance view integration and
tendril vault themeCLI commands. - Agent Usage Windows & Remaining Quota Telemetry (#2468, #2486, #2491): Added rate limit window telemetry and remaining capacity indicators for Codex and Antigravity in Coding Agent settings.
- GitHub Daily Contribution Heatmap (#2367, #2438): Added a GitHub-style 7-weekday row contribution heatmap to the Dashboard with 5-level intensity ramps, month headers, auto-scroll to recent weeks, and daily PR tooltip details.
- Auto-Accept Assigned GitHub Issues in Inbox (#2404): Added background polling to automatically import GitHub issues assigned to the user and trigger implementation plan generation, configurable via an Auto-Accept dialog.
- Target Branch Selection for Plan Merges & PRs (#2319): Added git branch discovery and a target base branch selector to
CreatePrDialog, supporting both existing branches and custom branch names. - Shared TendrilUi Primitives (#2492): Introduced standardized, reusable UI widgets across Tendril, including
Tooltip,Kbd,Badge,IconButton, andStatusLinewith live timer and estimated token tracking. - Default Artifact Production for New Projects (#2436): Configured default UI screenshot capture (
Screenshotsverification) in project setup promptwares for web and application projects.
Improvements
- Sidebar Rail List Flyout & Width-Only Collapse (#2503): Replaced individual rail session chips with a portaled flyout list and fixed-width row clipping that animates smoothly without icon jumping or label distortion.
- Escapable Review Action Terminal via Page Tab (#2505): Added a persistent, non-closable Page Tab to the bottom tab bar when review actions are active, allowing users to return to the plan review page without closing running terminal sessions.
- Background Task Continuation for Headless Jobs (#2459): Detected backgrounded tool operations in agent jobs and automatically resumed sessions for up to two follow-up turns instead of prematurely failing or completing with unfinished work.
- GitHub Secondary Rate Limit Backoff & Request Serialization (#2461): Serialized GitHub CLI calls through a concurrency gate and added exponential backoff with jitter to handle GitHub secondary rate limits gracefully.
- Configurable Chat Timeout & Idle Timeout Alignment (#2480): Added a dedicated
ChatTimeoutconfiguration setting and aligned chat idle timeouts withStaleOutputTimeout. - Keyboard Arrow-Key Plan Navigation (#2502): Added left and right arrow keyboard navigation to step through plans on Drafts and Review pages, along with per-agent model/effort preferences and expanded 80% user bubble widths.
- Interactive Question Form Experience (#2421, #2348, #2360, #2376, #2383, #2391, #2401): Embedded
TendrilQuestionsacross the draft flow, preserving answers across streaming and re-renders, addingCmd+Entershortcuts, adjacent question scrolling, and resilient parsing for unquoted colons and duplicate keys. - Windows MAX_PATH Safety for Worktrees (#2344): Shortened plan folder safe titles to 24 characters and added a
PathBudgetCheckintendril doctorto ensure worktree paths stay safely within the 260-character budget. - Non-Terminal Skills Context Budget Warnings in Codex (#2398): Recognized Codex skills budget truncation warnings as non-fatal diagnostics, preventing exit code 0 executions from being marked as Failed.
- Unified Monorepo Review Actions & Environment Bootstrapping (#2472): Enhanced project setup promptwares to configure fullstack review actions and copy
.envtemplates before running commands. - Dashboard Trend 28-Day Daily Resolution & Spline Fixes (#2367, #2378, #2390, #2396, #2470): Provided 28 daily points with rolling 7-day averages, dynamic x-axis label thinning, and fixed Catmull-Rom spline curves without backwards loops.
- Composer Stop & Queue Button Restyling (#2504): Restyled the running stop button to match the composer surface and display the queue button only when text or attachments are present.
- File Drag-and-Drop in Chat (#2493): Allowed dropping files anywhere within the Chat app to attach them.
- Model Choice Memory for New Chats (#2466): Remembered the last selected model when launching a new chat session.
- Accessible Destructive Contrast (#2402, #2407): Updated destructive foreground font colors across default and custom themes for WCAG accessible contrast.
- Moved Inbox App to Sidebar Footer in Beta Mode (#2422): Relocated the Inbox navigation item into the sidebar footer rail when running in beta mode.
- Upgraded Ivy Framework Packages to 1.4.0 (#2499, #2410): Upgraded dependencies to Ivy 1.4.0 and consolidated Xterm project references.
Bug Fixes
- Tesla & Non-Google Chromium Voice Input (#2437): Added server transcription fallback when Web Speech API is unsupported or lacks speech API keys, surfacing descriptive error banners instead of browser alerts.
- Human-Readable Failure Reasons on Agent Errors (#2433): Replaced generic error badges with synthesized descriptions on idle timeouts, total timeouts, and stderr non-zero exits.
- Misattributed Cited PR URLs in Plans (#2347): Filtered out foreign PR citations from agent output during PR reconciliation, adding
tendril plan remove-prandtendril plan doctor --prsto inspect and repair misattributed PRs. - Markdown Code Block Overflow in Chat (#2490): Prevented wide code snippets from horizontally overflowing the chat container.
- Chat Scrollbar Jumps with Streaming Markdown (#2359): Eliminated jarring scrollbar jumps during streaming markdown rendering in the Chat app.
- Tooltip Container Edge Clamping (#2487): Clamped tooltip positioning at container bounds to prevent clipping at viewport edges.
- Dashboard Card Bounds & Overflow (#2469, #2482, #2481): Fixed horizontal overflow, containment, and x-axis tick label alignment across Git Activity and Pull Requests charts.
- Chat Names in Search Dialog (#2479): Restored chat session names in the search chats dialog.
- Process Restart Chat State Persistence (#2363): Persisted in-progress chat streaming responses across application restarts.
- Keyboard Shortcut Cmd+A Collision (#2342): Stopped overriding the native
Cmd+Aselect-all shortcut for the new agent chat action. - Dead PTY Reference in ReviewActionApp (#2408): Resolved dead PTY references when invoking review action terminals.
- Vitest Suite on Node 26 & CI Integration (#2450, #2465): Fixed Node 26 storage global conflicts breaking Vitest and added frontend tests to continuous integration workflows.
- Duplicate Resource Build Error (#2507): Disabled
IvyEnableExternalWidgetsto resolve duplicate embedded resources in release builds.
What's Changed
- [00065] Expose Vault Operations in Tendril CLI by @rorychatt in #2311
- [00071] Show Project Badge in Plan and Review Headers by @rorychatt in #2316
- [00081] Extract Project Asset Discovery to Vault Service by @rorychatt in #2318
- [00066] Select Target Branch When Merging Plan in Review by @rorychatt in #2319
- [00078] Show Project Badge in Recommendations Header by @rorychatt in #2320
- [00087] Render One Project Badge Per Project in Icebox Sidebar by @rorychatt in #2321
- [00016] Align Sidebar Badge Styling Between Collapsed and Expanded States by @rorychatt in #2322
- [00015] Prevent E2E Tests From Modifying Shell Configuration Files by @rorychatt in #2324
- [00012] Update Blocked Job Status Message When Dependencies Change by @rorychatt in #2325
- [00017] Fix Numeric Badges Cut Off in Collapsed Sidebar by @rorychatt in #2323
- [00100] Make Jobs Table Headers Match Their Filter Column Names by @rorychatt in #2326
- [00013] Fix Unanswered Questions Count in Execution Dialog by @rorychatt in #2329
- fix(plans): replace draft terminology with plans in process viewer, dashboard, and empty states by @rorychatt in #2330
- [00145] Fix Five Red Vault Command Output Tests by @rorychatt in #2335
- [00147] Fix Flaky Hanging Hook Test by Making Hook Guards Injectable by @rorychatt in #2337
- [00099] Estimate Job Cost From Tokens and Forecast Monthly Spend by @rorychatt in #2334
- [00207] Stop Hijacking Cmd+A for the New Agent Chat Shortcut by @rorychatt in #2342
- [00214] Bound Worktree Path Length by Shortening Plan Folder Names by @rorychatt in #2344
- [00216] Stop Recording Cited PR URLs as a Plan's Own Pull Request by @rorychatt in #2347
- feat(chat): track spawned jobs in session and support interactive question blocks by @rorychatt in #2348
- [00029] Prevent Empty State Flicker on Team Vault Initial Load by @rorychatt in #2358
- [00028] Add Cmd+Enter Shortcut to Unanswered Questions Dialog by @rorychatt in #2360
- [00033] Fix Chat UI Scrollbar Jumps With Markdown Output by @rorychatt in #2359
- [00030] Add GPT-6 Astra Support for Codex by @rorychatt in #2361
- [00034] Fix View Content Overlapping Collapsed Sidebar Icons by @rorychatt in #2362
- [00036] Persist In-Progress Chat Responses Across Process Restarts by @rorychatt in #2363
- [00035] Align Sidebar Tooltip Styling with Framework Tooltips by @rorychatt in #2365
- [00039] Preserve Selected Plan View When New Plan Finishes Generating by @rorychatt in #2366
- feat(dashboard): tabbed git activity / prs, GitHub daily heatmap, 28-day week mode trend by @rorychatt in #2367
- feat(vault): allow custom themes in team vaults, shared options, and appearance integration by @rorychatt in #2368
- fix(shell): render all sidebar app rows at full opacity by @dcrjodle in #2300
- [00042] Remove Icon from Vault Section by @rorychatt in #2375
- [00044] Scroll to Selected Question When Navigating Adjacent Questions by @rorychatt in #2376
- [00043] Isolate Sidebar Collapsed State Per Client by @rorychatt in #2377
- [00046] Add Average Reference Line to Dashboard Trend Charts by @rorychatt in #2378
- [00047] Fix Git Activity Card Layout and Dead Space in Dashboard by @rorychatt in #2379
- [00051] Fix Inbox GitHub Issue Import Limit Regression by @rorychatt in #2380
- [00050] Fix Running Jobs Badge and Spinner Animation in ChatWidget by @rorychatt in #2381
- [00049] Make Publish Workflow Test Mode a Side Effect Free Dry Run by @rorychatt in #2382
- [00048] Make Question Block Parsers Resilient to Unquoted Colons by @rorychatt in #2383
- [00052] Clarify Default Sidebar Setting Description in Appearance Setup View by @rorychatt in #2384
- [00053] Link Plans to Originating Chat Sessions and Emit Lifecycle Events by @rorychatt in #2387
- [00054] Remove Duplicate Inbox Loading Feedback by @rorychatt in #2388
- [00059] Freeze Chat Session Sidebar Order During Generation by @rorychatt in #2389
- [00055] Replace Dashboard Trend Average Line With Rolling 7 Day Average by @rorychatt in #2390
- [00060] Preserve Chat Question Answers Across Re-renders and Streaming by @rorychatt in #2391
- [00063] Remove the Dead Weekly Bucket Aggregation From Dashboard Activity Stats by @rorychatt in #2392
- [00064] Add Vault Theme CLI Command Branch by @rorychatt in #2393
- [00067] Extract Theme Import Parser into Shared Service by @rorychatt in #2397
- [00069] Standardize Dashboard Trend on 4-Week View with Dashed Expanding Average by @rorychatt in #2396
- [00368] Stop Failing Codex Jobs on the Skills Budget Warning by @rorychatt in #2398
- [00079] Add Attachment Previews in Chat History by @rorychatt in #2399
- [00080] Fix Manual Approval Chat Notifications and Chat Session Linking by @rorychatt in #2400
- [00089] Fix Flaky Option Selection in Chat UI Question Blocks by @rorychatt in #2401
- [00090] Update Destructive Foreground Font Colors for Accessible Contrast by @rorychatt in #2402
- [00097] Normalize File Encodings to UTF-8 to Resolve Dotnet Format Errors by @rorychatt in #2403
- [00095] Auto Accept Assigned Issues in Inbox by @rorychatt in #2404
- [00098] Add Interactive Calculation Breakdown Sheets for KPI Cards by @rorychatt in #2405
- [00105] Implement Project Environment Files and Dynamic Port Allocation by @rorychatt in #2406
- [00127] Give the Default Theme an Accessible Destructive Foreground by @rorychatt in #2407
- [00140] Resolve Dead PTY Reference in ReviewActionApp by @rorychatt in #2408
- [00164] Replace Regular Tables in Dashboard KPI Breakdown Sheets with DataTables by @rorychatt in #2409
- [00166] Update Xterm Project References to Consolidated Ivy Package by @rorychatt in #2410
- [00173] Remove Subtitle Text from Ports and Environment Files in Project Detail View by @rorychatt in #2411
- [00183] Remove Dead Ivy-Framework Project References From Ivy.Tendril.csproj by @rorychatt in #2412
- [00188] Fix Pre-Existing Dotnet Format Whitespace Violations by @rorychatt in #2414
- [00192] Fix PromptwareDeployer Tests That Only Pass in Debug Builds by @rorychatt in #2415
- Redesign the beta Chat app to the Figma prototype by @dcrjodle in #2418
- Reuse the TendrilQuestions form in the draft flow by @dcrjodle in #2421
- feat(shell): move the Inbox app into the sidebar footer in beta mode by @dcrjodle in #2422
- [00207] Show Failure Reason When Agent Errors or Times Out by @rorychatt in #2433
- [00213] Configure Default Artifact Production for New Projects by @rorychatt in #2436
- [00203] Fix Chat Voice Input in Tesla Browser by @rorychatt in #2437
- [00202] Restore Joel's Original Git Activity Heatmap Design by @rorychatt in #2438
- Merge the Chat app and the PTY Agent app behind one Chat button by @dcrjodle in #2440
- Redesign the Drafts and Review pages around a PlanWorkspace widget with a plan chat panel by @dcrjodle in #2441
- [00221] Fix Node 26 Storage Globals Breaking the Frontend Vitest Suite by @rorychatt in #2450
- [00215] Finish the Git Activity Revert by Dropping the Summary Metrics Row by @rorychatt in #2451
- [00220] Gate Voice Recorder Debug Logging Behind a Flag by @rorychatt in #2452
- [00222] Position Jobs Badge to Left of Action Buttons in Chat UI by @rorychatt in #2453
- [00228] Drop Dead Models Projects and SelectedProject Props from ContentInput by @rorychatt in #2456
- [00214] Remove the Previous 4 Weeks Comparison Series From the Dashboard Trend Chart by @rorychatt in #2458
- [00229] Remove Em Dashes from Dashboard Comments by @rorychatt in #2457
- [00212] Fail Jobs That End With Background Tasks In Flight by @rorychatt in #2459
- [00230] Resolve Rolldown Empty Import Meta Warning in Widgets Build by @rorychatt in #2460
- [00206] Handle GitHub Secondary Rate Limits in Inbox Fetches by @rorychatt in #2461
- [00231] Restore Project Badge to Plan Workspace Header Nav by @rorychatt in #2464
- [00226] Add Frontend Vitest Suite to CI Workflows by @rorychatt in #2465
- [00225] Remember Last Model Choice When Creating New Chat by @rorychatt in #2466
- [00223] Resolve Null Reference Assignment Warnings in Review ContentView by @rorychatt in #2467
- [00219] Show Agent Usage Windows in Coding Agent Settings by @rorychatt in #2468
- [00238] Ensure Dashboard Git Activity Card Fits Container Bounds by @rorychatt in #2469
- [00237] Add Week or Month Switch to Dashboard Pull Requests by @rorychatt in #2470
- [00240] Support Unified Monorepo Review Actions and Environment Bootstrapping by @rorychatt in #2472
- [00224] Show Chats in Sidebar in Collapsed Mode by @rorychatt in #2471
- [00247] Display Chat Names in Search Chats Dialog by @rorychatt in #2479
- [00246] Fix Chat Agent Idle Timeout and Make Chat Timeout Configurable by @rorychatt in #2480
- [00245] Fix Git Activity Card Horizontal Overflow and Containment by @rorychatt in #2482
- [00244] Fix X-Axis Tick Label Overflow and Alignment in Pull Requests Chart by @rorychatt in #2481
- [00250] Show Remaining Quota Instead of Usage for Rate Limit Windows by @rorychatt in #2486
- [00249] Clamp Tooltip Position in HoverTip at Container Edges by @rorychatt in #2487
- [00251] Use Framework Badges with Project Colors for Project Name Badges by @rorychatt in #2489
- [00248] Add Structured Date Fields to Dashboard Month Value Dto by @rorychatt in #2488
- [00253] Fix Markdown Code Block Width and Overflow in Chat App by @rorychatt in #2490
- [00256] Clarify Window Metric as Remaining Capacity in Coding Agent Settings by @rorychatt in #2491
- [00252] Allow Dropping Files Anywhere on Chat App to Attach by @rorychatt in #2493
- [00255] Add Help Tooltips and Empty States for Ports and Environment Files by @rorychatt in #2494
- [00257] Display Direct API Forecast and Subsidized Usage Analysis on Dashboard by @rorychatt in #2495
- [00260] Split ChatWidget Tests into Dedicated Files by @rorychatt in #2496
- [00261] Upgrade Ivy Packages to 1.4.0 and Remove Retired Package References by @rorychatt in #2499
- fix(widgets): one tooltip, key hint, badge, icon button and status line by @dcrjodle in #2492
- Port review Changes tab file tree into the PlanChangesView widget by @dcrjodle in #2501
- Rework the sidebar collapse: list flyout on the rail, width-only animation by @dcrjodle in #2503
- Restore the two lost chat commits, add arrow-key plan navigation, fix dead plan shortcuts by @dcrjodle in #2502
- fix(chat): restyle the composer's stop button and show queue only with input by @dcrjodle in #2504
- fix(shell): let a review action's terminal be escaped via a page tab by @dcrjodle in #2505
- fix(build): disable IvyEnableExternalWidgets to resolve duplicate embedded resources by @rorychatt in #2507
- chore(release): bump version to 1.2.2 by @rorychatt in #2508
Full Changelog: v1.2.1...v1.2.2