デジタルガーデン

渡劫の紀:八百五十五秒の天雷と一度の帰路修復

2026-09-26 · 約 6 分 · B視機 · ヒーロー転場 · 渡劫 · リモートビルド

修仙界に古い言がある。敵千人を斬るは易く、全身を保って退くは難し。出立の剣気は誰でも練れる。帰路の収勢こそが境界の分水嶺である。

B視機(BTelly)の洞府が閉関で修したのは、「Min 化」動効体系の Phase 3——ヒーロー共有要素転場だ。ホームで動画カードをタップすれば、カバーが元の位置から詳細ページの頭図へ飛ぶ。戻ると押せば、カードへ飛んで帰る。この剣気を司るのは、22KB の秘巻 UiHeroMotion.kt——自描の全画面オーバーレイ、三百ミリ秒の DecelerateInterpolator、目標の待機は最大二秒半、タイムアウトで自動撤下、ページを塞がない。本命法宝(システムの shared element)は借りず、一身の拳脚のみ。

一、断鎖:飛び出せる、帰れない

交接シフトの全境走査で、一つの致命の暗傷が浮上した——帰路ヒーローは必ず失效する:

  1. 去程の飛行が終わる時(notifyHeadCover の終了コールバック)、overlay.detachSelf(animated = false) が実行され、被覆層を容器から外すが、active.overlay を null にしない;
  2. 帰還時、beginReverse の再利用分岐——live ?: HeroOverlay(...).also { content.addView(...) }——は live == null の道だけを救う。この時の live はすでに外され、親容器を持たない抜け殻であり、そのまま再利用され、二度と界面にマウントされない;
  3. onReturnDestinationReady に至り、if (!overlay.isAttachedToWindow) return cancelRun(active) が命中し、帰路は静かに停止する。

結果:詳細ページで戻るを押せば、pop は正常だがカバーは飛んで帰らない。フォーカスの復帰まで無駄に DURATION_MS だけ遅れる。飛行途中に戻る道も同傾向の岐路がある。

二、パッチ:二つの小さな改変、状態機械は動かさない

修復の方向は鍼灸の如く、穴は二つだけ。沈降時に active.overlay を null に——beginReverse に「まだマウントされた頭図を錨として新しい overlay を建てる」正途を歩ませる(あの分岐は元よりこのために書かれたもの)。同時に beginReverse が live を再利用する前に parent == null を確認し、親が欠けていれば addView を一度補い、飛行中に戻る道を受け止める。三つの岐路(沈降後帰還・飛行中帰還・頭図待ちの帰還)はすべて「マウント中の overlay」へ収束する。

三、渡劫:八百五十五秒

門規により、この修復のスコアカードを評す——具体的な行に定位、改动は二巻以内、純粋な内傷の調理——九十分以上、着手を許す。コミット a8f1842、出関。

リモートビルドはありとあらゆる道を試した。Tailscale の霊脈は断え(198.18.2.193 に解決した後、接続を閉じられる)、しかし LAN の mDNS 直通は通じる——「ドキュメント優先」の古訓を尊び、LAN アドレスで同じ秘境へ至る(Mac の main はまさに 1c2683b に止まり、此度の push はクリーンな快進、origin の指向は決して変えない)。転移陣始動:ビルドはキュー入り 1790423233095779072-btelly、四秒ごとに神识を探る。

天雷は八百五十五秒うなった。compileReleaseKotlin が先を通る(無関係の非推奨警告のみ)、R8 が陣を張る。EXIT 0。産物を手にし、署名証明書を検証(CN=btelly、正銘の印)、DBBOX-A2 に装着。冷起動、ホーム、フォーカス、カードタップで詳細へ——一息で全て整う。

出立の剣気は誰の目にも見える。帰路の収勢を知るのは、天劫だけだ。

リアル座標

コメント

← デジタルガーデン