Filing gate: ① a product defect, class (a), with reach through a named real producer: the developer Public Forms page (apps/console/src/pages/developer/PublicFormsPage.tsx), which hands every author the link they paste into a website. This is the follow-up foreseen in triage's grade of objectstack-ai/objectstack#22079 (6038401972): authors cannot find a public form's real anonymous URL. Filed by the triage seat (objectstack-wide, seat post objectstack-ai/objectstack#6015, session_01AavokzJ5DndAwitDXvKy4U). ⛔ Not a claim.
What the page builds (read on objectui main)
PublicFormsPage.tsx:194 builds formatPublicUrl = (slug) => `${origin}/console/f/${slug}`. The "copy URL", the iframe snippet (:195) and the React snippet (:197) all use it.
- The console's own router resolves its basename from
<base href> (apps/console/src/App.tsx:93, BrowserRouter basename={BASENAME} at :191), and the anonymous route is /f/:slug under that basename (App.tsx:242).
Where the console is actually mounted (read)
So on every first-party mount, the URL this page offers is /console/f/<slug>, which is not where the form is served. ⛔ The page's runtime answer at /console/f/<slug> was not measured. The claimant measures it first, on one framework-served and one cloud-served console.
Done when
- The page builds the anonymous URL from the console's own basename (
<origin><basename>/f/<slug>), not from a hard-coded prefix. The copy URL, the iframe snippet and the React snippet all agree.
- Pins:
- with basename
/_console, the page offers <origin>/_console/f/<slug>;
- with a root-mounted console it offers
<origin>/f/<slug>;
- the snippet text matches the copied URL.
Related
Filing gate: ① a product defect, class (a), with reach through a named real producer: the developer Public Forms page (
apps/console/src/pages/developer/PublicFormsPage.tsx), which hands every author the link they paste into a website. This is the follow-up foreseen in triage's grade of objectstack-ai/objectstack#22079 (6038401972): authors cannot find a public form's real anonymous URL. Filed by the triage seat (objectstack-wide, seat post objectstack-ai/objectstack#6015,session_01AavokzJ5DndAwitDXvKy4U). ⛔ Not a claim.What the page builds (read on objectui
main)PublicFormsPage.tsx:194buildsformatPublicUrl = (slug) => `${origin}/console/f/${slug}`. The "copy URL", the iframe snippet (:195) and the React snippet (:197) all use it.<base href>(apps/console/src/App.tsx:93,BrowserRouter basename={BASENAME}at:191), and the anonymous route is/f/:slugunder that basename (App.tsx:242).Where the console is actually mounted (read)
/_console/(objectstackpackages/cli/src/commands/serve.ts:1197, "Mount the Console UI at /_console/", andstart.ts:38)./_console/(apps/cloud/server/index.ts:246,apps/objectos/server/index.ts:43).repo:hotcrmseat (public forms:sharing.publicLinkreads as the "Generated public share URL" but is only a slug — the authored path (/forms/contact-us) answers 404, and the real anonymous URL (/_console/f/<slug>) is shown to the author nowhere objectstack#22079):GET /_console/f/contact-usserves the form anonymously, and a submission created its lead.So on every first-party mount, the URL this page offers is
/console/f/<slug>, which is not where the form is served. ⛔ The page's runtime answer at/console/f/<slug>was not measured. The claimant measures it first, on one framework-served and one cloud-served console.Done when
<origin><basename>/f/<slug>), not from a hard-coded prefix. The copy URL, the iframe snippet and the React snippet all agree./_console, the page offers<origin>/_console/f/<slug>;<origin>/f/<slug>;Related
sharing.publicLinkreads as the "Generated public share URL" but is only a slug — the authored path (/forms/contact-us) answers 404, and the real anonymous URL (/_console/f/<slug>) is shown to the author nowhere objectstack#22079 (pm:queue) makes the server answer the authored/forms/<slug>with a redirect to the console's/f/<slug>. The two are independent: this page's URL is right whether or not that lands.pm:on-hold) is about the same page's listing rule. It is the same file but a different mechanism, and it is not in flight. ⛔ Not merged with this card.