fix: refresh public dashboard and BI telemetry

This commit is contained in:
Wyndham ARR
2026-08-03 16:08:14 +08:00
parent 2107f00e32
commit 5294edab89
20 changed files with 584 additions and 75 deletions

View File

@@ -4,6 +4,21 @@
| Date | Task | Outcome | Docs Updated |
|---|---|---|---|
| 2026-08-03 | Execute controlled fix and live-accept 2026-08 `01-10` company report | With explicit confirmation, stopped only the stale PID 11176 and started new listener PID 54127 through the existing Keychain-backed launcher. One authorized job `05cc547d…` succeeded 5/5 with row counts `54/18/7/1/15`, captured active Booking batch-7 source metadata, reused the existing version/artifact identities, and passed five HTTP download/hash checks. Logout and temporary-file cleanup completed; no Booking/Finance source or fact mutation occurred | Current state, runtime evidence/index, stale item, commitments, scoped planning record |
| 2026-08-03 | Diagnose the latest 2026-08 `01-10` official-Excel save failure | Read-only evidence confirms newest job `087dceca...` built all five companies (`54/18/7/1/15`) and failed only at publish. Port 8766 is still PID 11176 from 2026-08-02, older than the semantic-reuse publisher fix; the earlier successful five-file archive/result/current set remains hash-consistent and intact. The launcher preflight is ready and six publisher tests pass. Repair is an exact controlled listener replacement followed by one authorized rerun; no restart, report write or business-data mutation was performed | Current state, runtime evidence/index, stale item, scoped planning record |
| 2026-08-03 | Check whether company-report retries show reused-file identity | Confirmed the publisher can reuse an existing archive/result pair, but the outcome, job API and frontend expose only success/version/download; users cannot see that the file was reused or which prior artifact supplied it. No code or business-data change was made | Current state, retry-semantics evidence/index |
| 2026-08-03 | Confirm repeated Booking and company-report rerun semantics | Verified by source inspection and focused tests: byte-identical activated Excel reuses the source; same rows with different XLSX bytes require a new review/activation; unchanged report snapshots reuse complete publication pairs; a subset source can be activated and rerun, leaving Finance rows present while missing Booking room details remain blank. Live acceptance remains pending the stale 8766 process replacement | Current state, retry-semantics evidence/index, stale item |
| 2026-08-03 | Recheck 2026-08 company-report publication after reported 8766 restart | The newest `01-10` job again built all five row sets (54/18/7/1/15) but failed at `publish`; a read-only process check shows the effective listener is still PID 11176 from 2026-08-02, before the current publisher fix. Simplified the confusing duplicate-reuse error copy to direct restart-and-retry instructions; 29 Web/company tests and JavaScript checks pass, with no report or business-data write | Current state, runtime/status-copy evidence, stale item, scoped planning record |
| 2026-08-03 | Remove redundant company-report Excel provenance module | Removed the source card from job details and the source column from generation history; retained the upload/review current-source panel and server-side source metadata. The history table and empty state now use seven columns. Web/company tests (29), JavaScript syntax checks and runtime-reference scan pass; no report or business-data write occurred | Current state, status-copy evidence/index, scoped planning record |
| 2026-08-03 | Clarify company-report source and publish-failure copy | The job detail/history now identifies the Excel as `本次任务使用的 Excel` / `任务使用的 Excel`; missing source metadata says the Excel cannot be confirmed and explains why. Publish failures now explain that data reached publication but the official Excel was not saved, and are not presented as a normal duplicate skip; a complete identical publication remains a success reuse. Focused Web/company/publisher tests and JavaScript syntax checks pass; no live report or business-data write occurred | Current state, status-copy evidence/index, scoped planning record |
| 2026-08-03 | Add five-second Channel BI freshness detection | Desktop and public H5 now poll lightweight month metadata every five seconds while visible, compare the selected month's `updated_at`, and reload full analytics only after a version change. Hidden tabs pause polling, visible tabs check immediately, and transient background errors retain the last good snapshot. BI visual tests pass 5/5, Web tests pass 19/19, both JavaScript syntax checks and diff checks pass; no report or business data changed | Current state/history, Channel BI freshness evidence/index, stale item |
| 2026-08-03 | Diagnose BI remaining at 8.1 after August monthly publication | Read-only database and analytics checks confirm active August V02 is `更新至 2026-08-02` with 268 rows, while a fresh BI query returns the same watermark. The existing page only loads analytics at boot, first BI entry or month change, so an already-open view can remain at 8.1. Confirmed a frontend freshness bug; no code or business data changed | Current state/history, BI freshness evidence/index, existing stale lifecycle item |
| 2026-08-03 | Recover automatic monthly publication | User-authorized detached `monthly_reports.worker` start consumed pending outbox events 1520 in order. July V05 (`as_of_date=2026-07-27`, 987 rows) and active August V01 (`as_of_date=2026-08-01`, 111 rows) are registered with workbook/result artifacts; all six checked daily-commit events are `published`, the XLSX passes ZIP integrity, and Web health remains ready. Re-upload and source-code changes were not needed; reboot-persistent supervision remains open | Current state, daily-to-monthly evidence topic/index, stale supervision item, scoped planning record |
| 2026-08-03 | Review monthly worker logging and monitoring | Confirmed Screen/stdout and Web/stderr are not durable monitoring, `/healthz` excludes worker liveness, and the existing outbox/task trace lacks heartbeat and monthly-specific end-to-end wording. Prepared a privacy-minimized structured-log, heartbeat, status and supervisor/alert recommendation; no code or runtime change was made | Monthly worker observability evidence/index, stale item, scoped planning record |
| 2026-08-03 | Diagnose company-report source label after subset Excel activation | Read-only checks found accepted current Booking Excel batch 6 with 73 rows and no open draft; latest August jobs were created after activation but saved `source: null` because the live Web process predates the source-traceability code. The label is a metadata/runtime mismatch, not proof that the report used the old source; no restart or backfill was performed | Current state/evidence topic/index, stale item, scoped planning record |
| 2026-08-03 | Diagnose subset-source 2026-08 `01-10` publication failures | Batch 7 is accepted/current with 72 rows and no review draft. The latest job built all five company row sets but failed all at `publish` with `COMPANY_REPORT_PUBLISH_FAILED`; the live 8766 process predates both source metadata and current duplicate-publication fixes. No restart or rerun was performed | Current state/evidence topic/index, stale item, scoped planning record |
| 2026-08-03 | Evaluate Daily task trace for company-report publication failure | Confirmed the supplied Daily trace only covers successful Finance commit and outbox publication; it lacks company-report job linkage and publish-stage detail, shows unknown execution metadata and prints an unmasked full source hash. Recommended separate trace scopes, runtime identity and hash masking; no code/runtime change was made | Daily/company trace evidence/index, stale item, scoped planning record |
| 2026-08-03 | Diagnose Daily Report uploaded but monthly report not updated | Read-only database/runtime inspection confirms Daily run 39 committed successfully as Finance version 14 with 111 retained rows for 2026-08-01, but outbox event 20 remains pending with zero attempts because no independent `monthly_reports.worker` process is running. Monthly history still ends at July V04; no August version exists. No restart, rerun, upload or database write was performed | Current state, daily-to-monthly diagnosis evidence/index, scoped planning record |
| 2026-08-03 | Make the mobile H5 dashboard publicly readable | Added public H5 shell/assets and purpose-built sanitized aggregate month/analytics endpoints; desktop, generic APIs, legacy H5 APIs, detailed health, jobs/traces, downloads and writes remain protected. Anonymous H5 loading plus authenticated compatibility is covered by 71 Web tests and syntax checks; no live restart or deployment occurred | Current state/history, architecture, business rules, ADR-005, H5 public-access evidence/index, scoped planning record |
| 2026-08-03 | Clarify ARR trace semantics for internet deployment | Added additive execution-scope, processor-mode and remote-dispatch fields; replaced misleading “本地处理” copy and clarified that a pending downstream event follows a completed Finance commit. Existing delivery IDs/trace fields remain compatible; 27 trace/Web tests plus Python/JavaScript syntax and diff checks pass, with no live mutation | Current state/history, ARR trace-semantics evidence/index, scoped planning record |
| 2026-08-03 | Add Booking Excel to company-report traceability | New company-report jobs store the server-captured active source summary; the page shows the current source, job detail/history show the source Excel, and identical active uploads become an informational refresh instead of a generic extraction error. Old jobs remain compatible without source metadata. Focused Web/company tests and the 360-test suite pass with 10 optional skips; no live mutation or restart was performed | Current state, source-to-report traceability evidence/index, scoped planning record |