Skip to content

v1.2.2

Choose a tag to compare

@github-actions github-actions released this 10 Sep 11:57
· 45 commits to development since this release
bab1556

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 PlanWorkspace widget, featuring dedicated side-panel plan chat sessions ("Ask Tendril to Change Anything"), top-bar icon actions with keyboard shortcuts, and the new PlanChangesView file 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 .env template 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-astra model into the Codex catalog, pricing engine, and Deep profile prioritization.
  • Team Vault CLI & Custom Themes: Added a comprehensive tendril vault CLI 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 PlanWorkspace widget, 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 (chat or terminal), 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 .env file generation from templates into worktrees, with ${ports.<name>} and PORT_<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-astra to the Codex model catalog, catalog sorter, pricing calculator, and Deep profile tier candidate list.
  • Team Vault CLI Suite (#2311): Exposed 13 tendril vault subcommands 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 theme CLI 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, and StatusLine with live timer and estimated token tracking.
  • Default Artifact Production for New Projects (#2436): Configured default UI screenshot capture (Screenshots verification) 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 ChatTimeout configuration setting and aligned chat idle timeouts with StaleOutputTimeout.
  • 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 TendrilQuestions across the draft flow, preserving answers across streaming and re-renders, adding Cmd+Enter shortcuts, 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 PathBudgetCheck in tendril doctor to 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 .env templates 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-pr and tendril plan doctor --prs to 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+A select-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 IvyEnableExternalWidgets to 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