Conversation
The TUI's own docstring called it "Hermes-shaped" while seven places in the
code still wore Claude Code's orange (#d97757) — the exact copy-another-product
mistake symbio_desktop/DESIGN.md records for the desktop window, which wore
Claude's cream and orange until 2026-09-27.
Both halves are now deliberate. The SHAPE is Hermes Agent's and the terminal
says so: MARK is the caduceus, GOLD is #ffd700 (Hermes Agent's own gold, and
exactly xterm colour 220, so it renders honestly on a 256-colour terminal as
well as a truecolour one). The GROUND stays Symbio's, so the window is not a
copy of the thing it is modelled on — pond teal and tabby ink, read off the
desktop's own :root tokens.
* symbio_tui/theme.py — new. The palette in one place, with the reasoning
for the split written down next to the values.
* symbio_tui/app.py, widgets.py, faces.py — all seven #d97757 replaced;
the banner now leads with the caduceus; the two "Claude Code" docstrings
corrected to say Hermes Agent, which is what the code actually borrows.
* symbio/app/chat_style.py — _ACCENT moved from xterm 173 to 220 (#ffd700)
and the caduceus added to the welcome frame and the name row. ANSI-256,
hex and CSS are three representations for three media, so the value is
repeated, not the meaning.
Verified by running it: the Textual stylesheet parses under textual 8.2.8
(CSS length 951, four gold occurrences, zero orange), the narrow-width banner
ladder returns the face alone below 12 columns, and the CLI welcome panel
renders the frame in 38;5;220 with the caduceus inside it.
Separately, the genuine lint findings rather than the cosmetic ones:
* chat_tools.py — `how` was assigned "pressed" and "clicked" and never read
a single time. Deleted; it was doing nothing.
* chat.py — `except Exception as e:` bound a name it never used.
* chat.py — the stream default was a lambda assigned in the call site;
it is now `_default_stream_chunk`, so a traceback in a stream write has
something to point at.
* Plus 33 F541 (f-strings with no placeholder), the E401 one-line import in
ops_eval.py, and two duplicate imports in tests.
NOT touched, deliberately: the 134 F401 "unused imports". Most are load
bearing — symbio/__init__.py's are the public API, and chat.web, chat.sandbox
and chat.training are monkeypatch anchors in tests/test_gui_launch.py and
tests/test_sandbox_remote.py. Ruff cannot see a reference that only exists in
another file's test. Same for the 48 E402: deliberate, post-sys.path and
inside a try/except for the optional root tag_rag module.
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.
The TUI's own docstring called it "Hermes-shaped" while seven places in the code still wore Claude Code's orange (#d97757) — the exact copy-another-product mistake symbio_desktop/DESIGN.md records for the desktop window, which wore Claude's cream and orange until 2026-09-27.
Both halves are now deliberate. The SHAPE is Hermes Agent's and the terminal says so: MARK is the caduceus, GOLD is #ffd700 (Hermes Agent's own gold, and exactly xterm colour 220, so it renders honestly on a 256-colour terminal as well as a truecolour one). The GROUND stays Symbio's, so the window is not a copy of the thing it is modelled on — pond teal and tabby ink, read off the desktop's own :root tokens.
Verified by running it: the Textual stylesheet parses under textual 8.2.8 (CSS length 951, four gold occurrences, zero orange), the narrow-width banner ladder returns the face alone below 12 columns, and the CLI welcome panel renders the frame in 38;5;220 with the caduceus inside it.
Separately, the genuine lint findings rather than the cosmetic ones:
howwas assigned "pressed" and "clicked" and never read a single time. Deleted; it was doing nothing.except Exception as e:bound a name it never used._default_stream_chunk, so a traceback in a stream write has something to point at.NOT touched, deliberately: the 134 F401 "unused imports". Most are load bearing — symbio/init.py's are the public API, and chat.web, chat.sandbox and chat.training are monkeypatch anchors in tests/test_gui_launch.py and tests/test_sandbox_remote.py. Ruff cannot see a reference that only exists in another file's test. Same for the 48 E402: deliberate, post-sys.path and inside a try/except for the optional root tag_rag module.