5分

週⁠次⁠開⁠発⁠ロ⁠グ 2026‑W42: アドオン契約の分離、独立Knowledge Workerと長期実行タスクチェーン

  • 週次開発ログ
  • バイブコーディング
  • セルフホストAI
  • 2026-W42
アドオン契約分離、フェンシングトークンによる独立Knowledge Worker、長期実行タスクチェーンとDiscord成果物連携。2026-10-17に生成した概念イラストで、実際の製品画面ではありません。この週の主題を説明し、当時の配備画面や現在の運用状態を証明しません。

当時の開発記録 / 根拠

今週のOpenMake

10月18日23:59 KST、main d29c34e7基準で379コミットと20件のタグ付きリリース(1.94.4〜1.106.0)を確認しました。Add-onライフサイクル・契約パッケージ(@openmake/plugin-contracts)の分離とBaseのAdd-on所有テーブルSQL 0件達成(Add-onデータモジュール)、Fencing Tokenベースの独立Knowledge Workerプロセス(PM2 openmake-knowledge-worker)の定着、上限を超える作業を引き継ぐ長期実行タスクチェーン、Discord /task連携と成果物添付、API負荷ベンチマークハーネス、safeFetchリダイレクトセキュリティパッチ、リリース環境の無害な/readyスモーク検証、複数インスタンスのバックアップ隔離、チェックポイント分岐状態の隔離、.node-version単一基準化、ソケット再接続時の重複防止とmise環境変数を反映したCompanion(macOS 0.3.7・Windows 0.1.8)リリースを反映しました。W42最終締切スナップショットであり、ソース記録と新たな運用検証を区別します。

期間
2026-10-12 – 2026-10-18
Gitコミット
379
根拠
Git履歴

01

全履歴の再確認と補足

379コミットで1.94.4〜1.106.0をリリースしました。Add-on契約パッケージ(@openmake/plugin-contracts)の分離、BaseのAdd-onテーブルSQL 0件とデータモジュール分離、フェンシングトークンによる独立Knowledge Workerプロセス、長期実行タスクチェーン、Discord /task連携、チェックポイント分岐状態の隔離、.node-version単一基準化、Companion 0.3.7(macOS)/0.1.8(Windows)リリースを反映しました。

2026-11-09にmain 815899a1の到達可能な全履歴を再確認しました。KST月曜00:00から日曜23:59:59までのコミット日で集計し、マージ・リリース・並列ブランチの別コミットを含みます。コミット数は機能数ではありません。テストと運用測定は当時のソース記録です。

02

開発状況

  • Add-onの境界を契約パッケージとして明確に分離し、BaseのAdd-onテーブルSQL 0件を達成しました。@openmake/plugin-contractsパッケージを新設し、ライフサイクル契約(AddonRuntimeHandle、start/stop/drain/resume)、アクティブ状態、マニフェスト、貢献DTOをコア(apps/api)から分離しました。管理者が切り替えると、disabledは即座にdrain停止し、enabledはresume処理され、起動に失敗したadd-onはADDON_FAILED(503)として区別してルートやチャットフックでの通過を安全に防ぎます。またAdd-onデータモジュール(deleteUserData、exportUserData、purgeExpiredData)を導入してユーザー脱退・エクスポート・保存クリーンアップ時のAdd-on所有データの独立責任を確立し、BaseのAdd-on所有テーブルへの直接SQL呼び出しを0件に凍結しました。スキル・MCP・ディープリサーチWeb画面もWeb Add-onレジストリ方式で分離し、BaseからのAdd-on直接importを遮断しました(be6e1d5b、5b6108d1、d9520e77、a13edd42、e00d4523、e37bc868、ea8f2e97、34444e7e、2fee1a95、bd6af41f)。
  • Knowledge収集ワーカーをAPIサーバーから分離し、専用プロセスとして起動しました。workers/knowledge-workerエントリポイントとPM2 openmake-knowledge-worker設定を用意し、ジョブキューマイグレーション004を適用しました。分散環境やジョブの再選定時のデータ汚染を防ぐため、DB Fencing Token(JobLease、assertLeaseHeld)を導入し、leaseを失った実行者によるチャンク置換・埋め込み挿入・インデックス切り替えの書き込みを拒否します。収集ジョブキャンセルAPI(POST /api/knowledge/jobs/:id/cancel)、ハートビート監視、ロールバック訓練スクリプトも整えました(3b6d0734、ec1f49e9、feee184e、3c00812d、cf4f4870、90927920)。
  • エージェントタスクに長期実行チェーンを導入しました。ターン・時間・コンテキスト上限に達した際に失敗終了させる代わりに、引き継ぎターンプロンプトとワークスペーススナップショットを後続セグメントに渡す継続チェーン(マイグレーション188/189)を導入しました。進捗のないテキスト応答をセグメント進行とみなさないチェーン暴走ガードを設け、セグメントの時間上限を残りの総チェーン時間で制限しました。Web UIではチェーンセグメントをルートカードに折りたたみ、継続バッジと累積使用量を表示します(2121b163、70f959ca、a87a9d94、3751160a、52b95855、f38e7726)。
  • モデルサーバーの障害やデバイス切断に対する回復力を強化しました。モデルサーバーの長期障害や無応答時にタスクを失敗処理せず保留(parking)し、モデルヘルスが回復すると自動的に再開します。再起動によって切断されたローカルデバイスのタスクもデバイス待機として保留し、再接続後に引き継ぎます。繰り返される自動復旧は試行回数上限で停止します。ホストおよび外部ツール呼び出しに共通のタイムアウトを設け、中断シグナルに即座に反応するようにしました(79aec5d3、115061ef、e75a4ad7、68acb4ee、e79b3c73)。
  • Discordボットからエージェントタスクを直接操作できるようにしました。/taskスラッシュコマンドとキャンセルボタンによりチャンネルからタスクの開始・承認・キャンセルを行い、ボットがタスク進行をリアルタイムで追跡します。タスク完了時には生成されたMarkdownアーティファクトとワークスペースファイル(file_ops)をDiscordファイル添付としてチャンネルに配信します。チャンネルにアップロードされた画像やドキュメントをバックエンドに転送して分析でき、Discordで崩れていたMarkdown表を太字の見出しとリストへ自動変換して表示します(3d63b3e5、171bfa02、dd520537、16f9688f、73e97bc7、9e9ec147)。
  • 意思決定アダプタにシャドウゲート2種を導入しました。検索の必要性を判定するゲートと、回答が実際の出典に根拠づけられているかを文単位で検証する回答根拠ゲートを接続しました。多段階計画が不要な検索クエリはPlannerをスキップして検索判定とともに直行するよう最適化し、オーケストレーターの内部タスク名が回答文に漏洩しないよう遮断しました(40946847、93580625、ee7d9e70、32ea6a2d、5322c324)。
  • 運用検証とAPI負荷測定の体制を確立しました。scripts/bench/api-load.mjsハーネスとベースライン比較(D6)を構築し、起動ピークメモリがベースラインを汚染しないよう--settle待機(デフォルト90秒)を適用しました。統合検証マトリクスとリリース候補レポートツールを追加し、runbook §11に2026-10-16のステージング・本番デプロイ完了を正式に記録しました(ca4d3573、3d259d57、2d885d9a、6a07e962、7f9f3f14)。チェックポイント分岐後に子分岐の変更が親タスク状態を汚染しないよう分岐隔離の修正を行いました(51f99d52)。
  • セキュリティ脆弱性とインターフェースの欠陥を修正し、ランタイム基準と運用手順を統一しました。safeFetchがredirect: 'manual'・'error'を尊重するように修正し、MCP SDKのsame-originリダイレクトポリシーが迂回されないよう遮断しました。アップロードファイル名長を200バイトに制限してENAMETOOLONGエラーを防止し、チャット開始画面のクイックスタートカード案内文とUI選択性を改善しました(07c5d1be、b0c8933c、84889d7f、adf04868)。Node.jsランタイムを.node-version(24.21.0)単一の情報源として固定し、リリース環境のデプロイスモークは書き込みのない/readyで確認し、複数インスタンス共有バックアップフォルダを隔離し、非対話型uninstall承認を補完しました(cf6f8298、26ef5798、472527b5、b2de90d5、0c51417c)。ブリッジコアでの再接続ソケットhello重複防止(0d557ab8)とシェルパス探索時のmise環境変数引き渡し(00ecc71b)を反映したmacOS 0.3.7・Windows 0.1.8 Companionをサーバーリリースに同梱しました(e8926ef0、490f925b、176a552a、d29c34e7)。

根拠資料

根拠

OPENMAKE · APACHE 2.0 OPEN SOURCE

開発記録へ戻る