Skip to content

Retire classic Prism assets and migrate saved SQL and builder alerts - #55

Merged
VibeSWE merged 8 commits into
mainfrom
feat/prism-retirement
Oct 21, 2026
Merged

VibeSWE merged 8 commits into
mainfrom
feat/prism-retirement

Conversation

@VibeSWE

@VibeSWE VibeSWE commented Oct 21, 2026 •

Copy link
Copy Markdown

Description

Source builds now embed only the native frontend. The classic Prism ZIP pin/download, compiled-asset overlays, fallback mount and comparison links are removed. Backend Prism APIs, node mode and stored documents remain supported.

The migration closes the main native editing/access gaps:

  • Server-saved SQL and SQL Logs views open as unsaved drafts or explicit browser-library copies without modifying server records or executing queries. Supported relative/native ranges and dataset scopes are retained; unsupported ranges are disclosed. Distinct windows and dataset selections remain separate.
  • Legacy builder alerts offer explicit Convert to SQL rule, preserving settings and server-managed enabled/mute state.
  • Native builds ship generated third-party dependency notices in embedded assets and the release ZIP.

Deployment changes: build frontend/ and set NEXT_ASSETS_PATH. Remove P_UI_ROOT=classic and LOCAL_ASSETS_PATH; both are rejected. Old /next bookmarks redirect to root. Backend-only P_BUILD_NO_UI=1 is restricted to debug builds. Release build.zip remains the native frontend artifact.

See the migration guide for remaining limitations: non-SQL classic builder/search views need manual recreation; server-library writes/sync, advanced dataset settings, metrics builder/catalog/histograms, Logs grouping and dashboard templates remain follow-ups. This PR does not include the separate dashboard persistence work.

Validation

  • Formatting, TypeScript/production build; 2,403 unit tests passed, 14 skipped.
  • Full application browser run: 593 passed, 2 skipped; three failures traced to Chromium resource exhaustion with a nearly exhausted user /tmp quota. All affected checks passed in a five-test isolated rerun with disk-backed TMPDIR, zero retries and no console errors.
  • 10 saved-query browser tests passed after the final dataset-scope fix; 25 production browser tests and 6 capability Storybook checks passed.
  • Full cargo check --locked --tests passed with native assets and independently in backend-only debug mode. Focused routing/build-contract checks passed during implementation.
  • Native ZIP contents, checksum and bundled license notices verified.
  • Independent Opus 5.5 and Astra reviews covered alert conversion, saved-query migration, build/routing and release paths; identified migration defects were fixed.

Additional end-to-end validation uses Sol 6.1 and Opus 5.5 against 70568346:

  • Full native-asset cargo build --locked -j 4 linked successfully; the disposable backend reports uiVersion: native-3.2.5.
  • 25 production-route and 14 focused/exploratory conversion checks passed (demo/mocked API), including narrow-screen accessibility, keyboard actions, dirty guards, cancellation, pending saves and retry.
  • 11 existing real-backend UI checks passed across runs: authentication/session recovery, missing-provider OIDC fallback, Logs, real SQL, dataset management and SQL/PromQL dashboards. Two stale test assertions were corrected without runtime changes; one loading timeout passed unchanged on isolated rerun.
  • New live migration coverage: 3 checks passed, seeding classic SQL/Logs views and a disabled/muted builder rule through the API, then checking UI opening/copying/execution and explicit conversion with exact persistence assertions.
  • Fresh full app run: 580 passed, 17 failed, 2 skipped. All original failures passed in the bounded lower-concurrency rerun (29 passed/1 additional failure); that additional case showed ERR_NETWORK_CHANGED and passed alone. Saved SQL 10/10 and Logs-to-SQL 8/8 passed. No reproducible UI regression was established; this was not a clean uninterrupted full-suite run.

Open backend validation finding: one repeated live migration run returned an empty result for the correct saved SQL/window around staging conversion. The server plan scanned zero files; a separate API probe caught a staging Parquet file-not-found 500 and transient stream-access 400s. The exact aggregate replay did not reproduce it in 361 requests. Query/staging/storage/sync code is unchanged from the PR base, but no baseline backend was run. The new tests remain strict, attach direct replay evidence on mismatch, and do not retry away failures. Details and artifact paths are recorded in frontend/docs/validation-review.md.

Not run: linked Rust tests, Docker image builds, cross-browser checks or real-IdP OIDC interoperability.

  • Added documentation for modified behavior and remaining migration gaps.
  • Added focused regression coverage and explanatory comments.

View with [code]smith Autofix with [code]smith
Need help on this PR? Tag @codesmith-bot with what you need.

VibeSWE and others added 8 commits October 21, 2026 09:35
Builder alerts were read-only in the native UI. The server already stores
and evaluates their generated SQL in `query` (the same path as code
alerts), and PUT /alerts/{id} accepts queryType "code" while keeping
state, mute and created time.

The detail page now offers "Convert to SQL rule", which opens the edit
form with the stored SQL shown exactly and every existing setting
(threshold, operator, window, frequency, severity, tags, targets,
opaque extra fields) prefilled. Opening the form only reads the alert;
nothing changes until "Convert and save". Cancel or a failed save leaves
the stored builder rule unchanged.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
List SQL /filters records (classic Prism queries with stream_name "sql"
and SQL Logs views) in a read-only "Server saved queries" section of the
SQL editor. Opening one creates an unsaved draft; copying one adds an
independent browser-library entry, preserving existing local queries.
Classic Logs views without a native explorer state can open their stored
SQL in the SQL editor. Builder and search views are never translated and
no server record is written, converted or deleted.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@VibeSWE
VibeSWE merged commit b371342 into main Oct 21, 2026
15 checks passed
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