Repository navigation
Releases: KTStackAPP/KTStack
Releases · KTStackAPP/KTStack
Release list
KTStack 0.3.6.3
Added
- Sites: import your own certificate (full chain + private key) for a site. KTStack serves it on HTTPS and never re-mints, renews or deletes it. Re-import to update it. An alias or wildcard the certificate does not cover is refused.
- Sites: a details button in the header shows the inspector, and widens a narrow window to fit it.
- Sites and Settings: a warning when the TLD is HSTS-preloaded (
.dev,.appand others). Browsers force HTTPS on these TLDs, so a site with HTTPS off won't load.
Fixed
- An open sheet such as New Site no longer disappears when you switch to another app.
KTStack 0.3.6.2
Fixed
- Shell integration: turning it on now downloads WP-CLI along with Composer, so
wpworks in a new terminal for imported WordPress sites too. Settings names any tool whose download did not finish. - Database: PostgreSQL connections default to TLS
prefer. A TLS failure now says whether the server refused TLS or the handshake failed (for example a self-signed certificate) and which TLS setting to try. - Database: the DDL source sheet shows the
CREATE TABLEandCREATE VIEWstatement for PostgreSQL and SQLite tables.
Changed
- Database: the workspace window responds faster. Object tabs keep their pane when you switch instead of rebuilding it, the data grid stays on screen while a table loads, and the ER diagram redraws only when the diagram changes.
KTStack 0.3.6.1
Fixed
- Database: PostgreSQL
timestamp,timestamptz,date,time,timetz,intervalandnumericcolumns show their values instead of unreadable bytes.timestamptzshows in UTC (+00), andnumerickeeps its scale (12.50). - Database: the row inspector is easier to read. Column names and types use stronger text colors, long type names stay on one line, and the inspector edge, header and field borders are darker.
KTStack 0.3.6
KTStack 0.3.6
Changed
- Sites: a fixed-width list beside a wide site detail pane. Search and kind filters share one row above both, and search also matches a PHP version ("PHP 8.4"). The detail shows Domain, Security & Sharing, Runtime and Advanced cards in two columns, with environment variables, nginx directives and workers edited in their own sheets. Site Settings moved into the detail; grid view removed. The server control sits in the header and DNS status under the list.
- Logs: newest line on top. Following keeps the view at the top as lines arrive, so opening a log no longer starts at the oldest line.
- Switching dashboard tabs is faster: the sidebar no longer re-renders twice per switch, and a tab starts its polling and log tail after it first draws.
- The Sites list scrolls without per-row work: installed editors are read once and refreshed when the app becomes active, and site frameworks publish in one update.
Fixed
- Dark mode: Mail, Dumps, Services, Database backups, modals, form fields and segmented tabs no longer draw white panels behind white text. The sidebar uses the native sidebar material and full-contrast row labels.
KTStack 0.3.5
KTStack 0.3.5
Changed
- Release builds are now checked for a working server start before they ship: the release smoke test launches the app and fails unless nginx comes up and no binary is rejected. No app behavior changes in this version.
KTStack 0.3.4
KTStack 0.3.4
Fixed
- The server and database engines start again. 0.3.2 and 0.3.3 rejected their own signed binaries (nginx, MySQL, PostgreSQL, Redis, MongoDB, Mailpit, Memcached) with "Code signature check failed", so nothing could start.
KTStack 0.3.3
KTStack 0.3.3
Added
- Background workers in Site Settings… → Workers: run long-lived commands such as
php artisan queue:workandphp artisan schedule:workfor a PHP site, supervised by KTStack. Laravel sites get one-click queue and scheduler presets. Workers use the site's PHP version, folder and environment variables, run while the server runs, restart with backoff when they crash (and stop retrying after repeated quick crashes), and stop with the server or when KTStack quits. Start, stop and restart each worker; the site card shows how many are running. Output goes to Logs as<domain> · worker <name>. Workers are off until you press Start.kt workersand the MCPktstack_list_workers,ktstack_start_workerandktstack_stop_workertools list, start and stop them. - Wildcard subdomains in Site Settings…: a site can answer on every subdomain of its domain, so
tenant.shop.testreaches theshop.testsite without adding each one as an alias. Useful for WordPress multisite in subdomain mode and multi-tenant apps. It is off by default. On an HTTPS site the certificate is re-issued with*.shop.test. A site or alias with its own domain (for exampleapi.shop.test) still wins over the wildcard.kt sitesand the MCPktstack_list_sitestool show the flag.
Changed
- The update window now shows what changed in the new version.
Fixed
- Apache backends no longer redirect an alias domain to the site's main domain (for example when adding a trailing slash to a folder URL). Apache now keeps the host from the request and only pins the port.
KTStack 0.3.2
KTStack 0.3.2
New: Scheduled Backups
- Settings → Scheduled Backups: a plan backs up the databases you pick, and optionally site source code and KTStack settings, into one archive every day or every week. It keeps the last N archives. A missed run (Mac asleep or KTStack closed) runs once as soon as possible, and a plan can skip runs on battery power.
- Settings → Backup Destinations: a local folder (external drive, network share, iCloud Drive, Dropbox), any S3-compatible storage (Amazon S3, Cloudflare R2, Backblaze B2, MinIO, Wasabi, DigitalOcean Spaces or a custom endpoint), or a Google Drive folder. Each plan uploads to one destination and can keep a copy on this Mac. Test Connection checks a destination before you use it. Secrets live in the macOS Keychain.
- Google Drive sign-in runs in your browser and only asks for access to files KTStack creates or that you pick.
- Restore… on a plan downloads an archive, verifies its checksum, adds its database dumps to Database → Backups and copies site folders and settings into Downloads.
- The
ktCLI and MCP server can back up managed databases. MCP also gainsktstack_create_siteandktstack_switch_php_version. Restore stays out of reach of agents.
Other additions
- Appearance setting: System, Light or Dark (KTStack no longer forces Light).
- VoiceOver labels on toggles and icon-only buttons. The ⌘D and ⌘⇧D shortcuts in the menu bar window now work.
- Settings → General → Queue actions while busy: server start, stop and restart clicked during another server operation now run once it finishes instead of being ignored.
Changed
- Sites are served to this Mac only by default. Other devices on your network get
403unless you turn on Settings → Sites & Network → Allow devices on your network. Backends now see the real client IP instead of127.0.0.1. - New local CAs are created with name constraints: they can only sign certificates for
.test,.home.arpa,.internal, your dev TLD and loopback IPs. Replace an existing CA with Settings → HTTPS Certificates → Regenerate CA (the old one is kept in aretiredfolder), or turn this off with Restrict CA to dev domains. - MongoDB documents are shown and saved as Extended JSON. Decimal128, binary subtypes, regular expressions and JavaScript code keep their types when you edit a document.
- Remove Site now only unregisters the site by default. Moving the folder to the Trash and dropping its MySQL database are separate opt-in checkboxes.
- Uninstalling a database or cache engine version keeps its data. Runtimes shows the kept data, restores it into a reinstalled version, and offers Delete data… to move it to the Trash.
- Uninstalling KTStack moves its data to the Trash instead of deleting it, and shows progress.
- Shared tunnels stop on their deadline or when KTStack quits, even after a crash. Tunnel URLs keep the site's nginx directives and Apache
.htaccessrules. - Editing sites reloads only the backends whose configuration changed.
- Launch, HTTPS settings, the PHP version list and SQL highlighting on large queries no longer block the interface.
lsof,php-fpm -t,codesignandlaunchctlrun with timeouts, so a hung tool can no longer freeze KTStack.
Fixed
- A failed WordPress restore puts the original site back instead of deleting it.
- A MySQL overwrite restore keeps its safety dump until the restore or rollback is verified.
mysqldumpnow includes routines, events and triggers. - Grid edits commit to the row they were opened on and survive sorting, paging and commits. Placeholders and large numbers are no longer saved by mistake.
- Postgres filtered and sorted browsing uses the selected schema.
- Idle workspace tabs reconnect on every entry point.
- A bad
sites.jsonno longer wipes sites, vhosts or certificates. - Services keep launchd in sync with their toggles and start the active engine version.
- Runtime downloads cancel reliably.
- Legacy KDWarm launchd jobs are booted out on migration.
Upgrade notes
- The privileged helper is now version 0.3.1. KTStack asks you to approve the helper again after updating.
- If you open your local sites from a phone or another computer, turn on Settings → Sites & Network → Allow devices on your network after updating.
Downloads
- Apple Silicon:
KTStack-0.3.2-arm64.dmg - Intel:
KTStack-0.3.2-x86_64.dmg
Both are signed with Developer ID and notarized. Existing installs update automatically through Sparkle.
KTStack 0.3.1
Highlights in KTStack 0.3.1
KTStack 0.3.1 brings critical refinements to CLI lifecycle management, shell integration toggles, and runtime binary isolation.
1. Robust CLI Lifecycle & Shell Integration
- Clean Uninstallation: Toggling off
ktin Settings > Shell Integration > Managed Tools or disabling the master shell integration switch now cleanly removes/usr/local/bin/ktand~/Library/Application Support/KTStack/shims/kt. - Runtime Tool Guard: Added an instant runtime check to
ktto ensure disabled tools cannot be inadvertently executed from cached shells or absolute paths. - Staging Verification: Prevented
prepareShimDir()andinstallCLI()from auto-restaging disabled tools during stack launch.
2. Binary Packaging & Auto-Update
- Universal Apple Silicon (
arm64) & Intel (x86_64) signed and notarized DMGs with Developer ID Application:PHONG DA TRADING SERVICES COMPANY LIMITED (44452PW7V3). - Sparkle EdDSA-signed
appcast.xmlsupporting automatic updates for existing KTStack installations.
KTStack 0.3.0
Highlights in KTStack 0.3.0
KTStack 0.3.0 introduces a native Model Context Protocol (MCP) server for AI coding agents, a unified terminal CLI (kt), 1-click IDE quick launch, and a clean-room MIT database management workspace with multi-engine backup and restore.
1. Native Model Context Protocol (MCP) Server (kt mcp)
- Embedded stdio JSON-RPC 2.0 MCP server (spec 2024-11-05) connecting Cursor, Claude Code, and Windsurf directly to your local KTStack environment.
- Exposes 7 zero-network-egress agent tools:
ktstack_list_sites: Site inventory with domains, runtime pins, and ports.ktstack_create_site: Provision local sites with automated.testrouting.ktstack_switch_php_version: Dynamically change assigned PHP runtime versions.ktstack_get_recent_logs: Instant trailing log retrieval for autonomous agent debugging.ktstack_inspect_db_schema: Inspect table columns and primary keys.ktstack_backup_db: Trigger immediate database dumps.ktstack_doctor: System and IPC socket diagnostic probe.
- Setup guide documented in
docs/ai-agent-integration.md.
2. Standalone Swift CLI (kt)
- Native Mach-O command-line tool packaged inside
KTStack.app/Contents/MacOS/kt. - Subcommands:
kt sites [list] [--json]: List local development sites.kt services [list] [--json]: List daemon status.kt services restart <service>: Gracefully restart background services.kt db backup <database>: Clean-room database snapshot.kt doctor: Terminal diagnostics probe.kt version: Print CLI and build version.
3. 1-Click IDE Quick Launch
- Added 1-click launch buttons directly on Site cards and rows.
- Launches your preferred editor in
$< 300\text{ms}$ :-
Cursor (
com.todesktop.230313mzl4w4u92) -
VS Code (
com.microsoft.VSCode) -
PhpStorm (
com.jetbrains.PhpStorm) -
Zed (
dev.zed.Zed) -
Sublime Text (
com.sublimetext.4)
-
Cursor (
4. Clean-Room MIT Database Management Workspace
- 1-Click Backup & Restore: Full support for MySQL, MariaDB, PostgreSQL, SQLite, and MongoDB.
- PK-Indexed Grid Staging: Edits, deletions, and draft rows remain tied to Primary Keys across virtualized scrolling and sorting.
- AppKit Floating Editor: Custom
KTCellOverlayEditorandKTGridKeyHandlingTableViewavoiding AppKit field editor focus traps. - DDL & Structure: Real-time DDL preview, foreign key navigation, and explain plan visualization.
5. Platform Architecture & Security
- Local IPC Unix Socket: Thread-safe communication via
ktstack.sockrestricted to POSIX0600permissions. - Apple HIG & Liquid Glass: Native Liquid Glass container batching for macOS 27+ with graceful
.ultraThinMaterialfallbacks on macOS 13+ (Ventura). - 100% Clean-Room MIT Provenance: Zero AGPL or proprietary code ported.