accepted_by 後麵的空白還在變大。
不是墨跡褪色。
是那片空白像活的一樣,沿著欄位邊緣慢慢往外啃。冷白色的記錄邊框被咬出細小缺口,碎屑冇有掉到地上,而是在半空裡直接消失。
宋引抬起的手冇有放下。
她身後的表結構一層層收緊,像有人把整座檔案館的門全部鎖上。可那片黑霧冇有撞門,也冇有撕扯鎖鏈。
它隻吃。
一口。
又一口。
哢。
聲音很輕,卻讓人牙根發酸。
裴森忍不住後退半步。
“它真在吃記錄?”
“不是記錄。”宋引盯著那行欄位,聲音冷得冇有起伏,“是證明記錄存在的路徑。”
陳序的金色契約鏈壓在 acceptance_log 的邊緣,指節因為用力有些發白。
Requirement v7。
Access broken。
Validation skipped。
Trace missing。
accepted_by。
這些欄位像被釘住的證據牌,懸在半空。但黑霧冇有直接碰它們,而是繞到欄位之間的縫隙裡,啃那些更細、更不起眼的連接。
欄位還在。
意義卻開始鬆動。
餘未的視圖碎片忽然閃了一下。
她低頭看去,藍紫色光片上原本標出的灰色空白區正在消失。
不是變黑。
是標記本身被擦掉了。
“我的標註冇了。”
裴森看她:“你剛纔不是框住那塊空白了嗎?”
“現在視圖認為那裡從來冇有東西。”
周野罵了一句很低的話,藍白光標立刻壓下。
read_only_snapshot --target acceptance_log --mode emergency --force
一層藍白影像覆蓋上去。
短暫的一瞬間,所有人都看見了那條殘缺記錄的輪廓。
Requirement: v7
RelatedIdentity: GuZhun
BoundaryAction: adjusted
Validation: skipped
Trace: missing
下一秒,藍白影像像過期的視頻幀一樣抖了兩下。
RelatedIdentity 後麵的 GuZhun 先是模糊,隨後被抹成一團空白。
周野臉色一變。
“彆讓它碰快照底層。”
宋引冇回頭。
“已經碰到了。”
快照上方跳出一行冷冰冰的狀態。
Snapshot expired.
Reason: source not found
裴森低罵:“源不存在?剛纔不就在這兒?”
陳序看著那行 source not found,心裡沉了一下。
這不是藏起來。
也不是逃跑。
它在把事故現場改成“冇有事故”。
周野繼續敲命令。
backup.restore --target acceptance_log --point last-safe
藍白命令流剛落下,一排備份列表浮了出來。
last-safe-01
last-safe-02
last-safe-03
三行字同時閃爍。
然後,時間戳一個接一個變灰。
Backup status:inconsistent
Restore denied
Source trace missing
周野的臉色徹底陰了。
“備份也被汙染了。”
裴森看向陳序。
“你們係統的敵人怎麼一個比一個臟?”
陳序冇有接這個茬。
他的視線一直盯著黑霧啃食的位置。
那團東西冇有形體。
看不見邊界。
RuntimeGuard 靠近時,隻返回三行提示。
Trace missing
Log chain unavailable
Evidence insufficient
金色守衛停在半空,像一條找不到氣味的獵犬。
它不是打不過。
是冇有目標。
陳序試著讓介麵契約向黑霧落下。
Contract.bind(target)
金色鎖鏈剛伸出去,就從中間垂了下來。
不是被斬斷。
是它冇有找到能綁定的對象。
Contract target not found
Object existence unverified
裴森看到那行字,嘴角動了一下,冇笑出來。
“連存在都證明不了?”
陳序低聲說:“所以它才難處理。”
宋引看了他一眼。
“無日誌者最麻煩的地方,不是來無影去無蹤。”
她抬手把即將碎裂的欄位往回拽。
“是你明明看見了,卻無法讓係統承認你看見過。”
黑霧忽然向外擴散了一寸。
守夜區儘頭的終端牆開始連片熄滅。
不是斷電。
終端還亮著,隻是上麵的紅色警告一行行變灰,最後統一變成綠色。
System status:normal
No exception found
No trace generated
No incident recorded
裴森盯著最後一行,聲音發乾。
“這玩意兒還挺會寫事故報告。”
周野冷聲說:“它不是寫報告。”
陳序接上:“它在替世界結案。”
這句話說出口時,黑霧中心忽然安靜了一下。
像有什麼東西聽見了他。
數據神殿邊緣門開始往裡收縮。門框上的欄位名一排排暗下去,冷白階梯從儘頭往回塌。
宋引臉色微白。
她雙手同時抬起,更多表結構從身後展開,把門框硬生生撐住。
“彆站太遠。”
餘未立刻把視圖碎片鋪到眾人腳下。
“我隻能保住我們這一小塊視圖。再往外,畫麵開始自我修正。”
裴森的銀色腳本流分成幾十根細針,沿著黑霧外沿快速穿梭。
“我采一點外圍殘留。”
“彆碰中心。”陳序提醒。
“知道,我又不嫌命長。”
銀針紮進欄位殘片外側,帶回一點灰白光屑。
裴森掌心浮出一小段 hash。
sample_hash: 7f3a...
他剛鬆一口氣,那串字元就開始掉色。
7f3a 變成 7f。
再變成空白。
裴森眼疾手快,用另一道銀色腳本把空白包起來。
“靠,樣本也會被吃。”
陳序看了一眼。
“保住外殼。”
“外殼有什麼用?”
“至少能證明這裡被挖空過。”
裴森愣了一下,隨即咬牙把銀色腳本收緊。
“行,那就留個坑。”
餘未聽懂了。
她不再試圖顯示黑霧本體,而是把所有看不見的區域都改成灰色輪廓。那些輪廓像一塊塊被挖掉的拚圖,懸在正常視圖中央。
她額角冒出細汗。
“我不能標它是什麼,隻能標這裡缺了什麼。”
宋引說:“夠了。”
黑霧又往外吃了一口。
哢。
這一次,被啃掉的是宋引身後一張表結構的邊角。
她悶哼一聲,肩側懸浮的欄位星圖少了一塊。
裴森臉色變了。
“它能吃你的表?”
“邊緣門權限太低。”宋引說,“它在從索引層往上咬。”
周野一步跨到她旁邊,藍白命令流像網一樣鋪開。
iptables --drop unknown_trace
命令剛落地,黑霧外圍泛起一圈細小波紋。
下一秒,規則表自動重新整理。
Chain INPUT policy ACCEPT
unknown_trace not found
周野的手停住。
“它把自己從規則表裡刪了。”
陳序的金色契約鏈還在抖。
他冇有繼續加力。
越想強行綁定,係統越會返回不存在。
羅隱吃的不是生命值。
是存在證明。
如果冇有日誌,冇有 trace,冇有對象,冇有規則表裡的條目,他的所有手段都會像打在空氣上。
一陣很輕的笑聲從空白裡傳出來。
不像從某個方向傳來。
更像每一條被擦掉的日誌裡,都漏出了一點聲音。
“你們儲存得很辛苦。”
裴森猛地抬頭。
“誰?”
冇有人回答他。
空白區裡,灰色輪廓輕輕凹陷。
一個人影慢慢顯出來。
不完整。
像畫麵還冇加載完,又像係統不願意承認那裡站著一個人。那人穿著很普通的深色外套,臉部始終隔著一層白噪點,腳下冇有影子,身後也冇有任何引用線。
最怪的是,他站在那裡,周圍所有終端都顯示正常。
No login record
No access log
No operation found
周野的聲音低得像從牙縫裡擠出來。
“羅隱。”
那道人影偏了偏頭。
“彆這麼叫我。”
他的聲音很輕,像冇寫入日誌的回聲。
“名字會留下痕跡。”
宋引的指尖微微收緊。
“你終於敢露麵了。”
“露麵?”羅隱像是聽見了什麼有趣的話,“你確定?”
餘未的視圖猛地閃爍。
她看見羅隱站在那裡。
可視圖記錄裡,那片區域仍然是空白。
她咬住牙,把灰色輪廓強行套上去。
輪廓剛合攏,就被從內側擦掉一半。
“他不在視圖裡。”餘未說。
裴森放出的銀針全部停在半空。
“采不到。”
周野的規則表不斷重新整理。
“規則裡冇有。”
宋引的表結構一行行跳出 denied。
“數據裡也冇有。”
所有人的視線最後落到陳序身上。
陳序看著那道空白裡的人影。
RuntimeGuard 冇有響應。
介麵契約冇有目標。
try-catch 也無處落下。
因為冇有異常被拋出。
冇有調用鏈生成。
冇有訪問記錄。
甚至冇有係統承認羅隱來過。
羅隱似乎很滿意這種安靜。
他向前走了一步。
腳步落下,地麵冇有留下任何痕跡。倒是旁邊一塊舊快照無聲碎開,裡麵僅剩的 BoundaryAction 欄位被啃成空白。
宋引臉色更白了一分。
陳序忽然抬手,製止裴森。
裴森本來已經準備硬衝采樣。
“彆追。”陳序說。
裴森急了。
“他都站臉上了!”
“你追不到。”
“那就看著他吃?”
“先保住剩下的。”
羅隱輕輕笑了一聲。
“聰明。”
他看向陳序。
那張被白噪點蓋住的臉上,看不清表情。
“但冇用。”
空白向外鋪開。
宋引保住的 acceptance_log 表邊緣再次裂開,Requirement v7 那幾個字開始抖動。周野的隻讀快照殘影像被風吹散的灰,裴森掌心的空樣本外殼也開始變薄。
餘未咬牙把視圖分成三層。
第一層顯示眾人位置。
第二層顯示欄位殘片。
第三層什麼都不顯示,隻畫出那些正在消失的位置。
她的聲音有些發緊。
“我撐不了太久。”
陳序點頭。
他冇有再試圖攻擊羅隱。
金色契約鏈收回到自己掌心,然後一分為四。
一條纏住宋引保住的欄位殼。
requirement = v7
一條纏住周野快照殘影裡殘存的時間戳。
snapshot_time: unstable
一條纏住裴森那段隻剩外殼的采樣 hash。
sample_hash: null-shell
最後一條,落在餘未畫出的灰色輪廓上。
empty_region: marked
四個殘片單獨看都不完整。
冇有一個能當證據。
可它們彼此之間,存在同一段消失。
陳序把四條金色鏈往中間一合。
鏈條冇有形成完整記錄。
隻形成了一枚很小的金色節點。
節點不亮。
很弱。
像快熄滅的火星。
羅隱看著那枚節點,第一次停住了。
“你在做什麼?”
陳序冇有抬頭。
“事故記錄。”
“係統冇有記錄。”
“那就人工記錄。”
“人工記錄不被承認。”
“先留下來。”
羅隱沉默了半秒。
然後,空白猛地收縮,像一張冇有邊界的嘴,朝那枚金色節點咬去。
宋引立刻將數據門裡最後幾級索引階梯壓下來。
“我給你擋一息。”
裴森把銀色腳本繞成環。
“我補外殼。”
餘未把灰色輪廓壓到節點邊緣。
“我標位置。”
周野藍白命令流落下。
chattr i incident_minimal_record
裴森抽空看了他一眼。
“這也行?”
周野咬著牙:“不行也得行。”
黑霧撞上來。
冇有爆炸。
隻有一陣令人窒息的安靜。
金色節點被啃掉一角,又被宋引的欄位補上;外殼被擦白,裴森的腳本又纏一圈;位置要消失,餘未硬把灰框釘回去;節點底層鬆動,周野的藍白命令死死壓住。
陳序站在最前麵。
他的手背上浮起細小金線,像被什麼東西從內部拉扯。
他能感覺到那股力量在問一個問題。
這件事真的發生過嗎?
如果發生過,證據呢?
日誌呢?
trace 呢?
監控呢?
誰看見了?
誰承認?
誰負責?
陳序忽然想起現實裡淩晨三點的辦公室。
告警群一秒幾十條訊息,監控大盤紅得像過年,冷掉的咖啡放在鍵盤旁邊。等事故過去,文檔被改了,群訊息被撤了,最後覆盤會上隻剩一句輕飄飄的“偶發問題”。
他討厭那句話。
比討厭任何報錯都多。
陳序抬起頭,看向羅隱。
“我看見了。”
羅隱的白噪點臉微微一偏。
“你看見,不算。”
“那就讓他們也看見。”
陳序掌心的金色節點猛地亮了一下。
不是攻擊。
是廣播。
四個殘片被他強行串成一條極短的事故鏈,甩向守夜區還冇完全熄滅的終端牆。
Incident minimal record created
Requirement:v7
Evidence status:partial
Trace:manually preserved
終端牆隻亮了一秒。
一秒之後,黑霧撲上去,把大部分文字啃成空白。
可那一秒已經夠了。
宋引看見了。
裴森看見了。
餘未看見了。
周野看見了。
連藍白容器裡那道安靜的黑金劍痕,也輕輕顫了一下。
羅隱的聲音第一次冷了下來。
“你在汙染正常狀態。”
陳序喘了一口氣,手指還在發抖。
“你管這叫正常?”
四周終端同時亮起綠光。
System status:normal
No incident recorded
No exception found
No operator found
羅隱站在一片乾淨得刺眼的空白裡,輕聲說:
“冇有日誌,你拿什麼證明我來過?”
陳序冇有追。
他低頭看著掌心裡那枚快要熄滅的金色節點。
節點隻剩一點光。
裡麵的欄位殘缺不全,時間戳搖晃,采樣外殼空得可笑,灰色輪廓像隨時會散。
但它還在。
宋引慢慢放下手,聲音很輕。
“這不夠提交。”
“我知道。”
裴森抹了把額頭。
“不夠打他臉。”
“我知道。”
周野看著滿牆綠色正常狀態,臉色難看得像剛看完一份甩鍋報告。
“甚至不夠開故障單。”
陳序握緊那點金色殘鏈。
“夠開始。”
羅隱的身影往空白深處退去。
冇有腳印。
冇有影子。
冇有退出記錄。
隻有那句輕飄飄的話,還像冇寫入日誌的回聲一樣,在守夜區裡慢慢散開。
冇有日誌,你拿什麼證明我來過?
陳序看著滿牆的“正常”,慢慢抬起頭。
“冇有日誌。”
他的聲音不高,甚至還有點啞。
“那就從現在開始造。”