CodeIssuesPull RequestsActionsSecurityInsights
✨ AI
More
Settings

Pull requests

1 open, 152 merged, 2 closed. AI review, gate checks, and auto-resolve included.

Sort:NewestOldestRecently updated

fix(mcp): totals that only counted the page, and an XSS rule that could not read escaping#5610

fix/mcp-paging-and-xss-accuracymainby ccantynz 18m agoMerged

fix: readiness wave 2 — repo_health honesty, durable rate limits, dashboard cold start, email truth, dead code indexes#5608

fix/readiness-wave-2mainby ccantynz 21h ago⚡ AIMerged

fix(ci): a deploy that was overtaken is not a deploy that failed#5606

fix/verify-deploy-supersededmainby ccantynz 1d agoMerged

fix(ci): moving checkouts to a shared volume made them leak forever#5605

fix/ci-workspace-leakmainby ccantynz 1d agoMerged

fix(ci): the runner's healthcheck had the same lie as the broker's#5604

fix/runner-readinessmainby ccantynz 1d agoMerged

fix(ci): the broker reported healthy while unable to reach docker at all#5603

fix/broker-socket-accessmainby ccantynz 1d agoMerged

feat(ci): a container per job — jobs isolated from each other, not just the app#5602

feat/ci-job-brokermainby ccantynz 1d agoMerged

docs(ci): the attribution guarantee promised more than the gate delivers#5601

docs/attribution-guarantee-honestmainby ccantynz 1d agoMerged

fix(api): ?branch= silently hid nearly every workflow run#5600

fix/run-branch-filtermainby ccantynz 1d agoMerged

fix(gate): the CI merge gate could be switched off by capitalising the repo name#5599

fix/ci-gate-fails-openmainby ccantynz 1d agoMerged

fix(ci): an unwritable checkout dir must not take CI down platform-wide#5598

fix/ci-workdir-permissionsmainby ccantynz 1d agoMerged💬 2

feat(api): list every workflow run in a repo, not one workflow at a time#5597

feat/api-list-workflow-runsmainby ccantynz 1d agoMerged

feat(admin): show whether the AI key actually works, not just what it spent#5596

feat/admin-ai-provider-healthmainby ccantynz 1d agoMerged

feat(ci): execute workflow steps in a sibling container, not the app#5595

feat/ci-sidecar-runnermainby ccantynz 1d agoMerged

fix(ci): two false greens — a job that ran nothing, and a failing line that didn't fail#5594

fix/ci-no-steps-executedmainby ccantynz 1d agoMerged

fix(spine): the daily journey was watched by a clock that could not see it#5593

fix/journey-freshness-watchedmainby ccantynz 1d agoMerged

fix(auth): signup is closed during build-out#5591

fix/close-signup-during-buildoutmainby ccantynz 1d agoMerged

fix(oauth): the consent screen never showed where the tokens go#5590

fix/oauth-consent-shows-destinationmainby ccantynz 1d agoMerged

feat(repo): the page notices when it contradicts itself#5588

feat/rendered-fact-crosscheckmainby ccantynz 1d agoMerged

fix(repo): "Updated 9d ago" on a repo nothing had touched for 19 days#5586

fix/repo-freshness-corroborationmainby ccantynz 1d agoMerged

feat(ai): a daily ceiling, so lean spend is enforced rather than remembered#5584

feat/ai-daily-budgetmainby ccantynz 1d agoMerged

feat(ai): learn the provider is down once, instead of rediscovering it everywhere#5582

feat/ai-outage-cachemainby ccantynz 2d agoMerged

fix(gate): an outage of ours must not block a customer's merge#5580

fix/outage-must-not-block-mergemainby ccantynz 2d agoMerged

feat(ci): fix the free failures for free — deterministic tier before the model#5578

feat/mechanical-tier-firstmainby ccantynz 2d agoMerged

fix(ai): an outage is deferred, not judged as unfixable#5576

fix/healer-defer-transientmainby ccantynz 2d agoMerged

fix(ai): the CI healer says why it gave up, and stops truncating its own answer#5574

fix/ci-healer-diagnosismainby ccantynz 2d agoMerged

fix(api): one definition of `state`, and a gate that fails when two drift#5571

fix/state-filter-paritymainby ccantynz 2d agoMerged

fix(api): ?state=all returned an empty list instead of every issue#5570

fix/api-v2-state-allmainby ccantynz 2d agoMerged

fix(deploy): the caddy override belonged under services, not networks#5567

fix/override-caddy-under-servicesmainby ccantynz 2d agoMerged

fix(ci): a typecheck that gets OOM-killed now says so, and fits#5566

fix/ci-oom-ceilingmainby ccantynz 2d agoMerged

fix(ops): caddy cannot run on the co-tenant box, so stop starting it#5565

fix/caddy-cotenant-inertmainby ccantynz 2d agoMerged

Model-provider portability, the nav/dashboard/security fixes, and a readiness gate that can't pass by skipping#5564

feat/model-provider-portabilitymainby ccantynz 3d ago⚡ AIMerged

Visual audit: switched-off scanners, dead-end pages, and a container with no memory limit#5562

fix/reinstate-raw-sql-scannermainby ccantynz 4d ago⚡ AIMerged

feat(ai): point the platform at any model, not just Anthropic#5561

feat/model-provider-portabilitymainby ccantynz 5d ago⚡ AIMerged

feat(actions): a failed run is no longer a dead end — re-run, and surface the AI healer#5560

feat/run-actionsmainby ccantynz 5d ago⚡ AIMerged

fix: clone URLs without ".git", and file writes that silently corrupted non-base64 content#5559

fix/clone-url-and-content-encodingmainby ccantynz 5d ago⚡ AIMerged💬 2

feat(nav): IA restructure — every page findable, one deployments URL, an honest AI menu#5558

feat/nav-iamainby ccantynz 5d agoMerged

feat(admin): /admin/integrations becomes the full infra-secrets panel — reveal, rotate, clear, alerting keys, live#5557

feat/infra-secrets-panelmainby ccantynz 5d agoMerged

feat(audit): successful HTTP pushes finally write an audit row#5556

feat/http-push-auditmainby ccantynz 5d agoMerged

feat(changelog): the transformation is visible — live Shipped feed from our own merged PRs#5555

feat/live-changelogmainby ccantynz 5d agoMerged

feat(email): role addresses are real — security.txt published, placeholders removed, From default fixed#5554

feat/real-email-addressesmainby ccantynz 5d agoMerged

feat(status): REPORTING_EPOCH — launch day becomes a one-env-var event#5553

feat/reporting-epochmainby ccantynz 6d agoMerged

fix(status): the dead-server claim renders only when the off-box writer is armed#5552

fix/status-heartbeat-honestymainby ccantynz 6d agoMerged

design: purple is dead — zero banned literals, and the audit is now a hard CI gate#5551

feat/no-purple-ever-gatemainby ccantynz 6d agoMerged

feat(nav): one canonical RepoNav — data-derived keys, insights sub-nav unified, lost pages find their way home#5550

feat/repo-nav-coherencemainby ccantynz 6d agoMerged

fix(onboarding+scaffold): setup flow stops overclaiming — chips do what they say, new users see the push snippet#5549

fix/onboarding-honestymainby ccantynz 6d agoMerged

fix(errors): browsers get the 429 page, not raw JSON; 403 copy stops contradicting itself#5548

fix/rate-limit-htmlmainby ccantynz 6d agoMerged

fix(pulls+issues): first-PR dead ends die — forms keep your input, templates render, single-branch guidance#5547

fix/first-pr-dead-endsmainby ccantynz 6d agoMerged

feat(protection): branch protection is enforced at push time — the checkboxes stop lying#5546

feat/enforce-branch-protectionmainby ccantynz 6d agoMerged

fix(web): the empty-repo primary CTA no longer 404s#5545

fix/empty-repo-ctamainby ccantynz 6d agoMerged

chore(design): Wave 0 — fix the measuring instrument, delete 9,100 lines of dead views#5544

chore/design-wave0mainby ccantynz 6d agoMerged

fix(status): a sibling product's outage is not our outage — estate checks leave the uptime math#5543

fix/estate-scoped-statusmainby ccantynz 6d agoMerged

fix(nav+digest): the sun icon stops lying, and the digest spinner deadlock dies#5542

fix/theme-toggle-digest-collisionmainby ccantynz 6d agoMerged

fix(landing): the front door matches the house — content visible, dark real, mobile whole#5541

fix/landing-rebuildmainby ccantynz 6d ago⚡ AIMerged

fix(design): the four trust-critical pages — honest states, legible status, house palette#5540

fix/trust-critical-pagesmainby ccantynz 6d ago⚡ AIMerged

feat(email): the estate rail — EMAIL_PROVIDER=http delivers via owned infrastructure#5539

feat/email-estate-railmainby ccantynz 6d ago⚡ AIMerged

feat(spine): estate watch — the whole portfolio on one spine#5538

feat/estate-watchmainby ccantynz 6d ago⚡ AIMerged

feat(paging): test button + weekly drill — paging you can't test is paging you don't have#5537

feat/paging-drillmainby ccantynz 6d ago⚡ AIMerged

feat(medic): repair registry + spine doctor — recovery that proves itself#5536

feat/medic-spine-doctormainby ccantynz 6d ago⚡ AIMerged

docs(design): the full-site visual sweep findings — 50 pages reviewed, ranked#5535

docs/design-sweep-findingsmainby ccantynz 6d ago⚡ AIMerged

feat(truth): the truth ledger — every claim carries its proof#5534

feat/truth-ledgermainby ccantynz 6d ago⚡ AIMerged

docs(ops): Mission Control — the complete operations blueprint#5533

docs/mission-control-blueprintmainby ccantynz 6d ago⚡ AIMerged

feat(design): render manifest — the contract for the full visual sweep#5532

fix/digest-palette-and-design-auditmainby ccantynz 7d ago⚡ AIMerged

fix(design): /digest speaks the house palette; design-audit finds every page that doesn't#5531

fix/digest-palette-and-design-auditmainby ccantynz 8d ago⚡ AIMerged

perf(homecoming): contributors + coupling cached by branch tip — 1.7s to instant#5530

perf/history-page-cachingmainby ccantynz 8d ago⚡ AIMerged

fix(dashboard): the greeting tells the visitor's time, not the server's#5529

fix/greeting-local-timemainby ccantynz 8d ago⚡ AIMerged

feat(readiness): --no-browser flag — skipped browser gates FAIL, never pass#5528

fix/readiness-no-browsermainby ccantynz 8d ago⚡ AIMerged

docs(161): the Phase-2 flip runbook + portfolio Caddyfile#5527

docs/161-rebuild-runbookmainby ccantynz 9d ago⚡ AIMerged

feat(161): phase-2 bridge — coolify network at create time; dead postgres removed#5526

feat/161-phase2-bridgemainby ccantynz 9d ago⚡ AIMerged

fix(zero-noise): precision publication is an owner decision, not a side effect#5525

fix/precision-publication-gatemainby ccantynz 9d ago⚡ AIMerged

feat(zero-noise): signal verdicts + published precision on /status#5524

feat/signal-precisionmainby ccantynz 9d ago⚡ AIMerged

docs(vision): Zero Noise — the doctrine#5523

docs/zero-noise-visionmainby ccantynz 9d ago⚡ AIMerged

chore(ops): gluecron-failure-notify@ unit — every timer/service fails loudly#5522

chore/onfailure-unitsmainby ccantynz 10d ago⚡ AIMerged

feat(spine): Vapron-parity — Slack-compatible paging, mutual watch, exclusion rot rule#5521

feat/spine-peer-watchmainby ccantynz 10d ago⚡ AIMerged

chore(cutover): GitHub heartbeat schedule OFF — the mirror was billing us to watch ourselves#5520

chore/heartbeat-off-githubmainby ccantynz 10d ago⚡ AIMerged

feat(reliability): load-aware CI claim guard + niced steps + dead-man ping hook#5519

feat/runner-load-guardmainby ccantynz 10d ago⚡ AIMerged

fix(emergency-pat): dual-driver like src/db — works on self-hosted Postgres#5518

fix/emergency-pat-selfhostmainby ccantynz 10d ago⚡ AIMerged

fix(ci): runner concurrency defaults to 1 — the 3-default self-DDoSed the box#5517

fix/runner-concurrency-defaultmainby ccantynz 10d ago⚡ AIMerged

fix(ssh): generate a host key ssh2 can actually parse; self-heal the bad one#5516

fix/ssh-hostkey-formatmainby ccantynz 10d ago⚡ AIMerged

feat(review): lazy per-file diffs for huge PRs + review-thread resolve state#5515

feat/review-ergonomicsmainby ccantynz 10d ago⚡ AIMerged

feat(api): GitHub REST compat shim at /api/v3 — top 20 endpoint groups#5514

feat/github-compat-shimmainby ccantynz 10d ago⚡ AIMerged

feat(security): OSV.dev advisory feed replaces the hand-typed list as primary#5513

feat/osv-advisoriesmainby ccantynz 10d ago⚡ AIMerged

feat(lfs): Git LFS batch API + basic transfer — content-addressed disk store#5512

feat/lfs-batch-apimainby ccantynz 10d ago⚡ AIMerged

chore(hygiene): NUL byte in repository.ts, hourly mirror warning, dead deploy workflows removed#5511

chore/estate-hygienemainby ccantynz 10d ago⚡ AIMerged

feat(ci): the workflow runner drains through a bounded pool, not serially#5510

feat/runner-concurrencymainby ccantynz 10d ago⚡ AIMerged

feat(ssh): hosted SSH clone goes live — persistent host key, port published#5509

feat/hosted-sshmainby ccantynz 10d ago⚡ AIMerged

feat(pr-ledger): direct-push merges flip PRs to merged; API close endpoint#5508

pr-ledger-truthmainby ccantynz 11d ago⚡ AIMerged

fix(restore-drill): chown extracted scratch tree so fsck actually runs#5507

restore-drill-ownershipmainby ccantynz 12d ago⚡ AIMerged

fix(contributors): stop fabricating profile links from unverified commit metadata#5506

honest-contributor-identitymainby ccantynz 12d ago⚡ AIMerged

fix(deploy): INCIDENT 2026-08-19 — script died silently after reset without DEPLOY_EVENT_TOKEN; in-container /api probes need X-Forwarded-For; EXIT trap restores HEAD#5505

fix/deploy-script-2026-08-19mainby ccantynz 13d ago⚡ AIMerged

Manual-first when AI is down + the honest GitHub scorecard (/vs-github stops overclaiming)#5504

feat/manual-first-2026-08-19mainby ccantynz 13d ago⚡ AIMerged

docs(audit): #5502 merged and live; next three moves re-drawn#5503

docs/next-moves-finalmainby ccantynz 13d ago⚡ AIMerged

Next moves: off-box incident writer + SLO windows, platform-fault-aware CI, post-merge verifier, actionable inbox, /guarantees, and the one-box reliability list#5502

feat/next-moves-2026-08-19mainby ccantynz 13d ago⚡ AIMerged

docs(audit): PR #5500 merged and live — update the 2026-08-19 map's state of play#5501

docs/audit-2026-08-19-finalmainby ccantynz 13d ago⚡ AIMerged

Website honesty + one-box reliability: pre-launch label, doctype site-wide, one price list, no fabricated claims, host-capability gates, bounded readiness, served-SHA deploy gate#5500

fix/website-honesty-2026-08-19mainby ccantynz 13d ago⚡ AIMerged

Reconcile the GitHub fork back into canonical#5499

recover/github-forkmainby ccantynz 16d agoMerged

fix(nav-audit): the error detector flagged any number between 400 and 499#5498

fix/nav-audit-flagged-any-number-400-to-499mainby ccantynz 20d agoMerged

fix(gate): the security scan's own diff was the seventh unvalidated git ref#5497

fix/gate-diff-was-the-seventh-unvalidated-git-refmainby ccantynz 20d agoMerged

fix(merge-queue,docs): an untimed spawnSync on the request path, and a deploy doc its own test called stale#5496

fix/untimed-spawn-and-stale-deploy-docmainby ccantynz 20d agoMerged

fix(spine): the platform's only CRITICAL self-finding was permanent and benign#5495

fix/selfcheck-critical-was-permanent-and-benignmainby ccantynz 20d agoMerged

fix(mirrors): sync would have silently destroyed local-only history#5494

fix/mirror-sync-would-destroy-local-only-historymainby ccantynz 20d agoMerged

fix(post-receive): committed to repos it could not identify, and silently skipped seven features on the rest#5493

fix/post-receive-repaired-repos-it-could-not-identifymainby ccantynz 20d agoMerged

fix(archaeology): rendered the provider's raw error, and called it high confidence#5488

fix/archaeology-stops-leaking-provider-errorsmainby ccantynz 21d ago⚡ AIMerged

fix(status): four of six services reported health nobody measured#5483

fix/status-page-stops-fabricating-service-healthmainby ccantynz 21d ago⚡ AIMerged

fix(autopilot): mirror-sync could never report failure, and mirroring was dead#5482

fix/mirror-sync-cannot-report-ok-while-deadmainby ccantynz 21d ago⚡ AIMerged

feat(invariant): the platform ships with Anthropic completely down#5479

feat/ship-path-ai-independencemainby ccantynz 22d ago⚡ AIMerged

fix(billing): quota exemption delegates to the canonical isSiteAdmin#5478

fix/quota-exemption-canonical-adminmainby ccantynz 22d ago⚡ AIMerged

fix(billing): site admins are never metered by their own platform#5477

fix/admin-quota-exemptionmainby ccantynz 22d ago⚡ AIMerged

docs: reusable agent brief — what Gluecron is + build specs for external agents#5476

docs/agent-briefmainby ccantynz 22d ago⚡ AIMerged

fix(auth): POST /login 500'd on any malformed password hash — found by the journey on tick one#5475

fix/login-500-on-malformed-hashmainby ccantynz 23d ago⚡ AIMerged

feat(spine): synthetic journeys — probe the product, not just the port#5474

feat/synthetic-journeysmainby ccantynz 23d ago⚡ AIMerged

feat(ci): typecheck + 4,253 tests run on every push, and a CI merge gate enforces them#5473

feat/ci-test-gatemainby ccantynz 23d ago⚡ AIMerged

feat(deploy): failed deploys and rollbacks notify the owner#5472

feat/deploy-failure-alertsmainby ccantynz 23d ago⚡ AIMerged

feat(spine): red probes and error spikes now REACH the owner#5471

feat/spine-alert-fanoutmainby ccantynz 23d ago⚡ AIMerged

docs(ops): CI verify-deploy semantics — runner_restarted, abandoned, merge-fires-push#5470

docs/ci-run-conclusionsmainby ccantynz 24d ago⚡ AIMerged

fix(ci): server-side merges fire push workflows; gated chain gets the ancestry guard#5469

fix/merge-fires-push-workflowsmainby ccantynz 24d ago⚡ AIMerged

feat(ci): boot-time sweep requeues runs orphaned by the deploy restart#5468

fix/requeue-runs-orphaned-by-restartmainby ccantynz 24d ago⚡ AIMerged

fix(ci): verify-deploy uses wget — the runner container has no curl#5467

fix/verify-deploy-wgetmainby ccantynz 24d ago⚡ AIMerged

fix(ci): the runner executed "|" instead of every multi-line script — block scalars now parsed#5466

fix/workflow-runner-block-scalarsmainby ccantynz 24d ago⚡ AIMerged

fix(gates+ci): security scan actually runs; workflow branch filters honored; deploy workflow verifies reality#5465

fix/security-scan-and-ci-honestymainby ccantynz 24d ago⚡ AIMerged

fix(merge): non-fast-forward safety + restore the five sweep merges main lost#5464

restore/sweep-consolidationmainby ccantynz 24d ago⚡ AIMerged

design(pr-detail): humanize old AI errors, drop dead live chrome, legible diffs, readable prose (#211)#5463

sweep/pr-detailmainby ccantynz 24d ago⚡ AIMerged

fix(notifications): humanize JSON bodies, collapse stale bursts, Natural Light restyle#5462

sweep/notificationsmainby ccantynz 24d ago⚡ AIMerged

fix(dashboard): design-sweep fixes for the /dashboard visual audit (#211)#5461

sweep/dashboardmainby ccantynz 24d ago⚡ AIMerged

fix(billing+dashboard): honest peak-day figure; honest verify-email banner (refs #211)#5460

sweep/billing-bannermainby ccantynz 24d ago⚡ AIMerged

fix(design): purge the last purple from /docs and de-darken /admin/spine#5459

sweep/docs-admin-thememainby ccantynz 24d ago⚡ AIMerged

fix(issues): design-audit fixes for issues surfaces (issue #211)#5458

sweep/issues-surfacesmainby ccantynz 24d ago⚡ AIMerged

fix(spine): anthropic probe is billing-aware; remove tonight's duplicate spine#5457

fix/billing-aware-anthropic-probemainby ccantynz 24d ago⚡ AIMerged

feat(spine): heartbeat failure detection — the platform notices its own outages#5456

feat/spine-heartbeatsmainby ccantynz 24d ago⚡ AIMerged

fix(gates): merge-conflict copy is AI-availability-aware; resolver uses model tiers#5455

fix/honest-merge-conflict-promisesmainby ccantynz 24d ago⚡ AIMerged

fix(building-itself): drop the misleading deployments zero; fix doubled title#5454

fix/proof-page-polishmainby ccantynz 24d ago⚡ AIMerged

feat(marketing): /building-itself proof page + STRATEGY-30 doc#5453

feat/building-itself-proof-pagemainby ccantynz 24d ago⚡ AIMerged

feat(onboarding): generated Agent Brief — state-aware, repo-pinnable#5452

feat/agent-onboarding-briefmainby ccantynz 24d ago⚡ AIMerged

fix(billing): the subscription repair queue is operator-only; customers meter on their quota#5451

fix/repair-queue-owner-onlymainby ccantynz 24d ago⚡ AIMerged

fix(copy): stop claiming "AI is watching" while AI is unavailable#5449

fix/honest-ai-liveness-copymainby ccantynz 24d ago⚡ AIMerged

fix(gates): an AI review that never ran no longer shows "approved · Passed"#5448

fix/honest-ai-review-gatemainby ccantynz 24d ago⚡ AIMerged

feat(agent): /drain-repairs — the internal repair agent protocol as a repo command#5447

feat/drain-repairs-commandmainby ccantynz 24d ago⚡ AIMerged

feat(specs): live edits stream onto the progress page as Claude writes them#5446

feat/live-edit-streamingmainby ccantynz 24d ago⚡ AIMerged

fix(pulls): merged PRs no longer show an empty Files-changed tab#5445

fix/merged-pr-empty-diffmainby ccantynz 24d ago⚡ AIMerged

feat(specs): failed spec-to-PR runs queue for the repair agent in one click#5444

feat/spec-failure-queuemainby ccantynz 24d ago⚡ AIMerged

feat(design): health page to Natural Light standard + humanized AI errors#5443

feat/health-design-passmainby ccantynz 24d ago⚡ AIMerged

feat(ai): internal repairs run on the owner subscription — agent queue, not API credits#5442

feat/internal-repairs-on-subscriptionmainby ccantynz 24d ago⚡ AIMerged

feat(health): "Fix this for me" — one-click AI repair from the health page#5441

feat/health-repair-buttonmainby ccantynz 24d ago⚡ AIMerged

feat(admin): AI model tier selection — internal repairs on Opus 5, admin-switchable#5440

feat/admin-ai-model-tiersmainby ccantynz 24d ago⚡ AIMerged

feat(health): "how to improve" engine + honest scoring on the health page#5439

feat/health-improvement-enginemainby ccantynz 24d ago⚡ AIMerged

fix(dashboard): drop activity_feed copies of events already derived from primary tables#5438

fix/feed-dedupe-integration-rowsmainby ccantynz 24d ago⚡ AIMerged

feat(health): group security findings by rule instead of one row per hit#5437

feat/grouped-security-findingsmainby ccantynz 24d ago⚡ AIMerged

feat(dashboard): derive Recent Activity from primary tables, not the starved activity_feed#5436

feat/derived-activity-feedmainby ccantynz 24d ago⚡ AIMerged

fix(import): repair the bulk import that cloned 38 repos but created zero DB rows#3527

fix/import-onconflict-partial-indexmainby ccantynz 25d ago⚡ AIMerged

fix(import): bulk import falls back to user accounts when the name is not an org#3526

fix/import-bulk-user-accountsmainby ccantynz 25d ago⚡ AIMerged

feat(api): implement the documented v2 PR merge endpoint (closes #194)#3525

feat/api-v2-merge-endpointmainby ccantynz 25d agoMerged

docs: slim CLAUDE.md 278?99 lines; ops detail moves to docs/ops/OPERATIONS.md#3524

docs/slim-claude-mdmainby ccantynz 25d agoMerged