Changelog

The short version in plain words comes first. Under it, every feature and fix, grouped by development milestone and generated from the source history when this site was built. There are no public releases yet; version numbers start with the first one.

489 commits, up to build f3a3c074.

The short version, newest first

Updates, licence, the guide, a PIN and a first real server

  • Updates The panel finds a signed release and updates itself, every night by default. It keeps the previous release and a copy of its database, and goes back by itself if the new one does not start. Every server and the Store modules follow. In our lab a site stayed up through whole updates.
  • Licence Releases and Store add-ons are served only to an installation with its own key and a licence in good standing. The installer asks for a licence key, and pressing Enter starts a free 14-day trial. Licence limits are now declared by the modules that count them.
  • The guide The assistant now walks a person from the first screen, in plain words, one step at a time, for goals such as putting a website online or setting up email. Without AI the same steps work as a checklist.
  • AI as a subscription RespireSoft AI is a subscription on the licence. When the licence includes it, the panel turns AI on by itself at the first start, with no provider account and no key to paste. Your own keys and models still work.
  • A PIN After signing in you can keep one browser signed in and come back with a short PIN. A stolen cookie alone gets nothing.
  • Add a server The Cluster page has an Add a server button that prepares a default install for more servers and gives you the command to run on the new one.
  • Permissions A deny on one resource now wins everywhere, in lists, details and actions, for administrators too. A walk of 56 attempts on a real server found this one hole, now closed.
  • A real server A first install on a rented server got real certificates for the panel, a site and mail, took in mail over TLS and answered DNS from the internet. It found three faults, all fixed: a system DNS stub on port 53, Postfix failing to reload on IPv6 servers, and a self-signed default mail certificate.
  • Plans before changes Every action declares what it returns, and every high-risk or critical change started by a person shows a plan first.

Wave 11: finishing everything

  • Directory passwords Protect a folder of a site, and everything below it, with a list of people and a password.
  • CDN images Image optimisation on each CDN edge, with signed addresses only.
  • Store Installing an add-on no longer blocks the Store while it runs.
  • Restores An account owner with no second factor can confirm a restore of their own data with the password, once, for five minutes.
  • Sign-on and databases Single sign-on with SAML, and a database tool that is off by default.

Milestone 11: Milestone 11

  • New Site A provider-style home page (hero, real screenshots, three steps, migration, comparison, FAQ), Cloud, Kubernetes, Load balancers and Providers pages marked 1.1 until they ship, pricing from one data file, and respirecloud.com as the main address f3a3c074
  • New Test lab Real-server showcase seeder and starter projects (static, PHP+MariaDB, PHP+PostgreSQL, WordPress, Node, Python, Docker app, cron, worker, mail, backups) with a live start page; the lab's test mail is well formed ee5541a1
  • Fixed Ai Tool data that describes the assistant's data fence (any nonce) or its note is defanged before wrapping, so the panel's own docs no longer stop a question as fence forgery (w11-149, found on the real test server) f808a9a4
  • Fixed Design system The mouse wheel over a table scrolls the page once the table is at its end; CLI changes show one toast per burst that counts up instead of one per change e2adbc8b
  • Fixed Release The customer-docs guard checks the allowed set instead of names (the security module's guide blocked every release build) d80bd6d6
  • Fixed Security Releases ship only customer docs to the assistant's corpus (module guides, install, updates, feature specs) — never the internal security notes, which every installation carried and indexed; a build with security or findings paths fails; an updated installation forgets removed documents (w11-145, found on the real test server) 22d04f9f
  • Fixed Ai,mail Tool results carry facts only (the hub's injection check rightly refused "Tell the user ..." inside a tool message); the hub's guardrail verdict is kept on safety events (codes only); DNS blocklist error answers (Spamhaus 127.255.255.25x) are no longer reported as listings 15eef0a7
  • New Panel Projects — one plain-language page for a hosting customer's work: starters, Messages (webmail inbox and compose, mailboxes, aliases, deliverability), domains and data, and Keep it stable (releases, workers, cron, stats, logs, TLS, backups, mail delivery, protection, updates); shown by permission 3558765b
  • Fixed General After the real-server re-test — every module, web package and the phone app at 1.0.0 (first stable version); RespireSoft AI works with the real hub (no consent push, per-locale model names, pinned aliases); booleans no longer redacted; Postfix restarts instead of a racy reload and listens on IPv6 where the server has it; Go back survives an automatic rollback; installer fixes (bus on 127.0.0.1, purge drops module roles, 10-minute start wait); the demo redeploy ends on a signed release (w11-138, w11-139, w11-140) 0230d9bf
  • New General Wave 11 finish — seamless updates (ADR 0019), licence-bound distribution (ADR 0020), the guide (ADR 0021), PIN and trusted browsers (ADR 0022), AI with the licence (ADR 0023), scoped denies enforced, the panel on 443, the phone app download and QR, the Store's add-ons, the product site rewrite and the batch fix after the final lab run (w11-116 to w11-137) d690986f
  • New General Wave 11 finished — the last build cards, one test phase, one batch fix, one re-test (the owner's rule of 2026-10-16) cef91f86
  • Fixed Pluginhost,web,ui W11-100 — a change that has started finishes when the person who asked goes away (web/103: closing the browser during a site creation cancelled the module's database writes and answered 500 while the agent finished the work unrecorded, leaving the site 'provisioning'); a mutating call keeps its caller's deadline but not its cancellation, a read still stops with its caller (both tested); creating a site runs as a job with named steps (lab: through the screen and the CLI on a loaded node, no 500, the site active); the 'you will be asked for your password' notice shows as soon as a restore dialog opens, in the backups and the containers kits. 9d3332a2
  • New Cdn,agent,catalog W11-98 — CDN image optimisation with imgproxy (pinned by digest, run on each edge through the panel's own container runtime, read-only, all capabilities dropped, signed URLs only, reachable only from the edge's nginx): w, h, fit, q and fmt (webp, avif, jpeg, png, auto from Accept), automatic WebP, originals untouched, invalid parameters 400, size / pixel / time caps 413 / 422 as administrator settings, resized images cached (a second request is a HIT) and purged with their original; large uncached files cached in 1 MB slices (a 200 MB object: the origin saw one request for the slice); the edge firewall for zone names over 36 characters through a short stable id. Each lab-proven with the real imgproxy. 7dbc8ca6
  • Fixed Store,webmail,web,panel W11-96 — batch fix 9, each lab-proven: installing a Store add-on no longer deadlocks the Store (store/010: the name resolver read the catalogue inside an install step while the install held the manager's lock; it now reads once when the job starts; a test that waited forever now passes; lab: an add-on installed and upgraded with named steps while the Store kept answering); the webmail calendar fits at 1440 px (webmail/101: the date picker was wider than its sidebar); internal settings never reach a site's Config tab (web/102); a direct visit to an add-on the licence does not cover says so, with the Store and the licence one click away; the database screens walked with real MariaDB and PostgreSQL (databases/005–010, no change needed). 70f5854d
  • New Auth,backups,dns,agent,install,jobs,panel,ui W11-97 + w11-99, merged together after one check cea0b63f
  • Fixed Backups,databases,containers,terminal,ai,importers,store,host,site W11-94 + w11-95 + w11-93, merged together after one check 6e311ed3
  • New Web,wafd,cdn,agent W11-92 — directory passwords and the firewall's last gaps: protect a path of a site with people and a realm (cPanel's Directory Privacy, AC-security-24): bcrypt hashes only, in files the web server reads and no other account can (lab: the other account and the site owner refused, www-data reads), an nginx auth_basic per path (a path and everything below it, longest wins), actions with dry runs and the Protection tab's card; lab: no or a wrong password 401, the right one 200 for static and PHP, the rest of the site open, protection kept through updates, reconcile, rollback, the firewall and the bot challenge; no clear password in the database, journal, logs or history. The uninspected requests during a firewall restart: one copy not bound yet and the other stopping let a request fall through to the backup; each copy is now listed twice (before 22 of 33,723 passed, after 0 of 32,628). The CDN edge's firewall runs as the same pair (stand-in proof: 11.5 % -> 0 of 16,388). 0a7d5a2f
  • New Editor,extensions,wasmext,cluster,dns,web,wafd,apps,install W11-57 + w11-58 + w11-91 + w11-64, merged together after one check c6f5eebd
  • New Backups,containers,accounts,importers,host,databases,dns W11-62 + w11-85 + w11-75, merged together after one check dbaa5592
  • Fixed Pluginhost,natsbus,core,files W11-90 — the panel stops answering after a long action (cluster/124, major): every module schedule held a pooled core database connection for its whole run while its own audit row waited for another, so on a loaded box overlapping scheduled runs took the whole pool and nothing recovered until a restart (lab evidence: 8 of 8 sessions idle on the schedule lock, a goroutine dump with 8 runs blocked in pgxpool.Acquire under writeAudit). Schedule locks now live on one dedicated session outside the pool; audit writers queue in the process instead of on pool connections; an agent op never outlives its caller's deadline and inherits the caller's time when it sets none (the lost write after op ok, and the fixed 60 s that cut installs mid-way); the files module's ssh key expiry no longer keeps rows open across host calls. Lab: a full web server install and a database engine install with 655 short reads alongside, median 2 ms, none failed; 219 scheduled runs ok. 74e25c9a
  • Fixed Web,core,software,webmail,logs,ssl,lab W11-84 — batch fix 5, what filling a server like a real one exposed, each proven in the lab: protection settings work on sites with a certificate (web/100: Block set through the screen on an HTTPS site, attack-shaped requests refused with the block page and searchable on Logs; web/005 Allow through the screen); the Websites list reads each certificate's real state (web/101: six sites Valid, counter 6); a reseller sees the administrator's plans by their visibility (core/101, saved through the plan editor); PHP versions the distribution's sources cannot provide are not offered, with the reason (software/100, partly: a second version on a distribution that has one is not proven); webmail sessions listed and closed by their owner, gone browsers dropped, the limit says what to do (webmail/100); the Logs page says when the log store is not answering and offers Set up logs; the lab authority validates DNS-01 through the lab resolver so a wildcard certificate issues (ssl/100). Filed: core/102 (no page for past jobs or old notices). bcc35345
  • New Apps,software,editor,containers,install W11-67 — the app builder without privileges: BuildKit in its rootless mode, no --privileged and no host user namespace, root in a build step an unprivileged uid of the node (lab, by hand on the node: uid_map 0->101000, a 1 GB step killed inside a 192 MB cap with the builder up), refused where the engine does not remap ids or the kernel forbids user namespaces (named), the installer's preflight warns; the privileged builder only behind the administrator's explicit risk switch, never a silent fallback; idle builders stop after 15 min and start on the next build; the server restart refuses against a live job and names it (tests); PHP Other directives shows a refused directive's reason next to the field; the editor's gallery tunnel refuses paths outside it, climbing paths and unserved methods at the gateway; the container runtime install gets its 20 min instead of the agent call's default 60 s. Not done -> w11-91: the deploy through the panel, the screens in a browser. cf38414d
  • Fixed Cluster,cdn,dns,accounts,web,mail,ui W11-87 — batch fix 6, several servers: the Cluster page no longer goes blank on an unusual record (pool answers never null, every tab guarded, the same guard in the CDN and DNS pages; cluster/120); Move to another server on an account, a site and a mailbox (servers that can take it and why the others cannot, the plan, a fresh sign-in check, a job with named steps; lab: an account and a site moved with a probe running, nothing lost; cluster/122) and the Moves tab's states; placement rules out a server without the web server and says why, account creation refused when no server can take it (cluster/123, lab-proven); Enable an edge picks a server (cdn/120); the confirm button's label (cluster/121); a secondary that does not answer says so (dns/120). Not done: the mailbox move with a mail client connected, the CDN walk. Found: cluster/124 (the panel stops answering after a long action; card w11-90). The panel's browser test harness closes its server's connections and has 60 s to shut down. cde28063
  • New Cdn,geoip,agent W11-89 — CDN rules at the edge: country allow / deny per zone from the country database, expanded to address blocks on the edge (lab: allowed and refused by country; with no database the controls say why); a rate limit per client address with a burst, answered 429 with Retry-After (lab); the web firewall at the edge through a second instance of the same firewall service, blocked requests on the zone's Security tab (lab: XSS and SQL injection refused, a normal request still a cache HIT, byte ranges through it); Brotli and gzip with a size minimum, zstd only where the distribution ships it and the Caching tab says so per edge; ranges on a 200 MB object. Image optimisation evaluated, not built (owner decision: imgproxy or a libvips service). 571130da
  • Fixed Ai,egress,api,agent,site W11-88 — batch fix 7, the security review's AI findings: the local model runtime fenced to the panel's own user (ai/162, lab-proven); local means the address really dialled, not the kind chosen (ai/160); a stream the client leaves is still metered (ai/161, lab-proven: 50 cut streams, counters exact); consent checked on every provider path with sent-log rows for the gateway, embeddings and knowledge answers (ai/168); every read carries a consent category, deny by default (ai/163); the redactor as a table of named patterns with hosting's real secret shapes (ai/165); a Team member sees only their own sent rows (ai/164); forwarded addresses believed only from the panel's proxy (ai/169); untrusted marks survive into the next turn and labels are fenced (ai/166, ai/167); tool errors and previews fenced, approve and undo re-check the deny rules and kill switch, the gateway forwards only known fields. docs/security/ai.md and three sentences of the AI page follow. 4a401bc6
  • Fixed Auth,apps,web,files,mail,software W11-83 — batch fix 4, the security review's findings: "this was not me" inside the panel needs the person's own browser session, never an API token (auth/140); a container build's Dockerfile is held inside the release, links included (apps/140); each account's web log folder is closed to other accounts and corrected at agent start (lab-proven from another customer's shell); folder share links refuse dot files by name unless the link includes hidden files (files/140); the mail antivirus socket is 660 with the spam filter in its group (mail/150); the php.ini deny-list completed and the decision written down (software/140); an OIDC test sign-on needs the provider's owner and never signs anyone in (auth/141). Not changed: archive extraction as root (GNU tar's defaults hold; needs a cluster lab). Lab-proven: the web logs only 0897116e
  • New Databases W11-61 — the database tool (Adminer 6.1.1, pinned by checksum and verified before every start), built and OFF by default: one process per account as the account's own user in its slice with no network, reachable only through a root-owned socket and the editor's isolated origin and single-use ticket, an ephemeral database login with the chosen user's rights only; isolation of the running tool proven in a lab (user, slice, namespace, socket, refusals); a real sign-in against MariaDB and PostgreSQL NOT proven (the lab had no engine), so the setting stays off until w11-85 b3f2d0f7
  • Fixed Auth,ssl,sizing,install,lab W11-77 — batch fix 3: the single sign-on provider's Remove shows a plan and removes (it relied on a browser confirm box); a provider on a private address can be allowed by an administrator — one host and port, through the egress guard, never link-local or cloud-metadata addresses —, a provider whose test failed is not offered on the sign-in page, plain http refused, the server's own pages get the panel's look; the installer always sets a default certificate authority for customer certificates and labs pass their own, and screens that depend on a certificate show its real state instead of On; the recommended sizing profile takes what is in use into account and a profile that would stop webmail or the spam filter names who is affected and asks again; small texts. Not attempted: webmail/060; a sign-in through the provider to the end is covered by tests only c3d3bb9e
  • New Lab,site W11-71 — a showcase install: lab/tools/showcase-seed.sh fills a lab like a small hosting business through public actions only (services, a reseller with its brand and five customers, six sites with content and certificates, eleven mailboxes with real threads, a calendar and contacts, backups with a restore, traffic, the assistant on the lab's stand-in model with a plan waiting, a Store with an update), idempotent (second run 33 s, nothing changed); site/scripts/panel-shots.mjs photographs it (92 files). Bugs found by seeding: web/100 (protection settings rejected on any site with a certificate), web/101, core/101, software/100, webmail/100, ssl/100. Left out: one PHP version only, no wildcard certificate, the webmail, assistant-conversation, detail, Store and Logs photographs a2bffa78
  • Fixed Core,auth,accounts W11-73 — "Sign in as this customer" acts as the account's own person, resolved on the server (the dialog sent the account's creator: a reseller's client opened as the reseller); password reset counts every request against its client and accepts the email field (a body naming the address "email" arrived empty and was never counted, refused or answered with mail); one audit verdict for the page and the CLI (intact / gaps / broken), an open incident shown with its missing ids; the tampering alert email proven in a lab and the notice says when it could not be emailed; a terminate plan that says what is kept; no "Write to ." without a support address; store job steps name the add-on. Sign-in throttling did not share the reset fault 99cf2aff
  • New Site W11-76 — the product site, finishing: every "coming" line checked against STATUS (the security page, DNS, mail, apps, CDN, the API and reseller guides), five feature areas of their own (single sign-on, white label, sizing, whole-server recovery, the mobile app), the home page lays out below-the-fold sections lazily (mobile blocking time 420 / 200 / 630 ms before, 200 / 50 / 0 ms after, three runs each on a busy machine), application screenshots in the structured data, the admin, reseller and user guides follow today's navigation 771d9c62
  • New Dns,security W11-66 — a zone transfer needs the key AND a listed address: transfers move to their own port answered by a second name-server process that checks the key, opened by the firewall module only to the secondaries' addresses (lab: the right key from an unlisted address times out, the listed one transfers, port 53 refuses both); a secondary's address moves in one action; this server as a secondary of an outside primary proven (a wrong key shows refused, not an empty zone; edits refused with the reason); promote a secondary with a plan, the old primary fenced until it follows (lab: primary stopped, promoted, edited, old primary came back as a secondary). Also fixed: the firewall rules for file transfer were never opened by their event. Not built: the screens for all of this; unit tests for promote and set_address a78490b2
  • New Site W11-74 — the product site's second half: moved addresses answer 301 (/features/assistant/ to /ai/), the download page and install guide follow the real installer (Simple and Advanced, footprints, nine distributions, unattended, upgrade, uninstall; tables read from docs/install.md), pricing checked against the licence code, comparison pages for cPanel and Plesk with every outside fact read on the vendor's own page on 12 October 2026 and cited, a tour of twelve steps on today's panel. Left: areas of their own, application screenshots in the structured data, the home page's blocking time, the guides 860c1b6c
  • Fixed Design system W11-65 — phone widths: a 390 px check that sees inner panes (every route and tab of every role: 26 views with something past the screen edge before, 0 of 393 after), fixed in the shared pieces (grid items shrink with their track, card headers keep their buttons on screen, tables stop cutting cells and titles on phones, declared sideways scrollers); security/013 the Protection page, ssl/011, web/009, ui/008, mail/016 and mail/015 (every CLI group lists its commands). Not fixed: a refusal inside the mail job (mail/015 step 4), tight pills on Protection at 390 px 0d4173a7
  • New Site W11-70 — the product site true to today and findable: one page registry behind every head (titles, descriptions, canonical, the full Open Graph and Twitter sets), one linked JSON-LD graph per page, a sitemap with dates and images, an Atom feed, a manifest, llms.txt, a social card per page and a check that fails the build; AI as a headline (/ai/: 24 built-in jobs, plan and approve, your own model key, several providers with a model per job and a fallback order, a model on your own server with its limit stated) and as the home page's second section; every feature area moved from coming to built with its limits, new areas for apps, CDN, several servers, migrations and integrations; new panel screenshots. Left: comparison pages, the installer and download pages, the tour 8e340f49
  • New Cdn W11-55 — the CDN's screens for what w11-26 built: a certificate state per custom host name (waiting for DNS, being ordered, active with its renewal date, failed with the reason) with Order again, private / public bucket origins, delete now or mark stale, purge when a site deploys (lab-proven: HIT, change, purge, MISS), edge logs under the customer's own account without query strings; two w11-26 faults the lab exposed fixed (deploy events arrived empty, a certificate never counted as covering its host names). Not built: rules at the edge, image optimisation; app-deploy purge unit-tested only b5e0a7c3
  • Fixed Licence W11-72 — no false "licence check overdue": the check-in loop follows the licence's own refresh window (a quarter of it early, every minute once overdue) instead of retrying only every quarter of the 24 h period; a licence that asks for a refresh after an hour was in grace five hours out of six while its service answered (seen on the demo) 52f8be36
  • New Mail W11-60 — app-password sign-ins carry the real client address (believed only from the panel's own proxy; forgery refused in a lab), so bans hit the offender, and last use is recorded for contacts and calendar; sender reputation (reverse name, blocklists) in the mail set-up check with a score per domain. Not done: parts 3-6 of the card, browser walks, a RHEL-family node 5623d3dd
  • New Sign-in W11-63 — SAML single sign-on: signed responses validated against the pinned provider certificate (subject and attributes read only from the verified element), redirect request and POST response, metadata import and download, certificate rollover, a Test sign-on, the SAML form on the single sign-on screen; 24 attack replays refused in a lab (the replay of a valid response by unit test only). Not built: encrypted assertions, signed requests, single logout 861d376b
  • New Software,apps,editor,extensions W11-30 + w11-56 — free-form php.ini directives with an administrator-only list, a server restart with a plan, the OS package list cached, workspace trust as an editor policy, dry runs for panel extensions; app image builds run inside the account's own limits (proven in a lab: slice, memory cap with a plain out-of-memory message, CPU throttling, a cache per account); the editor reaches the policy-enforcing extension gallery through its own origin (search proven in the real editor; install from the view and a denial by id not re-proven) c57ad4b8
  • New DNS W11-59 — secondary name servers: a transfer key per pair kept in the vault, a change reaches the secondary within seconds, a transfer without the key or with a wrong one is refused, per-zone state (in step / behind / down with the lag) that recovers when a secondary returns, a Secondaries tab and a Name servers page e5dd738a
  • Fixed Test lab A pinned lab upgraded in place stays offline for the country database unless GEO_OFFLINE=0 c0912a48
  • New Security W11-50 — the per-site firewall proven on AlmaLinux 10 with its events in the Logs page under the site's account, an offline country database for sign-in alerts (new country and impossible travel now fire; licence and status on a Licences page), an off-server copy of every audit checkpoint by syslog or signed webhook with a screen to compare a copy against the log 7b851b20
  • New General W11-49 — import archives uploaded in the wizard (resumable, checksum shown, removed afterwards, hostile archives refused), plans say who may be given them and which modules they include with the host refusing what a plan leaves out, WHMCS / Blesta / HostBill modules as checksummed downloads with an end-to-end connector test, the recovery scripts placed on the server by the installer 43fe6602
  • New Mail W11-48 — a guard in front of the contacts-and-calendar service (repeat rules that never end or cost minutes are refused in milliseconds, body and rate limits, its own resource slice), the service on the standard HTTPS port with a real certificate and nothing else exposed, app passwords for phones that the webmail's own sign-in refuses; a renewed certificate for a panel host name is now actually served f7752d55
  • New Cdn W11-26 — certificates for custom hostnames issued at the edge and renewed on every edge, soft purge with stale-while-revalidate, purge on deploy, private bucket origins signed by the edge, customer API examples run for real; ssl renewals started by a person now reach the other servers 2dbcd916
  • New Backups W11-46 — whole-server recovery run for real: a server with sites, MariaDB and PostgreSQL data, a mailbox, DNS, a certificate, people and vault secrets was backed up, destroyed and rebuilt on a blank node from the backup and the recovery bundle in 312 s, every item verified identical; eleven faults in the scripts and document fixed (the customer PostgreSQL restore would have dropped the panel's own database, module schemas got the wrong owner, services were not installed, file owners by name, the relay login file, S3 credentials in the bundle, a hung first backup); what does not come back is listed; wrong passphrase, missing bundle, newer backup and a node with accounts are refused plainly; the PostgreSQL backup / console / maintenance paths proven; a restore compares row counts per table and cleans up; the backup screens walked 670ddd3c
  • New Webmail W11-36 — a calendar that syncs with a phone: month / week / day / agenda, time zones per event, repeating events with this / following / all edits, reminders as one bell notice, CalDAV proven both ways, invitations end to end (accept sends the standard reply, updates and cancellations apply only from the organiser), .ics import and export; hostile invitations and repeat bombs are bounded (expander limits, nothing fetched, text only); 32 isolation attempts refused; the mail gateway now holds one session per mailbox per panel session (three tabs: 2 connections, was 6) with a budget and parked idle connections 9d02b674
  • New Importers W11-28 — live transfer from another server: connect over SSH (credentials in the vault, the host key pinned and confirmed, outbound only through the egress guard), discover its accounts, a plan per account, a first copy while the source stays live, a final incremental pass and a per-domain DNS checklist; everything from the source is treated as hostile (escaping links, device files and setuid bits dropped, a dump loaded as the account's own database user); a changed host key stops the transfer; nothing on the source is changed. Lab-proven from a plain Linux server; cPanel / Plesk / DirectAdmin discovery against fixtures only d5159851
  • New Sizing,core,dns W11-29 — sizing is applied, not only recorded: web, database, cache and mail tune actions take the profile's numbers through each module's managed files with validation, a health check and rollback, keep values an administrator pinned, and are applied from the Sizing screen with a before / after plan (a 1 GB and a 4 GB lab node now run different nginx, MariaDB and PHP settings); an account's memory and CPU slice follow its plan and creating one warns when the plan oversells; modules can be switched on and off at runtime through the normal load and verification path (dependents refuse, data stays, no supervisor restart); panel hosts can front an allow-listed local service; a per-zone DNS record limit; replace-mode import order. Not built: DNS secondaries with TSIG ae65a124
  • New Containers,terminal,storage W11-47 — a recorded shell inside a container of your own stack (a fixed unprivileged docker exec built by the agent, a grant per stack, never another account's container or a server shell) and bounded live logs with search (escape sequences neutralised); the terminal survives a reload or a dropped connection for five minutes (only the same panel session can re-attach, signing out ends it at once), per-person snippets (inserted, never run) and settings; buckets list folders, access plans say in plain words what becomes public (private / one folder / everything, no raw JSON), lifecycle rules with a preview; stack names beginning app- are reserved. Adminer is not built 15229b26
  • New Mail W11-45 — deliverability: a mailbox that suddenly sends a flood is held (queued, never bounced; owner and administrator told once; release or discard with a plan; a bursts-allowed switch) with per-hour and per-day limits enforced; DMARC aggregate reports received, parsed as hostile input (size and expansion caps, no entities, nothing fetched, stored only for hosted domains) and shown per domain with plain findings and DNS fixes to approve; reverse-name and blocklist checks through the egress guard (public addresses only, cached, switchable) with a daily notice. Lab-proven: a 70-message flood held within a minute, 12 held messages delivered intact after release, a decompression bomb and a foreign report refused 86af1b51
  • New Ai W11-44 — local models: an administrator enables a model runtime on the server (a container on loopback only, its own network, no capabilities, limits from the sizing profile; enable / start / stop / remove as jobs), pulls models from an allow-list with the size confirmed first and a fit check against memory and disk, and uses them as a provider that needs no consent; air-gapped mode is enforced in the egress layer (a request to a remote provider fails before any connection opens); a Local models screen. Isolation proven from another container and from a customer's own stack. Proven with a stub standing in for the runtime's API — the first run on real hardware has a checklist in modules/ai/docs.md 5624ea74
  • New Sign-in W11-25 — single sign-on with OIDC (authorisation code + PKCE; discovery, keys and token endpoint through the egress guard; state and nonce bound to the browser and single-use; full ID-token validation with an algorithm allow-list; a person is found by provider + subject, never by email; just-in-time creation only by policy with a mapping whose default is no access; an administrator role never from a claim without an explicit switch; the panel's own second factor still applies unless the provider's is trusted by policy; administrators always keep a local way in), login-anomaly alerts (new device, failure burst, country / travel through a hook) with a this-was-not-me action that ends every session, a cookie-only session read so the SPA keeps the CSRF token in memory; 14 attack tests against a lab identity provider. SAML is not built 247512e6
  • New Backups,databases W11-27 — scheduled dumps per database and restore to a new database by default (plan, named steps, table count checked), one-mailbox backup and restore into a Restored folder through the mail stack's own tools, a query console (read-only by default, 500 rows / 15 s, never a superuser, a write needs a switch and a plan and is audited) and maintenance actions, Backups / Query / Maintenance tabs; whole-server recovery scripts and docs/disaster-recovery.md WRITTEN but never run (the vault key stays out of the repository, in a passphrase-protected recovery bundle); the Sharing page no longer asks for a folder that may not exist. Lab-proven through the CLI on MariaDB; screens not yet walked e833e61d
  • Fixed Ui,store W11-43 — a Store rollback shows a plan first (which version returns, that data written since is lost) and runs as a titled high-risk job (store/005); a job keeps its own title when saved and the dialog lists every step; the Home search finds every example its placeholder shows (cron, php.ini, mx …) with a test; breadcrumbs on every page; a Team member's role reads Team member; Templates opens without an account; Versions says Not installed; module states on Store and Versions; the webmail reflows when the assistant narrows the page, a reply draft renders as a card, the mailbox's own refusal is shown; the lab helper keeps its session after a step-up; the 390 px dark smoke for five people e203b0ce
  • Fixed Files,web,ssl,databases W11-41 — findings of walk w11-38: FTP users can overwrite a file (files/003); the FTP ban is by address only, never by user name or successful logins (files/004); one Allow on a blocked request covers every rule it matched, never the score rule (web/005); the account's security score reads the websites' protection (security/012); an Install button with a plan and named steps on the Engines tab, and messages that know who reads them (databases/003); a certificate order that issues nothing ends failed with the authority's reason (ssl/010); nine minor and cosmetic fixes (File transfer switches, real example folders, SSH not installed said up front, plain plans, a page for a refused visitor) 27feb798
  • Fixed Core W11-42 — the audit anchor no longer forgets: the root agent accepts a checkpoint only when it extends the previous one (it recomputes every hash link from the last checkpoint and requires the row count to grow by exactly those rows), a failed checkpoint opens an integrity incident that persists across restarts and later checkpoints until an administrator acknowledges it with step-up and a reason (the acknowledgement becomes part of the chain), verification lists every missing id, one bell notice and an email at once, a standing banner on the Audit page, the watch runs every minute (core/014: a deletion was forgotten after one minute); the Team picker pages through every list (core/015); a Sign in as this customer action for staff (core/012); plain invitation and reset messages; empty per-account folders removed on termination; the CLI lists a group's commands, suggests the closest command and parses false edcd8ca0
  • New Mail W11-23 — the Mail server screen shows and edits what was command-line only (relay with a test, spam filter and antivirus, the default DKIM selector, the contacts and calendar service switch, module states), each change with its plan; app passwords for a mailbox (generated by the server, shown once, stored hashed, labelled, individually revocable — revoking ends open sessions; accepted by IMAP and submission on Dovecot 2.4, lab-proven; 2.3 rendered and unit-tested) 49e27165
  • Fixed Ai,web,logs W11-34 — the assistant and the AI services walked end to end in a lab, with eight fixes: site-health notices were refused silently (the notice schema lacked the level field), a site with a certificate from the ssl module reported none (an expired one is now named), a down site is no longer counted as running, the server-data refresh was refused every five minutes, AI services fit a phone, site logs are rotated; site logs proven per customer with secrets masked and a per-site filter; every assistant entry point passes against seeded failures (21 entries), incl. deploy, file, terminal and webmail summary / draft; customer AI services proven (key limits answer 429, PDF / DOCX uploads, vector collections, isolation); a PostgreSQL slow-statement reader; GPU detection and the model fit list for local models (the runtime itself is not built) 32efa6e3
  • New Core W11-40 — a crashed module is restarted by the host (seen within half a second, full verification on every restart, backoff with a cap, its call tokens revoked, a call during the gap answers a plain retryable error and a mutating call that was in flight answers 'unknown outcome', jobs end failed with the reason, one notice per episode; a module that keeps failing is left failed while the panel works); a root-only local command resets the sign-in factors of a locked-out person (never reachable over the network, sessions ended, enrolment forced, audited); node down / recovered events; a cancelled job keeps its last lines; a plain message at the mail connection limit 4d7daad5
  • New Webmail W11-35 — the webmail's new features walked in a mail lab (conversations and search across folders, scheduled send with every session closed, snooze, rule save) and fixed: an undo-send hold is now written down and survives a crash or restart, a refused scheduled send raises a notice and shows the server's reason; contacts that sync with a phone — a DAV service installed through the agent (off until enabled), signed in against the mail stack with the mailbox's own password, each mailbox confined to its own data (16 isolation attempts refused), a Contacts screen with groups and vCard import / export, recipient autocomplete d47a45af
  • New Installer W11-15 — installer round two: every supported system installed for real (Ubuntu 22.04 / 24.04, Debian 12 / 13, AlmaLinux 9 / 10, Rocky 9 / 10: install, re-run, dry run, uninstall, purge, Advanced with mail + DNS + both databases and the 12-step acceptance flow, taken port, Compact); Standard on 2 GB and Full on 4 GB with antivirus (a test virus refused); a download is fetched and verified before anything is installed and an older signed release is refused; the administrator's email reaches first-run setup; antivirus on RHEL-family systems; a default backup target with the first account; ten install bugs fixed (a customer PostgreSQL stopping the panel's own database on older systems, antivirus never starting on Debian / Ubuntu, Advanced mode dying after the last question, …); 154 harness checks da7502b5
  • New Files W11-22 — share links (hashed 256-bit token, expiry, password with lockout, download limit, instant revocation, served as attachments through the confined file service), file versions inside the account with retention and restore, FTP(S) users (its own service, off by default, TLS required, each user jailed to one folder, own password, optional read-only, ban after repeated failures), WebDAV at /dav/ over the confined file service, an SSH server settings screen with review and automatic rollback, a plain precondition when SSH is not installed, image and text previews, hourly upkeep. Lab-proven through the API incl. every escape attempt; the two new screens not yet seen in a browser 919f0742
  • New Webmail W11-24 — search and conversations across all folders with operators people know (a reply in Sent joins the mail it answers), scheduled send held on the server with a Scheduled view (edit, cancel, explicit time zone), snooze that returns the message unread at the top, rule save keeps other active scripts. Unit-tested; not yet walked in a lab. Contacts and calendar (Radicale behind the mail stack's own sign-in) are designed, not built 5b08520c
  • New Ai,web,logs W11-33 — a site's own web and PHP logs are shipped to the log store under its account, so the Logs page and the 502 helper read the real error line; site health reflects the runtime (PHP pool, upstream, certificate expiry) with a plain reason and one notice per change, without flapping; customer AI services get their screens (per-key limits, activity and code snippets), knowledge-base uploads of PDF and DOCX with status and retry, and vector collections with a REST API; scripted reasoning for four more assistant jobs. Unit-tested; not yet walked in a lab fcfbfa0f
  • New Cluster,databases W11-20 — database replication between servers for MariaDB and PostgreSQL: set up with a plan and a job (replication user in the vault, base copy, streaming over TLS between the two cluster addresses), status with lag and plain errors, planned and emergency promote with fencing (the old primary goes read-only, the replica catches up, then the old primary is stopped and masked; a promote that cannot confirm the fence is refused unless the risk is accepted), rebuild of the old primary as the new replica; honest limits shown in the product (asynchronous, one replica per engine, no automatic failover) 41f8f4b1
  • New Ai W11-32 — AI depth, second half: lab fixtures seed real failures (full disk, failed backup, a bounce with its reverse-DNS reply, a stopped PHP pool, a failed certificate, drift, a slow query, missing SPF) and every reachable assistant entry point was walked against them; a remote provider receives nothing until its consent step is saved, and a refused category is proven end to end; per-key gateway limits (requests per minute, tokens per day, spend per month) answer 429 with Retry-After; the 502 helper is always offered; mail jobs can resolve the domain; a question-only request is now written to the data-sent log e6a8b2e8
  • New Web,security W11-21 — per-site protection: a web application firewall (Coraza with the OWASP Core Rule Set, compiled into the agent and run as its own unprivileged service; off / detect / block, paranoia levels, exceptions proposed from a blocked request, a kill switch, fail-open by default, validate -> apply -> health check -> rollback), rate-limit presets, security-header presets with a preview, a proof-of-work bot challenge, hotlink protection; the security score counts the firewall mode, the TLS grade and headers with a plain reason each 46884cc4
  • Fixed Gate Web unit tests are part of the merge gate; the module CSS isolation test builds its own fixtures (they sat under an ignored dist/ and never reached a fresh checkout, so the test was red on main) 8abeaadc
  • Fixed Shell W11-13 — shell and design-system traps: the shell's first load is 186 KB (was 199.7 of 200) with sign-in, step-up and toasts loaded on demand; inline editors survive a refetch; a module bundle that ships CSS outside its own scope fails its build (all 31 pass); non-searchable dropdowns work from the keyboard; the open assistant pushes the page aside on wide screens, is resizable, and toasts no longer cover it; the job dialog shows why a job cannot be cancelled; Store install / upgrade / rollback are jobs with named steps; webmail images are fetched through the egress guard and inlined; breadcrumbs use the new categories; a compact Home for people with few tools fa3ffe9c
  • New Ai W11-18 — AI depth, first half: webmail thread summary and reply draft behind a per-mailbox switch (a draft only fills the reply box), a slow-query list with Explain this query, this server's configs and logs in answers (collected from an allow-list, redacted before indexing, owned per account, re-scanned on retrieval), consent per provider and data category enforced before anything enters a prompt, a data-sent log, air-gapped mode, an admin overview with the safety dashboard, dry runs on provider / policy / kill switch; a quoted SPF prefix now replaces instead of doubling; GPU detection and the model fit check for local models 670ce3d5
  • Fixed Cluster,mail W11-19 — findings of the cluster walk: at a mail cutover the old server closes every open mail session and refuses sign-ins before the final pass (an open IMAP session lost 133 of 210 changes; now 0 of 172); a cutover that fails lifts the freeze at once and pauses with a plain reason (mail sat queued 13 minutes behind 'internal error'); a floating address leaves a load balancer whose HAProxy died whatever the preempt setting (91 % of probes failed; now back in ~1.5 s); deliveries after a freeze are paced; cross-distro moves ignore the target's skeleton files; a stopped server is shown offline after three missed heartbeats and refused as a move target; mail.names.repair validates its account id 1d0ff8ba
  • New Store W11-17 — the Store is never empty and never looks broken: a built-in catalogue generated from the release (29 modules, 3 add-ons, 31 starter app templates, 16 editor packs), three calm connection states with the saved catalogue's age, one action feeding the Store, Licence, Versions and Apps template pages; a panel with a saved Store root but no Store address starts normally; a dead Store address no longer stalls pages; lab/tools/store-seed.sh gives a running lab (or the demo) a Store with sample add-ons e5d9a18f
  • New Jobs W11-12 — long actions run as jobs with named steps, a title that names the object and cancel where stopping is safe: database export / import, certificate orders (each ACME phase), importers analyze / run / rollback, app detect and deploy (cancel now stops the container stack apply), image pulls, editor extensions, config resets; a job at a step that must not be interrupted refuses cancel with the reason; two load-sensitive tests hardened 61add459
  • New Ai W11-16 — the assistant is one feature in everything: every screen provides typed context (shown as removable chips), an AskAssistant entry point sits where the problem is on 17 screens plus Home (explain this error, check this configuration, set up a service's DNS records, review security …), 22 built-in jobs as reviewable data, answers end in a plan the person approves; text from the screen is fenced, redacted and can never become a step; no-provider and disabled states; history with search, export and delete; a lab stub provider f0b9e0b7
  • New Licence,release W11-10 — edition limits are enforced (accounts, resellers, nodes, CDN edges) with a plain refusal naming the limit, the use and the edition that lifts it; expiry and downgrade stop new things and never existing ones; licensing events reach webhooks and the audit log; scripts/release.sh builds a signed release (keys embedded from files, modules signed, a signed manifest) with --test-keys for labs; the installer verifies the manifest's signature, size and checksum before installing a download; Store install/upgrade have a dry run; snapshots cover views and functions and refuse what they cannot roll back fc24e83c
  • New Auth,branding W11-11 — outgoing mail works from day one: a real default sender (never @localhost), a Sending email page (this server / a relay / not set up) with a test email that reports the real answer; a failed panel email raises one admin notice per cause and the screen offers the link to copy; password reset by email (single-use hashed token, 30 min, rate limits, no account enumeration, sessions ended, second factor still required); quota-warning emails at 80 % and 100 %; a Team member manages their own sign-in security ef16f145
  • New Install,mail,ssl W11-14 — what the installer needed from the modules: mail relay / spam filter / antivirus / DKIM selector as actions (relay password in the secret store, antivirus refused below 3.6 GB with the number); install jobs report named steps and progress; a panel or mail certificate order that issues nothing fails with the CA's reason and can be retried, and the installer adds the CA (the panel's HTTPS came up empty before); store.channel.set scope; a default backup target action; installer and docs use them (112 harness checks) 7466230a
  • New Cluster,mail W11-09 — mail moves with the account: mailboxes, Sieve, DKIM keys, aliases, forwarders, autoresponders and quotas follow an account move over the existing node-to-node stream (copy while mail flows, a verified final pass during a short freeze, the old server relays afterwards); resumable, abortable, move back works; mail.names.repair for accounts moved earlier; Dovecot 2.4 keeps adopted overrides. Lab: 1615 messages sent through two moves, 1615 delivered 5fb9f68a
  • New Shell W11-01 — Home and navigation redesigned: every tool in an illustrated category (tinted icon chips, one-line descriptions), search across all tools, a pinned dock with reorder, recently used, a sidebar of foldable categories with a rail, the Configuration hub, pin toggles on tiles, sidebar entries, page headers and in Ctrl/Ctrl K; pins stored per person through core.prefs with a localStorage fallback; design spec docs/design/navigation-home.md f23f3ceb
  • New Core W11-08 — the audit chain hashes canonical JSON (scheme per row, old rows keep verifying) and is anchored by signed checkpoints the root agent keeps: deleting or re-chaining the newest rows fails core.audit.verify; Host.DeleteSecret; the impersonated person gets a notice and an audit row, impersonation id in its own column; webmail sessions end with the panel session; accounts.deleting is a synchronous step (containers removes stacks there); duplicate username proven 409 a9f563dc
  • New Installer W11-03 — a real installer: preflight, Simple and Advanced modes, Compact / Standard / Full / Custom footprints, answers file and flags for unattended installs, plan + dry run, the panel's own PostgreSQL and Valkey, services installed through the panel's own actions, upgrade in place, uninstall; docs/install.md; bash test harness (102 checks); lab modes PANEL_DB=local and INSTALL=none. Proven on ubuntu2604 (all scenarios), debian13 and alma10 (install, compact, re-run) 8c1d414a
  • Fixed Team W11-07 — a Team member's lists apply the grant in the query before the page limit (web, dns, mail, domains, ssl, cdn, databases, storage, containers, apps) through one SDK helper; cursors and totals count only what the member may see; a regression test per module 82db4f2a
  • New Nav W11-02 — every menu entry has a category, a description and search keywords (contract in docs/tasks/w11/navigation-contract.md); the five config pages form one hub; core.prefs.get|set stores per-person preferences (pins), read-only while impersonating; a core-only no_audit flag for low-risk preference writes cf9b94bd
132 planning, documentation and housekeeping changes
  • Release 1.0.1 is cut (tag v1.0.1); development continues as 1.0.2 99e82158
  • Test lab The demo follows the stable channel since 1.0.0 7c0b3017
  • Test lab Demo-publish takes VERSION and RELEASE_CHANNEL, so the demo can get a stable release 210f04d1
  • Release 1.0.0 is cut (tag v1.0.0); development continues as 1.0.1, so its builds sort after the stable release c2fd63a1
  • Site The deploy keeps the hand-placed APK in download/ 8f2d27dc
  • General Wave 11 finished (cef91f86) and seamless updates designed (ADR 0019, cards w11-116 to w11-119) 7f3b21a2
  • General The re-check of the final batch fix 5eaba9c8
  • General The final batch fix — w11-113 (DNS, cluster, CDN, certificates, Store, AI and the failing Go test) and w11-114 (step-up dead ends, plans, databases, the shell) 5a28aea5
  • General The one re-test — w11-110 (one server, every fix), w11-111 (several servers), w11-112 (what the test phase did not reach) 879914af
  • General The one batch fix after the test phase — w11-107 (cluster, DNS, CDN), w11-108 (sites, mail, data), w11-109 (shell, apps, security, Store, the suites' findings) d945fcad
  • General The one test phase, written ahead — w11-104 (one server, every role, everything not yet walked) and w11-105 (several servers) bbe8cb08
  • General The owner's rule — build everything first, test once at the end (no labs, walks or test runs per card); wave paused with w11-101 and w11-102 saved on their branches 3bb73f58
  • General Status — w11-100 merged; w11-31 split into w11-102 (result schemas for the 160 actions without) and w11-103 (a plan before every high-risk change) bec6a306
  • General Status — w11-96 and w11-98 merged; card w11-101 "RespireSoft AI", the central hub as an opt-in provider (owner: RespireCloud is in v1 of the hub) 69a2c2f8
  • General Remove em dash from the accounts module summary 35b3ca59
  • General Status — w11-97 and w11-99 merged; card w11-100 (creating a site answers 500 while the work goes on; the password notices) 6bbb1f27
  • General Status — w11-94, w11-95 and w11-93 merged; the product decisions made (owner: "do your best"; his own call: restore your own data with your password); cards w11-96 to w11-99 89e0e0e7
  • Wasmext The adversarial cases run with the host's largest time limit; only the infinite-loop case keeps the evil extension's 500 ms (kv_quota came back empty under load in four agents' runs) 88229d95
  • General Status — w11-92 merged (directory passwords), the stopped cards resumed; a firewall decision for the owner. Ignore module binaries built in place e743d280
  • General Status — wave 11 paused by the owner; w11-92 checked and ready to merge; w11-93, w11-94, w11-95 stopped with their work saved on their branches 95dda7e0
  • General QA w11-53 merged; batch fix cards w11-94 (backups, databases) and w11-95 (containers, terminal, local models, importers, Store, plain limit messages) 2e382698
  • Bugs W11-53 — QA walk of data services, containers, local models, moving from another server and the Store by role: 15 bug files (1 major: a whole-account backup reports success while a container stack's volume is left out, backups/009), 16 screenshots and docs/bugs/w11-53-summary.md (walked / not per item, the three first-time-customer trip points). 707f273c
  • General Status — w11-82 merged in part; card w11-93 for the photographs and the site ff642133
  • General Lab,site: w11-82 (part) — the showcase seed runs end to end on a 2 GiB lab node (services, people, sites, mail with calendar and contacts, activity, assistant; the 1 GB stalls were memory) and signs in again when its admin session expires; the Store seed's trust anchor readable by the panel; site/scripts/panel-shots.mjs takes a table of about 45 screens (who, path, steps, what must be visible before the shutter), fails naming the screen, and retakes one with --only; four photographs (the assistant's plan waiting and done, Files with real content). Left for the next card: the other photographs, every light and phone variant, and the product site using them. 3e5d5f27
  • General Status — w11-57, w11-58, w11-91 and w11-64 merged; card w11-92 directory passwords and the firewall's last gaps; owner decisions from them 60f3bfb5
  • Coremod Two audit tests prove their behaviour without a stopwatch (they failed on a loaded machine; three agents and one merge saw them) 5bf671e5
  • Tests Wait for the test Postgres over TCP, up to 2 min (a socket check passed during initdb's temporary server; w11-85); docs: status — w11-62, w11-85 and w11-75 merged, the owner decisions from them ae98dc12
  • General The web server install gets 30 min (a loaded node took 13+ min; w11-90); docs: status — w11-84 and w11-90 merged, owner decisions from them; their leftovers in the backlog 5bee62e8
  • General Status — w11-67 merged (the app builder without privileges); two owner decisions from it 65948d29
  • General Status — w11-87 merged (several servers), w11-90 and w11-75 in flight; card w11-91 for the walks three cards could not finish 9bb05aa6
  • General Card w11-90 — the panel stops answering after a long action (cluster/124) 6b6d8908
  • General Status — w11-89 merged (CDN rules at the edge); two owner decisions (CDN images, central AI) 1577599d
  • General Revert the web-files fingerprint: the web check is recorded against the whole tree again 41ccc5c5
  • Gates The web check is recorded against a fingerprint of the web files, not the whole tree (a Go-only fix after the type-check no longer needs a second run) 4d1ce232
  • General Status — w11-88 merged (the AI findings), w11-89 and w11-67 in flight; w11-88's leftovers in the backlog 837cb131
  • Tests The throwaway test Postgres runs without fsync (the merge gate and test-all.sh) 7dd4b8a6
  • Gates The merge's Go tests run four packages at a time with a 25 min limit (five packages passed the default 10 min on a loaded box) 1be1c5f0
  • General Status — wave 11 picked up again (four cards in flight, the queue in order); card w11-89 CDN rules at the edge and images; agent rules follow the owner's type-check and data-disk rules 724a88e1
  • Gates Type-checks and JS tests leave the merge script and the agents' gates (owner's rule: each run needs his OK); Vitest capped at 2 workers; logs and temp files on the /data disk 85a86b34
  • General AI inventory for the central nerix hub (phase 1) — what calls a model, with what data and whose key; no RespireSoft key is used, the demo has no provider 4efcca64
  • Tasks W11-88 batch fix 7 — the assistant and customer AI: what the security review found 8c0d9676
  • Security W11-86 — the review's third pass, the assistant and customer AI first: the core holds (tools are only the caller's own actions, nothing changes without an approval bound to exactly the plan shown, text it reads is fenced within a turn, keys and knowledge bases are per account, licence answers are signed); ten defects, none critical — ai/160 major (air-gapped mode and consent follow a provider's declared kind, not the address), ai/161 major (a gateway stream the client leaves early is not metered), ai/162 major (the local model runtime answers anyone on the server), ai/163 consent categories skipped on some paths, ai/164 a Team member reads the account's data-sent previews, ai/165 the redactor misses common hosting secrets, ai/166, ai/167, ai/168, ai/169; not reached: area 4, most outbound dialers, the Store client 050b447e
  • Tasks W11-87 batch fix 6 — several servers: the Cluster page crash, a screen to move one thing, placement 51a22826
  • Bugs W11-54 — several servers in a browser: of the seven cluster bugs five are fixed and seen (019 in the normal case, 020, 021, 024, 025), two not run (022 needs a large mailbox, 023 an AlmaLinux node); database replication through its screen (set up, lag, a planned switch that lost none of 79 probes, the old primary fenced and rebuilt), a whole-account move and a drain with their plans, a secondary name server following in 15 s and a transfer without a key refused on both ports, the floating address moving in about a second; new: cluster/120 major (the Cluster page fails when a pool has no host names), cluster/122 major (no screen moves one account, site or mailbox), cluster/121, cluster/123, dns/120, security/120, cdn/120; the CDN was opened, not walked 6b85a603
  • General Status — the security review (two passes), the showcase install, batch fix 3 and the database tool (off) merged; w11-83..86 in flight 4ea8705c
  • Tasks W11-83 the security review's findings, w11-84 what the showcase seed exposed, w11-85 the database tool's proofs, w11-82 the missing photographs and the site, w11-86 the review's third pass, w11-67 the app builder without privileges e0c5e5b6
  • Security W11-80 — the review's second pass, the root agent's new operations first: they hold up (argv-only, parameters validated before a path, unit or config line, customer content kept out of privileged services' configs); one defect, mail/150 minor (the mail antivirus control socket is writable by any local user, who can stop scanning for the whole server); hardening: archives extracted as root onto the filesystem, per-account web logs readable by other local users; not reviewed: the assistant and customer gateway, licence signatures, the egress survey d96f3fb4
  • Security W11-78 — a review of what wave 11 added, about a third of the surface read: five defects, none critical — auth/140 major ("this was not me" inside the panel accepts any API token: it ends every session and locks the password while the token keeps working), apps/140 major (a container app's Dockerfile path is not held inside the release), files/140 (a folder share serves dot files by name), software/140 (free-form php.ini directives are a deny-list), auth/141 (an OIDC Test sign-on is a real sign-in with no owner check); found sound: OIDC and SAML validation, who a sign-in maps to, password reset, share-link tokens, release verification, the query console, the container shell, the root-side ledger; eleven hardening items, first the privileged image builder 219be702
  • General Status — batch fix 2 (w11-73), DNS transfers and promotion (w11-66), the site's finishing pass (w11-76) merged; QA w11-52; w11-61, w11-77, w11-78 in flight 437516f1
  • Tasks W11-77 batch fix 3 — the single sign-on provider, certificates without an authority, the Micro profile 5184c9fa
  • Bugs W11-52 — sign-in, sizing, the mail server and webmail in a browser (each item partly walked): ten new bugs, four major — auth/060 the single sign-on provider's Remove button does nothing, auth/061 a provider on a private address cannot be used and points at an allow-list no screen has, mail/062 contacts and calendar say On while HTTPS refuses (no certificate), sizing/060 the recommended Micro profile switches off webmail and the spam filter on a server with mail; seen working: "this was not me" in a browser, a relay saved and removed, app passwords for contacts and calendar refused by webmail and dead after revoke 9083a279
  • Tasks W11-75 the DNS screens for secondaries, transfers and promotion; w11-76 the product site, finishing d2c6b5cd
  • General Status — the product site live and up to date (w11-70, w11-74), phone widths (w11-65), CDN screens (w11-55) and the licence loop (w11-72) merged; QA w11-51b results; w11-73 in flight 4b19c886
  • Tasks W11-73 batch fix 2 (acting as a customer, reset limits and mail, the audit page), w11-74 the product site's second half c77a2284
  • Bugs W11-51b — the rest of the re-walk: of the wave's 33 bugs 27 are fixed and seen, 5 still fail (web/008 half, core/012, accounts/018, ui/008, mail/015), 1 not run; new: accounts/040 major ("Sign in as this customer" signs in as the wrong person), security/040 major (password reset is never rate-limited and no reset mail arrived, one lab), core/041 (the Audit trail page says Intact while entries are missing), ui/040, ui/041, core/040; the phone pass by eye over 28 customer pages 557877cc
  • Gate A branch that changes only the product site and docs runs the site's own check instead of the Go and panel gates aabcfb5b
  • General Status — one lead again; w11-30/56, w11-63 SAML and w11-60 merged; the site (w11-70) and a showcase install (w11-71) in flight; the false licence warning found on the demo b436293b
  • General The low-priority line itself (the previous commit announced it and carried only the docs) a2cbfd6b
  • General Builds, tests and lab bring-up run at low priority (this machine serves live sites); status — w11-59 and QA w11-51 merged; cards w11-65, w11-66 fee99e5e
  • Bugs W11-51 — re-walk of the wave's 33 bugs: 21 fixed and seen (all nine majors), 2 still fail, 10 not run; one new major (the Protection page is 1700 px wide at 390 px) and three cosmetic 2e656438
  • General Status — w11-50 merged; cards w11-63 SAML, w11-64 firewall leftovers 97c3c2e5
  • General Status — w11-49 merged; cards w11-61 database admin tool, w11-62 backup sources and plan leftovers b670bb16
  • General Status — w11-48 merged, w11-30 held for proof; cards w11-59 DNS secondaries, w11-60 mail leftovers f55ccb70
  • Tasks W11-57 editor previews and start on first request, w11-58 extension screens in a sandboxed frame 3d5397a2
  • General Status — demo upgraded to c8d908e; QA and the demo run from a second lead session 811ae60c
  • General Status — CDN first half merged; card w11-55 (CDN second half) c3f013e0
  • Tasks W11-51..54 QA cards — re-walk of the fixes, the screens never opened, several servers 2dbd5b56
  • General Status — recovery proven, calendar, live transfer and sizing merged; leftover cards w11-48 / 49 / 50 c8d908e0
  • General Card w11-26 updated for what has landed since 2e528ed7
  • General Status — containers / terminal / storage merged; sizing in flight 7099cb63
  • General Card w11-29 updated for what has landed since 26510e8e
  • General Status — mail deliverability merged; live transfer in flight f37577cf
  • General Card w11-28 updated for what has landed since bc10b4f6
  • General Status — local models merged; webmail calendar in flight a8a0832a
  • Test lab The assistant stand-in moves to .42 (it shared .40 with the sample Store, so a lab could not have both) d4d209de
  • General Status — single sign-on merged; containers / terminal / storage in flight 68bc07a8
  • General Status — backups and database tools merged; recovery proof in flight; demo upgraded e0b5bcf2
  • General Cards w11-46 (whole-server recovery proven on a fresh node; the backup screens walked) and w11-47 (containers, terminal, storage) 61e92f83
  • General Status — all nine QA majors fixed and merged; mail deliverability in flight 7dbb1763
  • General Status — QA majors fixed and merged; SSO and data services in flight 1d1802db
  • General Cards w11-25 and w11-27 updated for what has landed since cb293404
  • Api The replay check reuses the exact enrolment code (a recomputed one could fall into the next 30-second step and flaked the gate) a8c74650
  • General Card w11-45 (mail deliverability: DMARC reports, reverse DNS, blocklists, automatic hold; the contacts service on 443) d45ac819
  • General Status — AI walk merged; three fix cards and mail depth in flight d1f9fd66
  • General Cards updated from the AI walk; w11-44 (local models, only that) d9418c82
  • General Status — two QA walks merged (33 bugs, 9 major), fix cards in flight bc0a8b52
  • General Fix cards w11-41 (files, protection, certificates, databases), w11-42 (the audit anchor that forgets, Team sharing, staff sign-in as a customer, CLI), w11-43 (Store, shell and small screens) 7ab1f43a
  • Qa W11-39 — sign-in, email, integrity and smoke walked: password reset held against every attempt, email settings and invitations behave, Team isolation holds, webmail ends with the panel session, an account with a running stack deletes cleanly; 8 new bugs, 2 major — deleting the newest audit rows is detected for one minute and then forgotten (the next checkpoint re-anchors the shortened log, no alert), and the Team share picker offers only the first 100 DNS zones e5668f44
  • Qa W11-38 — the new screens walked in a browser (files, per-site protection, Store, jobs, shell): 25 bugs, none blocking, 7 major — FTP users cannot overwrite a file and are locked out by the login-rate ban, 'Allow' on a blocked request allows one rule at a time, the security score cannot read the websites' protection, a Store rollback starts without a plan, no screen path to install a database engine, a failed certificate order shows Done 20d6ca2c
  • General Card w11-23 updated (DAV switch on the Mail screen and on 443, app passwords, module states, RHEL run) a2226920
  • General Status — webmail walked + contacts merged; reliability card in flight a9ea7b55
  • General Card w11-40 (a crashed module is restarted; recover an administrator who lost their authenticator; node down events; cancel grace) fd73cf88
  • General Status — installer round two and lab tooling merged; two QA walks in flight 151c343a
  • General QA cards w11-38 (the new screens) and w11-39 (sign-in, email, integrity, leftovers, smoke) 7434cf40
  • Test lab W11-37 — one command to a signed-in lab browser: lab-admin.sh (first-run setup, generated password, TOTP, optional stepped-up cookie jar), lab-users.sh (reseller, two customers with a site each, a Team member), and a Playwright helper openPanel() with stepUp() that always closes its browser; all refuse LAB=demo; README section 'Sign in to a lab' 1bc3eea9
  • General Status — files merged; lab sign-in tooling in flight 28d13c50
  • General Card w11-37 (lab tooling: one command to a signed-in browser) 480efb62
  • General Status — AI part three and webmail merged (unit-tested, lab walks in flight) 656cf7a8
  • General Cards w11-35 (webmail walked, then contacts over CardDAV) and w11-36 (calendar over CalDAV, invitations) 6f42fd31
  • General Card w11-34 (the assistant walked end to end in a lab; local models) 8e0de33f
  • General Status — replication and AI depth (second half) merged; webmail depth in flight 4e3620f1
  • General Card w11-33 (AI depth, third part: site logs in the log store, site health, every entry point proven, customer AI service screens, local models) 742c12a9
  • General Status — per-site protection merged; files card in flight f92a60bf
  • General Status — shell traps and AI depth (first half) merged; protection in flight 5f912f89
  • General Card w11-32 (AI depth, second half: fixtures for every job, consent on first use, local models, customer AI services) 032d0955
  • General Status — cluster fixes and Store merged; replication in flight; feature cards queued 49509937
  • General Wave 11 feature cards from the audit — per-site protection, file sharing, mail depth, webmail depth, single sign-on, CDN depth, data services, live transfer, sizing and module lifecycle, software and editor, result schemas bf315b34
  • General Card w11-13 — breadcrumbs use the new categories d4815544
  • General Status — cluster walk merged, fixes in flight, demo upgraded 51931f93
  • General Cards w11-19 (fixes from the cluster walk) and w11-20 (database replication between servers) b98a10aa
  • Qa W11-05 — cluster walk: cluster/012 Fix 2 and 014–018 verified, none reopened; the mail move walked (3,122 messages through a move and back, none lost; a 20,000-message mailbox); a third node and a mixed Ubuntu / AlmaLinux cluster; 7 new bugs (3 major: the mail cutover pausing on a busy mailbox, an open IMAP session losing changes after the cutover, a floating address staying on a dead HAProxy) 2534493b
  • Gate A merge that only brings files under docs/ skips the build, test and web gates 501424ca
  • General Status — AI everywhere and jobs merged; cards w11-13 and w11-18 updated with their leftovers 02811e63
  • General Status — licence + release and first-run mail merged; Store card in flight b7c5e533
  • General Card w11-15 (installer round two) and more walk items for w11-06 7dc92fea
  • General Card w11-12 updated for what w11-14 landed c1d5e79a
  • General Status — installer follow-up merged; AI everywhere in flight; Store card queued 5ebb61a7
  • General Cards w11-16 (the assistant in everything: page context, entry points in every module, built-in jobs), w11-17 (the Store is never empty: built-in catalogue, calm states, a lab and demo Store), w11-18 (AI depth) 681f75c0
  • General Backlog — the product site is live 3f17e060
  • General The product site is live on respirecloud.respiresoft.com 817c9b03
  • General Status — mail move merged, demo upgraded to the new shell 979cbc30
  • Test lab The demo smoke opens every tool on the new Home, the sidebar and the Configuration hub; always closes its browser aef3a6cd
  • General Cluster QA card walks the mail move; w11-09 leftovers in the backlog 002a554b
  • General Status — navigation redesign and platform integrity merged; findings of the redesign walk in cards w11-11 and w11-13 44a87581
  • General Leftovers of w11-08 in the backlog and the QA card 89042ff1
  • General Status — installer merged, what is not proven yet cf18f9ff
  • Gate Run the installer's test harness when install/ changes; card w11-14 (what the installer needs from the modules) 99e3023d
  • General Cards w11-11 (outgoing mail from day one, password reset, failed emails never silent), w11-12 (long actions as jobs, cancel), w11-13 (shell traps); status f907c457
  • General Cards w11-09 (mail moves with the account) and w11-10 (licence limits enforced, release build) 6ae6e7b0
  • General Card w11-08 (audit chain anchor, DeleteSecret, impersonation notice, webmail session binding, accounts.deleting, system identity) dd6d7b6c
  • General Status — backlog audit merged, wave 11 queue 49d75ee4
  • General Backlog audit (w11-04) — 33 items ticked with evidence, vague lines restated, four moved to 'not planned'; the triage file proposes the remaining work as prioritised cards 033b6672

Milestone 9: Milestone 9

  • New Site Serve the product site on a port (pm2 respirecloud-site, 127.0.0.1:7900) — the owner's FastPanel site is a reverse proxy; status d83307cb
  • Fixed General W10-fix-20 — a stack-scoped Team member sees their stack (shared Visible helper), bell notices have a level (info/warning/failed), wrap and read in full, Team rows name resources and the invite dialog offers every kind, disabled New buttons give the reason, one state when certificates cannot load, AI plans mark only untrusted text aadf09e0
  • Fixed Gate A failed merge gate drops the squash (nothing stays staged); flaky token test fixed 11b35914
  • Fixed Cluster W10-fix-18 — Linux user ids are allocated once, cluster-wide (cluster/013); a panel restart never breaks a move: steps are kept, the live node decides, unsure moves pause and can be continued or cancelled (011); database users move with their authentication strings and grants, MariaDB/MySQL and PostgreSQL, and PostgreSQL moves work (012) 20dd2bd0
  • Fixed General W10-fix-17 — mail held during a suspension is released on unsuspend, the public suspension page shows only the visitor message, suspend shows its plan and unsuspend asks first, the first cron job starts the cron service, web.sites.* accept slugs, scoped Team members see their buckets and get reasons on disabled buttons, plain scoped-grant refusals; accounts docs restored bf2b1fce
  • Fixed General W10-fix-16 — pooling a site prepares the other node (the account's Linux user with the same ids, removed when its last site leaves) (cluster/010); creating things in a suspended account is refused, a suspension part that never answers is detected and retried, brand changes refresh the suspension page; the move's switch grace follows the DNS TTL and purge_source drops the old database copies be23ea50
  • Fixed Cluster W10-fix-14a — DNS of an account points at the node it lives on, placement policies decide where a new account lands, moves use the installed database client names (MariaDB 13), the control node cannot be drained and roles in use cannot be dropped, a failed move leaves replicas and other moves alone, move back works, followers run in order (no 404s at the switch), constellation redraw 2e62ce31
  • New Accounts Suspension really suspends (accounts/013) — sites serve a branded 503 with the reason and message, mailbox sign-in and submission refused, cron and the account's units held, terminal/editor/SSH (keys too) ended and refused; unsuspend restores everything incl. sites that were disabled before; itemised result, retries, plan 459b170a
  • Fixed SSL A Team member scoped to one certificate cannot upload, self-sign, request or order another one; status (fix-14b merged) c909e127
  • Fixed General W10-fix-14b — a Team member scoped to one resource cannot create siblings (cdn, web, databases, mail, dns, storage, containers, domains, apps: account-wide grant required), CDN edges reload on a certificate change with roll back, scoped CDN numbers, bandwidth warnings at 80/95% with an owner notice c0474d65
  • Fixed General W10-fix-13 polish — branded-host gate on SSO and mobile sign-in, BYO database servers on the egress guard (pinned), accounts.set_node only for cluster, branding nameserver lookup, Team scopes ownership-checked at invite, owner notice when staff open a mailbox, suspend dialog warns when email cannot leave, logs/cdn states instead of errors, audit system filter, stack names wrap on phones 45d7c046
  • Fixed General W10-fix-12 — the panel's own email leaves through the local mail server (loopback relay trusted, valid default sender) and a failed send is shown to administrators (bell + audit), found-outside page for accounts with adopt, event redelivery backs off and parks, backups.job.create has a plan, plain import refusals, readable Live activity, Team remove/limit fixes; audit rows no longer dropped for a wrong outcome word 5cc02445
  • Fixed Security One egress guard for every outbound request (internal/egress: resolve, check, pin, re-check redirects) — AI providers at run time (finding 005), storage connections checked at every use with rclone unprivileged behind an nftables fence (009), CDN edge workers fenced against rebinding (008 residual), webhooks, providers and Git deploy URLs on the same check; audited admin allow-list for private targets 1789211c
  • Fixed Module SDK A malformed id reaching a uuid column answers invalid_params, not internal (modules and built-ins); scripts/test-all.sh runs the suite like the gate; status + backlog b27a964d
  • Fixed General W10-fix-11 — backup job/target ids that are not ids answer not_found instead of internal (backups/008), an alias's certificate is ordered when web announces the alias (ssl/007), scheduled discovery and drift scans verified in a lab (core/004) 1f944339
  • New General Review part 4 — the editor origin can no longer run a panel passkey ceremony (finding 013, high), sign-out-everywhere / password change / admin revoke also revoke paired devices' refresh tokens (014, high), rotated sessions keep their device link so a device revoke ends them (015) 08bb18f4
  • Fixed General W10-fix-10 — catch-all no longer swallows mail for existing mailboxes/aliases, Sieve split (mail owns vacation, webmail owns rules; legacy files migrated), plan dialog buttons inside the dialog, CrowdSec fallback leaves no dead apt source + apt repairs broken third-party sources, restore of latest skips safety snapshots, mail server page state when mail is not enabled, account pickers show names, stack names readable at 390px, plain SSL plan lines; agent retries openat2 on EAGAIN eeb86d12
  • New General Review part 3 — PostgreSQL role takeover across tenants closed (finding 010, critical: one name, one owner; group roles never altered as users), socket peer auth only for the postgres OS user (011, high), BYO database servers refuse private addresses (012) 17fffa52
  • Fixed Core Scheduled actions with strict schemas run again — the scheduler sends scheduled_at only where the schema takes it (discovery, config-drift and sizing scans never ran); bugs backups/008, ssl/007 filed f1a6d790
  • Fixed Security ADR 0018 hardening — system_calls authoritative for every nested system call incl. event/schedule handlers (finding 006, high), owner hints only where declared, audit rows bound to the call token and elevated refused on retained tokens (finding 007) fc4a7051
  • Fixed Test lab Pinned labs are never garbage-collected (a gc run removed the owner's demo); demo seed, in-place redeploy and smoke test in the repo; PUBLIC_EDITOR=0; bug mail/013 7ef5d42b
  • New Core Team — users invite and manage sub-users (scoped grants capped at the inviter's, expiry with immediate effect, per-user limit, single-use email invitation, /team screen) (core/003); fix: foreign account ids answer 404 across modules, sub-user Protection, admin-only mail server page for non-admins, backups picker names, sub-user dashboard wording (w10-fix-7b) fa8053eb
  • Fixed Cdn W10-fix-7a — edges install the njs package matching the installed nginx (no apt conflict on ubuntu 24.04/26.04), PowerDNS allows Lua record updates and GeoDNS restores the previous record on failure, port clash pre-check with the holder named and no restart loop, per-port edge probes, region note without GeoIP, custom-hostnames column 47b8936f
  • New General Review part 2 — DB import no longer runs customer dumps as root (finding 004, critical); CDN origin SSRF via hex/decimal IP spellings closed (finding 008, high; QA cdn/001); findings 005/006/007/009 proposed 20e30e3b
  • Fixed Security ADR 0018 module call identity (finding 001, high) — the host decides who a nested module call runs as (per-invocation call tokens), system calls only for actions a module declares in system_calls, caller stamped + audited, mail.sso.prepare only for webmail; retained calls for the AI turn, elevated calls for billing integrations 3303a300
  • Fixed Security Ownership checks — branded panel hosts must belong to the brand owner's tenant (finding 003); certificates refused for names another account holds, wildcards refused over other tenants' names (finding 002, SSL side) ac190146
  • Fixed General W10-fix-4 — local-root hidden, one icon per nav entry, domains badge at 390px, suspension email carries reason + message, plain not-installed messages (SSH/web/databases/mail/dns as states), Store Installed filter offline, empty app ids refused, job dialog without log lines, SSL plan warns before retiring a wildcard 2758a43a
  • New General Review part 1 (auth, privilege separation, tenant isolation) — 3 high findings; domains refuse a parent of another account's domain (finding 002) f1f5b236
  • Fixed General W10-fix-3a — mail aliases/forwards listed + editable, host name change re-issues the cert and republishes DNS (with a UI), Dovecot 2.4 quota root, webmail trusts the panel's own mail cert (pin) with plain TLS errors, audited step-up SSO into mailboxes for staff; lab: mta.lab.test, Mailpit on :25, lab-dns-pdns.sh cdffd0fb
  • New SSL Certificate screens (list, detail, get/upload/CSR/self-signed sheets, settings + CAs), wildcard certificates via DNS-01 with ownership rule, ssl settings schema; fix(software): PHP/Runtimes pages make no admin-only calls for resellers and users (w10-fix-3b) cf96d643
  • Fixed General W10-fix-3c — firewall UI changes apply (stored view normalised), schema errors as sentences in one place, Stacks table at 390px, reseller Protection picks an account, hardening/malware/CrowdSec wording, plain restic errors, backup run history 46306a8a
  • Fixed General W10-fix-2a — admin can create admin, breached/username passwords refused (embedded list), public panel address instead of loopback (RC_PUBLIC_URL), passkey on IP hosts, lockout duration, readable refusals, param aliases, unknown asset owner, OpenAPI without CSRF, webhook errors, audit names + hide system ticks, a11y labels, no 401s on sign-in 690848d7
  • Fixed General W10-fix-2b — importer prerequisites listed up front + failed commit keeps the dry run, wizard at 390px, rollback preview, required modules cannot be removed + remove preview, calm offline Store, capacity planner counts hosting accounts only, PHP default never a missing version, config pages show not-installed 16bd1577
  • Fixed Agent Apply /home 0711 when the agent starts, so existing servers get it too e9f49adc
  • Fixed General W10-fix-1a — DNS zone hijack closed (ownership over every account, public suffixes, no domains under another account), failed account create rolls back, reseller plan assign, suspend reason/message/schedule, readable refusals, DNS not-installed message, zones for earlier domains, nav/overview/phone layout 94965d3e
  • Fixed General W10-fix-1b — apps deploy list 500, human errors (apps/web/databases), /home not listable (0711), step-up refusal says how to enrol, editor wording + chat off, sizing preview, DataTable keeps open row 2a156c3f
  • New Shell Assistant on every page (Ctrl/Cmd+J, Ctrl K ask), compact licence notice (grace/degraded), route/nav collision guard, shell initial load 246 -> 191 KB gz with a build-time budget check c48f5345
  • Fixed Test lab Pebble validates on 80/443 and unknown lab names resolve to cp1 (IPv4 only) — HTTP-01 orders work in every lab adcdc3c1
  • New Hostnames Panel + mail hostnames with SSL end to end (owner requirement #16, w9-23) f1e0a4f2
  • New Design system Importers wizard (source, pre-flight report, mapping, dry run, commit, rollback, past imports), Plans and sizing (plan editor with apply modes + exceed preview, presets, delete-with-migrate, export/import, capacity planner + what-if, overselling, server profile + re-tune), Integrations (webhooks with deliveries/dead-letter/replay, billing connectors, sign-in links, API, settings) abee4308
  • New Mobile Capacitor app + server side (system-browser PKCE sign-in with passkeys/TOTP/SSO, rotating refresh tokens with reuse sign-out, device registry + revoke, min app version, Mobile app screen with QR, licence-authenticated push relay), APK with no source maps 172c91f7
  • New Design system Software (OS packages with plans + holds + fingerprint-confirmed repos + allow-list + update policy; PHP versions, per-scope extensions, PECL with live logs, php.ini forms, FPM/opcache status; runtimes + tools with requests and EOL report) and Panel extensions (signed install with per-capability approval, developer mode, rollback, uninstall) 6d3d0890
  • New Branding White-label brands (contrast-checked accents, sanitised SVG uploads, 20 versions), per-host branding of sign-in + shell + documents, reseller isolation on branded hosts, passkeys with the branded host as RP ID, panel hostnames (DNS verify + ssl order), private nameservers, branded email templates and customer pages, no-leak crawler a6a00157
  • New Design system AI assistant (page + Ctrl+J side panel, streamed answers with sources, plan cards with per-step diffs, approve/reject/undo, providers, policy, kill switch, services), Store (catalogue, plan-first install/update/rollback/remove as jobs, trials), Licence (state, activate, add-ons, grace/degraded banner), Versions (catalog, follow-latest/pin, upgrade findings) 92fb508f
  • Fixed Install,lab Ship UI-only built-in modules (core, store) — stage dirs with ui/dist, plugin host skips dirs without bin/; docs: cards w9-20/21/22, w9-10 follow-ups eb85f268
  • New Software Runtimes + global tools wired into the software module — catalog lines with EOL, streamed mise installs, detection from version files, select with on-demand cap + admin requests, removal refused while used, pinned tools on cron PATH, usage/EOL report; runtime op types moved to sdk/agentop a67664a1
  • New Design system Backups (targets, schedules, live runs, restore wizard with previews), Storage (buckets, keys, 12 connection kinds, built-in S3), Containers (Compose stacks, revisions, catalog, registries), CDN (zones, rules, purge, signed URLs, edges, external CDNs) 6b4d2dc7
  • New Design system Configuration screens (drift diffs, keep/restore/reset, found outside the panel, undo, history, server reset wizard), Protection (score fixes, firewall with keep/roll-back countdown, CrowdSec, scans), Logs (live tail, audit chain verify), Cluster (constellation, drain, pools, VIP failover, moves), Stats, Providers cd54a4ae
  • Fixed Test lab Labs install every module (RC_PROFILE=standard by default; SIZING=micro proves Micro on purpose) cd9473db
  • New Software OS packages (allow-list, real apt/dnf plans, streamed apply + health watch, holds, signed third-party repos with fingerprint confirmation, queue) and PHP (versions with EOL, per-scope extensions, sandboxed PECL from an allow-list, validated php.ini, defaults per server/account/site) b2fb2de7
  • Fixed Agent Heartbeat facts report cgroup-limited CPUs and memory (containers/slices), not the host's b495757d
  • New Extensions,software Sandboxed WASM panel extensions (wazero; per-capability host calls checked against the calling user, no fs/net/clock beyond grants, fuel/memory/time caps, auto-disable on violations, signed or dev self-signed only) + runtimes via mise in a shared read-only store with version detection and admin-pinned global tools a0c611fc
  • New Apps Dockerfile and Compose deploy modes (BuildKit secrets never in layers or logs, per-release images, auto-revert, rollback, strict compose validation incl. build contexts), signed app templates from the Store 7dbe9f73
  • Fixed Merge The test gate could never fail (go test | grep under pipefail inverted it); fix(apps): result schemas for the 10 actions that pushed the schema count past its baseline 8c349f92
  • Fixed Installer An upgrade is never a fresh install — Micro's module trim only applies to brand-new servers 61ea3180
  • New Apps Every field customizable (runtime/custom mise spec, commands, hooks, env scopes, limits, restart policy), templates (versioned, scoped, YAML export/import), respirecloud.yaml/Procfile overrides with preview, per-app nginx snippets through web's validated layers 3518afbc
  • New Sizing Install profiles from cgroup-aware hardware (Micro idles at 582 MB with web + PHP 8.5 + MariaDB), re-tune with per-value diff + dry-run plan, capacity planner + what-if + export, plan presets, overselling off/warn/allow, plan apply modes, delete-with-migrate, strict export/import, audited changes 117a42ad
  • New Contracts Accounts.cron.create + robust account delete/re-create, mailbox and DB-user password hashes (originals keep working), domains.create skip_auto, wildcard event subscriptions (integrations uses '*'), firewall ip_proto (VRRP 112), 20 more result schemas 16bafeae
  • New Integrations Per-caller OpenAPI 3.1, signed webhooks, integration tokens, SSO links, WHMCS/Blesta/HostBill, rate limits, idempotent replay, batch 65f5a7ee
  • New Importers CPanel, Plesk, DirectAdmin, Hestia, FastPanel importers — hardened archive layer (traversal/links/devices/bombs/XXE refused, fuzzed), neutral model, pre-flight report, dry run + commit through the owning modules' actions, full rollback 0ff46905
  • New Jobs Jobs and live progress everywhere (ADR 0016, owner requirement #22, w9-05) 0ddd1c9f
  • New Versions One signed version catalog — newest stable by default (w9-03, owner requirement #21) 9ee9850e
  • New Cluster Account moves finish end to end (accounts.set_node + web/ssl/dns/databases/mail followers, retry on failure, drain completes), pooled sites rendered on every backend, certificates mirrored to LB nodes and re-copied on renewal, cluster firewall needs applied through security's auto-rollback 0cef634d
  • New Design system Editor screen (Open VS Code, folder, extensions with policy verdicts, packs; admin install/settings/policy/instances) and Apps screen (30 presets + detect, deploy history/logs/rollback, runtime/commands, masked env, Git deploy key/webhook, workers/cron, Open in VS Code); module CSS compiled once by the shell; keyboard-friendly comboboxes; make web builds module UIs fbd58da8
96 planning, documentation and housekeeping changes
  • General Third-party notices list the product site's dependencies 29fff237
  • General Wave 11 cards — cluster QA, single-node QA leftovers, scoped lists filtered in SQL c18c45d5
  • General Status — wave 11 in flight 4b6d3b4d
  • General Wave 11 cards — home and navigation redesign (shell + backend, shared contract), the installer (simple / advanced, compact to full), backlog audit 124beab4
  • General No leftovers — the gate and test-all remove their containers' volumes, lab-down removes its lock file; product site deployed to its docroot (domain still proxies to a port); status 67f680c4
  • General Wave 10 summary in STATUS; five bug reports restored (their fixer had replaced the report with the fix note); stale headers; backlog from the last walks d90e9e2d
  • General Fix card w10-fix-20 (leftovers walk findings); status ba950764
  • Qa W10-rewalk-6 — single-node leftovers: 12 fixes verified, 0 reopened; scoped Team screens, owner notices, email failure path, CDN bandwidth warnings and an AI assistant turn walked; 6 new bugs (1 major: a stack-scoped member sees no stacks) 79e0933f
  • General Fix-19 merged; backlog from the cluster rounds 8d7ff032
  • General Sizing.scan seen running on the demo (core/004); leftovers walk card (w10-rewalk-6) 080730ea
  • General Fix card w10-fix-19 (cluster walk findings); status dbba4553
  • Qa W10-rewalk-5 — cluster + CDN verification on two nodes: 15 fixes verified, cluster/012 reopened (PostgreSQL ownership after a move), 5 new bugs (3 major: HAProxy left broken after a failed apply, NS/mail records follow the account instead of the service, drain stuck on a pooled account) 5dca789c
  • General Cluster verification walk card (w10-rewalk-5); status (fix-18 merged) ecbeddfc
  • Status Fix-17 merged e7703c52
  • General Cluster/011–013 (move resume, database users, per-node uids) + fix card w10-fix-18; status (fix-16 merged) 83525530
  • General Fix card w10-fix-17 (last walk's findings); status 6622b4e3
  • Qa W10-rewalk-4 part A — 9 fixes verified, 0 reopened; suspension and scoped-grant rule walked in a browser; 9 new bugs (1 major: held mail not released on unsuspend); cluster part not walked bd15dd87
  • General Cluster/010; cards w10-fix-16 (follow-ups) and w10-rewalk-4 (last verification walk); status c6117db0
  • General Accounts/013 (suspension does not suspend sites, mail, jobs) + fix card w10-fix-15; status (fix-13 merged) a62491dd
  • General Fix cards w10-fix-14a (cluster) and w10-fix-14b (CDN); status 574216e4
  • Qa W10-rewalk-3b — cluster + CDN walk: 6 CDN fixes verified, 13 new bugs (7 major: DNS for accounts on a second node, placement ignored, MariaDB 13 moves, control node drain, pooled replica after a failed move, edge cert reload, zone-scoped sub-user creating zones) 5f506ca6
  • General Polish card (w10-fix-13); status (fix-12 merged) f59b098e
  • General Fix-9 merged (all 15 review findings fixed); backlog 373c49fb
  • Status Pentest not started (brief stopped by a safety check); owner decides c6bcaad4
  • General Last fix card (w10-fix-12); status (final re-walk merged) 41115e84
  • Qa W10-rewalk-3 — final re-walk, single node: 25 of 26 fixes verified, 0 reopened; Team walked end to end; every security fix refused from the outside; 6 new minor/cosmetic bugs a0f7edc3
  • General Cluster re-walk card; status (security review part 4 merged) d11ad148
  • General The merge gate brings its own Postgres + Valkey and sets all three test settings (the API integration tests were skipped in every merge; eight had been red since the password policy); test passwords without usernames; Team expiry test no longer races the clock 0325c2d1
  • General Final re-walk card (w10-rewalk-3); status 4cc86f0b
  • General Mail/013 fix note; fix card w10-fix-11 (backup job create, alias cert race, discovery check) 58ee7644
  • General Security review part 4 card; status (part 3 merged) 061b623c
  • Status Fix-8 merged cddd31cd
  • Status Wave 10 resumed; demo rebuilt and pinned 659b6700
  • Status Wave 10 paused by the owner; what to resume 9f433ce7
  • General Security review part 3 card; status 37c900bc
  • General Fix-7b merged; backlog 098c2d82
  • General Fix card w10-fix-10 (re-walk 2 findings); status b2f8b44e
  • Qa W10-rewalk-2 — 29 services fixes re-walked (26 verified, 1 reopened) + previously unwalkable services: 10 new bugs (5 major: catch-all swallows mail, Sieve collision, firewall dialog buttons, dead CrowdSec apt source, restore latest) 968d1e09
  • General Fix-7a merged, fix-9 in flight; backlog 169b16fe
  • General Fix card w10-fix-9 (shared egress guard; findings 005, 009, 008 residual) 3f1b90a7
  • General Fix card w10-fix-8 (ADR 0018 hardening, findings 006/007); status 4647d0bc
  • General Fix cards w10-fix-7a (CDN) and w10-fix-7b (Team + role bugs); status 9b2eac1b
  • Bugs Core/003 users cannot manage sub-users (Team screen + core.subuser.* missing) 0b3d5129
  • Qa W10-qa-2b — every non-admin role + CDN with edges: 13 bugs (4 major: CDN origin SSRF guard bypass, edge enable on ubuntu2604, GeoDNS Lua record updates, sub-user Protection) 8ace9679
  • General ADR 0018 lists fix-6's system calls; status + backlog after fix-5 32d9bec3
  • Status Security review part 2 in flight 06bfcbc0
  • General Security review part 2 card b5c1ed4d
  • General Fix-6 merged; backlog notes for branding ns lookup and the fix-5 merge ec87ddbd
  • Status Fix-4 merged, fix-6 in flight 6637ff29
  • Status Security review part 1 done, fix-5 in flight fbcd32bc
  • General ADR 0018 module call identity (finding 001); fix cards w10-fix-5 and w10-fix-6 (findings 002/003) dec11fbc
  • General Cards w10-fix-4, w10-rewalk-2, w10-qa-2b; status dc120e85
  • Qa W10-rewalk-1 — 53 fixed hosting+platform bugs re-walked: 50 verified, 3 reopened (cosmetic/minor), 5 new minor/cosmetic a1e31035
  • General Status (fix-3c merged, security review part 1 in flight), backlog 7c887eb7
  • General Security review part 1 card (auth, privilege separation, tenant isolation) 7e146ad8
  • General QA-2 walk scripts under docs/bugs/walk/qa-2; fix cards w10-fix-3a/3b/3c; status 3c2b3969
  • Qa W10-qa-2 services walk — 28 bugs (0 blocker, 9 major: firewall UI changes fail schema, SSL has no screens, wildcard certs, mail aliases unlisted, mail hostname cert, webmail open + TLS trust, containers at 390px) ea384003
  • Bugs Renumber the smoke finding to security/008 (QA-2 uses 001-007) 2805e735
  • Status Re-walk 1 in flight f7f49077
  • General Re-walk card for fixed hosting + platform bugs d4dedb9f
  • Bugs Two findings from the demo smoke after fix wave 2 5d4c85c7
  • Branding Env file path c054e14c
  • General Keep RC_PUBLIC_URL in the installer env, give labs a public address, document it; merge script adds one co-author line; status + backlog after fix wave 2 a9382fdb
  • General Status after fix wave 1; backlog leftovers from fix-1a/1b c6897c41
  • General Move QA-3 walk scripts under docs/bugs/walk/qa-3; fix cards w10-fix-2a/2b; status d9c643c9
  • Qa W10-qa-3 platform walk — 29 bugs (0 blocker, 7 major: admin->admin create, breached passwords, capacity planner on empty server, importer prerequisites, wizard at 390px, Store removes itself, loopback panel address) 5ca613a0
  • Status QA-1 done, fix wave 1a/1b in flight a3d14c54
  • General Batch-fix cards w10-fix-1a (DNS hijack + accounts/dns/domains) and w10-fix-1b (apps/web/files/terminal/…); renumber dns/003 7a135725
  • Qa W10-qa-1 hosting walk — 21 bugs (1 blocker: cross-tenant DNS zones; 5 major) with repro, walk scripts, screenshots 4f2d6889
  • Status Build phase of wave 9 complete; wave 10 testing in flight 38c3aa04
  • Backlog Shell + hostnames follow-ups ef294fab
  • General Gofmt pty_test.go 25a00ae8
  • General Bugs found by w9-21 (sizing preview, inline editors closing on refetch, limit titles) + follow-ups cf0fdac2
  • Backlog Mobile follow-ups and owner-provided release items bb72ca47
  • General Wave 10 — black-box QA walk cards per area (hosting, services, platform) + security review/pentest card 7fff1d8d
  • Backlog Software/extensions screens follow-ups ccddc96a
  • Test lab TOTP codes never replay an accepted window; docs: card w9-23 (panel + mail hostnames with SSL), branding follow-ups 433d89d5
  • General Card w9-19 — white-label branding 868aa392
  • Test lab TOTP enrolment, sign-in and step-up helpers for walks of high-risk actions; backlog: screens follow-ups b9926682
  • General Card w9-18 — wire runtimes + tools into the software module bc3c895e
  • General Card w9-17 (mobile app + server side); backlog: software part 1 follow-ups 54b5dc93
  • General W9-15/w9-16 follow-ups; extensions served as extensions.* (spec updated) 71fe60d0
  • Backlog Web stack follow-ups 52075bcb
  • Websites Every web dependency on its latest release — React 19.3, TypeScript 7 (native tsc; TS 6 side-by-side for typescript-eslint), ESLint 10, Vitest 5, TanStack Table 9, react-day-picker 10, Playwright 1.64, pnpm 12; Table v9 migration with v8-shaped exports; all routes walked per role (owner requirement #21, w9-04) 72c7bf04
  • General Cards w9-15 (apps container deploys, Store app templates), w9-16 (runtimes + tools, WASM extensions) 5498cdc1
  • General Card w9-14 (software: OS packages + PHP); backlog: w9-13 leftovers, sizing follow-ups 4a106f0b
  • Status Refresh — jobs, versions, consistency, store, AI, CDN, cluster, importers, integrations merged 3ab06c77
  • General Card w9-13 — contracts batch requested by importers, integrations and cluster ce2d303f
  • General Cards w9-04 (web latest), w9-10/11/12 (remaining screens); backlog: flake fixed, jobs follow-ups 5d191ec5
  • General Card w9-09 — install profiles, re-tune, capacity planner, presets, overselling ae460aa2
  • General ADR 0017 (key material between nodes), card w9-08 (billing, webhooks, SSO, tokens, OpenAPI), cluster follow-ups c263cc64
  • General Card w9-07 — importers (cPanel, Plesk, DirectAdmin, Hestia, FastPanel) fef0a457
  • General ADR 0016 (jobs + live progress), owner requirement #22, cards w9-05/w9-06, AI follow-ups; fix(merge): gofmt hang with no Go files, stage tracked changes only 88a27559
  • Deps Every Go module on its latest release; Go 1.27.2 is current (owner requirement #21) 28e1569b
  • General Owner requirement #21 (latest everything) — card w9-03; card w9-02 (cluster follow-ups); lab images ship cron fb6147de
  • General Card w9-01 — UI platform fixes, Editor and Apps screens 870b1f91

Milestone 8: Milestone 8

  • New Core AI wiring — /ai/v1 gateway proxy, core.action.list, nested idempotency keys, shared ext schema (pgvector), docs shipped for the assistant; deterministic-preview rule 254b11b4
  • Fixed Audit Secrets masked by value inside free text; feat(licence): per-action editions 4294f12d
  • New Cdn Own edge network (per-zone nginx edges, pull + storage zones, purge by url/prefix/tag/all, signed URLs with rotation, hotlink, stale-on-error), GeoDNS steering with health failover, Cloudflare/Bunny integrations, customer API + snippets in 8 languages, stats and usage 39ce567b
  • New Ai Ops assistant (permission-filtered action tools, plans from the host's dry-run with approval bound to the plan hash, step-up for high risk, re-preview before each step, verify + undo), injection quarantine + redaction + full audit, providers (Anthropic with caching, every OpenAI-compatible, local), RAG (heading-aware chunks, hybrid search, abstention, per-model indexes), customer OpenAI-compatible gateway with metering + knowledge bases 3ed6423f
  • New Consistency Changes made outside the panel are discovered and adoptable (Linux users, cron lines, MariaDB/MySQL/PostgreSQL databases + users, hand-written nginx/php/postfix files, mail dirs); reset per service and per server with dry-run plans, snapshots + one-click undo, config history restore and automatic rollback on failed health checks; database config drift; hand-written web files survive generation swaps db77b1f2
  • New Webui Serve Store-installed module UIs (installed wins, like the plugin host); backlog: w8-04 follow-ups 3cba59cf
  • New Store,licence Signed modules (Ed25519 k-of-n envelopes, TUF-style roles/channels, tar.zst packages), lifecycle (install/upgrade with auto-rollback, rollback, remove, sideload, channels, staged rollout), plugin-host verification, signed licences (2-of-3 fingerprint, active/grace/degraded, revoke), entitlement gate for paid add-ons + trials, RespireSoft-hosted store/licence server + release CLI 1cf175fc
  • New Editor Browser gateway for VS Code — separate editor origin (port mode: own account; subdomain mode: per-account origins), one-time claim + grant cookie, panel-session revalidation, Origin rules, cookie/header stripping; bus tunnel (internal/tunnel) relayed by the root agent with SO_PEERCRED + unit-cgroup check; reserved core.* agent ops; node-scoped PTY/tunnel bus subjects (security fix); lab E2E 94527155
  • Fixed Cli A control socket that can't be created no longer stops the panel from starting 0fbddb0b
  • New Cli Respirecloudctl on the action registry (friendly verbs, --dry-run plans, table/json/yaml, completion), root-only local socket with SO_PEERCRED as local-root, via:cli audit + changes.cli events, live UI query sync with 'changed via CLI' toasts 06a6d5ae
  • New Cluster Node roles/labels/cordon/drain, placement policies with simulate, HAProxy pools (health checks, sticky, TLS termination, graceful drain, rollback on failed reload), keepalived floating IPs, site sync, account migration up to the switch 880e109c
5 planning, documentation and housekeeping changes
  • Backlog AI wiring items done 280ce52c
  • Backlog CDN follow-ups 91327f85
  • General Respirecloudctl in make build and the lab stage (w8-05 follow-up) df705452
  • General Owner requirement #20 (CLI/UI consistency, reset config) — cards w8-05, w8-06 93ff664e
  • General Wave-8 cards — cluster/LB, CDN, AI, Store/licensing 08ca4d34

Milestone 7: Milestone 7

  • New Core Dry runs pass through cross-module calls (callee previews), reads run normally inside a preview 7c4bcb5b
  • New Dns,providers External-DNS delegation (records, ACME challenges), delete-first replace import, 22 libdns providers (26 native total), Hostinger/GoDaddy mock tests 7d1090ca
  • New Providers Registrar/DNS-host connections with API keys (Cloudflare, Hostinger, GoDaddy, Porkbun + custom REST adapters with SSRF guard), import, external DNS push, NS switch, DS publish, expiry events 37029bf4
6 planning, documentation and housekeeping changes
  • Merge Front-end gates (typecheck, lint, build) when web or module UIs change da264a62
  • Backlog Managed-files/slugs remainder; w7-03 in flight 925cbba8
  • General Card w7-03 dns↔providers delegation + libdns adapters fee1326f
  • Backlog Dns↔providers delegation and libdns adapters ed7849f4
  • Providers Catalog of 34 registrar/DNS-host APIs + custom-provider model d7ad3865
  • General Requirement 19 (provider API keys) + cards w7-01 provider catalog research, w7-02 providers module 1dfa4cf8

Milestone 6: Product site, distributions and module screens

  • New Pluginhost Built-in actions can be previewed (pluginhost.IsDryRun) when their manifest declares dry_run 1619618c
  • New Mail,webmail Mail admin (deliverability ring + record-preview fixes, DMARC/MTA-STS, DKIM rotation, mailboxes, aliases/catch-all, server self-test + queue) and the three-pane webmail client (live updates, search, labels, shortcuts, rules, out-of-office, identities, sandboxed HTML); Sieve keeps webmail rules + vacation on every sync 0eaf7c6a
  • Fixed Merge Auto-resolved go.sum/pnpm-lock conflicts went on to roll the merge back; now they proceed to the gates d5084e64
  • New Site Respirecloud.respiresoft.com — 47 pages, 15-step guided tour, docs generated from module manifests, changelog from git, Lighthouse 95–100; scripts/deploy-site.sh eb79d551
  • Fixed Panel The account's 2FA page is "Sign-in security" in the nav (the Security module kept its name) 041be276
  • Fixed Design system Disabled list items for both cmdk (data-disabled=true) and Radix menus (data-disabled="") 6319c434
  • Fixed Design system Command/combobox options were unclickable — cmdk sets data-disabled="false" on enabled items 72d8baec
  • Fixed Panel 2FA grace period — remind until the deadline, lock to Security only once enrol_enforced 2a44b8f9
  • New Distros Ubuntu 22.04/24.04/26.04, Debian 12/13, AlmaLinux 9/10, Rocky 9/10 dae127bf
  • New Databases Bring-your-own servers (MySQL/MariaDB/PostgreSQL/ClickHouse/Valkey), on-demand engines (MySQL 8.4, PGDG 14–18, ClickHouse, Qdrant, FerretDB), snippets, clean import, Adminer SSO fc004852
  • Fixed General SPA routes with dots, Input icon padding, large audit values summarised; feat: public Git webhook route for apps a6f4b140
  • New Apps,editor Runtimes via mise, 30 framework presets, Git deploy with atomic releases + webhook + rollback + auto-revert, workers/cron; code-server per account on a unix socket with Open VSX policy 6a09cc4e
  • New Design system Accounts, domains, dns zone editor, web site workspace — inline editing, plan previews, health chips, batch DNS apply a5caa112
  • Fixed Panel Step-up dialog uses POST /api/v1/auth/stepup (rotating cookie + CSRF); cache lazy module routes so suspended loads resolve 0af8b720
  • New Design system Databases, file manager (uploads, CodeMirror editor, trash, SSH page) and browser terminal (xterm, splits, root frame, recordings) b30d7263
  • New Platform Managed files with drift detection + adopt/reapply/reset/unmanage (web, mail, dns), slugs for accounts/domains/sites 659d7534
  • New Core Module settings at runtime — core.module.list/settings.get/settings.set, schema-validated, secrets masked, Reconfigure RPC (no restart) 6d042ba8
7 planning, documentation and housekeeping changes
  • Status Refresh after w6-01/02/07, w8-01/05 and the editor gateway 239e7881
  • Backlog Follow-ups from w6-01, w6-07, w8-01 4b0d52c1
  • Merge Resolve pnpm-lock conflicts from main's lockfile (pnpm can't parse conflict markers) 4d7dc665
  • Merge Auto-resolve pnpm-lock conflicts; print MERGED-OK only on success 047697ac
  • General Cross-cutting backlog collected from agent handovers 7a0f8ca8
  • Status After waves 4–5 merges; wave 6 in flight 3edbcd56
  • General Wave-6 cards — product site, distros, managed files + slugs, BYO databases, module UIs (3), runtimes + editor e2b6d5c4

Milestone 5: Certificates

  • New Core Host.AgentTimeout (<=30 min) for long ops; panel HTTPS uses the ssl-deployed certificate when present (hot reload) b2fc8ac0
  • New SSL ACME via lego — HTTP-01, wildcard DNS-01, node-generated keys, auto-SSL, ARI renewals, uploads, revoke, deploy to web/mail/panel 5f13f7ae
3 planning, documentation and housekeeping changes
  • General Cleanup rule for agents; keep the terminal test client in lab/tools 19caa7fc
  • General Requirements 14–18 (BYO DB/storage, config drift + slugs, IP:port access, multi-distro, product site) 32d8ac3d
  • General Card w5-01 ssl 2bc34222

Milestone 4: Storage, containers, security and observability

  • New Containers Docker + Compose with a strict canonical validator, signed one-click catalog (10 apps), stacks in the account slice, upgrades with snapshot + auto-rollback feda3afc
  • Fixed General Resolve conflict markers committed with the webmail merge; add guarded merge script 43695f05
  • New Webmail IMAP/SMTP/ManageSieve gateway, threads, search, send with undo, rules, IDLE events, strict HTML sanitiser 32c4cba8
  • Fixed Installer Write the HTTPS listener settings into respirecloudd.env 777ad833
  • Fixed Agent Rename security's diff/health helpers that clashed with web's after merge ba3d3d6d
  • New Security Nftables firewall with auto-rollback, CrowdSec, ClamAV/YARA quarantine, integrity, hardening, score 3f579804
  • New Storage and backups Rclone connections, built-in S3 (SeaweedFS), restic backups + restores e14a4f95
  • New Stats and logs Agent collectors, VictoriaMetrics/VictoriaLogs, per-account tenants, scoped PromQL/LogsQL, alerts, audit verify + tamper check 6a0b454d
  • New Terminal Browser terminal gateway — cookie + Origin + single-use session-bound ticket, caps, revalidation, root step-up, audit 3ddaf3e5
5 planning, documentation and housekeeping changes
  • Decisions 0015 managed files + drift options, slugs, bring-your-own servers, supported distros 3c2f374f
  • Guides Prefix shared agent helpers with the module name 218b255c
  • Status After DNS, mail, databases, files/terminal, auth glue merges 0efccb70
  • General Cards w4-03 terminal gateway, w4-04 security, w4-05 stats/logs, w4-06 webmail backend 28344ad5
  • General Wave-4 cards — storage/backups, containers/app catalog 9d7cfc8f

Milestone 3: Panel and sign-in

  • New Panel HTTPS listener (RC_TLS_LISTEN, internal-CA cert) + lab PUBLIC=<port> to open a lab panel by IP:port 7a8d3318
  • New Panel The RespireCloud SPA — passkey/password/TOTP sign-in, setup, security page, nav from modules, generic action pages, Ctrl K, plan previews, step-up, module UI runtime; embedded in respirecloudd 3052b720
  • New Sign-in One impersonation flow, initial passwords, suspension revokes access, session rotation on step-up/password change, 2FA required for admin+reseller 6f965017
3 planning, documentation and housekeeping changes
  • Design CTO answers to screen-spec questions aa9a7a05
  • Design Screen specs — accounts, domains, dns, web, databases, mail, files, terminal 30a7838c
  • General ADR 0014 frontend decisions, lab rule update, wave-3 cards (shell, screen specs, identity-auth glue) 1427ae1f

Milestone 2: Hosting services

  • New Websites Nginx + PHP-FPM sites, layered configs with validate/swap/health/auto-rollback, HTTP-01 + cert install contract f0646725
  • New Files and terminal File ops as the account user (openat2 BENEATH), SSH keys/modes, SFTP chroot, hardening, PTY sessions over the bus f1719a00
  • Fixed Installer Wait for the API before enrolling the local agent (race once several modules load) b04d0d91
  • New Mail Postfix + Dovecot + Rspamd — domains, mailboxes, aliases, forwarders, DKIM/ARC, DMARC, MTA-STS, queue d5cc98b7
  • New DNS PowerDNS zones, records, templates, DNSSEC, import/export, history, reconcile, ACME hooks ff58a652
  • New Core Manifest schedules (system-actor internal actions, advisory-locked), Host.Limit read, account deletion stops the account slice first 54b8280b
  • New Databases MariaDB/MySQL, PostgreSQL, per-account Valkey — dbs, users, grants, remote, quotas, dump/restore 83bc6952
  • Fixed Identity The bootstrap admin always holds the built-in admin role 9900801b
  • New Test lab Multi-instance lab (LAB=<id>, <=3 concurrent, FAKENET=min|full, lab-ps, lab-gc) 5f52d54e
3 planning, documentation and housekeeping changes
  • Test lab 5 concurrent instances (measured ~150–500 MB each; 13 GB free) ff6bb9c0
  • Status Team board after wave 1 merges 2d8cf95d
  • General Module developer guide and wave-2 task cards 8bb63b89

Milestone 1: Core platform, identity and design system

  • New Design system RespireCloud glass design system @rc/ui + gallery 1d622ab6
  • New Sign-in Passwords (Argon2id), passkeys, TOTP, recovery codes, sessions + CSRF, step-up, API tokens, login protection 98e533f1
  • New Agent Driver registry (init-registered module drivers) and allow-listed system.apt.ensure 66192abb
  • New Identity Roles, scoped grants, plans, impersonation, rbac.Service wired into startup a654f09d
  • New Security Per-node NKey enrolment, internal CA + TLS 1.3 bus, per-node NATS permissions 49a4c25e
  • New Domains Domains module — IDNA, dry-run plans, scoped grants, durable accounts.deleted subscription 44fc5c8e
  • New Test lab Lab v2 — Valkey, cluster profile, fake internet (Pebble, CoreDNS, Mailpit, SeaweedFS) fd976ded
  • New Agent Per-account slices (cgroup v2 limits), quotas, allow-listed service control c69e919a
  • New Core Durable cross-module events (JetStream RC_EVENTS), manifest subscriptions, internal actions 21e4bf62
  • New Module SDK Dry-run plans + inverse actions; docs(adr): 0013 platform decisions f02143d3
  • New Module SDK Scoped grants (Actor.scoped, Call.Can), manifest resources, rbac.Resolver contract 442f2530
  • New Test lab Docker lab v1, Makefile, systemd units, install skeleton 96022054
  • New Accounts Reference module end to end; built-in core module; create rollback on refusal 0ddcb4d4
12 planning, documentation and housekeeping changes
  • Team Wire adopted skills into every role card df02d90e
  • Team Adopt 8 vetted Claude skills with provenance d871aa3c
  • General Task card w1-12 adopt vetted Claude skills 9643aa3d
  • Specs Infrastructure & platform specs — storage, cdn, backups, containers, cluster, security, software, stats, logs, ai 304b5710
  • General Task cards w1-09 identity/RBAC, w1-10 auth, w1-11 lab v2 1d522dea
  • Decisions 0012 hosting-service decisions from wave-1 spec questions 6d451149
  • Specs Hosting services specs — web, dns, ssl, mail, webmail, databases, files, terminal, editor 53d49e97
  • Research Reference library index, deep notes, paid-panel public docs e1467787
  • Decisions 0011 product decisions from wave-1 spec questions e730baee
  • Specs Platform & business module specs 7e74ac8c
  • General Task cards w1-07 agent security, w1-08 agent limits 48cdd8e8
  • General Role cards and wave-1 task cards 20d82c06

Milestone 0: Foundation

Planning and design work for this milestone.

1 planning, documentation and housekeeping change
  • General W0 foundation — plan, research, ADRs, plugin contract, module SDK, plugin host, agent, core API fde79c78