-
7641c0de12
chore: post-merge cleanup — remove merged plan folders (volume-snapshot-restore, gitops)
main
alexei.dolgolyov
2026-06-22 17:25:34 +03:00
-
1c47030854
feat(volsnap): volume snapshot restore (backlog #6)
alexei.dolgolyov
2026-06-22 17:23:52 +03:00
-
8a5f69af87
feat(web): bidirectional stage promotion + confirm dialog
alexei.dolgolyov
2026-06-22 16:04:28 +03:00
-
7733e64b08
feat(gitops): config-as-code via .tinyforge.yml for repo-backed workloads
alexei.dolgolyov
2026-06-21 23:32:02 +03:00
-
80868e0f7a
ci: align Gitea CI/CD + Docker with the notify-bridge template
ci/gitea-docker-template
alexei.dolgolyov
2026-06-21 20:51:13 +03:00
-
5b51bbbd7f
feat(web): deploy-strategy selector UI for image/dockerfile/static sources
alexei.dolgolyov
2026-06-19 17:09:17 +03:00
-
e3d140c57a
feat(deployer): configurable per-workload deploy strategy (blue-green for built sources)
alexei.dolgolyov
2026-06-19 16:51:20 +03:00
-
0c4c338bfe
feat(apps): per-workload deploy history, rollback, and resource metrics
alexei.dolgolyov
2026-06-19 16:22:12 +03:00
-
c8e71a0c34
refactor(plugin): centralize workload conversion + container cleanup
alexei.dolgolyov
2026-06-19 16:21:54 +03:00
-
-
6492944c8f
fix(web): keep the image-ref conflict indicator from reflowing the form
alexei.dolgolyov
2026-06-08 16:13:30 +03:00
-
c2ca6c0b73
fix(deployer): wire pre-deploy backup into the unified dispatch path
alexei.dolgolyov
2026-06-08 16:13:30 +03:00
-
ec8c0cd891
feat(web): warm-seed cache for triggers/[id] (last detail page)
alexei.dolgolyov
2026-06-08 16:06:37 +03:00
-
192204a51c
feat(web): stale-while-revalidate caches to eliminate tab-switch flicker
alexei.dolgolyov
2026-06-08 15:39:25 +03:00
-
6b45ed62bb
feat(snapshots): capture app data-volume snapshots
alexei.dolgolyov
2026-06-02 14:56:10 +03:00
-
2ba49b9bb6
chore: add .vex.toml vex index config
alexei.dolgolyov
2026-06-02 13:34:42 +03:00
-
00503b4c0a
feat(cli): add tinyforge terminal client
alexei.dolgolyov
2026-06-02 13:34:42 +03:00
-
97f338fba3
feat(maintenance): add Docker build-cache prune action
alexei.dolgolyov
2026-06-02 13:34:05 +03:00
-
15e5b186cd
feat(secrets): scoped shared secrets rule-management UI (Phase 2)
alexei.dolgolyov
2026-05-29 16:11:46 +03:00
-
fa6d5bd3ba
feat(secrets): scoped shared secrets — backend + API (Phase 1)
alexei.dolgolyov
2026-05-29 15:26:09 +03:00
-
bd7a11d4e7
refactor(source): dedup shared helpers across static + dockerfile plugins
alexei.dolgolyov
2026-05-29 14:57:30 +03:00
-
7576f54e76
feat(alerts): metric-alert rule-management UI (Phase 2)
alexei.dolgolyov
2026-05-29 14:34:01 +03:00
-
2e26f555c5
fix(dashboard): count Recent workloads by source_kind, not raw rows
alexei.dolgolyov
2026-05-29 14:33:53 +03:00
-
cdb9fd57d1
feat(alerts): metric-threshold alerting (backend + API)
alexei.dolgolyov
2026-05-29 14:06:23 +03:00
-
5c17885197
perf(reconciler): batch workloads per tick, drop redundant image inspect
alexei.dolgolyov
2026-05-29 13:51:27 +03:00
-
93b6911b34
feat(apps): per-app deploy/activity timeline
alexei.dolgolyov
2026-05-29 13:51:17 +03:00
-
3071cda512
feat(deploy): commit-status reporting to Git providers
alexei.dolgolyov
2026-05-29 11:37:56 +03:00
-
410a131cec
feat(apps): stepped creation wizard, branch previews, and app-creation fixes
alexei.dolgolyov
2026-05-29 02:09:54 +03:00
-
956943edbb
feat(proxies): per-row Triggers deep-link to /apps/[id]#bindings
alexei.dolgolyov
2026-05-16 22:46:51 +03:00
-
279f373f80
docs(extra_json): policy doc for containers.extra_json evolution
alexei.dolgolyov
2026-05-16 22:00:41 +03:00
-
ea55d31177
feat(discovery+runtime): restore static-site wizard discovery + close /sites/[id] feature parity
alexei.dolgolyov
2026-05-16 21:35:51 +03:00
-
ef62a41fc0
test(static-plugin): cover pure helpers, build helpers, and state/env paths
alexei.dolgolyov
2026-05-16 18:30:37 +03:00
-
5e78f13e06
refactor(triggers): review followups — fire-now, dedupe trigger pages, hardening
alexei.dolgolyov
2026-05-16 12:16:47 +03:00
-
39e1e36510
feat(triggers): add schedule trigger kind + internal scheduler
alexei.dolgolyov
2026-05-16 11:24:05 +03:00
-
e3c7b13d58
chore(workload): close the workload-first arc — apps i18n + codemap + tests
alexei.dolgolyov
2026-05-16 06:42:43 +03:00
-
739b67856a
feat(cutover): hard legacy cutover — drop projects/stacks/sites/deploys
alexei.dolgolyov
2026-05-16 06:00:21 +03:00
-
234c3c711e
feat(static): inline static-source plugin; drop phantom-row adapter
alexei.dolgolyov
2026-05-16 02:56:23 +03:00
-
2aff22f565
feat(triggers): first-class triggers + bindings with fan-out webhook
alexei.dolgolyov
2026-05-16 02:24:31 +03:00
-
30133bc1eb
docs: workload refactor + observability progress
alexei.dolgolyov
2026-05-11 22:18:51 +03:00
-
4707db1c3b
feat(observability): event-triggers + log-scan-rules UI + i18n
alexei.dolgolyov
2026-05-11 22:18:29 +03:00
-
7a9ff7ad54
feat(observability): event triggers + log scanner backend
alexei.dolgolyov
2026-05-11 22:18:11 +03:00
-
82d32181ba
feat(webhook): vendor-specific event parsing (Gitea / GitHub / GitLab)
alexei.dolgolyov
2026-05-11 22:17:53 +03:00
-
8d6a527a2b
refactor(workload): plugin architecture wave + apps UI + volume scopes
alexei.dolgolyov
2026-05-11 22:17:41 +03:00
-
f42b21a2b9
fix(sites): show Secrets card before Resources on site detail
alexei.dolgolyov
2026-05-09 15:44:49 +03:00
-
cba2149aa9
refactor(workload): finalize containers index + post-review hardening
alexei.dolgolyov
2026-05-09 15:44:41 +03:00
-
d8ab22876f
refactor(workload): extract Instance entirely; Container is canonical
alexei.dolgolyov
2026-05-09 14:43:12 +03:00
-
d516462750
feat(workload): switch ListProxyRoutes to containers index
alexei.dolgolyov
2026-05-09 14:05:19 +03:00
-
3e28588f10
feat(workload): global Containers tab + frontend client
alexei.dolgolyov
2026-05-09 14:02:20 +03:00
-
0acbcda084
feat(workload): /api/workloads /api/containers /api/apps endpoints
alexei.dolgolyov
2026-05-09 13:52:31 +03:00
-
7f2d1bdae1
feat(workload): switch buildActiveImagesSet to containers index
alexei.dolgolyov
2026-05-09 13:47:20 +03:00
-
af82be3fb8
feat(workload): container index reconciler
alexei.dolgolyov
2026-05-09 13:45:13 +03:00
-
b6f20599d7
feat(workload): wire stack + static-site into containers index
alexei.dolgolyov
2026-05-09 13:41:03 +03:00
-
abb1da903f
feat(workload): emit workload labels + dual-write containers from deployer
alexei.dolgolyov
2026-05-09 13:37:19 +03:00
-
db235c1412
feat(workload): write-through workload sync + boot-time backfill
alexei.dolgolyov
2026-05-09 13:28:20 +03:00
-
f54a6ecee3
feat(workload): add Workload/Container/App store foundation
alexei.dolgolyov
2026-05-09 13:22:25 +03:00
-
0f60a7a5db
feat(webhook): inbound delivery audit log
alexei.dolgolyov
2026-05-07 02:40:39 +03:00
-
831b5c1a43
feat(webhook): HMAC-SHA256 signature verification on inbound webhooks
alexei.dolgolyov
2026-05-07 02:34:40 +03:00
-
793570f4a1
feat(stats): inline 30-min sparklines on container CPU + memory bars
alexei.dolgolyov
2026-05-07 02:20:06 +03:00
-
2c109913bd
fix(types): resolve pre-existing svelte-check errors
alexei.dolgolyov
2026-05-07 02:17:20 +03:00
-
8b886ddf2b
feat(backup): take Tinyforge DB snapshot before every deploy
alexei.dolgolyov
2026-05-07 02:14:26 +03:00
-
0405ecd9ce
feat(notify): HMAC-signed outgoing webhooks with per-tier secrets and test sender
alexei.dolgolyov
2026-05-07 02:03:32 +03:00
-
134fe22fde
refactor(ui): standardize boolean inputs on ToggleSwitch
alexei.dolgolyov
2026-05-07 00:57:18 +03:00
-
a4362b842d
fix: harden security, fix concurrency bugs, and address review findings
alexei.dolgolyov
2026-05-07 00:56:14 +03:00
-
05440a5f92
feat(stats): resource metrics dashboard + sites logs/stats
alexei.dolgolyov
2026-04-24 15:02:43 +03:00
-
0632f512e6
feat(webhook): per-project and per-site webhook URLs
alexei.dolgolyov
2026-04-23 15:18:19 +03:00
-
e08acf5c0e
refactor(settings): split General into focused pages
alexei.dolgolyov
2026-04-23 14:53:48 +03:00
-
03d58a072c
fix: treat naive backend timestamps as UTC for relative labels
alexei.dolgolyov
2026-04-23 14:39:41 +03:00
-
90e6e59d9e
feat: daemon health panel, brand-rail status chips, user timezone selector
alexei.dolgolyov
2026-04-23 14:32:30 +03:00
-
a182a93950
feat: nav counter badges, login backdrop, events i18n + misc fixes
alexei.dolgolyov
2026-04-22 18:30:34 +03:00
-
ef0669d5dd
feat: unified THE FORGE // SECTION headers and merged proxy routes
alexei.dolgolyov
2026-04-22 16:27:55 +03:00
-
0fd92fdfa3
feat: Forge design system app-wide + Stacks i18n
alexei.dolgolyov
2026-04-16 04:17:42 +03:00
-
75424a5f25
feat: docker-compose stacks with Forge-themed UI
alexei.dolgolyov
2026-04-16 03:48:37 +03:00
-
b622384774
feat: persistent storage for Deno static sites
alexei.dolgolyov
2026-04-13 00:12:51 +03:00
-
9ec25a8d5a
feat: project detail UX improvements
alexei.dolgolyov
2026-04-13 00:12:34 +03:00
-
96fd910603
fix: resolve ERR_INSUFFICIENT_RESOURCES connection exhaustion
alexei.dolgolyov
2026-04-13 00:12:14 +03:00
-
791cd4d6af
feat: rename Docker Watcher to Tinyforge
alexei.dolgolyov
2026-04-12 21:30:23 +03:00
-
8d2c5a063b
feat: static sites feature with Gitea/GitHub/GitLab support and Deno backend
alexei.dolgolyov
2026-04-11 03:35:57 +03:00
-
b0816502bf
feat: configurable unused images threshold with dashboard warning
alexei.dolgolyov
2026-04-05 14:34:48 +03:00
-
0ddad87a9a
fix: add confirmation dialog for Docker image prune button
alexei.dolgolyov
2026-04-05 14:20:49 +03:00
-
21ffef2ee2
feat: separate Public IP for DNS records from Server IP, improve settings help texts
alexei.dolgolyov
2026-04-05 14:12:53 +03:00
-
d03cc3c811
feat: container logs viewer with SSE streaming and line limiter
alexei.dolgolyov
2026-04-05 14:04:45 +03:00
-
ac3132d172
feat: show local Docker images on project detail page
alexei.dolgolyov
2026-04-05 13:56:55 +03:00
-
198bdb856c
fix: prevent error flash on project delete by using SPA navigation and blocking re-fetch
alexei.dolgolyov
2026-04-05 13:51:37 +03:00
-
5577851f22
feat: project-scoped Docker image prune, conflict fix, deploy toggle, access list picker
alexei.dolgolyov
2026-04-05 13:49:20 +03:00
-
a830378c5b
fix: replace access list ID field with EntityPicker, add deploy toggle, improve UX
alexei.dolgolyov
2026-04-05 13:07:09 +03:00
-
feec97fe9e
fix: resolve NPM access list name on page load instead of showing ID
alexei.dolgolyov
2026-04-05 12:56:47 +03:00
-
7550fe9e32
feat: CPU/RAM limits per stage, NPM access list (global + per-project)
alexei.dolgolyov
2026-04-05 12:44:26 +03:00
-
c6d20ca26e
feat: NPM access list support (global default + per-project override)
alexei.dolgolyov
2026-04-05 12:38:20 +03:00
-
4ff8daafc4
fix: reconcile instance status with Docker on list, add IsContainerRunning
alexei.dolgolyov
2026-04-05 02:42:31 +03:00
-
12d78bec99
fix: instance link includes domain, project delete cleans up containers and proxies
alexei.dolgolyov
2026-04-05 02:38:32 +03:00
-
0993b3a54e
fix: NPM remote toggle uses onchange handler instead of to prevent spurious saves
alexei.dolgolyov
2026-04-05 02:33:28 +03:00
-
b54481aff8
fix: NPM remote toggle auto-save, proxy resync on remote change, webhook URL as path
alexei.dolgolyov
2026-04-05 02:27:41 +03:00
-
195ef3e7e5
feat: NPM remote mode for cross-machine deployments
alexei.dolgolyov
2026-04-05 02:18:06 +03:00
-
f71f2275a2
fix: per-event delete button, Docker network default, polling interval duration parsing
alexei.dolgolyov
2026-04-05 02:02:03 +03:00
-
c26c41e6a1
feat: enable proxy toggle on quick deploy, event log clearing, and UX fixes
alexei.dolgolyov
2026-04-05 01:50:19 +03:00
-
61febefca9
feat: automatic proxy re-sync on settings change
alexei.dolgolyov
2026-04-05 01:39:01 +03:00
-
187e302f4a
feat: proxy routes page, OIDC login fix, NPM test connection, webhook URL fix, and UX improvements
alexei.dolgolyov
2026-04-05 01:27:54 +03:00
-
1aa9c3f0e9
feat: separate NPM and Traefik settings tabs, add Events to sidebar nav
alexei.dolgolyov
2026-04-04 23:27:00 +03:00
-
308547a3d7
refactor: remove standalone proxies, add Traefik provider with Docker labels
alexei.dolgolyov
2026-04-04 22:54:31 +03:00
-
216bd7e2db
fix: UI/UX consistency overhaul — fix 8 bugs, standardize design system
alexei.dolgolyov
2026-04-04 21:34:36 +03:00
-
27ec23921d
fix: restore Docker health indicator and fix empty expand when hints unavailable
alexei.dolgolyov
2026-04-04 20:51:11 +03:00