On-demand retail fulfillment: upgrades for operations handover

Review upgrades for operations handover in On-demand retail fulfillment. Check document scope, failure paths and source evidence through controlled tests.

What the documents look like

On-demand retail store fulfillment handles online orders on a minute scale. This differs from store inventory loss prevention, which runs on a periodic count cycle. Main data sources include Douyin on-demand retail, the Meituan or JD Daojia backend, store inventory, and rider tracking. Daily documents are instant orders, picking lists, out-of-stock reports, and delivery exception forms. During handover these materials carry operation requests for picking, substitution, and delivery status return, so permission boundaries must match the state of the documents themselves.

The synchronization relationship between store inventory and the platform backend, and the ownership and visibility scope of rider tracking, are not given as a unified rule in the supplied documents. These remain items to verify.

Constraints at the upgrades step

The minute-scale rhythm means the handover window is short. Deployment and upgrade do not gain an automatic trigger or real-time synchronization capability from that rhythm. When upgrading to v4.17.2, the App and Pro image tags must be updated together. Two manually triggered scripts (20261008_migrate_chunk_training, 20261009_migrate_dataset_rebuild_status) do not block service startup. They are executed after confirming that all old-version FastGPT App and Pro instances have fully stopped and old task leases have expired. The second script depends on completion of the first. AIPROXY_API_ENDPOINT and AIPROXY_API_TOKEN are required; missing either causes startup validation to fail. Old single-model addresses cannot substitute for these two settings. After the upgrade, the same sample is used to recheck import, retrieval, and invocation. Completion of the steps does not equal zero interruption.

Hypothetical drill sample: A regional operations staff member of a convenience store chain writes in a handover form, "The picking list and out-of-stock report for Store A have been handed over from the morning shift to the evening shift; the evening shift may continue processing delivery exception forms." A separate platform backend screenshot shows that the evening shift account for that store has order read-only permission, while out-of-stock report and delivery exception form processing permissions are not listed. The draft sentence to be judged is, "The evening shift has obtained full processing permission for out-of-stock reports and delivery exception forms." In this sample the subject is the evening shift account, the object is out-of-stock reports and delivery exception forms, the state is that permission is not listed, and the effective scope is limited to Store A on that day's shift.

Configuration and implementation checks

Configuration here centers on the checking needs of the sample above. Only settings or implementation checks relevant to this task are listed.

Configuration itemAssumed starting point for this drillReason and comparison method
AIPROXYAPIENDPOINTAssume an internal AI Proxy root address is enteredCompare against the official requirement not to append /v1; confirm the format
AIPROXYAPITOKENAssume a non-empty admin token is configuredCompare against the server-side configuration; confirm consistency and non-emptiness
AGENTSANDBOXPROVIDERAssume left emptyUnrelated to this handover task; empty means the sandbox is not enabled
DEFAULTTEAMBASICPERMISSIONSENABLEDAssume falseCompare against the Pro Admin configuration; confirm both services agree
Manual upgrade script execution orderAssume the training task migration runs firstCompare against the official dependency note; confirm the second script runs after
Post-upgrade sample recheckAssume the same picking list sample is reusedCompare retrieval and invocation results before and after the upgrade; record differences

Three common errors

  1. Treating the read-only permission in the platform backend screenshot as granted permission for out-of-stock reports and delivery exception forms. The input is the evening shift account permission list. The comparison object is the processing permission asserted by the draft sentence. The observable result is that the permission list does not contain the corresponding entries, so the draft sentence is not supported.
  2. Reading "handed over" in the handover form as permission already in effect. The input is the handover form text. The comparison object is the account's actual permission state. The observable result is that the handover description and the permission list disagree, which must be recorded as an item to verify and cannot be judged as authorized.
  3. Treating completion of the upgrade script as zero business interruption. The input is the script execution record. The comparison object is the retrieval and invocation results of the same picking list sample before and after the upgrade. The observable result is whether the sample results agree; when they differ, record the difference without inferring a cause.

How to verify the setup

  1. The input is the evening shift account permission list and the draft sentence "The evening shift has obtained full processing permission for out-of-stock reports and delivery exception forms." Compare the account permission entries against the permission scope asserted by the draft sentence. When the observable result is that the permission list does not list those two permissions, the draft sentence is judged not supported and authorization material must be supplied.
  2. The input is the handover form text and the scope of Store A on that day's shift. Compare the handover description against the account's actual permission state. When the observable result is that the two disagree, record it as an item to verify and do not equate the handover description with permission taking effect.
  3. The input is the retrieval and invocation results of the same picking list sample before and after the upgrade. Compare whether the two results agree. When the observable result is a difference, record the specific differing fields and do not describe completion of the script as zero business interruption.