1.3.1 (2026-04-30)
- docs: prefix internal links with site base, repair broken targets (0d0faf4)
- docs: rename JSX-using pages to .mdx, drop bare imports from .md (ab487c4)
- proxy,systemd: pin Caddy storage to data_dir, fix systemd unit (#84) (d07b190)
1.3.0 (2026-04-30)
- add dev-docker-rebuild target and update dev docs (cd9ffe5)
- add HMR targets to Makefile for Go dev workflow (31edf31)
- add official Docker install path (d4ef6fb)
- alerts: add backup alert event type and dispatcher (70f3f38)
- alerts: add clear alert history (all or resolved only) (7231243)
- alerts: snapshot rule config in alert history (1c50993)
- api,proxy: multi-endpoint support with per-service routing (cb6b136)
- api,ui: add degraded app status, user management improvements (131496f)
- api,ui: delete deploy history versions (856e599)
- api,ui: support first-time git setup against empty remote (5a98457)
- api: activity endpoints (da4ef83)
- api: add backup summary, detect, config-trigger, test-s3 endpoints (525563e)
- api: add POST /api/git/test-connection (c0f8aa7)
- api: add trust page and CA cert download for local TLS (870de7f)
- api: add UpdateWebhook and TestWebhook endpoints (dd7ef00)
- api: apply-pending route + toggle fields in config/status (1d65732)
- api: archive view, purge endpoint, delete refuses archived (c07e67a)
- api: expose deployment_mode/deployment_label on /system/info (b139141)
- api: git status + webhook routes + compose/env write hooks (ce111ab)
- api: populate audit.Ctx in auth middleware (ecdddbc)
- api: POST /api/git/sync-now route (1984c99)
- api: prevent app overwrite on deploy; suggest name for template collisions (c002b45)
- api: realtime notify-only events bus and WebSocket (e2146ec)
- api: rewrite backup handlers for v2, add compose version endpoints (fa446e7)
- audit/render: registry + compose diff renderer (0af1137)
- audit/render: renderers for all categories (5378883)
- audit: Ctx + context helpers (e68cfbf)
- audit: record config changes across all categories (1a3614e)
- audit: Recorder replaces in-memory Logger; migrate call sites (191f9d7)
- audit: render archive and purge actions (61dd5ca)
- audit: retention pruner (06809c3)
- backup: add checksum module for backup integrity verification (83f76f8)
- backup: add hook runner for pre/post backup lifecycle hooks (8f8436e)
- backup: add pipeline processor, rewrite scheduler with hot-reload + retention (b2cb817)
- backup: add v2 migration and rewrite core interfaces (1c1dae1)
- backup: implement all 6 backup strategies (49f75cb)
- backup: rewrite targets to new interface, add detection coordinator (558454d)
- cli: wire backup alerts, S3 decryption, missed backup checker (438c6d3)
- cmd: add config export/import subcommands (43afee1)
- cmd: first-boot sidecar backfill + idempotent backfill test (6628912)
- cmd: prune orphan sidecars on serve startup (3b0a485)
- cmd: wire configsync Syncer at startup + mutation hook + global import (1b47d5e)
- cmd: wire gitsync into serve + CLI git subcommands (bda3909)
- community recipes catalog integration (#11) (2d4c5bb)
- config: add tls.mode validation, support 'local' mode (bd2e83b)
- config: expand ~ in data_dir, apps_dir, and ssh_key_path (d8080c6)
- config: GitSync config block + validation (a1b67fb)
- configsync: add ImportGlobalIfEmpty + ImportAppSidecarIfMissing helpers (9390a1c)
- configsync: add sidecar YAML types (a12527d)
- configsync: apply FS-loaded sidecars to DB transactionally (bf4d391)
- configsync: DeleteAppSidecar + PruneOrphanSidecars (85b344d)
- configsync: first-boot seed and FS->DB reload (d913bbe)
- configsync: inject .gitignore entries for secrets files (0e1301b)
- configsync: load app and global state from FS (cd7f019)
- configsync: redacted global sidecar types (25c0e88)
- configsync: rehydrate archived apps from tombstones on reload (3211a84)
- configsync: SidecarWriteHook for gitsync integration (1089e20)
- configsync: split secret material into AppSecrets/GlobalSecrets types (c48c063)
- configsync: tombstone read/write/delete helpers (27a4b16)
- configsync: write secrets to mode-0600 sidecar files (ea967dd)
- configsync: write/read/import sidecars + debouncer + tests (0806a4a)
- configsync: write+import redacted _global.yml, schedule writes both (fe798f3)
- deployer: emit deploy_succeeded/deploy_failed/rollback audit events (2f66645)
- deployer: post-deploy stabilization + unstable status, audit all templates (3249a75)
- deployment: detect native/docker/desktop/dev modes (91310bf)
- e2e,templates: probe actual reachability for every app template (#8) (924cb84)
- export/import app config bundle (#13) (73524b8)
- export/import follow-ups (docs, audit render, overwrite preview) (#15) (a583298)
- gitsync: add CheckRemote with classified errors (dbc0e05)
- gitsync: add poll/auto-push/auto-apply/webhook toggles (7df4d4e)
- gitsync: add RecentCommits to Status (c83aebb)
- gitsync: core syncer + init + commit worker (57d0e5b)
- gitsync: DB-authoritative config + UI form for git sync (d8250da)
- gitsync: HMAC webhook handler (22b25fb)
- gitsync: stamp audit rows on push success/failure (843ac9f)
- metrics: use compose service name instead of container hash (07d0b94)
- mirror docker.io images via GHCR to dodge Hub rate limits (74623d4)
- proxy: add local TLS mode using Caddy internal issuer (e1965bd)
- proxy: shared simpledeploy-public network + container-IP upstream (344a3f3)
- reconciler: add syncer field + DR recovery after UpsertApp (79b73d7)
- reconciler: archive on disk-removal instead of delete (3d96653)
- reconciler: periodic app-status refresh (60700e6)
- reconciler: watcher reloads FS-authoritative state on change (3f905c3)
- rework roles to super_admin/manage/viewer (#14) (857b2e5)
- store: add archive-aware list helpers and MarkAppArchived (78883fb)
- store: add archived_at column on apps (5d0e8cb)
- store: add audit_log migration (b0045b0)
- store: add backup summary and recent runs queries (40db7f8)
- store: add helpers for configsync import/export (076163f)
- store: add MutationHook infrastructure (43ca7c5)
- store: add PurgeApp cascade (ffda214)
- store: add WipeConfigForRestore for DR import --wipe (e69f432)
- store: audit_log read/write/prune/sync + retention config (cdd5622)
- store: helpers for redacted global import (preserve secrets) (c1c8c59)
- store: InsertConflictAlert for gitsync conflicts (dbb7f29)
- store: rewrite backup store for v2 schema + add compose version metadata (53abe0c)
- store: system_meta table and backup_configs uuid backfill (2f31248)
- store: wire MutationHook into all mutating methods (e761ac4)
- ui,api: inline scale controls + scalability detection (#27) (62cfa27)
- ui/api: activity client helpers (622cd2e)
- ui: ActivityRow component (d9284d3)
- ui: add ActionModal component with live WebSocket terminal output (5211625)
- ui: add active-only toggle to alert history (dabedbc)
- ui: add app-level templates to Deploy wizard (528f8f7)
- ui: add backup summary, detect, config-trigger, test-s3 API methods (c1313b8)
- ui: add BackupHealthCard dashboard component (ab6cc4f)
- ui: add Backups tab to AppDetail (a5f03be)
- ui: add BackupsTab per-app backup management component (21f62b6)
- ui: add BackupWizard 4-step config creation component (28f3a6d)
- ui: add delete confirmation modal to users page (650af76)
- ui: add Deployment card + mode-aware hints to System overview (ddcb27e)
- ui: add display name and email to user creation and cards (72da851)
- ui: add inline help text to alerts sections (42489db)
- ui: add local TLS option with amber warning in endpoint settings (e9849b5)
- ui: add manual override toggle to backup wizard strategy selection (a01947e)
- ui: add OverviewTab component (ce80c62)
- ui: add request metric charts to metrics tab (93aa1a2)
- ui: add ScheduleBuilder visual cron component (4964e94)
- ui: add SettingsTab component consolidating app settings (0f5d6cb)
- ui: add sparkline and onclick support to StatCard (bfecb9c)
- ui: add SparklineChart component for stat card trends (38651a2)
- ui: add Test connection button to Git Sync page (bf76386)
- ui: archived apps view with purge action (30e9144)
- ui: auto-generate rule names from config (b53c719)
- ui: comprehensive setup screen with profile fields and password strength (3c1e20b)
- ui: dashboard recent-activity card (9eaa0a0)
- ui: deploy wizard integration polish, SlidePanel moved into wizard (d078ff0)
- ui: deploy wizard step 1 name input with validation (058521f)
- ui: deploy wizard step 1 YamlEditor with auto-validation (80eba21)
- ui: deploy wizard step 2 routing labels with injection (b6962c5)
- ui: deploy wizard step 2 service summary and registry selector (7d8e484)
- ui: deploy wizard step 3 with live log streaming (5fe7ffc)
- ui: endpoints only in Settings, compose read-only view, env confirm+autocomplete (f965d7d)
- ui: enhance compose versions with inline editing, download, restore (9b66706)
- ui: enhance visual editor with protocol support and service templates (2bc7473)
- ui: env var UX overhaul in visual editor (953a55f)
- ui: export compose yaml from config tab (99d4865)
- ui: GitSync admin page + nav link (1fcf90e)
- ui: global Audit view replaces in-memory ring buffer tab (dfecb03)
- ui: guided Telegram webhook setup with bot token + chat ID builder (7f3adb4)
- ui: help & feedback menu; add github issue/PR templates (ad742d6)
- ui: hide Git Sync nav for non-super-admins (4c61f76)
- ui: improve alert cards on dashboard home (fe0fb61)
- ui: improve alert rule creation UX (5d9bd61)
- ui: log-line compact activity rows + omnipresent ActivitySidebar (auto-open on new activity) (7a8236a)
- ui: mode-aware hints in backup destination and logs tab (63f7dd1)
- ui: move gitsync config into modal, regroup sections (af82e80)
- ui: move mode toggle above endpoints, file paths in YAML view (018f2df)
- ui: multi-endpoint visual editor with service routing (e7e6314)
- ui: per-app Activity tab (94a6d4c)
- ui: per-container chart lines with visibility toggles (d0ce3c9)
- ui: per-endpoint edit/add/delete, simpler env vars view (78528ef)
- ui: plain .env editor in YAML mode, dedupe env section (ccaf3dd)
- ui: polish API keys section, empty states, and key banner dismiss (44effa2)
- ui: prioritize upload/build over templates, expand service list (16c739a)
- ui: quick-test endpoint mode + HTTP->HTTPS redirect listener (e400391)
- ui: read-only visual builder, fix endpoint JSON, compose in ConfigTab (c1a5d31)
- ui: realtime store and per-page subscriptions (7f7e99e)
- ui: replace user table with card grid and empty state (e628cbd)
- ui: restructure visual compose editor into grouped sections (e907500)
- ui: revamp app details to 4-tab layout with action modal (8184b25)
- ui: rewrite /backups as cross-app health dashboard (41e97e9)
- ui: rewrite Alerts page with FormModal, edit/test webhooks, improved UX (d9d5768)
- ui: rewrite backup UI for v2 with 6-step wizard, hooks, download, upload-restore (65bb9ed)
- ui: rewrite deploy wizard with modal + visual builder (9b29f14)
- ui: scaffold DeployWizard with step indicator (5f56aa6)
- ui: show actual values in chart tooltips (77f9ba6)
- ui: show deployment mode badge in StatusBar (8ed128e)
- ui: show recent git activity on Git Sync page (58bfeda)
- ui: show slug, compose path, env path in app info (fc92d28)
- ui: template access modes (quick-test sslip.io / custom / port-only) (5922df4)
- ui: toggle controls + pending-apply banner (8922844)
- ui: update frontend for metrics v2 API (c90f90b)
- ui: validate memory and CPU resource limits in VisualEditor (625d903)
- ui: view-first Settings with read-only endpoint cards (5264e63)
- ui: visual compose builder overhaul (cb221f0)
- ui: wire DeployWizard into Dashboard, remove old deploy form (d724907)
- wire data_dir into proxy config for local TLS storage (b8660e7)
- wire tls mode and data dir into API server (16f42d4)
- activity: address code review findings (1-8) (582e237)
- activity: JSON shape (snake_case + raw before/after), per-app filter by slug, UI res.data unwrap, broader e2e coverage (7eed04b)
- activity: tighten non-admin scope to own auth events only (a90cbf5)
- address archive + FS-authoritative review issues (32040ce)
- address code review findings (ad1c84d)
- alerts: close webhook SSRF DNS-rebinding window; expand reserved-IP filter (5b90450)
- alerts: human-friendly values in webhook messages (48ec37a)
- alerts: resolve active alerts on rule disable/delete + format history values (e526d0a)
- alerts: update active history snapshot when rule is edited (6213e7f)
- api,proxy,ui: endpoint-update reliability + per-route local TLS (e3e8990)
- api,reconciler: remove orphan sidecar when app is deleted (bb3c1bc)
- api,ui: add json tags to BackupConfig/BackupRun structs (05bf322)
- api,ui: filter app list by access and add per-app grant UI (#21) (ddccc5a)
- api,ui: prevent silent overwrite when deploying existing app name (94bac4d)
- api: adaptive gap threshold in metrics insertGaps (7639c34)
- api: add Content-Security-Policy on SPA index.html (b92c121)
- api: add HTTP server slowloris defenses (ReadHeaderTimeout, IdleTimeout) (6fbb632)
- api: add JSON tags to alert structs + populate AppSlug in rules list (a11ad55)
- api: add panic-recovery middleware (1b667b1)
- api: API key scopes — accept expires_at on create + last_used_at tracking (7a96c27)
- api: cap concurrent upload-restore goroutines (2343d68)
- api: cap inbound WS frames on logs and deploy_logs endpoints (54eff74)
- api: correct disk size calculation on Linux (87a9889)
- api: DELETE returns 404 when app row missing instead of 5xx (c24e44e)
- api: enforce per-app access check on backup config/run endpoints (d00b072)
- api: fix SPA redirect loop in UI serving (573e900)
- api: gate backup-config + alert-history routes by role/access (#23) (c4f6156)
- api: gate webhook + alert-rule routes by role and per-app access (#18) (8251ff6)
- api: make session cookie secure flag conditional on TLS mode (f0f360e)
- api: patch IDOR on GET /api/activity/{id} (32466d2)
- api: per-handler request body limits (01be207)
- api: record audit rows for rollback, profile self-update, gitsync config (af4d2e7)
- api: restrict global:audit WS topic to super_admin (6f1acd0)
- api: scrub crypto error details from registry encrypt responses (cd841bf)
- api: scrub webhook secrets from non-admin GET /api/webhooks (e1a02b2)
- api: silence errcheck on SetWriteDeadline (aa80747)
- api: tighten platform reads to super_admin and filter cross-app lists (#24) (f916434)
- api: tighten WS Origin check + always SameSite=Strict on session cookie (e11d4a6)
- api: validate .env keys/values to prevent line injection (c96a70d)
- api: validate endpoint domains at the API boundary (e2115a7)
- api: verify JWT user exists in DB before granting access (e67f7a6)
- api: wake Users page on user_/apikey_ audit events (#20) (d84663c)
- api: WS logs streams send pings + recheck auth periodically (addeec3)
- audit: capture old compose bytes for redeploy diff (Before snapshot) (5c4e605)
- audit: capture real username for user_deleted; thread actor for login events (a704fea)
- audit: instrument missing app settings handlers (env, IP allowlist, certs, pull, version delete, cancel) (1e14f0d)
- audit: wire lifecycle/created on new-app deploy + compose diff capture (8705b72)
- auth: derive JWT signing key via HKDF subkey from master_secret (e8a8c61)
- auth: make login rate limit configurable; raise for e2e (#70) (a109935)
- auth: pin JWT issuer and audience claims (c3fa950)
- auth: RealIP trusted_proxies accepts CIDR ranges (ddc3f73)
- auth: rekey login lockout to (user,ip) tuple + match 401 on lock (849f543)
- auth: server-side JWT invalidation via token_version (1e54522)
- backup,proxy: busybox-tar compat on restore; opt-out for HTTP redirect (#71) (3bbabfb)
- backup: cap gzip decompression on restore to prevent compression bomb (65c99a5)
- backup: credential sourcing, container naming, download path, s3 uploader (8ee41be)
- backup: use SAVE for redis with BGSAVE+poll as fallback (43349a8)
- backup: validate restore tar stream before piping to docker exec (090a10c)
- build: drop HTTPListenAddr reference that leaked from WIP (e525359)
- cli: improve Docker/Compose missing error message (30efae8)
- cmd: only mark backfill complete on full success (7e19cfc)
- compose: expand ValidateComposeSecurity to cover container-escape vectors (de00950)
- compose: preserve default network on InjectSharedNetwork (#9) (25d5d65)
- config: git_sync YAML key (snake_case) + install git in container (e7d3657)
- configsync: debouncer race + sentinel collision + docstring (38c5ed3)
- configsync: preserve DB rows across sidecar reapply (969342e)
- configsync: stage-all after orphan prune + app sidecar delete (73a8dc7)
- config: update test for 5-tier defaults (d063095)
- deploy,ci: proper WS keepalive + use GHCR mirror in main CI e2e (9b6adc8)
- deployer,reconciler: prevent double-dispatch race on API-driven deploys (aab0604)
- deployer: check fmt.Sscanf return (errcheck lint) (90fd42c)
- deps: bump go directive to 1.26.2 (98da666)
- deps: bump postcss to 8.5.12 (c2761bf)
- docker: health check uses HTTP and configurable port (87978f5)
- e2e,templates: use real adminer tag, accept Unstable for code-volume templates (8d6c2f1)
- e2e: accept unstable/failed badge in slow-templates deploy test (e6bc7b5)
- e2e: accommodate mirrored image refs and slower GHCR pulls (8b64038)
- e2e: adapt template tests to new wizard + resilient manifest check (35f90aa)
- e2e: bump 03b Node API budget to 18 min for slow CI image pulls (44f885e)
- e2e: bump deploy expect + test timeout for slower GHCR on CI (cb02705)
- e2e: fix 6 remaining test failures (63a3117)
- e2e: fix Advanced button click in endpoints test (b2ef5c5)
- e2e: fix final 4 test failures (c1ea26f)
- e2e: fix final 5 failures with resilient assertions (7466235)
- e2e: fix last 2 test failures (eeb6e59)
- e2e: fix lockout test cascade and path traversal fixture (532ed2e)
- e2e: fix rate limiting and deploy wizard selectors (06ffc42)
- e2e: fix remaining selector and state issues (97022e5)
- e2e: fix remaining selector issues and test expectations (5fd5aea)
- e2e: fix selectors and flows based on actual UI (92636e6)
- e2e: fix selectors based on actual UI components (f044251)
- e2e: poll with reload for restart button after start (80a858c)
- e2e: restore test.setTimeout for 03b Node+Postgres (0d963ca)
- e2e: simplify Advanced test to verify section exists (7d673fd)
- e2e: templates-deploy-all missed the Browse templates click (7431b13)
- e2e: try dispatchEvent for Advanced click (3a261a9)
- e2e: use API to ensure app running before restart test (fb62035)
- e2e: use evaluate for Advanced section click (ca1dae3)
- e2e: use getByRole with force click for Advanced (f2ffe24)
- e2e: wait for restart button after start (no modal) (6380043)
- gitsync: detach webhook handler context to prevent goroutine leak (#12) (6bea9a2)
- gitsync: extend suppress tail + no-rebound + poll loop tests (97c8aa4)
- gitsync: make sync robust + surface errors (90e1e99)
- gitsync: scrub secrets from probe errors and surface decrypt failures (5bc9aa2)
- gitsync: stageAllowed now stages tracked-file deletions (2c3ce71)
- lint: address CI findings + harden pre-push hook (74c5f63)
- logbuf: strip ANSI escapes and cap per-line bytes (bfeb79d)
- metrics: align rollup thresholds with view windows (7711e4e)
- metrics: query all feeder tiers so longer ranges show unrolled data (3d630c0)
- metrics: use single timestamp per collection cycle (e1d2dec)
- packaging: harden simpledeploy.service systemd unit (4b7a47e)
- proxy,api,e2e: dedupe TLS policies, restore force deploy, fix test bugs (cbe5fe2)
- proxy,deployer,api: port-stripped host lookup, deploy auth, super-admin guard (5a08a6d)
- proxy: inject default security headers on Caddy app responses (fa66b6e)
- proxy: wire http_listen_addr and default to :80 for HTTP->HTTPS redirect (864b8fb)
- reconciler,ui,e2e: routes-only refresh + reliable status-badge assertion (75b1341)
- reconciler: apply ValidateComposeSecurity in scan loop (3f01aba)
- reconciler: normalize stale compose_path when apps_dir changes (5aa7214)
- refresher race + WS deadline + slow-pull e2e timeouts (b9b44eb)
- resolve four residual e2e failures (proxy TLS + test stability) (6e5a834)
- security hardening across Go codebase (087320f)
- security: batch hardening (M-15, L-09, L-10, L-11) (2a77363)
- security: bind management dashboard to 127.0.0.1 by default (10896af)
- security: pin published host ports to 127.0.0.1 (f09161f)
- security: preserve audit log on app purge; sentinel on full purge (481caac)
- security: tighten file modes for secrets and app config (59cae8f)
- sqlite backup tmp uses source basename; postinstall locks down dirs (82d7736)
- stabilize three remaining e2e flakes (6b46c51)
- store,e2e: allow 'unstable'/'failed' app status; raise 03b timeout (43625dd)
- store,gitsync: conflict alerts insert null rule_id + regression test (1a86112)
- store: isolate audit retention table; clean SyncEligible read (9730bf1)
- store: log fireAppHook lookup errors + tighten DeleteAlertRule + clean test dead code (c92b45b)
- store: migration 017 makes alert_history.rule_id nullable (1ca2989)
- store: scan avg(mem_bytes) as float64 to handle SQLite avg() return type (edb6a93)
- templates: nginx-static TCP healthcheck + accept Failed in deploy-all (90bee72)
- templates: pg_isready uses POSTGRES_USER, not hardcoded "postgres" (6fd3811)
- ui: Add Service button not working in deploy wizard (33a412b)
- ui: Advanced section not expanding due to ComposeFile typo (162e678)
- ui: align archive view with PascalCase App fields (9989c6b)
- ui: aria-label on access mode buttons so e2e selectors match (02e9deb)
- ui: cap app overview memory total at host memory (0112b3e)
- ui: community recipes modal transparent due to undefined bg token (6af253c)
- ui: compact activity rows wrap summary on its own line so it stays readable (9d3eeb0)
- ui: container label mismatch causing empty charts (e1798d0)
- ui: correct vite dev proxy target and port (7779200)
- ui: deploy log coloring based on content not stream (82170d4)
- ui: deploy wizard review fixes (5104dbd)
- ui: endpoint custom TLS, detailed service cards, per-service edit (8c7c78c)
- ui: endpoint display, service field, YAML mode sync (45681cd)
- ui: export isValidIPv4 missed in 5922df4 (786754c)
- ui: fix env var Add button, remove dead code (0ad7789)
- ui: fix wizard strategy field name mismatch with detect API (bd900af)
- ui: honor ?tab= query on system page (622ea8c)
- ui: improve service edit UX (ffbce78)
- ui: improve users page UX - modals, card layout, key date fix (9c9bd15)
- ui: include summed bytes in Total memory tooltip (e4e5435)
- ui: make users page and form modals mobile friendly (1f5bcad)
- ui: premature deploy toast + stuck deploy screen (64a01b8)
- ui: refresh dashboard on failed deploy; add endpoints UI in visual editor; include compose services in endpoint dropdown (6917fbc)
- ui: remove duplicate ids declaration in loadMetrics (23ec466)
- ui: remove undefined compose reference in SettingsTab read-only view (096c445)
- ui: rename app overview activity card to Recent Deployments (46fa12d)
- ui: render StatusBar in Layout so mode badge is visible (12f0e02)
- ui: RepeatableField empty row disappearing on add (dcaff58)
- ui: simplify settings layout (b6f3708)
- ui: Svelte compile errors in alerts module (cfc50da)
- ui: tooltip showing undefined, mem subtitle showing single container (12ead4b)
- ui: uniform card borders, file path headers in YAML mode (5100e82)
- ui: use $derived for reactive statusColor in BackupHealthCard (80e161e)
- update template image tags that no longer exist on Docker Hub (d1146c2)
- use config values for rate limiter instead of hardcoded 10/min (55f41b9)
- e2e: cut runtime by ~40% via configurable intervals + compose restart (aa6e0fa)
- e2e: shard templates workflow + prepull + storageState + parallel (#7) (ea5260e)
1.2.0 (2026-04-08)
- alert evaluator with condition checking (dbf247c)
- alerts store: webhooks, rules, history (569862d)
- api: alert API endpoints and wire evaluator (f213a25)
- api: API server with health endpoint (2e2eea7)
- api: app list/get API endpoints (802b60f)
- api: auth endpoints: login, logout, setup (d28b3b0)
- api: auth store: users, API keys, app access (924cb84)
- api: auth utilities: password, JWT, API keys, rate limiter (35044e9)
- api: Caddy rate limiter handler with per-domain config (34d61bc)
- api: Caddy request metrics handler with path normalization (bf3bffe)
- api: deploy, remove, and compose API endpoints (20a4160)
- api: deployer to translate compose specs to Docker API calls (72c5122)
- api: HTTP client for remote API access (53ce0ea)
- api: metrics query API endpoints (e53ab82)
- api: request stats writer, API endpoint, and wire pipeline (a7e3879)
- api: Svelte SPA with auth, layout, API client, Go embed (2910b7e)
- api: user and API key management endpoints (02cca0f)
- app CRUD operations and labels table (059f85e)
- app detail page with metrics charts and log viewer (6b20162)
- auth and app access middleware (1423bcd)
- backup store: configs and runs (796ea27)
- backup strategies and targets (cb7edf1)
- backup, alert, and user management pages (13a502e)
- cli: add version command with ldflags support (a80a59a)
- cli: apply, remove, list CLI commands and wire reconciler (e563726)
- cli: backup scheduler, API, CLI commands (4795769)
- cli: context, pull, diff, sync CLI commands (8cc192b)
- client context management (217b336)
- cli: full documentation set (dd8b92c)
- cli: log streaming via WebSocket and CLI (ba3ece4)
- cli: Phase 1 foundation implementation plan (971b740)
- cli: Phase 2 reconciler implementation plan (6362e2c)
- cli: simpledeploy design spec (1de40a5)
- cli: users and apikey CLI commands, wire auth into serve (ddf7a1c)
- compose file parser with label extraction (c993bad)
- config parsing with defaults and YAML loading (2f843c1)
- dashboard with system metrics and app list (fb85b46)
- Docker client wrapper with Ping and interface (4e0d1cb)
- gitignore for bin and db files (742ac29)
- metrics collector for system and container stats (9b458c5)
- metrics rollup and pruning (f634b96)
- metrics types, store table, and query methods (afc47d2)
- metrics writer with buffered channel and batch inserts (7c4e5b2)
- proxy route types and upstream resolution (1d51aad)
- reconciler with directory watcher and debounce (fbafdcc)
- request stats store with tiered rollup (4c2c67d)
- SQLite store with WAL mode and migration runner (852bab3)
- webhook dispatch with built-in templates (ae054b5)
- disable CGO for cross-compilation (d88c607)
- reset git state after UI build to avoid dirty goreleaser (164ed2f)
1.1.0 (2026-04-08)
- alert evaluator with condition checking (dbf247c)
- alerts store: webhooks, rules, history (569862d)
- api: alert API endpoints and wire evaluator (f213a25)
- api: API server with health endpoint (2e2eea7)
- api: app list/get API endpoints (802b60f)
- api: auth endpoints: login, logout, setup (d28b3b0)
- api: auth store: users, API keys, app access (924cb84)
- api: auth utilities: password, JWT, API keys, rate limiter (35044e9)
- api: Caddy rate limiter handler with per-domain config (34d61bc)
- api: Caddy request metrics handler with path normalization (bf3bffe)
- api: deploy, remove, and compose API endpoints (20a4160)
- api: deployer to translate compose specs to Docker API calls (72c5122)
- api: HTTP client for remote API access (53ce0ea)
- api: metrics query API endpoints (e53ab82)
- api: request stats writer, API endpoint, and wire pipeline (a7e3879)
- api: Svelte SPA with auth, layout, API client, Go embed (2910b7e)
- api: user and API key management endpoints (02cca0f)
- app CRUD operations and labels table (059f85e)
- app detail page with metrics charts and log viewer (6b20162)
- auth and app access middleware (1423bcd)
- backup store: configs and runs (796ea27)
- backup strategies and targets (cb7edf1)
- backup, alert, and user management pages (13a502e)
- cli: add version command with ldflags support (a80a59a)
- cli: apply, remove, list CLI commands and wire reconciler (e563726)
- cli: backup scheduler, API, CLI commands (4795769)
- cli: context, pull, diff, sync CLI commands (8cc192b)
- client context management (217b336)
- cli: full documentation set (dd8b92c)
- cli: log streaming via WebSocket and CLI (ba3ece4)
- cli: Phase 1 foundation implementation plan (971b740)
- cli: Phase 2 reconciler implementation plan (6362e2c)
- cli: simpledeploy design spec (1de40a5)
- cli: users and apikey CLI commands, wire auth into serve (ddf7a1c)
- compose file parser with label extraction (c993bad)
- config parsing with defaults and YAML loading (2f843c1)
- dashboard with system metrics and app list (fb85b46)
- Docker client wrapper with Ping and interface (4e0d1cb)
- gitignore for bin and db files (742ac29)
- metrics collector for system and container stats (9b458c5)
- metrics rollup and pruning (f634b96)
- metrics types, store table, and query methods (afc47d2)
- metrics writer with buffered channel and batch inserts (7c4e5b2)
- proxy route types and upstream resolution (1d51aad)
- reconciler with directory watcher and debounce (fbafdcc)
- request stats store with tiered rollup (4c2c67d)
- SQLite store with WAL mode and migration runner (852bab3)
- webhook dispatch with built-in templates (ae054b5)
- reset git state after UI build to avoid dirty goreleaser (164ed2f)
- alert evaluator with condition checking (dbf247c)
- alerts store: webhooks, rules, history (569862d)
- api: alert API endpoints and wire evaluator (f213a25)
- api: API server with health endpoint (2e2eea7)
- api: app list/get API endpoints (802b60f)
- api: auth endpoints: login, logout, setup (d28b3b0)
- api: auth store: users, API keys, app access (924cb84)
- api: auth utilities: password, JWT, API keys, rate limiter (35044e9)
- api: Caddy rate limiter handler with per-domain config (34d61bc)
- api: Caddy request metrics handler with path normalization (bf3bffe)
- api: deploy, remove, and compose API endpoints (20a4160)
- api: deployer to translate compose specs to Docker API calls (72c5122)
- api: HTTP client for remote API access (53ce0ea)
- api: metrics query API endpoints (e53ab82)
- api: request stats writer, API endpoint, and wire pipeline (a7e3879)
- api: Svelte SPA with auth, layout, API client, Go embed (2910b7e)
- api: user and API key management endpoints (02cca0f)
- app CRUD operations and labels table (059f85e)
- app detail page with metrics charts and log viewer (6b20162)
- auth and app access middleware (1423bcd)
- backup store: configs and runs (796ea27)
- backup strategies and targets (cb7edf1)
- backup, alert, and user management pages (13a502e)
- cli: add version command with ldflags support (a80a59a)
- cli: apply, remove, list CLI commands and wire reconciler (e563726)
- cli: backup scheduler, API, CLI commands (4795769)
- cli: context, pull, diff, sync CLI commands (8cc192b)
- client context management (217b336)
- cli: full documentation set (dd8b92c)
- cli: log streaming via WebSocket and CLI (ba3ece4)
- cli: Phase 1 foundation implementation plan (971b740)
- cli: Phase 2 reconciler implementation plan (6362e2c)
- cli: simpledeploy design spec (1de40a5)
- cli: users and apikey CLI commands, wire auth into serve (ddf7a1c)
- compose file parser with label extraction (c993bad)
- config parsing with defaults and YAML loading (2f843c1)
- dashboard with system metrics and app list (fb85b46)
- Docker client wrapper with Ping and interface (4e0d1cb)
- gitignore for bin and db files (742ac29)
- metrics collector for system and container stats (9b458c5)
- metrics rollup and pruning (f634b96)
- metrics types, store table, and query methods (afc47d2)
- metrics writer with buffered channel and batch inserts (7c4e5b2)
- proxy route types and upstream resolution (1d51aad)
- reconciler with directory watcher and debounce (fbafdcc)
- request stats store with tiered rollup (4c2c67d)
- SQLite store with WAL mode and migration runner (852bab3)
- webhook dispatch with built-in templates (ae054b5)