8월 7일까지 워킹트리에만 남아 있던 미커밋 작업을 커밋한다. 여러 사본 폴더(worktree·clone)에 흩어져 있던 중간 스냅샷을 정리하기 전에 원본을 git 이력으로 고정하는 것이 목적이다. - contracts/routes/services: measurement, outcome_trajectory, rupture_repair, deliberate_practice, calibration_transfer, supervision_research, multimodal_alliance, continuous_improvement 계열 신규 모듈과 테스트 - infra/db/init: 07~16 마이그레이션(측정 기반~calibration transfer 실행) - apps/web: 세션 리뷰 카드·관리 화면·E2E 스펙 추가 - docs/ops: G0~G8 라이브 통합·배포·롤백 증거 문서와 evidence JSON/PNG - scripts: smoke·ledger·릴리스 에이전트·NAS 프리뷰 운영 스크립트 engine.public 로그 .bak과 apps/web/test-results 산출물은 커밋에서 제외했다.
130 lines
4 KiB
JSON
130 lines
4 KiB
JSON
{
|
|
"artifact_kind": "isolated_recovery_delta_merge_manifest",
|
|
"generated_at": "2026-08-07T17:19:55+09:00",
|
|
"privacy": {
|
|
"database_identifiers_omitted": true,
|
|
"user_content_omitted": true,
|
|
"secrets_omitted": true
|
|
},
|
|
"source": {
|
|
"host": "127.0.0.1",
|
|
"port": 55432,
|
|
"transaction_read_only": true,
|
|
"runtime_fingerprint_before": "8e62f534a7681973434d622e016ce34422899920c01e02857878695213df91fe",
|
|
"runtime_fingerprint_after": "8e62f534a7681973434d622e016ce34422899920c01e02857878695213df91fe",
|
|
"runtime_fingerprint_unchanged": true,
|
|
"post_counts": {
|
|
"users": 706,
|
|
"sessions": 448,
|
|
"turns": 204,
|
|
"google_users": 2,
|
|
"google_sessions": 1
|
|
}
|
|
},
|
|
"candidate_backup": {
|
|
"path": "D:\\workspace\\vignette-recovery\\candidate-pre-delta-20260807-165137.dump",
|
|
"sha256": "a3bc01788c4b8f82b0a8acb9bae929b904bb000c093490056eb30b920e3ced96",
|
|
"bytes": 7292010
|
|
},
|
|
"post_merge_dump": {
|
|
"path": "D:\\workspace\\vignette-recovery\\candidate-post-delta-20260807-172059.dump",
|
|
"sha256": "d24eaa753526dff77d889ed2a48477d4df4bc2b854878543f89f4db6f6502e32",
|
|
"bytes": 7294785
|
|
},
|
|
"rolled_back_attempts": [
|
|
{
|
|
"reason": "client-side identifier serialization guard",
|
|
"transaction_rolled_back": true,
|
|
"candidate_sessions_after": 29
|
|
},
|
|
{
|
|
"reason": "candidate migration-07 constraint drift",
|
|
"transaction_rolled_back": true,
|
|
"candidate_sessions_after": 29
|
|
},
|
|
{
|
|
"reason": "synthetic pulse audit row detected by exact-count postcondition",
|
|
"transaction_rolled_back": true,
|
|
"candidate_sessions_after": 29
|
|
}
|
|
],
|
|
"schema_preflight": {
|
|
"merge_table_columns_exact": true,
|
|
"merge_table_constraints_exact": true,
|
|
"migration_07_candidate_only": {
|
|
"on_error_stop": true,
|
|
"single_transaction": true,
|
|
"terminal_constraint_aligned": true
|
|
},
|
|
"migration_16_candidate_only_post_merge": {
|
|
"on_error_stop": true,
|
|
"single_transaction": true,
|
|
"required_provenance_columns": 5,
|
|
"required_provenance_columns_not_null": 5,
|
|
"instrument_fk_validated": true,
|
|
"instrument_check_validated": true,
|
|
"provenance_violations": 0
|
|
}
|
|
},
|
|
"merge": {
|
|
"source_fingerprint_sha256": "959d7537be3906cca515b491f49422b006152aca7f075530c4682147d095007f",
|
|
"session_identifier_verified_internally": true,
|
|
"existing_user_remapped_by_external_id": true,
|
|
"existing_case_profile_reused": true,
|
|
"existing_profile_content_unchanged": true,
|
|
"auth_session_copied": false,
|
|
"auth_session_unchanged": true,
|
|
"original_session_no": 1,
|
|
"resolved_session_no": 3,
|
|
"source_rows": {
|
|
"sessions": 1,
|
|
"turns": 0,
|
|
"case_profiles": 1,
|
|
"session_states": 1,
|
|
"alliance_pulses": 1,
|
|
"pulse_status_events": 2,
|
|
"self_assessments": 1,
|
|
"measurement_events": 9,
|
|
"session_summaries": 1,
|
|
"model_runs": 2
|
|
}
|
|
},
|
|
"candidate_postconditions": {
|
|
"users": 84,
|
|
"sessions": 30,
|
|
"turns": 705,
|
|
"google_sessions": 30,
|
|
"orphans": 0,
|
|
"duplicate_external_ids": 0,
|
|
"application_owned_tables": 0,
|
|
"case_session_no_duplicates": 0,
|
|
"chronology_inversions": 0,
|
|
"merged_session_is_latest_projection": true,
|
|
"learner_rls_visible": true
|
|
},
|
|
"idempotency_replay": {
|
|
"result": "already_applied",
|
|
"source_fingerprint_verified": true,
|
|
"session_identifier_verified_internally": true,
|
|
"duplicate_insertions": 0,
|
|
"protected_data_unchanged": true
|
|
},
|
|
"candidate_auth_session_census": {
|
|
"total": 116,
|
|
"valid": 0,
|
|
"revoked": 20,
|
|
"expired_unrevoked": 96,
|
|
"mutated": false
|
|
},
|
|
"original_volume": {
|
|
"present": true,
|
|
"read_write_mounts": 0,
|
|
"read_only_mounts": 0,
|
|
"mutated": false
|
|
},
|
|
"candidate_api_smoke": {
|
|
"status": "not_run",
|
|
"reason": "isolated port 8016 was stopped and the local start command was rejected by shell policy before process creation",
|
|
"database_projection_and_rls_verified": true
|
|
}
|
|
}
|