Skip to content

feat(api): REST + stdio mirror for loopover_build_progress_snapshot - #6943

Merged
loopover-orb[bot] merged 2 commits into
JSONbored:mainfrom
RealDiligent:feat/progress-snapshot-rest-cli-6753
Jul 17, 2026
Merged

feat(api): REST + stdio mirror for loopover_build_progress_snapshot#6943
loopover-orb[bot] merged 2 commits into
JSONbored:mainfrom
RealDiligent:feat/progress-snapshot-rest-cli-6753

Conversation

@RealDiligent

Copy link
Copy Markdown
Contributor

Summary

  • Add POST /v1/loop/progress-snapshot delegating to pure buildProgressSnapshot.
  • Register in-process stdio tool loopover_build_progress_snapshot (same parity pattern as #6754 evaluate-escalation).
  • Unit tests assert REST/stdio parity with the pure builder; bump MCP discovery count 70→71.

Closes #6753

Test plan

  • Route returns unmodified buildProgressSnapshot output
  • Stdio tool matches pure builder offline
  • Invalid body → 400 invalid_progress_snapshot_request
  • CI green including codecov/patch

@RealDiligent
RealDiligent requested a review from JSONbored as a code owner July 17, 2026 14:44
@superagent-security

Copy link
Copy Markdown
Contributor

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

Add POST /v1/loop/progress-snapshot and an in-process stdio tool that both
delegate to pure buildProgressSnapshot, matching check_slop_risk parity.

Closes JSONbored#6753

Co-authored-by: Cursor <cursoragent@cursor.com>
Avoid `as const` readonly unions that fail assignability under tsc.

Co-authored-by: Cursor <cursoragent@cursor.com>
@codecov

codecov Bot commented Jul 17, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 93.71%. Comparing base (5347291) to head (aabdc47).
⚠️ Report is 5 commits behind head on main.

Additional details and impacted files
@@           Coverage Diff           @@
##             main    #6943   +/-   ##
=======================================
  Coverage   93.71%   93.71%           
=======================================
  Files         685      685           
  Lines       68358    68364    +6     
  Branches    18726    18727    +1     
=======================================
+ Hits        64059    64065    +6     
  Misses       3302     3302           
  Partials      997      997           
Flag Coverage Δ
shard-1 43.68% <100.00%> (-0.02%) ⬇️
shard-2 36.87% <33.33%> (+0.02%) ⬆️
shard-3 32.84% <33.33%> (+0.07%) ⬆️
shard-4 34.84% <33.33%> (+<0.01%) ⬆️
shard-5 31.32% <33.33%> (+<0.01%) ⬆️
shard-6 45.75% <33.33%> (-0.01%) ⬇️

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

Files with missing lines Coverage Δ
src/api/routes.ts 94.78% <100.00%> (+0.01%) ⬆️

@loopover-orb loopover-orb Bot added the gittensor:feature Gittensor-scored feature linked to a feature issue — scores a 0.25x multiplier. label Jul 17, 2026
@loopover-orb

loopover-orb Bot commented Jul 17, 2026

Copy link
Copy Markdown
Contributor

Tip

✅ LoopOver review result - approve/merge recommended

Review updated: 2026-07-17 15:00:29 UTC

5 files · 1 AI reviewer · no blockers · readiness 80/100 · CI green · clean

✅ Suggested Action - Approve/Merge

  • safe to merge

Review summary
This PR mirrors the existing REST/stdio parity pattern (as used for #6752 results-payload and #6754 evaluate-escalation) for buildProgressSnapshot: it adds a POST /v1/loop/progress-snapshot route with a zod schema matching the stdio tool's shape, registers loopover_build_progress_snapshot as an in-process stdio tool, and bumps the MCP discovery count 70→71. Both surfaces delegate to the same pure buildProgressSnapshot with no added logic, and the tests directly assert route/stdio output equals the pure builder's output for representative and invalid inputs, which is the correct way to prove parity. The route's 400 response for a parse failure and the discovery-count bump are both consistent and verified by the accompanying tests.

Nits — 3 non-blocking
  • The `400` in the size-smell note at src/api/routes.ts:3376 is just the standard HTTP status for a validation failure and matches the sibling routes' convention (e.g. results-payload) — not worth a named constant.
  • test/unit/routes-progress-snapshot.test.ts and mcp-cli-progress-snapshot-tool.test.ts duplicate the same parity-assertion pattern already used for sibling tools; consider a shared test helper if this pattern gets repeated much more.
  • If more of these REST/stdio mirror pairs are planned, consider a small shared test utility for the 'assert route/stdio output equals pure builder output' pattern to reduce duplication across the growing set of *-progress-snapshot/-results-payload/-evaluate-escalation test files.

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 #6753
Related work ⚠️ 3 scoped overlaps Top overlaps are listed below; lower-confidence bulk is hidden.
Change scope ❌ 8/20 High review scope from cached public metadata (1 linked issue).
Validation posture ✅ 25/25 PR body includes validation/test evidence.
Contributor workload ✅ 10/10 Author activity: 389 registered-repo PR(s), 194 merged, 33 issue(s).
Contributor context ✅ Confirmed Gittensor contributor RealDiligent; Gittensor profile; 389 PR(s), 33 issue(s).
Improvement ✅ Minor risk: clean · value: minor · LLM: moderate
Linked issue satisfaction

Addressed
The PR adds POST /v1/loop/progress-snapshot delegating to buildProgressSnapshot, registers a matching stdio CLI tool with identical schema, and includes unit tests covering route parity, CLI parity, and invalid-input handling exactly as requested.

Review context
  • Author: RealDiligent
  • Role context: outside_contributor
  • Public audience mode: oss maintainer
  • Lane context: Repository is configured for direct PR review.
  • Public profile languages: not available
  • Official Gittensor activity: 389 PR(s), 33 issue(s).
  • Related work: Titles/paths share 8 meaningful terms. (issue #6744, issue #6753)
  • Related work: Titles/paths share 8 meaningful terms. (issue #6747, issue #6753)
  • Related work: Titles/paths share 8 meaningful terms. (issue #6746, issue #6753)
  • Additional title-only matches omitted; title-only overlap does not block.
Contributor next steps
  • Start here: Review top overlaps.
  • Then work through the remaining 2 steps in the Signals table above.
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 &lt;question&gt; answers contribution-quality Q&A with source citations and freshness.
  • @loopover chat &lt;question&gt; 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

@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 d6cf892 into JSONbored:main Jul 17, 2026
16 checks passed
This was referenced Jul 17, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

gittensor:feature Gittensor-scored feature linked to a feature issue — scores a 0.25x multiplier.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

REST + CLI mirror for loopover_build_progress_snapshot

1 participant