Skip to content

Degov original#4

Merged
Sigri44 merged 143 commits into
mainfrom
degov-original
Jun 10, 2026
Merged

Degov original#4
Sigri44 merged 143 commits into
mainfrom
degov-original

Conversation

@Sigri44

@Sigri44 Sigri44 commented Jun 10, 2026

Copy link
Copy Markdown
Member

No description provided.

fewensa and others added 30 commits April 16, 2026 14:44
* fix(indexer): redact rpc urls in logs

* fix(indexer): harden rpc url redaction edge cases
…ory (ringecosystem#699)

Bumps the npm_and_yarn group with 1 update in the / directory: [dompurify](https://github.com/cure53/DOMPurify).


Updates `dompurify` from 3.3.2 to 3.4.0
- [Release notes](https://github.com/cure53/DOMPurify/releases)
- [Commits](cure53/DOMPurify@3.3.2...3.4.0)

---
updated-dependencies:
- dependency-name: dompurify
  dependency-version: 3.4.0
  dependency-type: direct:production
  dependency-group: npm_and_yarn
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* fix(web): move auth token to http-only cookie

* fix(web): hydrate cookie auth state
* Strengthen SIWE context validation

* Reject invalid SIWE time bounds

* Bind SIWE context to request origin
* Add SIWE login abuse controls

* Address SIWE abuse control review feedback

* Address SIWE review follow-ups
* Add cached ENS lookup fallback

* Address ENS lookup review feedback

* docs(web): document ENS environment variables

* feat(web): batch ENS record lookups
* fix(web): route ENS lookups through API

* fix(web): address ENS review feedback
* fix(web): prefer ENS RPC before DeGov API

* fix(web): batch DeGov ENS fallback
* chore(deps): consolidate dependabot upgrades

* chore(deps): include next dependabot upgrades
Bumps the npm_and_yarn group with 1 update in the / directory: [postcss](https://github.com/postcss/postcss).


Updates `postcss` from 8.5.6 to 8.5.10
- [Release notes](https://github.com/postcss/postcss/releases)
- [Changelog](https://github.com/postcss/postcss/blob/main/CHANGELOG.md)
- [Commits](postcss/postcss@8.5.6...8.5.10)

---
updated-dependencies:
- dependency-name: postcss
  dependency-version: 8.5.10
  dependency-type: direct:development
  dependency-group: npm_and_yarn
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
…dates (ringecosystem#720)

Bumps the npm_and_yarn group with 4 updates in the / directory: [@protobufjs/utf8](https://github.com/dcodeIO/protobuf.js), [axios](https://github.com/axios/axios), [fast-uri](https://github.com/fastify/fast-uri) and [hono](https://github.com/honojs/hono).


Updates `@protobufjs/utf8` from 1.1.0 to 1.1.1
- [Release notes](https://github.com/dcodeIO/protobuf.js/releases)
- [Changelog](https://github.com/protobufjs/protobuf.js/blob/master/CHANGELOG.md)
- [Commits](protobufjs/protobuf.js@protobufjs-cli-v1.1.0...fetch-v1.1.1)

Updates `axios` from 1.15.0 to 1.16.1
- [Release notes](https://github.com/axios/axios/releases)
- [Changelog](https://github.com/axios/axios/blob/v1.x/CHANGELOG.md)
- [Commits](axios/axios@v1.15.0...v1.16.1)

Updates `fast-uri` from 3.1.0 to 3.1.2
- [Release notes](https://github.com/fastify/fast-uri/releases)
- [Commits](fastify/fast-uri@v3.1.0...v3.1.2)

Updates `hono` from 4.12.12 to 4.12.19
- [Release notes](https://github.com/honojs/hono/releases)
- [Commits](honojs/hono@v4.12.12...v4.12.19)

---
updated-dependencies:
- dependency-name: "@protobufjs/utf8"
  dependency-version: 1.1.1
  dependency-type: indirect
  dependency-group: npm_and_yarn
- dependency-name: axios
  dependency-version: 1.16.1
  dependency-type: indirect
  dependency-group: npm_and_yarn
- dependency-name: fast-uri
  dependency-version: 3.1.2
  dependency-type: indirect
  dependency-group: npm_and_yarn
- dependency-name: hono
  dependency-version: 4.12.19
  dependency-type: indirect
  dependency-group: npm_and_yarn
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
…dates (ringecosystem#721)

Bumps the npm_and_yarn group with 2 updates in the / directory: [postcss](https://github.com/postcss/postcss) and [ws](https://github.com/websockets/ws).


Updates `postcss` from 8.5.11 to 8.5.12
- [Release notes](https://github.com/postcss/postcss/releases)
- [Changelog](https://github.com/postcss/postcss/blob/main/CHANGELOG.md)
- [Commits](postcss/postcss@8.5.11...8.5.12)

Updates `ws` from 7.5.10 to 8.20.1
- [Release notes](https://github.com/websockets/ws/releases)
- [Commits](websockets/ws@7.5.10...8.20.1)

---
updated-dependencies:
- dependency-name: postcss
  dependency-version: 8.5.12
  dependency-type: direct:development
  dependency-group: npm_and_yarn
- dependency-name: ws
  dependency-version: 8.20.1
  dependency-type: indirect
  dependency-group: npm_and_yarn
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* feat(indexer): add onchain token power mode

* fix(indexer): complete onchain power audit coverage

* fix(indexer): report audit power source

* fix(indexer): harden onchain reconcile consistency

* fix(indexer): correct onchain vote timepoints

* fix(indexer): sync onchain transfer delegation power

* fix(indexer): regenerate base schema migration

* fix(indexer): support compound current vote reads

* fix(indexer): fallback on legacy historical vote reverts

* feat(indexer): add onchain refresh task worker

* fix(indexer): preserve delegation relations with onchain refresh

* fix(indexer): defer onchain refresh during historical sync

* fix(indexer): allow database isolation override

* fix(indexer): keep default database isolation

* fix(indexer): preserve locked onchain refresh tasks

* fix(indexer): defer historical onchain task seeding

* fix(indexer): decouple onchain seed account loading

* fix(indexer): retry postgres serialization failures

* fix(indexer): restart processor after runtime failures

* chore(indexer): add onchain worker compose service

* fix(indexer): retry serializable database transactions

* fix(indexer): disable hot block tracking by default

* fix(indexer): serialize indexer write transactions

* fix(indexer): cast onchain task timestamps

* fix(indexer): reclaim stale onchain tasks

* perf(indexer): lookup reconcile tasks by id

* fix(indexer): normalize onchain refresh scope addresses

* fix(indexer): allow gateway override

* Revert "fix(indexer): allow gateway override"

This reverts commit 459335e.

* fix(indexer): fallback when archive block is unavailable

* fix(indexer): bound archive sync ranges

* fix(indexer): seed reconcile tasks during sync lag

* fix(indexer): bulk seed reconcile refresh tasks

* fix(indexer): requeue stale reconcile refresh tasks

* fix(indexer): process reconcile backlog before seeding

* fix(indexer): bound reconcile seed scanning

* fix(indexer): fallback multicall vote refresh

* chore(indexer): document onchain refresh compose env

* docs(indexer): explain onchain refresh env
## Summary
chore(indexer): remove sqd indexer shell

## Changes
- Remove the SQD/Subsquid processor source, handlers, migrations, scripts, tests, Docker image, service startup files, and accuracy audit workflow.
- Keep @degov/indexer as a Datalens placeholder package with reference ABI and schema artifacts only.
- Remove indexer services from compose and release image publishing, while preserving placeholder just recipes used by repository verification gates.

## Verification
- pnpm install --lockfile-only
- pnpm install --frozen-lockfile --ignore-scripts
- just indexer test-unit
- pnpm --filter @degov/indexer build
- pnpm --filter @degov/indexer test
- docker compose config
- pnpm --filter @degov/web build

metadata.yaml >
schema: conductor/commit/1
repository: degov
repository_url: https://github.com/ringecosystem/degov
issue: https://plane.kahub.in/endless/browse/HBX-242/
attempt: run-hbx-242-review-repair-1780337068851020405-attempt-1
authority: https://plane.kahub.in/endless/browse/HBX-242/
summary: 'fix(config): restore indexer start block'
related:
- checkpoint:hbx-242-restore-indexer-start-block
…er. (ringecosystem#730)

## Summary
Define Rust technical conventions for the Datalens-native DeGov indexer.

## Changes
- Add an authoritative conventions spec covering the Rust stack, Datalens integration boundary, logging, typed errors, ChainTool, database semantics, and implementation-plan requirements.
- Route the new conventions document from the docs index.
- Add an indexer package convention check that scans Rust workspace files for library tracing macro usage, raw anyhow library APIs, and ethers dependencies while allowing tracing output setup in binary entrypoints.

## Verification
- pnpm --filter @degov/indexer test
- pnpm --filter @degov/indexer build
- just web lint

metadata.yaml >
schema: conductor/commit/1
repository: degov
repository_url: https://github.com/ringecosystem/degov
issue: https://plane.kahub.in/endless/browse/HBX-270/
attempt: run-hbx-270-review-repair-1780363798957499108-attempt-1
authority: https://plane.kahub.in/endless/browse/HBX-270/
summary: Review repair for HBX-270.
related:
- checkpoint:hbx-270-review-repair-instrument-attribute
…tem#729)

## Summary
docs(spec): define datalens indexer architecture contract

## Changes
- Added docs/spec/datalens-indexer-architecture-contract.md to define the Rust-first external application indexer architecture, Datalens SDK boundary, service endpoint configuration, and secret handling.
- Documented that old SQD handlers are reference behavior only, not the new runtime structure.
- Covered transaction, checkpoint, retry, idempotency, projection/reconcile, TypeScript compatibility, and observability correctness requirements.

## Verification
- Ran whitespace checks for the changed docs files.
- Ran just web lint after installing dependencies from the existing lockfile; eslint exited 0 with one unrelated import-order warning.
- prettier is not installed in this workspace, so the formatter check is unavailable.

metadata.yaml >
schema: conductor/commit/1
repository: degov
repository_url: https://github.com/ringecosystem/degov
issue: https://plane.kahub.in/endless/browse/HBX-245/
attempt: run-hbx-245-review-repair-1780365684961033831-attempt-1
authority: https://plane.kahub.in/endless/browse/HBX-245/
summary: 'docs(spec): avoid local secret path in datalens contract'
related:
- checkpoint:hbx-245-review-repair-secret-reference
…#736)

## Summary
Define Datalens DAO compatibility and preflight policy

## Changes
- Added compatibility matrix and fail-fast policy for supported, degraded, and unsupported DAO/governor/token shapes.
- Added migration preflight runbook requiring compatibility validation before staging or production migration.
- Added compatibility preflight validator and tests for ERC20/ERC721 mismatch, governor method reverts, and degraded vote-read fallbacks.

## Verification
- pnpm --filter @degov/indexer test
- just web lint

metadata.yaml >
schema: conductor/commit/1
repository: degov
repository_url: https://github.com/ringecosystem/degov
issue: https://plane.kahub.in/endless/browse/HBX-269/
attempt: run-hbx-269-review-repair-1780367920484887989-attempt-1
authority: https://plane.kahub.in/endless/browse/HBX-269/
summary: Add isolated COUNTING_MODE degradation regression
related:
- checkpoint:hbx-269-counting-mode-isolated-regression
…resh initialization path. (ringecosystem#737)

## Summary
Define canonical Postgres schema ownership for the Datalens indexer fresh initialization path.

## Changes
- Add packages/indexer/schema/postgres.sql as the canonical fresh Postgres schema for checkpoint, reconcile, proposal, vote, delegation, contributor, metric, and timelock tables.
- Document reset/recreate database requirements and GraphQL compatibility ownership in the indexer README and docs router.
- Add schema ownership and Postgres initialization smoke scripts to package verification commands.

## Verification
- pnpm --filter @degov/indexer test
- DEGOV_INDEXER_DATABASE_URL=postgresql://postgres:postgres@localhost:32768/indexer pnpm --filter @degov/indexer run smoke:postgres-init
- just web lint
- git diff --check

metadata.yaml >
schema: conductor/commit/1
repository: degov
repository_url: https://github.com/ringecosystem/degov
issue: https://plane.kahub.in/endless/browse/HBX-265/
attempt: run-hbx-265-review-repair-1780368943808547029-attempt-1
authority: https://plane.kahub.in/endless/browse/HBX-265/
summary: Merge main compatibility preflight changes into the HBX-265 Postgres schema branch.
related:
- checkpoint:hbx-265-base-sync-main-20260602
## Summary
feat(indexer): add datalens client foundation

## Changes
- Introduce the initial Rust indexer crate with Datalens SDK, figment config loading, typed thiserror errors, and a redacted secret wrapper.
- Add a DeGov-owned DatalensNativeReader trait plus SDK adapter and smoke readiness helper for mockable tests.
- Add a smoke-datalens CLI entrypoint and wire package build/test scripts to Cargo while preserving existing schema/convention checks.
- Add non-secret Datalens environment placeholders using the service base endpoint, with an empty token slot for secret-backed configuration.

## Verification
- just indexer build
- just indexer test
- cargo fmt --manifest-path packages/indexer/Cargo.toml --check
- git diff --cached --check
- just web lint

metadata.yaml >
schema: conductor/commit/1
repository: degov
repository_url: https://github.com/ringecosystem/degov
issue: https://plane.kahub.in/endless/browse/HBX-246/
attempt: run-hbx-246-review-repair-1780373166231987272-attempt-1
authority: https://plane.kahub.in/endless/browse/HBX-246/
summary: 'fix(indexer): remove unused datalens endpoint default'
related:
- checkpoint:hbx-246-review-repair-remove-unused-endpoint-default
…em#741)

* feat(indexer): normalize raw evm logs

* ci(indexer): disable unused pnpm cache

* fix(indexer): include transaction hash in evm log ids

* test(indexer): reject conflicting evm log duplicates

* ci(indexer): disable node package manager cache

* ci(indexer): disable package manager cache
…ystem#742)

* feat(indexer): add datalens evm log planner

* fix(indexer): include all dao log topic filters

* fix(indexer): reject zero datalens log chunk limit
Implements Datalens ABI event decoding for governor, token, and timelock logs. Adds ERC20/ERC721 Transfer shape validation and case-insensitive token standard parsing for DeGov registry-style configuration.
Adds ChainTool onchain read planning for DeGov Datalens indexing, including execution-key dedupe separated from semantic metadata, typed read result payloads, bounded multicall grouping, and safeguards for invalid batch config.
Adds the Datalens-native onchain power reconcile planner, including compact affected-account dedupe, ChainTool current-power read scheduling, compatible refresh metadata, freshness metrics, and tests for no log-derived final power.
fewensa and others added 28 commits June 10, 2026 05:23
* perf(indexer): batch onchain refresh RPC reads

* fix(indexer): avoid per-read fallback on multicall transport errors

* fix(indexer): tighten multicall worker fallback
* fix(indexer): chunk onchain refresh DB apply

* fix(indexer): validate onchain refresh apply chunks

* test(indexer): cover bounded onchain refresh tick runs

* fix(indexer): allow large onchain refresh tick runs
* fix(indexer): correct delegate edge power semantics

* fix(indexer): limit delegate balance refresh reads

* test(indexer): update delegate refresh read expectations

* test(indexer): assert scoped live power overlays

* test(indexer): preserve balance refresh conflict semantics

* test(indexer): update optimized reconcile read counts
…system#849)

* fix(indexer): reconcile delegate relation power from balance

* test(indexer): cover delegate relation count refresh
* fix(indexer): align ENS proposal parity

* fix(indexer): align warmup selectors with query plans

* test(indexer): cover source-specific warmup effectiveness

* test(indexer): update postgres runtime source queries

* test(indexer): update provisional worker source queries
* perf(indexer): batch ENS token delegate writes

* perf(indexer): batch token checkpoint writes

* perf(indexer): batch dense delegate mapping writes
Adds a runtime covering partial index for delegate rolling metadata preload and keeps the local combined GraphQL/sync runner from blocking sync on inline onchain refresh by starting the worker separately.
Allows provider-fill chunks below the existing high-query, dense-row, and slow-local safety gates to count toward stable adaptive growth so ENS does not remain stuck at tiny chunk sizes after transient slow ranges.
Reset onchain refresh attempts when requeued by pending_after_lock and allow pending tasks at max attempts to be claimed again.
* fix(indexer): add proposal title refresh command

* fix(indexer): satisfy title refresh runtime convention

* fix(indexer): bound proposal title refresh updates
Fix the delegate_mapping power-only bulk update SQL builder so VALUES emits one three-column row per update.

Add a Postgres runtime regression that persists two delegate mappings before applying a transfer-only batch that exercises the power-only flush path.
Signed-off-by: Sigride <9304947+Sigri44@users.noreply.github.com>
@github-actions

Copy link
Copy Markdown

JSON and YAML Validation Results

JSON Validation Results

  • ✅ File(s) Passed: 0
  • ❌ File(s) Failed: 1
  • ⏭️ File(s) Skipped: 0

Violations:

[
  {
    "file": "degov.yml",
    "errors": [
      {
        "path": "/indexer",
        "message": "must NOT have additional properties"
      },
      {
        "path": "/indexer",
        "message": "must NOT have additional properties"
      }
    ]
  }
]

@Sigri44 Sigri44 merged commit 079a838 into main Jun 10, 2026
2 of 4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants