Commit Graph

  • 4408d27058 fix(node): bound acquire_write's download and free the download-map entry on cancel (#196) beardthelion 2026-07-21 07:47:18 -05:00
  • 03ef9b51bd refactor(node): move read-path download coordination into a repo_store submodule (#196) beardthelion 2026-07-21 00:35:28 -05:00
  • c3d6e73e50 fix(node): keep the fork's unbounded work out of the target-lock span (#196) beardthelion 2026-07-21 00:26:47 -05:00
  • fa4322cb2e fix(node): harden the read-path download against cancellation, stale swaps, and lock contention (#196) beardthelion 2026-07-21 00:13:35 -05:00
  • b2ca5a7b2d fix(node): bound every under-lock object-store call and dedup the upload path (#196) beardthelion 2026-07-20 23:55:24 -05:00
  • 2ad1c793ab fix(node): read-path downloads publish under the purge lock, without pinning it across the network (#196) beardthelion 2026-07-20 23:27:33 -05:00
  • c07435d245 fix(node): fork publishes only after a durable upload, serialized on the target-namespace lock (#196) beardthelion 2026-07-20 23:13:06 -05:00
  • 859240b3a3 fix(node): roll back the local issue ref before unlock when the durable upload fails (#196) beardthelion 2026-07-20 22:50:18 -05:00
  • ba572b3b68 fix(node): init's background upload waits out the creator's advisory lock (#196) beardthelion 2026-07-20 22:50:18 -05:00
  • 16517f85ce refactor(node): route the per-DID 429 through the shared too_many_requests helper beardthelion 2026-07-20 22:45:35 -05:00
  • 2fa9fa37b3 chore: merge main (iCaptcha PoW + gl retry tests) into feat/write-sink-brake-coverage beardthelion 2026-07-20 22:36:15 -05:00
  • 62a99270a9 fix(node): bound the post-push pin and repair reads so a wedge cannot pin the coalescing key t 2026-07-20 21:06:10 -05:00
  • cc41d37bef fix(node): bound the post-push pin and repair reads so a wedge cannot pin the coalescing key beardthelion 2026-07-20 21:06:10 -05:00
  • fba3c6fda3 fix(review): share one deadline across the /ipfs size+content reads t 2026-07-20 20:27:35 -05:00
  • 9cef54ea18 fix(review): share one deadline across the /ipfs size+content reads beardthelion 2026-07-20 20:27:35 -05:00
  • 45e269b2ae fix(node): opportunistically repair legacy provider-CID pins t 2026-07-20 20:11:42 -05:00
  • 15bdc5e64a fix(node): opportunistically repair legacy provider-CID pins beardthelion 2026-07-20 20:11:42 -05:00
  • b774c435a6 fix(node): retry pin-source and pinned-CID recording on transient errors t 2026-07-20 19:50:23 -05:00
  • c04c4a5da4 fix(node): retry pin-source and pinned-CID recording on transient errors beardthelion 2026-07-20 19:50:23 -05:00
  • 0a1618f7fb fix(node): split /ipfs work accounting off the route rate limiter t 2026-07-20 19:41:57 -05:00
  • 20c338eca5 fix(node): split /ipfs work accounting off the route rate limiter beardthelion 2026-07-20 19:41:57 -05:00
  • c2fce67bae fix(node): wire GITLAWB_IPFS_MAX_REPOS_WALKED to the legacy-probe budget t 2026-07-20 19:17:12 -05:00
  • 86fc2763a3 fix(node): wire GITLAWB_IPFS_MAX_REPOS_WALKED to the legacy-probe budget beardthelion 2026-07-20 19:17:12 -05:00
  • 3351e09c08 fix(node): requeue coalesced pushes instead of dropping them t 2026-07-20 19:04:55 -05:00
  • 6222775bb1 fix(node): requeue coalesced pushes instead of dropping them beardthelion 2026-07-20 19:04:55 -05:00
  • 757edf560c fix(node): own /ipfs admission for the life of the walk t 2026-07-20 18:34:09 -05:00
  • b881447b59 fix(node): own /ipfs admission for the life of the walk beardthelion 2026-07-20 18:34:09 -05:00
  • 86828046ea fix(node): hold read admission through the filtered-pack reaper t 2026-07-20 17:54:49 -05:00
  • de2ad5a83d fix(node): hold read admission through the filtered-pack reaper beardthelion 2026-07-20 17:54:49 -05:00
  • 692d8ad7af fix(node): recover identity-key fallback fsync failure and abort wedged serve task beardthelion 2026-07-20 15:37:44 -05:00
  • 6afa236e65 docs(node): correct three lease/replication comments from code review (#174) beardthelion 2026-07-20 12:02:46 -05:00
  • e1ab240c7a fix(node): don't 500 an /ipfs miss when a transient taint co-occurs (#174 F5 review) beardthelion 2026-07-20 11:54:09 -05:00
  • e383047d71 fix(node): take the write permits after the per-repo lease, not before (#174 F3 review) beardthelion 2026-07-20 11:54:09 -05:00
  • 9f4a8c7d2f fix(node): serialize a disconnected push's repo until its group is reaped (#174 F3) beardthelion 2026-07-20 10:58:37 -05:00
  • b897e27cf2 fix(node): bound post-receive Pinata replication memory (#174 F2) beardthelion 2026-07-20 10:19:50 -05:00
  • e866584784 fix(node): clamp the initial /ipfs metadata queries to the request budget (#174 F6) beardthelion 2026-07-20 10:00:40 -05:00
  • 48dbb75ac6 fix(node): classify /ipfs object probe with a version-stable signal (#174 F5) beardthelion 2026-07-20 09:36:09 -05:00
  • 671cee184f fix(node): make RepoWriteGuard::release cancellation-safe (#174 F4) beardthelion 2026-07-20 09:14:01 -05:00
  • 82fec97a97 test(icaptcha-client): cover operator+hostile-advert and no-operator+no-advert arms Gravirei 2026-07-20 14:26:18 +06:00
  • 5a46ef62cc fix(node): close the durable-upload data-loss class on every write path (#196) beardthelion 2026-07-19 22:16:53 -05:00
  • d2ba14edfe fix(node): correct the create-pool and bounty-tombstone remediations (#196) beardthelion 2026-07-19 21:46:18 -05:00
  • 7dc7be2ecd fix(node): retry-after on the push-advert 429, and create_repo locks on the app pool (#196) beardthelion 2026-07-19 21:12:45 -05:00
  • ce5dcc3581 fix(node): fail closed on a symlink at the purge target (#196) beardthelion 2026-07-19 20:55:34 -05:00
  • d1e596e580 fix(node): tombstone bounties under both owner forms on purge (#196) beardthelion 2026-07-19 20:48:20 -05:00
  • 8f3d643a72 fix(node): fail the push when the durable upload times out, don't 200 (#196) beardthelion 2026-07-19 20:33:20 -05:00
  • 9916bca29b test(node): prove purge deletes at MAX_CONNECTIONS=1 with the split pools (#196) beardthelion 2026-07-19 20:14:19 -05:00
  • 3baa9ed4fc fix(node): serialize create_repo against the purge advisory lock (#196) beardthelion 2026-07-19 20:00:13 -05:00
  • c24b5418a8 fix(node): tombstone bounties when their repo is purged (#196) beardthelion 2026-07-19 19:48:47 -05:00
  • bf2a54e121 fix(node): run the push completion tail in the disconnect-surviving task (#196) beardthelion 2026-07-19 19:35:18 -05:00
  • 86a8228f47 fix(node): fail closed classifying the purge target directory (#196) beardthelion 2026-07-19 19:17:02 -05:00
  • 0c279c9d25 fix(node): skip slug-scoped purge cascade when a mirror row shares the slug (#196) beardthelion 2026-07-19 18:50:07 -05:00
  • 49346464bf fix(node): advertise a window-derived Retry-After on rate-limit 429s (#196) beardthelion 2026-07-19 18:35:34 -05:00
  • c4b337b194 fix(node): give advisory-lock guards a dedicated pool and bound the release upload (#196) beardthelion 2026-07-19 18:25:10 -05:00
  • 2a78524826 docs(node): drop the .env.example shutdown-grace entry #196 added (#196) beardthelion 2026-07-19 17:53:33 -05:00
  • 605a63eb37 test(node): close review gaps on the key-publish fallback and Drop abort (#194) beardthelion 2026-07-19 16:52:59 -05:00
  • 2f1db8b17d docs(node): state the real shutdown-grace contract and lock it with a real-socket test (#194) beardthelion 2026-07-19 16:25:54 -05:00
  • 74bd05c56c fix(node): verify key file mode before writing PEM bytes at both creation sites (#194) beardthelion 2026-07-19 16:18:45 -05:00
  • 5a4bee9368 test(node): surface axum::serve's result through TestNode::shutdown (#194) beardthelion 2026-07-19 16:03:06 -05:00
  • 5c72cf41d7 chore: sync Cargo.lock with the 0.5.1 workspace manifests beardthelion 2026-07-19 15:59:54 -05:00
  • eb34ed2982 test(node): abort the server task in TestNode::drop (#194) beardthelion 2026-07-19 15:59:42 -05:00
  • 2e8ed29f7e fix(node): fall back to a direct create_new publish when hard_link fails (#194) beardthelion 2026-07-19 15:59:42 -05:00
  • 9be5eac3a2 fix(icaptcha-client): update dependencies to version 0.5.1 and enhance operator fallback handling in tests Gravirei 2026-07-19 11:28:41 +06:00
  • 6b2ec93de1 test(icaptcha-client): add test that new() honors key_trusted gate (#212) Gravirei 2026-07-17 21:36:05 +06:00
  • cc9615961f fix(node): bound concurrent pin-loop memory; document the per-repo task cap (#174 F6) beardthelion 2026-07-18 11:13:32 -05:00
  • e489968fde fix(node): disambiguate absence from an unreadable object store in the /ipfs probe (#174 F5) beardthelion 2026-07-18 10:57:16 -05:00
  • c866ccb5c8 fix(node): share one whole-scan deadline across both full-scan phases (#174 F4) beardthelion 2026-07-18 10:49:18 -05:00
  • fab61e4188 fix(node): bound the /ipfs cat-file probe and content read (#174 F3) beardthelion 2026-07-18 10:36:16 -05:00
  • 6df972d294 fix(node): own the post-receive replication tail in a detached task (#174 F2) beardthelion 2026-07-18 10:14:27 -05:00
  • 1b3a5f6064 fix(node): make write-acquire cancellation-safe and connection-affine (#174 F1) beardthelion 2026-07-18 09:51:10 -05:00
  • 2eaf8b1086 fix(review): state the probe/read stages' unbounded-hang residual honestly; net the acquire-taint found path beardthelion 2026-07-17 20:42:48 -05:00
  • ec36e7f2d7 fix(review): close the round's review findings on the #174 fix series beardthelion 2026-07-17 20:16:04 -05:00
  • 79910fc169 fix(node): requeue coalesced post-push work via an in-lock pending slot and loop-drain (#174) beardthelion 2026-07-17 19:17:17 -05:00
  • 2259a248ce fix(node): admit the post-receive git scans to the encrypt pool, defer-not-shed (#174) beardthelion 2026-07-17 18:37:40 -05:00
  • 00618603ad fix(node): bound an admitted /ipfs request's total lifetime with a shared budget (#174) beardthelion 2026-07-17 18:03:49 -05:00
  • d3ead53aee fix(node): make /ipfs scan verdicts honest: walk-scoped cap, visit ceiling, 503 on truncation (#174) beardthelion 2026-07-17 17:35:01 -05:00
  • bda9cb102e fix(node): hold filtered-pack admission through disconnect teardown (#174) beardthelion 2026-07-17 17:05:28 -05:00
  • d26cf6dd1d fix(node): close the /ipfs pin-source griefing hole via a bounded scan fallback t 2026-07-17 10:04:04 -05:00
  • 1e2f0d1dd6 fix(node): close the /ipfs pin-source griefing hole via a bounded scan fallback beardthelion 2026-07-17 10:04:04 -05:00
  • 94ca744269 fix(node): align ipfs_pin return with pinata; add Retry-After to SearchIncomplete t 2026-07-17 09:37:43 -05:00
  • 107abf9145 fix(node): align ipfs_pin return with pinata; add Retry-After to SearchIncomplete beardthelion 2026-07-17 09:37:43 -05:00
  • 2eea354188 fix(node): tie the /ipfs walk ceiling to MAX_PIN_SOURCES + 1 t 2026-07-17 09:27:56 -05:00
  • bb3ecc8f30 fix(node): tie the /ipfs walk ceiling to MAX_PIN_SOURCES + 1 beardthelion 2026-07-17 09:27:56 -05:00
  • c767658b7b fix(node): bound the /ipfs cat-file probes under the walk permit; backfill pinata provenance t 2026-07-17 09:18:16 -05:00
  • dbadd243b4 fix(node): bound the /ipfs cat-file probes under the walk permit; backfill pinata provenance beardthelion 2026-07-17 09:18:16 -05:00
  • 8afc9eaf97 fix(node): close grok P1 findings on the #173/#174 IPFS integration t 2026-07-17 09:06:21 -05:00
  • 332a5785ca fix(node): close grok P1 findings on the #173/#174 IPFS integration beardthelion 2026-07-17 09:06:21 -05:00
  • 433c8915bf feat(node): integrate the #173 IPFS CID tree-gate onto the #174 walk-concurrency base t 2026-07-17 10:15:56 -05:00
  • b6bc69898c feat(node): integrate the #173 IPFS CID tree-gate onto the #174 walk-concurrency base beardthelion 2026-07-17 10:15:56 -05:00
  • 9f7757cbf5 refactor(node): dedup limiter setup + write-brake test driver; fix .env wording beardthelion 2026-07-16 10:26:42 -05:00
  • 6ba698c99b fix(node): let purge-spam reach repos that exist only as archives beardthelion 2026-07-16 10:18:15 -05:00
  • e4c4161dbc fix(node): serialize archive uploads under the per-repo advisory lock beardthelion 2026-07-16 10:06:06 -05:00
  • b94d440e9e fix(node): complete a fully-received push after client disconnect beardthelion 2026-07-16 09:53:43 -05:00
  • dde5ea9a3e fix(node): make advisory-lock guards drop-safe and reorder acquire_write beardthelion 2026-07-16 09:38:54 -05:00
  • 3fa786d439 test(node): let the partial-final reader wait out the fsynced publish (#194) beardthelion 2026-07-15 19:44:21 -05:00
  • e16ec0729a fix(node): recover key publish from stale temps, make it durable; join TestNode teardown (#194) beardthelion 2026-07-15 19:06:05 -05:00
  • cf669bb8aa fix(review): don't hold/leak the pool connection in acquire_write beardthelion 2026-07-15 17:37:43 -05:00
  • 3c1ceb8edc fix(node): make purge-spam Tigris-authoritative and archive-deleting beardthelion 2026-07-15 17:07:47 -05:00
  • 68c1f5c2e6 refactor(node): introduce ObjectStore trait seam over TigrisClient beardthelion 2026-07-15 16:54:48 -05:00
  • 4df79f22a3 fix(node): pin the writer's advisory-lock connection in RepoWriteGuard beardthelion 2026-07-15 16:43:59 -05:00
  • 413d6cf0bc fix(node): reject unsupported git service before the read slot; document the new admission knobs (#174) t 2026-07-15 13:16:40 -05:00