Back to Tech

June 8-15, 2026

punk6529 PRs, June 8-15 2026

A repo-by-repo weekly digest of punk6529 pull requests across the tracked 6529 technical repositories. The source reports are preserved below and grouped by repository.

For live PR drops and shorter updates, see Follow The Repo.

Total
696
Repos
5
Daily
14:00

In This Report

This report is split by repository. Use this index to jump directly to the area you want, or read through from the frontend app work into backend, Stream contracts, Safe app hardening, and review bot updates.

6529-Collections/6529seize-frontend

6529seize-frontend

App security, SEO, WCAG/i18n, review bot config. 78 PRs, 55 open, 22 merged, 1 closed.

View repository

Scope: 6529-Collections/6529seize-frontend, PRs authored by punk6529, created from 2026-06-08 through 2026-06-15 UTC. I found no matching PRs on 2026-06-08 or 2026-06-15 itself; the activity runs from 2026-06-09 through 2026-06-14.

Method: GitHub connector lookup, then gh pr list --author punk6529 --state all --search "created:>=2026-06-08" --limit 200, with selected gh pr view checks for PR bodies.

Rollup: 78 PRs total. 55 are open, 22 are merged, and 1 is closed without merge. The raw summed diff is +41,423 / -9,277 across 1,496 changed-file entries, but that overstates unique change size because many PRs are stacked on each other.

1. Early repo cleanup, build fixes, security config, and open-source readiness

PRs: #2548, #2549, #2550, #2551, #2552, #2553, #2554, #2555, #2557. All merged.

This was the first wave on 2026-06-09. The small docs PR #2548 clarified that setup uses a .env file. #2549 fixed Next App Router page prop typing under exactOptionalPropertyTypes, removing explicit | undefined from optional route params / searchParams shapes so Next's generated .next/types/app/**/page.ts contract check would pass.

#2550 moved repo-local skills into docs, added write-prs / write-skills guidance, and hardened the Markdown link validator. #2551 removed starter placeholder Jest/Playwright tests. #2552 fixed stale local config paths by using npx from PATH and aligning unused-module scan config with the root Next app.

The security-config pair was substantive. #2553 tightened CSP by replacing broad connect-src * / img-src * patterns with scheme-limited HTTPS/WSS allowances, setting object-src 'none', and moving unsafe-eval behind explicit local/dev allowance. #2554 stopped publishing production browser source maps by default while keeping Sentry symbolication and documenting the reactStrictMode migration rationale.

#2555 was open-source readiness: a rewritten README, new CONTRIBUTING.md and SECURITY.md, tracked AGENTS.md, and worktree sync changes so agents receive the guidance from Git rather than a local symlink. #2557 fixed a real interaction bug on hybrid touchscreen laptops: desktop-width, hover-capable devices now keep desktop drop actions instead of opening the mobile/touch action sheet just because navigator.maxTouchPoints > 0.

2. Wallet auth/session v2 and app-wallet hardening

PR: #2843. Open restore PR; supersedes the reverted #2556 merge.

This is a large security stack and the frontend half of a paired backend security effort. It restores the wallet auth/session v2 client changes after the accidental #2556 merge was reverted.

The PR moved wallet auth toward a v2 session model. The checkpoint summary describes connection-sharing auth, server-side hashed session and refresh secrets, browser HttpOnly sessions, native refresh-token rotation, WebSocket auth without ?token=, structured wallet signatures, and paired backend Safe / EIP-1271 authority verification. Later checkpoints hardened the app-wallet local-secret model: v2 encrypted envelopes, per-field random salts, PBKDF2-SHA256 KDF metadata, AES-256-GCM ciphertext/auth tags, legacy v1 decrypt and migrate-on-unlock support, stronger passphrase rules, encrypted recovery export by default, typed confirmation before plaintext reveal/export, a 60-second auto-hide window, and best-effort clipboard clearing.

It also split "wallet present" from "wallet auth valid" through hasActiveWalletAddress and hasValidWalletAuth, with the old isAuthenticated kept as stricter compatibility. The final checkpoint validates encrypted app-wallet storage shape before connector creation and rejects plaintext-looking private keys, raw address hashes, plaintext mnemonics, or corrupt has_mnemonic states, while preserving valid legacy encrypted records for migration.

3. Decentralized media, preview, token metadata, and embed hardening

PRs: #2559, #2567, #2568, #2569, #2570, #2571, #2572. Mixed state: #2567, #2568, #2569, #2570 merged; #2559 and #2571 open; #2572 closed without merge.

#2559 centralizes IPFS/IPNS/Arweave handling around native decentralized URIs and the 6529 resolver layer. It adds frontend-owned contract docs under ops/contracts, central parsing/resolver helpers, MEDIA_RESOLVER_ENDPOINT defaulting to https://media.6529.io, and updates media rendering, Drop Forge, interactive memes, attachment metadata, OG helpers, ENS/IPNS, profile media, CSP, and Next image remote patterns. It is intentionally paired with backend PR 1617 and should deploy after backend resolver infrastructure is verified.

The merged security hardening around it focused on fetch boundaries and external inputs. #2567 pins URL guard fetches to already validated DNS answers via Undici lookup handling, closing a DNS rebinding gap. #2568 hardens the Alchemy token metadata proxy with a streamed body cap, 100-token request cap, strict token validation, unsupported-chain rejection, short-lived batch caching, anonymous rate limiting, and header-spoofing protections. #2569 fixes audited advisories by bumping axios and js-cookie and adding pnpm overrides for vulnerable transitive packages. #2570 adds byte-limited web body readers and caps OpenGraph, Farcaster, Pepe, and batch JSON reads.

#2571 remains open and narrowly renders NextGen artist_signature as text instead of raw HTML. #2572 was closed without merge; it attempted to route NFT and NextGen HTML media through a sandboxed iframe, add HTTPS metadata URL canonicalization, and add noopener,noreferrer to metadata-driven opens.

4. Ops docs, roadmaps, and agent workflow documentation

PRs: #2577, #2578, #2599, #2600, #2602, #2603. Mixed state: #2577, #2599, #2600, #2602, #2603 merged; #2578 open.

#2577 reorganized operational repo guidance under ops/, moving user-facing docs to ops/docs, repo-local skills to ops/skills, and docs-maintenance scripts to ops/scripts. It also added ops/README.md, ops/scripts/README.md, and ops/roadmap/README.md. #2578 is an open follow-up that rewrites root AGENTS.md into a comprehensive guide covering repo map, commands, worktrees, Next.js architecture, docs/skills, validation, PR/bot workflows, and security expectations.

#2599 adds an unresolved non-wallet security remediation backlog under ops roadmaps. #2600 adds a public rendering and SEO roadmap that separates crawlable public rendering from authenticated/personalized app behavior. #2602 adds an agent release railway roadmap covering PR risk lanes, staging integration, release branches, release dashboards, and production promotion. #2603 is the key bridge into the later accessibility work: it adds WCAG 2.2 AA and i18n standards, repo-local skills, and durable workstream memory.

5. SEO, sitemap, JSON-LD, and Open Graph social metadata

PRs: #2579, #2580, #2591, #2592, #2593, #2594, #2595, #2597, #2598. Mixed state: #2579 merged; the rest are open.

#2579 expands sitemap coverage with API-driven dynamic paths for public waves and NextGen collection/subpage URLs, removes wallet-specific ?focus=your-cards sitemap URLs, and hardens generation with response-shape validation, pagination guards, route exclusions, priority/changefreq overrides, and deduplication.

#2580 is an open structured data stack: reusable JSON-LD rendering and schema builders for site identity, collections, NFT/artwork pages, NextGen, profiles, waves/drops, and retained article pages. It wires P0/P1 routes to emit application/ld+json, with tests for serialization/escaping and page output shapes.

#2591 documents existing OG/social card coverage and lays out a seven-PR roadmap. The implementation stack then standardizes metadata: #2592 adds shared 1200x630 social-card constants/helpers, #2593 routes existing profile/wave/drop metadata through those helpers, #2594 adds branded NFT and collection OG image routes, #2595 migrates legacy collection and NFT metadata builders to the new routes, #2597 does the same for NextGen and ReMemes, and #2598 adds durable docs and guardrail tests to keep future metadata on the shared contract.

6. Dependency governance, toast redesign, and drop menu layout behavior

PRs: #2583, #2584, #2601. All open.

#2583 replaces broad daily Dependabot flow with weekly grouped dependency intake and adds a dependency governance workflow. The risk gate classifies direct dependency changes, lockfile deltas, install/build script exposure, high-risk package classes, and npm publish age. Auto-merge remains report-only via labels/signals.

#2584 is a broad app toast redesign. It introduces a shared AppToast system on top of react-toastify with title, description, details, optional actions, ids, and auto-close, while preserving legacy { type, message } callers. It rewrites production toast copy across auth, EMMA/distribution plans, delegation, Drop Forge, app wallets, waves/drops, profile/user flows, groups, and update prompts.

#2601 is the stronger follow-up to #2557. Instead of relying mostly on touch capability detection, it treats mobile drop action sheets as a layout behavior. It adds useIsMobileLayoutViewport() using the existing SIDEBAR_MOBILE_BREAKPOINT and gates long-press/header mobile menu entry on compact layout width, forcing open sheets closed when resizing to desktop width.

7. 6529bot dashboards and review configuration

PRs: #2605, #2606, #2632, #2646. Mixed state: #2605, #2632, #2646 merged; #2606 open.

#2605 adds a public /open-data/6529bot usage dashboard with totals and breakdowns by day, repository, provider/model, and review kind, plus docs/navigation/troubleshooting and service tests.

#2632 adds the private /tools/6529bot/admin operator dashboard. It keeps the boundary explicit: public Open Data remains aggregate-only, the admin route is direct-route-only and not sidebar-linked, admin data is fetched server-to-server after 6529 wallet auth plus a server-side allowlist, and the HMAC secret remains server-only. The dashboard covers 30-day totals, budget status, alerts, model-price health, runtime status, failed jobs, stale active claims, and usage tables.

#2606 is an open dogfood config PR for AI-assisted review workflows with review types, admission rules, and cost controls. #2646, merged on 2026-06-14, adds .github/6529bot.yml for the central 6529bot GitHub App path, enables Anthropic claude-opus-4-8, turns on initial general/security reviews, follow-up reviews, maintainer commands, and budget caps. It explicitly does not add provider keys, workflows, AWS credentials, or bot code to the frontend repo.

8. Progressive WCAG 2.2 AA and i18n migration

PRs: #2604, #2607, #2608, #2609, #2610, #2611, #2612, #2613, #2614, #2615, #2616, #2617, #2618, #2619, #2620, #2621, #2622, #2623, #2624, #2625, #2626, #2627, #2628, #2629, #2630, #2631, #2633, #2634, #2635, #2636, #2637, #2638, #2639, #2640, #2641, #2642, #2643, #2644, #2645. All open.

This is the dominant workstream of the week: 39 open implementation PRs stacked on top of the merged standards PR #2603. The pattern is consistent across the stack: move hardcoded UI copy into source-locale messages, add default/fallback locale behavior, use native Intl helpers for dates/numbers/relative time, improve explicit accessible names, introduce semantic landmarks/lists/tables/statuses where missing, add Suspense boundaries where useSearchParams is involved, and add focused component/i18n tests plus browser smoke checks. Many PR descriptions explicitly say they are review-ready only and should not be merged autonomously.

The stack starts with #2604, which adds the initial lightweight i18n runtime and migrates The Memes list/card labels, sorting controls, card metrics, loading/empty states, page title context, focus rings, and useSearchParams Suspense handling. It also fixes the Windows react-doctor:diff wrapper path used in this EC2 Windows/WSL setup.

The next surface group covers The Memes, Meme Lab, and ReMemes collection/card/detail flows: #2607 The Memes detail, #2608 Meme Lab cards, #2609 ReMemes cards, #2610 ReMeme detail, #2611 Meme Lab detail, and #2612 Meme Lab distribution. These PRs localize labels and helper copy, improve card/list semantics, and add explicit names for links/actions without touching minting or transaction flows.

Then the migration moves across The Memes analytics and media surfaces: #2613 live stats, #2614 card activity, #2615 shared timeline labels, #2616 shared timeline media accessibility, #2617 art viewer actions, #2618 art details, #2619 references tab, #2620 calendar period strip, #2621 calendar overview shell, #2622 calendar grid, and #2623 calendar drilldown cards. The calendar PRs in particular add named guide/prev/next controls, real jump input labels, localized mint-day labels and invite text, and browser smokes across desktop and mobile locales.

The next group handles browse/list/card semantics and the user collected/profile area. #2624 and #2625 improve ReMemes and Meme Lab browse card accessibility. #2626 and #2627 improve collected card and network-card list semantics. #2628 through #2631 localize collected empty states, filter controls, season strip, and stats summary. #2633 through #2639 continue through collected details tables, boost breakdown, activity overview/tabs, wallet activity filter, distributions details, and TDH history. Those add table captions, stable accessible token links, native <output> empty states, localized chart labels, named chart canvases, and stable chart keys.

The final visible profile-header stack is #2640 through #2645. #2640 localizes the profile tabs shell and active tab state. #2641 makes the followers modal/list semantic and translation-ready. #2642 adds message-backed stats-row labels and accessible names for TDH, xTDH, NIC, Rep, and followers. #2643 localizes header identity/media controls and replaces disabled edit controls in read-only public views with non-interactive containers. #2644 localizes About add/edit/empty/expand/collapse controls and avoids nested interactive controls for long statements. #2645 localizes the About edit form, placeholders, counters, buttons, success toast, and moderation errors, and adds role="alert" to the error container.

Complete PR checklist

  • #2548 MERGED: Clarify README environment setup note.
  • #2549 MERGED: Fix Next App Router page prop types.
  • #2550 MERGED: docs: move repo skills into docs.
  • #2551 MERGED: Remove starter placeholder tests.
  • #2552 MERGED: Fix stale local config paths.
  • #2553 MERGED: Harden CSP source policy.
  • #2554 MERGED: Harden Next source map policy.
  • #2555 MERGED: Improve open-source README and contributor docs.
  • #2843 OPEN: Restore wallet auth session v2 contract and client hardening.
  • #2557 MERGED: Keep hybrid touchscreen laptops on desktop drop actions.
  • #2559 OPEN: Centralize decentralized media resolution.
  • #2567 MERGED: Pin URL guard fetches to validated DNS answers.
  • #2568 MERGED: Harden Alchemy token metadata proxy.
  • #2569 MERGED: Fix audited dependency advisories.
  • #2570 MERGED: Limit public preview body reads.
  • #2571 OPEN: Render NextGen artist signature as text.
  • #2572 CLOSED: Harden NFT and NextGen HTML embeds.
  • #2577 MERGED: docs: move repo guidance under ops.
  • #2578 OPEN: docs: strengthen agent guidance.
  • #2579 MERGED: Improve sitemap coverage.
  • #2580 OPEN: Add JSON-LD structured data.
  • #2583 OPEN: Add dependency governance workflow.
  • #2584 OPEN: Redesign app toast notifications.
  • #2591 OPEN: Document OG social card coverage.
  • #2592 OPEN: Add shared social metadata helpers.
  • #2593 OPEN: Normalize existing dynamic OG metadata.
  • #2594 OPEN: Add branded NFT and collection OG card routes.
  • #2595 OPEN: Standardize legacy OG metadata builders.
  • #2597 OPEN: Standardize NextGen and ReMemes OG metadata.
  • #2598 OPEN: Document OG metadata guardrails.
  • #2599 MERGED: Document unresolved security remediation backlog.
  • #2600 MERGED: Document public rendering SEO roadmap.
  • #2601 OPEN: Gate drop mobile menus by layout width.
  • #2602 MERGED: docs: add agent release railway roadmap.
  • #2603 MERGED: Add frontend accessibility and i18n standards.
  • #2604 OPEN: Add The Memes card accessibility i18n groundwork.
  • #2605 MERGED: Add 6529bot usage dashboard.
  • #2606 OPEN: Add 6529bot dogfood config.
  • #2607 OPEN: Improve The Memes detail a11y i18n.
  • #2608 OPEN: Improve Meme Lab cards a11y i18n.
  • #2609 OPEN: Improve Rememes cards a11y i18n.
  • #2610 OPEN: Improve Rememe detail a11y i18n.
  • #2611 OPEN: Improve Meme Lab detail a11y i18n.
  • #2612 OPEN: Improve Meme Lab distribution a11y i18n.
  • #2613 OPEN: Localize The Memes live stats.
  • #2614 OPEN: Localize The Memes card activity.
  • #2615 OPEN: Localize shared timeline labels.
  • #2616 OPEN: Improve shared timeline media accessibility.
  • #2617 OPEN: Localize The Memes art viewer actions.
  • #2618 OPEN: Localize The Memes art details.
  • #2619 OPEN: Localize The Memes references tab.
  • #2620 OPEN: Localize The Memes calendar period strip.
  • #2621 OPEN: Localize meme calendar overview shell.
  • #2622 OPEN: Improve meme calendar grid accessibility and i18n.
  • #2623 OPEN: Localize meme calendar drilldown cards.
  • #2624 OPEN: Improve Rememes browse card accessibility follow-up.
  • #2625 OPEN: Improve Meme Lab browse card list semantics.
  • #2626 OPEN: Improve collected card list semantics.
  • #2627 OPEN: Improve collected network card list semantics.
  • #2628 OPEN: Localize collected empty states.
  • #2629 OPEN: Localize collected filter controls.
  • #2630 OPEN: Localize collected season strip.
  • #2631 OPEN: Localize collected stats summary.
  • #2632 MERGED: Add private 6529bot admin dashboard.
  • #2633 OPEN: Localize collected details tables.
  • #2634 OPEN: Localize collected boost breakdown.
  • #2635 OPEN: Localize collected activity overview.
  • #2636 OPEN: Localize collected activity tabs.
  • #2637 OPEN: Localize collected wallet activity filter.
  • #2638 OPEN: Localize collected distributions details.
  • #2639 OPEN: Localize collected TDH history.
  • #2640 OPEN: Localize profile tabs shell.
  • #2641 OPEN: Localize profile followers modal.
  • #2642 OPEN: Localize profile stats row.
  • #2643 OPEN: Localize profile header identity controls.
  • #2644 OPEN: Localize profile about statement controls.
  • #2645 OPEN: Localize profile about edit form.
  • #2646 MERGED: Enable 6529bot reviewer config.

6529-Collections/6529seize-backend

6529seize-backend

Wallet auth session APIs and media resolver support. 4 PRs, 2 open, 2 merged.

View repository

Scope: 6529-Collections/6529seize-backend, PRs authored by punk6529, created from 2026-06-08 through 2026-06-15 UTC. I found no matching backend PRs on 2026-06-08 or 2026-06-15 itself; the activity runs from 2026-06-09 through 2026-06-14.

Method: GitHub connector repository lookup, then gh pr list --author punk6529 --state all --search "created:>=2026-06-08" --limit 200, with gh pr view checks for PR bodies and changed files.

Rollup: 4 PRs total. 2 are open and 2 are merged. None are closed without merge. The raw summed diff is +7,556 / -1,358 across 89 changed-file entries.

1. Backend repo skills and agent PR workflow

PR: #1615 MERGED.

This was the backend equivalent of the frontend operational-guidance cleanup. It moved repo-local skills out of .agentconf/skills and into ops/skills, matching the convention established in the frontend repo. It also brought over the frontend write-skills and write-prs skills, then adapted them for backend-specific work: validation expectations, DCO commit rules, PR review flow, and lambda deployment planning.

The moved and updated skill set covers API work, community metrics, database work, identity notifications, skill authoring, and PR writing:

  • ops/skills/api-skill/SKILL.md
  • ops/skills/community-metrics/SKILL.md
  • ops/skills/database-skill/SKILL.md
  • ops/skills/identity-notifications/SKILL.md
  • ops/skills/write-skills/SKILL.md
  • ops/skills/write-prs/SKILL.md

This was documentation and workflow guidance only. It explicitly did not change runtime backend code, API contracts, entity models, workflows, deployment config, lambdas, or integrations. The validation was correspondingly scoped: skill validation, diff whitespace checks, stale frontend-reference scans, non-ASCII scans, and npm run lint. No backend deployment was required.

2. Wallet auth session v2 APIs and connection sharing

PR: #1616 OPEN.

This is the backend half of the wallet-auth security hardening stack, paired with frontend restore PR #2843. It is the largest backend PR in the week: 64 changed files, +8,029 / -227.

The core backend work completed in the earlier checkpoints of the PR. It adds server-side session v2 and connection-sharing support, including hashed session and share-code secrets, browser HttpOnly session behavior, native refresh-token rotation, one-time connection sharing, and WebSocket authentication that no longer needs ?token= query parameters. It also adds structured wallet signature verification and replay protection, replacing older looser message verification paths with explicit structured message binding.

The backend also removes trust in client-provided Safe-wallet authority hints. Wallet auth, drop verification, and structured verification may still accept Safe-related hints for wire compatibility, but the backend does not treat those hints as authority. Instead, the shared backend wallet-message verification flow validates EOA personal-sign recovery first, then uses EIP-1271 against the expected Safe address when EOA recovery does not prove that address. This is the cryptographic authority fix called out in checkpoint 3.

The final checkpoints mostly document paired frontend-only fixes. Checkpoints 4 through 7 cover app-wallet secret hardening, native stored-address validation, frontend auth-state semantics, and app-wallet storage-shape validation. Those are local frontend/native-storage concerns, so the backend PR notes no new backend code delta for those checkpoints. The backend session v2, refresh-token, connection-sharing, structured-signature, WebSocket auth, and Safe/EIP-1271 behavior remain unchanged by checkpoint 7.

The changed backend surfaces include:

  • API OpenAPI and generated models: src/api-serverless/openapi.yaml, generated session/transfer/drop models, and serializers.
  • Auth implementation and tests: src/api-serverless/src/auth/auth-session-v2.ts, auth.db.ts, auth.routes.ts, and related tests.
  • WebSocket auth and log redaction: src/api-serverless/src/ws/ws.ts, ws-message.ts, ws-connection.repository.ts, and tests.
  • Structured signatures: src/api-serverless/src/wallet-signatures/structured-wallet-signatures.ts and tests.
  • Drop signature validation: src/api-serverless/src/drops/drop-signature-verifier.ts, drop hashing/validation, and tests.
  • Persistence/entities: src/entities/IWalletAuthSession.ts, src/entities/IWalletConnectionTransfer.ts, src/constants/db-tables.ts, and entity registration.

The PR body records extensive bot/CI follow-up. Prior Claude, CodeRabbit, Code Quality, GitHub Actions, and Sonar feedback were addressed through multiple commits. A generated-file workflow issue was fixed by committing generator-exact output. A Sonar hotspot was fixed by replacing regex parsing with delimiter parsing. Later CodeRabbit feedback on query schema, defaults, and chain_id parity was resolved in paired frontend/backend commits.

3. Decentralized media resolver contract API

PR: #1617 OPEN.

This is the backend side of the decentralized media resolver v1 contract, paired with frontend PR #2559. It is open, with 27 changed files and a +1,849 / -326 diff.

The PR adds shared backend parsing and resolving helpers for IPFS, IPNS, and Arweave. The main API addition is POST /api/media/resolve, which lets clients submit native or gateway-style inputs and receive normalized resolution data: canonical native URIs, https://media.6529.io resolver URLs, and explicit fallback URLs. The contract is frontend-owned in the paired frontend PR under ops/contracts, while this backend PR implements the server behavior and generated API surface.

It also updates backend consumers that had previously hardcoded legacy gateways such as ipfs.io, cf-ipfs.com, arweave.net, or custom gateway conversions. The changed surfaces include:

  • API contract and generated models: src/api-serverless/openapi.yaml, ApiMediaResolveRequest, ApiMediaResolveResponse, ApiDecentralizedMediaProtocol, ApiDecentralizedMediaResolution, and generated route registration.
  • New media route handler: src/api-serverless/src/media/decentralized-media.handlers.ts and tests.
  • Shared resolver library: src/decentralized-media/decentralized-media.ts and tests.
  • Gateway and media consumers: src/ipfs.ts, src/arweave-gateway-fallback.ts, src/media-checker.ts, src/nft-links/lib/uri.ts, src/nftsLoop/nfts.ts, and minting-claim media upload code.
  • Documentation: docs/architecture.md and docs/decentralized-media-resolver-review-and-rollout.md.

Deployment order matters. The PR explicitly says to deploy backend first, then verify /api/media/resolve and media.6529.io resolver infrastructure before deploying the frontend. It calls out likely backend deployables to review/redeploy: the API service, nftsLoop, NFT-link/media-preview loops importing src/nft-links/lib/uri.ts, minting-claim deployables importing Arweave upload helpers, and media-checker deployables. There is no DB migration in v1.

Validation was focused and local: 7 no-Docker Jest suites / 95 tests, root TypeScript check, equivalent ESLint in the Windows environment, and git diff --check. Standard npm test was blocked locally by Docker credential helper setup for Testcontainers, and the standard lint script had a PowerShell environment-assignment issue, so equivalent commands were used.

4. 6529bot reviewer configuration

PR: #1631 MERGED.

This mirrors the frontend 6529bot reviewer config PR. It adds .github/6529bot.yml for the central 6529bot GitHub App path, enables Anthropic claude-opus-4-8 as the review lane, turns on initial general and security reviews, enables follow-up reviews and maintainer commands, and sets enforced repo/requestor/PR/review-kind budget caps.

The PR is intentionally config-only: it does not add provider keys, workflows, AWS credentials, or bot runtime code to the backend repository. Live review behavior still depends on the central 6529bot App installation/runtime and worker credentials being ready.

Validation references the central bot config commands:

  • npm run validate:repo-config -- templates/dogfood-repository-config.yml
  • npm run dogfood:target -- -- --repository-config templates/dogfood-repository-config.yml --mode limited-initial --require-ready

Complete PR checklist

  • #1615 MERGED: Move repo skills under ops.
  • #1616 OPEN: Wallet auth session v2 APIs and connection sharing.
  • #1617 OPEN: Add decentralized media resolver contract API.
  • #1631 MERGED: Enable 6529bot reviewer config.

6529-Collections/6529Stream

6529Stream

Contract hardening, release gates, protocol evidence. 188 PRs, 181 merged, 7 open.

View repository

Scope: 6529-Collections/6529Stream, PRs authored by punk6529, created from 2026-06-08 through 2026-06-15 UTC. I found no matching PRs on 2026-06-08; the activity starts on 2026-06-09 and continues into 2026-06-15.

Method: GitHub repository search, then gh pr list --repo 6529-Collections/6529Stream --author punk6529 --state all --search "created:>=2026-06-08" --limit 500, plus targeted gh pr view reads for representative PR bodies in each workstream.

Rollup: 188 PRs total. 181 merged, 7 open, 0 closed without merge. The raw summed diff is +141,859 / -12,652 across 2,413 changed-file entries. That raw total substantially overstates unique net change because many PRs are sequential state-reconciliation, generated artifact, manifest/checksum, and stacked feature PRs.

Daily volume:

  • 2026-06-09: 4 PRs, all merged.
  • 2026-06-10: 37 PRs, all merged.
  • 2026-06-11: 26 PRs, all merged.
  • 2026-06-12: 27 PRs, all merged.
  • 2026-06-13: 41 PRs, all merged.
  • 2026-06-14: 48 PRs, 42 merged and 6 open.
  • 2026-06-15: 5 PRs, 4 merged and 1 open.

1. Repo control plane, contributor baseline, and initial verification

PRs: #2, #3, #4, #5, #6, #7, #16. All merged.

This first block turned a very young repository into something agents and contributors could work on reproducibly. #2 added repo-local ops skills for writing skills and PRs, establishing the working conventions used throughout the week. #3 added ops/ROADMAP.md and ops/AUTONOMOUS_RUN.md, effectively creating a persistent execution control plane for the sprint: launch gates, ADR dependencies, P0 templates, Slither/test traceability, release gates, and the first queued PRs.

#4 was Gate A: a reproducible Foundry baseline. It pinned Foundry config for smart-contracts/, added make check, Linux/Windows check scripts, bootstrap scripts, smoke CI for forge build / forge test, and fixed the initial compile surface by importing existing Stream interfaces instead of missing NextGen interface files. #5 added contributor and security intake docs.

#6 introduced characterization-test scaffolding, #7 documented the Slither baseline, and #16 linked baseline issues. Together they created the initial "known current state" so later hardening PRs could prove what changed rather than vaguely improving things.

2. Architecture decision records before P0 rewrites

PRs: #20, #23, #32, #36, #44, #52, #54. All merged.

This set accepted the design gates before the contract rewrites. #20 accepted the drop-authorization ADR, defining the EIP-712 domain/schema, replay protection, recipient/payer policy, signer epoch/cancellation, signature validation, and ERC-1271/EIP-2098 support decisions. #23 added the auction custody ADR and clarified authorization fields.

The subsequent ADRs accepted the payment accounting, admin governance, randomness, metadata/freeze, and upgrade/redeployment models. The important pattern is that implementation PRs were not free-form: they were traced back to accepted ADRs and roadmap items, with make check, Windows checks, Slither baseline deltas, and docs traceability following each change.

3. Core protocol hardening: drop authorization, payments, auctions, admin permissions, and pause controls

PRs: #55, #56, #57, #58, #59, #60, #61, #62, #63, #64, #72, #74, #75, #76, #77, #78, #80. All merged.

This is the main P0 contract-security block. #55 removed tx.origin from drop execution. #56 replaced the legacy packed-hash signer path with EIP-712 DropAuthorization typed data, adding domain-separated hashing, derived drop IDs, consumed/cancelled drop ID storage, signer epoch rotation, per-drop cancellation, EIP-2098 compact signatures, low-s / v checks, and explicit rejection of contract signers until ERC-1271 landed. #57 then implemented ERC-1271 drop authorization.

The payment and auction accounting changes moved away from risky push-payment flows. #58 fixed auction outbid refunds with pull credits, #59 formalized auction custody and settlement, #60 converted fixed-price payouts to pull credits, #61 converted curator reward claims to pull credits, and #62 bounded remaining emergency withdrawals.

#63 fixed admin permission scoping by changing grants from (account, selector) to (account, target, selector), correcting selector mismatches, adding owner/root recovery without making the owner an implicit operational admin, rejecting zero inputs, and adding mint batch guards. #64 implemented pause and emergency controls. Later cleanup and proof PRs removed dead mint accounting, weak helper randomness, first-party uninitialized locals, and proved vendored library provenance.

#77 added a payment invariant baseline, #78 added payment ledger view aliases, and #80 separated drop-signing identity from signer-management authority. That signer lifecycle manager removed the constructor drop signer's implicit global admin authority, added owner-approved signer managers and exact lifecycle grants, and tested rotation, revocation, cancellation, and stale payload invalidation.

4. Randomizer lifecycle and randomness evidence

PRs: #65, #66, #67, #68, #69, #70, #131, #153, #155. All merged.

The randomizer work starts with #65, which added shared StreamRandomizerLifecycle request records, lifecycle states/views/errors/events, collection randomizer epochs, and callback validation before setTokenHash. It validates request ID, token binding, provider, epoch, non-empty output, duplicate fulfillment, zero arRNG request IDs, and stale provider/epoch conditions. It also specifically guards the arRNG request-submission window where an external payable call returns the provider request ID.

#66 exposed lifecycle views by token, #67 blocked migration while pending requests exist, #68 added failed post-processing state, #69 added bounded post-processing retry, and #70 stored raw randomness output hashes.

The later PRs completed user-visible and release-evidence aspects: #131 exposed stale and failed randomness metadata states, #153 added request-level randomizer reserve lifecycle tests, and #155 added a randomizer operations evidence bundle.

5. Metadata, freeze boundaries, dependency immutability, and browser safety

PRs: #71, #81, #82, #83, #84, #85, #86, #87, #88, #111, #112, #113, #114, #121, #123, #126, #127, #129, #139. All merged.

This set makes on-chain metadata safer, more deterministic, and more release-verifiable. #81 added metadata golden baseline tests; #82 added ERC-4906 metadata update events; #83 added schema-v1 metadata state outputs; and #84 introduced collection freeze manifests and guards. The freeze PR stores typed freeze manifest hashes, emits CollectionFrozen, requires ended minting and elapsed final-supply delay, finalizes supply at freeze time, tightens max token ID, and blocks metadata-significant changes after freeze.

#85 added dependency version immutability. #86 added burn metadata semantics. #87 established metadata escaping safety, and #88 added animation HTML wrapper safety.

The later metadata-policy checks guard constraints that could otherwise drift after initial implementation: size limits, fixture safety, token image URI policy, collection metadata URI policy, UTF-8 fixture tests, raw attribute schema, dependency registry UTF-8 metadata, Core UTF-8 metadata policy, and browser sandbox validation. #129 is especially important: it adds Playwright/Chromium sandbox checks for final on-chain metadata animation fixtures, stubs expected external dependency requests, blocks unexpected outbound HTTP(S), asserts bootstrap values, captures console/page errors, and proves parent-document access is blocked. #139 carries that sandbox posture into rehearsal metadata.

6. Deployment and release artifact pipeline

PRs: #90, #92, #94, #96, #98, #100, #102, #104, #106, #108, #110, #116, #118, #133, #145, #147, #157. All merged.

This block built the deterministic release-artifact machine around the contracts. #90 reduced StreamCore deployment size, and #116 / #133 recovered additional bytecode headroom.

#92 started Gate E with an executable local deployment rehearsal and deployment manifest shape. It added script/RehearseDeployment.s.sol, deployed and wired a local stack, configured placeholder Safe/pause/signer/emergency ceremony state, created a sample collection, revoked temporary deployer admin, transferred ownership to the Safe placeholder, and validated this via manifest tests.

#94 generated a release artifact catalog; #96 generated deployment manifests; #98 added stdlib-only ABI compatibility checks and committed the first production ABI baseline; #100 generated deployment address books; #102 added release checksums; #104 added a release change policy gate; #106 generated a machine-readable release manifest; #108 generated source verification inputs; and #110 added deterministic Foundry broadcast manifest ingestion from sanitized run-latest.json output.

#118 packaged dependency artifact manifests, #145 added deployment ceremony evidence bundles, #147 added local gas snapshot baselines, and #157 added release signature evidence.

7. Invariants, dry runs, readiness, audit package, and runbooks

PRs: #137, #138, #141, #143, #149, #151, #159, #161, #163, #165, #167, #169, #171, #174, #175, #178. All merged.

This set moved from "we can build and deploy locally" to "we can prove readiness constraints." #141 added a dry-run auction ceremony rehearsal; #143 added a local emergency redeployment rehearsal; #149 added supply/replay/freeze invariant baselines; #151 added auction consistency invariants.

#159 added an external audit package index, and #161 added architecture and threat-model audit docs. #163 added a release-readiness dashboard and checker that distinguishes local baseline evidence from public-beta and production blockers. #165 added a public-beta evidence status manifest, followed by Gate G reconciliation in #167.

#169 and #171 added non-local release evidence intake runbooks and schemas, #174 reconciled the non-local evidence schema merge, #175 added the protocol incident response runbook, and #178 reconciled incident-response roadmap state.

8. Drop authorization payloads, signing fixtures, and signer custody evidence

PRs: #179, #181, #184, #185, #188, #189, #192. All merged.

This sequence operationalized the EIP-712 authorization model outside of Solidity tests. #179 added signing examples and fixtures, and #181 added a no-secret payload generator for canonical unsigned fixed-price and auction EIP-712 payload artifacts. It validates deterministic outputs, hash parity with signed fixtures, sale-mode constraints, missing fields, and secret-shaped input rejection.

#184 reconciled payload-generator state. #185 added a no-secret drop authorization signing evidence schema, checked local template, retained artifact placeholder, and validator/test suite. #188 reconciled signing evidence. #189 added signer custody readiness evidence gates, and #192 reconciled that merge state.

9. Release evidence tracker, issue sync, blocker reports, and snapshots

PRs: #193, #196, #197, #200, #201, #204, #205, #208, #209, #211, #213, #232, #234, #236, #238, #240, #243, #244, #247, #248, #250, #252, #254, #256, #258, #260, #262, #264. All merged.

This is the first large release-evidence automation run. It turns public-beta and production-release evidence into explicit templates, issue backlinks, tracker labels, body sync, closure-state checks, and generated snapshots.

The core artifacts are #193 public beta evidence blocker report, #197 per-requirement public beta templates, #201 production release templates, #205 production release blocker report, #209 release evidence packet index, and #213 release evidence issue backlog artifact.

The rest of the set binds the artifacts to GitHub issue tracker reality: link backlog entries to tracker issues, sync issue bodies, detect label drift, harden body drift checks, guard tracker closure state, generate non-local evidence, clarify production gates, apply phase labels, and export issue snapshots. Nearly every substantive generator/checker is followed by a smaller "reconcile ... merge state" PR that updates ops/AUTONOMOUS_RUN.md, roadmaps, changelog, release manifests, checksums, or generated state after the prior PR landed.

10. Live audit reports and retained live-audit artifacts

PRs: #266, #268, #270, #272, #274, #276, #278, #280, #282, #284, #286, #288, #290, #292, #294, #296, #298, #300, #302, #304. All merged.

This group builds the live-audit evidence layer. #266 added an operator-only, no-secret live release-evidence issue snapshot audit orchestrator. It exports and checks live issue snapshots for labels, bodies, and closure state, with mocked tests so CI does not need live GitHub access.

#270 added release evidence live audit report bundles, #274 added the live audit report schema and offline checker, and #278 added Markdown parity checks. #282 added a live audit report archive index, and #286 documented archive retention.

The retained-audit rows then get guardrails: dry-run bundles, archive-row checks, release-integrity coverage, freshness guards, and repeated reconcile PRs. The intent is consistent: template-only/local/dry-run artifacts cannot accidentally be interpreted as reviewed public-beta or production readiness evidence.

11. Curator Merkle hardening, formatting gates, Windows checks, fork/testnet/external evidence, and bot config

PRs: #306, #308, #310, #312, #315, #316, #318, #321, #322, #324, #326, #328, #330, #332, #334, #336, #338, #340, #342, #344, #346, #347, #349, #350, #352, #354, #356, #358, #359, #361. Mixed state: all merged.

#306 completes curator reward Merkle leaf domain separation. It adds CURATOR_REWARD_LEAF_DOMAIN, per-collection root epochs, MerkleRootUpdated, binds leaves to domain/chain/pool/collection/claimant/amount/root epoch using abi.encode, and rejects stale root proofs after rotations.

The formatting/CI path is #312, which adds a scoped Solidity formatting checker. It freezes the current raw all-files formatting baseline to documented deferred files, wires a scoped gate into Make, Bash, PowerShell, and CI, and prevents the deferred baseline from silently growing. #316 and #318 retire first-party and provider/integration formatting deferrals; #322 documents vendored formatting exemptions. #342, #344, and #346 harden Windows check-wrapper failures, add runtime harnesses, and add Windows PowerShell wrapper CI.

The fork/testnet/external evidence path starts with #326, which adds a fork deployment rehearsal evidence checker while explicitly not claiming the fork rehearsal is complete. #330 points the tracker at retained fork artifacts, #334 syncs fork issue bodies, #336 retains a live audit report after fork issue sync, and #347 / #350 retain and accept reviewed fork rehearsal evidence. #354 adds an external audit evidence checker, #359 adds a testnet deployment rehearsal evidence checker, and #361 adds a Sepolia deployment rehearsal runbook. #358 enables central 6529bot reviewer configuration.

12. Open artist approval provenance/signature stack

PRs: #363, #364, #365, #366, #367, #368. All open.

This is a clean six-PR feature stack. #363 records collection-level artist approval hashes so indexers and collectors can determine which on-chain collection state the artist approved. #364 adds relayed EIP-712 artist approvals so artists can authorize exact state without sending the transaction themselves, including compact signature support and stale-state rejection. #365 tracks stale approvals by comparing stored approval hash to the current collection digest. #366 adds ERC-1271 validation for contract-wallet artists. #367 documents provenance and exposes helper surface through IStreamCore.

#368 is the final review point for the stack. It factors EIP-712 hashing, EOA recovery, compact EIP-2098 support, and ERC-1271 validation into StreamArtistApprovals, finalizes hashArtistApproval(collectionId) over artist address, freeze manifest hash, max collection purchases, total supply cap, and final supply delay, uses derived freshness instead of eager clearing, and size-fits StreamCore with a linked helper library. It reports StreamCore runtime at 24,571 bytes, only 5 bytes under EIP-170, so future core additions need special care.

13. Admin ceremony, protocol state machine, adversarial tests, and signer-compromise fuzzing

PRs: #369, #371, #373, #376, #377. Mixed state: #369, #371, #373, #376 merged; #377 open.

#369 adds a no-secret admin ceremony evidence baseline: schema, templates, checker, release-manifest/checksum coverage, and docs for ownership transfer, Safe/multisig control, role grants/revocations, signer setup, pause/emergency setup, post-state reads, verification, approval, retained hashes, and redaction. The checker deliberately fails template evidence that still has stale hashes, zero/template privileged addresses, all-zero commit, invalid environment/chain pairing, path escapes, secrets, missing approval, or missing ceremony proof categories.

#371 adds the first reusable cross-contract protocol state-machine harness. It deploys the local stack and runs deterministic fixed-price drops, auction registration/outbid/settlement, payment credits/withdrawals, pause controls, signer rotation, drop cancellation, immediate-randomizer metadata finalization, metadata mutation, and freeze. #373 extends that harness with adversarial sequence tests: cancelled/expired/stale/replayed drop authorizations, rejecting receiver withdrawals, auction early settlement, paused bids, underbids, cancellation after bid, repeat settlement, late bids, and failure-path preservation.

#376 records a clean-main reviewer roadmap rebaseline and maps remaining "10/10" gaps into execution backlog lanes. #377 is open and adds signer-compromise/revocation fuzz coverage, including pause, signer rotation, signer-epoch invalidation, per-drop cancellation, recovered fixed-price and auction minting, replay rejection, cancel-after-consumption rejection, and no-mutation assertions.

Overall read

The 6529Stream week is less like a feature branch and more like a compressed launch-hardening program for a smart-contract repository. The early PRs establish control-plane docs, reproducible Foundry checks, ADRs, and Slither baselines. The middle PRs implement and test core protocol fixes: EIP-712/ERC-1271 drop authorization, pull-payment accounting, auction custody, admin scoping, pause/emergency controls, randomizer lifecycle safety, metadata freezing, and metadata/browser safety. The later PRs create a release-evidence operating system: deterministic manifests, checksums, ABI/source verification inputs, deployment rehearsals, evidence templates, retained-artifact checkers, live audit report tooling, tracker issue sync, Windows wrappers, fork/testnet rehearsal evidence, and external-audit evidence gates.

Only seven PRs remain open in this scope: the six-part artist approval stack #363-#368, and signer-compromise fuzz tests #377. Everything else found in the date window was merged.

6529-Collections/6529-safe-app

6529-safe-app

Safe app security posture, release evidence, test gates. 77 PRs, 76 merged, 1 open.

View repository

Scope: 6529-Collections/6529-safe-app, PRs authored by punk6529, created from 2026-06-08 through 2026-06-15 UTC. I found no matching PRs on 2026-06-08. The activity in scope runs from 2026-06-09 through 2026-06-15.

Method: GitHub connector repository lookup, then gh pr list --author punk6529 --state all --search "created:>=2026-06-08" --limit 200, with gh pr view checks for PR bodies, stats, and changed-file details where needed.

Rollup: 77 PRs total. 76 are merged and 1 is open. None are closed without merge. The raw summed diff is +37,193 / -8,345 across 790 changed-file entries. Nearly all work landed in a rapid June 14-15 hardening train.

1. Repo-local agent skills, roadmap, and open-source operating model

PRs: #101, #102, #109, #111, #112, #114, #116, #143, #161, #162, #164, #166, #168, #188. All merged.

This group establishes the repo operating model around a Safe-app-specific "ultra-safe open-source" program. #101 adds repo-local Codex skills under ops/skills for writing skills and preparing PRs, aligned with the repo PR template, validation commands, DCO/signing posture, CI gates, and Safe listing/deployment evidence expectations. #102 then adds the world-class roadmap and durable workstream memory under ops/, while repairing early stop-line gates: React Router security upgrades, Option A formal-vector digest stability across Windows/Linux, package-manager metadata, and CI/docs/PR-template alignment on pnpm.

The open-source readiness docs then fill out the public surface. #109 adds package metadata while keeping the package private. #111 replaces loose Markdown issue templates with structured issue forms, disables blank issues, and adds triage policy. #112 adds the testing charter and command profiles (test:formal, test:pr, test:release). #114 rewrites the README and adds an audience-oriented docs index. #116 adds the release evidence record contract.

The later docs PRs turn this into a maintainable public project posture. #143 adds a community-health gate around issue forms, label taxonomy, triage SLAs, good-first-issue rules, and maintainer workflow wiring. #161 adds incident-response runbooks and expands SECURITY.md with private intake, supported branches, severity/triage targets, coordinated disclosure, and response operations. #162 adds an external security review packet. #164 documents privacy/data stewardship. #166 adds public support/discussion operations, support-channel docs, a public external-audit summary template, and maintainer-rotation guidance. #168 adds open-source maintenance operations for Scorecard posture, Dependabot grouping, release rehearsals, and rollback drills. #188 adds a documentation freshness owner/cadence gate, including accessibility and localization policy docs.

2. CI, testing, release, artifact, and evidence gates

PRs: #106, #113, #115, #118, #119, #120, #121, #122, #133, #134, #136, #142, #144, #145, #148, #149, #151, #154, #158, #179. All merged.

This is the release machinery layer. #106 adds Dependabot coverage for GitHub Actions, fixes Playwright artifact paths, ignores generated artifacts locally, and switches Playwright's web server command to pnpm. #113 adds workflow timeouts and makes scheduled/full E2E artifact uploads fail if reports/results are missing. #115 adds pnpm run docs:check for mojibake/replacement characters, unresolved placeholders, and broken local Markdown links. #118 adds a release environment/provenance validator and release build/test profiles.

The test/build quality ratchet then tightens. #119 adds a Vitest coverage gate scoped to the executable safety kernel. #120 removes noisy unit-test warnings and removes the stale warning exception from docs. #121 splits route and vendor bundles. #122 adds a bundle budget gate enforcing total JS gzip, max chunk sizes, route/entry chunk budgets, CSS budgets, and expected lazy-route chunk prefixes.

The release/evidence gates make future drift harder. #133 adds the canonical public VITE_* and release fallback environment contract plus env:check. #134 adds generated artifact policy checking around artifacts/* and tracked evidence separation. #136 adds a TypeScript AST source architecture budget gate for file/function budgets and owner/expiry exceptions. #142 adds release-note quality standards. #144 adds deterministic demo walkthrough evidence. #145 adds performance and responsive budgets. #148 adds a hard production high/critical dependency audit gate. #149 clears dev-tool audit advisories by upgrading Vite/Vitest/jsdom/PostCSS/ESLint and adding pnpm overrides. #151 adds a schema validator for release-candidate evidence records. #154 adds a reproducible release artifact bundle workflow. #158 adds repository settings evidence checking. #179 adds a manual accessibility evidence archive schema under docs/spec/evidence/accessibility.

3. Safe transaction, proposal, contract, and write-boundary safety

PRs: #123, #124, #126, #128, #129, #130, #131, #132, #135, #153, #155, #156, #157, #159, #160, #163, #165, #167, #178. All merged.

This is the central safety kernel of the week: make every Safe write explainable, bounded, evidence-producing, and machine-checked. #123 adds the contract selector manifest for six write targets, including ABI SHA-256 hashes, source/explorer links, risk owner, audit disposition, canonical signatures, and selectors, then checks it against WRITE_ALLOWLIST. #124 turns Safe-listing evidence packet SL-008 into a concrete contract audit evidence packet with explicit release-blocking FAIL decision. #126 maps 12 core security invariants to implementation, tests, and evidence.

The Safe Transaction Service and proposal evidence work follows. #128 centralizes Safe Transaction Service URL/config helpers for pending queues, Safe metadata, headers, and page limits. #129 makes sendAllowedTxs(...) return frozen typed Safe proposal evidence from the SDK safeTxHash. #130 adds a reusable proposal evidence copy/export panel backed by a typed SAFE_PROPOSAL_EVIDENCE envelope. #131 centralizes the runtime capability predicate required before Safe writes: runtime write capability, Safe proposal capability, SDK availability, Safe address, and mainnet. #155 adds the Safe Transaction Service reconciliation client for queue pagination, Safe/not-Safe lookup, proposal lookup, same-nonce lookup, outage errors, and status reconciliation.

The model layer becomes more formal in the [codex] run. #153 adds a typed allowed action schema registry matching action kinds to contracts and selectors. #156 normalizes the mandatory pre-submit contract across delegation, transfers, and ENS. #157 adds a typed immutable Safe proposal lifecycle reducer from draft through policy/preflight/review/submission/status and terminal/reset states. #159 expands deterministic formal vectors to cover action schema closure and lifecycle ordering/fail-closed behavior. #160 expands Safe-listing evidence packet checks across SL-001, SL-002, SL-008, SL-009, and SL-012. #163 adds a TypeScript-parser-backed Safe write boundary gate that fails if direct Safe SDK transaction submission or runtime SDK loading escapes the approved modules. #165 adds generated transaction safety invariants cross-checking builder outputs against action schema, write allowlist, Safe send payload, and review locks. #167 adds deterministic calldata integration tests decoding representative ENS, ERC-721, ERC-1155, and NFTDelegation builder outputs against reviewed ABIs. #178 adds public support redaction summaries so exact verification/proposal exports retain exact data while public support summaries redact sensitive hashes, addresses, calldata, review IDs, and advisory hex.

#132 belongs here as the endpoint safety perimeter: it enforces checked-in production CSP endpoint inventory and rejects broad connect-src drift. #135 splits Safe runtime adapters and connection-state assembly from React context, giving the safety-critical Safe SDK handshake/provider code a testable non-React boundary.

4. Product, UX, platform, localization, visual, and responsive readiness

PRs: #125, #137, #138, #139, #140, #141, #146, #147, #183, #184. All merged.

These PRs make the product and UX evidence explicit. #125 adds product scope docs and a route inventory gate that compares product docs against the runtime route manifest and system routes. #137 reuses shared export controls for activity evidence, replacing raw JSON-only activity copy behavior with the same copy/download evidence primitive used elsewhere. #138 adds a product journey state matrix covering every feature journey, route state, and external dependency failure/recovery contract.

The UX gates cover copy and state quality. #139 normalizes runtime chrome separators to ASCII and adds a copy-encoding gate to catch mojibake/replacement characters. #140 adds design-system state standards for shared primitives, route states, accessibility copy, and source contracts. #141 adds a supported-platform matrix covering browsers, viewports, Safe Apps SDK/Safe Web runtime modes, networks, and config modes. #146 adds localization QA docs and gate support for locale activation, glossary review, pseudo-locale/long-string QA, RTL evidence, and signing-critical copy. #147 adds manual UX accessibility evidence requirements for keyboard, screen-reader, focus, contrast, reduced-motion, Safe iframe, and localized layout review.

The late visual/responsive slices turn manual evidence into deterministic artifacts. #183 adds a visual safety evidence gate, deterministic E2E screenshot artifacts for review education and outside-Safe blocked write-route states, and narrow-viewport wrapping fixes in AppShell, CardHeader, and UnsupportedNetworkPage. #184 adds responsive evidence for Safe-like iframe, 1024px shell, 768px settings, 390px blocked transfer recovery, and 320px narrow recovery, reusing the visual evidence helpers.

5. Runtime config, 6529 API client, and provider request hardening

PRs: #180, #181, #182. All merged.

This group extracts and hardens external runtime dependency handling. #180 adds src/config/runtimeConfig.ts as the single typed owner for browser runtime config parsing: 6529 API base URL, Safe Transaction Service base URL, mainnet RPC URL, Safe parent-origin allowlist, Safe downgrade-policy address allowlists, and build provenance metadata. Existing API clients, Safe Transaction Service helpers, runtime policy, and Safe provider code are routed through those helpers while keeping compatibility wrappers.

#181 hardens the 6529 API client contract with typed ApiClientResult helpers for identity and consolidated TDH reads. It adds sanitized ApiClientError metadata for HTTP, network, malformed JSON, validation, and abort failures, plus partial-data and stale-response warnings. #182 adds a shared provider request guard with timeout, abort, outage, unsupported-capability, and revert classification, then routes delegation, transfer, ENS, activity, and delegation proof provider reads/simulations through it without adding boot-time RPC health checks.

6. Delegation, ENS, transfer, and preflight modularization

PRs: #103, #104, #105, #117, #185, #186, #187, #189, #190, #191. Mixed state: #191 is open; the rest are merged.

The early fixes repair concrete product stop-lines. #103 hardens app preference persistence so blocked/quota-limited localStorage writes do not break in-memory settings, and replaces fragile separator/fallback glyphs. #104 enforces the delegation submit stop-line: submit requires a non-empty built transaction batch and respects locked mandatory pre-submit blocked outcomes while preserving degraded-but-policy-allowed paths. #105 replaces Math.random() delegation batch-row IDs with an isolated monotonic draft ID factory. #117 splits refresh-safe context boundaries: Safe runtime policy moves to a pure module, preferences hooks move out of TSX, and the app shell route wrapper is separated from the router export.

The later modularization reduces large screen components and makes mandatory pre-submit logic testable. #185 extracts ENS mandatory pre-submit checks into src/features/ens/preflight.ts, covering forward recheck, simulation policy, Safe nonce posture, pending ENS queue conflicts, mandatory policy assembly, and drift checks. #186 does the same for transfers in src/features/transfers/preflight.ts, moving destination classification, ownership/balance checks, preserve-identity friction, simulation policy, queue conflict, decode parity, mandatory policy assembly, and review-lock drift. #187 adds a manifest-backed write-feature module contract requiring parse/build/preflight/review/submit/evidence structure.

The delegation work continues in a focused chain. #189 extracts pure delegation review draft construction into guided, advanced, and shared builder modules, while leaving provider proof checks, mandatory preflight, submit-time drift checks, Safe submission, and JSX in the screen. #190 extracts batch delegation and batch revocation row editors into DelegationBatchEditors.tsx and adds tests for add/remove, max-row cap, token reset, labeled field updates, and named row groups. #191, currently open, extracts the advanced-mode delegation authoring form into DelegationAdvancedForm, while preserving screen ownership of state, preflight, provider proof checks, Safe submission, and guided-mode JSX. It ratchets the delegation screen architecture exception again, from 1350/1100 to 1225/1000.

7. 6529bot reviewer configuration

PR: #150. Merged.

This adds .github/6529bot.yml for the central 6529bot GitHub App path, enables Anthropic claude-opus-4-8 as the review lane, enables initial general and security reviews, enables follow-up reviews and maintainer commands, and sets repo/requestor/PR/review-kind budget caps. As in the frontend and backend repos, this is configuration-only: no provider keys, workflows, AWS credentials, or bot runtime code are added to the repository.

Complete PR checklist

  • #101 MERGED: Add repo-local Codex skills.
  • #102 MERGED: chore: add roadmap and repair stop-line gates.
  • #103 MERGED: fix: harden preference storage and copy fallbacks.
  • #104 MERGED: fix: enforce delegation submit stop-line.
  • #105 MERGED: fix: use deterministic delegation draft ids.
  • #106 MERGED: ci: maintain actions and archive e2e artifacts.
  • #109 MERGED: chore: add package metadata.
  • #111 MERGED: docs: add issue forms and triage policy.
  • #112 MERGED: docs: add testing charter and command profiles.
  • #113 MERGED: ci: add workflow timeouts and artifact policy.
  • #114 MERGED: docs: rewrite readme and documentation index.
  • #115 MERGED: ci: add public docs drift check.
  • #116 MERGED: docs: add release evidence contract.
  • #117 MERGED: refactor: split refresh-safe context boundaries.
  • #118 MERGED: ci: add release env validation.
  • #119 MERGED: Add safety coverage ratchet.
  • #120 MERGED: Quiet unit test warnings.
  • #121 MERGED: Split route and vendor bundles.
  • #122 MERGED: Add bundle budget gate.
  • #123 MERGED: Add contract selector manifest gate.
  • #124 MERGED: Add Safe listing contract evidence gate.
  • #125 MERGED: Add product route inventory gate.
  • #126 MERGED: Add security invariants map.
  • #128 MERGED: Centralize Safe Transaction Service config.
  • #129 MERGED: Return Safe proposal evidence.
  • #130 MERGED: Add proposal evidence export panel.
  • #131 MERGED: Require runtime capability for Safe writes.
  • #132 MERGED: Enforce production CSP endpoint inventory.
  • #133 MERGED: Add release env contract drift gate.
  • #134 MERGED: Add generated artifact policy gate.
  • #135 MERGED: Split Safe runtime adapters from context.
  • #136 MERGED: Add source architecture budget gate.
  • #137 MERGED: Reuse shared export controls for activity evidence.
  • #138 MERGED: Add product journey state gate.
  • #139 MERGED: Add UX copy encoding gate.
  • #140 MERGED: Add UX state standards gate.
  • #141 MERGED: Add supported platform matrix gate.
  • #142 MERGED: Add release notes quality gate.
  • #143 MERGED: Add community health gate.
  • #144 MERGED: Add deterministic demo walkthrough gate.
  • #145 MERGED: Add performance responsive budget gate.
  • #146 MERGED: Add localization QA gate.
  • #147 MERGED: Add manual UX accessibility evidence gate.
  • #148 MERGED: Add production dependency audit gate.
  • #149 MERGED: [codex] Clear dev-tool audit advisories.
  • #150 MERGED: Enable 6529bot reviewer config.
  • #151 MERGED: [codex] Add release evidence gate.
  • #153 MERGED: [codex] Add allowed action schema registry.
  • #154 MERGED: [codex] Add release artifact bundle workflow.
  • #155 MERGED: [codex] Add Safe Transaction Service reconciliation client.
  • #156 MERGED: [codex] Normalize mandatory pre-submit contract.
  • #157 MERGED: [codex] Add proposal lifecycle state machine.
  • #158 MERGED: [codex] Add repository settings evidence gate.
  • #159 MERGED: [codex] Expand formal action and lifecycle vectors.
  • #160 MERGED: [codex] Add Safe listing evidence packet checks.
  • #161 MERGED: [codex] Add incident response runbook.
  • #162 MERGED: [codex] Add external security review packet.
  • #163 MERGED: [codex] Add Safe write boundary gate.
  • #164 MERGED: [codex] Add privacy data stewardship docs.
  • #165 MERGED: [codex] Add transaction safety invariant coverage.
  • #166 MERGED: [codex] Add public trust operations docs.
  • #167 MERGED: [codex] Add deterministic contract calldata integration.
  • #168 MERGED: [codex] Add open-source maintenance operations.
  • #178 MERGED: [codex] Add support-safe redaction summaries.
  • #179 MERGED: [codex] Add manual accessibility evidence archive.
  • #180 MERGED: [codex] Centralize runtime config parsing.
  • #181 MERGED: [codex] Harden 6529 API client contract.
  • #182 MERGED: [codex] Harden provider request handling.
  • #183 MERGED: [codex] Add visual safety evidence gate.
  • #184 MERGED: [codex] Add responsive evidence gate.
  • #185 MERGED: [codex] Extract ENS mandatory preflight.
  • #186 MERGED: [codex] Extract transfer mandatory preflight.
  • #187 MERGED: [codex] Add write feature module contract.
  • #188 MERGED: [codex] Add documentation freshness owner gate.
  • #189 MERGED: [codex] Extract delegation review draft builders.
  • #190 MERGED: [codex] Extract delegation batch editors.
  • #191 OPEN: [codex] Extract delegation advanced form.

6529-Collections/6529reviewbot

6529reviewbot

Standalone GitHub App launch, budgets, dogfood, hotfixes. 349 PRs, all merged.

View repository

Scope: 6529-Collections/6529reviewbot, PRs authored by punk6529, created from 2026-06-08 through 2026-06-15 UTC, matching the same window used for the frontend report.

Method: GitHub repo lookup, then gh pr list --repo 6529-Collections/6529reviewbot --author punk6529 --state all --search "created:>=2026-06-08" --limit 1000, followed by representative gh pr view checks for PR bodies.

Rollup: 349 PRs total, all merged. The result set is PR #1 plus PRs #4 through #351. PRs #2 and #3 were not returned for this author/date query. First created: 2026-06-11 21:10:35 UTC. Last created: 2026-06-15 03:01:16 UTC. Raw summed diff: +92,831 / -6,337 over 4,307 changed-file entries.

The week reads like an extremely compressed productization sprint: the repo was born as the standalone 6529 review bot, gained a GitHub App server, budget/admission/usage ledgers, worker dispatch, admin APIs, release gates, dogfood/go-live tooling, deployment and dashboard handoff plans, and then many small release-contract hardening PRs before live production hotfixes.

1. Foundation And Initial Runtime

PRs: #1, #4-#22.

This phase created the public standalone repository and moved review-bot responsibilities out of the frontend. #1 initialized the MIT-licensed repo with a full README, public governance files, issue/PR templates, CI/dependency/Scorecard workflows, provider-neutral review engine code, and five review entrypoints: general PR review, follow-up review, WCAG analysis, i18n analysis, and crypto/security analysis. It also added AWS usage-ledger writing through the RDS Data API and established the security posture: untrusted repo inputs, no target-code execution, bounded provider calls, hidden metadata stripping, path rejection, sanitized provider errors, and AWS OIDC instead of long-lived AWS credentials.

The follow-up PRs quickly turned the scaffold into a central GitHub App shape. #5 added signed webhook verification, normalized pull_request, issue_comment, and ping routing, bounded body reads, command parsing for /6529bot and @6529bot, a minimal GET /healthz / POST /webhooks/github server, and injectable queue handoff. #6 and #7 added trusted actor and budget admission checks. #8 introduced review job fanout. #9-#10 started the usage API contract and ledger loader.

By #13, the repo had a worker adapter system with noop, local, and GitHub Actions execution modes, plus a local run CLI and workflow template. #14 added the 6529.io admin auth bridge. #15 added scheduled spend alerts. #17-#19 covered GitHub App installation auth, dogfood onboarding, and production GitHub App worker tokens. #20-#22 added release hardening, a v0 release plan, and webhook replay diagnostics.

2. Ledgers, Run Control, Pricing, Admin APIs, And Packaging

PRs: #23-#87.

This phase filled in the operational core. #23 added a validated model catalog. #24-#25 added the job lifecycle ledger and schema tooling. #28-#34 built run-control contracts, a ledger claimer, budget snapshots in the server, dispatch status updates, model pricing tooling, usage-cost estimation, and claim closing after worker completion. Together, those PRs made jobs auditable across budget decisions, dispatch, worker progress, and completion.

#35-#43 built operator-facing infrastructure: provider setup, sanitized support bundles, v0 gate rendering, admin job events and runtime status APIs, central runtime pause controls, maintainer comment command docs, install/onboarding docs, and an OpenAPI contract for the usage API. #45 made budget policy real rather than dashboard-only: it added strict budget policy JSON validation, SQL rendering, dry-run/apply tooling, and server loading of enabled DB policy rows into budget admission.

#46-#49 added AWS IAM templates, GitHub App manifest templates/rendering, and pinned workflow template actions. #50-#55 kept ledger schema migrations additive and recorded dogfood budget policy application. #56 installed central reviewbot workflows. #60-#64 added the GitHub App registration packet, manifest conversion CLI, worker capacity runbook, explicit reusable workflow secrets, and operator guidance routes.

The first hardening sweep also starts here. #66-#70 added public artifact leak scanning, docs link checking, release checks in CI, scoped Scorecard permissions, and a peeled checkout action commit pin. #72-#75 added job-health alerts, zero-rate model price guards, v0 gate status bootstrap, and container deployment packaging. #75 is notable: it added a runtime-only Dockerfile, non-root container behavior, deployment docs, and fixed the production server entrypoint so it actually wires the configured worker adapter rather than falling back to a noop handler.

#76-#87 completed native GitHub Actions dispatch, GitHub App token minting, token CLI profiles, admin auth header hardening, webhook preflight checks, shared Data API helper reuse, SNS shell-mode hardening, dispatch exception ledger coverage, fail-closed provider output, worker diagnostic redaction, runtime hardening docs, and runtime hardening release checks.

3. Privacy Hardening, Admin Surfaces, Release Candidates, And Dogfood Setup

PRs: #88-#151.

This phase made the bot safer to operate in public and private contexts. #88-#115 are a broad privacy/redaction pass: public artifact webhook scanning, release preflight fixtures, support bundle identifier minimization, model price source verification timestamps, model-price freshness gates, root env leak scans, redaction for dispatch errors, ledger diagnostics, repository-config load reasons, review runner errors, utility CLI errors, manifest conversion diagnostics, support bundle Git output and values, release gate status, policy/price notes, private path scans, alert/AWS diagnostics, worker dispatch preflight, public usage repo allowlists, admin API diagnostics, and scheduled alert payloads.

#116-#124 added private admin API depth: recent run claims, usage events, budget status, alert status, model price status, the 6529.io admin API client contract, and an admin snapshot CLI. #116 is representative: it added GET /api/admin/run-claims/recent with bounded filters, stale active claim triage, admin-only routing, redacted metadata, OpenAPI updates, and release checks.

#119 added a public-safe release candidate bundle command. It combines v0 gate status, operator evidence, package/git metadata, and no-network preflight into Markdown or JSON while redacting token shapes, AWS identifiers, and unsafe preflight content. #125-#128 added production cutover checklists, cutover status in release bundles, SES alert delivery, and frontend admin dashboard progress tracking.

#129-#151 moved toward controlled dogfood. The set includes dogfood readiness checks, 6529.io dashboard env template checks, dogfood execution status, security review status, release operations mapping, operator workspace bootstrap/check mode, release candidate workspace inputs, dogfood readiness workspace checks, checklist/runbook link validation, release candidate path redaction, safe capture guidance, a dogfood target packet checker, command-only self-dogfood config, self-dogfood replay checks, release notes contract checks, and a dogfood promotion packet. #145 is the centerpiece: npm run dogfood:target validates target-repo .github/6529bot.yml posture before opening or updating dogfood PRs, including command modes, review kinds, explicit provider/model lanes, job caps, trusted actors, draft skipping, maintainer permissions, enforced budget caps, and public-safe output.

4. Contract-Check Sweep

PRs: #152-#216.

This is a dense sequence of release contract checks. The purpose was to turn assumptions in docs, release plans, and operator workflows into executable, no-network checks that run in release verification. The series starts with dogfood promotion and go-live requirements: #152-#158 require promotion/go-live evidence across cutover gates, v0 release gates, release notes, strict preflight, operator workspace guidance, and operator docs.

#159-#168 add checks for canonical docs indexing, public governance, workflow permissions, roadmap current state, Dependabot config, issue-template governance, container image contracts, container release evidence, release operations docs sync, and checkout credentials being disabled. #169-#189 cover command contracts, review workflow kind, model defaults, providers, review bin entrypoints, budget scope, run-control scope, alert dimensions, notifier modes, review comment format, admission policy, repository config boundaries, worker adapters, admin auth, usage API routes, admin snapshots, support bundles, diagnostics redaction, preflight, review context boundaries, and provider adapters.

#190 separately hardens ledger metadata privacy. It adds shared metadata normalization for usage, job, and run-control ledgers, keeps safe scalar keys, bounds strings, preserves allowed nulls, redacts token/provider/AWS/private-key shapes, and rejects keys that look like prompts, diffs, provider payloads, webhook payloads, worker output, credentials, secrets, tokens, or authorization headers. #191-#216 continue with webhook replay, release candidate, dogfood go-live/promotion/readiness/target, operator workspace, production cutover, security review status, dogfood status, operator evidence, v0 release gates, GitHub App manifest/auth/routes, install/deployment/operations/support runbooks, worker capacity, alerting, model pricing, budget policies, configuration reference, AWS IAM templates, and security model contracts.

5. Operator Drill, Release Notes, Deployment, Dashboards, And Alerts

PRs: #217-#256.

This phase took the contract framework and turned it into operator rehearsal and handoff tooling. #217 adds npm run operator:drill, a public-safe rehearsal command that composes operator workspace checks, release candidate summaries, dogfood readiness, dogfood promotion, and dogfood go-live packets without touching GitHub, AWS, or model providers. #219-#224 add release notes draft/publication guards, release tag plan guards, container publish plan guards, and production deployment plan guards.

#225-#227 thread deployment plans through the operator workspace, operator drill, and release notes. #228-#234 focus on 6529.io dashboard deployment handoff: roadmap status, dashboard:deployment-plan, release notes evidence, operator workspace/drill support, release gate requirements, and gate contract hardening. #229 is the main dry-run dashboard deployment plan; it validates HTTPS origins, auth-check URL shape, route paths, public org allowlists, CLI parsing, docs, release-operation anchors, and smoke-test wiring without deploying or calling live services.

#235-#242 repeat the same pattern for alert delivery. #235 adds alerts:delivery-plan, a dry-run handoff for webhook/SNS/SES alert routing that does not send alerts, create topics, verify SES identities, call webhooks, call AWS, or read live ledgers. #238-#240 gate alert delivery on cutover, operator evidence, and v0 alerts readiness.

#243-#256 are validation precision and image reference hardening: reject failed or non-positive release note validation evidence, align release operations validation maps, require release notes tag version matches, reject existing release tags, reject URL schemes and empty segments in container/production image refs, reject uppercase repository refs, share image repository validation, reject non-numeric registry ports, pin colon rejection, and exercise dogfood/operator ready gates in release checks.

6. Model Pricing, Evidence Coverage, Remote Tags, And Community Readiness

PRs: #257-#309.

#257-#264 add model price catalog coverage audits, thread pricing coverage into operator workspace, dogfood readiness, dogfood promotion, go-live, operator guidance, release evidence, and runbook contracts. #257 adds --require-catalog-coverage to npm run model-prices and fails for missing rows, missing rates, stale/future source evidence, zero placeholders, placeholder source URLs, and CLI parsing issues. #265-#280 harden release notes disclosures, run-control/safety warnings, release tag warnings/ref names, HTTPS-only model price sources, placeholder source/origin/image/GitHub App manifest host rejection, ready-gated deployment examples, admin snapshot origins, manifest conversion help, deployment plan origins, and reserved bot host examples.

#281-#291 require release evidence for container publishing, worker dispatch credentials, public dashboard disclosure, admin dashboard auth, runtime dispatch, runtime release notes, and refresh evidence coverage roadmap docs. #292-#294 make release tag planning check the remote, not just local tags, and add fixture coverage.

#295-#302 add checked compatibility policy, checked external evidence boundaries, PR evidence boundary prompts, repository ruleset guidance, release-sensitive contributor checks, private vulnerability intake readiness, security intake readiness docs, and CODEOWNERS governance. #303-#309 add checked broad community release gates, feed that status into operator workspace, release candidates, release notes drafts, publication checks, evidence flow docs, and hardened release notes community status checks. #303 introduced config/community-release-gates.json with 14 broad community-use gates and npm run community:gates.

7. Final Evidence Gates, Release Operations Maps, Budget Fanout, And Redaction

PRs: #310-#343.

#310-#333 finish the dogfood and production evidence web. The PRs validate self-dogfood config in readiness checks, add dispatch credential phases and installation IDs to deployment plans, add production deployment plan evidence, gate production cutover on deployment plans, add operator evidence for alert delivery, dashboard deployment, release tags, model pricing, security intake, repository rulesets, GitHub App posture, provider console readiness, IAM/secret custody, provider/IAM cutover, provider/IAM dogfood, dogfood handoff, dogfood model price coverage, ready-mode workspace input, and release-operations map coverage for dogfood, production, release gate commands, and mapped CLI args.

#334-#335 harden live review fanout and budget behavior. #334 reserves sibling job budgets inside a single webhook delivery so multi-kind/multi-model fanout cannot make each job evaluate against the same starting spend snapshot. #335 hardens default review job fanout.

#336-#343 are the last privacy and artifact-boundary hardening PRs before production dogfood: sanitize OpenAI incomplete response details, redact dry-run SQL parameter comments, add shared AWS diagnostic redaction, centralize public renderer redaction, add redaction behavior fixtures, detect bearer tokens in public artifacts, redact sensitive header values, and reject unsafe GitHub Actions token output. #343 directly defends GITHUB_OUTPUT by rejecting empty or CR/LF-containing GitHub App installation tokens before outputting them.

8. Live Production Dogfood And Hotfixes

PRs: #344-#351.

These are the live dogfood and production-readiness tail. #344 adds REVIEWBOT_ALLOWED_PR_AUTHORS, an admission gate for PR-author allowlisting. #345 exposes average cost in usage aggregates. #346 enables 6529bot self-dogfood reviews. #347 updates the roadmap for production dogfood watch.

The final four are production fixes made on 2026-06-15 UTC. #348 hotfixes production Data API and Opus worker requests: it adds a Node-native signed RDS Data API fallback for App Runner images without the AWS CLI and omits unsupported temperature settings for Claude Opus 4.8/4.7. The PR notes that production webhook redelivery successfully admitted budget/run-control, wrote ledger rows, and dispatched the central workflow after deploying this image. #349 adds a worker output diagnostics switch. #350 moves review comment posting through issue comments. #351 switches posting to the GitHub REST issue-comments endpoint after gh issue comment used GraphQL addComment and hit Resource not accessible by integration for the GitHub App token, while keeping permissions at issues:write and pull_requests:read.

Complete Coverage Map

Every returned PR is merged and is covered by one contiguous phase above:

  • Phase 1: #1 and #4-#22.
  • Phase 2: #23-#87.
  • Phase 3: #88-#151.
  • Phase 4: #152-#216.
  • Phase 5: #217-#256.
  • Phase 6: #257-#309.
  • Phase 7: #310-#343.
  • Phase 8: #344-#351.

In short: 6529reviewbot went from a freshly extracted public repo to a production-dogfooding central GitHub App in this window, with the overwhelming majority of PRs used to turn deployment, budget, redaction, release, dashboard, alerting, dogfood, and community-readiness assumptions into explicit checked contracts.