carlos / platform Public

Clone
git clone https://amadan.net/carlos/platform

Plain git — no account needed to clone.

Download

Download this file

Review brief: GeoIP plan 1, the built branch

You are GPT-6 reviewing code independently of its author. Your output is a findings report, not an edit. Do not modify any file.

What to read

  • The diff: git diff 9bed97b5..HEAD -- . ':!docs' on branch geoip-for-apps (9bed97b5 is the base, origin/main when the branch was cut). Read every changed Go file in full where it matters, not just the hunks.
  • The spec it implements: docs/superpowers/specs/2026-10-06-platform-geoip-design.md (rev 9, nine review rounds). §0's R rulings and D decisions are fixed.
  • The plan and its review dispositions: docs/superpowers/plans/2026-10-06-platform-geoip-plan1.md (the dispositions table at the end says where the code is authoritative over the plan text).

What matters most

  • Security of the header contract (spec §7, §8): any path where a client-chosen value reaches an app in any X-Carlos-Geo-* header or X-Carlos-Hop-Geo; any path where an edge locates something that is not the visitor (the box, the sender, the hub); trust granted to a transport that should not have it. Read internal/edge/edge.go ServeHTTP end to end for every branch that can reach a proxy, a static handler, a redirect, a cached replay or an activator wake, and check each sees the stripped and decided headers.
  • Concurrency and crash safety: internal/edge/geoipmirror.go, internal/geo/swappable.go, internal/console/geoippublish.go (slot ownership across the handler-to-job handoff, panics, every error path releasing the mutex exactly once), internal/console/apisystemgeoip.go.
  • Resource bounds: every read of bucket or upload data capped while copying; temp files removed on every path.
  • Behaviour changes to existing code: geo.Locate, release.Store implementations, analytics merge and read paths, the systemJob type, the tunnelclient Loop, status heartbeats. Anything that changes what an existing caller sees.
  • Tests that would pass for the wrong reason.
  • Cross-compilation (darwin, windows) and anything Linux-only.

Output

Numbered findings, most severe first: severity (P1 = a bug that would ship or a security hole, P2 = likely wrong in some real case, P3 = clarity or maintainability), file:line, a concrete failure scenario, and a fix. End with a one-line verdict: merge-ready, or revise.