Skip to content

History / Architecture

Revisions

  • Wiki: MCP tool surface audit (#335) - Architecture §10, Decision Log from main, ledger On-Behalf-Of: @cheyras Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01WT9mcMR4C42maYytEC8CRt

    @cheyras cheyras committed Oct 12, 2026
  • Wiki: deck widget versions (#305), battle logs v2 (#315), Deep Think (#316) - Architecture §15b on, Decision Log from main, ledger On-Behalf-Of: @cheyras Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_015oYErNsTyzvYNppwoipzdY

    @cheyras cheyras committed Oct 11, 2026
  • Wiki: Deck-E harness v2 (#293) and follow-ups (#300-#302, #304, #312-#314) - Architecture §15b on, Decision Log from main, ledger On-Behalf-Of: @cheyras Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_015oYErNsTyzvYNppwoipzdY

    @cheyras cheyras committed Oct 11, 2026
  • Wiki: scanner OCR digit drop (#297) - Decision Log from main, Architecture confidence rule, ledger The Decision Log regeneration from main also publishes three decisions other sessions merged today (Deck-E sonar, deck odds, set_progress). On-Behalf-Of: @cheyras Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01WT9mcMR4C42maYytEC8CRt

    @cheyras cheyras committed Oct 11, 2026
  • Wiki: battle simulator (@deckpal/sim) and deck_odds — architecture, MCP tools, decision log, contribution record Architecture gains a section on packages/sim: engine as sole judge of legality, state as data, one decision shape, seeded streams, cards keyed by printed text, a search CPU that never reads hidden information, the paired runner and honest report, and where it runs (POST /decks/simulate inside the /api function, 25 s budget). MCP-Setup lists check_deck, deck_odds and simulate_battles and states 27 tools once both ship. Decision Log regenerated with the three 2026-10-10 decisions. On-Behalf-Of: @cheyras Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

    @cheyras cheyras committed Oct 10, 2026
  • Wiki: Deck-E battle-log fix (#291) — decision log, contribution record On-Behalf-Of: @cheyras Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

    @cheyras cheyras committed Oct 10, 2026
  • Record the full SEO pass; sync Architecture and the Decision Log - Contribution Record: PR #277 (middleware-served prerenders, per-page metadata, catalog sitemaps) and the ARCHITECTURE note (PR #278). - Architecture: synced from the repo's ARCHITECTURE.md on main. - Decision Log: regenerated from decisions/ (pnpm decisions:wiki). On-Behalf-Of: @cheyras Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01WT9mcMR4C42maYytEC8CRt

    @cheyras cheyras committed Oct 5, 2026
  • Record the landing rebuild; sync Architecture and the Decision Log - Contribution Record: the 2026-10-04 landing rebuild (PR #275, #276), and the 2026-09-28 Deck-E chat overhaul line that session never pushed. - Architecture: synced from the repo's ARCHITECTURE.md on main (the page had fallen behind; the unpushed 2026-09-28 edit was stale by then). - Decision Log: regenerated from decisions/ (pnpm decisions:wiki). On-Behalf-Of: @cheyras Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01WT9mcMR4C42maYytEC8CRt

    @cheyras cheyras committed Oct 4, 2026
  • docs: record verified Deck-E approval and quantity fixes Document chat apply/preview intent, preserve MCP behavior, and record the measured production outcomes, actual cost and verification limits for PRs 198–200. On-Behalf-Of: @cheyras Co-Authored-By: GPT-5.6 Sol <noreply@anthropic.com> Co-Authored-By: GPT-5.6 Terra <noreply@anthropic.com> Co-Authored-By: GPT-5.6 Luna <noreply@anthropic.com>

    @cheyras cheyras committed Sep 23, 2026
  • Document administration tiers, feature controls and AI usage Synchronize the owner guide, architecture, security boundaries, UI conventions and decision record with app commit 8f44c4b6. Live release verification remains separate. On-Behalf-Of: @cheyras Co-Authored-By: GPT-6 <noreply@anthropic.com>

    @cheyras cheyras committed Sep 15, 2026
  • Document reusable admin tables and verified preview status Record the shared DataTable contract, six administration consumers, full-result filter semantics, desktop/mobile behavior and completed isolated browser acceptance. Preserve historical decisions and release records. On-Behalf-Of: @cheyras Co-Authored-By: Codex <noreply@openai.com>

    @cheyras cheyras committed Sep 14, 2026
  • Record bounded limiter implementation and request ordering Synchronize final source architecture and decision records for PR188 while retaining the production release prerequisite. On-Behalf-Of: @cheyras Co-Authored-By: Codex in-session worker <noreply@anthropic.com>

    @cheyras cheyras committed Sep 13, 2026
  • Document administration, roles and configurable AI credits Add the owner guide and synchronize architecture, schema, frontend, MCP and decision records for DeckPal PR188. Production schema and payment verification remain pending. On-Behalf-Of: @cheyras Co-Authored-By: Codex in-session worker <noreply@anthropic.com>

    @cheyras cheyras committed Sep 13, 2026
  • docs: record permanent CI boundaries and PR 184 validation Mirror the architecture and decision record and record the completed database/browser/test cleanup work with final review and CI evidence. On-Behalf-Of: @cheyras Co-Authored-By: Codex in-session worker <noreply@anthropic.com>

    @cheyras cheyras committed Sep 12, 2026
  • docs: explain bounded price-history continuation On-Behalf-Of: @cheyras Co-Authored-By: Codex in-session worker <noreply@anthropic.com>

    @cheyras cheyras committed Sep 12, 2026
  • docs: record reviewed calendar-date and query-test repairs On-Behalf-Of: @cheyras Co-Authored-By: Codex in-session worker <noreply@anthropic.com>

    @cheyras cheyras committed Sep 12, 2026
  • docs: record agent history and upcoming-set completion Synchronize the shared tool surface and verified product behavior with the repository. On-Behalf-Of: @cheyras Co-Authored-By: GLM-5.2 <noreply@anthropic.com> Co-Authored-By: Codex <noreply@anthropic.com>

    @cheyras cheyras committed Sep 12, 2026
  • docs: sync repository hygiene and security contracts On-Behalf-Of: @cheyras Co-Authored-By: GPT-6 Astra <noreply@anthropic.com>

    @cheyras cheyras committed Sep 12, 2026
  • Sync wiki: pay-what-you-want billing (feat/pwyw-billing) Decision-Log: the full entry -- no entitlement column, $0 as a preset rather than an escape hatch, why the Stripe customer id is guarded by the database rather than by the API, and why 053 backfills existing accounts with onboarded_at stamped. Architecture: new section 16, billing as a CACHE in front of Stripe plus the schedule for one question. Canonical copy stays in the repo. Contribution-Record: one ledger line, including what is named-not-done (unverified against real Stripe -- no key exists here, B9). NOT PUSHED, deliberately: `feat/pwyw-billing` is not merged, so these pages describe behaviour that is not live yet. Push them with the merge. On-Behalf-Of: @cheyras Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>

    @cheyras cheyras committed Sep 5, 2026
  • Purge 2a: annotate pre-rewrite commit SHAs cited in Architecture, Contribution-Record, Decision-Log Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01MExGVHFfAsqf2HDAhG2wAa

    @cheyras cheyras committed Aug 31, 2026
  • Agentic pass: Decision Log entry, Architecture flows, Contribution ledger On-Behalf-Of: @cheyras Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

    @cheyras cheyras committed Aug 29, 2026
  • SSRF hardening (issue #96): destination control on the image fetch Architecture: what the MISS path now checks and what it does not. Decision Log + Contribution Record: synced with the repo entry. On-Behalf-Of: @cheyras Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>

    @cheyras cheyras committed Aug 27, 2026
  • Architecture + Frontend Research + Decision Log + Contribution Record: first paint has a deadline now (#75) The grey screen that survived #87 was an unbounded `supabase.auth.getSession()`, not a bundle: it refreshes over the network inside the 90s expiry margin and auth-js puts no timeout on that fetch, so a stalled socket held `beforeLoad`, AuthGuard and every api.ts request open forever. On-Behalf-Of: @cheyras Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>

    @cheyras cheyras committed Aug 27, 2026
  • Deck-E narration leak filter: the tag list is derived now (issue #90) Architecture: the "anchored on our seven tool names" sentence was describing a list that had been wrong since `journey` and `escort` were added. Rewritten to say the alternation is derived from `COSMETIC_TOOLS`, what pins it, and why the 23 data + 4 deep tools are deliberately out of scope. Decision Log + Contribution Record: the corresponding entries. On-Behalf-Of: @cheyras Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>

    @cheyras cheyras committed Aug 27, 2026
  • Card art: direct object URLs, cloud warm path, and the 2026-08-26 measurements Architecture: the SPA no longer goes through the image function for art that is already in the bucket; records why a HIT was never free (invocation + Storage probe before the 302) and that the proxied path remains the fallback. Also corrects the "no manifest row is a FAIL" description, which was a permanent placeholder for 585 cards. Data-Layer 5.3a: the cloud tier had no bulk warmer at all -- the disk warmers cannot reach it and storage:backfill only mirrors a disk cache -- so the bucket held only what someone had looked at (18,840 of 21,066 cards missing). warm:cloud is that path now. Frontend-Research C.2a: the SW route matches two origins, the image cache is deckpal-img-v2, and the rename is load-bearing because v1 held opaque responses the browser pads against the origin quota. Decision Log + Contribution Record: the full entry with before/after figures. Both the Decision Log and Data-Layer note that pkmn.gg is ruled out as a source on the owner's decision, so warm:pkmn is not the route for the remaining 592 cards and should not be reached for on the next gap either. On-Behalf-Of: @cheyras Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01VqQ2pWdA2FAhXPjsooPy7K

    @cheyras cheyras committed Aug 26, 2026
  • Sync the wiki, and correct a page that described branch work as shipped Brings Architecture, Decision Log and the Contribution Record in line with the 2026-08-22 work on `decke-agent` (PR #74, open): the approval `signature` bug that broke every approved write once DECKE_APPROVAL_SECRET was set, the round trip extracted into a testable module, the narration transform's move, search_cards no longer grounding a guessed set id, and the chat model switch. Twelve DECISIONS entries appended verbatim -- this page is a snapshot, not a rewrite. The correction that mattered most was to our OWN previous sync. MCP Setup said the 23 tools "are defined once, in the packages/agent-tools workspace package". That package does not exist on origin/main. It is branch-only work from PR #74, and the 2026-08-21 sync wrote it up as current behaviour -- so a reader following that page would have gone looking in a directory that is not there, and Deck-E in production has its own separate tool set rather than a share of the MCP registry. The page now says what is true today and names the pending PR without claiming it. Everything new is marked as branch-only for the same reason. Nothing here describes the collection-write path as working, because it does not: the model will not call `log_cards` at all, which is recorded plainly rather than omitted. Two older pages get a banner instead of a rewrite. Data Layer and Frontend Research §D sized a single-user Raspberry Pi deployment that the project abandoned for Vercel + Supabase the same week they were finished. Their measurements are captioned with the command that produced them, so they are left as measured and the banner says which sections are still evidence and which describe a plan that was dropped. A dated measurement rewritten to a current number stops being evidence. Also: removed an orphaned mid-file footer from Decision Log and the Contribution Record, each left behind by an earlier sync that appended below it, so both pages now carry exactly one and a reader scanning for the date gets the right one. TypeScript's entry corrected to 7.0.2. Home was checked against the files on disk and the AGENTS.md inventory and left alone. Dex Data, Prior Art, Project Brief and UI Spec were checked and deliberately not touched -- Project Brief is historical by designation, and UI Spec already carries its own supersession notice. On-Behalf-Of: @cheyras Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>

    @cheyras cheyras committed Aug 22, 2026
  • Sync wiki with Deck-E rev 2: agent-tools extraction, entitlement/meter, data access, deep tier Brings Architecture, MCP Setup, Decision Log and the Contribution Record in line with the deckpal repo's Deck-E PRs 1-4 and 7 (the browser tool wire fix, server-side entitlement + spend meter on /api/chat, the packages/agent-tools extraction with two front-ends, Deck-E's lazy-RLS data access, and the metered deep tier). Also corrects two staleness gaps found while syncing: the MCP tool count (21 -> 23) and the Deck-E route's dev-only status, both of which had drifted from the canonical repo docs before this session. On-Behalf-Of: @cheyras Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>

    @cheyras cheyras committed Aug 22, 2026
  • Deck-E: parentage over analysis, and the lighting was never occlusion Five defects closed in the three.js character port, and in four of them the recorded diagnosis had to be discarded before the real cause showed up. Three placement errors turned out to be the same mistake: a relationship the .blend expresses as PARENTAGE had been reimplemented analytically. - the lid pivot is a matrix pair, not an angle pair. DeckBox_Lid.location is keyed and reaches (0, 0.152263, -0.117046) at the full gape; leaving it at rest put the lid 0.313 BU out of place, which is why card_stash was the worst-scoring frame in the sweep. - Eye_Rig is VERTEX_3-parented to the MORPHED lid, so it tracks the shape keys. Reproduced to 1e-6; the eyes no longer draw on the inside of the open lid. - the brow sockets hang off Eye_Rig, not the lid (this page said otherwise and was wrong), and carry a keyed follow-through of their own. Worst brow error 0.36 BU -> 0.006. The lighting residual was not occlusion. Filed for weeks as "shadows 24-37% too bright", it was an unported EEVEE firefly clamp, and it has to be applied to the HDRI texels rather than to the finished IBL lookup. Bucketing the residual by surface NORMAL rather than by pixel is what showed it: the up-facing lid top was +44% against the front face's +5%, a shape no occlusion term can produce. Also recorded: never quantize the glb (it parks a de-quantisation transform on nodes the rider system overwrites), the SDF atlas must stay 16-bit (the shader's edge band is narrower than an 8-bit step), gating a dev route needs its import() guarded and not just its beforeLoad (the PWA was precaching 945 kB of three.js for every production user), and travel_far's flight is baked into the .blend at 2x speed where the port is the correct one. Parity coverage went from 8 stills to 14 stills plus 3 clips compared frame-by-frame, and the harness was made deterministic after it was found to vary by up to 0.045 IoU between identical runs. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01EFYdqPpfFcY8z8sKzggnZJ

    @cheyras cheyras committed Aug 18, 2026
  • Document the Deck-E three.js character runtime Architecture gains §15: the subsystem, the decision to drive 47 normalised pose channels rather than AnimationMixer clips, and the traps worth knowing before touching it. Frontend Research gains section F on the stack choices — vanilla three.js over r3f, the AgX colour recipe for matching Blender, why PMREM is a correctness fix and not just an aliasing one, and why Draco cannot be used with morph targets. Also records that the separate character wiki is now stale in eight measured places: its own regeneration chain died on 2026-08-17, so the .blend is the authority. On-Behalf-Of: @cheyras Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>

    @claude claude committed Aug 18, 2026
  • Rename the product to DeckPal Follows the repo rename: DeckScout → DeckPal, deckscout.io → deckpal.app, and the MCP server rotom-mcp → deckpal-mcp.

    @cheyras cheyras committed Aug 15, 2026