From c5e0561add40edf073446a10a3cb56d526655071 Mon Sep 17 00:00:00 2001 From: Tomas Dvorak Date: Fri, 9 Oct 2026 05:21:08 +0200 Subject: [PATCH] fix: resolve ROADMAP2 merge markers --- ROADMAP2.md | 45 --------------------------------------------- 1 file changed, 45 deletions(-) diff --git a/ROADMAP2.md b/ROADMAP2.md index ec72ed1..5e2e9de 100644 --- a/ROADMAP2.md +++ b/ROADMAP2.md @@ -308,28 +308,6 @@ and wired refs, one click or one CLI call. audit logs, deployments, notifications tables. - [ ] **Notification producers round-out** — backups, agent offline, upgrade available, security findings. -<<<<<<< HEAD -- [ ] **Sleep-on-idle / wake-on-traffic** (serverless-lite) — - `services.sleep_after_idle` (duration, empty=off). Reaper loop stops - containers past idle threshold (last-seen from Traefik access logs or - request-tracking middleware); edge middleware returns a "waking" - page/503-with-retry, starts the container, then routes normally. - Per-service toggle + status badge (`sleeping`). Railway calls this - "app sleep"; it is the single biggest cost saver for hobby services. -- [ ] **Env doctor** — template/service required-var manifest: - `POST /templates/:id/plan` and service env UI surface *missing* and - *auto-generated* vars before deploy; never silently deploy with - empty required values. Secrets get `{{secret(len)}}` defaults. -- [ ] **One-click install** — `install.sh` (curl|sh): detects docker, - writes compose + .env with generated secrets, pulls images, runs - migrations, prints admin URL. Companion `docker-compose.prod.yml` - + `Dockerfile` images published to GHCR so installs never build - from source. -- [ ] **CI/CD v2** — required-checks workflow (backend test/vet, - frontend build, sqlc-diff check), path-filtered jobs for speed, - and a release pipeline: merge to main → tag → GoReleaser binaries - (CLI + MCP) → GHCR images (api, web, agent) → GitHub Release notes. -======= - [x] **Sleep-on-idle / wake-on-traffic** (serverless-lite) — `services.sleep_enabled` + `sleep_idle_minutes` (PR #29). Sweeper polls container NetworkIO deltas; idle past threshold → workload @@ -356,7 +334,6 @@ and wired refs, one click or one CLI call. conventional-commit version bump → tag → GHCR images (backend, frontend) → cross-platform CLI + MCP binaries → SHA-256 checksums → GitHub Release → Trivy scans (PR #33). ->>>>>>> origin/main - [ ] **Custom roles/RBAC** — defer until demanded; PAT scopes designed forward-compatible now. @@ -376,27 +353,6 @@ and wired refs, one click or one CLI call. ## 9b. Phase I — Companion surfaces -<<<<<<< HEAD -- [ ] **Phone app** — fully-featured companion, not a read-only viewer. - The target: a user on the go can see a problem, understand it, and - fix it without a laptop. PAT + profile auth (multi-instance like the - CLI). - - **Dashboard** — project/service status at a glance, deploy - activity, node health, resource usage (cpu/mem from existing - metrics endpoints). - - **Operate** — deploy, redeploy, restart/stop/start, rollback to a - prior deployment, cancel a running deploy, scale replicas. - - **Observe** — live log tail (SSE), deployment step logs, backup - status, cron execution history. - - **Fix** — env var edit + apply-redeploy, domain add/remove, - maintenance-mode toggle, database backup/restore trigger. - - **Notifications** — push via existing notification rows; zero-infra - path = self-hosted ntfy/Gotify relay (no Firebase dependency), - FCM/APNs optional. - - **Stack** — React Native (Expo) thin client over the agent-shaped - API; dark UI mirroring the web design system; deploy status as the - first-class view. Ships with `app/` workspace in this repo. -======= - [x] **Phone app (v1)** — `app/mobile`, Expo/React Native thin client over the agent-shaped API; dark UI mirroring the design system. PAT auth against any instance URL, stored in platform secure storage. @@ -412,7 +368,6 @@ and wired refs, one click or one CLI call. ntfy/Gotify relay (no Firebase dependency), FCM/APNs optional. - [ ] **Offline resilience** — cached last-known state + unreachable banner. ->>>>>>> origin/main - [ ] **Status/offline resilience** — app + CLI degrade gracefully when the instance is unreachable (cached last-known state, clear banner).