Skip to content

feat(web): show GitHub service outages - #14

Merged
incognitojam merged 5 commits into
mainfrom
t3code/show-github-status
Aug 7, 2026
Merged

feat(web): show GitHub service outages#14
incognitojam merged 5 commits into
mainfrom
t3code/show-github-status

Conversation

@incognitojam

@incognitojam incognitojam commented Aug 6, 2026

Copy link
Copy Markdown
Collaborator

Problem

GitHub incidents can make pushes, pull requests, Actions, and API operations fail in ways that look like a T3 Code problem. There was no in-app indication that the upstream service was degraded.

Fix

  • add an opt-in GitHub outage alerts toggle under Settings → Beta
  • poll GitHub's public status summary once per minute only while the beta is enabled
  • keep the sidebar quiet while GitHub is healthy or the status endpoint is unreachable
  • show affected public services in a warning or outage pill above Settings
  • include detailed component states on hover and open the official status page on click
  • document the behavior in the source-control troubleshooting guide

Screenshot

Healthy sidebar compared with the GitHub outage notice and affected-service hover card

Verification

  • vp test run packages/contracts/src/settings.test.ts apps/web/src/githubStatus.test.ts apps/web/src/components/settings/settingsSearch.test.ts
  • vp run --filter @t3tools/web typecheck
  • targeted vp lint --report-unused-disable-directives
  • targeted vp fmt --check
  • isolated web preview at 1280×800: toggle persistence, opt-out suppression, live healthy state, and outage presentation

Built with GPT-5.6-sol in T3 Code using the Codex harness.

@incognitojam
incognitojam force-pushed the t3code/show-github-status branch from fb59f06 to b310d5a Compare August 7, 2026 10:22
@github-actions github-actions Bot added vouch:trusted PR author is trusted by repo permissions or the VOUCHED list. size:L labels Aug 7, 2026
@incognitojam
incognitojam force-pushed the t3code/show-github-status branch from b310d5a to 93af30f Compare August 7, 2026 12:34
@incognitojam
incognitojam force-pushed the t3code/show-github-status branch from 6a8dc31 to 0d60500 Compare August 7, 2026 14:16
@incognitojam
incognitojam merged commit 38afe70 into main Aug 7, 2026
13 checks passed
@incognitojam
incognitojam deleted the t3code/show-github-status branch August 7, 2026 21:55
incognitojam added a commit that referenced this pull request Aug 8, 2026
* feat(web): show GitHub service outages

* fix(web): clarify GitHub status link affordance

* feat(web): make GitHub outage alerts opt-in

* refactor(web): remove GitHub status preview override

* test(desktop): include GitHub alert setting

---------

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
incognitojam added a commit that referenced this pull request Aug 8, 2026
* feat(web): show GitHub service outages

* fix(web): clarify GitHub status link affordance

* feat(web): make GitHub outage alerts opt-in

* refactor(web): remove GitHub status preview override

* test(desktop): include GitHub alert setting

---------

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
incognitojam added a commit that referenced this pull request Aug 9, 2026
* feat(web): show GitHub service outages

* fix(web): clarify GitHub status link affordance

* feat(web): make GitHub outage alerts opt-in

* refactor(web): remove GitHub status preview override

* test(desktop): include GitHub alert setting

---------

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
incognitojam added a commit that referenced this pull request Aug 9, 2026
The desktop update tooltip flattens the release body into plain bullet
lines, so the structured nightly highlights (`## Nightly highlights`,
`### Added`, …) rendered their headings as list items and wasted 3 of
the tooltip's 8 item slots. This PR makes the generated changelog and
the tooltip work together, and leans harder into the LLM pipeline while
keeping attribution.

## Changes

- **Nightly highlights are a flat list** of plain items with compact PR
references that survive the tooltip's markup stripping (`#61` for fork
PRs, `t3code#123` for upstream, short SHAs for direct commits). Removals
are phrased as "Remove …" via prompt guidance instead of a section
label.
- **Attribution is structural:** summary items are now `{ text,
evidenceIds }` objects. The model only returns evidence IDs; URLs are
rendered deterministically and IDs are validated against the collected
evidence, so references can't be fabricated. The rolling fork-features
issue gets the same per-item references.
- **Extraction sees diffs:** each commit contributes a truncated patch
(4 KB cap, lockfiles excluded) so descriptions are grounded in what
actually changed rather than paraphrasing PR titles. Over the 160k-char
prompt budget, the largest diffs are dropped first — titles and PR
bodies never are.
- **`## What's Changed` stays** as the exhaustive record and now credits
contributors once per PR (`by @username`, fetched via `gh api` with
graceful fallback).
- **The tooltip parser stops at `## What's Changed`** when curated
highlights precede it, so raw commit lines no longer mix with highlight
lines. Bodies that open with the commit list (upstream-style, or a
nightly with no highlights) still show it.

## Pipeline example

Evidence in (abridged; one upstream commit from the delta below):

```jsonc
{
  "id": "pingdotgg#5756",
  "title": "fix(web): usage page loses the cost quality panel, gains a back button",
  "description": "<sanitized PR body>",
  "files": ["apps/web/src/components/usage/UsagePage.tsx", "…"],
  "diff": "--- a/apps/web/src/components/usage/UsagePage.tsx\n+import { useCanGoBack, useNavigate, useRouter } from \"@tanstack/react-router\";\n…"
}
```

Summary items out (actual output — note one PR correctly yielding both
an improvement and a removal):

```json
{ "text": "Return from Usage through history or to home", "evidenceIds": ["pingdotgg#5756"] }
{ "text": "Remove Cost quality panel from the Usage page", "evidenceIds": ["pingdotgg#5756"] }
```

Rendered in the release body:

```markdown
- Return from Usage through history or to home ([t3code#5756](pingdotgg#5756))
- Remove Cost quality panel from the Usage page ([t3code#5756](pingdotgg#5756))
```

## Regenerated release notes for `v0.0.33-nightly.20260809.121`

Rerunning the new generator against the existing release's refs produced
13 items (the published release had 5, plus 3 heading lines). What the
tooltip shows, via the actual parser:

```
• Identify sidebar threads with unsent drafts (#23)
• Show subagent activity counts in right-panel controls (t3code#5745)
• Return from Usage through history or to home (t3code#5756)
• Give agents access to pasted image files (t3code#5757)
• Manage projects from the dedicated Settings page (t3code#5768)
• Preserve selected diff view across panel closures and reloads (t3code#5731)
• Show pointer cursors for clickable controls and actions (t3code#5716)
• Resume Claude sessions without falsely completing skipped turns (t3code#5710)
```

<details>
<summary>Full regenerated nightly highlights</summary>

- Identify sidebar threads with unsent drafts
([#23](#23))
- Show subagent activity counts in right-panel controls
([t3code#5745](pingdotgg#5745))
- Return from Usage through history or to home
([t3code#5756](pingdotgg#5756))
- Give agents access to pasted image files
([t3code#5757](pingdotgg#5757))
- Manage projects from the dedicated Settings page
([t3code#5768](pingdotgg#5768))
- Preserve selected diff view across panel closures and reloads
([t3code#5731](pingdotgg#5731))
- Show pointer cursors for clickable controls and actions
([t3code#5716](pingdotgg#5716))
- Resume Claude sessions without falsely completing skipped turns
([t3code#5710](pingdotgg#5710))
- Stop the active Codex turn before queued follow-ups
([t3code#5762](pingdotgg#5762))
- Keep pinned thread ordering stable while saving changes
([t3code#5767](pingdotgg#5767))
- Show multi-device usage progress while totals load
([t3code#5772](pingdotgg#5772))
- Remove Cost quality panel from the Usage page
([t3code#5756](pingdotgg#5756))
- Remove the limited project settings modal
([t3code#5768](pingdotgg#5768))

</details>

<details>
<summary>Regenerated rolling fork-features summary (excerpt, for issue
#43)</summary>

## Added

- Identify yngatech builds through names, icons, palettes, and About
details ([#3](#3),
[#27](#27),
[#29](#29),
[#30](#30),
[#56](#56))
- Choose and preview sounds for completed agent turns
([#5](#5),
[#7](#7),
[#19](#19))
- Detect GitHub outages and show status in the sidebar
([#14](#14))
- Show unsent thread drafts with sidebar pencil indicators
([#23](#23))
- Start new threads with GitHub issues as context
([#31](#31))
- Open thread pull or merge requests from command palette
([#46](#46))
- Synchronize existing-thread text and composer settings across
connected devices ([#39](#39),
[#44](#44))

## Improved

- Inspect full commands, labeled streams, numeric exit codes, and
failures ([#11](#11),
[#4](#4),
[#36](#36))
- Close terminals directly from the grouped terminal list
([#22](#22))
- Show clearer snooze countdowns near hour and day boundaries
([#45](#45))
- Show setup script outcomes in the thread timeline
([#40](#40))
- Install yngatech alongside upstream T3 Code on Windows
([#49](#49))

</details>

## Rollout

The generator and workflow changes take effect on the next nightly. The
tooltip parser change ships inside the app, so currently installed
builds still show the mixed list until users update onto a build
containing it.

---------

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:L vouch:trusted PR author is trusted by repo permissions or the VOUCHED list.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant