Skip to content

fix(orb): wire the config-drift recap section into the maintainer digest - #9910

Merged
loopover-orb[bot] merged 1 commit into
JSONbored:mainfrom
bitfathers94:fix/issue-9698
Jul 29, 2026
Merged

fix(orb): wire the config-drift recap section into the maintainer digest#9910
loopover-orb[bot] merged 1 commit into
JSONbored:mainfrom
bitfathers94:fix/issue-9698

Conversation

@bitfathers94

Copy link
Copy Markdown
Contributor

fix(orb): wire the config-drift recap section into the maintainer digest

buildDriftRecapSection had no production caller: runMaintainerRecap never
sourced a DriftRecapSection, so the digest never rendered a Config drift
section even once the sentinel started persisting fingerprint rows.

Add a private loadDriftRecapSection loader (mirroring loadRoutingRecapSection's
fail-safe shape) that reads isConfigDriftSentinelEnabled plus the live knob
statuses and a single bounded system_flags LIKE query for fingerprint
timestamps, and wire it into runMaintainerRecap. A caller-supplied
options.configDrift still overrides the loaded one.

Closes #9698

buildDriftRecapSection had no production caller: runMaintainerRecap never
sourced a DriftRecapSection, so the digest never rendered a Config drift
section even once the sentinel started persisting fingerprint rows.

Add a private loadDriftRecapSection loader (mirroring loadRoutingRecapSection's
fail-safe shape) that reads isConfigDriftSentinelEnabled plus the live knob
statuses and a single bounded system_flags LIKE query for fingerprint
timestamps, and wire it into runMaintainerRecap. A caller-supplied
options.configDrift still overrides the loaded one.
@bitfathers94
bitfathers94 requested a review from JSONbored as a code owner July 29, 2026 21:48
@superagent-security

Copy link
Copy Markdown
Contributor

Superagent didn't find any vulnerabilities or security issues in this PR.

@loopover-orb

loopover-orb Bot commented Jul 29, 2026

Copy link
Copy Markdown
Contributor

Tip

✅ LoopOver review result - approve/merge recommended

Review updated: 2026-07-29 21:57:07 UTC

3 files · 1 AI reviewer · no blockers · readiness 95/100 · CI green · clean

✅ Suggested Action - Approve/Merge

  • safe to merge

Review summary
This PR wires buildDriftRecapSection into runMaintainerRecap via a new private loadDriftRecapSection loader, mirroring the existing loadRoutingRecapSection pattern (fail-safe try/catch returning null, sentinel-off short-circuit, single bounded LIKE query for fingerprint timestamps). The logic correctly excludes looser-direction drift and unfingerprinted knobs, and options.configDrift still overrides the loaded value. It's well-tested with wiring-focused unit tests covering the disabled arm, populated arm, clean arm, fail-safe arm, and override arm — all consistent with the existing loadRoutingRecapSection convention already in production.

Nits — 3 non-blocking
  • src/services/maintainer-recap.ts:330-347 nests to depth 5 and swallows the fingerprint-read error into a silent `return null`, same as the existing loadRoutingRecapSection convention it mirrors — consistent but worth a debug log line if operators ever need to diagnose a missing section.
  • The DriftRecapKnob exclusion of unfingerprinted live-drift knobs (maintainer-recap.ts:343-345) means a freshly-drifting knob won't appear in the digest until the sentinel's own tick has persisted a fingerprint row — worth a one-line comment cross-referencing runConfigDriftSentinel's write order so a future reader doesn't mistake it for a bug.
  • Consider logging the caught error in loadDriftRecapSection's catch block (even at warn level) so an operator can distinguish 'sentinel off' from 'read blip' when the section silently disappears from the digest.

Decision drivers

  • ✅ Code review — No blockers (1 reviewer)
  • ✅ Gate result — Passing (No configured blocker found.)
Context & advisory signals — never blocks the verdict
Signal Result Evidence
Linked issue ✅ Linked #9698
Related work ✅ No active overlap found No same-issue or scoped active PR overlap found.
Change scope ✅ 20/20 Low review scope from cached public metadata (1 linked issue).
Validation posture ⚠️ 20/25 Preflight is ready, but the PR body does not name the validation run.
Contributor workload ✅ 10/10 Author activity: 101 registered-repo PR(s), 69 merged, 1 issue(s).
Contributor context ✅ Confirmed Gittensor contributor bitfathers94; Gittensor profile; 101 PR(s), 1 issue(s).
Improvement ✅ Minor risk: clean · value: minor · LLM: moderate
Linked issue satisfaction

Addressed
The diff adds a private loadDriftRecapSection in maintainer-recap.ts mirroring loadRoutingRecapSection exactly (fail-safe try/null), sources sentinelEnabled/drifting/cleanKnobs per spec including the single bounded system_flags LIKE query, excludes looser-direction and unfingerprinted knobs, and wires it into runMaintainerRecap with explicit options.configDrift taking precedence. Tests cover all s

Review context
  • Author: bitfathers94
  • Role context: outside_contributor
  • Public audience mode: oss maintainer
  • Lane context: Repository is configured for direct PR review.
  • Public profile languages: TypeScript
  • Official Gittensor activity: 101 PR(s), 1 issue(s).
  • PR-specific overlap: none found.
Contributor next steps
  • Start here: Add validation command/output.
Signal definitions
  • Related work = same linked issue, overlapping active PRs, or title/path similarity.
  • Change scope = cached public metadata such as size labels, draft state, and review-burden hints.
  • Validation posture = whether the PR provides enough public validation/test evidence for maintainer review.
  • Contributor workload = public contributor activity and cleanup pressure, not a repo-wide quality failure.
  • Contributor context = public GitHub/Gittensor identity context; non-Gittensor status is not a blocker.
🧪 Chat with LoopOver

Ask LoopOver a question about this PR directly in a comment — grounded only in the same cached, public-safe facts shown above, never a new claim.

  • @loopover ask <question> answers contribution-quality Q&A with source citations and freshness.
  • @loopover chat <question> answers in natural prose from cached decision-pack facts via local inference (maintainer/collaborator; read-only).
  • A plain-language @loopover mention with a real question is routed to the closest matching read-only command automatically — no exact syntax required.

Full command reference: https://loopover.ai/docs/loopover-commands

🧪 Experimental — new and may change.

🟩 Safe / merged · 🟦 Advisory · 🟨 Held for review · 🟥 Blocked / closed


💰 Earn for open-source contributions like this. Gittensor lets GitHub contributors earn for the work they already do — register to start earning →.

Checked by LoopOver, a quiet PR intelligence layer for OSS maintainers.

  • Re-run LoopOver review

@codecov

codecov Bot commented Jul 29, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 79.62%. Comparing base (93e80ac) to head (3ff56c1).
⚠️ Report is 1 commits behind head on main.
✅ All tests successful. No failed tests found.

Additional details and impacted files
@@            Coverage Diff             @@
##             main    #9910      +/-   ##
==========================================
+ Coverage   79.52%   79.62%   +0.10%     
==========================================
  Files         281      283       +2     
  Lines       58577    58885     +308     
  Branches     6833     6924      +91     
==========================================
+ Hits        46581    46888     +307     
  Misses      11706    11706              
- Partials      290      291       +1     
Flag Coverage Δ
backend 99.67% <100.00%> (?)

Flags with carried forward coverage won't be shown. Click here to find out more.

Files with missing lines Coverage Δ
src/services/knob-loosening-run.ts 100.00% <100.00%> (ø)
src/services/maintainer-recap.ts 99.05% <100.00%> (ø)

@loopover-orb loopover-orb Bot added the gittensor:bug Gittensor-scored bug fix — scores a 0.05x multiplier. label Jul 29, 2026

@loopover-orb loopover-orb Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LoopOver approves — the gate is satisfied and CI is green.

@loopover-orb
loopover-orb Bot merged commit d0e5aae into JSONbored:main Jul 29, 2026
8 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

gittensor:bug Gittensor-scored bug fix — scores a 0.05x multiplier.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

orb(recap): wire the built-and-tested config-drift section into the maintainer digest

1 participant