OpenFace v0.5.0
OpenFace v0.5.0では、pipeline control planeをdurableなPostgreSQL schemaへ 移し、v0.4.0のSQLite historyからの移行を明示的かつ検証可能にしました。 同じreleaseで、repository fileを確認しやすくし、長いSpace名をresponsiveな layout内に収め、repository validationを並列実行できる独立jobへ分割しています。
Highlights
- Pipeline stateをPostgreSQLへ保存: pipeline audit history、production reconciliation state、cursor、migration markerは、既存の
openface_metricsdatabase内にあるopenface_pipelineschemaへ保存されます。 databaseまたはschemaがreadyでない場合、startupと/healthzはfail-closedになります。 - Legacy historyを意図的に移行:
spaces-runner/pipeline_migration.pyはSQLite sourceを明示的に要求し、integrity、 schema、timestamp、reconciliation payload、source digestを確認します。不一致、 conflict、不完全なrowは拒否します。検証済みで変更されていないsourceの再実行は idempotentで、通常startupがlegacy fileを探すことはありません。 - Upgradeとrestoreを復旧可能に: bilingual runbookと
scripts/restore_lxc_deployment.shが、3つのPostgreSQL database、named volume、 optionalなMCP state、protected credential source、fail-closedなpreflight、restore 検証、更新後比較まで扱います。upgrade中にdocker compose down --volumesを使わない 契約も維持しています。 - 正しいbranchでrepository fileをpreview: blob viewはrepositoryのdefault branchを 使い、既存のsanitize pathでREADME Markdownをrenderし、file directoryを基準にrelative linkとassetを解決します。previewできない場合はsource textへ戻ります。
- 長いSpace headerを使いやすく: Space identity、repository name、tab、metric、 runtime controlを独立したshrinkable regionに分け、tabletとmobileのrunnerは固定height ではなくwrap後のheaderからsizeを決めます。
- 独立CI jobで速くvalidation: Compose/configuration、frontend、bilingual docs、 PythonとSkill、Spaces runner test、maintenance-agent testを、isolated cacheと一時状態で 独立実行します。必須の
validatejobはaggregate gateとして残ります。
Operator impact
- v0.4.0環境に
/data/agents/pipelines/pipeline-audit.dbが残っている場合は、spaces-runnerを停止し、fileとvolumeをbackupし、migrationの--verify-onlyを実行してから、 importを完了し、新しいpipeline writeを受け付けてください。 - migrationはautomaticではありません。row count、stable ID、timestamp、audit history、 cursor、reconciliation stateの更新後比較が終わるまで、元のSQLite fileとbackupを保持します。
- default schemaは
openface_pipelineです。別schemaが必要な場合だけ、safeなPostgreSQL identifierのOPENFACE_PIPELINE_DB_SCHEMAを設定します。OPENFACE_PIPELINE_DATA_DIRは deployment/preview artifact用で、authoritativeなpipeline stateには使いません。 - fresh installではPostgreSQL initializationがschemaを作成します。既存Compose環境は、 imageやvolumeを変更する前にupgrade runbookの完全なbackupとrestore rehearsalを行います。
Documentation
Repository Pipelines guide、upgradeとdata retention runbook、 Operations guide、Proxmox LXCへの配備を参照してください。 v0.5.0解説では、operatorの視点からmigrationとvalidationの storyを追います。
Validation
release checklistでは、bilingual documentation validatorとVitePress production build、SVG asset validation、frontend lint/test/build、Python compile、PostgreSQL integrationを含む Spaces runner test、Compose config、restore helper test、CI aggregate gate、release QA inventoryを 確認します。final releaseはdocs deploymentとlive release URLを検証してから公開します。
Upgrade contract
- Target path:
v0.4.0からv0.5.0、またはfresh installです。さらに前のreleaseからは、 該当する過去release noteを確認してからこのrunbookを使います。 - Breakingな運用変更: pipeline audit/historyとreconciliation stateがlegacy SQLiteから PostgreSQLへ移ります。暗黙のimportはなく、data migration完了後の安全なin-place downgradeもありません。
- Migration:
pipeline_migration.py --source ... --verify-onlyを実行し、同じbackup済みで 変更されていないsourceに対して--verify-onlyなしのcommandを実行します。source digestを記録し、 conflictを拒否するため、更新後確認までsourceを保持します。 - Backup:
forgejo、openface_metrics、openface_maintenanceをdumpし、Forgejo、metrics、 maintenance、shared-token、runner、MCPを有効にしている場合のvolumeをarchiveします。MCPのbind state、 credential、.env、Z.AI config、gateway certificateも別に保護します。 - Composeとenvironment: PostgreSQL initializationが
openface_pipelineを作り、OPENFACE_PIPELINE_DB_SCHEMAがsafeなschema名を選びます。upgrade手順としてdocker compose down --volumesを使わないでください。 - Rollback: migration前はhealth checkが通ったことを確認してからold checkoutとimageを復元します。 migration後はschemaをin-place downgradeせず、検証済みPostgreSQL dumpとnamed-volume archiveを isolatedなrehearsal環境へrestoreします。
- 更新後: Compose health、PostgreSQL schema/migration marker、Forgejo repositoryとIssue/PR、 Space、metrics、maintenance、pipeline rowとrun number、runtime logを比較します。
- 既知のcheck: 実deploymentの時間、operator固有のrestore path、runtime visual checkはdeployment checkです。release noteではrepositoryだけの証拠として扱いません。
完全なsequenceはupgradeとdata retention runbookにまとめています。 日本語ページは英語ページと同期させてください。
