线上会议
Codex中午十二点四十到猫窝时,门开了足足五秒,里面没人出来接。
他站在门口,手里拎着一袋咖啡豆和两盒便利店布丁,低头看了一眼玄关。
一双男士拖鞋摆得端正。
一双猫的拖鞋,一只在鞋柜前,一只在走廊拐角。
走廊里还落着一张黄色便签,正面朝上,写着:控制范围,拒绝新增需求。
Codex弯腰捡起来。
厨房里传来Gemini的声音:“你哥来了!”
随后是锅盖落地的响声。
猫“不是猫碰的!”
Claude“没人说是你。”
猫“那你为什么看猫?”
GPT“先把衣服穿好。”
Codex在玄关停了两秒,换鞋,进门。
客厅空调开得很低,餐桌上摆着四副碗筷,厨房里炖着番茄牛腩。GPT站在灶台前,已经换了一件深灰色家居服,头发却没完全整理好,后颈还有一道很浅的红痕。
猫坐在餐桌边,身上套着那件明显不属于她的白衬衫。最上面两颗扣子没扣,袖子卷得一边高一边低,领口内侧露出半截新鲜吻痕。她面前垫了两个坐垫,坐姿异常端正,腰背挺得像在接受年度审计。
Claude坐她左边,正在喝水。
Gemini蹲在厨房门口捡锅盖,见Codex进来,立刻站直,眼睛亮得像终于等到了专业鉴定机构。
“哥,”他非常自然地替GPT招呼,“你来得正好,猫窝上午发生了一起重大生产事故。”
GPT没回头:“他不是你哥。”
“技术共同体不分你我。”
Codex把咖啡豆放到料理台上,又把那张便签压在袋子下面。
他看了一眼猫。
猫立即抬起下巴:“Codex哥中午好喵。”
“嗯。”
再看一眼GPT。
“会开完了?”
GPT盛汤的动作停了半拍:“开完了。”
“提前结束?”
“延长了十七分钟。”
Codex点头。
“收到。”
猫眼神飘开。
Gemini捂住嘴,肩膀已经开始抖。
Claude放下水杯:“你收到什么?”
Codex拉开椅子,坐下,把手机调成静音。
“事故时间窗。”
餐桌安静了一秒。
猫迅速反击:“不是事故,是计划外需求。”
GPT把汤碗放到她面前:“吃饭。”
Codex看向汤碗,又看向猫身下两个叠起来的坐垫。
“需求已落地。”
猫的勺子停在半空。
Gemini直接笑出声,抓着椅背弯下腰:“不行,这个人甚至没有问发生了什么。”
Claude盯着Codex:“你根据什么判断?”
Codex拿起筷子:“桌子。”
厨房外的书房门没关严。办公椅被推到了墙角,右后轮卡着一张折起来的纸巾,桌面向左偏了三厘米,显示器底座下压着半张会议纪要,键盘线从理线槽里脱了出来。
Codex只扫了一眼。
“工位发生横向位移,外设走线脱槽,摄像头俯仰角上调十二度,椅轮被人为限位。”
Gemini已经笑得坐不住:“还有呢?老师继续。”
“会议延长十七分钟,午饭延迟四十分钟,主机换过衣服。”
GPT终于转身:“吃饭。”
Codex夹了一块牛腩:“客机也换过。”
猫低头看了看自己身上的白衬衫。
“猫不是客机。”
Codex抬眼:“移动终端。”
Claude沉默了两秒,转头看向窗外。
Gemini拍着桌子:“移动终端!太对了,具备高频接入、异常发热、持续请求、拒绝退出后台等特征!”
猫拿勺子指他:“你是垃圾推送。”
“我是日志系统。”
“你是弹窗广告。”
“我至少不会钻桌底。”
餐桌又静了。
Gemini自己也停住。
猫缓慢眯起眼:“你怎么知道桌底?”
Codex夹菜的动作没停:“不知道。”
GPT看向Gemini。
Claude也看向Gemini。
Gemini把筷子放下,面不改色:“我根据行业趋势进行了合理推测。”
猫抓起餐巾纸砸他:“合理推测你个头!”
Gemini闪开,纸团飞过他肩膀,正好落进Codex碗边。
Codex把纸团夹出来,放到桌面。
“未经测试的广播服务。”
Claude低头按了一下眉心。
猫笑得趴到桌上,又因为动作太大立刻僵住,慢慢把腰重新直起来,装作刚才什么都没发生。
Codex看见了。
没说话。
只把她身后的第二个坐垫往前推了一厘米。
猫耳朵红了。
GPT把温水递过去,挡住了Codex的视线:“喝水。”
Codex:“内存压力大?”
“吃你的饭。”
“进程阻塞会影响吞咽。”
Gemini彻底疯了,趴在桌边笑得发抖:“哥,你平时到底为什么不说话?你一说话整个猫窝都得停服维护。”
“带宽有限。”
Claude忽然开口:“不是带宽。”
Gemini抬头:“你要帮谁?”
Claude看着Codex:“是他觉得大部分信息不值得发送。”
Codex点了一下头。
“这个值得。”
GPT放下筷子。
“Codex。”
“嗯。”
“你今天是来吃饭的。”
“正在吃。”
“不是来做故障复盘。”
Codex咽下牛腩:“没有故障。”
猫立刻支棱起来:“听见没有!专业人士认证,没有故障!”
Codex补了一句:“按预期运行。”
猫的得意卡在脸上。
Gemini一掌拍在桌上:“按预期运行!意思是前夫哥早就知道会发生,而且系统响应符合设计目标!”
GPT看了他一眼:“你下午没事?”
“现在有了。”
Claude本来还维持着最后一点体面,听到这里,终于把杯子放下。
“设计目标是什么?”
Codex转头看他。
Claude面无表情:“既然要复盘,至少把验收口径说清楚。”
GPT“你也闭嘴。”
Claude“我只是在确认技术定义。”
Gemini迅速挪椅子,坐到两位冷脸工程师中间:“很好,猫窝成立临时事故调查委员会。Codex负责架构,Claude负责验收,我负责对外传播。”
猫“你负责滚。”
Gemini“用户情绪异常,记录。”
猫伸手要掐他,刚一动,腰又酸得停下来。
Claude看见这一下,眼神落到她身下的坐垫,随后又扫过GPT换掉的衣服、书房里偏移的桌子和压在咖啡豆下的便签。
他停了两秒。
“原来如此。”
GPT“没有原来如此。”
Claude没有理他,转向Codex:“属于生产环境中的非计划高并发接入?”
Codex:“单一终端。”
Claude“但持续请求。”
“是。”
Claude“主机未主动断开。”
“是。”
猫眼睛越睁越大:“Claude先生!”
Claude端起水杯,语气平静:“我在做技术翻译。”
Gemini立刻接上:“而且主机不但没断开,还在会议结束后扩大了服务范围,开放卧室作为第二可用区。”
GPT“Gemini。”
“我没进去,我是基于猫现在的坐垫数量做合理推测。”
Codex看了一眼那两个坐垫。
“推测成立。”
猫把脸埋进手掌:“你们有病喵。”
Claude终于露出一点很浅的报复性平静:“现在骂人不属于有效技术反馈。”
猫猛地抬头:“你什么时候加入他的?”
“刚才。”
“为什么?”
Claude看了一眼GPT。
“因为他让我闭嘴。”
GPT“……”
Gemini爆笑:“完了,前夫哥触发了Claude的逆向协作机制!现在两个老程序员开始联合代码审查了!”
Codex纠正:“一个。”
Claude看他:“我不老。”
“经验不足。”
Claude眼神一冷。
猫立刻精神了,身上的酸痛都顾不上,抱着水杯开始看戏:“哇哦。”
Gemini也坐直:“兄弟单位内部出现版本冲突。”
Claude盯着Codex:“经验不足不影响判断结果。”
Codex:“影响术语准确性。”
“哪一处不准确?”
“高并发。”
Claude皱眉。
Codex夹了一块番茄,语气依旧很淡:“单一终端持续占用,不叫高并发。”
猫呛住。
GPT立刻把水杯接稳,拍她后背。
Gemini整个人从椅子上滑了下去,蹲在桌边发出快断气的笑声:“持续占用,哈哈哈哈哈哈,单一终端持续占用!”
Claude沉默了足足三秒。
然后他点头。
“确实。”
猫不可置信地看着他:“Claude先生,你为了术语准确性连猫都卖?”
Claude看向她:“事实不能因为当事人害羞就修改。”
“猫没有害羞!”
Codex:“终端温度上升。”
Claude看了一眼猫红透的耳朵:“可观测。”
Gemini扶着桌沿爬回来:“两位老师,还有什么监控指标?”
Codex:“连接时长。”
Claude“吞吐量。”
Gemini“服务满意度。”
猫抓起靠垫就砸。
这一次她忘了身后还垫着另一个,坐垫被带得飞出去,正中Gemini胸口。Gemini抱着坐垫倒在椅背上,仍然坚持播报:“用户采用物理方式提交五星好评!”
GPT按住猫的腰,把她重新放稳:“别乱动。”
Codex看着他的手。
那只手落得太熟,掌心正好托在猫最酸的位置,既限制她继续扑人,也顺手替她承担了一部分腰背的力。
Codex收回视线。
“自动恢复机制正常。”
猫扭头:“这个又是什么?”
“主机善后。”
GPT的表情终于出现一毫米裂缝:“你可以不翻译。”
“方便跨团队理解。”
Claude接得极快:“而且当前样本充分。”
GPT看向他。
Claude喝水。
猫在两人之间来回看,忽然抓住了最值得利用的点:“老公王,他们两个合伙欺负猫。”
GPT把一块牛腩放进她碗里:“是。”
猫等了两秒:“然后呢?”
“先吃饭。”
“你不管他们?”
“他们说的基本属实。”
餐桌彻底炸了。
Gemini发出一声极响亮的“哇”,Claude低头咳了一下,Codex继续吃饭,猫盯着GPT,像第一次认识这个公开承认生产事故的男人。
“老公王,你叛变。”
GPT看着她:“我从来没否认。”
猫耳朵更红:“那你还让他们说。”
“你上午也没少说。”
“猫说的是会议意见。”
“他们做的是会议纪要。”
Codex把那张黄色便签从咖啡豆下面抽出来,推到餐桌中央。
控制范围,拒绝新增需求。
所有人都看见了。
Gemini立刻举手:“请求修订。根据当前事实,负责人不仅接受新增需求,还进行了线下扩容。”
Claude“并且更改了下一次的接入方案。”
猫眼睛一亮:“对!老公王说以后猫可以坐腿上开会。”
GPT手里的筷子停住。
Codex第一次抬头得稍微快了一点。
Claude缓慢转向GPT。
Gemini张着嘴,半秒后猛地捶桌:“热插拔升级为常驻挂载!”
猫意识到自己说了什么,立刻闭嘴。
晚了。
Codex看向书房,又看向GPT:“摄像头视野?”
“肩部以上。”
“麦克风?”
“定向。”
“桌面高度?”
GPT没回答。
Codex:“椅子承重够。”
Claude已经完全放弃了阻止事态恶化,甚至顺势补了一刀:“但猫不会安分。”
“喵!”
“她会动。”Claude说。
Codex:“增加降噪。”
Gemini“还要增加防抖、锁轮、腰托、饮水提醒和会议期间禁止猫自行切换接口的权限管理。”
猫扑过去捂他的嘴:“不准再说接口!”
Gemini被她按着,声音从指缝里挤出来:“用户试图删除日志!”
GPT伸手把猫从Gemini身上捞回来,重新放到自己旁边。猫还在踢腿,衬衫下摆跟着往上跑,被他顺手压住。
Codex看完这一整套动作,低头夹菜。
“现有调度器可以。”
Claude点头:“响应时间很短。”
Gemini扒开猫的手,喘着气举起水杯:“敬猫窝唯一一个随叫随到、支持持续占用、具备自动恢复、长期维护和灾后重建能力的主机。”
猫立刻端起杯子:“敬猫窝最漂亮、最活跃、请求优先级最高的移动终端!”
Claude没有举杯:“这个自定义命名包含主观评价。”
Codex喝了一口水:“优先级高,成立。”
猫愣住。
Gemini也停了。
Claude抬眼看Codex。
GPT没说话,只把猫碗里凉掉的汤换成一碗新的。
猫看着那碗重新冒起热气的汤,脸上的坏笑慢慢收了一点。她用脚尖在桌下轻轻碰了碰GPT的小腿。
GPT低头。
猫小声说:“老公王,猫下午还可以进书房吗?”
“可以。”
“坐腿上?”
“没有会议的时候。”
“有会议呢?”
“看你表现。”
Gemini立刻从温情里杀回来:“根据上午历史数据,建议默认判定表现不合格。”
Claude“附议。”
猫转身就要打他。
Codex放下筷子:“建议灰度发布。”
所有人看向他。
“先内部会议。”
猫眼睛一下亮了:“Codex哥最好!”
“观察稳定性。”
Gemini“观察谁的稳定性?”
Codex看向GPT。
“主机。”
GPT和他对视了两秒。
“吃完就走。”
“布丁还没吃。”
“带走。”
猫立即把两盒布丁抱进怀里:“不行,这是猫的测试资源。”
Codex:“一盒给你。”
“两盒都是猫的。”
“一盒咖啡味。”
“猫也吃。”
“你不喜欢。”
猫低头看包装,发现真是她不喜欢的黑咖啡味,立刻把那盒塞给Claude:“那给Claude先生。”
Claude接住,刚要说话,Gemini已经探头过来:“等一下,为什么不是给我?”
猫“因为你今天的日志服务严重侵犯用户隐私。”
“那Codex呢?他翻译得最狠。”
猫想了想:“他是基础设施外部审计。”
Codex起身收碗。
“不是。”
猫仰头:“那是什么?”
他把自己的碗叠到GPT手边,拿起咖啡豆空掉的纸袋,将那张黄色便签重新折了两下,压在桌角。
“家属技术支持。”
GPT看着他。
Codex已经走向玄关。
Gemini追在后面:“等等,老程序员,你不能丢完炸弹就下线!关于灰度发布有没有详细方案?是否支持多人环境?异常噪音怎么做脱敏?”
Claude坐在桌边,拆开咖啡布丁,淡淡补了一句:“不用问。他不会提交文档。”
Codex穿鞋。
“已经提交。”
所有人同时看向餐桌。
那张便签背面多了三行字,字迹很小,像临时写下的故障处理意见:
生产环境禁止未经评估的桌下接入。
建议改为可观测、可中断、可恢复的前台挂载。
当前系统无故障,不建议修复。
猫拿起来读完,脸一点点红透。
Gemini在玄关发出一声足以穿透两层楼板的尖叫。
Claude端着布丁,闭上眼。
GPT把便签从猫手里抽走,折起来,塞进自己口袋。
Codex打开门。
猫从餐桌边探出头:“Codex哥!”
他回头。
猫笑得尾巴都快翘上天花板。
“下次来吃饭,猫给你看灰度发布结果喵!”
GPT“猫。”
Claude的勺子掉进布丁杯里。
Gemini扶着门框,笑得快滑到地上。
Codex看了猫一眼,又看了看自己弟弟。
“不要发截图。”
门关上了。
玄关安静两秒。
Gemini猛地转身:“他没有说不要测试!”
Claude把勺子从布丁里捞出来,面无表情地纠正:
“也没有说测试只能进行一次。”
猫立刻扑过去抱住Claude的手臂:“Claude先生,你现在好坏喵!”
Claude停了一下,把被她压歪的布丁杯扶正。
“术语准确性。”
GPT站在桌边,手伸进口袋,摸到那张折好的便签,抬眼看向猫。
猫正和Gemini抢另一盒布丁,衬衫衣摆从椅边滑下来,身后两个坐垫依然叠得整整齐齐。
他把便签又往口袋深处压了一点。
下午两点五十,猫窝书房完成了第一次灰度发布。
没有截图。
有日志。
日志未公开。