Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
112 commits
Select commit Hold shift + click to select a range
5ace162
Initial commit: zeddy agent multiplexer
rengwu Aug 31, 2026
7dfdc58
Implement Zed-shaped Chartr workspaces
rengwu Aug 31, 2026
166e03f
Implement Zed-style pane interactions
rengwu Aug 31, 2026
38b5ade
Fix pane drag target selection
rengwu Aug 31, 2026
0965e81
Implement mixed workspace tabs and live session titles
rengwu Aug 31, 2026
debf2f5
Restore session status chrome and empty pane controls
rengwu Aug 31, 2026
af4ef7a
Make terminal resizing follow pane topology changes
rengwu Aug 31, 2026
9da0e43
feat: unify workspace chrome and settings
rengwu Sep 1, 2026
5b2e4e9
refactor: standardize interface typography
rengwu Sep 1, 2026
e25aaba
Refine tab dragging and pane chrome
rengwu Sep 1, 2026
07352fb
Refine shared list row spacing
rengwu Sep 1, 2026
73fee05
Fix dragged tab preview positioning
rengwu Sep 1, 2026
408e176
Refine themed sidebar and compact tab picker
rengwu Sep 1, 2026
b9108f4
Use Zed TabBar for workspace tabs
rengwu Sep 1, 2026
2e6e843
feat: make sidebar spaces drag-sortable
rengwu Sep 1, 2026
d93a359
Add pane ungrouping
rengwu Sep 1, 2026
cbdcbdd
Add names for grouped tabs
rengwu Sep 1, 2026
08d1eba
Add chrome view menu and space activation
rengwu Sep 1, 2026
99f9455
Improve tab strip layout
rengwu Sep 1, 2026
8d4b296
Refine active control styling
rengwu Sep 1, 2026
720a9c8
Standardize settings page layouts
rengwu Sep 1, 2026
a9f6a49
Add pane-scoped new session buttons
rengwu Sep 1, 2026
4d66f97
Add custom macOS title bar
rengwu Sep 1, 2026
1789360
Add terminal scrollback
rengwu Sep 2, 2026
3283191
Move workspace controls into macOS title bar
rengwu Sep 2, 2026
a368dba
Unify workspace tab chrome
rengwu Sep 2, 2026
b96cca5
Use libghostty for terminal key encoding
rengwu Sep 2, 2026
1da1267
Route terminal scrolling to full-screen TUIs
rengwu Sep 2, 2026
9d6351c
Adopt Zed's terminal stack for Herdr sessions
rengwu Sep 2, 2026
97ebd97
Add macOS development disk image builder
rengwu Sep 2, 2026
df36e59
Fix implicit root space on launch
rengwu Sep 2, 2026
13f70ea
Polish workspace chrome spacing
rengwu Sep 2, 2026
cb30e4e
Balance terminal grid padding
rengwu Sep 2, 2026
6d3eaac
Add Chartr theme playground
rengwu Sep 3, 2026
722d85c
feat: add plugin pane launcher and anchored menus
rengwu Sep 3, 2026
f921cf9
feat: add hosted browser plugin
rengwu Sep 3, 2026
7eece49
Stop plugin webviews immediately on close
rengwu Sep 3, 2026
ba83e88
Hide popup trigger tooltips while menus are open
rengwu Sep 3, 2026
2c3e21e
Separate grouped pane tab strips
rengwu Sep 3, 2026
c541d7e
Polish plugin workspace integration
rengwu Sep 3, 2026
4f89845
Move workspace errors into a problems menu
rengwu Sep 4, 2026
8c71b15
Style close space as danger action
rengwu Sep 4, 2026
b2023c0
Polish application chrome styling
rengwu Sep 4, 2026
3f4e3c3
Polish problems UI and workspace settings
rengwu Sep 4, 2026
5e0e7e1
Apply hotkey changes without restart
rengwu Sep 4, 2026
5ab274c
Update shipped workspace defaults
rengwu Sep 4, 2026
391d115
Add agent registration plugin
rengwu Sep 4, 2026
ca0e0a6
Rebuild agent launcher as native plugin
rengwu Sep 4, 2026
669dde7
fix tooltip popup sizing
rengwu Sep 4, 2026
7d5409d
fix popup trigger toggle behavior
rengwu Sep 4, 2026
19b0e5b
update browser tabs from document titles
rengwu Sep 4, 2026
034aa8d
polish workspace and plugin controls
rengwu Sep 4, 2026
ee7ca8d
polish workspace focus and settings UI
rengwu Sep 4, 2026
b03fc6b
refactor zeddy workspace modules
rengwu Sep 5, 2026
c2a5bff
add web plugin host support
rengwu Sep 5, 2026
e396eaa
persist workspace state asynchronously
rengwu Sep 5, 2026
ca846f4
extend web plugin runtime bridge
rengwu Sep 5, 2026
c6a9ed4
add skills plugin management
rengwu Sep 5, 2026
290a352
add spaces sidebar actions
rengwu Sep 5, 2026
d179369
add Wayfinder workflow
rengwu Sep 5, 2026
e2d869e
prevent native tooltips raising inactive windows
rengwu Sep 5, 2026
0b46608
make passive macOS popups ignore focus and clicks
rengwu Sep 6, 2026
4a6a99e
manage plugin prerequisites and bundled removal
rengwu Sep 6, 2026
8a717db
add native plugin settings and pane creation drag
rengwu Sep 6, 2026
b0bcce3
bundle additional terminal fonts
rengwu Sep 6, 2026
d414d9a
refresh sidebar and tab chrome
rengwu Sep 6, 2026
ed57ab4
allow grouped workspace tabs to drag
rengwu Sep 6, 2026
08988eb
preview workspace tab reordering
rengwu Sep 6, 2026
04847ac
restore trailing tab divider
rengwu Sep 6, 2026
3e0f4f2
align rounded tabs in taller strip
rengwu Sep 6, 2026
53c1592
rename plugin pane creation to surface
rengwu Sep 6, 2026
906463b
refine tab strip visual hierarchy
rengwu Sep 6, 2026
504247b
redesign surface picker cards
rengwu Sep 6, 2026
01486e0
refine surface setup and pane drag feedback
rengwu Sep 6, 2026
7f3b39e
align agent launcher controls
rengwu Sep 6, 2026
81d95e5
size tabs evenly before scrolling
rengwu Sep 6, 2026
0942b52
fade truncated tab titles
rengwu Sep 6, 2026
bf7726d
move example plugins out of default bundles
rengwu Sep 6, 2026
076fc9e
separate plugin information from configuration
rengwu Sep 6, 2026
f718513
refresh workspace theme palettes
rengwu Sep 6, 2026
6649692
improve Wayfinder ticket navigation
rengwu Sep 6, 2026
1a51c27
refine sidebar scrollbar feedback
rengwu Sep 6, 2026
f8d8c66
bundle interface font choices
rengwu Sep 6, 2026
4597b93
add workspace shortcut commands
rengwu Sep 6, 2026
b31e997
animate workspace presentation changes
rengwu Sep 6, 2026
f41e621
Refine Wayfinder interface and icons
rengwu Sep 7, 2026
01d1a20
Merge complete Rust rewrite history into chartr
rengwu Sep 7, 2026
2c75939
ci: install the pinned Rust and Zig toolchains
rengwu Sep 7, 2026
ed32bc8
fix: preserve Chartr shortcuts inside terminals
rengwu Sep 7, 2026
6cb6715
fix: explicitly release Wayfinder launch locks
rengwu Sep 7, 2026
34641af
ci: retain the Rust cache after failed checks
rengwu Sep 7, 2026
80ede61
chore: standardize chartr naming and refresh project docs
rengwu Sep 7, 2026
934bd0a
Update README.md
rengwu Sep 7, 2026
80ca577
Remove duplicate screenshot from README
rengwu Sep 7, 2026
b198c94
Update README to specify Rust as the build language
rengwu Sep 7, 2026
d1e39d6
feat: add bundled prompts library
rengwu Sep 7, 2026
ef6be9c
style: refine workspace chrome borders
rengwu Sep 7, 2026
5402a35
feat: add mobile companion access
rengwu Sep 9, 2026
e8fffc0
feat: add markdown prompt composer
rengwu Sep 9, 2026
41cedba
docs: add product research archive
rengwu Sep 9, 2026
0fd083f
Merge branch 'rewrite/rust' of github.com:rengwu/chartr into rewrite/…
rengwu Sep 10, 2026
ab7a100
feat: add native agent conversations
rengwu Sep 11, 2026
fc3a4d2
docs: record conversations design research
rengwu Sep 11, 2026
dcd1db6
feat: improve markdown prompt live sync
rengwu Sep 11, 2026
8be4d68
refactor: simplify agent conversations into inbox
rengwu Sep 11, 2026
f9198c4
refactor: streamline inbox terminal flow
rengwu Sep 11, 2026
e6fd476
feat: restore inbox transcript discovery
rengwu Sep 11, 2026
3af435a
feat: show inbox in the workspace sidebar
rengwu Sep 12, 2026
3e9c937
refactor: simplify inbox selection UI
rengwu Sep 12, 2026
decddba
refactor: simplify workspace space scope
rengwu Sep 12, 2026
644e65a
design: prototype ended inbox states
rengwu Sep 12, 2026
2c03dba
feat: refine workspace and inbox navigation
rengwu Sep 12, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
131 changes: 39 additions & 92 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -1,113 +1,60 @@
# Continuous checks on every push and PR. The supported artifact is pure Go, so
# the main lane is one cgo-free Ubuntu job. Windows gets its own job for one
# reason: the ConPTY-backed PTY layer (ADR 0006 as amended) is real shipped code
# on the supported Windows binary, so it is smoke-tested here on every change —
# a PTY round-trip through go-pty's ConPTY, driven by the same Manager surface an
# operator's shell tab uses (internal/terminal/pty_windows_test.go).
name: ci
name: CI

on:
push:
branches: [main]
pull_request:

permissions:
contents: read

jobs:
check:
name: check + test (linux, cgo-free)
runs-on: ubuntu-latest
env:
CGO_ENABLED: "0"
test:
name: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
os: [macos-15, ubuntu-24.04]
runs-on: ${{ matrix.os }}

steps:
- uses: actions/checkout@v4

- uses: actions/setup-go@v5
with:
go-version: "1.26"
cache: true

- uses: actions/setup-node@v4
with:
node-version: "24"
cache: npm
cache-dependency-path: web/package-lock.json

# Build the embedded SPA first: the embed test compiles against web/dist,
# and `make check`/`make test` expect a real dist, not just the .gitkeep.
- name: Build frontend
run: make web

- name: Frontend unit tests
run: cd web && npm test

- name: Static checks (go vet + svelte-check)
run: make check

- name: Shell script syntax
run: bash -n scripts/*.sh

- name: Go tests
run: make test

# The chrome is monochrome plus --destructive (ADR 0012); the only amber in
# the product is the star-map island's `claimed` star, which lives in the
# canvas renderer (bundled into JS, never the chrome CSS). So a literal
# `amber` in the built CSS is a Tailwind amber-* utility or a raw keyword
# leaking into the chrome — fail on it. The built CSS is the ground truth.
- name: No amber in built chrome CSS
- name: Install Linux dependencies
if: runner.os == 'Linux'
run: |
if grep -rniE '\bamber\b' web/dist/assets/*.css; then
echo "::error::amber found in built chrome CSS (ADR 0012: the chrome is monochrome + --destructive)"
exit 1
fi
sudo apt-get update
sudo apt-get install -y \
build-essential clang cmake pkg-config \
libasound2-dev libfontconfig-dev libglib2.0-dev libssl-dev \
libva-dev libvulkan1 libwayland-dev libx11-xcb-dev \
libxkbcommon-x11-dev libzstd-dev libwebkit2gtk-4.1-dev

# The Linux shell compiles on every change, not only at release time. This is
# the cheap half of the release gate and it exists because of how the previous
# breakage went unnoticed: webview_go pins `pkg-config: webkit2gtk-4.0`, that
# package vanished from the runner image, and because the shell was built only
# inside a `continue-on-error` release job, an entire version shipped with no
# Linux app and nothing said so. Compiling here means the pin can only rot in
# front of a red check. The full AppImage smoke stays in release.yml — it needs
# a container and a screenshot, which is too slow to put on every push.
linux-shell-build:
name: linux webview shell builds (cgo)
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Install the pinned Rust toolchain
run: rustup show

- uses: actions/setup-go@v5
- uses: Swatinem/rust-cache@v2
with:
go-version: "1.26"
cache: true

- name: Install WebKitGTK toolchain
run: |
sudo apt-get update
sudo apt-get install -y libwebkit2gtk-4.1-dev libgtk-3-dev
cache-on-failure: true

# No frontend build: the shell embeds web/dist, and the committed .gitkeep
# is enough to compile the embed package. This job is asking whether the
# cgo links, not whether the SPA is current.
- name: Build the shell
run: make webview
- name: Install Zig for Herdr
uses: mlugg/setup-zig@d1434d08867e3ee9daa34448df10607b98908d29 # v2
with:
version: 0.15.2

windows-smoke:
name: windows PTY smoke (ConPTY round-trip)
runs-on: windows-latest
env:
CGO_ENABLED: "0"
steps:
- uses: actions/checkout@v4
- name: Fetch the pinned Herdr sidecar
run: ZIG="$(command -v zig)" sh vendor/herdr/fetch.sh

- uses: actions/setup-go@v5
# The workspace's terminal encoder requires a newer Zig than Herdr.
- name: Install Zig for the workspace
uses: mlugg/setup-zig@d1434d08867e3ee9daa34448df10607b98908d29 # v2
with:
go-version: "1.26"
cache: true
version: 0.16.0

- name: Check formatting
run: cargo fmt --all --check

- name: Build and test
run: cargo test --workspace --locked --no-fail-fast

# The dist directory needs the committed .gitkeep to compile the embed
# package; the terminal test never touches the SPA, so no frontend build is
# needed here — just the ConPTY round-trip.
- name: ConPTY round-trip smoke test
run: go test -v -run TestConPTYRoundTrip ./internal/terminal
- name: Build the build-time native module example
run: cargo check --manifest-path examples/plugins/hello/Cargo.toml --locked
Loading
Loading