Repository navigation
v0.2.0-rc.1
Pre-release
Pre-release
·
165 commits
to main
since this release
Changelog
- ba6e505 CONTRACTS.md: stream buffers, report lanes, panel rollback records
- 6b2233e CONTRACTS: git seed V2, provider allowance, node's own addresses, proxy names
- 09effd8 CONTRACTS: git seed rules, git.allowInternalHost, git through the agent's proxy
- 738d9f4 CONTRACTS: node git guard limits and node addresses as internal git hosts
- 544a5ee CONTRACTS: node's own addresses and proxy-only names are 0.2.1 work
- f6aea5e Revert "agent: refuse the node's own addresses, and unresolvable names behind the proxy"
- 2c22475 agent test: scheduled cleanup and host shells against the real panel
- f979a85 agent: FetchGitFile stops at a refused commit fetch too
- da65786 agent: RetryCertificate makes Traefik ask the CA again for one route
- 32799e4 agent: VM-test the new engines' database shells through the Shell RPC
- 67bc9ef agent: VM-test the older majors the panel offers
- 79730c5 agent: a crash during a reconcile pass is reported and waits its delay
- 075f087 agent: clone with the user name the panel sends
- c16e69d agent: dbengine facts and capabilities without an RPC
- 89d2c05 agent: dial every git connection through an address-checking proxy
- 40949df agent: finish an interrupted project move on the next pass
- 6b679ae agent: forget a host shell refused while it was starting
- fddaecf agent: git goes through the agent's HTTP proxy again, with the address check
- a6432e9 agent: git-dial takes the command's streams; stop at a refused commit fetch
- 0128f2b agent: helper and job containers leave no anonymous volumes behind
- 9317454 agent: host shells drop the agent's OOM protection
- 1f60c38 agent: move running containers to another project's network without a restart
- 835d106 agent: refuse the node's own addresses, and unresolvable names behind the proxy
- 5d47e09 agent: remember the panel's identity and refuse other panels
- 0c2f799 agent: root shell on the host (HostShell)
- 7d99f6f agent: scheduled and disk-triggered Docker cleanup
- 739fb51 agent: shells, web UIs, TLS exposure and backups for the new engines
- c548deb alerts: a rolled-back update says that automatic runs hold the release
- f748b0a brand: the GitHub OAuth app's client id (Seylo-dev/Seylo, device flow)
- 591ec90 build: plain http:// git only when an admin allowed it
- 86d3759 ci: security workflow with govulncheck, osv-scanner and zizmor
- 65885d7 ci: zizmor 1.31.1, the newest version zizmor-action v0.7.1 has a lock for
- 803e41e cleanup: refuse cron the agent cannot read, report unreadable schedules
- 4d8d3e2 cron: Sunday as 7 is stored as 0, and the agent reports a schedule it cannot read
- b4d7f47 deps: override dompurify to 3.4.17
- 1399a9e docs: CONTRACTS make targets for the release scripts and the key check
- a30a59f docs: CONTRACTS on the frozen init migration and the e2e coverage of 0.2
- 59224a6 docs: Docker Hub ops, hosts, caches, rate limits and limits in CONTRACTS
- 0bbeab3 docs: Docker Hub page cap, config caps, refused hosts and token limit
- 0098726 docs: SECURITY.md threat model, secrets, release signing and verification
- 16aea95 docs: certificate retries in CONTRACTS
- 822b871 docs: clone and move review fixes in CONTRACTS.md
- e5e7129 docs: clones and project moves in CONTRACTS.md
- 60efe71 docs: cron parity, unreadable schedules and host shell closes in CONTRACTS.md
- 19aa538 docs: database engines in CONTRACTS and CONTRIBUTING
- 982d416 docs: e2e results of 79730c5 (38 of 38) and the live sites
- f858c05 docs: git providers, watch paths and the Gitea test in CONTRACTS
- 12b0887 docs: point the docs links at apps/docs in the Website repo
- 4258906 docs: scheduled cleanup and host shells in CONTRACTS.md
- 353e20d e2e: RESULTS.md 38/38 on the merged security fixes
- 913d20f e2e: RESULTS.md 38/38 on the round-2 security fixes
- 6661028 e2e: checks 32-38 for the 0.2 features and an upgrade from 0.1.1
- 8c6e91c e2e: results of a fresh run on the merged tree (8a3a7a5), 38 of 38
- 82af922 e2e: retry infra pulls, wait for Gitea's first branch, unique shell markers
- 64fc5bf edge: recheck tool sessions with the panel
- 382aa6e edge: refuse redirect targets with control bytes or backslashes
- 6c1d394 engines: fixes from the review
- f146c84 env-analyzer: hostMentions, the literal host name finder on its own
- 552249e fs: drop setuid/setgid and never make root-owned entries
- 30bcd75 github: hide the App and its installations from accounts with no source rights
- f075671 gitproviders: review fixes for provider webhooks, polling and watch paths
- 2bddb0a interop: send the session key from the node-ops driver
- a673dc8 it-gitea: remove the Gitea container's anonymous volume too
- 0e1eff4 merge feat/clone-move
- 4c733bc merge feat/dockerhub
- 8fa4300 merge feat/engines
- 8418e9f merge feat/git-providers
- 32994d0 merge feat/node-ops
- d76fd01 merge main: the auto-publish release job and the installer terminal fix
- 3df749c merge main: the motion and skeleton pass into the 0.2 features
- 169db41 merge sec/agent into sec/panel-hub
- 67fa069 ops: git.branches says which hosts it reads
- 8864f68 ops: watch-path matcher shared by the panel and the web app
- 0e051ce panel hub: cron and backup results get their own report budget
- 845e8b6 panel hub: test that a restarted panel seeds each report lane on its own
- f3ac19e panel hub: tiny DATA frames no longer cost an object each
- 6decbc0 panel test: setup tests set the GitHub client id they are about
- 7ef9426 panel: Docker Hub review fixes
- 490e30f panel: Docker Hub search puts the image named like the query first
- f0d48c1 panel: Docker Hub search, tags, image configs and one-click create
- 0711206 panel: FetchGitFile only on the stack's own node; no plain-http git (agentio-2)
- 9e3f880 panel: GitLab, Gitea/Forgejo and Bitbucket connections; watch paths
- e39bf11 panel: MCP consent preselects read only and names the app by its redirect host
- ba6447c panel: Postgres 18, pgvector, Valkey, KeyDB, Dragonfly and ClickHouse
- b9410e0 panel: a browser session needs its key as well as the cookie
- 00ae9f5 panel: a git URL with a token in it is refused, and never shown
- 444c534 panel: a node's own private address is an internal git host
- 2ac9248 panel: a push found while a deploy runs deploys after it, newest head wins
- 2c64522 panel: a script-restricting Content-Security-Policy on the web app
- 075834c panel: a shared credential is shared for one repository, URL or image
- 33bee4b panel: alert when a node cannot get its LB certificate (runtime-2)
- 375ebd5 panel: answer CheckEdgeAccess and mint tool tickets for sessions only (runtime-1)
- 17ef905 panel: bound watch path matching per push (dos-1, dos-5)
- 0ef7973 panel: cap durable report fields and budget them per node (protocol-3, dos-3)
- 2db0aba panel: cleanup schedule ops, run history and alerts
- 7d05632 panel: cliLogin.start limits a computer name per address, not panel-wide
- 1b26980 panel: clone a service, move a service to another project
- 34d5987 panel: clone and move fixes from review
- 3e2d902 panel: close an agent connection when Bun drops a frame (protocol-6)
- c05f4d4 panel: create-owner reads the password from the terminal or stdin
- 83ba66c panel: decode agent stream messages in linear time (protocol-1)
- 19d184d panel: dockerHub.create takes a command for images that need arguments
- 835a05e panel: domains.retryCertificate regenerates a domain's certificate
- fa7e6b7 panel: format the cleanup and host shell code with Biome
- f4c76d0 panel: forwarded headers only from trusted proxies, the visitor's address behind Cloudflare
- 3c3d943 panel: guard clones and moves against waiting references and stray stops
- a811b8b panel: host shell alert once the node accepted it, record closes across restarts
- e62a490 panel: host shells (hostShell.status, setEnabled, open)
- fe30e83 panel: keep webhook replay hashes in panel.db (outbound-2)
- af80d11 panel: keys limited to projects or actions stay out of account-wide data
- bc692e9 panel: member invites and grants that add actions need a fresh sign-in
- 8dc9b2b panel: password guessing is capped per account and grouped by IPv6 /64
- 27e0ad9 panel: provider paths and webhook addresses can only point where meant
- 712b41a panel: rate limit GetDesiredState and reuse the compiled state (protocol-5)
- 55d18f9 panel: registries.list answers null user names to non-managers instead of 500
- 2bbb706 panel: rotate-master-key asks whether the panel identity is replaced
- 094bc57 panel: rotate-master-key script for a leaked data dir
- bb9c2af panel: security events in the process log, audit retention and a cap on anonymous rows
- fb45199 panel: seed only hosts that resolve internal; provider and GitHub allowance by host
- cb8e45a panel: seed only internal git hosts; git.allowInternalHost for split-horizon ones
- 323f834 panel: shared pickers are empty for accounts that cannot use them anywhere
- 41f1df5 panel: sign HelloAccepted with the panel's identity key (protocol-4)
- 76daf63 panel: smaller pre-auth op bodies, a shared body budget, GitHub deliveries limited per sender
- efa3d00 panel: tell nodes which git hosts may be internal; git.branches follows them
- 7735894 panel: test that seeded git hosts build with allow_internal_host
- 171d7a3 panel: tests: no unsafe optional chaining in the agent events test
- 9771ca4 panel: the live socket limits messages per person and topics per socket
- 7b85fef panel: the public OAuth endpoints read capped bodies; registrations limited per /64
- b3835fd panel: throttle stream-0 events from a node (protocol-2)
- ed02a44 panel: tool tickets opened with an API key are rechecked as that key (runtime-1)
- edc1ddf panel: uptime targets trust only admin-set node addresses (outbound-3)
- 790860a panel: vet git addresses on save and dispatch, FetchGitFile on project nodes (agentio-2)
- d44b8d4 portgate: the relay VM test waits for whoami to listen
- 36f4409 proto: Valkey, KeyDB, Dragonfly and ClickHouse database engines
- d240bb7 proto: cleanup schedule and runs, host shell, node time zone
- ac4e627 proxy: no LB entry point routers without lb_tls
- 48d20fe release: sign in a separate job that alone holds the minisign key
- 3c0b08e services: ClickHouse's INTERNAL_HTTP_* in the open-variable check
- a1f0923 services: a project move needs the right to attach the source's credential there
- 2666733 test: git providers against a real Gitea in the test VM
- 0c2c443 tests: CI-safe time limits on the security regression tests
- 13cc5c7 update: back off from a release the guard rolled back
- 5f02369 updates: automatic runs skip a release a node rolled back
- ed6683d watch paths: compile the patterns once per decision
- f2b2063 watch paths: decide ordinary large pushes in full, keep the work bound
- 24d638e watch paths: refuse a path without the glob's middle literal run
- 19226c8 web: Clone and Move to project in the service menu
- 8b3b803 web: Docker Hub tab, prefilled image form and popular images
- 97bd2f1 web: Generating SSL certificate and Regenerate certificate on the Domains tab
- 27e52a3 web: Git providers settings, provider sources and the watch paths editor
- 486e5a5 web: Show more stops at page 20, private images preselect their login
- aaffcae web: a GitHub-connected service's Source tab shows the repo read-only to view-only members
- d3b376b web: browser tests open the app before reading the session key, and wait out the invite limit
- 42bc2f4 web: drop three unused Docker Hub strings
- 0570eae web: keep unsaved cleanup edits, phone-width node sheet, agent user label
- 66cb87d web: node Cleanup and Shell views
- bc0766c web: quiet re-auth cancels on the Shell view, refresh the schedule after save
- a31cf3d web: the 0.2 screens follow the motion conventions
- 8a3a7a5 web: the browser tests' panel keeps GitHub off now that brand.json has a client id
- e707f3a web: the new engines in the New database form and Connection tab
- 0f72860 web: warn on every page reached over plain HTTP; the setup link says so too
- 37cf21f webhooks: GitHub's own delivery addresses never take a refused-delivery token
- e7738ef webhooks: a repeated signed GitHub delivery keeps its token
- d72b0c6 webhooks: never refuse signed GitHub deliveries for volume
- 349add6 webhooks: provider hooks answer 200 past their limit and leave it to the poll
- 953149d wings test: wait for the reattach instead of the next address report