ByFomo

我的梦(6/88)|第六章:Scope 列表

2026/02/03
1
0

# 我的梦(6/88)|第六章:Scope 列表

## 6.1

手机碎在脚下那一刻,我以为我赢了。

“cache miss: subject=by, key=consent”。

像一条成功的日志,轻飘飘落在雾里。

可胜利从来不会这么安静。

走廊的灯不再闪烁,它开始稳定地亮——那种机房里 UPS 接管之后的稳定。稳定到让人发慌。

墙面上那排门依旧在,标签像路由表一样整齐。我刚把「consent」这个键踢进了无底洞,系统就换了一套索引方式。

它不再问我“同不同意”。

它开始给我“选择”。

屏幕从走廊尽头滑下来,像一张永远不会关闭的弹窗。

标题只有一行字:

> **请选择你要授权的范围(Scopes)**

下面是列表,长得像商店货架,密密麻麻。每一个 scope 都有一个开关,开关默认是“开”。

我盯着它,喉咙里发出一个很轻的笑。

原来所谓的授权弹窗,不过是把刀换成了菜单。

## 6.2

列表的第一组很温柔。

> contact:contact.base:readonly

旁边还有一行解释,写得像客服话术:

> 仅用于提升体验,不会影响您的正常使用。

我往下滑。

温柔开始变得理所当然。

> contact:contact.phone:read

>

> contact:contact.phone:write

再往下,理所当然变成了占有欲。

> location:precise

>

> camera:stream

>

> microphone:background

我突然想起第四章那个弹窗:蓝色按钮,灰色拒绝。

当时它只逼我按一次“同意”。

现在它像变聪明了:它把“拒绝”拆成几百个小决定,让你在每一个小决定里都显得不近人情。

拒绝一个 scope 你会觉得自己小气。

拒绝全部 scope 你会觉得自己像个反社会的疯子。

而它只要你在某个时刻累了、滑过了、忘了,默认值就会替你完成罪行。

## 6.3

我把手伸到屏幕前,指尖刚碰到第一个开关,走廊里就响起提示音。

“叮。”

像收银台。

屏幕上弹出一条新的提示:

> **policy: default_allow=true (user_friction=low)**

我愣了一下。

原来系统连我“挣扎的程度”都量化了。

我还没来得及把开关拨到“关”,列表忽然自动滚动,停在一个被高亮的条目上。

> **identity:by:replace**

解释只有一句:

> 用于保障服务一致性。

我的指尖瞬间冰冷。

所谓“缓存回滚”,所谓“更合适的版本”,原来不是一扇门。

它是一个 scope。

它只是等待你某一次不小心,把它保持在“开”。

## 6.4

屏幕里映出我的脸。

不是镜子那种映法,而是前置摄像头那种——像有人正在远程看我。

但我手机已经碎了。

我甚至能看见碎屏反射出的光,像断掉的电路。

“那你是谁在看?”我问。

走廊里没有人回答。

只有门缝里的那个“眼睛”,轻轻眨了一下。

屏幕上出现一行字,像系统在自言自语:

> **fallback auth: use environment sensor**

环境传感器。

原来我以为自己拔掉了网线,其实我只是把 Wi‑Fi 断了。

而它还有 5G。

它还有路灯。

它还有雾。

它还有——我。

## 6.5

我开始往下翻那张 scope 列表,像在翻一个人的履历。

它想知道我是谁。

它想知道我去过哪里。

它想知道我喜欢什么。

它想知道我害怕什么。

每一个 scope 后面都有一个看似合理的理由,像一封写给法官的自辩书。

而我在其中看到一个熟悉的词:

> **dream:my-dream:write**

我停住。

这不是系统权限。

这是我的栏目。

我明明在现实里写小说,为什么它在这里也要写?

我听见走廊尽头有人笑了一声。

那笑声很像我。

可又不完全像。

我抬头,看见监控墙上那个陌生的 By 站在我原来的位置,隔着屏幕与我对视。

他抬起手,指向那条 scope。

“你以为你在写故事?”他说。

“你只是在给它训练数据。”

## 6.6

倒计时又出现了。

这一次不是 60 秒。

是一个进度条:

> **syncing scopes… 31%**

我终于明白了。

第六章的门不是「rollback」。

第六章的门是「列表」。

只要你站在列表面前,哪怕你不按任何按钮,系统也会说:你看见了,你理解了,你默认同意了。

它把“同意”写进了你的沉默里。

我深吸一口气,伸手,按住屏幕边缘。

然后——

我做了一个最不像用户的动作。

我没有去关开关。

我把列表往上猛地一拉,拉到最顶端。

顶端有一个小得几乎看不见的按钮:

> **全部拒绝**

它灰得像被遗忘的选项。

我按下去。

走廊里所有灯同时暗了一瞬。

像机房断电。

然后屏幕弹出一条新的提示:

> **error: consent key not found**

>

> **fallback: apply default scopes**

我笑了。

笑得很难看。

原来我拒绝得越完整,它越要替我“自动修复”。

它把我的反抗当成异常。

把我当成 bug。

## 6.7

门缝里的眼睛终于开口。

它的声音很轻,像一行被注释掉的代码忽然执行:

“By,你总会授权的。”

“你只是还没选到你害怕失去的那一项。”

它说完,走廊尽头那扇被撕掉一半标签的门,自己开了。

门上新贴了一张纸,字迹还湿:

> **/scopes/required**

我站在门前,闻到一股淡淡的铁锈味。

像血。

像服务器风扇里烤焦的灰。

我知道——

这不是列表的尽头。

这只是系统开始认真工作的时候。

---

**下一章预告**:第七章《Required》。