QA-source: #21318 · platform-core.marketplace-install-local-lifecycle · clause 2
Summary
After os package install ./dist/objectstack.json into a running runtime (17.6.0, OS_CLOUD_URL=off), the CLI reports ✓ Package installed into the running kernel and the app's objects serve, but two of the app's declared behaviours do not exist until the runtime is restarted:
- record-change flows do not fire. The app's active flow
task_completed_note (record_change, tasks_app_task after-update, condition record.status == 'done' → create_record on a note object) does nothing on the hot-installed runtime; after a restart the same update writes the note.
- the package's permission set is not projected into
sys_permission_set. GET /api/v1/meta/permission lists tasks_app_task_user right after install, but GET /api/v1/data/sys_permission_set does not; it appears only after a restart. Grants (sys_user_permission_set.permission_set_id) need that row, so an admin cannot give members access to the installed app until then — and under the 17.6.0 deny baseline those members are refused every app object meanwhile.
Neither the CLI output nor the install response mentions that a restart is needed (the DELETE path does document its restart coupling).
Reproduction
- Build an app with an active
record_change flow and a permission set (definePermissionSet, wired as permissions: in defineStack); npx os build.
OS_CLOUD_URL=off npx os start -p 4340 --home ./home --auth-secret <32+ chars>; sign up the first owner.
npx os package install ./dist/objectstack.json --runtime http://localhost:4340 --email … --password ….
GET /api/v1/data/sys_permission_set?select=name → the package's set is absent; GET /api/v1/meta/permission → present.
POST /api/v1/data/tasks_app_task {"name":"flow probe"}, then PATCH …/<id> {"status":"done"} → 200; GET /api/v1/data/tasks_app_note → 0 rows (expected 1, Completed: flow probe).
- Restart the runtime with the same home. Step 4 now lists the set; step 5 on a new task writes the note.
Expected
A hot install leaves the runtime in the same state a restart would — flows bound to their triggers, permission sets projected — or the install response and CLI say plainly which parts take effect only after a restart.
Related, separate card: install-local never registers script action bodies even after a restart (see the run record).
Generated by Claude Code
QA-source: #21318 · platform-core.marketplace-install-local-lifecycle · clause 2
Summary
After
os package install ./dist/objectstack.jsoninto a running runtime (17.6.0,OS_CLOUD_URL=off), the CLI reports✓ Package installed into the running kerneland the app's objects serve, but two of the app's declared behaviours do not exist until the runtime is restarted:task_completed_note(record_change,tasks_app_taskafter-update, conditionrecord.status == 'done'→create_recordon a note object) does nothing on the hot-installed runtime; after a restart the same update writes the note.sys_permission_set.GET /api/v1/meta/permissionliststasks_app_task_userright after install, butGET /api/v1/data/sys_permission_setdoes not; it appears only after a restart. Grants (sys_user_permission_set.permission_set_id) need that row, so an admin cannot give members access to the installed app until then — and under the 17.6.0 deny baseline those members are refused every app object meanwhile.Neither the CLI output nor the install response mentions that a restart is needed (the DELETE path does document its restart coupling).
Reproduction
record_changeflow and a permission set (definePermissionSet, wired aspermissions:indefineStack);npx os build.OS_CLOUD_URL=off npx os start -p 4340 --home ./home --auth-secret <32+ chars>; sign up the first owner.npx os package install ./dist/objectstack.json --runtime http://localhost:4340 --email … --password ….GET /api/v1/data/sys_permission_set?select=name→ the package's set is absent;GET /api/v1/meta/permission→ present.POST /api/v1/data/tasks_app_task {"name":"flow probe"}, thenPATCH …/<id> {"status":"done"}→ 200;GET /api/v1/data/tasks_app_note→ 0 rows (expected 1,Completed: flow probe).Expected
A hot install leaves the runtime in the same state a restart would — flows bound to their triggers, permission sets projected — or the install response and CLI say plainly which parts take effect only after a restart.
Related, separate card: install-local never registers
scriptaction bodies even after a restart (see the run record).Generated by Claude Code