You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Org rename gui-cs → tui-cs. GitHub auto-redirects all github.com/gui-cs/*
URLs; this updates internal references so the repo is self-consistent.
Mechanical: every `gui-cs` (hyphen, the org login) → `tui-cs`. The historical
brand `gui.cs` (dot) is left as-is. Machine-local absolute paths left untouched.
Part of the org-wide gui-cs → tui-cs rename. Merge AFTER the org rename.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
**NuGet:** Main publishes to package id `clet` (see [D-024](../../specs/decisions.md)). Prerelease versions (`-rc`) are hidden from default `dotnet tool install -g clet`; consumers opt in with `--prerelease`.
59
59
60
-
**Homebrew / WinGet:** Only on stable main releases (version has no `-` suffix). Both are placeholders until `gui-cs/homebrew-tap` exists and WinGet tooling is wired (D-012).
60
+
**Homebrew / WinGet:** Only on stable main releases (version has no `-` suffix). Both are placeholders until `tui-cs/homebrew-tap` exists and WinGet tooling is wired (D-012).
61
61
62
62
## Terminal.Gui versions
63
63
@@ -77,7 +77,7 @@ Release builds reject Terminal.Gui or Terminal.Gui.Editor versions older than th
77
77
| Name | Type | Used by | Purpose |
78
78
|------|------|---------|---------|
79
79
|`NUGET_API_KEY`| Secret |`publish-nuget`| Push packages to nuget.org |
80
-
|`HOMEBREW_TAP_TOKEN`| Secret |`publish-homebrew`| Push to `gui-cs/homebrew-tap`|
80
+
|`HOMEBREW_TAP_TOKEN`| Secret |`publish-homebrew`| Push to `tui-cs/homebrew-tap`|
81
81
|`HOMEBREW_TAP_ENABLED`| Variable |`publish-homebrew`| Set to `true` to enable |
82
82
|`WINGET_ENABLED`| Variable |`publish-winget`| Set to `true` to enable |
Copy file name to clipboardExpand all lines: CLAUDE.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -97,7 +97,7 @@ The repo intentionally splits "design intent" from "current code" from "queued c
97
97
-**`specs/clet-spec.md`** — authoritative design document. Planned clets, exit code semantics, JSON schema (§4.3 + §4.3.1 versioning + §4.3.2 per-clet shapes), milestone roadmap (§7), risks (§8), open questions (§9), auto-discovery exploration (§11). Where the spec and current code diverge, the decisions log says why. **§6 (Testing) is a thin pointer** to `tests/SPEC.md`.
98
98
-**`tests/SPEC.md`** — authoritative testing strategy. Nine test layers, tier matrix (which layers run when), per-layer cases, harness shapes, golden-file conventions. Lives next to the test projects so it stays in sync. The main spec defers to it for everything in `tests/`.
99
99
-**`specs/decisions.md`** — historical log of cross-cutting decisions. **Read-only reference** — do not append new entries. New design rationale goes in the PR description instead. Existing entries are still useful context for understanding *why* something was built a certain way (e.g. D-006 for the hand-rolled parser, D-007 for deferred TUIcast).
100
-
-**[Bar-raise backlog issue #11](https://github.com/gui-cs/clet/issues/11)** (label `bar-raise`) — critique that's been raised, considered, and *not yet* acted on. Before claiming a section is "done," check the backlog for queued items in that area. New design pushback goes there, not into a side conversation.
100
+
-**[Bar-raise backlog issue #11](https://github.com/tui-cs/clet/issues/11)** (label `bar-raise`) — critique that's been raised, considered, and *not yet* acted on. Before claiming a section is "done," check the backlog for queued items in that area. New design pushback goes there, not into a side conversation.
101
101
-**`docs/runbooks/release-rollback.md`** — operational runbook for withdrawing a bad release across Homebrew/WinGet/NuGet. Draft until exercised at v0.9.
Copy file name to clipboardExpand all lines: README.md
+9-9Lines changed: 9 additions & 9 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -33,8 +33,8 @@ Works for humans and AI agents alike.
33
33
### Release (not available until v1.0 is released)
34
34
35
35
```sh
36
-
brew install gui-cs/tap/clet # macOS / Linux
37
-
winget install gui-cs.clet # Windows 10/11
36
+
brew install tui-cs/tap/clet # macOS / Linux
37
+
winget install tui-cs.clet # Windows 10/11
38
38
dotnet tool install -g clet # any platform with .NET SDK
39
39
```
40
40
@@ -143,7 +143,7 @@ Exit codes:
143
143
144
144
## RC feedback
145
145
146
-
clet is in **release candidate** status ([milestone tracker](https://github.com/gui-cs/clet/issues/33)). If something doesn't work, looks wrong, or is just confusing, **[file an issue](https://github.com/gui-cs/clet/issues/new)**. Include:
146
+
clet is in **release candidate** status ([milestone tracker](https://github.com/tui-cs/clet/issues/33)). If something doesn't work, looks wrong, or is just confusing, **[file an issue](https://github.com/tui-cs/clet/issues/new)**. Include:
- Your terminal + OS (e.g. "Windows Terminal on Windows 11", "iTerm2 on macOS 15").
@@ -228,7 +228,7 @@ Here's `clet color` with the Anders theme applied:
228
228
229
229

230
230
231
-
All clets render with the `Base` color scheme, so customizing `Base` controls every clet's appearance. See the [Terminal.Gui Configuration docs](https://gui-cs.github.io/Terminal.Gui/docs/configuration.html) for the full schema.
231
+
All clets render with the `Base` color scheme, so customizing `Base` controls every clet's appearance. See the [Terminal.Gui Configuration docs](https://tui-cs.github.io/Terminal.Gui/docs/configuration.html) for the full schema.
232
232
233
233
### Q: Key bindings?
234
234
@@ -256,11 +256,11 @@ Releases from `main` publish prerelease packages to NuGet (versioned `1.x.y-rc.N
256
256
257
257
### Q: How do I report a bug or give feedback?
258
258
259
-
[File an issue](https://github.com/gui-cs/clet/issues/new). That's the only feedback channel — no Discussions, no forum. See the [RC feedback](#rc-feedback) section above for what to include.
259
+
[File an issue](https://github.com/tui-cs/clet/issues/new). That's the only feedback channel — no Discussions, no forum. See the [RC feedback](#rc-feedback) section above for what to include.
260
260
261
261
## Native binaries install
262
262
263
-
Every [GitHub release](https://github.com/gui-cs/clet/releases) ships standalone NativeAOT binaries for the three primary platforms. **No .NET runtime required** — single-file executable, ~20 MB, cold-start in tens of milliseconds.
263
+
Every [GitHub release](https://github.com/tui-cs/clet/releases) ships standalone NativeAOT binaries for the three primary platforms. **No .NET runtime required** — single-file executable, ~20 MB, cold-start in tens of milliseconds.
264
264
265
265
| Platform | Asset |
266
266
|---|---|
@@ -273,7 +273,7 @@ Every [GitHub release](https://github.com/gui-cs/clet/releases) ships standalone
273
273
**macOS (Apple Silicon):**
274
274
```sh
275
275
# Replace <version> with the release tag, e.g. 1.0.0-develop.41
Copy file name to clipboardExpand all lines: docs/runbooks/release-rollback.md
+11-11Lines changed: 11 additions & 11 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -2,12 +2,12 @@
2
2
3
3
> **Status:** DRAFT — exercised once before v0.9 RC per `specs/clet-spec.md` §7. Until that exercise has happened, treat every step here as "best guess; verify before executing."
4
4
5
-
> **Audience:** the maintainer paged at 3am for a `clet` release that escaped the §5.3 smoke gate. Assume you did not ship the bad release. Assume you have repo-admin on `gui-cs/clet`, push access to `gui-cs/homebrew-tap`, the WinGet PR-author cred, and the NuGet API key in a known location.
5
+
> **Audience:** the maintainer paged at 3am for a `clet` release that escaped the §5.3 smoke gate. Assume you did not ship the bad release. Assume you have repo-admin on `tui-cs/clet`, push access to `tui-cs/homebrew-tap`, the WinGet PR-author cred, and the NuGet API key in a known location.
6
6
7
7
`clet` auto-publishes from the `main` release workflow:
8
8
9
9
-**Prerelease phase** (`-rc` suffix from `src/Clet/Clet.csproj`): NuGet `clet` prerelease only (off `latest`; opt-in via `--prerelease`). See [D-024](../../specs/decisions.md) for the package id.
10
-
-**Stable phase** (no `-` suffix in version): NuGet `clet` (latest), Homebrew (gui-cs tap), WinGet (`microsoft/winget-pkgs`).
10
+
-**Stable phase** (no `-` suffix in version): NuGet `clet` (latest), Homebrew (tui-cs tap), WinGet (`microsoft/winget-pkgs`).
11
11
12
12
When the §5.3 smoke gate fails, the workflow halts and nothing reaches users — that case is an *aborted* release, not a *bad* release, and is out of scope for this runbook. This runbook covers the case where the gate let something through (a regression it didn't cover, a manifest bug, a signing failure mid-publish) and one or more channels carry a broken `clet`.
13
13
@@ -28,17 +28,17 @@ If you are not sure, rollback. Re-publishing later is cheap; pulling back a bad
28
28
29
29
> Run withdrawals **in parallel** if you have help. Each channel is independent; nothing here serializes.
30
30
31
-
### 2.1 Homebrew tap (`gui-cs/homebrew-tap`)
31
+
### 2.1 Homebrew tap (`tui-cs/homebrew-tap`)
32
32
33
33
**What happens to users:** Already-installed bad version stays on the user's machine until they `brew upgrade`. After withdrawal, `brew upgrade clet` resolves to the prior-known-good version.
2. Identify the commit that bumped `clet.rb` to the bad version.
39
39
3.**`git revert <sha>`** — never `--force` push, never `reset --hard`. The revert preserves the audit trail and re-pins to the prior version's bottle URLs and SHA256s.
5. Verify: on a fresh runner, `brew update && brew info gui-cs/tap/clet` should report the prior version.
41
+
5. Verify: on a fresh runner, `brew update && brew info tui-cs/tap/clet` should report the prior version.
42
42
6. Optional: post a one-liner to the tap repo's Discussions explaining the revert.
43
43
44
44
**Caveat:** Homebrew bottles are immutable on GitHub Releases by URL. The bad bottle URL still resolves; it's just no longer pointed to. If you need the bad bottle file *gone* (license/security reason), delete the asset from the GitHub Release manually — but `brew install` will then 404 for anyone who has the old formula in cache.
@@ -50,20 +50,20 @@ If you are not sure, rollback. Re-publishing later is cheap; pulling back a bad
50
50
**Steps:**
51
51
52
52
1. Fork `microsoft/winget-pkgs` if you don't already have a fork.
53
-
2. Delete the directory `manifests/g/gui-cs/clet/<bad-version>/` from the fork.
54
-
3. Open a PR titled `Remove gui-cs.clet <bad-version> (broken release)` with a one-paragraph explanation.
53
+
2. Delete the directory `manifests/g/tui-cs/clet/<bad-version>/` from the fork.
54
+
3. Open a PR titled `Remove tui-cs.clet <bad-version> (broken release)` with a one-paragraph explanation.
55
55
4. Microsoft's bot validates and merges if the manifest removal is clean. **Typical SLA: 2–24 hours.** There is no faster path; WinGet does not have an emergency-yank API.
56
56
5. Verify post-merge: `winget search clet` should no longer list the bad version.
57
57
58
-
**While the PR is pending,** consider posting a GitHub Release note on `gui-cs/clet` warning Windows users not to upgrade.
58
+
**While the PR is pending,** consider posting a GitHub Release note on `tui-cs/clet` warning Windows users not to upgrade.
59
59
60
60
### 2.3 NuGet (`clet`)
61
61
62
62
**What happens to users:** Existing installs continue to work. New installs of the unlisted version still resolve **if the user pins the version explicitly** — unlist hides from search/default-resolve, it does not hard-delete. New `dotnet tool install -g clet` (no version pin) resolves to the next-newest *listed* version.
63
63
64
64
**Steps:**
65
65
66
-
1. Sign in to `https://www.nuget.org` with the gui-cs account.
66
+
1. Sign in to `https://www.nuget.org` with the tui-cs account.
67
67
2. Navigate to `Manage Packages → clet → <bad-version>`.
68
68
3. Click **Unlist** and confirm. (`dotnet nuget delete` is a list-only op, equivalent — use the web UI for the audit trail.)
69
69
4. Verify: `dotnet tool search clet` should not surface the bad version.
@@ -87,7 +87,7 @@ Once channels are withdrawn (or while the WinGet PR is pending):
87
87
88
88
Within 48 hours of stabilization:
89
89
90
-
1. File an issue in `gui-cs/clet` titled `Incident: <TG_VERSION> rollback`. Tag `incident`. Include: timeline (UTC), trigger, blast radius (channels affected, estimated user count if available), root cause, fix.
90
+
1. File an issue in `tui-cs/clet` titled `Incident: <TG_VERSION> rollback`. Tag `incident`. Include: timeline (UTC), trigger, blast radius (channels affected, estimated user count if available), root cause, fix.
91
91
2. Add the failure mode as a new case to `tests/Clet.SmokeTests` (so a future regression of the same shape is caught) and to the §6.8 release-pipeline dry-run cases (so a future pipeline regression of the same shape is caught).
92
92
3. If a runbook step here was wrong or missing, **edit this file** in the same PR. The runbook must end the incident better than it started it.
93
93
@@ -102,7 +102,7 @@ Within 48 hours of stabilization:
102
102
## Open questions (resolve before v0.9)
103
103
104
104
-**Tag scheme for rollback patches** (see §3 step 3 above).
105
-
-**On-call rotation.** Who carries the pager during release weeks? `gui-cs` does not currently have a rotation; until it does, "the person who tagged the TG release" is the de facto owner.
105
+
-**On-call rotation.** Who carries the pager during release weeks? `tui-cs` does not currently have a rotation; until it does, "the person who tagged the TG release" is the de facto owner.
106
106
-**Paging channel.** GitHub release-issue auto-comment is not a pager. Matrix? Discord? Email-to-SMS? Decide and document here.
107
107
-**WinGet emergency contact.** Is there a faster path for Microsoft-bot-merged manifest removal in a security incident? Investigate before v0.9.
108
108
-**Asciinema artifact retention.** TUIcast captures a `.cast` per smoke run (§5.3). Retention policy? Indefinitely is cheap; document explicitly so post-incident replays are guaranteed available.
0 commit comments