Repository navigation
Conversation
2 of 15 tasks
This was referenced Oct 19, 2026
Merged
Contributor
This was referenced Oct 19, 2026
Closed
gHashTag
enabled auto-merge (squash)
October 19, 2026 02:58
This was referenced Oct 19, 2026
scripts/tri: give the t27t arm its own line, so the docs check finds tri t27t (Closes #10807)
#10809
Merged
This was referenced Oct 19, 2026
- windows.t27: open-space bitmask (SPACES_SEED, new_space/add_space/ remove_space, drop_sessions_in, after_drop); session byte now 1+k*8+s; REPO_LINK_TEXT/REPO_URL/FOOT_H foot constants; tests for both. - queen.t27: C_NEW_SPACE, C_CLOSE_SPACE, C_REPO_LINK controls. - glass_window.t27: "+" on the SPACES label, hover x on space rows, black foot strip with the repo link (opens github.com/gHashTag/t27); spaces persist under t27os.spaces, sessions under t27os.sessions2; layout test corrected to five chat rows above the foot. Refs #10782 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- queen.t27: FLAME_CORE/MID/BASE stops (bright cyan cone at the edge, vivid blue body, deep violet-blue base), 30 bands over 44 pt with a cubic falloff, flame_wave/flicker (3 s breathing plus tongues that travel along the bands, stronger at the outer tips), core_alpha for the blurred cone hairline; test rewritten for the flame. - glass_window.t27: draw_edge_glow colours each strip by flame_rgb and flicker on the frame count, then draws the cone hairline with a 22 pt blue CGContextSetShadowWithColor halo. Refs #10782 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
doctor.t27 holds every decision: walk roots and depth, skipped names, agent roots, the per-repo checks, the flags (duplicate clone, agent copy, made several times, worktree, dirty, unpushed), keep reasons, row groups, the two-step remove/confirm click, auto-bind ranks and panel layout, with tests. glass_window.t27 does only the host plumbing: the paced directory walk and rescan, .git vanish check, NSTask jobs for git/du, the defaults-persisted slots and hidden list, the DOCTOR foot link and panel, and the move to the Trash after a per-row confirm. A repo with uncommitted changes or unpushed commits is never offered for removal. Desktop, Documents, Downloads, Dropbox and OrbStack are skipped: a stat on the iCloud-backed Desktop blocked the main thread for minutes. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…ty_client lands) Clicking a Claude Code (AGENT 0) row under AGENTS opens a terminal pane in the chat's content area: a cell grid of u32 codepoints from specs/t27os/vt.t27, drawn monospace, black and white, with a white block cursor that stays solid while typing and blinks when idle. - term_pane.t27: grid sizing from the content area, cell geometry, cursor blink, key-to-bytes (Return/Tab/Delete/Esc, arrows, Home/End, PgUp/PgDn, forward delete, ctrl letters, UTF-8), and the offline echo. 6 tests, 0 vacuous. - vt.t27: copied verbatim from the pty-server worktree (6066dfb) so this branch builds alone; identical add/add merges cleanly. - glass_window.t27: draw_term, key forwarding (every non-Cmd key goes to the pane), per-frame open/resize/read, and stand-ins term_connect/term_spawn/ term_keys/term_read/term_resize for specs/t27os/pty_client.t27. Until that lands they answer "not connected" and the pane echoes keys into the grid. cwd is the space's bound folder, home when unbound. Refs #10782 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Owner request: the sidebar footer link text changes from I LOVE OPEN SOURCE to OPEN SOURCE T27. Same repository link, same style. The glass_window.t27 header line that describes the foot is updated, and the formerly vacuous foot test in windows.t27 now checks the words at runtime. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…e PTY server (Refs #10782) Pure logic with run-time asserted tests: the four pane states from hooks and output quietness, the session manifest line and restore plan, the socket frame format and scrollback ring, and a minimal VT cell grid. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
… the UI and restore after a server kill (Refs #10782) pty_server owns one PTY per pane, serves pty_proto frames on ~/.t27os/pty.sock, keeps a 64 KiB ring per pane, writes a record per pane under ~/.t27os/sessions and restores by the RESUME_* rules on start (a resume that dies at once relaunches fresh). Claude hooks drive pane_state; T27OS_HOOK / T27OS_CTL / T27OS_INSTALL modes cover the hook, a tiny client and the launchd plist. Needs @extern (t27b host boundary, 865b4ee). Decisions live in pty_logic.t27 with run-time tests. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
…(Refs #10782) The terminal pane no longer runs a stub. Opening a Claude Code chat connects to ~/.t27os/pty.sock, lists the server's panes, reuses the k-th pane of that agent for the k-th chat (tp_pick_pane) or spawns one in the space's folder, attaches, sends keys with client_keys and polls client_read each frame, feeding the bytes to vt.t27. Without a server the pane says offline, echoes keys locally and retries every TP_RETRY frames. Checked on the Mac: a live claude renders in the window, typed text reaches it, and after quitting and reopening the app the same pane (same claude pid, same draft) is back. RESIZE is still a stub (t27#10902), so panes are 80x24. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…(Refs #10782) Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
…#10782) Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
…l + SIGWINCH) - pty_proto: TIOCSWINSZ, SIGWINCH, resize_ok, put_winsize, ws_pack/ws_cols/ws_rows (+ test). - pty_sys: sys_set_winsize binds __ioctl, the fixed-argument syscall stub that the variadic ioctl() wraps, so no variadic @extern is needed (t27#10902 stays open). - pty_logic: G_WINSZ keeps each pane's last size (two panes per word). - pty_server: OP_RESIZE sets the pty size and signals the pane's group; launch uses the stored size, 80x24 by default. - pty_client: client_resize. - term_pane / glass_window: grid caps 400x120 (48000 cells); the window sends RESIZE whenever the fitted grid changes, before the replay. Live on the Mac: widening the window took the pane's pty to 56x167 and claude's input box and status line to the full pane width. Refs #10782 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Audit P0 items 2-4 for the T27 OS window (Refs #10782): - frame_gate.t27: fold the visible state into one key; skip the draw when unchanged (forced draw every 15 frames), wait 0.5 s for events once quiet for 30 frames and no pane is live. The clock enters the key only with the queen panel open, the cursor blink only with a pane open, the mouse only inside the scene. Idle CPU 25-55% -> 0.5-3%. - term_pane.t27: tp_settle/tp_size_due; vt_init + ring replay run once after the size has held for 6 frames instead of every drag frame. - glass_window.t27: setContentMinSize 480x320, accepts mouse-moved. Refs #10782 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
… reboots Owner bug 2026-10-19: after a reboot the open windows and history were gone and every Claude pane came back on the default model. - window_keep.t27 (new, 4 tests): the window folds screen, spaces, task, open pane, sidebar and flags into one key and writes it to the user defaults once it has held still for 15 frames; every launch restores it. Holding Option at launch is the explicit clean start. The frame stays under the AppKit autosave name. - session_store.t27: record v2 adds the model; v1 still parses. build_command/fresh_command pass --model on resume and relaunch; the last model in the Claude transcript catches /model switches. - pty_logic.t27 / pty_server.t27: the model comes from the SPAWN payload (T27OS_MODEL), the SessionStart hook and the transcript, is kept per pane and saved in the record. The launchd plist (T27OS_INSTALL=1) now carries PATH, LANG, TERM and a log path, so the server starts at login and restore_all resumes the panes by session id. Lab test-report: session_store 16/0, pty_logic 13/0, window_keep 4/0. Refs #10782 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
… master Refs #10782 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…els (M11) Every drawn frame rebuilt each label from scratch: a font lookup, an attribute dictionary, an attributed string and a CoreText line, then released it. Lines now live in a table keyed by style and text (text compared by content, so a renamed space never shows a stale line); the table empties at TC_CAP entries. Space names, branches and agent names in the sidebar are cut with an ellipsis by CTLineCreateTruncatedLine where they would reach the row's close x. Pure logic in specs/t27os/text_cache.t27 (lab test-report: 4 pass, 0 FAIL); glass_window built with t27b on the Railway lab, linked and run on the Mac. Refs #10782 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
gHashTag
force-pushed
the
feat/t27os-petal-menu
branch
from
October 19, 2026 10:05
8f67a31 to
4c451b9
Compare
Owner
Author
|
Base rebased onto master (seal currency: master resealed
Stacked branches: |
Contributor
PR DashboardGenerated at: 2026-10-19 10:13:03 UTC
Summary
Seal Status
|
This was referenced Oct 19, 2026
Merged
This branch has not been deployed
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.
Refs #10782 (milestone M1 of the T27 OS epic)
What
specs/t27f/petal_menu.t27(new, moduleT27fPetalMenu) is the single home of the 27-petal 999 triangle menu that trios draws through QueenUILib. Its seven layers:specs/t27f/frontend.t27registers surfaceSF_PETAL_MENU(status none, maker none, so it is never claimed made) and intentI_OS_HOME.Why
trinity/apps/queen/QueenUI/Widgets/TriangleLogo.swift), ported from Zig.Screen.screenForBlockholds 28 screens for 27 petals, sosettingsis unreachable, and its names disagree withTriangleLogo.worlds.Verified (Railway lab, t27c release, zig 0.16.0)
test-report specs/t27f/petal_menu.t27: 10/10 pass, 0 vacuous (432 vertex asserts, 27 centroid hits, seam and hollow-centre cases, fills, tap/back over all 27 petals).test-report specs/t27f/frontend.t27: 8/8 pass, 0 vacuous.icarus-lowerable specs/t27f/petal_menu.t27:not_lowerabletoday, tracked as M4.🤖 Generated with Claude Code