G0~G8 성과·동맹 측정 OS 작업 일괄 고정
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 산출물은 커밋에서 제외했다.
This commit is contained in:
parent
93dd8f82d7
commit
16e791e044
390 changed files with 243188 additions and 499 deletions
130
docs/ops/evidence/recovery-delta-merge-manifest-2026-08-07.json
Normal file
130
docs/ops/evidence/recovery-delta-merge-manifest-2026-08-07.json
Normal file
|
|
@ -0,0 +1,130 @@
|
|||
{
|
||||
"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
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue