Retire tkinter chat popup; route chat hotkeys/tray to the web Chat tab#22
Conversation
PR 3 of chat→web. Chat is now fully daemon-backed + served in the dashboard
(PR1+PR2), so the standalone tkinter popup is removed:
- Hotkeys/tray → web: Ctrl+Shift+T (chatHk) and the tray "Open Chat" now open
the dashboard at #chat via OpenWebDashboard("chat"); Ctrl+Shift+A
(AskWithSelection) stages the selection (chat_stage_selection) then opens
#chat, where the Chat tab prefills it. OpenWebDashboard_Impl gained a `tab`
param that appends the URL hash.
- Removed the popup machinery: deleted scripts/chat_popup.py; dropped LaunchChat_Impl,
the 52640 socket + chat_send_selection/chat_reload/chat_restart daemon actions
(+ _chat_launch_argv / ingest-nonce helpers), the ffp-chat.exe arm of the AHK
bridge + process-kill list + chatScriptPath, and the installer's KillChat
taskkill. setActiveModel no longer pings the popup (daemon chat reads the model
live).
- Freeze: dropped ffp-chat from the PyInstaller spec (Analysis/MERGE/PYZ/EXE/
COLLECT + hiddenimports) and pyproject (py-modules + scripts entry-point) — now
three exes.
Deleted the obsolete test_chat_popup.py; daemon action-count test 59→56 (asserts
the socket actions are gone). ruff + 188 tests + node --check + AHK parse-check
all green. (installer/README.md still has two cosmetic ffp-chat.exe mentions —
doc-only, follow-up.)
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: e53e90a1f1
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| Filename: "{sys}\taskkill.exe"; Parameters: "/F /IM ffp-daemon.exe /T"; \ | ||
| RunOnceId: "KillDaemon"; Flags: runhidden waituntilterminated |
There was a problem hiding this comment.
Keep cleaning up the retired chat process
When uninstalling or upgrading from a build that could still have ffp-chat.exe running, this cleanup now only stops the daemon and AHK, while the new bundle also no longer installs a fresh ffp-chat.exe. An old popup/direct-launched process can therefore keep the obsolete executable locked or leave it behind in {app}; keep the ffp-chat.exe taskkill here for at least the transition, and/or add explicit install/uninstall deletion for the retired binary.
Useful? React with 👍 / 👎.
PR 3 of chat→web. Chat is fully daemon-backed + in the dashboard (PR1+PR2), so the
standalone tkinter popup is removed.
OpenWebDashboard("chat"); Ctrl+Shift+A stagesthe selection (
chat_stage_selection) then opens#chat(Chat tab prefills it).OpenWebDashboard_Implgained atabparam (URL hash).chat_popup.py;LaunchChat_Impl; the 52640 socket +chat_send_selection/chat_reload/chat_restartactions + ingest helpers; theffp-chat.exearm of the AHK bridge/kill-list +chatScriptPath; installerKillChat.ffp-chatfrom the spec + pyproject).Deleted obsolete
test_chat_popup.py; daemon action-count 59→56. ruff + 188 tests +node --check+ AHK parse-check all green. Aworkflow_dispatchbuild verifies the3-exe freeze after merge.