31 lines
4.3 KiB
Markdown
31 lines
4.3 KiB
Markdown
# Hotel replacement by dated arrangement
|
|
|
|
## Scope and gate
|
|
- Feature task; branch `main`, worktree `/Users/andy/IdeaProjects/LWLT-AIBOT`, base `712ec51d68608e1278c066d23dc25fea0a6280ee`.
|
|
- Existing `.idea/` and `.DS_Store` files are preserved; no overlapping source changes and no other local worktrees. Overlap: Clear. The previous extension ZIP was verified against its release hash and preserved byte-for-byte in `archive/releases/2026-09-11/` together with DOCX 0.5.127 and the previous manifest.
|
|
- User requests `安排酒店变更` with group, check-in/check-out dates, hotel search and room count. Dates identify the existing hotel arrangement; hotel search and count supply replacement values. Ambiguous rows must stop before saving.
|
|
- Local implementation and verification only; no ERP writes, service restart, deployment or external sending.
|
|
- Work is performed in the main thread under the repository's no-subagent-without-consent rule.
|
|
|
|
## Progress
|
|
- Completed Program alias `安排酒店变更`, conditional input validation, parse/execution contracts and date-selected existing hotel replacement. Original check-in/check-out dates select exactly one persisted row; the new hotel keyword and room count are replacement values.
|
|
- The extension freezes the original native row ID and snapshot, resolves the new hotel from ERP candidates, and uses that row's native SelectBox mapping for hotel/room type and linked fields. It preserves original dates, status, remark and other rows and verifies the same row ID/new hotel fields after saving.
|
|
- Zero/multiple date matches, stale row identity, confirmed status, payment/audit state, missing controls, unresolved resources and unexpected cross-row changes block before saving. Existing hotel candidate matching behavior remains unchanged; legacy end-date/room-count updates remain supported.
|
|
- Success replies now use changed hotel/count values instead of the original snapshot. This also corrects legacy departure-date update replies.
|
|
- Synchronized extension 0.5.174, platform minimum version, mapping, tests, ZIP and release manifest; Program parser 1.0.8 and input contract/DOCX 0.5.128. Existing AI Skill packages remain unchanged; the new format is documented for Program parsing.
|
|
- Rebuilt the operator DOCX with the repository builder and reviewed all 13 final rendered pages. No production operation was executed.
|
|
|
|
## Validation
|
|
- `node --run check`: PASS; `node --run build`: PASS.
|
|
- `node --run test:control-plane`: 215/215 PASS, including parsing and successful replacement reply coverage.
|
|
- `node --run test:legacy`: 294/294 PASS; `node --run check:repo`: 10/10 PASS in an exact source/release validation copy excluding pre-existing `.idea`/`.DS_Store`, secrets and generated dependencies; node_modules linked from the workspace. All 2471 copied file hashes matched the workspace before evidence was recorded. Original workspace hygiene checks detect the preserved IDE/OS residue; these unrelated files were not removed or waived in tests.
|
|
- New browser tests cover native target slots 0/1/10, date ambiguity/no match, ID/payment/audit/status guards, changed other rows and record identity/date preservation. These use local ERP DOM/native-callback fixtures; they are not production ERP acceptance evidence.
|
|
- ZIP: all 20 files match source bytes exactly, including README; version and manifest SHA-256 verified. DOCX/source/builder hashes match the manifest. `git diff --check`: PASS.
|
|
- Main-thread read-only final review: PASS for the implemented local scope. No subagent review was used under the no-subagent-without-consent rule.
|
|
- Evidence: [local verification](../../../archive/evidence/2026-09-11/20260911-hotel-update-selection-01a0858b/README.md).
|
|
|
|
## Promotion candidates
|
|
- Accept the Program date-selected hotel replacement format after production acceptance. Dates identify the original record; hotel search/count are new values. Only one matching unconfirmed/unarranged unpaid/unaudited record is eligible.
|
|
- Deploy the rebuilt control-plane image and extension 0.5.174 together, refresh platform/ERP pages, then submit a new task for acceptance. No database migration is introduced. Prior failed tasks do not become successful automatically.
|
|
- Production acceptance remains pending user deployment/test. Canonical `.project-docs` memory remains unchanged in Feature mode.
|