Repository navigation
First stable tree cleanup and release contracts - #1063
Merged
Merged
Conversation
added 17 commits
September 25, 2026 04:30
Delete the waitlist endpoint and table binding, Organization logs and deployments pages, docs/pricing/home marketing pages and their CSS and assets, and three server functions nothing called (deleteServices, restoreWorkingDocument, listDeploymentOperationEvidence) with their backing operations. / is now a stub lander; auth is unchanged.
…_DIRECTORY (#1025) - ControlPersist=10m is a constant; PLOYZ_SSH_CONTROL_PERSIST is gone. - PLOYZ_HEALTH_MONITOR_PERIOD is gone; update.monitor or the 5s default. - PLOYZ_RELEASE_DIR, ployzd install --release-dir and PLOYZ_UPGRADE_RELEASE_DIR are gone. The upgrade receipt stores no source; ReleaseSource::Local is cfg(test) only. - setup_cli bootstrap scenarios run in-process with the bootstrap passed in. - core/README.md documents PLOYZ_ACME_DIRECTORY.
Replace every Drizzle migration with one baseline generated from the current schema plus the hand-written Organization change log triggers. The retired waitlist table is gone. Postgres-backed tests share the Effect container harness in src/test/postgres.ts; the duplicate GitHub-ingestion harness is deleted. Rename the discard test to what it covers.
Release tags publish ghcr.io/getployz/ployz-cloud:<tag> from the existing Cloud build and attach a Compose file pinned to that tag. The self-host Compose runs web and worker from one image beside Inngest, Redis, and Postgres; migrations are an explicit one-shot command and the worker is healthy only while Inngest Connect is active. README documents the env contract and the operator-owned GitHub OAuth App and GitHub App.
Delete docs/ except docs/agents/domain.md, evidence/, the root Dockerfile and its .dockerignore. Drop the release pack job's copies of Fast CI contract scripts and evidence routing in CI selection. Rewrite the retained READMEs, DESIGN, CONTEXT, RELEASE and agent guidance for the 1.0 tree: the CLI command tree, the 1.x stable promise, Cloud's required environment, the release Cloud image and self-host assets.
Fold main's open_started_deployments column into the squashed baseline; point the new deployment-view Postgres test at the shared harness; drop main's Organization logs route, which this branch retired.
Match the stable promise to #980 (v0.2.0, 0.x, v0/stable), push the Cloud release image only on Publish, drop ReleaseSource from production installer signatures, share the bootstrap archive name, read Cloud config once, and trim the Postgres test harness.
Restore the draft-run Cloud image push and document it, pass the release source explicitly to the installer, keep every config failure in the combined error, and close the Postgres test runtime through the scope.
# Conflicts: # dashboard/src/modules/github/github-ingestion.postgres-test-harness.ts
nick-potts
marked this pull request as ready for review
September 25, 2026 07:48
|
You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard. |
# Conflicts: # core/CONTEXT.md # core/crates/ployz/tests/cloud_init/founder_resumption.rs # core/crates/ployz/tests/hosted_dns_cluster.rs # core/crates/ployz/tests/setup_cli.rs # dashboard/src/db/schema.ts # dashboard/src/modules/machines/enrollment.server.postgres.test.ts # dashboard/src/modules/runtime/teardown.server.postgres.test.ts
nick-potts
added a commit
that referenced
this pull request
Sep 30, 2026
Deploy and Sign in open sign-in in a dialog over the page again, as they did before #1063; /auth stays for direct links and before the page is interactive. /auth no longer stands alone: the _public layout gives both signed-out pages the same header, footer and light scope, and the header's links reach the lander's sections from either page. On /auth the frame drops its own sign-in links, and the sign-in panel loses its placeholder tile.
nick-potts
added a commit
that referenced
this pull request
Sep 30, 2026
* Lander: keep the platform, drop the bill, for the #1225 launch The public page at / replaces the stub with a page for a solo developer who already pays a hosted platform. It follows the rhythm of Porter's homepage: the dashboard on a server, the root prompt handed to `ployz up`, the stack it deploys, preview environments and reviewed changes, what Ployz runs, pricing, a founder quote, a comparison and seventeen honest answers. Database moves and backups carry Soon tags. The pictures are built from the product's own Card, status colours and bottom bar, with wires in the canvas's edge shapes. The page is always light: `.light` rescopes the tokens, and the dark variant skips a `.light` subtree without changing its specificity. The glossary lets the public site say "preview environment". It launches with #1225: its CLI lines are checked against the shipped CLI before merge. * Lander: sign in over the page, and give /auth the lander's frame Deploy and Sign in open sign-in in a dialog over the page again, as they did before #1063; /auth stays for direct links and before the page is interactive. /auth no longer stands alone: the _public layout gives both signed-out pages the same header, footer and light scope, and the header's links reach the lander's sections from either page. On /auth the frame drops its own sign-in links, and the sign-in panel loses its placeholder tile.
nick-potts
added a commit
that referenced
this pull request
Sep 30, 2026
* Lander: keep the platform, drop the bill, for the #1225 launch The public page at / replaces the stub with a page for a solo developer who already pays a hosted platform. It follows the rhythm of Porter's homepage: the dashboard on a server, the root prompt handed to `ployz up`, the stack it deploys, preview environments and reviewed changes, what Ployz runs, pricing, a founder quote, a comparison and seventeen honest answers. Database moves and backups carry Soon tags. The pictures are built from the product's own Card, status colours and bottom bar, with wires in the canvas's edge shapes. The page is always light: `.light` rescopes the tokens, and the dark variant skips a `.light` subtree without changing its specificity. The glossary lets the public site say "preview environment". It launches with #1225: its CLI lines are checked against the shipped CLI before merge. * Lander: sign in over the page, and give /auth the lander's frame Deploy and Sign in open sign-in in a dialog over the page again, as they did before #1063; /auth stays for direct links and before the page is interactive. /auth no longer stands alone: the _public layout gives both signed-out pages the same header, footer and light scope, and the header's links reach the lander's sections from either page. On /auth the frame drops its own sign-in links, and the sign-in panel loses its placeholder tile. * Dashboard: name you in the rail, and open the lander at Home - The wide rail shows your name and organization; the canvas rail stays the avatar - /home shows the lander to signed-in users, linked from the account menu - Signed-in actions on public pages go straight to the dashboard
nick-potts
added a commit
that referenced
this pull request
Sep 30, 2026
nick-potts
added a commit
that referenced
this pull request
Sep 30, 2026
* Lander: keep the platform, drop the bill, for the #1225 launch The public page at / replaces the stub with a page for a solo developer who already pays a hosted platform. It follows the rhythm of Porter's homepage: the dashboard on a server, the root prompt handed to `ployz up`, the stack it deploys, preview environments and reviewed changes, what Ployz runs, pricing, a founder quote, a comparison and seventeen honest answers. Database moves and backups carry Soon tags. The pictures are built from the product's own Card, status colours and bottom bar, with wires in the canvas's edge shapes. The page is always light: `.light` rescopes the tokens, and the dark variant skips a `.light` subtree without changing its specificity. The glossary lets the public site say "preview environment". It launches with #1225: its CLI lines are checked against the shipped CLI before merge. * Lander: sign in over the page, and give /auth the lander's frame Deploy and Sign in open sign-in in a dialog over the page again, as they did before #1063; /auth stays for direct links and before the page is interactive. /auth no longer stands alone: the _public layout gives both signed-out pages the same header, footer and light scope, and the header's links reach the lander's sections from either page. On /auth the frame drops its own sign-in links, and the sign-in panel loses its placeholder tile.
nick-potts
added a commit
that referenced
this pull request
Sep 30, 2026
* Lander: keep the platform, drop the bill, for the #1225 launch The public page at / replaces the stub with a page for a solo developer who already pays a hosted platform. It follows the rhythm of Porter's homepage: the dashboard on a server, the root prompt handed to `ployz up`, the stack it deploys, preview environments and reviewed changes, what Ployz runs, pricing, a founder quote, a comparison and seventeen honest answers. Database moves and backups carry Soon tags. The pictures are built from the product's own Card, status colours and bottom bar, with wires in the canvas's edge shapes. The page is always light: `.light` rescopes the tokens, and the dark variant skips a `.light` subtree without changing its specificity. The glossary lets the public site say "preview environment". It launches with #1225: its CLI lines are checked against the shipped CLI before merge. * Lander: sign in over the page, and give /auth the lander's frame Deploy and Sign in open sign-in in a dialog over the page again, as they did before #1063; /auth stays for direct links and before the page is interactive. /auth no longer stands alone: the _public layout gives both signed-out pages the same header, footer and light scope, and the header's links reach the lander's sections from either page. On /auth the frame drops its own sign-in links, and the sign-in panel loses its placeholder tile. * Dashboard: name you in the rail, and open the lander at Home - The wide rail shows your name and organization; the canvas rail stays the avatar - /home shows the lander to signed-in users, linked from the account menu - Signed-in actions on public pages go straight to the dashboard
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Implements spec #986: the first stable tree. Cloud authors the Deploy Intent, and the CLI operates a Cluster over SSH. #987–#992 and #994 already landed on main (#994 in #1059). This branch adds the rest.
Release flow (#996):
Missing config now fails like this:
Evidence
ConfigErrorthat didn't say which one. There was no self-host compose, and there were 12 migrations plus two Postgres test harnesses.After:
docker compose upon a fresh database with no Polar variables: web returns 200 on/and/api/auth/get-session, the worker is healthy, and the baseline applies.baseline.postgres.testpasses on an empty database. The dashboard's 975 tests passed after Squash Cloud schema to one fresh Postgres baseline #995, including 30 Postgres test files.cargo clippyandnextestpass on the merged tree. actionlint andscripts/test-ci.pypass.Merge Danger
Door: one-way
The migration history is squashed into one baseline, so the existing Railway Postgres has to be dropped (it's disposable per #986). ADRs, audits, design notes and
evidence/are deleted; they remain in git history.Blast Radius: wide
linux/amd64only. The draft release run pushesployz-cloud:<tag>after tests pass, so the tag is pullable before Publish. RELEASE.md says so.buildjob now waits forstaticandtest.dns.uncloud.run, andPLOYZ_INGRESS_VERIFY_PORTremains until Remove Hosted DNS from the daemon, SDK and CLI #1024.Closes #986
Closes #993
Closes #995
Closes #996
Closes #997
Closes #998
Closes #1025