Files
LWLT-AIBOT/.project-docs/30-worklog/tasks/20260914-polling-log-noise-01a0858b.md
T
2026-09-14 12:47:15 +08:00

3.4 KiB

Silence successful workbench polling access logs

Scope and gate

  • Feature continuation on main, worktree /Users/andy/IdeaProjects/LWLT-AIBOT, base e06afc8c33b27bd9150dbe67e97772ab2420c8db; one worktree. Overlap: Clear: changes in server.ts and diagnostics.test.ts are the completed same-thread heartbeat fix and are extended in place.
  • User reports continued INFO access-log noise for successful GET /api/status and GET /api/tasks, continuing the request to silence normal polling so errors remain visible. Local Excel investigation is paused.
  • Own control-plane/src/server.ts, control-plane/test/diagnostics.test.ts, this task record. Preserve all preceding document/release/heartbeat edits and IDE files. No frontend timing changes, database/ERP activity, deployment, restart, external sending or canonical memory updates. Main-thread work only.

Findings and plan

  • Earlier silence rule covers only plugin heartbeat and liveness/readiness probes. Workbench status and task-list reads therefore still emit request-start and request-completion INFO messages.
  • /api/tasks serves multiple queries (display list, active tasks, confirmed tasks); privacy-safe access paths omit query parameters. Repeated same paths do not establish duplicate task execution. Background refresh runs every 30 seconds and also on focus/visibility changes; runtime/event handlers can trigger additional reads.
  • Extend the exact GET/HEAD allowlist to the two reported paths. Keep HTTP failures and write requests visible; do not silence task-detail/subpaths or business diagnostics. Verify actual handlers, status/error correlation and write-method isolation.

Verification and outcome

  • Completed: GET/HEAD /api/status and /api/tasks join the quiet polling allowlist. Only successful 2xx completion access logs and their start logs are suppressed. Existing heartbeat/probe silence remains. Errors, task writes and task detail/subpath access logging remain visible.
  • Focused diagnostics tests: 9/9 PASS. Tests inject actual GET/HEAD polling handlers, prove they still execute, check 400/401/500 failure correlation/severity and ensure successful POST /api/tasks and GET /api/tasks/:taskId still emit start/completion INFO logs. No task or database was changed; dependencies were stubbed.
  • node --run check, node --run test:control-plane (226/226), node --run build, git diff --check: PASS.
  • Original check:repo: 8/10; only existing .idea/.DS_Store residue, preserved. A 2609-file SHA-256 verified temporary source copy excluding secrets and that residue passes check:repo 10/10 and test:legacy 313/313. Loopback listener permission was used for the existing HTTP tests, as required by this sandbox.
  • Main-thread final read-only review: PASS. This task changes only its three owned files. Temporary verification output: /private/tmp/ltjt-polling-logs-20260914/.
  • The user's existing IDEA process must be restarted with npm run dev to load this source change; no local service restart or production action was performed.

Promotion candidates

  • Target: canonical operational-diagnostics description. Include successful workbench status/task-list reads in the quiet access-log policy; HTTP failures, task mutations and business events retain diagnostics. Evidence: focused handler tests and passing checks above. User intent continues the accepted logging-noise request; canonical promotion remains deferred to Integration mode.