Skip to content

[pull] master from unlock-protocol:master#116

Merged
pull[bot] merged 1 commit intosearchableguy:masterfrom
unlock-protocol:master
Mar 13, 2026
Merged

[pull] master from unlock-protocol:master#116
pull[bot] merged 1 commit intosearchableguy:masterfrom
unlock-protocol:master

Conversation

@pull
Copy link
Copy Markdown

@pull pull bot commented Mar 13, 2026

See Commits and Changes for more details.


Created by pull[bot] (v2.0.0-alpha.4)

Can you help keep this open source service alive? 💖 Please sponsor : )

* fix: update wrangler secret bulk command syntax

The secret:bulk subcommand was removed in newer wrangler versions.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* chore: ignore .worktrees directory

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* docs: add DAO governance app design spec

Spec for replacing Tally with a self-hosted governance UI at
vote.unlock-protocol.com — covers architecture, subgraph extensions,
pages, and testing strategy.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* docs: update governance app spec with reviewer fixes

- Add snapshotTimestamp and quorum to Proposal entity
- Add DelegateSummary entity for leaderboard
- Fix proposal state RPC fallback path
- Add quorum display to list and detail pages
- Clarify Privy/nodejs runtime (not edge)
- Fix advanced proposal JSON format (inline ABI only)
- Fix testing section (matchstick-as for subgraph, Vitest for app)
- Add contract addresses and deployment notes

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* docs: add UPGovernor Base mainnet address to governance app spec

Address confirmed from packages/networks/src/networks/base.ts and
docs/docs/governance/unlock-dao/unlock-dao.md.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* docs: add proposal lifecycle actions to governance app spec

Add queue and execute buttons, lifecycle timeline stepper, outcome
badges, and timelock countdown to the proposal detail page spec.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* docs: add missing pages to governance app spec

Add DAO home (/), proposals list (/proposals), delegates leaderboard
(/delegates), treasury (/treasury), and personal delegation (/delegate)
pages to match full Tally feature parity.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* docs: remove USD values from treasury page spec

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* docs: address Copilot review feedback on governance app spec

- Add Expired state (6) to proposal state enum and RPC fallback mapping
- Fix snapshot/voteStart field naming: rename snapshotTimestamp to
  voteStartTimestamp to match ProposalCreated event fields and avoid
  double-applying votingDelay in timeline computation
- Clarify address(0) delegation semantics: address(0) = never delegated
  (no voting power), not self-delegated; self-delegation = delegatedTo == id

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* docs: address PR review comments on governance app spec

- Narrow degraded-mode fallback: specify per-page behaviour (proposals/[id],
  treasury, /delegate work via RPC; list pages show error state)
- Clarify treasury as curated known-token allowlist, not full inventory;
  add block explorer link for unknown holdings
- Add proposalsVoted to DelegateSummary schema (indexed on VoteCast);
  replace unspecified participation rate with raw count on leaderboard
- Add Queued to proposals filter tab list
- Drop total token holders from home stats (no aggregate in schema)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* docs: fix proposal state and etaSeconds in governance spec

- Remove stored state field from Proposal entity; document client-side
  state derivation from timestamps and vote counts to avoid stale data
- Replace queuedAt with etaSeconds (from ProposalQueued event) for
  accurate execute countdown; queuedAt is not sufficient since eligibility
  is based on etaSeconds not queue tx time + delay

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* docs: address second round of PR review comments

- Remove Expired state: UPGovernor uses GovernorTimelockControlUpgradeable
  which does not return Expired; quorum failure maps to Defeated. Remove
  from filters, badges, timeline, and RPC enum (kept as defensive no-op).
- Specify simple mode ABI source: known protocol contracts from
  @unlock-protocol/contracts (bundled ABIs) plus custom contract option
  requiring inline ABI paste. Scope MVP to known-contract dropdown.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* docs: fix quorum counting and proposalsVoted in governance spec

- Fix state derivation quorum check to use forVotes + abstainVotes >= quorum
  (GovernorCountingSimple COUNTING_MODE is "quorum=for,abstain"); victory
  check remains forVotes > againstVotes; both must pass for Succeeded
- Update quorum indicator on list and detail pages to show
  forVotes + abstainVotes vs threshold accordingly
- Increment proposalsVoted on both VoteCast and VoteCastWithParams

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

---------

Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
@pull pull bot locked and limited conversation to collaborators Mar 13, 2026
@pull pull bot added the ⤵️ pull label Mar 13, 2026
@pull pull bot merged commit 1133625 into searchableguy:master Mar 13, 2026
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant