GEN-26: keep counter daily across deploys and restarts #62
No reviewers
Labels
No labels
bug
dependencies
documentation
duplicate
enhancement
good first issue
help wanted
invalid
javascript
question
symphony
wontfix
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
backmeupplz/borodutch-stats!62
Loading…
Reference in a new issue
No description provided.
Delete branch "fix/daily-counter-restarts"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Scope
GEN-KANEO-26 — Keep borodutch.com counter daily across deployments and restarts. User messages20716/20733: deployments restarted the former one-minute boot count; persist the 24h successful-publication gate without changing source totals, history, metrics, cache or math.
Rework at
1aac4d5db1wxfile with a process-lifetime kernelflockon the same shared-volume lock path. The lock's child holds it until the Node process closes stdin, including process death; the file stays in place and must not be unlinked. Concurrent API/manual and same-version rolling publishers exclude each other; a lost lock during an active collection fail-stops the Node process. Verified/bin/flockin the running production container (read-only metadata probe); local macOS tests use Python stdlibfcntl.flockwith matching OS semantics, not a new production binary dependency.setTimeoutto 2^31−1ms and re-evaluate the persisted timestamp on wake, preventing the Node overflow 1ms loop. Invalid dates fail closed to existing 1h retry; last good state remains unchanged.Local validation (not CI)
yarn test --runInBand --silent: 14 suites/92 tests passed;yarn build-tsandgit diff --checkpassed. Real child SIGKILL→restart→one due collection; live holder blocks manual/API run; normal failure releases lock; actual fake-timer entrypoint traverses oversized future timestamp and calendar-invalid Feb30 without early count or busy loop. No production counter, shadow scan or deploy invoked. Repository has no configured CI workflow; these are local results, not CI green.Release and mixed-version gate
First rollout from the old
wximplementation must drain the old API process and verify no old collector is running before starting the new scheduler. A former in-flightwxfile is not a kernel lock, so mixed-version rolling overlap cannot safely co-publish. Once all processes run this version, shared kernel locks allow overlap. Keep the persisted volume/settings and do not remove.collection.lockafter the upgrade. Parent owns independent rereview at this exact head, merge, deploy and live next-due/unchanged-snapshot verification. Natural 24h cycle is pending; last live publishedAt=2026-09-22T22:58:25.174Z implies next due 2026-09-23T22:58:25.174Z (15:58:25 PDT). Historical shadow untouched.Independent source review / production release gate
GEN-KANEO-26 — Keep borodutch.com counter daily across deployments and restarts. Independent GPT-6 Sol review of PR #62 exact head
1aac4d5db1d35d6712247f7200250eca3ffcb939against99ab5c93d9a8515e6864820f0901e915925bb4df: source PASS; no blocking code findings. 14 suites / 92 tests, TypeScript build and diff check passed; actual Linux image kernel lock test proved live-holder exclusion, SIGKILL release and restart callback without deleting the lock inode. Controlled scheduler validation includes manual/API serialization, last-good, failure retry, strict dates and long timers. GitHub has zero check runs/statuses and no required CI configured: this is local validation, not green CI.Production gate before deploy: baseline has one replica and
zeroDowntime:true/ Docker start-first; old scheduler does not coordinate with new kernel lock. Native stop-first rollout must be configured and old task confirmed stopped before new task starts. No expensive full count just to test. Owner/session:agent:main:subagent:d5986289-e468-4a6d-8544-45dc7c998cec.