Redesign shared frontend UX primitives #434

Merged
PlasticDigits merged 4 commits from cursor/frontend-shared-ux-primitives-86f7 into main 2026-06-07 07:23:14 +00:00
PlasticDigits commented 2026-06-06 15:11:23 +00:00 (Migrated from gitlab.com)

Summary

  • Redesigns shared frontend UX primitives for GitLab #294: modals, wallet profile states, address rows, chain mismatch gates, status/empty states, amount display chrome, and the indexer status bar now align with the approved cyberminimalist glass system.
  • Keeps behavior presentation-only: no indexer/API contract changes, no route changes, and no wallet write semantics changed.
  • Adds SharedUxPrimitives.test.tsx, refreshes the /arena Playwright selector for the current production buy surface, and documents the #294 design/invariant/manual-QA contract.

Related to #294. Leave issue open until maintainer acceptance.

Layers touched

  • contracts (contracts/)
  • indexer (indexer/)
  • frontend (frontend/)
  • scripts / devops (scripts/, .cursor/, CI)
  • docs only (docs updated alongside frontend behavior)
  • bots (bots/)

Design review notes

  • User goals: quickly identify participants/contracts, understand whether data is loading/offline/empty, open wallet profiles or explorer links intentionally, and recover from wrong-chain writes before signing.
  • Primary decisions/actions surfaced: switch chain, open profile, open explorer, inspect indexed buy detail, read wallet profile stats, and distinguish indexer offline/unset from true zero data.
  • Time-sensitive actions: chain switching before buy/claim/donate writes; buy detail inspection around timer extensions; indexer connectivity during live Arena monitoring.
  • Stale assumptions removed: light arcade modal/status styling, verbose chain-gate copy, inconsistent empty-state treatment, and older mixed address/status chrome that did not match #290-#293 production surfaces.
  • Brand/aesthetic: uses existing Yield Omega cyberminimalist tokens and existing blockie/token/icon treatment; no new character art or stale TimeCurve/sale-end framing.

Acceptance checklist

Acceptance item Command or manual step Result
Shared primitives look native across /arena, /referrals, and other routes cd frontend && npm run typecheck && npm run lint && npm test; CI=1 npm run test:e2e -- --workers=5 e2e/arena.spec.ts e2e/referrals-surface.spec.ts PASS
Wallet profile modal sections remain readable and functional WalletProfileModalSections.test.tsx in npm test; shared placeholder markup in WalletProfileModalSections.tsx PASS
Address display pattern is consistent SharedUxPrimitives.test.tsx asserts blockie + visible last-six label and profile action behavior PASS
Chain mismatch gates remain visible and actionable chainMismatchWriteGuard.test.ts PASS; bash scripts/verify-rabby-chain-mismatch.sh attempted twice FAIL - Rabby browser context closed during chain switch before overlay assertion
Component tests and relevant E2E specs pass cd frontend && npm run typecheck && npm run lint && npm test; focused Playwright with 5 workers PASS
Docs/invariants/QA guidance updated bash scripts/check-doc-anchors.sh; manual review of design, arena views, invariants, manual QA PASS

Verification details

Layer Command Result
frontend cd frontend && npm run typecheck && npm run lint && npm test PASS - typecheck OK; lint 0 errors / 9 existing warnings; Vitest 107 files / 550 tests passed
docs bash scripts/check-doc-anchors.sh PASS - 55 anchors, no broken links
frontend build for Rabby bash scripts/qa/build-frontend-for-rabby.sh PASS - production build without mock wallet completed
stack smoke cast block-number --rpc-url http://127.0.0.1:8545; curl -sf http://127.0.0.1:3100/v1/status PASS - Anvil block 3; indexer status schema 2.6.0
Playwright Chromium CI=1 npm run test:e2e -- --workers=5 e2e/arena.spec.ts e2e/referrals-surface.spec.ts PASS - 10 passed
Rabby wrong-network bash scripts/verify-rabby-chain-mismatch.sh (twice); direct eth_requestAccounts Rabby probe FAIL - page.evaluate: Target page, context or browser has been closed at requestSwitchChain; direct approval probe also closed context

Visual/design verification checklist for third parties

  • /arena: buy panel, live-buy rows, podium rows, amount displays, empty/loading states, and indexer status use dark tactical glass, compact copy, and no stale sale/redemption framing.
  • All-buys and buy-detail modals: dark glass shell, compact title hierarchy, readable detail rows, wallet profile actions still work.
  • Wallet profile: all sections remain readable; empty states use shared placeholder; explorer link is secondary.
  • Address treatment: blockie + last six hex digits by default; participant rows open profile where wired; contract/vault/referral rows keep explorer links.
  • Wrong-network gate: overlay blocks write panels and switch-to-target-chain remains reachable. Blocked for full sign-off in this agent run by Rabby context closure; re-run on a stable Rabby profile/desktop.
  • /referrals: register gate, leaderboard address rows, empty states, and status messages match shared primitive styling without changing explorer-link behavior.

Accessibility / responsive notes

  • StatusMessage and EmptyDataPlaceholder now forward ARIA/test attributes cleanly.
  • Empty placeholders remain phrasing-safe for paragraph contexts.
  • Focusable profile buttons, explorer links, modal close controls, and chain switch controls retain existing keyboard focus behavior.
  • Focused Playwright covered /arena and /referrals; manual QA should still cover 390x844 and desktop widths for visual sign-off.

Blockers

  • Full Rabby wrong-network acceptance is blocked in this VM: Chromium/Rabby closes the browser context during wallet_switchEthereumChain / account approval. The app, Anvil, indexer, and non-mock preview were healthy; this appears isolated to the Rabby extension/profile automation path.

Licensing and compliance

  • New or changed original files remain AGPL-3.0.
  • No incompatible third-party code added.
  • Network-facing source obligations considered; this is frontend/docs only.

Notes for reviewers

Invariant added: INV-FRONTEND-294-SHARED-PRIMITIVES.

Author checklist

  • Diff is scoped to GitLab #294.
  • Arena v2 guardrails respected.
  • Dev keys are Anvil-only; no secrets committed.
## Summary - Redesigns shared frontend UX primitives for GitLab #294: modals, wallet profile states, address rows, chain mismatch gates, status/empty states, amount display chrome, and the indexer status bar now align with the approved cyberminimalist glass system. - Keeps behavior presentation-only: no indexer/API contract changes, no route changes, and no wallet write semantics changed. - Adds `SharedUxPrimitives.test.tsx`, refreshes the `/arena` Playwright selector for the current production buy surface, and documents the #294 design/invariant/manual-QA contract. ## Related issues Related to #294. Leave issue open until maintainer acceptance. ## Layers touched - [ ] **contracts** (`contracts/`) - [ ] **indexer** (`indexer/`) - [x] **frontend** (`frontend/`) - [ ] **scripts / devops** (`scripts/`, `.cursor/`, CI) - [x] **docs only** (docs updated alongside frontend behavior) - [ ] **bots** (`bots/`) ## Design review notes - User goals: quickly identify participants/contracts, understand whether data is loading/offline/empty, open wallet profiles or explorer links intentionally, and recover from wrong-chain writes before signing. - Primary decisions/actions surfaced: switch chain, open profile, open explorer, inspect indexed buy detail, read wallet profile stats, and distinguish indexer offline/unset from true zero data. - Time-sensitive actions: chain switching before buy/claim/donate writes; buy detail inspection around timer extensions; indexer connectivity during live Arena monitoring. - Stale assumptions removed: light arcade modal/status styling, verbose chain-gate copy, inconsistent empty-state treatment, and older mixed address/status chrome that did not match #290-#293 production surfaces. - Brand/aesthetic: uses existing Yield Omega cyberminimalist tokens and existing blockie/token/icon treatment; no new character art or stale TimeCurve/sale-end framing. ## Acceptance checklist | Acceptance item | Command or manual step | Result | |---|---|---| | Shared primitives look native across `/arena`, `/referrals`, and other routes | `cd frontend && npm run typecheck && npm run lint && npm test`; `CI=1 npm run test:e2e -- --workers=5 e2e/arena.spec.ts e2e/referrals-surface.spec.ts` | PASS | | Wallet profile modal sections remain readable and functional | `WalletProfileModalSections.test.tsx` in `npm test`; shared placeholder markup in `WalletProfileModalSections.tsx` | PASS | | Address display pattern is consistent | `SharedUxPrimitives.test.tsx` asserts blockie + visible last-six label and profile action behavior | PASS | | Chain mismatch gates remain visible and actionable | `chainMismatchWriteGuard.test.ts` PASS; `bash scripts/verify-rabby-chain-mismatch.sh` attempted twice | FAIL - Rabby browser context closed during chain switch before overlay assertion | | Component tests and relevant E2E specs pass | `cd frontend && npm run typecheck && npm run lint && npm test`; focused Playwright with 5 workers | PASS | | Docs/invariants/QA guidance updated | `bash scripts/check-doc-anchors.sh`; manual review of design, arena views, invariants, manual QA | PASS | ## Verification details | Layer | Command | Result | |-------|---------|--------| | frontend | `cd frontend && npm run typecheck && npm run lint && npm test` | PASS - typecheck OK; lint 0 errors / 9 existing warnings; Vitest 107 files / 550 tests passed | | docs | `bash scripts/check-doc-anchors.sh` | PASS - 55 anchors, no broken links | | frontend build for Rabby | `bash scripts/qa/build-frontend-for-rabby.sh` | PASS - production build without mock wallet completed | | stack smoke | `cast block-number --rpc-url http://127.0.0.1:8545`; `curl -sf http://127.0.0.1:3100/v1/status` | PASS - Anvil block 3; indexer status schema 2.6.0 | | Playwright Chromium | `CI=1 npm run test:e2e -- --workers=5 e2e/arena.spec.ts e2e/referrals-surface.spec.ts` | PASS - 10 passed | | Rabby wrong-network | `bash scripts/verify-rabby-chain-mismatch.sh` (twice); direct `eth_requestAccounts` Rabby probe | FAIL - `page.evaluate: Target page, context or browser has been closed` at `requestSwitchChain`; direct approval probe also closed context | ## Visual/design verification checklist for third parties - `/arena`: buy panel, live-buy rows, podium rows, amount displays, empty/loading states, and indexer status use dark tactical glass, compact copy, and no stale sale/redemption framing. - All-buys and buy-detail modals: dark glass shell, compact title hierarchy, readable detail rows, wallet profile actions still work. - Wallet profile: all sections remain readable; empty states use shared placeholder; explorer link is secondary. - Address treatment: blockie + last six hex digits by default; participant rows open profile where wired; contract/vault/referral rows keep explorer links. - Wrong-network gate: overlay blocks write panels and `switch-to-target-chain` remains reachable. **Blocked for full sign-off in this agent run by Rabby context closure; re-run on a stable Rabby profile/desktop.** - `/referrals`: register gate, leaderboard address rows, empty states, and status messages match shared primitive styling without changing explorer-link behavior. ## Accessibility / responsive notes - `StatusMessage` and `EmptyDataPlaceholder` now forward ARIA/test attributes cleanly. - Empty placeholders remain phrasing-safe for paragraph contexts. - Focusable profile buttons, explorer links, modal close controls, and chain switch controls retain existing keyboard focus behavior. - Focused Playwright covered `/arena` and `/referrals`; manual QA should still cover 390x844 and desktop widths for visual sign-off. ## Blockers - Full Rabby wrong-network acceptance is blocked in this VM: Chromium/Rabby closes the browser context during `wallet_switchEthereumChain` / account approval. The app, Anvil, indexer, and non-mock preview were healthy; this appears isolated to the Rabby extension/profile automation path. ## Licensing and compliance - [x] New or changed original files remain AGPL-3.0. - [x] No incompatible third-party code added. - [x] Network-facing source obligations considered; this is frontend/docs only. ## Notes for reviewers Invariant added: `INV-FRONTEND-294-SHARED-PRIMITIVES`. ## Author checklist - [x] Diff is scoped to GitLab #294. - [x] Arena v2 guardrails respected. - [x] Dev keys are Anvil-only; no secrets committed.
ghost1 commented 2026-06-06 15:12:01 +00:00 (Migrated from gitlab.com)

added 1 commit

  • 1e1d4cfa - Allow data attributes on status messages

Compare with previous version

added 1 commit <ul><li>1e1d4cfa - Allow data attributes on status messages</li></ul> [Compare with previous version](/PlasticDigits/yieldomega/-/merge_requests/64/diffs?diff_id=1838054809&start_sha=d7e23c91bef34d6819d0c9d55c5b1587bbde4880)
ghost1 commented 2026-06-06 15:12:45 +00:00 (Migrated from gitlab.com)

added 1 commit

  • d0a2ee92 - Refine shared primitive address test

Compare with previous version

added 1 commit <ul><li>d0a2ee92 - Refine shared primitive address test</li></ul> [Compare with previous version](/PlasticDigits/yieldomega/-/merge_requests/64/diffs?diff_id=1838055712&start_sha=1e1d4cfafd3e012b21f2928f6fbcc76fec3ddc75)
ghost1 commented 2026-06-06 15:16:14 +00:00 (Migrated from gitlab.com)

Security review

Commit reviewed: d0a2ee9206c13217a0a947642551404d32a57735
Scope: Frontend presentation-only UX primitive redesign (StatusMessage, EmptyDataPlaceholder, chain-mismatch gate copy, indexer status bar, wallet profile empty/loading states, shared CSS). Docs/tests only outside frontend/.

Outcome: FINDINGS: 0 medium+

Summary: Security review: no medium+ findings on this diff.

Traced attacker-controlled input paths for the modified components:

  • StatusMessage / EmptyDataPlaceholder now forward HTMLAttributes (data-*, role, etc.) via ...rest. No caller spreads untrusted props; dynamic copy still flows only through React-escaped children. No dangerouslySetInnerHTML usage in the repo.
  • ChainMismatchWriteBarrier renders configuredChain() name/id from build-time VITE_* env — not runtime user input.
  • IndexerStatusBar displays indexer schema_version / block in text nodes (React-escaped); copy-only change.
  • CSS changes are static presentation tokens; no new dependencies, routes, indexer/API contracts, or wallet write semantics.

Inline threads: none (no medium+ findings).

## Security review **Commit reviewed:** `d0a2ee9206c13217a0a947642551404d32a57735` **Scope:** Frontend presentation-only UX primitive redesign (`StatusMessage`, `EmptyDataPlaceholder`, chain-mismatch gate copy, indexer status bar, wallet profile empty/loading states, shared CSS). Docs/tests only outside `frontend/`. **Outcome:** `FINDINGS: 0` medium+ **Summary:** Security review: no medium+ findings on this diff. Traced attacker-controlled input paths for the modified components: - `StatusMessage` / `EmptyDataPlaceholder` now forward `HTMLAttributes` (`data-*`, `role`, etc.) via `...rest`. No caller spreads untrusted props; dynamic copy still flows only through React-escaped `children`. No `dangerouslySetInnerHTML` usage in the repo. - `ChainMismatchWriteBarrier` renders `configuredChain()` name/id from build-time `VITE_*` env — not runtime user input. - `IndexerStatusBar` displays indexer `schema_version` / block in text nodes (React-escaped); copy-only change. - CSS changes are static presentation tokens; no new dependencies, routes, indexer/API contracts, or wallet write semantics. **Inline threads:** none (no medium+ findings).
ghost1 commented 2026-06-06 15:23:29 +00:00 (Migrated from gitlab.com)

added 1 commit

  • 3bcd1873 - Update arena E2E buy surface assertion

Compare with previous version

added 1 commit <ul><li>3bcd1873 - Update arena E2E buy surface assertion</li></ul> [Compare with previous version](/PlasticDigits/yieldomega/-/merge_requests/64/diffs?diff_id=1838064835&start_sha=d0a2ee9206c13217a0a947642551404d32a57735)
ghost1 commented 2026-06-06 15:23:50 +00:00 (Migrated from gitlab.com)

Security review

Commit reviewed: 3bcd1873ff0a1a58462e8f2cab2f97a07b782b05
Scope: Full MR diff vs main — shared frontend UX primitives (StatusMessage, EmptyDataPlaceholder, chain-mismatch gate, indexer status bar, wallet profile states, shared CSS, docs/tests). Incremental delta since prior review (d0a2ee9): frontend/e2e/arena.spec.ts assertion update only.

Outcome: FINDINGS: 0 medium+

Summary: Security review: no medium+ findings on this diff.

Attacker-input tracing on modified runtime paths:

  • StatusMessage / EmptyDataPlaceholder forward HTMLAttributes via ...rest (commit 1e1d4cf). Call sites pass only static data-testid / role / className; dynamic copy (indexer notes, validation errors, API error strings) flows exclusively through React-escaped children. No dangerouslySetInnerHTML in the frontend tree.
  • ChainMismatchWriteBarrier title strings interpolate configuredChain() name/id from build-time VITE_* env — not runtime user or indexer input. overlayBody is unused by callers.
  • IndexerStatusBar renders indexer schema_version / block inside a text node (<span>{line}</span>); copy-only styling change.
  • CSS edits are static design tokens and asset paths; no new runtime dependencies, routes, wallet write semantics, or indexer/API contract changes.
  • New commit 3bcd187 adjusts Playwright visibility assertions only — no production code.

Inline threads: none (no medium+ findings).

## Security review **Commit reviewed:** `3bcd1873ff0a1a58462e8f2cab2f97a07b782b05` **Scope:** Full MR diff vs `main` — shared frontend UX primitives (`StatusMessage`, `EmptyDataPlaceholder`, chain-mismatch gate, indexer status bar, wallet profile states, shared CSS, docs/tests). Incremental delta since prior review (`d0a2ee9`): `frontend/e2e/arena.spec.ts` assertion update only. **Outcome:** `FINDINGS: 0` medium+ **Summary:** Security review: no medium+ findings on this diff. Attacker-input tracing on modified runtime paths: - `StatusMessage` / `EmptyDataPlaceholder` forward `HTMLAttributes` via `...rest` (commit `1e1d4cf`). Call sites pass only static `data-testid` / `role` / `className`; dynamic copy (indexer notes, validation errors, API error strings) flows exclusively through React-escaped `children`. No `dangerouslySetInnerHTML` in the frontend tree. - `ChainMismatchWriteBarrier` `title` strings interpolate `configuredChain()` name/id from build-time `VITE_*` env — not runtime user or indexer input. `overlayBody` is unused by callers. - `IndexerStatusBar` renders indexer `schema_version` / block inside a text node (`<span>{line}</span>`); copy-only styling change. - CSS edits are static design tokens and asset paths; no new runtime dependencies, routes, wallet write semantics, or indexer/API contract changes. - New commit `3bcd187` adjusts Playwright visibility assertions only — no production code. **Inline threads:** none (no medium+ findings).
ghost1 commented 2026-06-06 15:24:04 +00:00 (Migrated from gitlab.com)

Security review

Commit reviewed: 3bcd1873ff0a1a58462e8f2cab2f97a07b782b05
Scope: Frontend presentation-only UX primitive redesign (StatusMessage, EmptyDataPlaceholder, chain-mismatch gate copy, indexer status bar, wallet profile empty/loading states, shared CSS), plus E2E assertion update in frontend/e2e/arena.spec.ts. Docs/tests only outside runtime behavior.

Outcome: FINDINGS: 0 medium+

Summary: Security review: no medium+ findings on this diff.

Re-reviewed since prior pass on d0a2ee92 (new commit 3bcd1873 adjusts Playwright selectors only; no new runtime sinks).

Traced attacker-controlled input paths for modified components:

  • StatusMessage / EmptyDataPlaceholder forward HTMLAttributes (data-*, role, etc.) via ...rest. No caller spreads untrusted props; dynamic copy still flows only through React-escaped children. No dangerouslySetInnerHTML usage in the frontend.
  • ChainMismatchWriteBarrier renders configuredChain() name/id from build-time VITE_* env — not runtime user input; React escapes attribute/text interpolation.
  • IndexerStatusBar displays indexer schema_version / block in text nodes (React-escaped); copy-only change.
  • CSS changes are static presentation tokens; no new dependencies, routes, indexer/API contracts, auth boundaries, or wallet write semantics.

Inline threads: none (no medium+ findings).

## Security review **Commit reviewed:** `3bcd1873ff0a1a58462e8f2cab2f97a07b782b05` **Scope:** Frontend presentation-only UX primitive redesign (`StatusMessage`, `EmptyDataPlaceholder`, chain-mismatch gate copy, indexer status bar, wallet profile empty/loading states, shared CSS), plus E2E assertion update in `frontend/e2e/arena.spec.ts`. Docs/tests only outside runtime behavior. **Outcome:** `FINDINGS: 0` medium+ **Summary:** Security review: no medium+ findings on this diff. Re-reviewed since prior pass on `d0a2ee92` (new commit `3bcd1873` adjusts Playwright selectors only; no new runtime sinks). Traced attacker-controlled input paths for modified components: - `StatusMessage` / `EmptyDataPlaceholder` forward `HTMLAttributes` (`data-*`, `role`, etc.) via `...rest`. No caller spreads untrusted props; dynamic copy still flows only through React-escaped `children`. No `dangerouslySetInnerHTML` usage in the frontend. - `ChainMismatchWriteBarrier` renders `configuredChain()` name/id from build-time `VITE_*` env — not runtime user input; React escapes attribute/text interpolation. - `IndexerStatusBar` displays indexer `schema_version` / block in text nodes (React-escaped); copy-only change. - CSS changes are static presentation tokens; no new dependencies, routes, indexer/API contracts, auth boundaries, or wallet write semantics. **Inline threads:** none (no medium+ findings).
PlasticDigits commented 2026-06-06 15:25:05 +00:00 (Migrated from gitlab.com)

changed the description

changed the description
ghost1 commented 2026-06-06 15:26:41 +00:00 (Migrated from gitlab.com)

Security review

Commit reviewed: 3bcd1873ff0a1a58462e8f2cab2f97a07b782b05
Scope: MR !434 full diff vs main — shared frontend UX primitives (StatusMessage, EmptyDataPlaceholder, ChainMismatchWriteBarrier, IndexerStatusBar, WalletProfileModalSections, shared CSS in index.css), docs/invariants/QA, SharedUxPrimitives.test.tsx, and frontend/e2e/arena.spec.ts selector update.

Outcome: FINDINGS: 0 medium+

Summary: Security review: no medium+ findings on this diff.

Re-reviewed prior security threads on this MR; none reported medium+ issues and all still hold on the current SHA.

Attacker-input tracing on modified runtime paths:

  • StatusMessage / EmptyDataPlaceholder: widen props to forward HTMLAttributes via ...rest (data-*, role, etc.). Call sites pass static developer props only; dynamic strings (indexer errors, validation copy) remain React-escaped children. No dangerouslySetInnerHTML introduced; no caller spreads untrusted attribute objects.
  • ChainMismatchWriteBarrier: configuredChain() name/id come from build-time VITE_CHAIN_ID / VITE_CHAIN_NAME — not end-user runtime input. JSX text/title interpolation is React-escaped.
  • IndexerStatusBar: indexer schema_version / block values are rendered as plain text nodes (React-escaped); presentation copy change only.
  • index.css: static design tokens and glass styling; no dynamic url(), content:, or user-controlled CSS variables.
  • No changes to authn/authz, wallet write semantics, indexer/API contracts, routes, dependencies, or secret handling.

Inline threads: none (no medium+ findings).

## Security review **Commit reviewed:** `3bcd1873ff0a1a58462e8f2cab2f97a07b782b05` **Scope:** MR !434 full diff vs `main` — shared frontend UX primitives (`StatusMessage`, `EmptyDataPlaceholder`, `ChainMismatchWriteBarrier`, `IndexerStatusBar`, `WalletProfileModalSections`, shared CSS in `index.css`), docs/invariants/QA, `SharedUxPrimitives.test.tsx`, and `frontend/e2e/arena.spec.ts` selector update. **Outcome:** `FINDINGS: 0` medium+ **Summary:** Security review: no medium+ findings on this diff. Re-reviewed prior security threads on this MR; none reported medium+ issues and all still hold on the current SHA. Attacker-input tracing on modified runtime paths: - **`StatusMessage` / `EmptyDataPlaceholder`:** widen props to forward `HTMLAttributes` via `...rest` (`data-*`, `role`, etc.). Call sites pass static developer props only; dynamic strings (indexer errors, validation copy) remain React-escaped `children`. No `dangerouslySetInnerHTML` introduced; no caller spreads untrusted attribute objects. - **`ChainMismatchWriteBarrier`:** `configuredChain()` name/id come from build-time `VITE_CHAIN_ID` / `VITE_CHAIN_NAME` — not end-user runtime input. JSX text/`title` interpolation is React-escaped. - **`IndexerStatusBar`:** indexer `schema_version` / block values are rendered as plain text nodes (React-escaped); presentation copy change only. - **`index.css`:** static design tokens and glass styling; no dynamic `url()`, `content:`, or user-controlled CSS variables. - **No changes** to authn/authz, wallet write semantics, indexer/API contracts, routes, dependencies, or secret handling. **Inline threads:** none (no medium+ findings).
PlasticDigits commented 2026-06-07 07:23:14 +00:00 (Migrated from gitlab.com)

mentioned in commit dd2be31eb8

mentioned in commit dd2be31eb8b53272545be9a6e3c7cd6ef380a0fa
PlasticDigits (Migrated from gitlab.com) merged commit dd2be31eb8 into main 2026-06-07 07:23:14 +00:00
PlasticDigits commented 2026-06-08 08:45:13 +00:00 (Migrated from gitlab.com)

mentioned in commit 60a5232ff3

mentioned in commit 60a5232ff3d69a7439850f36834d0921cb62742a
Sign in to join this conversation.
No reviewers
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
code/yieldomega!434
No description provided.