Skip to content

Ready to go - #45

Open
tylermalin wants to merge 8 commits into
mainfrom
ready-to-go
Open

Ready to go#45
tylermalin wants to merge 8 commits into
mainfrom
ready-to-go

Conversation

@tylermalin

Copy link
Copy Markdown
Owner

Description

Checklist

Please verify the following before submitting your PR:

  • Tests Passing: All unit and integration tests are passing successfully.
  • Invariants Updated: Any changes to state logic or contract invariants have been fully documented in docs/audit/invariants.md.
  • Audit Impact Assessed: Considered security implications and audit checks for multi-chain functions, layer interfaces, and signed-data integrity.
  • Docs Updated: The README.md and relevant documentation inside docs/ have been updated to reflect these changes.

Additional Context

tylermalin and others added 8 commits June 23, 2026 07:25
- resolveContainingCell(lat, lng) → canonical Res-4 H3 cell, works globally
- add Vitest + test/test:watch scripts (slots into root test:all)
- PRD for Address→Hex Lookup & Reserve feature

Slice 1 core: pure resolver is TDD-covered (3 behavior specs).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
- parseForwardSuggestions(): pure parser for Mapbox v6 forward-geocode (TDD, 3 specs)
- AddressHexLookup.tsx: debounced address autocomplete -> resolveContainingCell ->
  composes existing HexBoundaryPreview to render the containing Res-4 cell
- /lookup demo route (non-invasive; embed the component into presale/map later)

Slice 1 complete: address -> containing Res-4 hex, read-only.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
- global-hold-store.ts: exclusive off-chain Res-4 holds in a separate hold:* KV
  namespace; atomic sadd lock, 30-day TTL with lazy expiry reclaim, owner-only
  release, list-by-email. Never touches genesis:issued (isolation spec locks it).
- /api/holds POST/GET/DELETE; server derives the cell from lat/lng and blocks
  native/tribal cells. force-dynamic.
- vitest: add @ -> src path alias (needed once a tested module imports @/lib/*).

Slice 3 of address-hex-lookup. 6 store specs (12 total green). Smoke-tested live:
POST 201, duplicate 409, list, non-owner DELETE 403.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
- classifyCellStatus(): pure status decision — native | curated-available |
  curated-taken | global-available | global-held, with native precedence.
- resolveCellStatus(): wires curated/native sets + claim + hold + price + centroid;
  rejects invalid H3 cells via isValidCell (bug caught in live smoke test where
  cellToLatLng returned garbage instead of throwing).
- GET /api/hexes/resolve?hex=<index> or ?lat=&lng= (derives the Res-4 cell).

Slice 2 of address-hex-lookup. 6 status specs (18 total green). Smoke-tested live:
curated-available, native, global-available, global-held (after a hold), invalid -> 400.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
- cellStatusCta(): pure status -> CTA mapping (mint | hold | disabled).
- neighborCells(): gridDisk(1) ring helper for nearby suggestions.
- AddressHexLookup: resolves cell status on select; shows price + status CTA.
  curated-available -> link to /presale?hex=; global-available -> free 30-day
  hold form (POST /api/holds); taken/native -> disabled + available neighbours.

Slice 4 of address-hex-lookup. 9 new specs (23 total green). /lookup compiles
clean; /presale?hex= target verified live.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
- listActiveHolds(): all active holds from hold:index (expired filtered).
- GET /api/hexes/holds: active holds as a GeoJSON FeatureCollection.
- HexMap: amber dashed overlay layer for held cells, visually distinct from the
  teal Genesis grid.

Slice 5 of address-hex-lookup. 25 tests green incl. an in-process route-handler
test (live dev can't persist memKv across requests without Redis — same limitation
as the existing claim flow; works in production/preview where Upstash is connected).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
- explorer HexMap: amber dashed global-holds overlay (HOLDS_SOURCE), matching /map.
- CLAUDE.md: branch strategy now reflects 'ready-to-go' as the integration branch
  (develop does not exist); flag the CI/deploy-testnet 'develop' trigger divergence
  for the team to reconcile.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Address→Hex Lookup & Reserve — resolver, status, holds, UI, map overlay (#39#43)
@vercel

vercel Bot commented Jul 14, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
malamalaunch Ready Ready Preview, Comment Jul 14, 2026 9:58pm

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant