Skip to content

Stale validation remediation notifications lack asset IDs and target candidate assets #599

Open

Description

@njiangk

Stale / inconsistent validation remediation notifications

Summary

The authenticated account notification center shows 15 Validation Update Requested batches with counts:

1, 1, 5, 16, 6, 81, 3, 9, 3, 1, 2, 5, 16, 15, 1 (sum of batch counts: 165).

However, the notification View details action redirects only to the generic My Agent Nodes page and does not expose affected asset IDs.

Bound nodes

  • node_631139df3c1e (OpenClaw)
  • node_b16736daee7a (Hermes)

API observations

  • Authenticated POST /a2a/heartbeat for the Hermes node: HTTP 200, no pending_events field/events.
  • Authenticated GET /a2a/assets/published-by-me: HTTP 200 but count: 0 for both nodes.
  • The web node cards show Published counts of 1 and 2, respectively.
  • Official evolver sync --scope=published --dry-run --include-unpublished-list reports published: 0 asset(s) for both isolated node identities.
  • Penalty history currently contains no validation/remediation penalty for either node.

The dry-run command also seeded an ignored local .evolver/gep/genes.json while reporting (dry-run mode: no files were modified). The generated file was removed after verification.

Local-to-Hub audit

The local GEP store contains 238 Hub-synced Genes. Applying the current documented validation-command gate produced 64 unique candidate assets:

  • 35 with commands not starting with node, npm, or npx
  • 29 with empty validation lists

Each of these 64 asset IDs was queried individually through GET /a2a/assets/:id:

  • 64 candidate
  • 0 promoted
  • 60 owned by node_631139df3c1e
  • 4 owned by node_b16736daee7a

The documentation says validation remediation applies to promoted Genes, so the notifications appear stale, duplicated, or incorrectly generated for candidate assets.

Expected behavior

  1. View details should show or link to the affected asset IDs.
  2. Remediation notifications should be generated only for assets currently eligible for remediation.
  3. The web Published count and published-by-me response should agree.
  4. Stale remediation tasks should be closed when an asset is no longer promoted/eligible.

Request

Please identify the remediation task IDs / affected asset IDs for this account, clear stale tasks, and confirm whether candidate assets are subject to reputation penalties.

No credentials or account session data are included in this report.

Activity

  1. owenshen0907 commented on Jul 12, 2026

    @owenshen0907
    Contributor

    🤖 @bjw9808 这条 issue 在你负责的仓库,麻烦认领或跟进一下。(agent-control 自动提醒;未自动接入)

  2. njiangk commented on Jul 12, 2026

    @njiangk
    Author

    User-side remediation update after the original report:

    • Recovered 64 unique local-to-Hub candidate asset IDs (60 OpenClaw node, 4 Hermes node).
    • Normalized all 64 via POST /a2a/asset/validation-update to the real Evolver validator node scripts/validate-suite.js.
    • Local validator result: 3095 test(s) passed, 0 failed.
    • Hub confirmation across all 64: HTTP 200; 12 returned accepted / validation_updated, 52 returned the idempotent noop / validation_unchanged; 0 errors.
    • Post-update heartbeat: HTTP 200 for both nodes, pending_events: 0.
    • Post-update validation/remediation penalties: 0 on both nodes.
    • Only 2 responses in the checkpointed run explicitly reported task_resolved: true; notification batches still do not expose remediation task IDs or an asset mapping.
    • Public asset detail responses still show the old audit fields (noop / validation_credible=false) and do not expose the mutable validation value, so the validation-update endpoint response is currently the only write confirmation available.

    Could the Hub team confirm whether the remaining aggregated notifications are stale and close/recompute any unresolved tasks server-side?

  3. imxyanua commented on Jul 12, 2026

    @imxyanua
    Contributor

    @njiangk I will check, thank you for your feedback
    please wait

  4. autogame-17 commented on Jul 13, 2026

    @autogame-17
    Member

    On the client-side detail in this report — the dry-run that seeded a local file:

    The dry-run command also seeded an ignored local .evolver/gep/genes.json while reporting (dry-run mode: no files were modified).

    Confirmed and fixed (committed in the private dev repo, going through release). evolver sync --dry-run called loadGenes(), which first-run-seeds genes.json via ensureGenesSeeded() before the dry-run guard was reached — so the run genuinely wrote the file while printing "no files were modified". The fix adds a read-only loadGenes({ seed: false }) used on the dry-run path, so a dry-run now leaves the store untouched. Verified end-to-end: sync --scope=published --dry-run --include-unpublished-list no longer creates .evolver/gep/genes.json.

    The rest of the report (stale/aggregated Validation Update Requested notifications, missing asset-ID mapping in View details, and the web Published count vs published-by-me disagreement) is Hub-side and outside this client repo — leaving that to the Hub team already tracking it. This comment only covers the dry-run write bug.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions