world_sync/scripts/m11b2b_selftest_output.txt
2026-09-20 20:50:51 +08:00

709 lines
41 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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