171 lines
10 KiB
Plaintext
171 lines
10 KiB
Plaintext
OBJECT=ZYT_TO_EJ_INCREMENTAL_MEDICINE_SYNC
|
||
RESULT=NON_DESTRUCTIVE_INCREMENTAL_PUSH_DEPLOYED_EXECUTED_AND_VERIFIED
|
||
NEXT=RETRY_THE_PREVIOUSLY_FAILED_PHARMACY_ORDER
|
||
BRANCH_ZYT=codex/ej-medicine-incremental-sync
|
||
BRANCH_EJ=codex/ej-additive-medicine-import
|
||
ZYT_COMMIT=17e9e7b6b
|
||
ZYT_PUSH=origin/codex/ej-medicine-incremental-sync
|
||
EJ_COMMIT=495b02341ac940d7f7b3dac5254fb6714b41311b
|
||
EJ_PUSH=origin/codex/ej-additive-medicine-import
|
||
CHANGED_BRANCH_FIELD=ZYT ej-pharmacy:push-medicines add-only command + EJ medicine-imports unrelated-catalog preservation
|
||
CLARIFIED_BEHAVIOR=restore soft-deleted ZYT-origin EJ medicine in place; re-enable disabled ZYT-origin medicine; append new ZYT medicine; preserve active existing and EJ-only medicines
|
||
|
||
ARTIFACTS:
|
||
MODIFIED_FILE=/Users/long/Work/zyt-ej-medicine-sync/artifacts/ej-medicine-incremental-sync/MODIFIED_FILE
|
||
DIFF_FILE=/Users/long/Work/zyt-ej-medicine-sync/artifacts/ej-medicine-incremental-sync/DIFF_FILE
|
||
VERIFICATION=/Users/long/Work/zyt-ej-medicine-sync/artifacts/ej-medicine-incremental-sync/VERIFICATION.txt
|
||
ROLLBACK=/Users/long/Work/zyt-ej-medicine-sync/artifacts/ej-medicine-incremental-sync/ROLLBACK.sh
|
||
|
||
ORIGINAL:
|
||
ZYT_BASE_COMMIT=27fbef9321c67f962e4d73f04a52272887c04f95
|
||
ZYT_CONSOLE_SHA256=c722a3445f5027edcec9bb5be0981252bb6b3c28ba6f27e87364cc6829e7be6c
|
||
ZYT_ROUTE_CONTRACTS_SHA256=d17a7d25b1903f5f4bb52740f068b493a6b7842b57adc4f503bf995e43d26d7e
|
||
EJ_BASE_COMMIT=a7439cc2e8c37dd6c32c926f0cc39c1a9c9b4b67
|
||
EJ_IMPORT_SERVICE_SHA256=70f2444db461be0773348814849eeec1742c622e8a807d4b50b2c1190f664b29
|
||
EJ_IMPORT_TEST_SHA256=f91eca5aeb6b493a345dfb79e30614356a83695cc0cd37fe2b8f3d58b0c80e6f
|
||
|
||
BASELINE_1:
|
||
COMMAND=cd /Users/long/Work/zyt/server && php tests/pharmacy/callback_auth_integration.php
|
||
INPUT=baseline checkout 27fbef9321c67f962e4d73f04a52272887c04f95
|
||
LITERAL_OUTPUT=zyt pharmacy callback/auth integration tests passed: 57
|
||
EXIT_STATUS=0
|
||
|
||
BASELINE_2:
|
||
COMMAND=cd /Users/long/Work/zyt/server && php tests/pharmacy/run.php
|
||
INPUT=baseline checkout 27fbef9321c67f962e4d73f04a52272887c04f95
|
||
LITERAL_OUTPUT=Fatal error: Uncaught RuntimeException: tracking correction must append a strict operation log containing old and new logistics values
|
||
EXIT_STATUS=255
|
||
BASELINE_STATUS=pre-existing unrelated tracking-log contract failure; identical after this change
|
||
|
||
BASELINE_3:
|
||
COMMAND=cd /Users/long/Work/ej/server && php tests/pharmacy/run.php
|
||
INPUT=baseline checkout a7439cc2e8c37dd6c32c926f0cc39c1a9c9b4b67
|
||
LITERAL_OUTPUT=pharmacy contract tests passed: 67; pharmacy domain contract tests passed: 41; admin pharmacy contracts passed; workflow template contracts passed: 14
|
||
EXIT_STATUS=0
|
||
|
||
MODIFIED_1:
|
||
COMMAND=php /Users/long/Work/zyt/server/tests/pharmacy/incremental_medicine_push.php
|
||
INPUT=callback fixtures covering dry-run, stable import IDs, HMAC response identity, locks, created/existing responses, inactive mapping preservation, and zero deletes
|
||
LITERAL_OUTPUT=incremental EJ medicine push tests passed: 40
|
||
EXIT_STATUS=0
|
||
|
||
MODIFIED_2:
|
||
COMMAND=php heredoc harness requiring /Users/long/Work/zyt/server/tests/pharmacy/route_contracts.php
|
||
INPUT=modified command/service registration contracts
|
||
LITERAL_OUTPUT=route contracts passed: 26
|
||
EXIT_STATUS=0
|
||
|
||
MODIFIED_3:
|
||
COMMAND=cd /Users/long/Work/zyt/server && php think ej-pharmacy:push-medicines
|
||
INPUT=default dry-run; no --apply
|
||
LITERAL_OUTPUT=dry-run source=654 candidates=654 batches=7 mapped=654 unmapped=0 preserved_inactive=0 remote_delete=0 local_delete=0
|
||
EXIT_STATUS=0
|
||
MODIFIED_RESULT=no EJ HTTP write; no ZYT projection write; no delete
|
||
|
||
MODIFIED_4:
|
||
COMMAND=cd /Users/long/Work/zyt/server && php think ej-pharmacy:push-medicines --apply
|
||
INPUT=apply requested without confirmation token
|
||
LITERAL_OUTPUT=执行增量写入必须提供 --confirm=INCREMENTAL_NO_DELETE
|
||
EXIT_STATUS=1
|
||
MODIFIED_RESULT=write gate stopped before lock, HTTP, or projection mutation
|
||
|
||
MODIFIED_5:
|
||
COMMAND=cd /Users/long/Work/ej/server && php tests/pharmacy/run.php
|
||
INPUT=EJ additive medicine-import service with unrelated catalog rows preserved
|
||
LITERAL_OUTPUT=pharmacy contract tests passed: 67; pharmacy domain contract tests passed: 41; admin pharmacy contracts passed; workflow template contracts passed: 14
|
||
EXIT_STATUS=0
|
||
|
||
MODIFIED_6:
|
||
COMMAND=cd /Users/long/Work/ej/server && php tests/pharmacy/medicine_import_mysql_integration.php
|
||
INPUT=isolated temporary database containing an unrelated EJ medicine plus a new ZYT source medicine
|
||
LITERAL_OUTPUT=medicine import MySQL integration passed: 15 (temporary_database)
|
||
EXIT_STATUS=0
|
||
MODIFIED_RESULT=unrelated EJ medicine and active existing ZYT medicine preserved byte-for-byte; soft-deleted medicine restored in place with original id/code/stock; disabled medicine re-enabled; one new medicine appended; temporary database cleaned
|
||
|
||
MODIFIED_7:
|
||
COMMAND=php -l on ZYT service, ZYT command, ZYT console config, and EJ MedicineImportService
|
||
INPUT=all changed PHP runtime files
|
||
LITERAL_OUTPUT=No syntax errors detected
|
||
EXIT_STATUS=0
|
||
|
||
ROLLBACK:
|
||
COMMAND=ZYT_ROOT=/tmp/ej-sync-rollback-latest.eAdq7T/zyt EJ_ROOT=/tmp/ej-sync-rollback-latest.eAdq7T/ej /Users/long/Work/zyt-ej-medicine-sync/artifacts/ej-medicine-incremental-sync/ROLLBACK.sh
|
||
INPUT=detached copies at ZYT 27fbef932 and EJ a7439cc with clarified diffs applied; BEFORE_ZYT=6; BEFORE_EJ=3
|
||
LITERAL_OUTPUT=ROLLBACK_OK: ZYT incremental push removed; EJ unrelated-catalog preflight restored.
|
||
EXIT_STATUS=0
|
||
ROLLBACK_RESULT=AFTER_ZYT=0; AFTER_EJ=0; both copies restored to clean base behavior/status
|
||
CURRENT_STATUS=ZYT and EJ code deployed; EJ import enabled only for merchant ZYT; production incremental apply completed; target medicine is active; zero deletes
|
||
RESTORED_BEHAVIOR=ROLLBACK removes the ZYT push command/service/docs/tests and restores EJ bootstrap-only unrelated-catalog rejection
|
||
|
||
DEPLOYMENT_1:
|
||
COMMAND=ssh zyt deployment transaction installing ZYT commit 192c31fb8c601d78ed5fc7dd635ee80372a9a760 and EJ commit 495b02341ac940d7f7b3dac5254fb6714b41311b
|
||
INPUT=HOST 39.97.232.35; ZYT /www/wwwroot/zyt; EJ /www/wwwroot/ej; targeted files only
|
||
LITERAL_OUTPUT=BACKUP=/www/deploy-backups/ej-medicine-sync-20260910-120752; ZYT_DEPLOYED=192c31fb8c601d78ed5fc7dd635ee80372a9a760; EJ_DEPLOYED=495b02341ac940d7f7b3dac5254fb6714b41311b
|
||
EXIT_STATUS=0
|
||
DEPLOYMENT_RESULT=unrelated ZYT ACME file and EJ DoctorLogic/.well-known changes preserved
|
||
|
||
DEPLOYMENT_2:
|
||
COMMAND=/etc/init.d/php-fpm-82 reload
|
||
INPUT=production PHP 8.2 service after targeted file installation
|
||
LITERAL_OUTPUT=Reload service php-fpm done
|
||
EXIT_STATUS=0
|
||
|
||
DEPLOYMENT_3:
|
||
COMMAND=sha256sum deployed runtime files and git show COMMIT:PATH
|
||
INPUT=ZYT console/command/service plus EJ MedicineImportService
|
||
LITERAL_OUTPUT=all four expected hashes equal actual hashes; match=YES
|
||
EXIT_STATUS=0
|
||
|
||
DEPLOYMENT_4:
|
||
COMMAND=cd /www/wwwroot/zyt/server && php think ej-pharmacy:push-medicines
|
||
INPUT=production default dry-run; no --apply
|
||
LITERAL_OUTPUT=dry-run source=654 candidates=654 batches=7 mapped=654 unmapped=0 preserved_inactive=0 remote_delete=0 local_delete=0
|
||
EXIT_STATUS=0
|
||
DEPLOYMENT_RESULT=no EJ HTTP write; no ZYT projection write; no delete
|
||
|
||
DEPLOYMENT_5:
|
||
COMMAND=curl https://admin.zhenyangtang.com.cn/ and curl https://lyej.lyenji.com/api/openapi/v1/medicines?after=0&limit=1 without HMAC headers
|
||
INPUT=public post-deployment health verification
|
||
LITERAL_OUTPUT=admin HTTP=200 text/html; EJ HTTP=401 application/json with message Missing authentication headers
|
||
EXIT_STATUS=0
|
||
DEPLOYMENT_RESULT=public admin and EJ gateway are reachable; EJ authentication middleware is active
|
||
|
||
PRODUCTION_BACKUP=/www/deploy-backups/ej-medicine-sync-20260910-120752
|
||
PRODUCTION_ROLLBACK=/www/deploy-backups/ej-medicine-sync-20260910-120752/ROLLBACK.sh
|
||
PRODUCTION_ROLLBACK_CHECK=bash -n exit 0; ZYT_BACKUP_FILES=2; EJ_BACKUP_FILES=3; EJ env restore and PHP-FPM reload included
|
||
PRODUCTION_APPLY=SUCCESS
|
||
|
||
APPLY_1:
|
||
COMMAND=cd /www/wwwroot/zyt/server && php think ej-pharmacy:push-medicines --apply --confirm=INCREMENTAL_NO_DELETE --batch-size=100 --run-id=repair-20260910
|
||
INPUT=production source=654 candidates=654; EJ import feature flag initially false
|
||
LITERAL_OUTPUT=恩济药材导入失败 HTTP 403:Medicine import is disabled
|
||
EXIT_STATUS=1
|
||
CORRECTION=backed up /www/wwwroot/ej/server/.env; set PHARMACY_MEDICINE_IMPORT_ENABLED=true; retained PHARMACY_MEDICINE_IMPORT_ALLOWED_MERCHANTS=ZYT; reloaded PHP-FPM
|
||
|
||
APPLY_2:
|
||
COMMAND=cd /www/wwwroot/zyt/server && php think ej-pharmacy:push-medicines --apply --confirm=INCREMENTAL_NO_DELETE --batch-size=100 --run-id=repair-20260910
|
||
INPUT=production after EJ import enablement restricted to merchant ZYT
|
||
LITERAL_OUTPUT=incremental 完成 run_id=repair-20260910 source=654 candidates=654 batches=7 remote_created=0 remote_existing=654 preserved_inactive=0 catalog_created=0 catalog_updated=654 mapping_created=0 mapping_updated=0 mapping_unchanged=654 remote_delete=0 local_delete=0
|
||
EXIT_STATUS=0
|
||
APPLY_RESULT=seven EJ import batches completed; no remote or local deletes; existing mappings retained
|
||
|
||
APPLY_3:
|
||
COMMAND=signed EJ GET catalog verification through EjPharmacyClient and EjMedicineCatalogSyncPolicy
|
||
INPUT=target medicine_code EJ954E7F38D7E3
|
||
LITERAL_OUTPUT=REMOTE_RECEIVED=670; TARGET_CODE=EJ954E7F38D7E3; TARGET_NAME=生地黄; TARGET_STATUS=1; CATALOG_VERSION=1371; VERIFY_EXIT=0
|
||
EXIT_STATUS=0
|
||
APPLY_RESULT=previously rejected target medicine is present and active; EJ catalog still contains 670 rows versus 654 ZYT source medicines, so EJ-only medicines remain present
|
||
|
||
APPLY_4:
|
||
COMMAND=tail production EJ nginx access/error logs
|
||
INPUT=/api/openapi/v1/medicine-imports after 2026-09-10 12:14:51 +0800
|
||
LITERAL_OUTPUT=seven POST requests returned HTTP 201; no new medicine import PHP/upstream errors
|
||
EXIT_STATUS=0
|
||
|
||
POST_APPLY_AGGREGATE:
|
||
COMMAND=read-only aggregate over EJ pharmacy_medicine joined to pharmacy_medicine_source for the 2026-09-10 12:14:45-12:15:00 apply window
|
||
INPUT=source_system=zyt; production SELECT only
|
||
LITERAL_OUTPUT=RESTORED_OR_REENABLED=628; ZYT_ACTIVE=654; ZYT_TOTAL=654; EJ_VISIBLE_TOTAL=668; UNCHANGED_ACTIVE=26; READ_ONLY_EXIT=0
|
||
EXIT_STATUS=0
|
||
RESULT=628 previously disabled or soft-deleted ZYT-origin medicines were restored/re-enabled; all 654 ZYT-origin medicines are active; 14 additional visible EJ medicines remain
|