check / check (push) Successful in 2m49s
entrypoint.sh now switches to the routewatch user with setpriv instead of runuser. setpriv replaces itself with the daemon, so the daemon gets the stop signal directly and has its full 60 seconds to shut down; runuser stayed in between and killed the daemon 2 seconds after passing the signal on. setpriv keeps the environment, so GOMEMLIMIT, MALLOC_ARENA_MAX and XDG_DATA_HOME still reach the daemon, and the state directory stays /var/lib/berlin.sneak.app.routewatch. Model: opus-5-5
61 lines
2.6 KiB
Markdown
61 lines
2.6 KiB
Markdown
# Workflow
|
|
|
|
* branch (from `main`)
|
|
* do the work in Next Step
|
|
* move Next Step to the top of Completed Steps
|
|
* move the top item of Future Steps into Next Step
|
|
* commit (`TODO.md` changes in the same commit as the work)
|
|
* merge to `main` if the branch is not protected, otherwise open a PR
|
|
* push
|
|
|
|
# Status
|
|
|
|
pre-1.0. No git tags. Runs in production-style Docker deployment, but
|
|
the policy compliance branch (repo-policies-compliance, make check
|
|
passing, clean tree) is unmerged to main and the CI workflow is missing.
|
|
|
|
# Next Step
|
|
|
|
Merge repo-policies-compliance into main (3 commits: policy files and
|
|
.gitignore, Makefile targets fmt-check/check/docker/hooks, gofmt pass),
|
|
then add .gitea/workflows/check.yml as a small follow-up commit so CI
|
|
runs make check on main.
|
|
|
|
# Completed Steps
|
|
|
|
- 2026-09-28: `docker stop` no longer kills the daemon 2 seconds after the
|
|
stop signal: the entrypoint switches to the `routewatch` user with
|
|
`setpriv` instead of `runuser`, so the daemon receives the signal itself
|
|
and gets its full 60 seconds to shut down (closes #33)
|
|
- 2026-09-28: ready to run under upaas: a set but invalid `PORT`,
|
|
`XDG_DATA_HOME` or `MALLOC_ARENA_MAX` stops the start, the health
|
|
check follows `PORT`, README "Running under upaas" section (closes
|
|
#31)
|
|
- 2026-09-22: realtime in-memory database statistics: counts seeded at
|
|
startup and adjusted on every write, oldest/newest route timestamps via
|
|
index-end lookups; `/api/v1/stats` no longer scans the tables (closes
|
|
#27)
|
|
- 2026-07-07 Adopted scripts-to-rule-them-all: `script/` entrypoints,
|
|
Makefile shims, README Entrypoints section
|
|
- 2026-02-22: repo policy compliance: required policy files, .gitignore
|
|
update, Makefile fmt-check/check/docker/hooks targets, gofmt pass
|
|
(repo-policies-compliance, unmerged)
|
|
- 2026-01-01: WAL checkpointing: periodic (5s), on startup with logging,
|
|
TRUNCATE mode; fixed slow queries
|
|
- 2025-12-31: status page: navbar, home page with search, oldest/newest
|
|
route timestamps, NULL handling in WHOIS stats; container runs as
|
|
routewatch user with proper state dir
|
|
- 2025-12-30: structured HTTP request logging, increased timeouts,
|
|
CIDR prefix URL routing fixes, status page metrics and footer
|
|
- 2025-12-29: Dockerfile multi-stage build with source archive; SQLite
|
|
incremental vacuum for non-blocking space reclamation
|
|
- 2025-07-27: initial RouteWatch BGP stream monitor
|
|
|
|
# Future Steps
|
|
|
|
- Verify main is green after the merge: make check locally and the new
|
|
CI workflow passing
|
|
- Review stale remote branches fix-min-time-calculation and
|
|
optimize-sqlite-settings: land or delete
|
|
- Clean up the tmp/ directory at the repo root: gitignore or remove
|