Skip to content

Chore/strip tui - #9

Merged
rdasilveiracabral merged 3 commits into
mainfrom
chore/strip-tui
Jul 21, 2026
Merged

Chore/strip tui#9
rdasilveiracabral merged 3 commits into
mainfrom
chore/strip-tui

Conversation

@alessiodevoto

Copy link
Copy Markdown
Collaborator

Summary

Code (822988a9)

  • Deleted packages/nooa-cli/src/nooa_cli/commands/tui.py, commands/term.py, and the entire web/ subpackage (PTY server, xterm.js frontend).
  • Dropped the [web] extra and TUI-only hard deps (ipython, prompt-toolkit, rich, pydantic, mcp) from packages/nooa-cli/pyproject.toml.
  • Dropped now-unused pyte and ptyprocess from the root dev group.
  • Removed the nooa-tui, nooa-cli[web], and TUI-only entries from THIRD_PARTY_NOTICES.md.
  • Updated READMEs, CLI package description, and _SKIP_SECRETS_PRELOAD to reflect CLI-only scope.

Docs (2fc1045e)

  • Removed the TUI settings: config.toml → settings.yaml section from docs/guides/config-migration.md (documented config keys nothing reads anymore).
  • Rewrote the MCP section in examples/README.md to point at the core nooa[mcp] extra and MCPManager factory, dropping the TUI-specific settings.yaml block.
  • Reworded @slash_command and /commands references in skills/*/SKILL.md to point at the InteractiveAgent.slash_commands queue (the underlying primitive still exists in core) rather than "the TUI".

Tests (94f98cc6)

  • Deleted tests/test_sigint_handling.py, which spawned python -m nooa_cli term and timed out after the strip.

What was intentionally left in place

  • src/nooa/tools/web_publisher.py — WebPublisher is still importable; without a terminal listener it silently no-ops.
  • self.web wiring in src/nooa/interactive.pyInteractiveAgent is used by non-TUI callers (e.g. the ARC-AGI-3 example).
  • TuiSessionResumed / TuiSessionCleared event classes in src/nooa/events.py — unused but harmless.
  • "nemo.web" entry point in root pyproject.toml.

These are dead-but-harmless; ripping them would break tests/test_interactive_agent.py and the TestWebPublisherMethods suite. Best done as a follow-up if desired.

Test plan

  • uv sync --all-extras --no-extra sandbox (matches CI)
  • uv run pytest -q -m "not integration and not stress"6526 passed, 6 skipped, 282 deselected
  • uv run nooa --help — no tui / term in the command list; all other subcommands present
  • uv run pytest packages/nooa-cli/tests/ tests/test_interactive_agent.py tests/unit/test_remaining_full_coverage.py -q — 65 passed (confirms the deliberately-kept WebPublisher/InteractiveAgent surface still works)
  • Repo-wide grep confirms no lingering imports of nooa_cli.commands.{tui,term}, nooa_cli.web, ptyprocess, or pyte

The `nooa tui` and `nooa term` commands shipped in the public release but
depend on a `nooa_tui` package that lives in a separate repo — invoking
them raises ImportError. Remove the dead surface so the CLI ships only
the subcommands that actually work (`start-dev`, `eval`, `traces`,
`config`, `completion`, `import-*`, `delete-traces`).

- Delete `commands/tui.py`, `commands/term.py`, `web/pty_server.py`
- Drop `[web]` extra and TUI-only deps (ipython, prompt-toolkit, rich,
  pydantic, mcp) from `packages/nooa-cli/pyproject.toml`
- Drop `pyte` and `ptyprocess` from the root dev group (unused)
- Remove TUI attribution sections from `THIRD_PARTY_NOTICES.md`
- Update READMEs and package description to reflect CLI-only scope

WebPublisher, InteractiveAgent's `self.web` wiring, and the
`TuiSession*` events in core are left in place — they no-op harmlessly
and InteractiveAgent is used by non-TUI callers (ARC-AGI-3 example).
Follows the code strip in the previous commit. Removes documentation
that describes a TUI surface the public release doesn't ship:

- docs/guides/config-migration.md: drop the "TUI settings" section
  (config keys nothing reads anymore); renumber remaining sections.
- examples/README.md: drop the `tui:` YAML block from the MCP section;
  keep the MCP explanation focused on the core `nooa[mcp]` extra and
  the stateless `MCPManager` factory.

Rewrote (rather than removed) references to primitives that still
exist in core but are no longer TUI-hosted:

- skills/nemo-oo-tools-and-skills/SKILL.md: `@slash_command` now
  points at the InteractiveAgent `slash_commands` queue rather than
  "the TUI"; MCP config points at `.mcp.json` only.
- skills/nemo-oo-self-extending/SKILL.md: same reword for slash
  commands.
This test spawned `python -m nooa_cli term` and verified SIGINT
cleanup on the web terminal. The `term` subcommand was deleted in
the code strip; the test now times out waiting for a port that
never opens.
@cursor

cursor Bot commented Jul 21, 2026

Copy link
Copy Markdown

Bugbot is not enabled for your account, so this pull request was not reviewed.

Enable Bugbot in the Cursor dashboard to get automatic reviews on future PRs.

@rdasilveiracabral
rdasilveiracabral merged commit 082b18b into main Jul 21, 2026
2 checks passed
@alessiodevoto
alessiodevoto deleted the chore/strip-tui branch July 24, 2026 13:30
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants