ci: preserve output activity heartbeats in GhosttyKit - #5
Merged
Conversation
Carry the accepted output_activity embedder API as an ordered downstream patch so the daily pristine-upstream rebuild cannot discard it. Require every declared downstream file to exist, and use Ghostty's current Zig 0.16 toolchain for framework releases.
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Plus Run ID: 📒 Files selected for processing (4)
📝 WalkthroughWalkthroughAdds a throttled PTY output activity heartbeat carrying scrollbar geometry through the surface mailbox and app action path, exposes it in public action APIs, adds platform no-op handling, and strengthens downstream workflow file validation while updating Zig. ChangesOutput activity heartbeat
Downstream workflow maintenance
Estimated code review effort: 3 (Moderate) | ~25 minutes Sequence Diagram(s)sequenceDiagram
participant Termio
participant SurfaceMailbox
participant Surface
participant App
Termio->>SurfaceMailbox: Queue throttled output_activity with scrollbar geometry
SurfaceMailbox->>Surface: Deliver output_activity message
Surface->>App: Call rt_app.performAction
🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✨ Finishing Touches🧪 Generate unit tests (beta)
Comment |
Owner
|
@onliner10 Thanks for your work! It looks good to me. |
3 tasks
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What
Hey @thdxg - following up on #3. We discussed carrying the accepted
output_activitychange as.github/downstream/0002-output-activity.patch, but while finishing the Macterm integration I noticed that0002never actually made it intomainor the latest GhosttyKit release. No worries - it looks like the follow-up simply slipped through, so I’m submitting the downstream-patch integration here.This PR:
GHOSTTY_ACTION_OUTPUT_ACTIVITYAPI as ordered patch0002, retaining the original authorship and date;The patch includes the original IO-path heartbeat from #3 plus the hardening found during Macterm integration: post-parse scrollbar geometry, no heartbeat for empty manual-API buffers, immediate retry after a full surface mailbox, stable appended enum values, and explicit native macOS/GTK no-ops for the embedder-only action.
Why
Macterm now uses this heartbeat to track in-place terminal activity, including same-PID Pi commands and fully occluded tabs. The renderer-driven scrollbar signal stops under occlusion, while this PTY IO-path signal continues to report real output.
Keeping it as a downstream patch ensures the daily pristine-upstream sync cannot discard it.
Verified
0001then0002cleanly from the current upstream base.AI disclosure
The original implementation in #3 used Claude Code, as disclosed there. This downstream adaptation and review used OpenAI ChatGPT through Pi for code analysis, test design, and patch/workflow edits. I directed the work, reviewed the final diff, and ran the verification above.
Summary by CodeRabbit
New Features
Chores