Auto-Refresh
Glint uses two watch systems to keep the interface up to date without manual refreshing.
File & Git Watching
Glint monitors your repository’s filesystem and .git directory for changes. When you make changes using external tools (another editor, the command line, etc.), Glint detects them automatically.
What’s Watched
| Category | Triggers On |
|---|---|
| Files | New, modified, or deleted files in the working tree |
| git:head | Branch switches, commits (git checkout, git commit) |
| git:index | Staging changes (git add, git reset) |
| git:refs | Branch or tag creation/deletion |
| git:remotes | Remote tracking updates (git fetch, git push) |
| git:merge | Merge or rebase state changes |
Refresh Behavior
- Visible tabs refresh immediately when a relevant change is detected
- Hidden tabs are marked dirty and refresh automatically when you switch to them
- Changes are debounced (200ms) to avoid excessive updates during rapid operations like batch file saves
GitHub Polling
Glint polls the GitHub API every 30 seconds to detect remote changes to issues, pull requests, and workflow runs.
What’s Polled
| Category | Content |
|---|---|
| github:issues | Issue updates (new, edited, closed, reopened) |
| github:pull-requests | PR updates (new, merged, review changes) |
| github:actions | Workflow run status changes |
Efficiency
Polling uses ETag conditional requests. If nothing has changed on GitHub, the server returns a 304 (not modified) response that doesn’t count against your API rate limit. Only actual changes consume a request.
If errors or rate limits are encountered, the polling interval automatically backs off (30s → 60s → 120s → up to 300s) and recovers when requests succeed again.
Manual Refresh
You can always force a refresh of the active tab using the Refresh action, regardless of the watch systems.