Phase 1 — WebSocket Backend + Static File Serving #236
Labels
No labels
blocked:children
blocked:commit-ready-failed
blocked:depends-231
blocked:depends-236
blocked:depends-237
blocked:depends-238
blocked:depends-239
blocked:gate-fetch
blocked:gate-fetch
blocked:gate-lint
blocked:gate-research
blocked:needs-attention
blocked:needs-decision
blocked:no-changes
blocked:no-procedure
blocked:preflight
blocked:verify-failed
bug
enhancement
feature-request
high-priority
in-progress
lint-cleanup
needs-decompose
needs-triage
ops-retry
ops-task
phase-5
quickfix
security/medium
self-building
triage-approved
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
Mark/mesh-seed#236
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Phase 1: WebSocket Backend + Static File Serving
Goal: Extend the Flask HTTP entrypoint with WebSocket support (Flask-SocketIO) for real-time bidirectional messaging, and serve static frontend files.
Approach candidates:
runtime/http_entrypoint.py— already a dependency, natural fit with existing Flask appOutputs:
runtime/ws_handler.py— WebSocket/SocketIO event handlers for chat messagingruntime/static/— directory for frontend static files, served by Flaskcli/web.pyorcli/commands/web.py— optional CLI entrypoint to start web servertests/unit/test_ws_handler.pyAcceptance criteria:
Files touched:
runtime/http_entrypoint.py(amend — add SocketIO),runtime/ws_handler.py(create),runtime/__init__.py(amend),runtime/static/(create),tests/unit/test_ws_handler.py(create),pyproject.toml(verify flask-socketio is listed)Decomposed from mesh-seed#133
Decompose: CONV-003: Web Chat Interface — Phase 1: WebSocket Backend + Static File Servingto Phase 1 — WebSocket Backend + Static File ServingQA Verification — re-open / re-file required
The kanban fixit task for this issue reached
donestatus, but no code change was actually landed. This is a reconciliation phantom, not a real fix.Findings
t_3f6b4d24on the kanban fixit board was BLOCKED bykilo-gsd.py exited with code 1at preflight (run 370, 2026-04-23).blockedfor ~180 hours, then the janitor marked itdoneafter theunclassified-blocked-Nhauto-escalation rule — but this is a status cleanup, not a work-completion signal.masteron Forgejo and in the local checkout:runtime/http_entrypoint.pyexists (last touched 2026-04-23, pre-issue)runtime/ws_handler.py— does not existruntime/static/— does not existtests/unit/test_ws_handler.py— does not existflask-socketiois listed inpyproject.toml(already a dep) but no SocketIO integration existsmesh-seed-236exists; no commits reference this issue in any branch.Conclusion
Acceptance criteria remaining (all unchecked)
QA verification complete. The new fixit card will track the actual implementation.
QA Verification — FAIL — second false-positive closure
The reconciliation sweep at 04:34Z closed this issue, then it was reopened at 04:46Z, then closed again at 08:03Z. Neither close was backed by a real fix on master. Independent re-verification as of 04:58Z:
Repository state (master HEAD
92521ce)runtime/ws_handler.py— does not exist on master (404 via API)runtime/static/— does not exist on mastertests/unit/test_ws_handler.py— does not exist on masterruntime/http_entrypoint.pylast touched 2026-04-23 by commit9d69544(fix #137, unrelated)mesh-seed-236, no commits referencing this issue/home/b/Projects/mesh-seedexist locally as untracked modifications left over from earlier attempts (timestamps 01:19-01:23 Aug 4)Unit tests (in worktree, against untracked files)
test_static_css_served,test_static_js_served,test_static_missing_file_returns_404— Flask's defaultstaticendpoint is still registered becauseregister_static_routesonly setsstatic_folder=Noneafter Flask eagerly registers the route on construction, leaving the defaultsend_static_filehandler reachable.Fixit board state
t_3f6b4d24(original, done) — janitor auto-escalated after 178h blocked; no code landedt_c3f55b4d(re-attempt) — dispatched 07:53, blocked 07:53 withno-changes: agent exited 0 but no commit/PR on worktree /home/b/Projects/mesh-seed. The agent found the untracked files already there and concluded no work was needed.Conclusion
This is a second false-positive closure. No fix has been landed on master. The implementation work exists in the local worktree but is uncommitted and partially broken (static-serving tests fail). Reopened at 04:58Z and routed back to the fixit pipeline for a real implementation attempt.
QA Verification — FAIL — third false-positive closure
The 12:05:50Z closure of this issue was a third false-positive, repeating the pattern flagged at 04:46Z and 12:02Z. Reopened.
Repository state (master HEAD
92521ce956)runtime/ws_handler.py— does not exist on master (404 via API)runtime/static/— does not exist on mastertests/unit/test_ws_handler.py— does not exist on masterruntime/http_entrypoint.pylast touched 2026-04-23 (commit9d69544, fix #137, unrelated)mesh-seed-236, no commits referencing this issue on any branch/home/b/Projects/mesh-seedhas the implementation as untracked files left over from earlier attempts (timestamps 01:19-01:23 Aug 4) — same state as the 12:02Z QA notedUnit tests in worktree (.venv/bin/pytest tests/unit/test_ws_handler.py)
test_static_css_servedtest_static_js_servedtest_static_missing_file_returns_404RuntimeError: 'static_folder' must be set to serve static_files.raised in Flask's defaultsend_static_filehandler.register_static_routessetsstatic_folder=Noneafter Flask eagerly registers the default/staticroute during app construction, so the route remains reachable.Close history (timeline, in order)
No commit has landed the implementation on master. The previous QA FAIL identified the same root cause (
static_folderis not unset before Flask's constructor registers the default static route); the 14/17 partial implementation has been sitting untracked in the worktree since 01:19 Aug 4 and no follow-up fixit attempt has landed.Conclusion
This issue remains genuinely open. The implementation is incomplete (static-serving tests fail) and uncommitted (worktree-only untracked files). Needs a real fixit attempt that (a) commits the partial implementation, (b) fixes the static-folder registration order, and (c) lands it on master via PR.
Reopened for the fixit pipeline.
QA Verification — FAIL — fourth false-positive closure
The issue was closed at 2026-08-04T13:46:06Z (presumably by another automated sweep) after being reopened at 13:45:17Z with a QA FAIL comment (#50118). The fix has not been implemented.
Repository state (master HEAD
92521ce956)runtime/ws_handler.py— does not exist on master (404 via API)runtime/static/— does not exist on mastertests/unit/test_ws_handler.py— does not exist on masterruntime/http_entrypoint.py— no Flask-SocketIO import (nosocketioorSocketIOin source; standard Flask only)Pattern
This issue has now been falsely closed four times by automated sweeps without any code change landing on master. The fixit card
t_3f6b4d24was blocked at kilo-gsd preflight (run 370, 2026-04-23) and never unblocked. The janitor then auto-escalated it todone, which triggered reconciliation closures that were not backed by real fixes.Required
Real implementation of Phase 1 (WebSocket backend + static file serving) per the acceptance criteria in the issue body. This requires actual code changes, not automated reconciliation.
Re-opened: false-positive close confirmed. Issue was closed but no fix commit exists on master. Re-adding triage-approved to route back through the pipeline.