tag:github.com,2008:https://github.com/stacktape/stacktape/releasesRelease notes from stacktape2026-03-18T13:31:06Ztag:github.com,2008:Repository/213468789/3.6.62026-03-18T14:06:35Z3.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.52026-03-18T13:57:21Z3.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.42026-03-16T01:25:37Z3.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.32026-03-16T01:25:26Z3.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 <= 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.22026-03-15T23:44:41Z3.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.12026-03-13T14:18:29Z3.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.02026-03-13T14:12:28Z3.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 & 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.02026-03-10T12:34:03Z3.6.0-beta.0<p>feat: add ensureOpenTuiPlatformPackage function for cross-compilation</p>matuscongradytag:github.com,2008:Repository/213468789/3.5.82026-02-11T19:14:33Z3.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.72026-02-11T03:28:11Z3.5.7<p>Version: 3.5.7</p>github-actions[bot]