plan(voting): implementation backlog for all 53 gaps in GAP_1791945837 #35
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Current codebase
Voting is a standalone offchain CL8Y advisory polling application: Terra Classic CW20 and BSC BEP-20 registered-wallet ledger, ADR-36/EIP-191 operator-voting API, and Legal-gated React dApp. Structured drafts, comments, author amendments, committee opening and frozen weights exist. The gap report reviewed
f8dbe93df953a78b17cb3304b717dcf84c4cd517; currente476a68da09645c2308cbf47b90211fcaffcb7afonly adds that report. Its local reproduction/source inspection does not establish current production exploitation, coverage, capacity or live-wallet readiness.Why this implementation is needed
Ledger replay/registration/continuity defects can misstate voting power, and nontransactional revisions can freeze unreviewed content. CORS and timestamp defects compromise working amendments and bounded signatures. Scheduling and multi-editor drafting are requested additions; closing/results, stable wallet identity, recovery/accessibility, security, CI and operational evidence complete a trustworthy product. This tracker bundles related findings into 17 implementation issues and accounts for every GAP-001–053. Existing historical issues #1–17 describe prior functionality; these workstreams address the inspected remaining gaps rather than claiming that existing implementations are absent.
Relevant files
Feature/fix list and coverage
Numbers below are source GAP IDs; workstream keys identify dependencies, not Forgejo issue numbers. GAP-040 is shared adapter/accounting regression work and is intentionally linked twice.
Recommended direction and delivery gates
Constraints and guardrails
No new contracts, archive node, executable treasury integration or identity merging; BSC remains core. Preserve raw integer CL8Y accounting, restricted API DB role, proven DEX Terra/Bridge EVM connectors, required early WalletConnect pairing hook, Legal fail-closed transactional UI and no browser BSC balance RPC/seeds/admin credentials. Snapshot is taken once at actual opening, not at draft creation or a backdated scheduled time.
Record conservative policy defaults: scheduled means as soon as approved or at/after the requested date once approved; committee feasibility approval persists, and relevant edits invalidate it. Content remains editable until actual opening. Raw public advisory tallies and immutable address ballots remain defaults; do not silently add quorum/pass labels, secret-ballot claims, roll pruning, vote changes/delegation or execution powers. Optional future decisions in GAP-045 are explicitly documented/deferred in 10. Update affected docs/skills deliberately where scheduling/editor permissions extend their old constraints. Agents own decisions, review/testing and factual acceptance, without human sign-off chores or invented evidence.
Acceptance criteria
Test plan: supported paths, failure paths and concurrency
Each child issue defines its exact unit/API/DB/browser/failure matrix. Across the backlog, exercise real HTTP adapters → ingest → isolated DB, complete ADR-36 and EIP-191 signed lifecycles, genuine production middleware on a second origin, installed Legal SDK and production-like browser builds. Include registration boundaries/replay, forks/gaps, concurrent edits/approval/quotas, duplicate delivery, scheduling restart/role revocation, close boundaries, account/route races, API/offline recovery, keyboard/mobile/CSP and fresh/upgrade/restore paths. Keep deterministic mock fixtures and real-wallet staging evidence separately labeled. Missing guarded integration DB must fail required jobs before connecting or destroying anything.
Test plan: attack, hack and abuse vectors
Use isolated fixtures to test forged/wrong-chain/provider events, replay and nonce/purpose confusion, stale revision privilege races, integer/timestamp extremes, shadow-table/definer escalation, direct immutable-table tampering, unsafe test DB URLs, XSS/entity/HTML variants, forwarded-header/CORS/rate-limit abuse, local identity/terms spoofing, scheduler floods, secret-bearing errors/build layers/caches, supply-chain/CI tampering and resource exhaustion. Verify reject/rollback/no power creation, no leaked secrets and bounded resource use; do not attack live services or use production data/keys.
Verification and completion criteria
For intake, read every created issue back and compare exact title/body, linked dependencies, 001–053 coverage and required sections against local drafts. Implementation completion requires commit/toolchain-specific green Rust unit plus guarded Postgres tests, frontend unit/production build/relevant full-stack browsers, secret/advisory scans, and relevant fuzz/concurrency/a11y/load/migration/permission/restore evidence. Explicitly report absent real-device/live checks. This tracker closes only after required workstreams' acceptance evidence is checked; optional deferred policy features need documentation rather than fabricated implementation claims.