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
- Flattened Asteroids Object Vector role ownership out of `vectorMaps.objectVectorRoles`.
5
+
- Kept `objects[].shapes[]` as the Object Vector Studio V2 geometry SSoT.
6
+
- Fixed Workspace Manager V2 game manifest validation so Asteroids is discovered in the Active Game dropdown.
7
+
8
+
## Cleanup Decisions
9
+
- Removed `object-vector-studio-v2.vectorMaps.objectVectorRoles` from `games/Asteroids/game.manifest.json`.
10
+
- Kept the existing role tags on `objects[]` as the manifest-owned runtime role source.
11
+
- Updated Asteroids role resolution to derive required runtime roles from `objects[].tags`.
12
+
- Kept concrete object IDs for direct object identity checks such as `object.asteroids.bullet`, `object.asteroids.ship`, and attract object IDs.
13
+
- Updated the Asteroids manifest loader to reject legacy `vectorMaps.objectVectorRoles` with an actionable error.
14
+
- Removed Object Vector Studio V2 schema definitions for `objectVectorRoles` and role bindings.
15
+
- Updated Object Vector Studio V2 delete cleanup so it no longer edits a removed role map.
16
+
- Updated Workspace Manager V2's game manifest schema reference from the removed `vectorMapDocument` definition to `objectVectorShapeDocument`.
17
+
- Updated Workspace Manager V2 summary fallback wording from old vector-map `vectors` to current `vectorMaps.shapes`.
18
+
19
+
## Validation
20
+
- Playwright impacted: Yes. This PR changes Workspace Manager V2 game discovery and Object Vector manifest loading.
21
+
- PASS targeted Workspace Manager V2 game dropdown validation:
22
+
`npx playwright test tests/playwright/tools/WorkspaceManagerV2.spec.mjs --project=playwright --workers=1 --reporter=list -g "discovers Active Game options from selected repo manifests"`
23
+
- PASS direct Workspace Manager V2 Asteroids manifest validation.
24
+
- PASS direct Workspace Manager V2 game discovery includes Asteroids.
`Asteroids Object Vector runtime role ${roleId}requires a manifest objectVectorRoles.${roleId} binding.`,
140
+
`Asteroids Object Vector runtime role ${roleId}does not define required object tags.`,
141
141
{
142
-
candidates: candidates.map(candidateLabel),
143
142
objectCount: objectList.length,
144
143
}
145
144
);
146
145
returnnull;
147
146
}
148
147
149
-
if(!targetObjectId){
148
+
if(!candidates.length){
150
149
logResolution(
151
150
logger,
152
151
'FAIL',
153
-
`Asteroids Object Vector runtime role ${roleId}manifest binding is missing objectId.`,
152
+
`Asteroids Object Vector runtime role ${roleId}could not resolve an object from objects[].tags [${targetTags.join(', ')}].`,
154
153
{
155
-
candidates: candidates.map(candidateLabel),
156
154
objectCount: objectList.length,
155
+
targetTags,
157
156
}
158
157
);
159
158
returnnull;
160
159
}
161
160
162
-
if(!targetObject){
161
+
if(oldCandidates.length){
163
162
logResolution(
164
163
logger,
165
164
'FAIL',
166
-
`Asteroids Object Vector runtime role ${roleId}manifest binding requires object ${targetObjectId} in root.tools.object-vector-studio-v2.objects.`,
165
+
`Asteroids Object Vector runtime role ${roleId}matches old/legacy object tag candidates [${targetTags.join(', ')}]; remove deprecated duplicates or retag them outside the active role.`,
`Asteroids Object Vector runtime role ${roleId} manifest binding ${targetObjectId} is missing required tags [${targetTags.join(', ')}].`,
181
-
{
182
-
candidates: candidates.map(candidateLabel),
183
-
objectTags: normalizeTags(targetObject.tags),
184
-
targetObjectId,
185
169
targetTags,
186
170
}
187
171
);
188
172
returnnull;
189
173
}
190
174
191
-
if(oldObjectSignal(targetObject)){
175
+
if(activeCandidates.length>1){
192
176
logResolution(
193
177
logger,
194
178
'FAIL',
195
-
`Asteroids Object Vector runtime role ${roleId}manifest binding ${targetObjectId} is marked old/legacy; keep runtime object IDs on active Object Vector objects.`,
179
+
`Asteroids Object Vector runtime role ${roleId}matched multiple active objects from objects[].tags [${targetTags.join(', ')}].`,
0 commit comments