workspace root: /d/pipeline/workspaces/0/sdlc_general --- A1~A5: 4 个落点全部执行同一套四段式 spec 断言 --- == spec(inline four-section): /d/pipeline/workspaces/0/sdlc_general/modules/world_sync/models/pbl_runtime_event.json ok A1 json-is-object ok A2 root-keys == {summary,fields,indexes,codes} (got ['codes', 'fields', 'indexes', 'summary']) ok A2 summary non-empty array (got 1) ok A2 fields is array ok A2 indexes is array ok A2 codes is array ok A3 fields non-empty (inline column set, got 25) info summary[0] table-level meta keys (not judged): ['comment'] ok A4[id] field keys subset whitelist (extra=[]) ok A4[id] field.name present ok A4[tenant_id] field keys subset whitelist (extra=[]) ok A4[tenant_id] field.name present ok A4[event_uid] field keys subset whitelist (extra=[]) ok A4[event_uid] field.name present ok A4[event_code] field keys subset whitelist (extra=[]) ok A4[event_code] field.name present ok A4[idem_key] field keys subset whitelist (extra=[]) ok A4[idem_key] field.name present ok A4[world_id] field keys subset whitelist (extra=[]) ok A4[world_id] field.name present ok A4[scene_id] field keys subset whitelist (extra=[]) ok A4[scene_id] field.name present ok A4[session_id] field keys subset whitelist (extra=[]) ok A4[session_id] field.name present ok A4[entity_id] field keys subset whitelist (extra=[]) ok A4[entity_id] field.name present ok A4[actor_id] field keys subset whitelist (extra=[]) ok A4[actor_id] field.name present ok A4[event_type] field keys subset whitelist (extra=[]) ok A4[event_type] field.name present ok A4[payload] field keys subset whitelist (extra=[]) ok A4[payload] field.name present ok A4[payload_json] field keys subset whitelist (extra=[]) ok A4[payload_json] field.name present ok A4[causation_id] field keys subset whitelist (extra=[]) ok A4[causation_id] field.name present ok A4[seq] field keys subset whitelist (extra=[]) ok A4[seq] field.name present ok A4[seq_no] field keys subset whitelist (extra=[]) ok A4[seq_no] field.name present ok A4[source] field keys subset whitelist (extra=[]) ok A4[source] field.name present ok A4[state] field keys subset whitelist (extra=[]) ok A4[state] field.name present ok A4[state_version] field keys subset whitelist (extra=[]) ok A4[state_version] field.name present ok A4[tx_group] field keys subset whitelist (extra=[]) ok A4[tx_group] field.name present ok A4[broadcast] field keys subset whitelist (extra=[]) ok A4[broadcast] field.name present ok A4[created_by] field keys subset whitelist (extra=[]) ok A4[created_by] field.name present ok A4[created_at] field keys subset whitelist (extra=[]) ok A4[created_at] field.name present ok A4[updated_at] field keys subset whitelist (extra=[]) ok A4[updated_at] field.name present ok A4[occurred_at] field keys subset whitelist (extra=[]) ok A4[occurred_at] field.name present ok A4[uk_event_uid] index keys subset whitelist (extra=[]) ok A4[uk_tenant_idem] index keys subset whitelist (extra=[]) ok A4[ix_scene_created] index keys subset whitelist (extra=[]) ok A4[ix_tenant_session_seq] index keys subset whitelist (extra=[]) ok A4[ix_tenant_session_seqno] index keys subset whitelist (extra=[]) ok A4[ix_tenant_world_type] index keys subset whitelist (extra=[]) ok A4[ix_tx_group] index keys subset whitelist (extra=[]) ok A4[ix_created_at] index keys subset whitelist (extra=[]) ok A4[code:event_type] keys subset whitelist (extra=[]) ok A4[uk_event_uid] idxfield present in fields: tenant_id ok A4[uk_event_uid] idxfield present in fields: event_uid ok A4[uk_event_uid] idxfield present in fields: created_at ok A4[uk_event_uid] idxtype unique|index ('unique') ok A4[uk_tenant_idem] idxfield present in fields: tenant_id ok A4[uk_tenant_idem] idxfield present in fields: idem_key ok A4[uk_tenant_idem] idxfield present in fields: created_at ok A4[uk_tenant_idem] idxtype unique|index ('unique') ok A4[ix_scene_created] idxfield present in fields: scene_id ok A4[ix_scene_created] idxfield present in fields: created_at ok A4[ix_scene_created] idxtype unique|index ('index') ok A4[ix_tenant_session_seq] idxfield present in fields: tenant_id ok A4[ix_tenant_session_seq] idxfield present in fields: session_id ok A4[ix_tenant_session_seq] idxfield present in fields: seq ok A4[ix_tenant_session_seq] idxtype unique|index ('index') ok A4[ix_tenant_session_seqno] idxfield present in fields: tenant_id ok A4[ix_tenant_session_seqno] idxfield present in fields: session_id ok A4[ix_tenant_session_seqno] idxfield present in fields: seq_no ok A4[ix_tenant_session_seqno] idxtype unique|index ('index') ok A4[ix_tenant_world_type] idxfield present in fields: tenant_id ok A4[ix_tenant_world_type] idxfield present in fields: world_id ok A4[ix_tenant_world_type] idxfield present in fields: event_type ok A4[ix_tenant_world_type] idxtype unique|index ('index') ok A4[ix_tx_group] idxfield present in fields: tx_group ok A4[ix_tx_group] idxtype unique|index ('index') ok A4[ix_created_at] idxfield present in fields: created_at ok A4[ix_created_at] idxtype unique|index ('index') ok A3[id] abstract type ('str') ok A3[id] positive int length ok A3[id] nullable in yes|no ok A3[tenant_id] abstract type ('str') ok A3[tenant_id] positive int length ok A3[tenant_id] nullable in yes|no ok A3[event_uid] abstract type ('str') ok A3[event_uid] positive int length ok A3[event_uid] nullable in yes|no ok A3[event_code] abstract type ('str') ok A3[event_code] positive int length ok A3[event_code] nullable in yes|no ok A3[idem_key] abstract type ('str') ok A3[idem_key] positive int length ok A3[idem_key] nullable in yes|no ok A3[world_id] abstract type ('long') ok A3[world_id] nullable in yes|no ok A3[scene_id] abstract type ('long') ok A3[scene_id] nullable in yes|no ok A3[session_id] abstract type ('long') ok A3[session_id] nullable in yes|no ok A3[entity_id] abstract type ('str') ok A3[entity_id] positive int length ok A3[entity_id] nullable in yes|no ok A3[actor_id] abstract type ('str') ok A3[actor_id] positive int length ok A3[actor_id] nullable in yes|no ok A3[event_type] abstract type ('str') ok A3[event_type] positive int length ok A3[event_type] nullable in yes|no ok A3[payload] abstract type ('text') ok A3[payload] nullable in yes|no ok A3[payload_json] abstract type ('text') ok A3[payload_json] nullable in yes|no ok A3[causation_id] abstract type ('str') ok A3[causation_id] positive int length ok A3[causation_id] nullable in yes|no ok A3[seq] abstract type ('long') ok A3[seq] nullable in yes|no ok A3[seq_no] abstract type ('long') ok A3[seq_no] nullable in yes|no ok A3[source] abstract type ('str') ok A3[source] positive int length ok A3[source] nullable in yes|no ok A3[state] abstract type ('str') ok A3[state] positive int length ok A3[state] nullable in yes|no ok A3[state_version] abstract type ('long') ok A3[state_version] nullable in yes|no ok A3[tx_group] abstract type ('str') ok A3[tx_group] positive int length ok A3[tx_group] nullable in yes|no ok A3[broadcast] abstract type ('short') ok A3[broadcast] nullable in yes|no ok A3[created_by] abstract type ('long') ok A3[created_by] nullable in yes|no ok A3[created_at] abstract type ('datetime') ok A3[created_at] nullable in yes|no ok A3[updated_at] abstract type ('datetime') ok A3[updated_at] nullable in yes|no ok A3[occurred_at] abstract type ('datetime') ok A3[occurred_at] nullable in yes|no ok A5 summary[0] is object ok A5 summary[0].name non-empty ok A5 summary[0].name == filename stem ('pbl_runtime_event' vs 'pbl_runtime_event') == spec(inline four-section): /d/pipeline/workspaces/0/sdlc_general/apps/scense/pkgs/world_sync/models/pbl_runtime_event.json ok A1 json-is-object ok A2 root-keys == {summary,fields,indexes,codes} (got ['codes', 'fields', 'indexes', 'summary']) ok A2 summary non-empty array (got 1) ok A2 fields is array ok A2 indexes is array ok A2 codes is array ok A3 fields non-empty (inline column set, got 25) info summary[0] table-level meta keys (not judged): ['comment'] ok A4[id] field keys subset whitelist (extra=[]) ok A4[id] field.name present ok A4[tenant_id] field keys subset whitelist (extra=[]) ok A4[tenant_id] field.name present ok A4[event_uid] field keys subset whitelist (extra=[]) ok A4[event_uid] field.name present ok A4[event_code] field keys subset whitelist (extra=[]) ok A4[event_code] field.name present ok A4[idem_key] field keys subset whitelist (extra=[]) ok A4[idem_key] field.name present ok A4[world_id] field keys subset whitelist (extra=[]) ok A4[world_id] field.name present ok A4[scene_id] field keys subset whitelist (extra=[]) ok A4[scene_id] field.name present ok A4[session_id] field keys subset whitelist (extra=[]) ok A4[session_id] field.name present ok A4[entity_id] field keys subset whitelist (extra=[]) ok A4[entity_id] field.name present ok A4[actor_id] field keys subset whitelist (extra=[]) ok A4[actor_id] field.name present ok A4[event_type] field keys subset whitelist (extra=[]) ok A4[event_type] field.name present ok A4[payload] field keys subset whitelist (extra=[]) ok A4[payload] field.name present ok A4[payload_json] field keys subset whitelist (extra=[]) ok A4[payload_json] field.name present ok A4[causation_id] field keys subset whitelist (extra=[]) ok A4[causation_id] field.name present ok A4[seq] field keys subset whitelist (extra=[]) ok A4[seq] field.name present ok A4[seq_no] field keys subset whitelist (extra=[]) ok A4[seq_no] field.name present ok A4[source] field keys subset whitelist (extra=[]) ok A4[source] field.name present ok A4[state] field keys subset whitelist (extra=[]) ok A4[state] field.name present ok A4[state_version] field keys subset whitelist (extra=[]) ok A4[state_version] field.name present ok A4[tx_group] field keys subset whitelist (extra=[]) ok A4[tx_group] field.name present ok A4[broadcast] field keys subset whitelist (extra=[]) ok A4[broadcast] field.name present ok A4[created_by] field keys subset whitelist (extra=[]) ok A4[created_by] field.name present ok A4[created_at] field keys subset whitelist (extra=[]) ok A4[created_at] field.name present ok A4[updated_at] field keys subset whitelist (extra=[]) ok A4[updated_at] field.name present ok A4[occurred_at] field keys subset whitelist (extra=[]) ok A4[occurred_at] field.name present ok A4[uk_event_uid] index keys subset whitelist (extra=[]) ok A4[uk_tenant_idem] index keys subset whitelist (extra=[]) ok A4[ix_scene_created] index keys subset whitelist (extra=[]) ok A4[ix_tenant_session_seq] index keys subset whitelist (extra=[]) ok A4[ix_tenant_session_seqno] index keys subset whitelist (extra=[]) ok A4[ix_tenant_world_type] index keys subset whitelist (extra=[]) ok A4[ix_tx_group] index keys subset whitelist (extra=[]) ok A4[ix_created_at] index keys subset whitelist (extra=[]) ok A4[code:event_type] keys subset whitelist (extra=[]) ok A4[uk_event_uid] idxfield present in fields: tenant_id ok A4[uk_event_uid] idxfield present in fields: event_uid ok A4[uk_event_uid] idxfield present in fields: created_at ok A4[uk_event_uid] idxtype unique|index ('unique') ok A4[uk_tenant_idem] idxfield present in fields: tenant_id ok A4[uk_tenant_idem] idxfield present in fields: idem_key ok A4[uk_tenant_idem] idxfield present in fields: created_at ok A4[uk_tenant_idem] idxtype unique|index ('unique') ok A4[ix_scene_created] idxfield present in fields: scene_id ok A4[ix_scene_created] idxfield present in fields: created_at ok A4[ix_scene_created] idxtype unique|index ('index') ok A4[ix_tenant_session_seq] idxfield present in fields: tenant_id ok A4[ix_tenant_session_seq] idxfield present in fields: session_id ok A4[ix_tenant_session_seq] idxfield present in fields: seq ok A4[ix_tenant_session_seq] idxtype unique|index ('index') ok A4[ix_tenant_session_seqno] idxfield present in fields: tenant_id ok A4[ix_tenant_session_seqno] idxfield present in fields: session_id ok A4[ix_tenant_session_seqno] idxfield present in fields: seq_no ok A4[ix_tenant_session_seqno] idxtype unique|index ('index') ok A4[ix_tenant_world_type] idxfield present in fields: tenant_id ok A4[ix_tenant_world_type] idxfield present in fields: world_id ok A4[ix_tenant_world_type] idxfield present in fields: event_type ok A4[ix_tenant_world_type] idxtype unique|index ('index') ok A4[ix_tx_group] idxfield present in fields: tx_group ok A4[ix_tx_group] idxtype unique|index ('index') ok A4[ix_created_at] idxfield present in fields: created_at ok A4[ix_created_at] idxtype unique|index ('index') ok A3[id] abstract type ('str') ok A3[id] positive int length ok A3[id] nullable in yes|no ok A3[tenant_id] abstract type ('str') ok A3[tenant_id] positive int length ok A3[tenant_id] nullable in yes|no ok A3[event_uid] abstract type ('str') ok A3[event_uid] positive int length ok A3[event_uid] nullable in yes|no ok A3[event_code] abstract type ('str') ok A3[event_code] positive int length ok A3[event_code] nullable in yes|no ok A3[idem_key] abstract type ('str') ok A3[idem_key] positive int length ok A3[idem_key] nullable in yes|no ok A3[world_id] abstract type ('long') ok A3[world_id] nullable in yes|no ok A3[scene_id] abstract type ('long') ok A3[scene_id] nullable in yes|no ok A3[session_id] abstract type ('long') ok A3[session_id] nullable in yes|no ok A3[entity_id] abstract type ('str') ok A3[entity_id] positive int length ok A3[entity_id] nullable in yes|no ok A3[actor_id] abstract type ('str') ok A3[actor_id] positive int length ok A3[actor_id] nullable in yes|no ok A3[event_type] abstract type ('str') ok A3[event_type] positive int length ok A3[event_type] nullable in yes|no ok A3[payload] abstract type ('text') ok A3[payload] nullable in yes|no ok A3[payload_json] abstract type ('text') ok A3[payload_json] nullable in yes|no ok A3[causation_id] abstract type ('str') ok A3[causation_id] positive int length ok A3[causation_id] nullable in yes|no ok A3[seq] abstract type ('long') ok A3[seq] nullable in yes|no ok A3[seq_no] abstract type ('long') ok A3[seq_no] nullable in yes|no ok A3[source] abstract type ('str') ok A3[source] positive int length ok A3[source] nullable in yes|no ok A3[state] abstract type ('str') ok A3[state] positive int length ok A3[state] nullable in yes|no ok A3[state_version] abstract type ('long') ok A3[state_version] nullable in yes|no ok A3[tx_group] abstract type ('str') ok A3[tx_group] positive int length ok A3[tx_group] nullable in yes|no ok A3[broadcast] abstract type ('short') ok A3[broadcast] nullable in yes|no ok A3[created_by] abstract type ('long') ok A3[created_by] nullable in yes|no ok A3[created_at] abstract type ('datetime') ok A3[created_at] nullable in yes|no ok A3[updated_at] abstract type ('datetime') ok A3[updated_at] nullable in yes|no ok A3[occurred_at] abstract type ('datetime') ok A3[occurred_at] nullable in yes|no ok A5 summary[0] is object ok A5 summary[0].name non-empty ok A5 summary[0].name == filename stem ('pbl_runtime_event' vs 'pbl_runtime_event') == spec(inline four-section): /d/pipeline/workspaces/0/sdlc_general/modules/world_sync/models/pbl_entity_state.json ok A1 json-is-object ok A2 root-keys == {summary,fields,indexes,codes} (got ['codes', 'fields', 'indexes', 'summary']) ok A2 summary non-empty array (got 1) ok A2 fields is array ok A2 indexes is array ok A2 codes is array ok A3 fields non-empty (inline column set, got 10) info summary[0] table-level meta keys (not judged): ['comment'] ok A4[tenant_id] field keys subset whitelist (extra=[]) ok A4[tenant_id] field.name present ok A4[id] field keys subset whitelist (extra=[]) ok A4[id] field.name present ok A4[session_id] field keys subset whitelist (extra=[]) ok A4[session_id] field.name present ok A4[entity_id] field keys subset whitelist (extra=[]) ok A4[entity_id] field.name present ok A4[state_json] field keys subset whitelist (extra=[]) ok A4[state_json] field.name present ok A4[state_version] field keys subset whitelist (extra=[]) ok A4[state_version] field.name present ok A4[checksum] field keys subset whitelist (extra=[]) ok A4[checksum] field.name present ok A4[updated_by] field keys subset whitelist (extra=[]) ok A4[updated_by] field.name present ok A4[created_at] field keys subset whitelist (extra=[]) ok A4[created_at] field.name present ok A4[updated_at] field keys subset whitelist (extra=[]) ok A4[updated_at] field.name present ok A4[uk_es] index keys subset whitelist (extra=[]) ok A4[uk_es] idxfield present in fields: tenant_id ok A4[uk_es] idxfield present in fields: session_id ok A4[uk_es] idxfield present in fields: entity_id ok A4[uk_es] idxtype unique|index ('unique') ok A3[tenant_id] abstract type ('str') ok A3[tenant_id] positive int length ok A3[tenant_id] nullable in yes|no ok A3[id] abstract type ('str') ok A3[id] positive int length ok A3[id] nullable in yes|no ok A3[session_id] abstract type ('long') ok A3[session_id] nullable in yes|no ok A3[entity_id] abstract type ('str') ok A3[entity_id] positive int length ok A3[entity_id] nullable in yes|no ok A3[state_json] abstract type ('text') ok A3[state_json] nullable in yes|no ok A3[state_version] abstract type ('long') ok A3[state_version] nullable in yes|no ok A3[checksum] abstract type ('str') ok A3[checksum] positive int length ok A3[checksum] nullable in yes|no ok A3[updated_by] abstract type ('str') ok A3[updated_by] positive int length ok A3[updated_by] nullable in yes|no ok A3[created_at] abstract type ('datetime') ok A3[created_at] nullable in yes|no ok A3[updated_at] abstract type ('datetime') ok A3[updated_at] nullable in yes|no ok A5 summary[0] is object ok A5 summary[0].name non-empty ok A5 summary[0].name == filename stem ('pbl_entity_state' vs 'pbl_entity_state') == spec(inline four-section): /d/pipeline/workspaces/0/sdlc_general/apps/scense/pkgs/world_sync/models/pbl_entity_state.json ok A1 json-is-object ok A2 root-keys == {summary,fields,indexes,codes} (got ['codes', 'fields', 'indexes', 'summary']) ok A2 summary non-empty array (got 1) ok A2 fields is array ok A2 indexes is array ok A2 codes is array ok A3 fields non-empty (inline column set, got 10) info summary[0] table-level meta keys (not judged): ['comment'] ok A4[tenant_id] field keys subset whitelist (extra=[]) ok A4[tenant_id] field.name present ok A4[id] field keys subset whitelist (extra=[]) ok A4[id] field.name present ok A4[session_id] field keys subset whitelist (extra=[]) ok A4[session_id] field.name present ok A4[entity_id] field keys subset whitelist (extra=[]) ok A4[entity_id] field.name present ok A4[state_json] field keys subset whitelist (extra=[]) ok A4[state_json] field.name present ok A4[state_version] field keys subset whitelist (extra=[]) ok A4[state_version] field.name present ok A4[checksum] field keys subset whitelist (extra=[]) ok A4[checksum] field.name present ok A4[updated_by] field keys subset whitelist (extra=[]) ok A4[updated_by] field.name present ok A4[created_at] field keys subset whitelist (extra=[]) ok A4[created_at] field.name present ok A4[updated_at] field keys subset whitelist (extra=[]) ok A4[updated_at] field.name present ok A4[uk_es] index keys subset whitelist (extra=[]) ok A4[uk_es] idxfield present in fields: tenant_id ok A4[uk_es] idxfield present in fields: session_id ok A4[uk_es] idxfield present in fields: entity_id ok A4[uk_es] idxtype unique|index ('unique') ok A3[tenant_id] abstract type ('str') ok A3[tenant_id] positive int length ok A3[tenant_id] nullable in yes|no ok A3[id] abstract type ('str') ok A3[id] positive int length ok A3[id] nullable in yes|no ok A3[session_id] abstract type ('long') ok A3[session_id] nullable in yes|no ok A3[entity_id] abstract type ('str') ok A3[entity_id] positive int length ok A3[entity_id] nullable in yes|no ok A3[state_json] abstract type ('text') ok A3[state_json] nullable in yes|no ok A3[state_version] abstract type ('long') ok A3[state_version] nullable in yes|no ok A3[checksum] abstract type ('str') ok A3[checksum] positive int length ok A3[checksum] nullable in yes|no ok A3[updated_by] abstract type ('str') ok A3[updated_by] positive int length ok A3[updated_by] nullable in yes|no ok A3[created_at] abstract type ('datetime') ok A3[created_at] nullable in yes|no ok A3[updated_at] abstract type ('datetime') ok A3[updated_at] nullable in yes|no ok A5 summary[0] is object ok A5 summary[0].name non-empty ok A5 summary[0].name == filename stem ('pbl_entity_state' vs 'pbl_entity_state') --- A7: 真源与镜像 sha256 两两相同 --- pbl_runtime_event.json src=910d80e1077f0297fbf2d4eb4f1c6ab879e1656567a686f9d67c648945e4d373 dst=910d80e1077f0297fbf2d4eb4f1c6ab879e1656567a686f9d67c648945e4d373 ok A7 sha256 equal: pbl_runtime_event.json pbl_entity_state.json src=3c83d007e5a0f88799f8ece35cc5a57063a88cb903110c2d913febdcddedda38 dst=3c83d007e5a0f88799f8ece35cc5a57063a88cb903110c2d913febdcddedda38 ok A7 sha256 equal: pbl_entity_state.json --- A6: 权威真源(pbl_runtime_ext)上游体检,只登记不判定 --- == authority(upstream audit): /d/pipeline/workspaces/0/sdlc_general/modules/pbl_runtime_ext/models/pbl_runtime_event.json ok A6 root-is-object ok A6 root-keys subset of four-section (got ['codes', 'fields', 'indexes', 'summary']) ok A6 summary has exactly one record (got 1) DEFECT A6 summary keys subset whitelist (got ['append_only', 'charset', 'collate', 'comment', 'ddl_source', 'engine', 'guards', 'module', 'name', 'partition', 'primary', 'tenant_scoped', 'title', 'write_paths']) ok A6 summary.name non-empty ok A6 summary.primary is non-empty array ok A6 fields non-empty DEFECT A6[id] field keys subset whitelist (got ['auto_increment', 'comment', 'ddl_type', 'name', 'nullable', 'title', 'type']) ok A6[id] abstract type ('long') ok A6[id] nullable in yes|no DEFECT A6[tenant_id] field keys subset whitelist (got ['comment', 'ddl_type', 'default', 'length', 'name', 'nullable', 'title', 'type']) ok A6[tenant_id] abstract type ('str') ok A6[tenant_id] positive int length ok A6[tenant_id] nullable in yes|no DEFECT A6[event_uid] field keys subset whitelist (got ['comment', 'ddl_type', 'length', 'name', 'nullable', 'title', 'type']) ok A6[event_uid] abstract type ('str') ok A6[event_uid] positive int length ok A6[event_uid] nullable in yes|no DEFECT A6[event_code] field keys subset whitelist (got ['comment', 'ddl_type', 'default', 'length', 'name', 'nullable', 'title', 'type']) ok A6[event_code] abstract type ('str') ok A6[event_code] positive int length ok A6[event_code] nullable in yes|no DEFECT A6[idem_key] field keys subset whitelist (got ['comment', 'ddl_type', 'default', 'length', 'name', 'nullable', 'title', 'type']) ok A6[idem_key] abstract type ('str') ok A6[idem_key] positive int length ok A6[idem_key] nullable in yes|no DEFECT A6[world_id] field keys subset whitelist (got ['comment', 'ddl_type', 'default', 'name', 'nullable', 'title', 'type']) ok A6[world_id] abstract type ('long') ok A6[world_id] nullable in yes|no DEFECT A6[scene_id] field keys subset whitelist (got ['comment', 'ddl_type', 'default', 'name', 'nullable', 'title', 'type']) ok A6[scene_id] abstract type ('long') ok A6[scene_id] nullable in yes|no DEFECT A6[session_id] field keys subset whitelist (got ['comment', 'ddl_type', 'default', 'name', 'nullable', 'title', 'type']) ok A6[session_id] abstract type ('long') ok A6[session_id] nullable in yes|no DEFECT A6[entity_id] field keys subset whitelist (got ['comment', 'ddl_type', 'default', 'length', 'name', 'nullable', 'title', 'type']) ok A6[entity_id] abstract type ('str') ok A6[entity_id] positive int length ok A6[entity_id] nullable in yes|no DEFECT A6[actor_id] field keys subset whitelist (got ['comment', 'ddl_type', 'default', 'length', 'name', 'nullable', 'title', 'type']) ok A6[actor_id] abstract type ('str') ok A6[actor_id] positive int length ok A6[actor_id] nullable in yes|no DEFECT A6[event_type] field keys subset whitelist (got ['comment', 'ddl_type', 'length', 'name', 'nullable', 'title', 'type']) ok A6[event_type] abstract type ('str') ok A6[event_type] positive int length ok A6[event_type] nullable in yes|no DEFECT A6[payload] field keys subset whitelist (got ['comment', 'ddl_type', 'name', 'nullable', 'title', 'type']) ok A6[payload] abstract type ('text') ok A6[payload] nullable in yes|no DEFECT A6[payload_json] field keys subset whitelist (got ['comment', 'ddl_type', 'name', 'nullable', 'title', 'type']) ok A6[payload_json] abstract type ('text') ok A6[payload_json] nullable in yes|no DEFECT A6[causation_id] field keys subset whitelist (got ['comment', 'ddl_type', 'default', 'length', 'name', 'nullable', 'title', 'type']) ok A6[causation_id] abstract type ('str') ok A6[causation_id] positive int length ok A6[causation_id] nullable in yes|no DEFECT A6[seq] field keys subset whitelist (got ['comment', 'ddl_type', 'default', 'name', 'nullable', 'title', 'type']) ok A6[seq] abstract type ('long') ok A6[seq] nullable in yes|no DEFECT A6[seq_no] field keys subset whitelist (got ['comment', 'ddl_type', 'default', 'name', 'nullable', 'title', 'type']) ok A6[seq_no] abstract type ('long') ok A6[seq_no] nullable in yes|no DEFECT A6[source] field keys subset whitelist (got ['comment', 'ddl_type', 'default', 'length', 'name', 'nullable', 'title', 'type']) ok A6[source] abstract type ('str') ok A6[source] positive int length ok A6[source] nullable in yes|no DEFECT A6[state] field keys subset whitelist (got ['comment', 'ddl_type', 'default', 'length', 'name', 'nullable', 'title', 'type']) ok A6[state] abstract type ('str') ok A6[state] positive int length ok A6[state] nullable in yes|no DEFECT A6[state_version] field keys subset whitelist (got ['comment', 'ddl_type', 'default', 'name', 'nullable', 'title', 'type']) ok A6[state_version] abstract type ('long') ok A6[state_version] nullable in yes|no DEFECT A6[tx_group] field keys subset whitelist (got ['comment', 'ddl_type', 'default', 'length', 'name', 'nullable', 'title', 'type']) ok A6[tx_group] abstract type ('str') ok A6[tx_group] positive int length ok A6[tx_group] nullable in yes|no DEFECT A6[broadcast] field keys subset whitelist (got ['comment', 'ddl_type', 'default', 'name', 'nullable', 'title', 'type']) ok A6[broadcast] abstract type ('short') ok A6[broadcast] nullable in yes|no DEFECT A6[created_by] field keys subset whitelist (got ['comment', 'ddl_type', 'default', 'name', 'nullable', 'title', 'type']) ok A6[created_by] abstract type ('long') ok A6[created_by] nullable in yes|no DEFECT A6[created_at] field keys subset whitelist (got ['comment', 'ddl_type', 'default', 'name', 'nullable', 'title', 'type']) ok A6[created_at] abstract type ('datetime') ok A6[created_at] nullable in yes|no DEFECT A6[updated_at] field keys subset whitelist (got ['comment', 'ddl_type', 'default', 'name', 'nullable', 'title', 'type']) ok A6[updated_at] abstract type ('datetime') ok A6[updated_at] nullable in yes|no DEFECT A6[occurred_at] field keys subset whitelist (got ['comment', 'ddl_type', 'name', 'nullable', 'title', 'type']) ok A6[occurred_at] abstract type ('datetime') ok A6[occurred_at] nullable in yes|no DEFECT A6[uk_event_uid] index keys subset whitelist (got ['comment', 'idxfields', 'idxtype', 'name']) ok A6[uk_event_uid] idxfields non-empty array ok A6[uk_event_uid] idxtype unique|index ok A6[uk_event_uid] idxfield exists in fields: tenant_id ok A6[uk_event_uid] idxfield exists in fields: event_uid ok A6[uk_event_uid] idxfield exists in fields: created_at DEFECT A6[uk_tenant_idem] index keys subset whitelist (got ['comment', 'idxfields', 'idxtype', 'name']) ok A6[uk_tenant_idem] idxfields non-empty array ok A6[uk_tenant_idem] idxtype unique|index ok A6[uk_tenant_idem] idxfield exists in fields: tenant_id ok A6[uk_tenant_idem] idxfield exists in fields: idem_key ok A6[uk_tenant_idem] idxfield exists in fields: created_at DEFECT A6[ix_scene_created] index keys subset whitelist (got ['comment', 'idxfields', 'idxtype', 'name']) ok A6[ix_scene_created] idxfields non-empty array ok A6[ix_scene_created] idxtype unique|index ok A6[ix_scene_created] idxfield exists in fields: scene_id ok A6[ix_scene_created] idxfield exists in fields: created_at DEFECT A6[ix_tenant_session_seq] index keys subset whitelist (got ['comment', 'idxfields', 'idxtype', 'name']) ok A6[ix_tenant_session_seq] idxfields non-empty array ok A6[ix_tenant_session_seq] idxtype unique|index ok A6[ix_tenant_session_seq] idxfield exists in fields: tenant_id ok A6[ix_tenant_session_seq] idxfield exists in fields: session_id ok A6[ix_tenant_session_seq] idxfield exists in fields: seq DEFECT A6[ix_tenant_session_seqno] index keys subset whitelist (got ['comment', 'idxfields', 'idxtype', 'name']) ok A6[ix_tenant_session_seqno] idxfields non-empty array ok A6[ix_tenant_session_seqno] idxtype unique|index ok A6[ix_tenant_session_seqno] idxfield exists in fields: tenant_id ok A6[ix_tenant_session_seqno] idxfield exists in fields: session_id ok A6[ix_tenant_session_seqno] idxfield exists in fields: seq_no DEFECT A6[ix_tenant_world_type] index keys subset whitelist (got ['comment', 'idxfields', 'idxtype', 'name']) ok A6[ix_tenant_world_type] idxfields non-empty array ok A6[ix_tenant_world_type] idxtype unique|index ok A6[ix_tenant_world_type] idxfield exists in fields: tenant_id ok A6[ix_tenant_world_type] idxfield exists in fields: world_id ok A6[ix_tenant_world_type] idxfield exists in fields: event_type DEFECT A6[ix_tx_group] index keys subset whitelist (got ['comment', 'idxfields', 'idxtype', 'name']) ok A6[ix_tx_group] idxfields non-empty array ok A6[ix_tx_group] idxtype unique|index ok A6[ix_tx_group] idxfield exists in fields: tx_group DEFECT A6[ix_created_at] index keys subset whitelist (got ['comment', 'idxfields', 'idxtype', 'name']) ok A6[ix_created_at] idxfields non-empty array ok A6[ix_created_at] idxtype unique|index ok A6[ix_created_at] idxfield exists in fields: created_at DEFECT A6 code keys subset whitelist (got ['comment', 'cond', 'field', 'table', 'textfield', 'valuefield']) ok A6 appcodes_kv cond uses parentid= ok A6 codes.table has no dot notation == authority(upstream audit): /d/pipeline/workspaces/0/sdlc_general/modules/pbl_runtime_ext/models/pbl_entity_state.json ok A6 root-is-object ok A6 root-keys subset of four-section (got ['codes', 'fields', 'indexes', 'summary']) ok A6 summary has exactly one record (got 1) DEFECT A6 summary keys subset whitelist (got ['charset', 'comment', 'engine', 'module', 'name', 'tenant_scoped']) ok A6 summary.name non-empty DEFECT A6 summary.primary is non-empty array ok A6 fields non-empty DEFECT A6[tenant_id] field keys subset whitelist (got ['comment', 'length', 'name', 'null', 'type']) ok A6[tenant_id] abstract type ('str') ok A6[tenant_id] positive int length ok A6[tenant_id] nullable in yes|no DEFECT A6[id] field keys subset whitelist (got ['auto_increment', 'comment', 'length', 'name', 'null', 'type', 'unsigned']) ok A6[id] abstract type ('int') ok A6[id] nullable in yes|no DEFECT A6[session_id] field keys subset whitelist (got ['comment', 'name', 'null', 'type']) DEFECT A6[session_id] abstract type ('bigint') ok A6[session_id] nullable in yes|no DEFECT A6[entity_id] field keys subset whitelist (got ['comment', 'length', 'name', 'null', 'type']) ok A6[entity_id] abstract type ('str') ok A6[entity_id] positive int length ok A6[entity_id] nullable in yes|no DEFECT A6[state_json] field keys subset whitelist (got ['comment', 'name', 'null', 'type']) DEFECT A6[state_json] abstract type ('json') ok A6[state_json] nullable in yes|no DEFECT A6[state_version] field keys subset whitelist (got ['comment', 'name', 'null', 'type']) DEFECT A6[state_version] abstract type ('bigint') ok A6[state_version] nullable in yes|no DEFECT A6[checksum] field keys subset whitelist (got ['comment', 'length', 'name', 'null', 'type']) ok A6[checksum] abstract type ('str') ok A6[checksum] positive int length ok A6[checksum] nullable in yes|no DEFECT A6[updated_by] field keys subset whitelist (got ['comment', 'length', 'name', 'null', 'type']) ok A6[updated_by] abstract type ('str') ok A6[updated_by] positive int length ok A6[updated_by] nullable in yes|no DEFECT A6[created_at] field keys subset whitelist (got ['comment', 'name', 'null', 'type']) ok A6[created_at] abstract type ('datetime') ok A6[created_at] nullable in yes|no DEFECT A6[updated_at] field keys subset whitelist (got ['comment', 'name', 'null', 'type']) ok A6[updated_at] abstract type ('datetime') ok A6[updated_at] nullable in yes|no DEFECT A6[uk_es] index keys subset whitelist (got ['fields', 'name', 'unique']) DEFECT A6[uk_es] idxfields non-empty array DEFECT A6[uk_es] idxtype unique|index DEFECT A6[PRIMARY] index keys subset whitelist (got ['fields', 'name', 'unique']) DEFECT A6[PRIMARY] idxfields non-empty array DEFECT A6[PRIMARY] idxtype unique|index judged assertions executed: 438 upstream audit checks executed: 186 UPSTREAM DEFECTS (56) -> 已登记,需冒泡 agent.pm / pbl_runtime_ext owner: * A6 summary keys subset whitelist (got ['append_only', 'charset', 'collate', 'comment', 'ddl_source', 'engine', 'guards', 'module', 'name', 'partition', 'primary', 'tenant_scoped', 'title', 'write_paths']) * A6[id] field keys subset whitelist (got ['auto_increment', 'comment', 'ddl_type', 'name', 'nullable', 'title', 'type']) * A6[tenant_id] field keys subset whitelist (got ['comment', 'ddl_type', 'default', 'length', 'name', 'nullable', 'title', 'type']) * A6[event_uid] field keys subset whitelist (got ['comment', 'ddl_type', 'length', 'name', 'nullable', 'title', 'type']) * A6[event_code] field keys subset whitelist (got ['comment', 'ddl_type', 'default', 'length', 'name', 'nullable', 'title', 'type']) * A6[idem_key] field keys subset whitelist (got ['comment', 'ddl_type', 'default', 'length', 'name', 'nullable', 'title', 'type']) * A6[world_id] field keys subset whitelist (got ['comment', 'ddl_type', 'default', 'name', 'nullable', 'title', 'type']) * A6[scene_id] field keys subset whitelist (got ['comment', 'ddl_type', 'default', 'name', 'nullable', 'title', 'type']) * A6[session_id] field keys subset whitelist (got ['comment', 'ddl_type', 'default', 'name', 'nullable', 'title', 'type']) * A6[entity_id] field keys subset whitelist (got ['comment', 'ddl_type', 'default', 'length', 'name', 'nullable', 'title', 'type']) * A6[actor_id] field keys subset whitelist (got ['comment', 'ddl_type', 'default', 'length', 'name', 'nullable', 'title', 'type']) * A6[event_type] field keys subset whitelist (got ['comment', 'ddl_type', 'length', 'name', 'nullable', 'title', 'type']) * A6[payload] field keys subset whitelist (got ['comment', 'ddl_type', 'name', 'nullable', 'title', 'type']) * A6[payload_json] field keys subset whitelist (got ['comment', 'ddl_type', 'name', 'nullable', 'title', 'type']) * A6[causation_id] field keys subset whitelist (got ['comment', 'ddl_type', 'default', 'length', 'name', 'nullable', 'title', 'type']) * A6[seq] field keys subset whitelist (got ['comment', 'ddl_type', 'default', 'name', 'nullable', 'title', 'type']) * A6[seq_no] field keys subset whitelist (got ['comment', 'ddl_type', 'default', 'name', 'nullable', 'title', 'type']) * A6[source] field keys subset whitelist (got ['comment', 'ddl_type', 'default', 'length', 'name', 'nullable', 'title', 'type']) * A6[state] field keys subset whitelist (got ['comment', 'ddl_type', 'default', 'length', 'name', 'nullable', 'title', 'type']) * A6[state_version] field keys subset whitelist (got ['comment', 'ddl_type', 'default', 'name', 'nullable', 'title', 'type']) * A6[tx_group] field keys subset whitelist (got ['comment', 'ddl_type', 'default', 'length', 'name', 'nullable', 'title', 'type']) * A6[broadcast] field keys subset whitelist (got ['comment', 'ddl_type', 'default', 'name', 'nullable', 'title', 'type']) * A6[created_by] field keys subset whitelist (got ['comment', 'ddl_type', 'default', 'name', 'nullable', 'title', 'type']) * A6[created_at] field keys subset whitelist (got ['comment', 'ddl_type', 'default', 'name', 'nullable', 'title', 'type']) * A6[updated_at] field keys subset whitelist (got ['comment', 'ddl_type', 'default', 'name', 'nullable', 'title', 'type']) * A6[occurred_at] field keys subset whitelist (got ['comment', 'ddl_type', 'name', 'nullable', 'title', 'type']) * A6[uk_event_uid] index keys subset whitelist (got ['comment', 'idxfields', 'idxtype', 'name']) * A6[uk_tenant_idem] index keys subset whitelist (got ['comment', 'idxfields', 'idxtype', 'name']) * A6[ix_scene_created] index keys subset whitelist (got ['comment', 'idxfields', 'idxtype', 'name']) * A6[ix_tenant_session_seq] index keys subset whitelist (got ['comment', 'idxfields', 'idxtype', 'name']) * A6[ix_tenant_session_seqno] index keys subset whitelist (got ['comment', 'idxfields', 'idxtype', 'name']) * A6[ix_tenant_world_type] index keys subset whitelist (got ['comment', 'idxfields', 'idxtype', 'name']) * A6[ix_tx_group] index keys subset whitelist (got ['comment', 'idxfields', 'idxtype', 'name']) * A6[ix_created_at] index keys subset whitelist (got ['comment', 'idxfields', 'idxtype', 'name']) * A6 code keys subset whitelist (got ['comment', 'cond', 'field', 'table', 'textfield', 'valuefield']) * A6 summary keys subset whitelist (got ['charset', 'comment', 'engine', 'module', 'name', 'tenant_scoped']) * A6 summary.primary is non-empty array * A6[tenant_id] field keys subset whitelist (got ['comment', 'length', 'name', 'null', 'type']) * A6[id] field keys subset whitelist (got ['auto_increment', 'comment', 'length', 'name', 'null', 'type', 'unsigned']) * A6[session_id] field keys subset whitelist (got ['comment', 'name', 'null', 'type']) * A6[session_id] abstract type ('bigint') * A6[entity_id] field keys subset whitelist (got ['comment', 'length', 'name', 'null', 'type']) * A6[state_json] field keys subset whitelist (got ['comment', 'name', 'null', 'type']) * A6[state_json] abstract type ('json') * A6[state_version] field keys subset whitelist (got ['comment', 'name', 'null', 'type']) * A6[state_version] abstract type ('bigint') * A6[checksum] field keys subset whitelist (got ['comment', 'length', 'name', 'null', 'type']) * A6[updated_by] field keys subset whitelist (got ['comment', 'length', 'name', 'null', 'type']) * A6[created_at] field keys subset whitelist (got ['comment', 'name', 'null', 'type']) * A6[updated_at] field keys subset whitelist (got ['comment', 'name', 'null', 'type']) * A6[uk_es] index keys subset whitelist (got ['fields', 'name', 'unique']) * A6[uk_es] idxfields non-empty array * A6[uk_es] idxtype unique|index * A6[PRIMARY] index keys subset whitelist (got ['fields', 'name', 'unique']) * A6[PRIMARY] idxfields non-empty array * A6[PRIMARY] idxtype unique|index RESULT: PASS