feat(cloud): add managed control-plane funnel - #562
Open
dviejokfs wants to merge 11 commits into
Open
Conversation
Adds the temps-cloud crate (plugin, handler, service), extends the cloud client's link lifecycle and status, exposes a Cloud settings page in the console, and grows the CLI's cloud commands. Committed as-is from the worktree so main can be merged in with a real three-way merge rather than a stash replay.
Conflicts, all in the console:
- App.tsx: main reindented the settings routes under a new wrapper; took
main's structure and re-added the cloud route.
- api/client/{index,sdk.gen,@tanstack/react-query.gen}.ts: both sides added
generated exports. Resolved by replaying each side's insertions onto the
base list rather than re-sorting, so the generator's own ordering is kept.
Regenerating against a live server is still the authority if these drift.
The sidebar entry existed but the palette did not, so ⌘K -- the way most people navigate the console -- could not reach managed cloud at all. Keywords cover what someone actually types when they are shopping for it (retention, backup, managed) rather than only the product name, and the e2e spec asserts both routes to it.
dviejokfs
force-pushed
the
feat/cloud-funnel
branch
from
August 6, 2026 09:53
a94be7a to
ee5beeb
Compare
📓 Changelog previewThis is what your commits will add to the generated ## [Unreleased]
### Added
- **cloud:** Add secure managed telemetry client
- **cloud:** Add managed cloud link lifecycle and console settings
- **console:** Find Temps Cloud from the command palette
- **cloud:** Integrate managed alert routing
- **cloud:** Declare backup restore artifacts
### Fixed
- **openapi:** Preserve canonical cloud schema diff
### Miscellaneous
- **merge:** Sync cloud funnel with main
### Refactor
- **cloud:** Require backup checksums
### Testing
- **cloud:** Prove bounded shutdown flush |
Resolve seven conflicts, six of which were artefacts rather than real
disagreements.
main canonicalised `apps/temps-cli/openapi.json` (recursively sorted keys)
while this branch added the `/cloud*` endpoints against the old key order.
Git's line-based merge therefore reported ~1,800 conflicting regions in a
93k-line generated file. Merging the parsed structure instead shows the true
change set is additive on both sides and disjoint: this branch adds 4 paths,
4 schemas and `AppSettings.cloud`; main adds 4 paths, 15 schemas and
`AppSettings.self_update`. Zero keys diverge. The resolved spec is main's
canonical file plus exactly those additions - 210 inserted lines, no
deletions.
The TypeScript clients are regenerated rather than hand-merged, since the
conflicts were single-line `import type {...}` / `export {...}` statements
listing every symbol in the API.
One trap worth recording: `web/`'s client could not simply be regenerated
from `openapi.json`. main's committed spec is stale - the ADR-036 sandbox
work landed `lifecycle`, `project_id` and `source_repo_url` in
`web/src/api/client/` (generated from a live server) without refreshing the
file. Regenerating from the file would have silently reverted those fields.
`web/` therefore keeps main's client with only the cloud delta applied, and
its diff against main is now purely additive.
Verified: cargo check --workspace --all-targets, cargo clippy -D warnings,
tsc --noEmit and eslint all clean.
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
Evidence
cargo fmt --all -- --check: passedcargo check --lib: passed (existing warnings only)cargo test --lib -p temps-notifications: 121 passedcargo test -p temps-cloud-client --lib flusher::tests: 7 passed, including successful delivery, backend rejection retention, and timeout preservationcargo test -p temps-cloud-client --tests: 59 passed across 3 suitesbun run typecheckinapps/temps-cli: passedbun run buildinweb: passed (existing CSS import warnings)#alerts, and SMTP capture in one runFollow-up