导入问题修复
This commit is contained in:
1 parent
0282c30a2a
commit
ede1d47c47
26 files changed
+934
-45
No files matched your search
@@ -0,0 +1,27 @@
|
||||
# ERP list readiness and late dispatch results
|
||||
|
||||
## Scope and gate
|
||||
- Feature task; main thread only, no subagents. Branch `main`, sole worktree `/Users/andy/IdeaProjects/LWLT-AIBOT`, base `0282c30a2aa66435a193b96b17c0022420d881b3`.
|
||||
- Existing `.idea/` is unrelated and preserved. Untracked release ZIP 0.5.183 is the known previous delivery and will be preserved byte-for-byte if archived. Overlap: Clear. No other worktree or overlapping source changes.
|
||||
- User asks to fix the diagnosed list-readiness and dispatch-result discrepancy. Local source/tests/release work only; no ERP access/write, task replay, deployment, restart, extension reload or external sending.
|
||||
|
||||
## Evidence and plan
|
||||
- User-supplied records prove the same execution was accepted near the platform's four-second acknowledgement timeout, then stopped at `erp_resolution` with `native_list_search_not_ready`. Platform retained dispatch uncertainty until maintenance expiry. Exact missing page condition and cause of acknowledgement delay were not recorded.
|
||||
- Reacquire the current main-frame document while waiting for the expected list page; preserve complete-page/native-loader/search-button prerequisites and native search request verification. Add value-free readiness diagnostics. Do not retry business writes.
|
||||
- Allow authenticated same-task/execution/connection late results to resolve only dispatch-origin uncertainty when explicit read-only resolution failure proves no write. Preserve completed/cancelled/post-write uncertainty guards, including old timed-out dispatch tasks. Prevent provisional dispatch timeouts from replacing already-observed plugin progress.
|
||||
- Read stored plugin results while dispatch-origin uncertainty is pending; do not invoke ERP reconciliation or execute/re-dispatch tasks. Validate delay, missing/stale/wrong pages, outcome ordering, evidence conflicts and owner/execution boundaries.
|
||||
- Synchronize extension version, platform minimum, mapping, release ZIP/manifest and local verification evidence. Run required repository/type/control-plane/legacy/build checks. Production acceptance remains separate.
|
||||
|
||||
## Results
|
||||
- Native list readiness now reacquires the current main-frame document at each sample, waits for the same expected path plus complete document/native loader/enabled attached search button, and reports value-free missing conditions, elapsed time, sample count and document replacements. Search consumers use the returned current document; replacement during native Ajax search stops before using stale results. Existing exact-request/HTTP completion verification remains. Worker output distinguishes readiness from not-found/login suggestions.
|
||||
- Platform acceptance timeout is 10 seconds (previously four). Existing pending dispatch tasks read only stored plugin results; late progress does not reset them to executable/running. Expired dispatch tasks offer manual “读取插件已保存结果” instead of invoking the plugin's incompatible post-write reconciliation operation. Genuine post-write uncertainty retains its manual boundary. API rejection preserves platform uncertainty instead of replacing it with an unaccepted local result.
|
||||
- Service ingestion may close only dispatch-origin uncertainty (including maintenance-expired dispatch records) using the same task/execution/original connection and complete `erp_readonly_resolution` page proof with no root/page/preflight write or save evidence. Other terminal states, bare flags, contradictory receipts/requests, changed connection/execution/actor and real post-write uncertainty remain blocked. A provisional timeout cannot overwrite already-observed plugin progress. Accepted late failure carries reconciled/no-write facts; an exact duplicate is idempotent and changed terminal results remain immutable. No execution/replay path is added.
|
||||
- Regression evidence: both same-path Document replacement scenarios fail against the pre-change committed adapter with `native_list_search_not_ready` and pass against the current adapter. 32 new tests cover native readiness/result handling, five-second acceptance, true timeout without redispatch, local-only result sync, original-context constraints, transaction commit/rollback, outcome ordering and duplicate ingestion.
|
||||
- Full checks: control plane 239/239, legacy 402/402 (641 tests total), TypeScript check and build PASS. Legacy HTTP boundary tests required local loopback-listening permission; the first sandboxed run was blocked by EPERM for those two tests, then the full rerun passed. Clean isolated-source repository checks 10/10 PASS. Original worktree remains 8/10 only because of preserved pre-existing `.idea/`, `.DS_Store` and ignored historical log residue.
|
||||
- Extension 0.5.184, platform minimum, lifecycle mapping, version assertions, active gate, README, versioned ZIP and release manifest synchronized. All 20 packaged files match source byte-for-byte. Original 0.5.183 ZIP and manifest preserved unchanged in the dated release archive. No input/Skill/DOCX/parser/database migration changes.
|
||||
- Main-thread read-only final review: PASS. No subagent review claimed. Tests ran from a byte-verified source copy excluding non-example `.env` before reads; no ERP access, task mutation/replay, deployment, service restart, extension reload, external message, commit or push occurred.
|
||||
- [Immutable validation summary](../../../archive/evidence/2026-09-15/dispatch-readiness-01a0858b/README.md). Production requires updating platform/service and the same installed extension to 0.5.184, retaining its local records; old tasks can sync only if original connection/execution evidence is retained. The exact missing readiness condition in the user's historical run remains unobserved; new diagnostics distinguish it.
|
||||
|
||||
## Promotion candidates
|
||||
- Preserve the distinction between provisional dispatch uncertainty and witnessed ERP writes. Only correlated explicit read-only failure evidence closes the former; no retry or blanket terminal-state override. Target: canonical execution lifecycle documentation after integration acceptance.
|
||||
- Document readiness must refer to the current Document identity, not merely a URL retained by an old iframe document. Target: canonical browser-adapter guidance after integration. Current live failure's specific missing condition still requires runtime diagnostics.
|
||||
@@ -0,0 +1,26 @@
|
||||
# Passenger roster header aliases and content diagnosis
|
||||
|
||||
## Scope and gate
|
||||
- Feature task on `main`, sole worktree `/Users/andy/IdeaProjects/LWLT-AIBOT`, base `0282c30a2aa66435a193b96b17c0022420d881b3`. Main thread only.
|
||||
- Existing dispatch/readiness changes are the completed previous task in this conversation; preserve them. `.idea/` and existing ignored residue are unrelated and preserved. No other worktree or overlapping edits in the roster normalizer/tests. Overlap: Clear.
|
||||
- User authorizes compatibility for two observed header aliases and read-only validation of the supplied workbook contents. No source workbook edits, ERP import/access, task submission, deployment, restart or external sending.
|
||||
- Own roster normalizer, roster regression tests and this task record. No canonical memory or extension changes.
|
||||
|
||||
## Evidence and plan
|
||||
- Supplied XLS matches the reported attachment: 48128 bytes, SHA-256 `c11d17fd13607afc9c8a52bf2716a5e900a3a387137f88ba314e8dcf15e3d76d`.
|
||||
- Existing local conversion succeeds. Actual normalizer reproduces `roster_workbook_header_not_found`: `Sheet1!H2` is 出生地点 and `K2` is 有效期至. Other ten required fields are recognized, no duplicate semantic headers.
|
||||
- Add only the two approved exact aliases, preserve semantic uniqueness and fixed canonical output. Validate both aliases and duplicate/conflicting headers with synthetic records.
|
||||
- Run full local normalization/content inspection on the original file, report remaining content problems without inventing passenger facts. Keep passenger values out of tests, task records and logs.
|
||||
- Run required repository/type/control-plane/legacy/build checks; record results and any pre-existing check failures.
|
||||
|
||||
## Results
|
||||
- Normalizer `v1.5.1` accepts exact aliases 出生地点 → 出生地 and 有效期至 → 有效期. All 12 semantic source fields remain required and unique; canonical TSV remains the same 13 columns. Added synthetic equality and canonical/alias duplicate rejection coverage. No content normalization or ERP execution behavior was changed.
|
||||
- Original workbook passed conversion and complete normalization without editing it: header row 2, data rows 3–22, 20 passengers, unique sequential indices 1–20. All 60 date cells and all canonical text/identifier projections were independently compared with the converted sheet; zero mismatches. Source hash remained unchanged.
|
||||
- Names, English names, gender, birthplace, passport numbers, issue location, three date fields and remarks are populated for all 20 passengers. Phone is populated for 11; nine blank phones remain blank under existing rules. Merged remarks correctly project to their constituent passenger rows. No imported-field formulas need compatibility; the ordinary age column remains ignored.
|
||||
- Exactly one leader marker has both name and phone. Both independent and shared-child Program parser routes passed with synthetic local-only lookup context, 20 rows and leader_contact. These calls only validated content/operation contracts; no task, database, ERP or external call was made. No additional content compatibility is needed for this file.
|
||||
- Focused workbook tests 14/14; full control-plane 241/241 and legacy 402/402 (643 total); type check and build PASS. Repository checks 10/10 in a byte-verified isolated copy excluding secrets and pre-existing `.idea`/residue. Two legacy HTTP tests initially failed only because sandbox loopback listening was denied; approved loopback rerun passed all 402. Original unrelated files preserved.
|
||||
- Main-thread final read-only review PASS. No subagents, source workbook edits, live ERP import, service restart, deployment, commit or push. This compatibility is server-side; the extension release is unaffected. Existing `npm run dev` process needs a user-authorized restart to load the new source.
|
||||
- [Read-only evidence summary](../../../archive/evidence/2026-09-15/roster-header-aliases-01a0858b/README.md).
|
||||
|
||||
## Promotion candidates
|
||||
- Document accepted source aliases in canonical roster guidance after integration if needed; canonical ERP fields remain unchanged.
|
||||
Reference in new issue
Block a user