Skip to content

feat(cloud): add managed control-plane funnel - #562

Open
dviejokfs wants to merge 10 commits into
mainfrom
feat/cloud-funnel
Open

feat(cloud): add managed control-plane funnel#562
dviejokfs wants to merge 10 commits into
mainfrom
feat/cloud-funnel

Conversation

@dviejokfs

@dviejokfs dviejokfs commented Aug 6, 2026

Copy link
Copy Markdown
Contributor

Summary

  • add the two-step Temps Cloud enrollment, status, disconnect, and reconnect lifecycle
  • expose the Cloud account and managed AI entry in the OSS console
  • route the single OSS Temps Cloud notification provider through managed Slack and email sinks
  • make provider Test send a real notification instead of only checking health
  • regenerate CLI and web clients from the merged 674-route OpenAPI document
  • make shutdown's final Cloud flush observable and prove it remains timeout-bounded

Evidence

  • cargo fmt --all -- --check: passed
  • cargo check --lib: passed (existing warnings only)
  • cargo test --lib -p temps-notifications: 121 passed
  • cargo test -p temps-cloud-client --lib flusher::tests: 7 passed, including successful delivery, backend rejection retention, and timeout preservation
  • cargo test -p temps-cloud-client --tests: 59 passed across 3 suites
  • bun run typecheck in apps/temps-cli: passed
  • bun run build in web: passed (existing CSS import warnings)
  • Playwright Cloud/AI flows: 4 passed
  • real local browser flow: OSS test alert reached Cloud, Slack #alerts, and SMTP capture in one run

Follow-up

  • security review is intentionally deferred at the product owner's request until the functionality pass is complete; do not merge this PR as production-ready before that review.

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.
@github-actions

github-actions Bot commented Aug 6, 2026

Copy link
Copy Markdown

📓 Changelog preview

This is what your commits will add to the generated CHANGELOG.md at release time (via git-cliff). Do not edit CHANGELOG.md by hand — it is generated from your Conventional Commit messages.

## [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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant