23 lines
3.4 KiB
Markdown
23 lines
3.4 KiB
Markdown
# 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.
|