You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Commit 96918d6
Browse filesBrowse the repository at this point in the historyBrowse files
test(cli): pin the walled binding remedy — undeclared, declared-editable, sealed, conflicting, single control — and the served boot's sealed read
The sealed branch names the package that ships the definition when its
provenance names one. The served-catalog fixture now reads the metadata
door's lock verdict as the command does, and declares two positions in
the artifact: one whose declaration names the bound set (clears the gate)
and one that lacks it (sealed, fact and no act). Changeset: @objectstack/cli
patch, FROM -> TO per remedy sentence.
Claude-Session: https://claude.ai/code/session_01Q9PZ5Pzqcus4woVvTZwWNU
Co-authored-by: Claude <noreply@anthropic.com>
fix(cli): under a wall, `os migrate organization-ownership --apply` names the act that clears a position binding the rewrite gate refuses, instead of pointing at a step that reports done (#23542)
6
+
7
+
Clause-②: no
8
+
9
+
**What changed.** Under the `group` or `isolated` posture, no ceremony step carries `sys_position_permission_set` rows into a position definition. `authored-conversion` reports and finishes before it reads a binding (ADR-0131 D3). The rewrite gate still refused those rows, rightly, but its remedy sent the operator to `authored-conversion`, which had already reported `done` with no blocker. The gate still refuses, and nothing is deleted or guessed. Only the remedy changes, and it now depends on where the position's definition lives.
10
+
11
+
The blocker's first sentence is unchanged: "Binding rows give position NAME sets its catalog definition does not name (SETS); deleting them would lose a grant." The sentence after it changes, under a wall only:
12
+
13
+
-**A position no catalog declares.**
14
+
- FROM: "The authored-conversion step carries them; resolve its blocker, then re-run."
15
+
- TO: "Under the POSTURE posture no ceremony step carries binding rows (ADR-0131 D3). Declare the position NAME in the environment catalog with permissionSets naming SETS, through one door only: the deployment's code (compiled into the artifact this ceremony boots), or the metadata door as the platform administrator (PUT /api/v1/meta/position/NAME). A cold boot refuses a position name a package declares and the environment catalog also holds. Then re-run."
16
+
-**A declared position the metadata door reports editable, whose definition lacks some of the bound sets.**
17
+
- FROM: the same pointer.
18
+
- TO: "Under the POSTURE posture no ceremony step carries binding rows (ADR-0131 D3). Add MISSING to the permissionSets of the position NAME through the metadata door as the platform administrator (PUT /api/v1/meta/position/NAME), then re-run."
19
+
-**A declared position the metadata door reports not editable.** A definition a package ships is sealed (ADR-0131 D6), so no door on the database adds the sets. The text states the fact and names no act.
20
+
- FROM: the same pointer.
21
+
- TO, when the definition's provenance names the package: "Under the POSTURE posture no ceremony step carries binding rows (ADR-0131 D3). Package PACKAGE ships the definition of NAME, which is sealed (ADR-0131 D6: the metadata door reports it not editable, lock LOCK), so no door on this database adds those sets."
22
+
- TO, otherwise: "Under the POSTURE posture no ceremony step carries binding rows (ADR-0131 D3). The metadata door reports the definition of NAME not editable (lock LOCK), so no door on this database adds those sets."
23
+
- When the door's verdict cannot be read, the text says so and names no act.
24
+
25
+
Whether a definition is editable is the metadata door's own answer, the `editable` flag of its item read, the same verdict the ceremony already asks before its one in-place write.
26
+
27
+
**Unchanged.**
28
+
29
+
- Under `single`, the pointer at `authored-conversion` stays, because that step carries the bindings there.
30
+
- A built-in position that does not resolve because the boot did not compose the security plugin keeps that composition's remedy, under every posture.
31
+
- The `conflicting` blocker, for a name that organizations bind differently, keeps its text. It states the fact and names no act, because no door makes the rows agree.
32
+
-`authored-conversion`'s walled note is unchanged. The rewrite gate's blocker is where the operator reads about binding rows.
['an item lock',{},{editable: false,lock: 'full',lockReason: 'frozen by the operator'},['full','frozen by the operator']],
2233
+
['the door\'s verdict is unreadable',{},newError('no metadata protocol is composed on this stack'),['no metadata protocol is composed on this stack']],
2234
+
]asconst)('⭐ declared and not editable — %s: the fact, and no act',async(_label,definition,answer,facts)=>{
0 commit comments