tag:github.com,2008:https://github.com/stacktape/stacktape/releases Release notes from stacktape 2026-03-18T13:31:06Z tag:github.com,2008:Repository/213468789/3.6.6 2026-03-18T14:06:35Z 3.6.6 <h2>πŸš€ New Features</h2> <ul> <li><strong>Filter noisy dev logs instantly</strong> β€” The Stacktape dev UI now supports inline log search, so you can narrow output by workload, message text, quoted phrases, exclusions, or log level without leaving the terminal</li> <li><strong>Faster multi-service rebuild flow</strong> β€” In dev mode, rebuilding is quicker when several workloads are running: you can rebuild the selected workload, pick a target from the UI, or trigger all rebuilds at once</li> <li><strong>GitHub Deployments integration</strong> β€” Console-triggered and Git-driven deployments now report through GitHub Deployments, giving clearer environment-level status updates instead of generic commit checks</li> <li><strong>Proactive API key expiry protection</strong> β€” New API keys now get a default expiration window, users receive warning emails before keys expire, and org admins can revoke a member’s active org API keys when access should end</li> </ul> <h2>✨ Improvements</h2> <ul> <li><strong>More adaptable terminal layout</strong> β€” The Stacktape dev UI is now organized around reusable route/context modules, which makes the interface more consistent and unlocks richer controls like fullscreen sidebar views</li> <li><strong>Smoother dev UI interactions</strong> β€” Terminal rendering is more responsive, making live logs and status updates feel less jerky during active work</li> <li><strong>Safer member offboarding</strong> β€” Removing a member or leaving an organization now revokes active org API keys so old credentials do not quietly remain usable</li> </ul> <h2>πŸ”¨ Bugfixes</h2> <ul> <li><strong>Runner-based deletes no longer depend on repo checkout</strong> β€” Remote delete flows now work even when source checkout is unnecessary, avoiding failures in EC2-runner cleanup paths</li> <li><strong>Better GitHub repo URL handling</strong> β€” SSH-style repository URLs are now recognized correctly, which helps deployment reporting work reliably across more repository setups</li> <li><strong>Correct deploy log links in GitHub messages</strong> β€” GitHub comments and status links now land on the right stage-specific console pages</li> </ul> <p><a href="https://docs.stacktape.com" rel="nofollow">Docs</a> β€’ <a href="https://join.slack.com/t/stacktape-community/shared_invite/zt-16st4nmgl-B8adf0YnZWSMEbuz9Ih6vg" rel="nofollow">Slack</a> β€’ <a href="https://x.com/stacktape" rel="nofollow">X</a></p> github-actions[bot] tag:github.com,2008:Repository/213468789/3.6.5 2026-03-18T13:57:21Z 3.6.5 <h2>πŸš€ New Features</h2> <ul> <li><strong>Dev TUI log filtering and workflow controls</strong> β€” Added log filtering and faster workflow controls to the dev mode terminal UI</li> </ul> <p><a href="https://docs.stacktape.com" rel="nofollow">Docs</a> β€’ <a href="https://join.slack.com/t/stacktape-community/shared_invite/zt-16st4nmgl-B8adf0YnZWSMEbuz9Ih6vg" rel="nofollow">Slack</a> β€’ <a href="https://x.com/stacktape" rel="nofollow">X</a></p> github-actions[bot] tag:github.com,2008:Repository/213468789/3.6.4 2026-03-16T01:25:37Z 3.6.4 <h2>πŸ”¨ Bugfixes</h2> <ul> <li><strong>Stack output idempotency</strong> β€” Stacktape-managed CloudFormation outputs (<code>deploymentVersion</code>, <code>stackInfoMap</code>) now use <code>overwriteExisting</code> mode, preventing "output already exists with different value" errors when <code>prepareForDeploy</code> runs more than once in the same session (e.g. during rollback flows)</li> </ul> <p><a href="https://docs.stacktape.com" rel="nofollow">Docs</a> β€’ <a href="https://join.slack.com/t/stacktape-community/shared_invite/zt-16st4nmgl-B8adf0YnZWSMEbuz9Ih6vg" rel="nofollow">Slack</a> β€’ <a href="https://x.com/stacktape" rel="nofollow">X</a></p> github-actions[bot] tag:github.com,2008:Repository/213468789/3.6.3 2026-03-16T01:25:26Z 3.6.3 <h2>πŸš€ New Features</h2> <ul> <li><strong>CDN canonical URL params</strong> β€” Added <code>cdnCanonicalDomain</code> and <code>cdnCanonicalUrl</code> as referenceable params on all CDN-enabled resources (load balancers, buckets, functions, HTTP API gateways), making it easy to reference the canonical CDN URL in config directives</li> </ul> <h2>πŸ”¨ Bugfixes</h2> <ul> <li><strong>Nested directive resolution</strong> β€” Replaced string-based directive substitution with a tree-walking node replacement algorithm that properly handles chained/nested directives (e.g. <code>$ResourceParam()</code> resolving to a value containing <code>$Secret()</code>). Removes the previous double-resolve workaround</li> <li><strong>Stack trace cleanup</strong> β€” Internal Stacktape source frames are now filtered from user-facing error output</li> <li><strong>npm binary entrypoint</strong> β€” Deduplicated <code>spawnSync</code> logic with consistent error/signal handling</li> <li><strong>Path resolution</strong> β€” Fixed file path resolution issues in compiled binaries</li> </ul> <h2>✨ Improvements</h2> <ul> <li><strong>Build system consolidation</strong> β€” Centralized the OpenTUI/Solid build plugin into a single reusable module, replaced dynamic tsconfig generation with a static <code>tsconfig.build.json</code>, and simplified binary compilation to use <code>Bun.build</code> directly with a dedicated <code>compiled-entry.ts</code> entrypoint</li> <li><strong>TypeScript config loading</strong> β€” Removed the runtime Bun.build bundling pipeline; Bun's native TS support with <code>autoloadTsconfig</code> now handles configs directly</li> </ul> <h2>πŸ–₯️ Console UI</h2> <ul> <li><strong>Monitoring form improvements</strong> β€” Alarm, budget, and notification creation modals now have better icons, default values, placeholder text, and validation (e.g. <code>breachedPeriods &lt;= evaluationPeriods</code>, budget percentage validation, <code>includeInHistory</code> toggle)</li> <li><strong>Human-readable summary pills</strong> β€” <code>MultiValueSummary</code> now shows "All projects" / "All stages" labels instead of raw <code>*</code> values across alarm, budget, and notification listing pages</li> <li><strong>Navigation reorganization</strong> β€” AWS Accounts and Domains moved under the Configuration section for clearer grouping</li> <li><strong>Role access hints</strong> β€” Member invite/update forms now show "This role has access to all projects" for OWNER and ADMIN roles</li> <li><strong>Alert channel form polish</strong> β€” Access Token and Secret fields are now password-masked; webhook URL fields have descriptive hints</li> </ul> <p><a href="https://docs.stacktape.com" rel="nofollow">Docs</a> β€’ <a href="https://join.slack.com/t/stacktape-community/shared_invite/zt-16st4nmgl-B8adf0YnZWSMEbuz9Ih6vg" rel="nofollow">Slack</a> β€’ <a href="https://x.com/stacktape" rel="nofollow">X</a></p> github-actions[bot] tag:github.com,2008:Repository/213468789/3.6.2 2026-03-15T23:44:41Z 3.6.2 <h2>πŸ”¨ Bugfixes</h2> <ul> <li><strong>TypeScript config loading</strong> β€” Removed the runtime Bun.build bundling pipeline for TS configs in compiled binaries. Bun's native TypeScript support now handles configs directly, with <code>autoloadTsconfig</code> enabled at compile time so path aliases resolve correctly</li> <li><strong>Stack trace cleanup</strong> β€” Internal Stacktape source frames (from <code>src/</code>, <code>shared/</code>, <code>scripts/</code>) that don't exist on disk are now filtered out of user-facing error stack traces</li> <li><strong>npm binary entrypoint</strong> β€” Deduplicated <code>spawnSync</code> logic into an <code>executeBinary</code> helper with consistent error and signal handling for both global-binary and downloaded-binary code paths</li> </ul> <p><a href="https://docs.stacktape.com" rel="nofollow">Docs</a> β€’ <a href="https://join.slack.com/t/stacktape-community/shared_invite/zt-16st4nmgl-B8adf0YnZWSMEbuz9Ih6vg" rel="nofollow">Slack</a> β€’ <a href="https://x.com/stacktape" rel="nofollow">X</a></p> github-actions[bot] tag:github.com,2008:Repository/213468789/3.6.1 2026-03-13T14:18:29Z 3.6.1 <h2>πŸš€ New Features</h2> <ul> <li><strong>Native tunnel client</strong> β€” Replaced the external <code>bore</code> binary with a pure Node.js implementation of the bore wire protocol. Eliminates platform-specific binary distribution, reduces package size, and improves reliability of dev mode tunneling</li> <li><strong>TypeScript config from compiled binaries</strong> β€” Stacktape configs written in TypeScript now work when running from compiled binaries (not just raw Bun). Configs are bundled to CJS via <code>Bun.build</code> with mtime-based caching</li> </ul> <h2>πŸ”¨ Bugfixes</h2> <ul> <li><strong>Alarm permission limits</strong> β€” Consolidated per-alarm Lambda permissions into a single shared wildcard permission, preventing CloudFormation resource limit errors in stacks with many alarms</li> <li><strong>Hook failure visibility</strong> β€” Deployments with failed <code>after:deploy</code> hooks now correctly show as failed in the TUI with a count of hook failures, instead of falsely showing success</li> <li><strong>Zod codegen</strong> β€” Fixed <code>z.record(z.never())</code> being emitted for empty <code>additionalProperties</code> schemas (now correctly emits <code>z.any()</code>)</li> </ul> <h2>✨ Improvements</h2> <ul> <li><strong>Script-run TUI feedback</strong> β€” The <code>script:run</code> command now shows a completion message in the TUI with the script name</li> <li><strong>Event output lines</strong> β€” Deploy TUI event rows can now display output lines beneath them for richer feedback</li> <li><strong>Phase list visibility</strong> β€” The TUI phase sidebar can now be conditionally hidden for simpler command views</li> </ul> <h2>πŸ–₯️ Console UI</h2> <ul> <li><strong>Alerting schema bootstrap</strong> β€” New idempotent DDL script creates <code>BudgetAlert</code>, <code>AlertEvent</code>, and <code>AlertDelivery</code> tables directly, wired into <code>afterDeploy</code> hooks alongside the existing alert channel migration</li> </ul> <p><a href="https://docs.stacktape.com" rel="nofollow">Docs</a> β€’ <a href="https://join.slack.com/t/stacktape-community/shared_invite/zt-16st4nmgl-B8adf0YnZWSMEbuz9Ih6vg" rel="nofollow">Slack</a> β€’ <a href="https://x.com/stacktape" rel="nofollow">X</a></p> github-actions[bot] tag:github.com,2008:Repository/213468789/3.6.0 2026-03-13T14:12:28Z 3.6.0 <h2>πŸš€ New Features</h2> <ul> <li><strong>Version-based rollback</strong> β€” <code>rollback</code> now deploys a previous version's CloudFormation template reusing existing artifacts (no rebuild), supporting <code>--targetVersion</code>, <code>--rollbackSteps</code>, and <code>--listVersions</code>. The old CloudFormation-native rollback is preserved as <code>cf:rollback</code></li> <li><strong>Centralized alert system</strong> β€” Notifications rearchitected from client-side dispatch to server-side event routing. Alarm Lambda and CLI both report structured events to the console API, which handles routing to all channels with delivery tracking</li> <li><strong>Discord and Webhook alarm channels</strong> β€” Alarms now support Discord (embeds) and generic Webhook (with HMAC-SHA256 signing) in addition to Slack, MS Teams, and email</li> <li><strong>Budget alerts (server-side)</strong> β€” Budget monitoring moved from in-stack CloudFormation resources to the console. Set monthly thresholds (per-stack or per-org) with percentage-based triggers routed through alert channels. The <code>budgetControl</code> config option is removed</li> <li><strong>Alarm history and resolved events</strong> β€” Alarms now track both ALARM_TRIGGERED and ALARM_RESOLVED transitions. <code>includeInHistory</code> controls whether alarms appear in the alert history</li> <li><strong>Preview changes rewrite</strong> β€” <code>preview-changes</code> now groups CloudFormation changes under their parent Stacktape resource, strips deployment noise, includes property values, and highlights replacements</li> <li><strong>RBAC permission guards</strong> β€” CLI enforces role-based permissions before deploy/delete operations, with project-scoped access checks. <code>info:whoami</code> and <code>org:list</code> display human-readable role labels and permission summaries</li> <li><strong>Structured CLI output &amp; MCP automation</strong> β€” Added JSONL output mode and MCP client with <code>search_docs</code> tool for AI agent workflows</li> <li><strong>Aurora Serverless v2 readers</strong> β€” Added reader instance support and reader-aware SQL debugging</li> <li><strong>SSR web CDN cache overrides</strong> β€” Added controls for overriding CDN cache behavior on SSR web resources</li> <li><strong>Source maps for helper lambdas</strong> β€” Enabled source maps in helper Lambda builds for better error diagnostics</li> </ul> <h2>πŸ”¨ Bugfixes</h2> <ul> <li><strong>CloudFront distribution overrides</strong> β€” Cache behavior and root object overrides now apply to all CloudFront distributions, not just the first one</li> <li><strong>Dev mode reliability</strong> β€” Rewrote dev proxy to raw TCP for WebSocket support, added global port reservation to prevent conflicts, hardened startup/shutdown lifecycle and terminal restoration, fixed AGENT_READY parsing from JSONL-wrapped stdout</li> <li><strong>Bundler fixes</strong> β€” Fixed tsconfig resolution to use project <code>cwd</code> instead of <code>process.cwd()</code>, only externalize <code>@aws-sdk/client-*</code> in CJS Lambda bundles, preserve identifiers correctly</li> <li><strong>Parallel packaging</strong> β€” Switched to <code>Promise.allSettled</code> with first-rejection pattern to surface packaging errors instead of silently failing</li> <li><strong>TUI output</strong> β€” Batched console writes to prevent interleaving, increased JSONL result data limit to 512KB, suppressed plain summary in JSONL mode to avoid duplicate output</li> <li><strong>S3 lifecycle</strong> β€” Fixed expiration lifecycle rules using wrong property (<code>NoncurrentVersionExpirationInDays</code> vs <code>ExpirationInDays</code>)</li> <li><strong>Post-deploy hooks</strong> β€” Tolerate post-deploy hook failures without aborting the deploy flow</li> <li><strong>Zod codegen</strong> β€” Fixed <code>z.record(z.never())</code> being emitted for empty <code>additionalProperties</code> (now correctly emits <code>z.any()</code>)</li> <li><strong>TUI log normalization</strong> β€” Handle OSC, DCS escape sequences and carriage-return line overwrites in dev TUI logs</li> </ul> <h2>✨ Improvements</h2> <ul> <li><strong>TUI migrated to SolidJS</strong> β€” Deploy and dev terminal UIs migrated from React to SolidJS via <code>@opentui/solid</code> for better reactivity and smaller footprint</li> <li><strong>S3 versioning for directoryUpload</strong> β€” Buckets with <code>directoryUpload</code> automatically enable S3 versioning (for rollback support) with a 30-day non-current version lifecycle</li> <li><strong>CLI telemetry</strong> β€” Migrated from Mixpanel to PostHog</li> </ul> <h2>πŸ–₯️ Console UI</h2> <ul> <li><strong>Granular RBAC</strong> β€” New DEVELOPER and VIEWER roles with a permission matrix across ~35 actions. Users can be scoped to specific projects. All API routes enforce permissions; UI elements conditionally hidden/disabled based on role</li> <li><strong>Alert system overhaul</strong> β€” Replaces Integration model with AlertChannel supporting Slack, MS Teams, Discord, Email, and Webhook. Source-specific dispatchers (notification/alarm/budget) with delivery channel snapshots and status tracking (SENT/FAILED/PARTIAL/PENDING)</li> <li><strong>Budget alerts</strong> β€” New page for creating budget alerts with monthly thresholds, percentage-based triggers, required AWS account selection, and per-stack or per-org scoping</li> <li><strong>Per-source alert history</strong> β€” Dedicated history pages for notifications, alarms, and budgets with shared AlertChannelSummary and delivery status components</li> <li><strong>Notifications overhaul</strong> β€” 18 granular event types (deploy, delete, rollback, git, scripts, secrets) replace old coarse-grained types; event types now required; enabled toggle added</li> <li><strong>API key management</strong> β€” Keys support optional expiration dates and soft-revocation instead of hard delete. Status badges show Active/Expired/Revoked</li> <li><strong>One-click rollback</strong> β€” Rollback button in the stage activity table triggers version-based rollback with confirmation modal</li> <li><strong>Metrics dashboard</strong> β€” Time range toolbar with presets (1h–30d), loading/error states per chart, stats overlay (avg/max/min), chart type toggle (area/line), CloudFront metrics enabled</li> <li><strong>Config editor</strong> β€” New resource cards view for visual resource management, guided "Add Web Service" modal wizard</li> <li><strong>Domains page</strong> β€” Redesigned with improved add-domain wizard and detail modals</li> <li><strong>Member management</strong> β€” Redesigned invite/update forms with role picker, color-coded badges, and project-scope selector for DEVELOPER/VIEWER roles</li> <li><strong>Monitoring navigation</strong> β€” Restructured nav with Channels as top-level item and Config/History sub-routes for notifications, alarms, and budgets</li> <li><strong>EC2 runner fix</strong> β€” GitOps webhook handlers now await runner completion in Lambda contexts to prevent mid-flight kills</li> </ul> <p><a href="https://docs.stacktape.com" rel="nofollow">Docs</a> β€’ <a href="https://join.slack.com/t/stacktape-community/shared_invite/zt-16st4nmgl-B8adf0YnZWSMEbuz9Ih6vg" rel="nofollow">Slack</a> β€’ <a href="https://x.com/stacktape" rel="nofollow">X</a></p> github-actions[bot] tag:github.com,2008:Repository/213468789/3.6.0-beta.0 2026-03-10T12:34:03Z 3.6.0-beta.0 <p>feat: add ensureOpenTuiPlatformPackage function for cross-compilation</p> matuscongrady tag:github.com,2008:Repository/213468789/3.5.8 2026-02-11T19:14:33Z 3.5.8 <h2>πŸ”¨ Bugfixes</h2> <ul> <li><strong>NPM binary install integrity</strong> β€” Fixed a race/corruption scenario where Stacktape could run with a partially extracted <code>bin</code> directory and fail with missing helper-lambda ZIP files</li> <li><strong>Helper lambda availability checks</strong> β€” Launcher now validates required helper-lambda artifacts before reusing cached binaries</li> <li><strong>Global binary safety check</strong> β€” Global binary shortcut now verifies helper-lambda artifacts before execution, preventing invalid cache reuse</li> </ul> <h2>✨ Improvements</h2> <ul> <li><strong>Race-safe installation</strong> β€” Added installation lock handling to avoid concurrent extraction conflicts on first run</li> <li><strong>Self-healing cache behavior</strong> β€” Added install marker validation and automatic cleanup/reinstall for incomplete cache states</li> <li><strong>Resilient bootstrap flow</strong> β€” Added retry path for failed/partial installs to improve reliability across CI and local environments</li> </ul> <p><a href="https://docs.stacktape.com" rel="nofollow">Docs</a> β€’ <a href="https://join.slack.com/t/stacktape-community/shared_invite/zt-16st4nmgl-B8adf0YnZWSMEbuz9Ih6vg" rel="nofollow">Slack</a> β€’ <a href="https://x.com/stacktape" rel="nofollow">X</a></p> github-actions[bot] tag:github.com,2008:Repository/213468789/3.5.7 2026-02-11T03:28:11Z 3.5.7 <p>Version: 3.5.7</p> github-actions[bot]