Skip to content

fix(logs): reject reconnect results after the deadline - #347

Merged
Microck merged 1 commit into
mainfrom
fix/log-follow-deadline
Oct 3, 2026
Merged

Microck merged 1 commit into
mainfrom
fix/log-follow-deadline

Conversation

@Microck

@Microck Microck commented Oct 2, 2026 •

Copy link
Copy Markdown
Owner

log follow could accept a reconnect result after its deadline if the receiving thread was descheduled. mac ci caught this as the wrong error followed by an extra log read.

this checks the existing deadline again when a result arrives, so a late result reports reconnect exhaustion. the reconnect budget and existing test assertions stay unchanged.

validation: source traced against the failing mac ci log and the existing bounded-attempt test. reuse, quality and efficiency review ran inline with no further changes. full platform ci is pending; no local or device compilation.

Summary by CodeRabbit

  • Bug Fixes
    • satelle logs --follow now reports a timeout when reconnect results arrive at or after the attempt deadline, including when delayed scheduling postpones processing them.

@vercel

vercel Bot commented Oct 2, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated
satelle Ready Ready Preview Oct 2, 2026 8:33pm UTC

@coderabbitai

coderabbitai Bot commented Oct 2, 2026 •

Copy link
Copy Markdown

Review in Change Stack →

Navigate logical layers of code changes, visualize relationships, and explore their blast radius.

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Repository: Microck/satelle/.coderabbit.yaml

Review profile: CHILL

Plan: Advanced

Run ID: 2868106b-86f6-492e-b3bf-c14888c54790

📥 Commits

Reviewing files that changed from the base of the PR and between 8c2a546 and 4235a50.

📒 Files selected for processing (2)
  • .facts
  • crates/satelle/src/logs.rs

Included review availability: This review used your included allowance. Your plan provides up to 1 included review per hour; 0 remain after this review.


📝 Walkthrough

Walkthrough

run_follow_operation now checks the deadline after receiving a worker result. If the deadline has elapsed, it returns TimedOut instead of the result.

Changes

Reconnect deadline enforcement

Layer / File(s) Summary
Post-receive deadline check
crates/satelle/src/logs.rs, .facts
run_follow_operation returns TimedOut when it handles a worker result after the deadline. The reconnect deadline rule includes results delayed by receiver scheduling.

Priority: ⬇️ Low

Estimated code review effort: 2 (Simple) | ~5 minutes

Change: Bug fix

Merge Risk: ⚪ Minimal · up to 4235a

Late reconnect results now report reconnect exhaustion rather than completing after the deadline. No actionable merge-blocking risk was identified.

Architecture Summary

Architecture risk: 🔵 Low · up to 4235a

The change affects 1 system.

Changed systems: crates

Architecture concerns
No architecture-level concerns identified.

Review details

Systems and components

  • observed — crates (service) was modified; 1 changed file maps to changed impact.

Before / after behavior

  • observed — Modified behavior in crates/satelle/src/logs.rs: run_follow_operation now discards a received result as TimedOut when its configured deadline has elapsed; previously any received result was returned as Completed, even if handling it crossed the deadline.
  • observed — Modified behavior in .facts: The reconnect deadline rule now explicitly includes I/O results received at or after the deadline, even when receiver scheduling delays their handling.
🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. Docstring coverage is scoped to functions touched by this diff. Analyzed 1 functions across 1 files. (1 skipped: 1 … Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (4 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly and concisely describes the main change: rejecting reconnect results received after the deadline.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
Full details: Docstring Coverage

Explanation

Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. Docstring coverage is scoped to functions touched by this diff. Analyzed 1 functions across 1 files. (1 skipped: 1 unsupported.)

  • Fix all pre-merge checks with AI
✨ Finishing Touches 💡 1
📝 Generate docstrings 💡
  • Commit to this branch
  • Create a new PR
🧪 Generate unit tests (beta)
  • Commit to this branch
  • Create a new PR
  • Autopilot · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Autopilot is currently an internal CodeRabbit preview.


Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@Microck

Microck commented Oct 2, 2026

Copy link
Copy Markdown
Owner Author

@coderabbitai full review

@coderabbitai

coderabbitai Bot commented Oct 2, 2026 •

Copy link
Copy Markdown
✅ Action performed

Full review finished.

@Microck
Microck merged commit 6fc444f into main Oct 3, 2026
32 checks passed

This branch was successfully deployed

1 active deployment
Preview — 4235a501 Deployed Oct 2, 2026 by vercel[bot]
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.

1 participant