Files
LWLT-AIBOT/.project-docs/30-worklog/tasks/20260911-hotel-update-selection-01a0858b.md
T

4.3 KiB

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.

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.