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.
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)