Files
wyndham-ARR/.project-docs/90-maintenance/stale-items.md
2026-08-04 12:37:26 +08:00

7.0 KiB

Stale Items

Active Conflicts / Gaps

Date Document / Module Issue Next Action
2026-07-31 Booking raw Excel parser/review business acceptance Parser 2.0, migrations 014/015, atomic draft repository, routes, editor, HTTP transport and current runtime are ready. Supplied-workbook replay, 55 expanded tests, live 5/5 processing and a real-PostgreSQL create/edit/activate/rollback slice pass. No authorized real workbook has replaced the current source Run one operator-authorized complete-workbook upload/review/activation, then one released five-company job and verify all downloads
2026-07-31 Booking review audit depth Migration 015 stores current confirmed/pending/deleted state but no reviewer, reason, explicit review event, old/new values or immutable revision history. Repository logic serializes and gates activation, but declarative DB guards are limited and same-artifact re-extraction deletes earlier unactivated edits Confirm whether single-operator latest-state editing is sufficient. If review must be auditable, add actor/reason/event or revision tables, optimistic concurrency and DB transition guards before migration acceptance
2026-07-31 Booking Excel current-source runtime acceptance Current port 8766 loads the review composition with all readiness flags true; migrations 014/015 are recorded and booking.current_source_batch still selects Markdown batch 1. A 14:14 +08 read-only recheck found no reviewing draft; the prior draft is no longer an active task-creation blocker and did not switch the current source. The Markdown five-workbook baseline has been frozen with exact hashes Run one Markdown-backed five-company Web job after the July period completes if a final-period snapshot is desired, then verify downloads. Keep any later complete-workbook activation operator-authorized, then compare its five overlapping Group Codes with the frozen baseline
2026-07-31 Booking Group Code uniqueness invariant Current views globally merge the same Group Code across worksheets. The fixture has 23 codes shared by DY-AI-Easy-KB and LIANTAI-FIT; none is used by current Finance, so current output is unaffected but real-source semantics are not confirmed Confirm whether those rows are intentionally additive. If Group Code can vary by channel or stay segment, add explicit business dimensions to the Excel contract, schema and report join before real imports
2026-07-30 Port-8766 business acceptance / supervision Authenticated Web on *:8766 loads Booking review and all readiness flags are true. The dedicated monthly worker was recovered in a detached Screen session and drained the pending daily-commit backlog; the Screen session, like the Web session, is not reboot-persistent Choose and install a managed reboot-persistent supervisor that can access the Desktop-hosted project, then verify worker restart/heartbeat behavior before the next controlled real review/company-report acceptance
2026-08-03 Monthly worker logging / observability Worker outcomes are sparse Screen stdout; Web request lines go to stderr; /healthz and authenticated monthly_ready do not represent independent worker liveness. Outbox/task-trace facts are durable but have no worker heartbeat or monthly-specific end-to-end state Add privacy-minimized structured logs with rotation, durable worker heartbeat/status, monthly-specific trace wording and stale-queue/dead-event checks; validate retention and restart detection before treating worker monitoring as complete
2026-08-03 Daily trace versus company-report failure visibility The Daily arr trace proves Finance commit/outbox publication but cannot identify an independent company-report job or its publish-stage error; it also exposes unknown execution metadata and a full source hash Add separate company-report trace linkage, monthly report identity fields, runtime/build identity and default hash masking; verify the operator can diagnose a publish failure without reading private job files
2026-08-03 Company-report source trace/runtime freshness Resolved 2026-08-03: PID 11176 was replaced by PID 54127; job 05cc547d… captured active batch-7 source metadata, succeeded 5/5 and passed five download/hash checks. Historical source: null records remain intentionally unchanged Keep historical null-source jobs as-is; do not backfill by guessing. Reboot-persistent Web/worker supervision remains a separate deployment task
2026-07-31 Web credential strength The requested Keychain-only rotation and controlled restart passed, but the newly selected password still satisfies only the minimum-length rule and remains identical to the username When the operator chooses a distinct high-entropy password, update only the existing Keychain item and repeat the controlled Web restart/login/logout check
2026-07-30 booking_test current Finance projection The earlier 417-row snapshot included accepted run mvp-v1-fixture-20260727 from synthetic.xml/local_fixture. A 2026-07-31 14:17 read-only company-report recheck found 986 current supported-company facts, so the old 416/417 remediation target is no longer a complete description of current Finance state Re-audit current daily-version pins and source provenance before any fixture retirement; require explicit authorization for version changes, then verify the clean target and watermark
2026-07-30 Channel BI refresh lifecycle Resolved 2026-08-03. Desktop and public H5 now check selected-month metadata every five seconds while visible and reload full analytics only after updated_at changes; hidden views pause and transient failures preserve the last good snapshot Refresh the browser once to load the new static assets, then observe the next authorized publication as a live acceptance check
2026-07-30 Channel BI KPI label The card labeled 公司数 renders worksheet-level channel_count; LianTai GROUP/FIT are two channels, so six does not mean six companies Decide whether to relabel it 渠道/子表数 or implement an explicit five-company aggregation
2026-08-04 Production monthly-worker packaging Resolved in code: monthly/company builders are Python/openpyxl-only, new report artifacts use private OSS, and .web-jobs remains local. Docker/CentOS acceptance and migration 016 application are still operator-side deployment actions Apply 016, rebuild the clean image, start Web plus the independent worker with existing OSS secrets, then verify OSS-backed downloads after removing the report cache

Superseded For ARR2.0

  • ADR-002 controlled Agent orchestration and ADR-003 public source URL are ARR1 history; ADR-004 is authoritative.
  • Agent/MCP Prompt experiments, trace reconciliation and grant-expiry issues do not apply to the ARR2.0 active path.
  • Historical handoffs that describe Web + MCP deployment or Agent credentials are not deployment instructions; use the root and deploy/ READMEs.

Missing Context

  • No unresolved monthly business-rule context. ADR-001 defines the dedicated worker and max-included-ARRIVAL policy.