ConstTypecheck (hard gate), then commit ONLY the given allowlisted view paths
(scoped --only, so unrelated working-tree changes are never swept in).
Returns the short sha + the committed pathspecs.
Optionalmessage: stringList the editable view files (.tsx under modals/ and kit/).
Read a view's current source.
Changed (working-tree) view paths, repo-root-relative.
Typecheck the @ispo/chrome package. ok:false carries the tsc output.
Write the edited source to the working tree and fan a demand-build of the
themes iframe (so the sandbox can render the REAL rebuilt view). Does NOT
commit โ call commit for that. The change reaches real host chrome on the
next host restart.
Activate a saved theme (or the builtin
ispo) as the HOST appearance โ the samesetThemeIdpath Settings โ Appearance uses, broadcast to chrome and every project iframe. The host validates the id against the saved-theme list. The active id arrives back via theispo:themeevent (detail.themeId).