Commit c66d249
codex-release
flows: prove the degrade with the door genuinely absent, and correct what the gate cannot close
Three tests in test_no_meetings.py were proved against a stand-in for the
absence rather than the absence, and one of them could not fail:
* `test_an_unnamed_meetings_door_does_not_stop_the_process_booting` read
`missing_doors()` in a process that NAMES the door — conftest.OFFLINE_DOORS
declares VEXA_FLOWS_GATEWAY_URL for the whole suite, so the assertion held
whatever the class was, and held on the tree this change fixes. It now
delenvs the door and also calls preflight(), which is the actual boot.
* the terminal-state contract passed the engine a hand-written
`lambda d: d != "meetings"`. That proves the ENGINE degrades and says
nothing about whether `domain_present` reads the configuration — the half
that ships. It now passes `common.domain_present` itself over the emptied
door.
* the import defect was asserted by parsing meeting.py's source, because an
import that already succeeded cannot be asked whether it would have. A new
test asks a process that genuinely has none: a fresh interpreter with the
door removed from the environment, importing the whole production step
vocabulary. On the tip that command raises ConfigError THROUGH the import
statement; here it exits 0.
Three counts, measured instead of assumed: the agent domain declares THIRTEEN
steps (test_no_agents.AGENT_STEPS), not eleven, and meeting.py has ELEVEN
meetings_door() call sites, not twelve — asserted `== 11` now, not `>= 11`,
since a floor is not a count.
AND THE GATE ENTRY DOES NOT CLOSE. scripts/domain-doors.allow.json said this
class change would remove flows' VEXA_FLOWS_GATEWAY_URL entry. It does not, and
the checker is right: `judge()` refuses a DOMAIN naming an EDGE unconditionally,
before it looks at any class — the capability escape hatch is a domain→domain
rule, and doorOwner() resolves this key to the gateway. The entry closes on the
de-hop, which is not a rename: meeting-api's POST /bots derives the per-user
concurrent-bot cap from the gateway's X-User-Limits header
(core/meetings/services/meeting-api/src/meeting_api/bot_spawn/router.py:208
`_resolve_max_concurrent`), so calling meeting-api directly without carrying
that forward drops the cap silently. The ruling now says that in place of a
promise the gate cannot keep. gate:domain-doors before and after this branch:
91 sites · 0 violations · 31 allowlisted · 0 stale, unchanged.
The four refreshed `line` values are informational (`--refresh`); three moved
because this branch edited common.py, and the gateway adapters one had already
drifted on the tip.1 parent 4ce1f8b commit c66d249
4 files changed
Lines changed: 52 additions & 11 deletions
File tree
- core/flows
- src/flows_steps
- tests
- scripts
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
111 | 111 | | |
112 | 112 | | |
113 | 113 | | |
114 | | - | |
| 114 | + | |
115 | 115 | | |
116 | 116 | | |
117 | 117 | | |
| |||
127 | 127 | | |
128 | 128 | | |
129 | 129 | | |
| 130 | + | |
| 131 | + | |
| 132 | + | |
| 133 | + | |
| 134 | + | |
130 | 135 | | |
131 | 136 | | |
132 | 137 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
20 | 20 | | |
21 | 21 | | |
22 | 22 | | |
23 | | - | |
| 23 | + | |
24 | 24 | | |
25 | 25 | | |
26 | 26 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
24 | 24 | | |
25 | 25 | | |
26 | 26 | | |
| 27 | + | |
27 | 28 | | |
| 29 | + | |
| 30 | + | |
28 | 31 | | |
29 | 32 | | |
30 | 33 | | |
| |||
60 | 63 | | |
61 | 64 | | |
62 | 65 | | |
63 | | - | |
| 66 | + | |
64 | 67 | | |
65 | | - | |
| 68 | + | |
| 69 | + | |
| 70 | + | |
| 71 | + | |
| 72 | + | |
| 73 | + | |
| 74 | + | |
| 75 | + | |
66 | 76 | | |
| 77 | + | |
67 | 78 | | |
68 | 79 | | |
69 | 80 | | |
| |||
103 | 114 | | |
104 | 115 | | |
105 | 116 | | |
| 117 | + | |
| 118 | + | |
| 119 | + | |
| 120 | + | |
| 121 | + | |
| 122 | + | |
| 123 | + | |
| 124 | + | |
| 125 | + | |
| 126 | + | |
| 127 | + | |
| 128 | + | |
| 129 | + | |
| 130 | + | |
| 131 | + | |
| 132 | + | |
| 133 | + | |
| 134 | + | |
| 135 | + | |
| 136 | + | |
| 137 | + | |
106 | 138 | | |
107 | 139 | | |
108 | 140 | | |
109 | 141 | | |
110 | 142 | | |
111 | | - | |
| 143 | + | |
112 | 144 | | |
113 | 145 | | |
114 | 146 | | |
| |||
155 | 187 | | |
156 | 188 | | |
157 | 189 | | |
158 | | - | |
| 190 | + | |
| 191 | + | |
| 192 | + | |
| 193 | + | |
| 194 | + | |
159 | 195 | | |
160 | 196 | | |
161 | 197 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
125 | 125 | | |
126 | 126 | | |
127 | 127 | | |
128 | | - | |
| 128 | + | |
129 | 129 | | |
130 | 130 | | |
131 | | - | |
| 131 | + | |
132 | 132 | | |
133 | 133 | | |
134 | 134 | | |
135 | 135 | | |
136 | | - | |
| 136 | + | |
137 | 137 | | |
138 | 138 | | |
139 | 139 | | |
140 | 140 | | |
141 | 141 | | |
142 | 142 | | |
143 | 143 | | |
144 | | - | |
| 144 | + | |
145 | 145 | | |
146 | 146 | | |
147 | 147 | | |
148 | 148 | | |
149 | 149 | | |
150 | 150 | | |
151 | 151 | | |
152 | | - | |
| 152 | + | |
153 | 153 | | |
154 | 154 | | |
155 | 155 | | |
| |||
0 commit comments