Changelog
Every change to Host An App lands on this page. When we add a feature the version goes up by a minor bump (1.2.0), when we fix something it goes up by a patch bump (1.1.3), and if something breaks how you use the service today it becomes a new major version (2.0.0). Each entry links to the exact change it describes.
8.16.1 — 2026-10-19
Fixed
- Increase runtime database and request limits (#618) (4616098)
8.16.0 — 2026-10-16
Added
- Host-label rename and set-as-homepage controls (#615) (ab01e01)
8.15.0 — 2026-10-16
Added
- Editable project host label + a root frontend served at / (#613) (5510221)
8.14.0 — 2026-10-10
Added
- Rebuild the landing page on the 2026 revamp design (#608) (51eb5f9)
8.13.4 — 2026-09-25
Changed
- Share the mirrored route blocks and upstream header set (e02ca42)
- Include the shared visit/auth snippet from sites.conf too (050c661)
8.13.3 — 2026-09-25
Documentation
- Record the deploy/storage boundary as the #586 contract (b4ad151)
- Name the dbapi/backends/bootstrap consumers and pin the constant provenance (7096502)
8.13.2 — 2026-09-25
Changed
- One update path — every update is a revision release (38a3b86)
8.13.1 — 2026-09-25
Changed
- One role policy and one editor gate behind the dashboard (acb71a4)
- Route the remaining raw role floors through RoleAtLeast (e28b642)
8.13.0 — 2026-09-25
Added
- Let authors retire actions from the public surface (8d45265)
Changed
- Dispatch modern tools/call through the SDK (35610d7)
Documentation
- Retitle the workspace Payments section in the feature doc (209d1c3)
Fixed
- Make retirement all-or-none and keep it out of the editor's way (8da17c2)
- Title the workspace's Connect section for what it collects (05a08ac)
- Keep the header-menu dismissal and the skip link in the redesigned shell (b968b59)
8.12.0 — 2026-09-25
Added
- Preview_runs — the lifecycle row for runnable revision previews (#500) (75cede4)
- Preview-run artifacts, scratch tiers, and run reconciliation (#500) (1abb7bf)
- The run orchestration, runtime API, and capture surface (#500) (c54dbb8)
- Wire the preview-run surface end to end (#500) (00f3d78)
Documentation
- Document preview runs everywhere they are visible (#500) (988715e)
Fixed
- Build the stop report before dropping evidence; close five review gaps on preview runs (ca36b6c)
8.11.1 — 2026-09-24
Changed
- Serve the modern era through the official Go SDK (0eb0234)
Fixed
- Pin discover capabilities, close template-list gap, test the SDK adapter (e390d72)
8.11.0 — 2026-09-24
Added
- Let project pages carry an access password (#576) (b904ef9)
Documentation
- Align glossary and OpenAPI member schema with the access gate (dc496e6)
Fixed
- Scope the unlock cookie by 401 shape and cover raw sources (2db83e0)
- Refuse gate fields on content actions, flag protected pages in list (ab4bca4)
- Surface not-found/conflict on a gate-change race (3c90044)
8.10.0 — 2026-09-24
Added
- Make dashboard sessions and pending consents survive restarts (e8502bc)
Fixed
- Tell storage failures apart from expired sign-in state (7f052a4)
8.9.1 — 2026-09-23
Fixed
- Ship the sidecar in the default stack, self-disable when unconfigured (3c5ebfa)
8.9.0 — 2026-09-23
Added
- Restic sidecar for scheduled set-consistent snapshots (da6723d)
Documentation
- Document the sidecar, the drill and destination portability (58264aa)
Fixed
- Fail loudly on misconfiguration, pin drill to the staged control copy (6a87307)
8.8.2 — 2026-09-23
Documentation
- Add the glossary as the canonical vocabulary (59be50d)
- Record the Connect mode constraint and the staging-first path (dda2919)
- Record the capacity ceilings and the alerting gap (a7d6b40)
- Correct the Stripe key mode row and the check name (68c5bf5)
Fixed
- Keep hostan.css served for pre-split published deploys (f8be429)
8.8.1 — 2026-09-23
Fixed
- Keep quick shares out of every account's free allowance (0140c28)
8.8.0 — 2026-09-23
Added
- Hint a page whose baked runtime predates the current generation (30c347d)
Fixed
- Gate the runtime stamp on real injection and sync the hint docs (f509d98)
8.7.2 — 2026-09-23
Fixed
- Flag the free workspace whose account allowance is spent (3b8780d)
- Make the row-less workspace-local fallback a real branch (1a0c9d9)
8.7.1 — 2026-09-23
Documentation
- Sync the activity-feed cap into the sources note (bb3a9df)
Fixed
- Keep the workspace activity rail from dictating the page (7ade4e4)
8.7.0 — 2026-09-23
Added
- Add the connect-anything surface and the installable skill (d92d26e)
- Add shared button press, focus and hover states (4f2f1b1)
- Declare color-scheme so native widgets follow the theme (e43e7e0)
- Cross-fade theme flips and shadow the scrolled header (3aa729d)
- Motion for the tenant and operator consoles (5372050)
- Scroll reveals and entrances on pricing, showcase and faq (a0fcec8)
- Greet the console with a hero band, iconed stats and quick actions (e4a04c2)
- Show each project's pages and visits, and trend the workspace (9ba979e)
- Add the workspace activity feed (6a2f3c8)
- Open Account and API keys in the hero band (5bba798)
- Redesign the workspace page as split rows with a side panel (dd352c5)
Changed
- Simplify the workspace page from nine blocks to six (97a2949)
- Drop the unused exported activity-limit constant (cc1d4d7)
- Delete the demo's dead stylesheet (1fd5c64)
- Single-source the reveal observer as brand.RevealJS (6a846a5)
Documentation
- Tighten the landing, docs and project-contract prose (27de9e8)
- Fix the inverted CORS comment on the /SKILL.md location (21f4ad7)
Fixed
- Name the €5 tier Hobby, not Pro (34fd43f)
- Style the unstyled connect route buttons (10fd222)
- Hide the MCP client tabs on the skill and rest routes (5794090)
- Style the sign-in gate with the landing bundle (e157c03)
- Readable console buttons in dark mode (64cc213)
- Hide reveal content only when the page runs script (f405849)
- Move the connect-download styles out of the frozen bundle (909cd48)
- Restore the hero copy button's authored label (178995e)
- Render project-card metrics as dashes when the usage read fails (1fe13f3)
8.6.2 — 2026-09-23
Fixed
- Pair recovery-path removal finalizations with edge-cache eviction (08d08d6)
- Defer re-entry pairing to the engine tail and widen the recovery gate (e5b9260)
8.6.1 — 2026-09-23
Fixed
- Project grant mirror from post-transition session (a950f13)
8.6.0 — 2026-09-22
Added
- Split hostan.css into per-surface bundles (78fc42f)
8.5.2 — 2026-09-21
Fixed
- Remove max-width and margin from dash-content (16b1a55)
8.5.1 — 2026-09-21
Fixed
- Pass the dashboard dev-login env through to the container (0cbc652)
- Address review — loud component failures, honest edge comments (4e211be)
8.5.0 — 2026-09-21
Added
- Add passwordless local-developer sign-in (b74a407)
- Add passwordless local-developer sign-in (3fb217d)
Changed
- Render the console from embedded html/template files (fc4c516)
- Render the workspace page from templates (f27b05e)
- Render the project page from templates (f53a8d5)
- Render the backend tabs and page detail from templates (240f7f6)
Fixed
- Restore FAQ href in first-run flow and wire offer head (07709ce)
- Build only the selected project tab and drop dead view fields (d8691f8)
- Address review findings on the backend-tabs conversion (5f706a7)
- Address review on local-developer sign-in (f427110)
- Give the tenant dashboard its own rate-limit zone (c9ef754)
- Unify theme, brand mark, and gate chrome (6a1f3c4)
- Advertise project origins with the sites scheme and port (052a06b)
- Address review on local-developer sign-in (a41e7c4)
8.4.3 — 2026-09-20
Changed
- Thread the owner role into the paid tier offer's canBuy (fd163db)
Fixed
- Point the footer's API-reference link at the API origin (6506dca)
8.4.2 — 2026-09-20
Added
- Render the tier offer as a card grid (86373bb)
- Feature the catalogue's popular tier on every selling surface (9c40119)
Changed
- Read the catalogue's currency constant in the tier amount (d6fd941)
Documentation
- Document the Featured catalogue bit and the tier card grid (62bd3f5)
- Name all formatAmount surfaces in the feature doc (75a82d2)
Fixed
- Keep the manage-billing row beside the tier grid (3126cf2)
- Put the popular pill and card CTA on their intended pairs (5c2ae1b)
- Keep the phone header bar inside the viewport (f774ff3)
- Stop the page scrolling sideways on narrow phones (1512d9a)
- Give the phone bar's hidden links a footer fallback (4e8fc56)
- Restore the 34px scene-title floor on narrow phones (0388620)
- Show payment amounts in major units (d91cbe1)
- Format UGX as two decimals per the provider's special case (d7230a2)
8.4.1 — 2026-09-20
Documentation
- Align the pricing FAQ and MCP hints with the allowance population (f68b6ee)
Fixed
- Count the free allowance over free workspaces only (895f7ae)
- Meter and display drifted plans on the same allowance (9b245f4)
- Fail closed the plan badge and document the PlanFor read (1058675)
- Keep a drifted plan's card actionable and fold the fail-closed reads onto PlanFor (c7c7c57)
8.4.0 — 2026-09-19
Added
- One page per workspace, with projects as cards (ae78ba5)
Fixed
- Keep list-control links query-free on the workspace page (635d8ec)
- Build the connect-success redirect with withParam (8ffc798)
- Let withParam pick the separator when forwarding notices (06ebe79)
- A session with no workspaces is first-run, not signed out (708845a)
8.3.0 — 2026-09-19
Added
- Change a paid workspace's tier from the dashboard (4d4e334)
Fixed
- Drop the tier change's stale idempotency keys and refuse an ending subscription (2542885)
8.2.3 — 2026-09-19
Fixed
- Release from the branch tip, not the queued run's stale SHA (a5ad6bb)
8.2.2 — 2026-09-19
Added
- Create a workspace from the console (33bcb2d)
Documentation
- Correct the claim that an unset client id closes checkout for connected workspaces (03f5aab)
- Qualify the unset-client-id checkout claim in the canonical llms.txt (f6d07d2)
- Add unroutable money alert to platform-billing taxonomy (c6d6322)
- Enumerate subscription termination in unapplied money event bullet (1d12922)
- Correct stale env-fallback claim in ConnectResolver intro (d8708e2)
- Name what ConnectResolver does not fall back to (2e49640)
- Drop the remaining env-fallback phrasing (e88a059)
- Drop stale screenshot-baseline claim from the shared gate note (43ea7d0)
- Re-wrap shared gate note paragraph after dropping the parenthetical (5c7d48d)
- Document revision artifact retention in MCP tool reference (14de628)
- Attribute retention markers to REST metadata, clarify retry (bfd2168)
Fixed
- Name a taken workspace slug instead of a deletion banner (5688b90)
8.2.1 — 2026-09-19
Fixed
- Drop the two functions the console redesign orphaned (#538) (15dfdce)
8.2.0 — 2026-09-19
Added
- Tiered platform plans with a per-account free allowance (e69477a)
Fixed
- Restore manage_workspace create and show account counts in usage lines (0d265ef)
8.1.0 — 2026-09-18
Added
- Rebuild the console as a dense neutral cockpit (e03d652)
- Move project sections to a vertical rail, join workspace navigation (29aef3e)
- Rail identity head and icons; workspace settings one click away (068bd8c)
Documentation
- Describe the dense-console IA in the living docs (3dd4f29)
Fixed
- Point the secrets deep link at the console's API tab (aeca54f)
- The workspace switcher renders on every signed-in page (6552364)
- Restore deleted styles and thread request context (c46db0b)
- Keep the console usable on narrow screens (b540442)
8.0.1 — 2026-09-18
Fixed
- Name the mode trap when Stripe refuses a Connect exchange (dffd1f5)
- Name every cause of a Connect exchange auth refusal (4a642ce)
- Detect the restricted Connect key before anyone clicks Connect (06ad715)
- Cover the documented invalid_grant mode trap in the Connect hint (787b9c8)
8.0.0 — 2026-09-18
Added
- Store per-workspace Connect connections (2fa9fed)
- Fail app payments closed without a connected account (6cc42a0)
- Add Stripe Connect onboarding for workspaces (4fab4c8)
- Breaking: Charge the connected account and split the webhook rails (a8a5dbe)
Documentation
- Document the Connect connection model and fix the resolver's remaining review findings (1010545)
- Drop the unverified catalog-portability claim (3617db6)
Fixed
- Address the Connect foundation review findings (ea99c1a)
- Harden the Connect onboarding surface (230d9d2)
- Close the Connect review gaps (b0723ff)
- Gate app checkout on the Connect webhook secret and alert on unroutable money (b79d157)
- Stop the console promising a charge the workspace cannot take (0e3ec51)
- Derive the Connect cookie from the origin and close the round-3 findings (a13da8c)
- Close the Connect authorization when a workspace is deleted (ee9c277)
- Make the rail-split upgrade loud, and name the deletion remedy (4d7a1eb)
- Pass the Connect credentials through to the container (6bc824d)
7.25.0 — 2026-09-18
Added
Fixed
- Address review on owner-side test tools (7076f44)
- Keep a declared param schema when a redefine omits it (b639972)
- Type owner-side test_action with the declared param_schema (e64794a)
- Address review on the agent-runtime series (365d265)
7.24.3 — 2026-09-18
Changed
- Extract shared page helpers from page.go (d2cf983)
- Split page.go into per-domain page files (d5d13a2)
7.24.2 — 2026-09-18
Documentation
- Note the console serves the resolver externally under CSP (ad41852)
- Clarify console pageHead uses ThemeColorMeta+link, not inline snippet (fc6249f)
7.24.1 — 2026-09-18
Documentation
- Correct console pageHead theme attribution (2ad351e)
- Name brand.ThemeColorMeta and brand.ThemeResolverJS in theme.md (1960f59)
7.24.0 — 2026-09-18
Added
- Bound revision artifact retention to the latest seven (79f7598)
7.23.0 — 2026-09-18
Added
- Make the platform chrome a component, not 14 copies (43fd1ed)
- Stamp the canonical chrome into the static pages (387d59e)
- Render the generated pages through the chrome component (0bcf484)
- Enforce that the chrome actually lands everywhere (ef0f4ff)
- Trim the product bar to the entries every page shares (d81b7b4)
Documentation
- Document the platform chrome and the harness removal (4ff6027)
Fixed
- Close the chrome review gaps (9bce155)
7.22.1 — 2026-09-17
Documentation
- Correct the 502 row and purge stale 502 comments (3e2d1b3)
Fixed
- Answer the egress envelope with 503 so it survives the edge (fa60f13)
- Make the live probe's tracking issue actually fileable (f9d7a75)
7.22.0 — 2026-09-17
Added
- Report secret readiness with a dashboard deep link (8f0f389)
- Flag dead surface with advisory hints on get (c3e0748)
- Return content_sha256 on content reads (c6ace60)
- Hint a realtime flip that postdates the newest publish (a843897)
Documentation
- Name the runtime/management seam, correct the CSP claim, add debugging sections (568d2b7)
Fixed
- Report every egress failure with a structured envelope (7c7170c)
- Refuse a declared Content-Type that is not JSON (35c72e6)
- Bound search output and add byte-range edits for minified pages (f77c444)
7.21.0 — 2026-09-17
Added
- Pin a strict CSP on the console and serve its scripts as assets (cf2ea1e)
7.20.1 — 2026-09-17
Documentation
- Tighten the SA5011 exclusion wording (6f84ae7)
Fixed
- Exclude staticcheck SA5011 in test files (5d2179c)
7.20.0 — 2026-09-17
Added
- Tab the project detail into Overview, Traffic, Pages, Database, Payments, Settings (3e08246)
7.19.0 — 2026-09-17
Added
- Show visits and lifecycle stamps on the page detail (9117edf)
7.18.1 — 2026-09-17
Fixed
- Make the static pages fit and read well on phones (5a87d69)
- Keep the header on one row on phones (183b59b)
- Prune the landing header to links with no other path (6b87dbb)
- Keep header tap targets clear of each other (8544865)
7.18.0 — 2026-09-17
Added
- Named server-side egress (hostan.fetch) with per-project secrets (#476) (291ad00)
7.17.2 — 2026-09-17
Documentation
- Narrow deployments endpoint use to top-bar search (65c0a12)
- Remove stale 'and the tree' from listing-endpoint comments (782b649)
7.17.1 — 2026-09-16
Fixed
- Make every surface legible in both themes, prune dead rules (#472) (0e4d42e)
7.17.0 — 2026-09-16
Added
- Periodic refresh and refresh button for the consoles (#471) (00b2130)
7.16.0 — 2026-09-16
Added
- Land the multi-tenant console series (87d505d)
- fix(css): AA-compliant paper link ink (#449)
- feat(ui): dark mode across paper surfaces with persisted toggle (#450)
- refactor(ui): single design-token ramp and shared button/badge blocks (#451)
- feat(dashboard): page detail view with rollback and delete (#452)
- feat(dashboard): manage the project backend from the console (#453)
- feat(dashboard): invite members by email instead of pasting usr_ ids (#455)
- feat(dashboard): list filter/sort/paging and one-click copy controls (#456)
- feat(admin): tenancy, money and usage view (#458)
- feat(admin): deepen the moderation workflow — severity, aging, notes, bulk (#459)
- feat(marketing): a real pricing page generated from the plan catalogue (#460)
- feat(dashboard): manage the project's payments catalogue and see sessions (#462)
- feat(marketing): a template gallery and generated /showcase page (#463)
- feat(frontend): scoped source edits, search, and revision diffs (#464)
- feat(docs): offline documentation search and a filterable API sidebar (#465)
Fixed
- The pricing and showcase generators emit the theme resolver (#469) (d8f350f)
7.15.0 — 2026-09-16
Added
- First-run onboarding and teaching empty states (#457) (4a6c929)
7.14.1 — 2026-09-16
Fixed
- Threshold-gate the hero's live counters (#461) (4c8893d)
7.14.0 — 2026-09-16
Added
- Per-project analytics — visits over time and per page (#454) (62c6d6d)
7.13.0 — 2026-09-16
Added
- Scope the console to a workspace and preview pages (dec629a)
Fixed
- Serve a frameable preview URL for the console (b7475e9)
- Correct the preview sandbox, gating, avatar and nav scope (6f59c1b)
7.12.0 — 2026-09-16
Added
- Revise the marketing copy and drop the stray fences (078d5be)
Fixed
- Raise the free-tier CTA contrast on the dark band (4a3cd46)
7.11.1 — 2026-09-16
Documentation
- Reconcile the overview doc and tighten the follow-up guards (b7985e9)
Performance
- Compute the overview aggregates server-side (d04b9fe)
7.11.0 — 2026-09-16
Added
- Cascade workspace deletion and end its subscription (b1d47d2)
Fixed
- Close the admin leak and harden the cancel tolerance (7c1d5e3)
7.10.0 — 2026-09-16
Added
- Skip the consent page for the first-party dashboard client (c17a25b)
Documentation
- Correct the consent doc the first-party skip made stale (d894b3b)
7.9.1 — 2026-09-16
Documentation
- Expand archguard listing to include the WCAG contrast guard (05d4896)
- Broaden archguard listing to enumerate full guard scope (00b7dcd)
- Drop stale "headless Chromium available" precondition for test-ui (b51f420)
- Rename admin console tabs to Moderation Queue / Infra & Telemetry (4d53061)
- Align 'system surface' to 'infra surface' in admin.md (8af747a)
Fixed
- Remove stale 'needs Chrome' from tooling table; mention HOSTAN_CHROME override in step 5 (eb66b7c)
- Update stale 'Reports tab' to 'Moderation Queue tab' in attention banner (53cd784)
7.9.0 — 2026-09-15
Added
- Rebuild the tenant console and add page releases (a493e7c)
Fixed
- De-duplicate the console CSS and stop restyling shared gates (cda1e57)
7.8.2 — 2026-09-15
Fixed
- Drop the decorative glyphs under feature-card copy (376be75)
- Highlight the sign-in chip in the brand accent (684b709)
7.8.1 — 2026-09-15
Documentation
- Correct the ui gate's glob list against what the harness renders (d949745)
7.8.0 — 2026-09-15
Added
- Restyle the tenant console as an operations surface (ea9b03f)
- Restyle the operator console as a dense machine-room dashboard (ffa17b5)
Documentation
- Correct the upgrade-path pointer to the Workspaces tab (9f0f4f0)
Fixed
- Address the console review findings (9a249dc)
- Install chrome-headless-shell for the ui job on the runner (68d8ca4)
- Keep dismissed attention banners dismissed (2cf4b33)
7.7.2 — 2026-09-14
Fixed
- Clear WCAG AA on the paper theme's muted ink (2c35202)
- Close the paper theme's remaining sub-AA ink and guard both panel blocks (43608f4)
- Stop narrow-viewport overflow in docs and api-docs (59b51b7)
- Stop the tenant and operator consoles overflowing narrow viewports (d70d07e)
- Keep the console coverage honest and the tolerances portable (2422757)
7.7.1 — 2026-09-14
Fixed
- Evict the edge cache when an operator deletes a deployment (c58c3ce)
- Answer unknown paths with a real 404, not a 200 (43ead51)
- Remove the remover fallback and harden the new pins (a27cffc)
7.7.0 — 2026-09-14
Added
- Rebuild the tenant console as four flat tabs (0a8df53)
Fixed
- Address review — lint, unclosed section, docs, nits (9a98c71)
7.6.0 — 2026-09-14
Added
- Rebuild the tenant console as a sectioned dashboard (00abee8)
Fixed
- Anchor the chart window, restore the main landmark, tokenize the palette (4b48570)
- Correct aria-current, tokenize the danger inks, take the Projects flash (61c58df)
7.5.0 — 2026-09-13
Added
- Restyle the tenant console as an end-user dashboard (64ac165)
Fixed
- Point Open site at a page and fix console nits (9f954d7)
7.4.1 — 2026-09-13
Fixed
- Render the real brand mark on Go-rendered pages (1d26b0e)
- Replace the placeholder brand mark with the real logo (fbf2de5)
- Resolve gate and error page brand links per origin (893324b)
- Resolve report page brand links per origin (f73876d)
- Carry the full icon set in brand.Head (4f0ac0e)
7.4.0 — 2026-09-13
Added
- Workspace key management at the credential seam (2555397)
- List one user's federated identities (cf757d2)
- The full tenant console — workspaces, projects, members, keys, account (8b16bc1)
Documentation
- Feature doc for the tenant console revamp (e6d9164)
Fixed
- Pass identity-provider and Stripe credentials through to the service (d0b3a5b)
- Close review findings — logout CSRF, key purge on tenant delete, tests (7d806dc)
7.3.1 — 2026-09-12
Documentation
- Fix the AGENTS.md pointer and the remaining PRD citations (2ccb608)
- Cite the reporting contract, not the PRD (34430fa)
- Drop the vague citation (547f0ae)
7.3.0 — 2026-09-12
Added
- Add hostan config doctor (f3cb38f)
Changed
- Replace the doctor's single-case switch with an early return (330137d)
- Extract the service wiring into internal/bootstrap (523f2e3)
- Merge remote-tracking branch 'origin/main' into fix/dbengine-quoted-reserved-prefix (c9af037)
Documentation
- Regenerate AGENTS.md project structure and drift-guard it (0da9f86)
- Drop stale tokens wording and add the missing package rows (c9ce4c0)
- Tabulate the last three packages and correct the api handler list (0ea41ce)
- Correct the internal/api row and guard the package table (8f8688a)
- State the single-node constraint explicitly (3d66d43)
- Complete the single-node surface table (a026eab)
- Widen the single-node limiter row to the whole class (f808ac6)
- Name updateMu and de-duplicate the limiter row (6250bc0)
- Add the v7.1.1 state-of-the-codebase audit (b8095ba)
- Correct the false history claim and freeze the report (a618579)
- Scope F-5 to the missing caveat and reconcile the counts (0c64050)
- Repair the finding index and the duplicated counts (9c07a14)
Fixed
- Make the doctor agree with startup on durations and integers (c5ad2fb)
- Make a non-positive TTL fatal and drop the dead origin check (7e56ea0)
7.2.1 — 2026-09-12
Documentation
- Drop the last runtime-database wording (efa69b3)
- Document the CTAS and strict-body refusals (b88528c)
- Carry the CTAS refusal into the tool and OpenAPI descriptions (59bccf5)
- Date the reseed record in author days and name the cluster (9934f2e)
- Correct the reseed era labels and note the UTC discipline (c7b9971)
- Banner the PRD as a historical spec (e628559)
- Point AGENTS.md at project-model.md as the read-first spec (b5b3fd5)
- Stop citing the PRD for package boundaries in AGENTS.md (256fcdd)
Fixed
- Drop the vestigial runtime_databases table (4ef1790)
- Reject trailing data after the JSON body on op/query (7fd441e)
- Reject CREATE TABLE … AS SELECT (1f49d01)
- Close the CTAS IF NOT EXISTS bypass and pin the forms (49fbae8)
- Keep the legacy mermaid bundle at its published path (2a583b6)
Performance
- Lazily load the Mermaid runtime (~3.2 MB → ~250 KB eager) (9980468)
7.2.0 — 2026-09-12
Added
- Return matched_by in the visitor status read-back (99e2481)
Fixed
- Refuse quoted reserved hostan_ object names (eb9d1e9)
- Refuse single-quoted reserved object names and ALTER onto them (08c1d23)
- Refuse quoted object kinds and even out the name walk (83c5800)
- Recover quoted names instead of refusing the spelling (c54ad85)
- Reserve the table a CREATE INDEX targets (49fddb0)
- Resolve the real client IP behind Cloudflare + Coolify (a95ca37)
7.1.1 — 2026-09-11
Documentation
- Correct stale namespace credential references in AGENTS.md (91524a9)
- Extend namespace→workspace sweep to managed-guide and nginx/compose comments (667506f)
7.1.0 — 2026-09-11
Added
- Let workspaces pay for a plan (b558a92)
- Let owners cancel a paid plan themselves (ed03a45)
- Point the human CTAs at creating an account (5af025e)
Fixed
- Cascade workspace_billing_events with its workspace (4f179a1)
- Record and alert money deliveries the platform cannot read (68a6670)
- Refuse to sell while the webhook signing secret is unset (7b12398)
- Correct the workspace plan description's project limits (8d69202)
- Repair the malformed tag in the plans paragraph (7f7b344)
- Point the not-self-serve refusal at the checkout route (20e1236)
- Describe every way a checkout refuses to sell (c4aee77)
- Align the docs page with self-serve workspaces (2f3fede)
- Make the FAQ's plan answer describe the real lifecycle (5aff511)
- Keep the dev auth origin reachable from any loopback host (632ba79)
- Name the candidates when a create needs a workspace (db737b1)
- Stop the portal tests racing on the package's apiBase (c5a3501)
7.0.1 — 2026-09-11
Documentation
- Correct AGENTS.md nginx layout after config split (d302124)
7.0.0 — 2026-09-10
Added
- Breaking: Drop the legacy namespace ownership sources (3afb78d)
Fixed
- Refuse the unbackfilled legacy ownership drop (8ab8ad4)
- Classify the migration 20 refusal and pre-flight its inputs (f4646b7)
6.0.1 — 2026-09-10
Documentation
- Document the tenant surface and the real admission gate (e515776)
Fixed
- Provision the personal workspace on first login (2389cfb)
- Refuse the platform workspace in the operator cascade (69d7288)
- Keep service principals out of the member surface (4961515)
- Identify the platform bucket by identity, not an empty workspace (bdfa34b)
6.0.0 — 2026-09-10
Added
- Breaking: Serve sign-in from one identity origin with derived callbacks (48d8f2d)
Fixed
- Preserve the forwarded origin port and enforce one identity domain (a076231)
5.24.3 — 2026-09-10
Documentation
- Record the golangci-lint/Go toolchain coupling (54332f1)
5.24.2 — 2026-09-10
Fixed
- Reserve slugs by path segment and split config by concern (f17951b)
- Mirror projects + payments webhook on localhost, watch pinned images (3a2d5de)
5.24.1 — 2026-09-10
Documentation
- State the resolver and version-floor caveats in the config (6b079e0)
Fixed
- Resolve the backend dynamically instead of at config load (cf89544)
5.24.0 — 2026-09-10
Added
- Make the hero demo read like a real agent session (9f8ba32)
- Make the managed app a real booking screen (76e593e)
- Add first-class workspace schema and backfill (a27dfa8)
- Breaking: Invert the credential seam to user-scoped principals (e3c8a45)
- Add workspace surfaces — manage_workspace, REST workspaces, workspace arg on create (3f9f2ad)
- Add the consent step — the callback renders consent, the decision mints (3b6ec5f)
- Add the tenant dashboard BFF — first-party OIDC client of the AS (74b49eb)
- Read workspaces from the table, users from memberships (3d44bf7)
- Require a dedicated identity origin at startup (a256067)
- Feat!(workspaces): bill the workspace and drop the derived-namespace model (62dd149)
Changed
- Reconcile the workspace auth flows with the auth-origin split (f29c56a)
- Reconcile the dashboard redirect URI and route workspaces (689276a)
- Drop the orphaned client ensure and fix the surface docs (b1c5085)
Documentation
- Add identity-model.md tenancy contract (workspaces) (f0e9e81)
- Workspace surfaces, consent step, tenant dashboard across the contract (4e26ef9)
- Correct the workspace list shape, consent cookie, and 409 notes (86c4383)
- Record the dashboard cookie hardening (d8cd4d3)
- Pin where the series breaking signal lives (3e6dfca)
- Correct the references the workspace sweep over-renamed (bf46896)
- Sync the living docs with the deferred drops and the billing seams (8b12d47)
Fixed
- Harden the backfill against retired and duplicate sources (6851211)
- Wire post-backfill keys and code redemption to memberships (24a1c40)
- Hold the consent identity server-side, never in the cookie (ec77063)
- Re-enable a revoked first-party client instead of colliding (05bc8a7)
- Guard the session token fields and bound the session cap (2842408)
- Retry derived workspace slugs and report the real count (b4f2b18)
- Back workspace detail existence with the table (85e9c1e)
- Return the created view for an explicit workspace slug (9b9ae28)
- Preserve the plan on an identity-only update (c6b6ea0)
- __Host- prefix the session and transaction cookies (3d437f6)
- Declare the workspace path parameters and align the member route (0fa27b2)
- Clear the transaction cookie on consent deny too (98c4a9f)
- Correct the workspace delete text and drop a dead branch (1517083)
- Create the workspace and its owner in one transaction (39b965c)
- Cap workspace member roles at the caller's own (397af0a)
- Require a CSRF token on the consent POST (c15cb64)
- Address review — dashboard, credential fallback, atomic plan cap (5b5569a)
- Repair the dashboard workspace-delete handler and its expand keys (23f2ab2)
- Keep the legacy ownership sources for the one-hop backfill (b4ec5c7)
- Keep a plan write from blanking the payer linkage (e583589)
- Report the plan limit as a business error, not a store failure (e40ffb7)
- Delete an empty workspace and verify the legacy grant table (83c1dbb)
5.23.0 — 2026-09-10
Added
- Rebuild the operator console as one dashboard with an ownership tree (466a366)
- Wire credential, grant, and OAuth-client controls into the tree (33c42e3)
Fixed
- Marshal empty project members and backends as arrays (2b5ded5)
- Stop the dashboard showing false counts and hidden members (1cc8799)
5.22.2 — 2026-09-10
Fixed
- Stamp the release version on Go-rendered asset links (b8dd866)
5.22.1 — 2026-09-10
Documentation
- Scope Go toolchain claim to Go-building workflows (ac7d0b6)
5.22.0 — 2026-09-09
Added
- Let MCP sign-ins choose a provider when several are registered (92640ae)
Changed
- Key the picker labels off the provider name constants (2e42880)
Fixed
- Trim the pinned provider name at authorize (ffc61f7)
5.21.0 — 2026-09-09
Added
- Ship the MCP OAuth durable state and the namespace-grant seam (1b93b98)
- Add operator reads for identities, users, and grants (004b732)
- Add the tenant-shaped Users surface and resource reads (60ec6f9)
- Remodel the operator IA around the primitive chain (d883dfa)
- Land the MCP OAuth 2.1 authorization server (b282e13)
- Revoke OAuth clients with token cascade and list registrations (5b96cf3)
- Surface the orphaned-grant count in the users list (cbd851f)
Changed
- Merge remote-tracking branch 'origin/staging/mcp-oauth' into feat/324-admin-remodel (d84d129)
- Drop the unused RevokeToken store helper (f88cdd7)
Documentation
- Document the primitive-chain operator surface (3cd399a)
- State the PKCE challenge check precisely (946ea03)
Fixed
- Close rotation and code-redemption gaps from PR review (4bdeafa)
- Close review findings on the operator read surface (8c120ca)
- Address MCP OAuth review — atomic rotation, mint-point client re-validation (8a0227f)
- Address second review pass — tests, dead code, TTL blast radius (cc9d7d0)
- Address third review pass — accurate comments, rune-safe truncation, carried scope echo (584b7e9)
- Resolve the advertised docs URL on its origin, warn on strict-mode misconfig (1464c09)
- Address fifth review pass — nonce-mismatch triage, PKCE floor test, challenge quoting (ce6f6e5)
- Verify state echo before honoring the provider error param (35760a3)
- Bound dynamic client registration at 500 live clients (2625c67)
5.20.5 — 2026-09-09
Changed
- Fold the purge seam into cachepurge, one owner (4e92b00)
Documentation
- Revive the seam narrative in the package doc (1610589)
5.20.4 — 2026-09-09
Changed
- Declare the entitlement row once, in the domain owner (6e2b8d6)
Documentation
- Drop stale adapter references from two comments (af83d5a)
5.20.3 — 2026-09-09
Changed
- Own the schema-snapshot comparison as one tested unit (0e50dc9)
5.20.2 — 2026-09-09
Changed
- Replace the WithRealtime option with a plain parameter (abb76f3)
5.20.1 — 2026-09-09
Changed
- Unify ownership resolver into ResolveOwnedProject (99589bc)
Documentation
- Singularize resolveOwned doc comment (3f7459a)
5.20.0 — 2026-09-09
Added
- Allow tuning PBKDF2 iterations via HOSTAN_PBKDF2_ITERATIONS (3a9eb78)
Changed
5.19.11 — 2026-09-09
Changed
- Merge remote-tracking branch 'origin/staging/bugfixing' into detail/fix-docs/docs-security-correct-origin-isolation-model-for-d-ae0931 (a22744b)
- Merge remote-tracking branch 'origin/main' into staging/bugfixing (c14dad0)
Documentation
- Correct origin-isolation model for domain-scoped identity cookies (9d6f3c2)
- Correct deployment password cookie description in origin-isolation (2fe49d3)
- Address review nits on origin-isolation cookie model (bbe54d3)
Fixed
- Report projects-disabled as 503 on namespace delete (#297) (59bfd54)
- Fold racing ErrNotFound in the teardown cascade (#299) (0c754f9)
- Reject non-additive ALTER TABLE ADD table-constraints at the migration gate (#300) (f9e1041)
- Keep global connection cap enforced after hub teardown (#301) (7beca11)
5.19.10 — 2026-09-09
Changed
- Read revision metadata through a narrow store seam (fbbceaf)
- Use the guarded revisions local in baseline claim (7030277)
Fixed
- Point waitlist CTA to new sign-up URL (dfa1d60)
5.19.9 — 2026-09-09
Changed
- Move handler dependency wiring into constructors (bb81089)
Documentation
- Update setter references to constructor-injected config (2002a50)
Fixed
- Adapt httpapi test harness to constructor-injected origin gate (53a7c8e)
5.19.8 — 2026-09-08
Documentation
- Correct host label length budgeting in subdomains doc (5223b1d)
5.19.7 — 2026-09-08
Documentation
- Add /auth/providers to AGENTS.md API surface map (5b6fb05)
5.19.6 — 2026-09-08
Documentation
- Align __Host- cookie prose with the payments-only invariant (69a49ef)
Fixed
- Set the __Host- checkout cookie Secure unconditionally (75d2a8e)
5.19.5 — 2026-09-08
Changed
- Unify duplicated JSON/security-header helpers into httputil (4ec68c3)
Documentation
- Record the unified httputil JSON response contract (2494ae7)
5.19.4 — 2026-09-08
Changed
- Reuse ownedProject in RequireActiveManagedProjectForOwner (8a05414)
Fixed
- Enforce namespace ownership on the payments owner surface (cd08f81)
- Update NewHandler call to two-arg form in payments test (bc52c50)
5.19.3 — 2026-09-08
Changed
- Stop routing project-identity reads through the storage engine (04a177b)
- Share one project-identity seam across handlers (be0bde8)
5.19.2 — 2026-09-08
Documentation
- Define the origin-isolation threat model and pin its invariants (0241782)
- Correct review findings in the origin-isolation model (75c155b)
5.19.1 — 2026-09-08
Fixed
- Scope identity cookies to the registrable domain (#283, bug 1) (6fe1244)
- Advertise project frontends on the project subdomain (#283, bug 2) (c118e19)
- Strip the port from the derived cookie domain (0a766dc)
5.19.0 — 2026-09-08
Added
- Serve project frontends on project subdomains (dfa4c21)
Documentation
- Make the nginx-domain and platform-label sync contracts explicit (89ef499)
Fixed
- Enforce the origin boundary on every slug surface (b62ab8e)
- Bound host-label length and make reservation race-safe (2cb10f0)
- Bound host-label length without panicking on long namespaces (8fbc196)
5.18.1 — 2026-09-08
Fixed
- Quote preview location regex so quantifier braces parse (b4d2548)
5.18.0 — 2026-09-08
Added
- Add immutable revision workflow (draft-previews-promote) (fe55aec)
Fixed
- Report fresh release pointer on dedup hits and tighten review feedback (7d6fc04)
5.17.0 — 2026-09-08
Added
- Theme the multi-provider login picker (27c8c7f)
5.16.0 — 2026-09-08
Added
- Store per-project sign-in provider allowance (af1df2b)
- Per-provider redirect and provider-aware callback (851ccf8)
- Provider-aware login, picker, providers endpoint, and allowance enforcement (03c8bd3)
Documentation
- Document per-project multiple sign-in methods (#275) (430e6ac)
Fixed
- Correct multi-provider login URL, docs duplication, and comment garbling (dc0e5b3)
5.15.0 — 2026-09-08
Added
- Harden managed identity with rotation, error codes, metrics, and GitHub sign-in (920c92a)
Fixed
- Atomic session rotation, no-rotate payments surface, wire sweep metric (a2a2545)
5.14.0 — 2026-09-08
Added
- Alert on projection failures and unroutable money events (316f495)
Documentation
- Drop the stale "does not revoke it yet" claim (2e51a2d)
- Land alerting docs in the living feature tree (c1c90ac)
Fixed
- Scope unroutable-event alerts to money-typed events (9fcf3c1)
5.13.3 — 2026-09-07
Documentation
- Document the canonical origin surface map; make /openapi.json alias a redirect (47016f2)
5.13.2 — 2026-09-07
Documentation
- Add ws to reserved-slug lists and hostan.ws to page-runtime list (58d22c8)
5.13.1 — 2026-09-07
Fixed
- Land the release commit with a bounded fetch/rebase/retry (c0698a0)
5.13.0 — 2026-09-07
Added
- Enforce the entitlement lifecycle — refunds and subscription terminations revoke (9754ff4)
Documentation
- Correct owner-surface method, anonymous matching, and subscription wording (9133363)
- Document the enforced entitlement lifecycle (4674c16)
Fixed
- Route refund webhooks via provider metadata and close expired checkouts (1dd7ab0)
- Stop the success return page asserting an unverified payment (db3ba9d)
- Decide projections on the store's pre-transition state; ledger partial refunds (c660e22)
5.12.2 — 2026-09-07
Fixed
- Decode webhook events structurally — nested type keys made every real delivery a silent no-op (2457c6d)
5.12.1 — 2026-09-07
Fixed
- Address injected runtime payments calls at the slug root (cf8c61b)
5.12.0 — 2026-09-07
Added
- Animate the checkout success page (1a23db4)
- Add waitlist CTA to the managed tier card (f00b5f7)
- Honor recurring prices as subscriptions (f018098)
Fixed
- Make Worker.Stop wait for the in-flight cleanup pass (ea57758)
5.11.3 — 2026-09-07
Fixed
- Serve platform return pages after checkout (d2cc69d)
5.11.2 — 2026-09-07
Fixed
- Send product tax code on Stripe checkout (b12f599)
5.11.1 — 2026-09-07
Fixed
- Repair malformed injected hostan runtime (c0e8fa9)
- Surface Stripe error body on checkout 400 (a32822b)
5.11.0 — 2026-09-07
Added
- Add managed payments with hosted Stripe checkout (#250) (ac6db77)
Fixed
- Address review — disconnected-state surfacing, cookie Secure behind proxy, cookie+email read-back union, ledger conflict classification (dc4048c)
5.10.0 — 2026-09-07
Added
- Redesign as infrastructure-grade platform overview (dfeda80)
- Keep the redesign feature-level, drop internals (f050a5f)
- Show built-in powers in the prompt-to-production diagram (f6b28a5)
- Replace the SVG flow diagram with a designed three-step journey (3167282)
- Sticky navbar, split hero and a dedicated /playground (1b32e78)
- Stronger hero, chat demo, feature grid, drop the limits (9c43ea3)
- Hero demo is a Claude-style CLI that deploys then opens (98b2288)
- Realistic dashboard demo prompt; drop sign-in scene (3b8d31f)
- Demo the managed experience with a restaurant booking site (561ff94)
- Demo a one-time password link (open, view, refresh -> 404) (e04747e)
- Differentiated scenes, colored feature tiles, dedicated FAQ (9babe10)
- Demote quick shares, elevate managed, tone down features (75cf260)
Fixed
- Managed tier card readable again on the dark band (bc8d952)
- Put the demo back beside the hero copy (5771ddc)
- Restore docs/api-docs section titles clobbered by landing rules (63152a2)
5.9.1 — 2026-09-06
Fixed
- Pass slug to the auth gate on //ws upgrades (becbe99)
5.9.0 — 2026-09-06
Added
- Add opt-in WebSocket room relay for project backends (#150) (edc7f12)
Fixed
- Enforce lifetime cap on live peers and refuse registration on closed hubs (362179f)
5.8.0 — 2026-09-06
Added
- Redesign admin page structure and improve accessibility (c246d73)
Fixed
- Omit null required from tool input schemas so strict clients accept tools/list (deee6e9)
- Extract commit header POSIX-portably in commit-msg gate (46861a8)
- Pair every project-frontend removal with its edge-cache eviction (413ba44)
5.7.0 — 2026-09-06
Added
- Serve the canonical llms.txt in-band via read_docs (93c09c2)
Documentation
- Record the identity and agent-ergonomics features that shipped undocumented (46fced4)
- Require llms.txt and docs coverage for every user-facing change (6b8d2cf)
5.6.0 — 2026-09-06
Added
- Carry the provider picture claim through identity (046cfe7)
- Read a frontend's published source back (772bee0)
- Manage_backend get carries the stored SQL verbatim (a27623c)
- Expose provider, session expiry, and locale to pages (c0e0434)
5.5.2 — 2026-09-06
Documentation
- Make the visitor sign-in contract discoverable to agents (9481c2a)
5.5.1 — 2026-09-06
Changed
- Merge origin/staging/bugfixing into fix-deploy-stop-baking-7-day-og-description (keep both test additions) (29fddc4)
- Merge origin/staging/bugfixing into fix-deployments-keep-existing-deployments-removabl (keep LooksLikeDeploymentID and the ValidateName split) (970e0f9)
- Merge origin/staging/bugfixing into fix-storage-place-open-graph-meta-in-head (keep header-fallback test and merged permanence/auth tests) (8acb41b)
Documentation
- Document stranded aside-tree recovery in the AGENTS.md Recovery bullet (58b6907)
Fixed
- Classify a full disk as error on the System tab (8b1f0e3)
- Report correct ledger count in schema_ahead_of_ledger warning (1a4f69d)
- Heal unrecorded migrations whose dependent landed ahead in the ledger (5260eab)
- Reject UUID-shaped slugs for project frontends (4a9f9ff)
- Enforce description length in runes, not bytes (ae1d0fc)
- Stop mistaking a :returning bind for a RETURNING clause (147c276)
- Surface provisioning infrastructure failures as 500 not 400 (d69699b)
- Resolve reports for deleting members on project/namespace delete (8b322be)
- Make set-safety a pure control-plane write and harden deploy rollback (bc98586)
- Keep namespace list and detail agreeing on existence (b1c7963)
- Report server-side API failures as 500 instead of 400 (4d84fa6)
- Set Content-Type before WriteHeader on legacy 404 branches (dec1fc3)
- Clear inventory negative cache on invalidate (bb42659)
- Surface the configuration hint on anonymous manage_frontend create (73bdd34)
- Reject symlinked deployment dir that resolves to sites root (8eb1c9b)
- Set Content-Type before WriteHeader on error responses (5bf5750)
- Recover active deployments stranded mid-update by a hard crash (e85319f)
- Edge-cache permanent public deployments with a 24h ceiling (c31795e)
5.5.0 — 2026-09-06
Added
- Add control-plane identity and session store (66a8acc)
- Add Google OIDC authentication service with PKCE (RFC 10017) (b793180)
- Resolve op principals and inject platform identity binds (66a8fdc)
- Inject hostan.auth runtime and resolve it from /auth/status (90f33cc)
- Add provider-neutral identity contracts and registry (7bd4ff6)
- Add a reusable OAuth2 authorization-code and PKCE client (6c0e2c7)
- Add the OIDC identity layer over the OAuth client (72464c1)
- Reduce Google sign-in to a thin provider adapter (3f359f0)
- Centralize the provider callback at one registered URL (46e9cc5)
Changed
- Make the identity service provider-neutral (158ea04)
- Parse the transaction cookie once per callback (b7e84bc)
Documentation
- Document the unconditional /auth path reservation (93be4c1)
- State that sign-in is per frontend in the actions contract (8e240ed)
- Document the managed identity threat model (d845bbe)
Fixed
- Place Open Graph meta in head when closing head tag omitted (a7fddb7)
- Keep existing deployments removable after their slug becomes reserved (957e49d)
- Stop baking 7-day OG description for permanent frontends (dc4eeec)
- Address review — non-regressing profile refresh, session identity snapshot, cascade indexes (e5f8731)
- Land post-login on the frontend's own root by default (1e32bd1)
- Sweep expired identity sessions in the cleanup worker (2f7a957)
- Guard the load-time status fetch so it can never unmount hostan.db (00252cd)
- Make Google adapter construction free of network I/O (7b70ceb)
- Keep swept identity sessions out of the deployment-removal stats (b19018d)
- Render the cleanup stat fields the system API actually serves (165db1b)
5.4.2 — 2026-09-05
Documentation
- Replace stale "project token" with "namespace credential" in PRD and API docs (1441f86)
- Correct runtime API routes and project-token credential refs (16e6ec5)
- Correct stale runtime-database references in AGENTS.md (b800274)
- Re-correct statement claiming runtime databases wrongly. (8393e09)
5.4.1 — 2026-09-04
Fixed
- Render brand arrow as inline SVG so it never falls back to emoji (b214492)
5.4.0 — 2026-09-04
Added
- Purge the platform's own pages from the edge cache on startup (3d660d5)
Changed
- Extract the shared edge-purge seam into internal/purge (6f7ed1d)
5.3.4 — 2026-09-04
Documentation
- Animate the managed-model diagram and fix the health dot (9ceed49)
- Restructure the model diagram as an architecture diagram (1b47f27)
5.3.3 — 2026-09-04
Fixed
- Serialize permanent deployments' expiry as null (348999a)
- Ship the report button only on free quick shares (22c20fc)
5.3.2 — 2026-09-04
Fixed
- Send scheme-less prefixes so edge purges are accepted (c5271b3)
- Reject requested_slug on manage_frontend update (fbdc14e)
5.3.1 — 2026-09-04
Fixed
- Fail fast on Coolify status-poll auth errors and print the body (0c85bef)
- Fail fast and self-explain on Coolify status-poll 401/403 (81714cd)
5.3.0 — 2026-09-04
Added
- Add namespace scope to the deployment list (acf7f44)
- Rebuild the operations dashboard for scoping and mobile (0b31d4c)
Fixed
- POST the Coolify deploy webhook and derive the API base from its path (22e03ca)
5.2.1 — 2026-09-04
Documentation
- Redraw the managed model diagram (2618579)
5.2.0 — 2026-09-04
Added
- Purge project frontend URLs from the Cloudflare edge cache on publish and update (571f944)
- Purge a frontend's edge-cache entry on delete too (38c3af4)
Documentation
- Document prefix-over-match eviction semantics (844e58c)
5.1.1 — 2026-09-03
Documentation
- Restructure docs site for readability (a37924f)
- Make the product switch a sticky control and draw the managed model (f9fd5ca)
Fixed
- Repair conflict residue and restore the full product tracks (17a565a)
5.1.0 — 2026-09-03
Added
- Add REST endpoints for frontend and backend management (f6c2ec0)
Fixed
- Address review feedback on the REST parity surface (10ca455)
5.0.0 — 2026-09-03
Added
- Breaking: Authenticate manage_* via the connection's Authorization bearer header (e7c7c74)
Fixed
- Address PR 175 feedback on bearer parsing, unwired gate, resolution cost, migration hint (f6a5d68)
4.0.0 — 2026-09-03
Added
- Breaking: Namespaces own projects; single namespace credential (a3cfebb)
- Author-defined actions as the public backend runtime surface (36a4aa3)
Changed
- Merge remote-tracking branch 'origin/main' into staging/project-model (e1b3e33)
- Merge staging/project-model: author-defined actions (P6) into namespace ownership (aab34e8)
Documentation
- Align contract surfaces with namespace-owned projects (582842e)
- Align PRD, spec, OpenAPI and site copy with the shipped surface (52ca3f3)
Fixed
- Address actions review — bind contract, note versioning, dedup (da58cf8)
- Tighten the action bind gate for $/@ and stray doc fixes (e655b46)
- Point frontend/backend tool copy at hostan.db.op and the additive gate (3dcea1e)
- Keep backend_actions at v5 so series databases upgrade forward (59c97da)
- Map seam ErrForbidden instead of collapsing to 500 (c0e8aef)
- Address PR 174 feedback on token wording, permanence, seq, double read (5afd3f9)
3.3.0 — 2026-09-02
Added
- Add project model foundations migration (e990e0b)
- Add projects and backends repositories (555d87a)
- Expose project-membership surface on repositories (adc9c4d)
- Add project envelope service with context seam and teardown cascade (abacb81)
- Add manage_project tool and project flow instructions (35efaf9)
- Add REST parity for project creation and listing (63665f5)
- Enforce project expiry in the cleanup worker pass (8cf2ccc)
- Wire the project model into the server (P1) (a3bd6aa)
- Expose backend-resource reads and the free-project identity (27caee8)
- Stamp project ownership on deployments and resolve frontend backends (c31abd1)
- Resolve frontend owners through the context seam (d55af55)
- Publish project frontends through the unified pipeline (9334c2c)
- Resolve frontend queries through the project backend (bbaba1f)
- Add manage_frontend tool and project flow instructions (917f02e)
- Wire project frontends into the server (da45693)
- Add the additive migration gate and transactional script application (e27ddde)
- Extend the backend store with ledger and recovery reads (339ff2a)
- Resource-keyed runtime lifecycle, capacity pool, and backend recovery (f5feef6)
- Tear the backend tier down as the cascade's last member (d9c67ce)
- Add the backend tier service with gated migrations and the ledger (15b08de)
- Republish project frontends with their backend's runtime binding (4301b39)
- Add manage_backend tool and project flow instructions (129e16c)
- Wire the backend tier into the server (ff3e132)
- Breaking: Remove deploy_app and standalone database deploy types (3c4c167)
- Group the inventory by project with rollups and a teardown danger zone (453859a)
- Generate the Projects reference section from the embedded project docs (4910386)
- Show per-task sub-entries for squash-merged series (346c54b)
Changed
- Drop dead app/database branches left by the P4 guard (eea7fe4)
- Drop the legacy app/database query path for good (99da7ca)
- Remove dead deployment-row DB surface; guard legacy recovery (f047b92)
- Cap project-detail members server-side with the live total exposed (767cc58)
Documentation
- Add project-model P0 task file (58d7832)
- Document the FK-less project_id trade-off at the ALTER site (d44861a)
- Document FK-less trade-off and config invariant in P0 task file (dd0c9ee)
- Clarify review-flagged comments on the P1 surface (34bbc4a)
- Add project-model P2 task file (7744e39)
- Add project-model P3 task file (f13a611)
- Add project-model P4 task file (31c30b5)
- Repoint surfaces at the project flow after the removals (d5b6560)
- Add the product spec, series retrospective, and P5 task file (5308320)
- Correct the series PR list (#163 was not a series PR) (6ac27d3)
Fixed
- Reject SQL content in backend resource config (0673b1b)
- Require project_token in the manage_frontend schema (b238396)
- Distinguish absent backends from resolution failures in the frontend path (15945da)
- Strengthen the heal proof, surface applied-unrecorded, serialize updates (541f011)
- Actually produce ErrAppliedUnrecorded and serialize teardowns with updates (d29c5cb)
- Drop the removed deploy surfaces from the last page copy (305b526)
- Map mid-cascade project failures to 500 and give the free refusal its own 400 (2a391a9)
3.2.0 — 2026-09-02
Added
- Complete SQLite authority series (epic #124) (#154) (f9a2391)
- feat(control-plane): add central SQLite control-plane foundation (124.1) (#134)
- feat(control-plane): add SQLite deployment repository with durable lifecycle state (124.2) (#135)
- feat(control-plane): switch deployment publication and recovery to SQLite lifecycle (124.3) (#136)
- feat(reports): migrate reports from JSON files to SQLite (124.4) (#137)
- feat(control-plane): make visit totals durable and one-time consumption atomic (124.5) (#140)
- feat(control-plane): relocate runtime databases to deployment-ID storage (124.6) (#142)
- feat(control-plane): cut over admin inventory and application reads to SQLite authority (124.8) (#144)
- feat(control-plane): remove legacy manifests, counters, and discovery code (124.9) (#148)
3.1.19 — 2026-09-01
Changed
- Inline report-affordance policy in Execute (#151) (c702142)
3.1.18 — 2026-09-01
Fixed
- Negotiate legacy protocol version 2025-06-18 (#147) (4d2c8ed)
3.1.17 — 2026-09-01
Fixed
- Acknowledge session-termination DELETEs with 204 (#146) (876bb3d)
3.1.16 — 2026-09-01
Fixed
- Well-typed JSON responses and wire logging for client interop (#145) (b0d198e)
3.1.15 — 2026-09-01
Fixed
- Stop advertising OAuth PRM for the public MCP endpoint (#143) (bb9a8ed)
3.1.14 — 2026-08-30
Changed
- Split the storage facade into narrow consumer-side interfaces (#123) (bb133e6)
3.1.13 — 2026-08-30
Fixed
- Skip release when the computed version is already tagged (#122) (f244492)
3.1.12 — 2026-08-30
Changed
- Clean up and reorganize nginx static assets (#120) (793722c)
3.1.11 — 2026-08-30
Changed
- Replace package-level mutable runtime configuration with injected config (#119) (31e6d34)
3.1.10 — 2026-08-30
Documentation
- Trim internal details and em dashes from the API reference page (#109) (40833ed)
- Remove AI writing patterns from legal pages (#114) (6a9a9be)
Fixed
- Fail closed on crypto/rand failure during session minting (#116) (24c36b9)
- Stop double-counting visits that race one-time self-destruct (#118) (ff32213)
Performance
- Index reports by slug to stop full-directory scans on public paths (#117) (ab57d2d)
3.1.9 — 2026-08-28
Documentation
- Trim internal details and em dashes from the docs page (#108) (e639470)
3.1.8 — 2026-08-28
Documentation
- Remove AI writing patterns from doc pages (#106) (ba0e2da)
3.1.7 — 2026-08-28
Changed
- Split handler.go into transport, session, dispatch, tools, and protocol modules (#105) (da0461c)
Fixed
- Reclaim idle rate-limit buckets with an opportunistic sweep (#103) (6d01bb0)
- Validate the release candidate before committing and tagging (#98) (b41ed3f)
- Checksum-verify the git-cliff release tooling (#101) (ffd33f3)
- Refuse to start on invalid canonical origin configuration (#102) (0f6134e)
Performance
- Reuse SQLite handles across runtime requests (#104) (4ea472d)
3.1.6 — 2026-08-28
Fixed
- Deliver BLOB cells losslessly as base64 JSON objects (#97) (90555a3)
3.1.5 — 2026-08-28
Fixed
- Make job summaries reflect actual check outcomes (#100) (6161658)
3.1.4 — 2026-08-28
Fixed
- Return 500 instead of panicking when report ID generation fails (#99) (3906294)
3.1.3 — 2026-08-28
Fixed
- Classify non-user SQLite failures as internal errors (#96) (71690b3)
3.1.2 — 2026-08-28
Fixed
- Reject expired database deployments at the API boundary (#95) (34dc1f0)
3.1.1 — 2026-08-28
Fixed
- Reject incomplete CREATE statements instead of panicking (#94) (b679a4d)
3.1.0 — 2026-08-28
Added
- Add namespace delete with cascade teardown (d2be718)
Changed
- Best-effort purge, idiom and invariant notes from review (c3747a8)
Fixed
- Make namespace cascade best-effort and serialize credential issue (8ac6f53)
3.0.0 — 2026-08-28
Changed
- Consolidate origin URLs to HOSTAN_MAIN_URL, HOSTAN_API_URL, HOSTAN_SITES_URL (e6d8739)
- Breaking: Drop legacy URL fallbacks, share origin config via hostconfig (9386f5e)
- Default all three origins to canonical production hosts (a6d0cc3)
- Dedupe origin hosts via a set and cover identical origins (b962654)
Documentation
- Document review-flagged invariants around origins (96818a4)
- State the /api/docs cross-host routing invariant explicitly (21f0ac4)
Fixed
- Resolve cross-origin page links per host so local browsing stays local (d390126)
- Bake per-install origins into document chrome and changelog page (46120b6)
- Drop stray brace from api-docs curl fallback (c664bfd)
2.12.0 — 2026-08-28
Added
- Add managed deployments integration guide and docs_url (be2f1cd)
Changed
- Drop docs_url from deploy response and move guides to the API origin (7677de9)
- Remove guideBaseURL wrapper, default docs base, and fix review nits (c931ad6)
Documentation
- Reframe integration guide as an implementation spec for coding agents (c19cff9)
- Show full HTML documents in create/update examples (312781d)
- Correct served url to sites.hostan.app and canonical_url reporting (6900dd6)
- Correct guide to match implementation (id vs slug, url semantics, rate limits, update response) (ae655c5)
2.11.0 — 2026-08-28
Added
- Add namespace management for managed deployments (55122c7)
Documentation
- Add managed deployments nav section between reliability and api reference (c5754c6)
Fixed
- Root credential registry under the platform writable volume (1ded93c)
- Correct namespace status pill and back-navigation (e608078)
2.10.0 — 2026-08-28
Added
- Filesystem credential registry with namespace binding (b186e17)
- Credential lifecycle endpoints behind the admin gate (3e33a98)
- Namespace ownership, permanent sentinel, atomic content update (4228c28)
- Managed capability set and lifecycle entry points (421427c)
- Managed deploy + lifecycle REST routes (0a48087)
- Managed deploy rate zone, lifecycle routes, env config, docs (4b038ca)
- Enhance managed deployment support with rate limits and documentation updates (3118d0a)
Changed
- DeploymentContext + ResolveDeployment options resolver (1eee770)
Documentation
- Spec managed deployments — namespace credentials, permanent TTL, lifecycle API (8521837)
- Mark feature implemented, acceptance criteria met (4a1f63a)
Fixed
- Eliminate data races on capacity-config globals (9d192be)
- Apply PR review fixes (e5724a2)
- Serialize RemoveDeployment with lifecycle updates (b9c3629)
2.9.2 — 2026-08-27
Fixed
- Deflake async alert count assertion in status test (1971c57)
2.9.1 — 2026-08-27
Documentation
- Document rate limits and platform limits (1c3ec48)
2.9.0 — 2026-08-27
Added
- Add charts to operations dashboard (#67) (ca25afe)
2.8.3 — 2026-08-27
Fixed
- Create audit dir in image and fail fast when it is not writable (90b8f72)
2.8.2 — 2026-08-27
Changed
- (chore): Update status link in landing page (08e257e)
2.8.1 — 2026-08-27
Fixed
- Update status link to new uptime page (2c6fc75)
2.8.0 — 2026-08-27
Added
- Add visual polish to operations dashboard (166f101)
- Add live-refresh control and triage affordances (3dcefb7)
- Add batch actions for deployments (0f91312)
- Make dashboard responsive and mobile-friendly (2a187bf)
Changed
- Slim dashboard to single-action operator tool (d552ba1)
2.7.1 — 2026-08-27
Changed
- Reduce the gate to bearer token or loopback (351727b)
- Fold helpers into service and clear lint findings (53b58fe)
- Retain only the token hash in the gate (aaaa79c)
Documentation
- Temper the token-retention wording in the gate (93c7a72)
2.7.0 — 2026-08-27
Added
- Add operator dashboard at /admin (c09bfda)
Fixed
- Rotate the asset cache-buster on every dev build (b1a9395)
2.6.0 — 2026-08-26
Added
- Add service status link to footer (94bf47e)
2.5.2 — 2026-08-26
Fixed
- Stop data race on retryBackoff in notify tests (#61) (774b052)
2.5.1 — 2026-08-26
Changed
- (chore): Update copyright year in LICENSE file (96d176b)
2.5.0 — 2026-08-26
Added
- Add deploy_app for one-call stateful app deployments (#59) (5eba21a)
2.4.0 — 2026-08-26
Added
- Add deploy_app for one-call stateful app deployments (cba9d70)
2.3.1 — 2026-08-26
Documentation
- Rewrite legal pages in first person (#58) (a0207b1)
2.3.0 — 2026-08-26
Added
- Content reporting & deployment safety status (#57) (7a520e0)
2.2.2 — 2026-08-26
Documentation
- Update legal pages (#56) (1d5c693)
2.2.1 — 2026-08-26
Documentation
- Strip AI writing tells from landing and documentation pages (#54) (fc61f33)
2.2.0 — 2026-08-26
Added
- Add reliability section with 99.9% availability target (#53) (fbdeeee)
Fixed
- Pin checkout to SHA in conventional job (#52) (1d623a7)
2.1.1 — 2026-08-26
Documentation
2.1.0 — 2026-08-26
Added
- Add conventional-commit gate and local git hooks (7573298)
2.0.2 — 2026-08-26
Fixed
- Replace mobile horizontal-scroll nav with a collapsible 'On this page' menu (1776b60)
- Make api-docs endpoint menu and cards wrap on mobile instead of horizontal-scrolling (ec70510)
- Keep stats band on one row on desktop, make it responsive, use serif numerals (bcd235a)
2.0.1 — 2026-08-26
Documentation
- Refer to provisioned databases instead of SQLite in public copy (f965204)
Fixed
- Drop markdown-as-HTML title fallback (22f500d)
- Make integration cards compact on mobile and ink the agent names (90840b3)
2.0.0 — 2026-08-26
Added
- Breaking: Drop deprecated HTTP+SSE transport (907a373)
1.2.10 — 2026-08-26
Fixed
1.2.9 — 2026-08-26
Added
- Breaking: Drop per-type stats breakdown (074622f)
Changed
1.2.8 — 2026-08-26
Changed
- Guard per-slug visit counter with the index mutex (d5106fa)
1.2.7 — 2026-08-26
Changed
- Collapse global counters to a single mutex (1c7de77)
1.2.6 — 2026-08-26
Documentation
- Use branches instead of worktrees in agent workflow (8cc3d78)
1.2.5 — 2026-08-25
Changed
- Colocate each database artifact with its deployment (c763729)
Fixed
- Enforce the database size cap as a hard limit (22e484b)
1.2.4 — 2026-08-25
Changed
- Split FileStorageEngine into internal components (93f84cf)
1.2.3 — 2026-08-25
Changed
- Consolidate in-memory state into runtime index (8686b59)
1.2.2 — 2026-08-25
Fixed
- Keep sticky header full-bleed on phones (896b06f)
1.2.1 — 2026-08-25
Fixed
- Stop docs page and sticky header overflowing phone viewports (9a06afe)
1.2.0 — 2026-08-25
Added
- Cache-bust assets by release tag and show version on landing (7176143)
- Source release version from committed VERSION file for repo-built deploys (41efdfa)
1.1.2 — 2026-08-25
Fixed
- Publish releases from a single workflow; bot-pushed tags don't trigger workflows (15b31a8)
- Locate git-cliff binary with a glob when installing (d16e552)
1.1.1 — 2026-08-25
Documentation
- Make go.mod the single source of truth for the Go toolchain (e7c66b4)
1.1.0 — 2026-08-25
Added
- Enhance responsive design for documentation and landing pages, improve accessibility and UI elements (a651473)
- Update landing page with live stats display and improve header rendering (a4a08e0)
- Clean (cd85f4a)
- Add Markdown support with converter and tests (422058a)
- Add support for Markdown content deployment and type toggle in editor (bcb2153)
- Implement password protection for deployments (57b05cb)
- Update brand assets and improve error pages with new designs (96f7e22)
- Implement paper theme for deployed documents and update layout structure (09127c9)
- Add OpenAPI support and documentation (7c18b2c)
- Enhance HTML rendering with Open Graph and CSS injection (993b2f3)
- Implement security optimizations including request validation and enhanced cookie handling (3fd7235)
- Enhance deploy_asset tool to support JSON and CSV content types (517914b)
- Add sticky header functionality for wide tables in CSV viewer (e110ed2)
- Enhance sticky header for wide tables in CSV viewer (80fc0a6)
- Automated SemVer versioning, releases and public changelog (532ace3)
- Add database deployment support with API integration (8a4b45c)
- Refresh docs page with SVG icons, tighter copy and mobile layout (a0cbc11)
Changed
- Block manifest/visits exposure, parallelize cleanup, use stdlib rand, fix isTooLarge check (783e634)
- Clarify reason for excluding deploy/ from .dockerignore (c892282)
- Refactor project from "Hoster" to "Host An App" (45361fd)
- Redesign header logo and wordmark with custom SVG icon (f1591dc)
- Fix duplicate MIME type warnings in nginx config (e6823e0)
- Update import paths to use the new repository name "hostanapp" (187a74c)
- Add landing page and 404 error page, update healthcheck in docker-compose (25a4a94)
- Improve header logo readability: restyle 'hostan.app' as 'Host an App' (577d1f6)
- Fix header logo: clear 'Host An App' with word spacing (1ded037)
- Refactor HTTP utility functions and improve cleanup processes; update Makefile and configuration for clarity (819af35)
- Remove unnecessary blank lines in handler and httputil files for cleaner code (594eda9)
- Fix slug routing mismatch, visit hot-path disk reads, and shutdown race (eb94671)
- Fix nginx restart loop: move server_tokens into http context (729d2e0)
- Remove hostan host-port publishing to prevent deploy port collisions (19fddd1)
- Fix nginx healthcheck: use 127.0.0.1 (IPv4) to avoid ::1 resolution (7cf6d2c)
- Add rate limit handling: return 429 status for deploy/MCP limits and update error message (8a0afdf)
- Enhance health check response: include nginx status and improve logging for cleanup worker (4e7279a)
- Fix SSE WriteTimeout bug; named JSON-RPC codes; fix capacity test fixtures (5a9f9d6)
- Optimize hot path, harden security and robustness (2e71fc1)
- Add JSON error responses for Nginx to standardize API error handling (cc9139b)
- Add Open Graph and Twitter Card metadata to enhance SEO and social sharing (19e8c0d)
- Add sitemap and robots.txt for improved SEO and search engine discovery (23d6e7a)
- Enhance footer and header component styles for improved visibility and user experience (19971de)
- Add support for one-time deployments with self-destruct feature (7b6c50c)
- Refactor deployment tool from
deploy_spatodeploy_asset(4d47ce6) - Mermaid tabbed diagrams, responsive layout, orange brand styling (94f4671)
- Markdown and mermaid content type support, nginx source routes (4cf51cb)
- Landing, docs, mcp: add mermaid type, align API/MCP naming (08ee6b1)
- Pass raw source to pre.mermaid, escape only in source-block (d081fe9)
- Fix rendering by tracking bundle + simplifying to template interpolation (fc51507)
- Refactor markdown and mermaid handling in deployment (def391f)
- Implement dark theme for markdown and mermaid documents with shared header and footer (e5ebbe0)
- Refactor markdown and mermaid templates to utilize shared header and footer components with Tailwind CSS integration (d158876)
- Refactor tests to validate new site-header and site-footer placeholders, and ensure proper loading of components and Tailwind CDN (cb2b879)
- Extract shared document layout for markdown/mermaid rendering (7404933)
- Make deployed markdown/mermaid pages self-contained (bc5aad2)
- Remove Tailwind; rewrite all pages in hand-written vanilla CSS (4694445)
- Make Mermaid diagrams legible and interactive on mobile (feb6e1f)
- Fix mermaid diagrams not rendering (0-height SVG) + stabilize sizing (317c5bf)
- Refactor cleanup worker to use in-memory expiration map for slugs (a93e9b9)
- Enhance guidelines for adding external dependencies (12f7ec5)
- Unify content processing and deployment pipeline across API and MCP (6667d8e)
- Unify deployment pipeline and improve error handling in API and MCP (afbd45f)
- Enhance document styling and layout for Markdown and Mermaid content (0e1e8d3)
- Implement tabbed interface for Mermaid diagrams and update related HTML generation (01766ba)
- Streamline deploy input handling and improve Mermaid diagram rendering (60a8f58)
- Implement one-time deployment feature and enhance Mermaid diagram interactions (9bbd18d)
- Update layout and functionality for Mermaid diagrams, enhance copy button feature (6bd50a1)
- Update environment variables for consistency and add architecture documentation (3c8afee)
- Update HOSTAN_BASE_URL to use hostan.app for consistency (6be0e60)
- Remove unused httputil package and related code for base URL handling (6b8e438)
- Update HOSTAN_BASE_URL to use HTTPS for consistency (5067263)
- Enhance descriptions for content deployment and type in getTools function (a142ec8)
- Simplify description for content type in getTools function (6d8794d)
- Allow line breaks in Mermaid labels by replacing literal \n with (5d68aa8)
- Refactor code structure for improved readability and maintainability (0719fb1)
- Add brand assets including logos and web manifest (545a547)
- Refactor MCP handler tests for improved readability and maintainability (b5b03d0)
- Refactor API endpoint references and update deployment URLs (106b8b6)
- Update links and metadata across HTML files for consistency and SEO improvements (4934887)
- Add Acceptable Use Policy, Privacy Policy, and Terms of Service pages; update reserved slugs (7e27ef7)
- Refactor footer layout across multiple pages for improved navigation and consistency (5647707)
- Remove coverage badge generation from CI workflow and update README to reflect changes (9f7d2ae)
- Refactor database deployment handling (18307ba)
Documentation
- Align all docs for 3 content types, fix MCP tool name (223e235)
Fixed
- Fix potential issues (cbc9b74)
- Fix tls termination / proto forward on docs (b642243)
- Use wget for healthchecks (Alpine has no curl), set HOSTAN_BASE_URL to https://hostan.app (c7ab7cb)
- Update nginx healthcheck to use wget --spider and adjust retries/start period (0ced9c8)
- Update nginx health check to use dedicated endpoint and adjust docker-compose healthcheck (6c7de94)
- Reorder import statement for math/rand/v2 in engine.go (a66e646)
- Update meta descriptions and titles for clarity and consistency (8c31f46)
- Remove immutable Cache-Control from /assets/ to fix stale CSS (67a53e6)
- Harden deletion path, one-time mutex leak, and extract httputil (fe6575d)
- Update GoCollector registration to use collectors package (07cabba)
- Update GitHub Actions to use latest versions of checkout and setup-go (786da84)
- Blank mermaid canvas in markdown deployments (43ca2be)
- Force landing/docs HTML revalidation (ca262ab)
- Allow CDN libraries on deployed pages via permissive CSP (2320d9a)
- Make landing page responsive on mobile (6283142)
- Correct git-cliff binary path in changelog action (0c0443e)
- Derive Go toolchain from go.mod instead of pinned 1.23 (bc8e512)
Security
- Security hardening: fix 14 vulnerabilities across 6 files (8471697)
- Harden for long-term production use (099ee43)
1.0.0 — 2026-06-11
Added
- Add landing page at root, clean up MCP routes, tone down copy (862a22c)
- Add MCP integration configs for Claude Code, VS Code, and Cursor to landing (ac82e1f)
- Wire landing publish button to real API backend (68100dd)
- Add historic deployment & visit counters, restructure landing for MCP-first (c1e97f3)
- Move landing to nginx-managed (static) (106a8b2)
- Add CI and Release workflows, improve error handling and code quality (414432d)
- Add health check to Dockerfile for improved container monitoring (3497171)
- Simplify Docker Compose commands and add initial docker-compose.yml configuration (aaf9223)
- Improve landing (5676310)
- Add visit count display and update URL generation to use subdomains (304be13)
- Implement health check and update deployment status indicators (5d2b858)
- Enhance 404 error page and landing page with Tailwind CSS (5ddb805)
- Implement shared header and footer components for landing and docs pages (be47a79)
- Replace icons with images for Claude Code, Cursor Editor, and VS Code sections (2dee59e)
- Add Codecov integration and update README with coverage badge (bc88e41)
- Implement coverage badge update in CI workflow and update README for badge display (27325f3)
- Add doneCh channel to FileStorageEngine for graceful shutdown and update tests to close engine (283b201)
- Update project documentation structure and add new features to the feature list (ee37d43)
- Add coverage.svg file and update .gitignore to include it (6df6c54)
Changed
- Initial commit (3f3a0dc)
- Add PRD, tasks, AGENTS.md, and project scaffold docs (b080703)
- Storage engine, slug resolution, manifest, atomic publish (efec8db)
- REST ingestion API with POST /api/v1/deploy and GET /healthz (ca84c06)
- Merge feat/T003-mcp-server into release/v1 (fec6ebf)
- Nginx routing, static serving, Dockerfile, and docker-compose (10d8e4d)
- Merge feat/T004-nginx-routing into release/v1 (c371ef7)
- TTL cleanup worker with manifest-based expiration (666e49d)
- Merge feat/T005-cleanup-worker into release/v1 (56b7538)
- Security headers, reserved slug enforcement in storage, content-type validation (dc70948)
- Merge feat/T006-security-controls into release/v1 (c3292b7)
- Containerization with aligned GIDs, docker-compose, local dev docs (01a77fd)
- Merge feat/T007-containerization into release/v1 (3a67b97)
- End-to-end validation suite covering deploy, MCP, cleanup, and security (b2034d9)
- Merge feat/T008-e2e-tests into release/v1 (b499a8a)
- Add health checks for hoster and nginx services in docker-compose.yml (913dbfb)
- Migrate from subdomain routing to path-based routing for deployments (b84de26)
- Update API URLs to use placeholder for origin and remove unused sections (069a4bd)
Fixed
- Add /v/ path-based serving, fix URL generation, expose API port for local debug (3832bb1)
- Go version in Dockerfile, nginx /v/ path-based serving with alias (8030a19)
- Serve deployments at / instead of /v/, exclude api/mcp paths in nginx regex (a90fd3a)
- Change build context from '..' to '.' for Coolify compatibility (95f51b1)
- Change default nginx port from 80 to 9123 (274e425)
- Proxy root / to Go for landing page (ba62063)
- Use dynamic hostname in landing page, update nginx subdomain pattern (9dec365)
- Use correct base URL scheme in landing default URL bar (19d05c7)
- Use request host for beacon URL, proxy visit endpoint in nginx, fix MCP base URL (6ff8f85)
- Standardize formatting and improve consistency in code style (e44f58d)
- Update build context in Docker Compose and improve Nginx landing page configuration (90d49b0)
- Reduce request size limits from 5 MB to 1 MB across documentation and code (33d9e2e)
- Replace {{ORIGIN}} server-side in landing page with nginx sub_filter (ec34d2c)
- Update landing page static assets location to use prefix match (b8b06bf)
- Update badge links and styles in README for better visibility (7d0570b)
- Update badge links and styles in README for improved visibility (44de681)
Performance
- Replace global mutex with lock-free atomics + debounced disk flush (142f758)