52 lines
3.2 KiB
Markdown
52 lines
3.2 KiB
Markdown
# Company-report source and publish-failure copy
|
||
|
||
## Metadata
|
||
|
||
- Date: 2026-08-03
|
||
- Status: Implemented; source provenance module subsequently removed from the end-user result/history surface, and the
|
||
publish-failure copy was simplified after live operator feedback
|
||
- Scope: Desktop company-channel job detail/history copy, source-module removal and company-result error explanation
|
||
- Confidence: Fact for source/error contracts and focused verification; no live report state was changed
|
||
- Source: `arr_web/static/app.js`, `arr_web/static/index.html`, `arr_web/static/i18n.js`, publisher tests and company job evidence
|
||
- Last verified: 2026-08-03
|
||
- Stale trigger: changes to company job source metadata, publication idempotency or localized status copy
|
||
|
||
## Problem
|
||
|
||
The page displayed `来源 Excel(提交时)` with `历史任务未记录来源`, which described an internal capture detail but did
|
||
not tell an operator whether the source was missing, old or actually used. It also displayed only
|
||
`正式表格发布失败`, which did not explain whether this was a normal duplicate-version reuse.
|
||
|
||
## Implemented behavior
|
||
|
||
- The final end-user surface no longer renders the job-detail source card or history source column. The report page is
|
||
explicitly database-snapshot oriented; the upload/review current-source panel is retained where the operator actually
|
||
manages the Excel input.
|
||
- Server-side jobs still retain the safe source summary for audit and troubleshooting. Removing the UI module does not
|
||
backfill or delete old source metadata.
|
||
- `COMPANY_REPORT_PUBLISH_FAILED` now appears as `正式 Excel 保存失败`. The job summary and company row use the direct
|
||
action copy `数据已处理,但正式 Excel 保存失败。请重启报表服务后再生成。`; internal duplicate-reuse rules are
|
||
no longer shown in the operator-facing error.
|
||
- The wording is available in Chinese, English and Thai, and the added detail is escaped before it is inserted into the
|
||
result table.
|
||
|
||
## Verification
|
||
|
||
- Focused unittest: Web/company regression passes 29 tests.
|
||
- `node --check arr_web/static/app.js` and `node --check arr_web/static/i18n.js` pass.
|
||
- Runtime static scan confirms no source-card/history-column reference remains; the upload/review source references
|
||
remain intentionally.
|
||
- `git diff --check` passes.
|
||
- The project virtualenv has no `pytest` module; the repository's unittest runner was used instead.
|
||
- A live read after the operator-reported retry found job `253ce23d…` still failed for all five companies at `publish`
|
||
with row counts `54/18/7/1/15`. The listener remains PID `11176`, started `2026-08-02 12:20`, while the current
|
||
publisher source was modified on `2026-08-03 11:19`; the reported restart therefore did not replace the effective
|
||
port-8766 process.
|
||
- No Web restart, source activation, report rerun, output backfill, database write or business-data mutation occurred.
|
||
|
||
## Semantics retained
|
||
|
||
The publisher remains idempotent for a complete semantically identical archive/result pair. Incomplete, corrupt or
|
||
semantically conflicting publication state still fails closed; the UI reports the safe action without translating every
|
||
publish failure into a duplicate explanation.
|