70 lines
3.7 KiB
Markdown
70 lines
3.7 KiB
Markdown
# Evidence Topic: First live ARR2 user-run trace
|
|
|
|
## Metadata
|
|
|
|
- Date: 2026-07-30
|
|
- Status: Resolved by the monthly-publication implementation completed later on 2026-07-30
|
|
- Scope: ARR2 loopback runtime on port 8766, controlled `booking_test`, OSS-backed daily processing, local monthly output
|
|
- Confidence: Fact
|
|
- Source: persisted Web API trace, read-only PostgreSQL queries, local artifact metadata, source inspection
|
|
- Last verified: 2026-07-30
|
|
- Stale trigger: Historical evidence; see `2026-07-30-monthly-publication-live-acceptance.md` for current behavior
|
|
|
|
## Question
|
|
|
|
Did the user's successful daily run commit to PostgreSQL, and why did the subsequent successful monthly action show no
|
|
monthly result or download?
|
|
|
|
## Evidence
|
|
|
|
### Daily commit
|
|
|
|
- Job `arrjob-e6042c9cfe7d4f07aa986c5cffc4548e` is processing run 27 with terminal raw status `accepted`.
|
|
- Its one artifact delivery is committed and points to Finance daily version 4.
|
|
- Daily version 4 is `active`, version number 1, for business date 2026-07-21.
|
|
- Counts reconcile: 135 source rows = 119 retained + 16 excluded-rate-code; duplicate, validation-failed and
|
|
price-unmatched counts are zero.
|
|
- `finance.current_daily_versions` points 2026-07-21 to daily version 4.
|
|
- The trace contains `ARTIFACT_RESULT_COMMITTED`, `FINANCE_VERSION_ACTIVATED` and `JOB_SUCCEEDED` terminal evidence.
|
|
|
|
### Downstream event
|
|
|
|
- The same database transaction created `arr.daily_version_committed` for processing run 27.
|
|
- At verification time it was `pending`, with zero publish attempts and no published timestamp.
|
|
- This is consistent with the documented absence of an automatic monthly outbox consumer.
|
|
|
|
### Monthly generation and visibility
|
|
|
|
- The manual monthly request generated `outputs/monthly_reports/2026/07/latest.xlsx` and `latest.result.json` at
|
|
2026-07-30 14:28:32 +08:00.
|
|
- Result status is `success`; the workbook SHA-256 is
|
|
`57160ff45d962ef348d7e9d21eafdc1f89c8b7b00d9d31eba283c2ff6bc40410`.
|
|
- The workbook reopens and contains LIANTAI-GROUP 26 rows, LIANTAI-FIT 25, QBD 55, DY-AI-Easy-KB 0 and FENGRUN 14:
|
|
120 data rows total. No guest values were recorded in this evidence.
|
|
- The workbook contains zero formulas, matching the known formula implementation gap.
|
|
- Read-only `information_schema` verification proved `finance.report_versions` is absent from `booking_test`.
|
|
- `monthly_reports.repository.PostgresReportRepository.reserve_report()` creates only a deterministic in-memory
|
|
generation identity; `activate_report()` revalidates source pins but inserts no report metadata.
|
|
- `arr_web.repository.MONTHLY_RUNS_SQL` synthesizes a `source_ready` row with null `report_id`, filename and artifact
|
|
hash. The frontend only renders a download link when an artifact hash/report ID is present.
|
|
|
|
## Finding
|
|
|
|
The daily success is a real, atomic PostgreSQL commit. The monthly action also produced a real local XLSX, but its
|
|
success is not persisted as a monthly report version and cannot be rediscovered or downloaded through the Web API.
|
|
The frontend toast therefore overstates the end-to-end outcome: it confirms local file generation, not published report
|
|
visibility.
|
|
|
|
## Impact
|
|
|
|
- Daily ingestion does not need repair for this run.
|
|
- A monthly publication task must define and implement a database-compatible metadata/read model (or an equally durable
|
|
controlled artifact index), then align list/download APIs and the success receipt with that persisted state.
|
|
- Automatic dispatch remains separate: the accepted outbox event currently has no consumer.
|
|
- The required `TOTAL PRICE` formula remains a separate workbook-generation defect.
|
|
|
|
## Open Items
|
|
|
|
All three items were resolved later on 2026-07-30 by migration 012, the dedicated worker, persisted list/download
|
|
identity and formula validation. This topic remains the before-state diagnosis.
|