feat(#17): web bind UI — plane selector + bound-state indicator (slice 3c UI)
Completes slice 3c: the browser-facing trigger for the web bind. A 'Bifrost binding' <select> (none / memory / affect) on the setup panel; startSession sends bifrost_plane in the create body (the consumer key stays server-held, never sent from the browser). On a bound 201 the identity line renders the bound-state indicator (plane + endpoint, never the key); bind failures surface the error_code + bifrost_error in the setup error line. Closes the persistent-memory caveat: web chat can now bind its own Tier-3 provider (memory persistence + affect telemetry), not persona+debug only. Web suites 63 green (presentation-contract included); pure static HTML/JS.
This commit is contained in: