Commit graph

  • 9fa1f39e13 docs: the two backup code lists share encrypt_failed and invalid_name main le king fu 2026-10-12 20:18:45 -0400
  • 329d83e4e5 feat(backups): pass the files[] block of status.json through GET /backups le king fu 2026-10-12 20:04:12 -0400
  • 3f0abc1871 test(backups): an invalid offsite retention is dropped le king fu 2026-10-12 19:14:59 -0400
  • 1b619249e2 feat(backups): GET /backups and POST /backups/pull le king fu 2026-10-10 19:43:07 -0400
  • 5208957ce9 fix(agent): nothing the VPS sends deletes or alters a pulled backup le king fu 2026-10-10 19:13:27 -0400
  • f81a80e325 fix(agent): anchor the backup rotation on the newest backup, not today le king fu 2026-10-10 19:03:48 -0400
  • b87b3d7253 fix(agent): run the backup pull under busybox, catch an empty filter le king fu 2026-10-10 18:56:05 -0400
  • 59b963220d feat(agent): daily pull of the encrypted PostgreSQL backups le king fu 2026-10-10 16:18:17 -0400
  • c5ded9e6f8 fix(server): archive by latest date, never a day past reception le king fu 2026-10-08 21:34:54 -0400
  • b136749552 docs: document the Claude usage history archive, its route and backfill le king fu 2026-10-08 20:44:45 -0400
  • cf72292967 feat(agent): one-shot backfill of the Claude usage history from local transcripts le king fu 2026-10-08 20:44:45 -0400
  • 9084d90609 feat(server): archive closed Claude usage days by month, serve them on /claude-usage/history le king fu 2026-10-08 20:41:30 -0400
  • f694677a1a test(agent): pin ENOENT as a read error below the root, note the subagent-copy limit le king fu 2026-10-07 20:53:27 -0400
  • ca33f10b85 docs: document the read-error freeze rule and count the #54 cases le king fu 2026-10-07 20:30:20 -0400
  • 123b3c3c8c fix(agent): no double count across midnight, no freeze on a read error, bounded limits read le king fu 2026-10-07 20:29:29 -0400
  • e2a24d768b fix(server): require a full ISO receivedAt on read, cover the temp-file cleanup le king fu 2026-10-07 20:25:26 -0400
  • 719d65129a docs(claude-md): count the threshold and prototype cases of the rebased #49 fix le king fu 2026-10-04 15:26:20 -0400
  • 7f01e6afe5 docs(agent): document the claude-usage agent install and its guarantees le king fu 2026-10-04 09:28:33 -0400
  • e274ca7ed5 feat(agent): add the claude-usage agent: plan limits, local cache, push le king fu 2026-10-04 09:28:33 -0400
  • c888f7c633 fix(agent): take the scan threshold from the open days, key maps without prototype le king fu 2026-10-04 15:25:43 -0400
  • 5cb9182911 fix(agent): collapse doubled slashes in cwd before project mapping le king fu 2026-10-04 09:11:46 -0400
  • 7d55e30ffd feat(agent): aggregate Claude usage from local transcripts le king fu 2026-10-04 09:10:51 -0400
  • ef8558e90e test(claude-usage): cover the routes, the sanitizer and the new write surface le king fu 2026-10-04 09:16:11 -0400
  • e1224e0df4 feat(claude-usage): add POST and GET /claude-usage behind a third token kind le king fu 2026-10-04 09:16:05 -0400
  • 67d40c83c3 test(ci): pin the two ends of the port range and the end anchor (#46) le king fu 2026-10-02 14:15:03 -0400
  • 75ed6dd324 fix(test-curl): fix the two tokens, refuse bad ports on both variables (#46) le king fu 2026-10-02 14:06:01 -0400
  • 2c7886dbfe fix(test-curl): take the two ports from the environment (#46) le king fu 2026-10-01 21:41:37 -0400
  • 7427577053 test(ci): pin the non-HTTP occupant and the wait deadline of test-curl.sh (#41) le king fu 2026-10-01 21:18:25 -0400
  • 193635a68e fix(test-curl): refuse a port already taken before starting (#41) le king fu 2026-10-01 20:51:42 -0400
  • 096f95da05 fix(test-curl): keep the socket pass off the environment (#41) le king fu 2026-10-01 20:12:57 -0400
  • 5912f08e41 test(writes): count every write, drop the stack attribution (#40) le king fu 2026-10-01 20:01:09 -0400
  • 198e1cf586 test(hosts): pin the symlink guard and the regex anchor of the temp sweep (#38) le king fu 2026-10-01 18:10:49 -0400
  • d7120063ad test(ci): check the load-late detector on its own (#35) le king fu 2026-10-01 17:42:01 -0400
  • 13d46e05ef docs: correct two comments of the CI pins (#35) le king fu 2026-10-01 17:40:38 -0400
  • a03e4d4296 docs: keep the escaped-key example escaped, bound the holes list (#35) le king fu 2026-10-01 16:13:55 -0400
  • 92bfb426ca test(ci): close the gaps found in the review of PR #42 (#35) le king fu 2026-10-01 15:56:32 -0400
  • ae27c7d504 docs: record the known holes of the column-0 require pin (#35) le king fu 2026-09-30 20:54:06 -0400
  • 32db0f81d5 test(ci): catch continue-on-error in any YAML spelling (#35) le king fu 2026-09-30 20:53:13 -0400
  • fef9f69fc0 fix(ci): keep every curl of the boot check off environment proxies (#35) le king fu 2026-09-30 20:51:57 -0400
  • 48c9a408f6 docs: bound the write guard's claims and name the owning group (#36) le king fu 2026-09-30 19:59:44 -0400
  • 7523b397f0 test: cover degraded paths and shell commands in the write guard (#36) le king fu 2026-09-30 19:59:44 -0400
  • 6a2f7fec04 docs: record the read-only Defenseurs mounts (#36) le king fu 2026-09-29 22:06:39 -0400
  • aeb941b2c0 test: pin that the API writes only under HOSTS_DIR (#36) le king fu 2026-09-29 22:06:39 -0400
  • 523d90bf7c fix(hosts): require 3 loadAvg values and sweep orphan temp files (#25) le king fu 2026-09-29 20:30:07 -0400
  • 156ca818ca ci: pin the review follow-ups of the CI workflow (#33) le king fu 2026-09-27 20:54:47 -0400
  • 93a59a29a2 ci(demo): drop metrics.js from COPY - expected red, throwaway branch le king fu 2026-09-27 20:23:37 -0400
  • 4e7879da6c ci: add a Forgejo Actions workflow with a boot-from-COPY check (#24) le king fu 2026-09-27 20:22:48 -0400
  • 2b35b78a0b Merge pull request 'fix(auth): compare HEALTH_TOKEN in constant time via tokenMatches' (#30) from issue-17-timing-safe-health-token into main maximus 2026-09-27 23:27:44 +0000
  • f006a1c05e test(auth): pin the single space after the Bearer scheme le king fu 2026-09-27 19:23:50 -0400
  • 5074f95d0a test(auth): guard tokenMatches itself and close the pin's blind spots le king fu 2026-09-27 16:13:16 -0400
  • f70a7e928f fix(auth): compare HEALTH_TOKEN in constant time via tokenMatches le king fu 2026-09-27 16:06:04 -0400
  • 8eef50d517 Merge pull request 'feat(defenseurs): GET /defenseurs/state serves findings-state.json' (#28) from issue-27-defenseurs-state into main maximus 2026-09-25 01:41:35 +0000
  • 7c14e581cb test(defenseurs): cover GET /defenseurs/state in the socket-level pass le king fu 2026-09-24 20:42:56 -0400
  • a5d1bcdedb feat(defenseurs): serve the Sergent's findings state at GET /defenseurs/state le king fu 2026-09-24 20:31:26 -0400
  • 00e1743c9d Merge pull request 'test(hosts): extend the socket-level pass to the two workstation routes' (#26) from issue-16-hosts-monitoring-commissioning into main maximus 2026-09-25 00:42:08 +0000
  • 50a829beb3 test(hosts): extend the socket-level pass to the two workstation routes le king fu 2026-08-18 20:18:53 -0400
  • e181a9691c fix(review): close the three gaps found in stack review le king fu 2026-08-16 14:24:43 -0400
  • e24f5b6f00 feat(agent): push workstation metrics to /hosts/<id> from cron le king fu 2026-08-16 12:21:59 -0400
  • 56ee580167 test(hosts): grow the workstation API smoke pass into a full matrix le king fu 2026-08-16 12:05:31 -0400
  • fedb1c81dc feat: ingest and serve workstation snapshots (POST /hosts/<id>, GET /hosts) le king fu 2026-08-16 11:49:36 -0400
  • babfd1f4b9 test(auth): cover the 401 gate on all four read routes le king fu 2026-08-16 11:36:05 -0400
  • 79cb813767 refactor: extract CPU/RAM/disk collection into metrics.js le king fu 2026-08-16 11:30:03 -0400
  • 39a55fad93 docs: sync CLAUDE.md with real Coolify mounts and manual deploy trigger le king fu 2026-07-15 20:47:17 -0400
  • 17f071b1f7 Merge pull request 'feat(defenseurs): add GET /defenseurs/findings?project=X route' (#9) from issue-3-defenseurs-findings into main maximus 2026-07-16 00:45:09 +0000
  • e88a044711 feat(defenseurs): add GET /defenseurs/findings?project=X route le king fu 2026-05-12 20:56:56 -0400
  • ac21fd7f4b Merge pull request 'feat(reports): scan archive/ subdir as fallback to handle post-07:30 UTC window' (#8) from feat/reports-scans-archive-fallback into main maximus 2026-05-11 00:44:25 +0000
  • 2e756557ff feat(reports): scan archive/ subdir as fallback to handle post-07:30 UTC window le king fu 2026-05-10 16:53:14 -0400
  • 09a4ddeb34 Merge PR #6: feat(reports): add GET /reports/scans endpoint for defenseur-auto maximus 2026-05-08 01:04:41 +0000
  • 6eda076a25 feat(reports): add GET /reports/scans endpoint for defenseur-auto le king fu 2026-05-07 20:50:29 -0400
  • f88f44e347 Merge PR #5: docs: warn HEALTH_TOKEN must be runtime-only on Coolify maximus 2026-05-03 20:12:24 +0000
  • 9510e96231 docs: warn HEALTH_TOKEN must be runtime-only on Coolify issue-4-runtime-only-coolify-secrets le king fu 2026-05-03 15:54:07 -0400
  • fc3c3a9268 Merge pull request 'feat: add Logto healthcheck to /health endpoint' (#2) from issue-1-logto-healthcheck into main maximus 2026-04-22 01:56:22 +0000
  • 28dd759f98 feat: add Logto healthcheck to /health endpoint le king fu 2026-04-21 21:38:20 -0400
  • 9a4c5c7775 Add /defenseurs endpoint to serve security status le king fu 2026-03-04 20:13:10 -0500
  • 69fea95320 fix: fail-closed auth when HEALTH_TOKEN is not set le king fu 2026-03-02 13:06:16 -0500
  • 0e168d5323 fix: use POSIX df for Alpine compatibility le king fu 2026-02-26 21:52:51 -0500
  • d6eb06302c feat: initial vps-health-api service le king fu 2026-02-26 20:48:09 -0500