Commit Graph

  • d75c1cc235 gitea-saas-core#41: client-facing surface (#51) main pbwraith 2026-09-07 04:37:33 +0200
  • 67d03e2fed gitea-saas-core#40: deploy — container + ops doc (#50) pbwraith 2026-09-07 04:29:46 +0200
  • f39343ea81 gitea-saas-core#41: client-facing surface — per-client keys, checkout, /api/me, self-serve work submission, Stripe webhook issue-41 Claude 2026-09-05 04:34:50 -0500
  • 5be23b9390 gitea-saas-core#40: container + ops doc (Dockerfile, compose, OPS.md, .dockerignore) issue-40 Claude 2026-09-05 04:17:55 -0500
  • 2ef1e668fa gitea-saas-core#42: review-gate calibration (#47) pbwraith 2026-09-03 11:05:34 +0200
  • 9da95125f6 feat(#45): raise delivered-issue rate to $5.00 (#46) pbwraith 2026-09-03 11:05:27 +0200
  • 5fda4c09b6 gitea-saas-core#39: eval farm HTTP surface (#44) pbwraith 2026-09-03 11:05:21 +0200
  • a66f88ea10 gitea-saas-core#38: assemble one create_app() + a real entrypoint (#43) pbwraith 2026-09-03 11:04:28 +0200
  • 729536d3eb fix(#48): pass git commands as arg lists, never shell strings (#49) pbwraith 2026-09-03 10:50:41 +0200
  • 6326199966 fix(#48): compare hygiene-gate cwd as a Path, not a string (Windows review box) issue-48 gitea-worker-lane3 2026-09-01 17:50:56 -0500
  • 3d3e592832 fix(#48): pass git commands as arg lists, never shell strings (Windows caret safety) Claude 2026-09-01 16:13:28 -0500
  • cf798a809f gitea-saas-core#42: review-gate calibration corpus + report (measure, don't tune) issue-42 Claude 2026-09-01 06:39:22 -0500
  • e085457d0a feat(#45): raise delivered-issue rate to $5.00 (rate_minor 500) issue-45 Claude 2026-09-01 06:13:49 -0500
  • 8620d4d36e gitea-saas-core#39: eval farm HTTP surface — register_eval_routes issue-39 Claude 2026-09-01 03:58:29 -0500
  • 0f9d2a9b30 gitea-saas-core#38: assemble one create_app() + entrypoints (wsgi, console script, python -m) issue-38 Claude 2026-09-01 03:48:20 -0500
  • 71cc2634ce Merge pull request 'gitea-saas-core#30: isolated synthetic-merge review workspace' (#37) from issue-30 into main pbwraith 2026-08-30 08:08:39 +0200
  • 069a74a95c fix(#30): shell-quote workspace paths + sanitize temp prefix (bounce-fix) issue-30 Claude 2026-08-29 18:10:40 -0500
  • b4e577b31b Merge pull request 'Consolidate all X-API-Key auth into gitea_saas/auth.py (#24)' (#27) from issue-24 into main pbwraith 2026-08-30 00:31:11 +0200
  • d8faabf2e5 gitea-saas-core#30: isolated synthetic-merge review workspace Claude 2026-08-29 15:21:43 -0500
  • 8588033d73 Merge pull request 'gitea-saas-core#29: transactional + retryable review outcome application' (#32) from issue-29 into main pbwraith 2026-08-29 10:23:27 +0200
  • b46c356d64 fix(#29): head-integrity gates — recovery requires exact merged head; reject missing reviewed head (bounce-fix) issue-29 Claude 2026-08-29 03:20:53 -0500
  • 30e71d44ba fix(#29): pin merge to reviewed head, positive merged-proof recovery, closed-unmerged guard (bounce-fix) Claude 2026-08-29 02:59:52 -0500
  • d522ea23e4 Merge remote-tracking branch 'origin/main' into issue-29 Claude 2026-08-29 02:55:48 -0500
  • fc55c41dd0 Merge pull request 'Gitea client: production review-policy client operations (#28)' (#31) from issue-28 into main pbwraith 2026-08-29 09:51:19 +0200
  • f6b40d0108 fix(#28): merge_pr pins the reviewed head and fails closed on movement (bounce-fix) issue-28 pbwraith-worker 2026-08-28 14:33:58 -0500
  • c3915d2533 fix(review_policy): recover stranded post-merge outcomes outside the open-PR scan (#29) (bounce-fix) pbwraith-worker 2026-08-28 14:28:37 -0500
  • 1f2c85b4ff fix(#28): merge_pr must send MergePullRequestOption.Do + reviewed head_commit_id Claude 2026-08-28 14:13:50 -0500
  • 6cff1599d2 gitea-saas-core#29: transactional + retryable review outcome application Claude 2026-08-28 13:43:29 -0500
  • 8b17668746 Gitea client: production review-policy client operations (#28) Claude 2026-08-28 13:39:26 -0500
  • 3819b49498 fix(#27): guard /dashboard through the shared auth path after !26 rebase issue-24 Claude 2026-08-26 06:43:17 -0500
  • 64ab8478dc Consolidate all X-API-Key auth into gitea_saas/auth.py (#24) Claude 2026-08-26 03:08:27 -0500
  • 08febd56ca fix(dashboard): require X-API-Key on /dashboard (fail-closed, #25) issue-25 Claude 2026-08-26 02:54:37 -0500
  • ccccfbf879 SaaS dashboard: clients, ledger, queue, throughput, review verdicts (#9) (#22) pbwraith 2026-08-26 09:19:25 +0200
  • 1523074cbe tests(#9): make the no-second-server guard survive #2 merging issue-9 reviewer 2026-08-26 02:18:32 -0500
  • 43dca684d0 Merge remote-tracking branch 'origin/main' into HEAD r 2026-08-26 02:14:37 -0500
  • 1fccd03843 Eval farm: batch intake -> lane drain -> results emitter (#8) (#20) pbwraith 2026-08-26 09:13:47 +0200
  • 0ba11c75fd Delivery receipts: idempotent debit on merge + client lock (#7) (#18) pbwraith 2026-08-26 09:12:58 +0200
  • 4d921a0ce1 Review policy + merge loop (tier auto-merge, bounce routing, delivery debit) (#6) (#15) pbwraith 2026-08-26 09:12:38 +0200
  • b8ffd2325d Merge remote-tracking branch 'origin/main' into HEAD issue-6 r 2026-08-26 02:11:04 -0500
  • 4990007db1 Stripe adapter (mockable seam: checkout + webhook -> idempotent credit) (#3) (#11) pbwraith 2026-08-26 09:09:48 +0200
  • d8cc135c40 Factory intake: client repo provisioning + unfunded gating (#4) (#17) pbwraith 2026-08-26 09:09:26 +0200
  • 6003fee8e9 feat(#2): Billing HTTP API (Flask, token-auth, fail-closed) (#13) pbwraith 2026-08-26 09:08:39 +0200
  • f7d0bc5666 fix(#9): bounce 2 — constant-time API-key compare + single header constant Claude 2026-08-25 21:00:20 -0500
  • b30a358ff2 gitea-saas-core#8: drop gitea_client.py per bounce — issue #4 owns it (via !21/!23); keep real-client skip-guard issue-8 Claude 2026-08-25 16:18:38 -0500
  • c1b3105257 fix(#9): bounce — #16 id-key API + mount dashboard onto app factory Claude 2026-08-25 11:38:54 -0500
  • ea674c2ff5 gitea-saas-core#4: constant-time API-key check via API_KEY_HEADER issue-4 Claude 2026-08-25 11:36:52 -0500
  • cc375b4d81 gitea-saas-core#8: canonical gitea_client + list_issue_comments, #16 id rename, real-request test Claude 2026-08-25 11:32:18 -0500
  • 3daac0717c gitea-saas-core#9: SaaS operator dashboard — clients/queue/throughput/review verdicts/ledger flash (HTML page + authed JSON summary) Claude 2026-08-25 06:33:07 -0500
  • 64b65ab0bd Merge remote-tracking branch 'origin/main' into issue-8 Claude 2026-08-25 11:26:49 -0500
  • a991d13317 gitea-saas-core#7: adopt #16 core shape (create_client id key, flat get_client) issue-7 Claude 2026-08-25 11:20:55 -0500
  • b73185e5af Merge remote-tracking branch 'origin/main' into issue-7 Claude 2026-08-25 11:19:23 -0500
  • 59eceb6b48 gitea-saas-core#4: adapt to billing core client id rename (#16) after rebase Claude 2026-08-25 11:15:40 -0500
  • bcf03bd9cc Review gate: automated PR reviewer (acceptance parse, tests, verdicts) (#5) pbwraith 2026-08-25 18:14:17 +0200
  • 23cdf4927f gitea-saas-core#21: single owning issue for gitea_saas/gitea_client.py (#21) pbwraith 2026-08-25 18:13:55 +0200
  • 7a6fcdbd72 Merge origin/issue-2 into issue-6 (bounce fix: mount review routes on #2's app, drop duplicate gitea_client.py, adopt #16 id rename) Claude 2026-08-25 11:06:57 -0500
  • fc5613265b Merge remote-tracking branch 'origin/main' into issue-6 Claude 2026-08-25 11:00:51 -0500
  • daeecc078d gitea-saas-core#3: tests: read create_client id key (bounce fix attempt 2, #16 rename) issue-3 Claude 2026-08-25 10:59:56 -0500
  • e42b27897c gitea-saas-core#4: factory intake — client repo provisioning + unfunded gating Claude 2026-08-25 05:42:22 -0500
  • 5e5827c987 gitea-saas-core#5: drop duplicate gitea_client.py — canonical version is !17's (#4) issue-5 Claude 2026-08-25 10:43:46 -0500
  • 1b730732ec gitea-saas-core#21: give gitea_saas/gitea_client.py a single owning issue (#4) issue-21 Claude 2026-08-25 10:32:42 -0500
  • c78f497f34 Billing core client API consistency: id, flat records, list_clients (#16) pbwraith 2026-08-25 17:12:31 +0200
  • 80958ef9b9 gitea-saas-core#7: constant-time API-key check in authorized() (bounce fix) Claude 2026-08-25 06:40:41 -0500
  • 4d3123af9e Merge remote-tracking branch 'origin/main' into issue-2 issue-2 Claude 2026-08-25 06:29:19 -0500
  • 2f2f53f3f7 gitea-saas-core#8: eval farm intake — batch -> lane drain -> results emitter (402 funded gate, eval-task issues, poll, emit w/ retry + file drop) Claude 2026-08-25 06:21:54 -0500
  • 84e44ee4e8 gitea-saas-core#16: billing core client API consistency (id, flat records, list_clients) issue-16 Claude 2026-08-25 06:09:46 -0500
  • 6fa667393a gitea-saas-core#3: fail-closed Stripe credential resolution (bounce fix) Claude 2026-08-25 06:00:36 -0500
  • b5018c8645 gitea-saas-core#7: delivery receipts — idempotent debit on merge + client lock Claude 2026-08-25 05:53:29 -0500
  • 7c0d3fbcdb gitea-saas-core#6: review policy + merge loop (tier auto-merge, bounce routing, delivery debit) Claude 2026-08-25 05:29:55 -0500
  • 59c3d035b1 Billing ledger core (clients/ledger/holds, idempotent, fail-closed) (#1) pbwraith 2026-08-25 12:23:00 +0200
  • 6dc3c52fdb Merge remote-tracking branch 'origin/issue-1' into issue-6 Claude 2026-08-25 04:35:12 -0500
  • df72b3926f gitea-saas-core#5: review gate — automated PR reviewer (acceptance parse, tests, verdicts) pbwraith-worker 2026-08-25 04:31:08 -0500
  • d7d462de14 Add billing HTTP API (Flask, token-auth, fail-closed) Claude 2026-08-25 04:30:07 -0500
  • b6a0461739 gitea-saas-core#3: Stripe adapter (mockable seam: checkout + webhook -> idempotent credit) pbwraith-worker 2026-08-25 04:22:00 -0500
  • 6d764d46f6 gitea-saas-core#1: billing ledger core (clients/ledger/holds, idempotent, fail-closed) issue-1 pbwraith-worker 2026-08-25 04:16:35 -0500
  • 1820d0b34a architecture: intake-side gating (no dispatcher coupling) + review gate pbwraith 2026-08-25 11:09:56 +0200
  • 2cbc83efa5 import gitea-saas-core architecture pbwraith 2026-08-25 04:02:11 -0500
  • b4436d3a0f Initial commit pbwraith 2026-08-25 11:01:12 +0200