Repository navigation
feat: preserve scoped Topics settings in observability templates - #409
Stephen Belanger (Qard) merged 13 commits into
Conversation
|
Latest downloadable build artifacts for this PR commit
Available artifact names
|
19f9192 to
f7c6f42
Compare
592624f to
aff70a4
Compare
b3261bb to
494b7e4
Compare
bc85730 to
e375291
Compare
# Conflicts: # README.md # src/observability/push.rs
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: c78e99e6a0
ℹ️ About Codex in GitHub
Codex has been enabled to automatically review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "Codex (@codex) review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "Codex (@codex) address that feedback".
Stack 1/2. Base: `main`. Next: [scoped Topics settings (#409)](#409). Review and merge this PR first. Older template pushes could attach another map when a facet already had one under a different slug. Later pushes failed on those multiple maps. Repair also removed the facet and map from other automations, even when those bindings were valid. With `--force`, push selects the map with the generated template slug, or creates it if needed. It detaches superseded maps only from the selected destination automation. Other automations keep their facet and map bindings. An existing matching map retains its customization and saved state. A newly created map needs generation before it can classify. Push does not regenerate topics or replay historical classifications. Detached map functions remain in the project and are listed in human and JSON output. They may still be referenced by other automations. The removal planner takes only the destination mutations, selected destination key, and superseded maps. Its four unused parameters have been removed. Checks: 17 focused `active_observability` tests passed, including selected-map replacement and preservation of another automation's shared-facet binding. Cargo formatting and `git diff --check` passed. Both branches include current main.
# Conflicts: # README.md
Declare vite-node in both ESM retry fixtures so Node 20 does not depend on an on-demand npm install.
Declare vite-node in both ESM retry fixtures so Node 20 does not depend on an on-demand npm install.
…-automation-settings
Fix the ESM eval retry failures uncovered by Node 20 CI on #409. The underlying issues already exist on main. - Use the existing awaited vite-node entrypoint for automatic ESM retries. #203 added this entrypoint but missed the retry path. - Add vite-node to both retry fixtures so tests install it upfront. Node 20's npm resolver crashes when the fixtures fetch it through npx at runtime. Validation: the Node 20 eval fixture cohort passed locally. All CI checks passed with this patch on #409; this PR isolates the same three-file change for review. Merge this before #409, which is stacked on this branch.
Stacked on #422, which isolates the ESM eval CI fix. Merge that PR first.
Carry a facet's Topics automation settings when copying it between projects.
Schema v2 adds
topics_automations: each referenced automation's name, description, and API-returned config. This includes scope, automation filter, sampling, model, status, and timing. Project-specificfacet_functionsandtopic_map_functionsare excluded and rebuilt in the destination.Pull selects settings by bound automation ID and repeats that selection after the facet picker. An unrelated same-name automation does not block export. IDs stay internal; template references remain names.
Push behavior:
--force. Replace settings in full while preserving destination wiring. Destination-only settings are dropped and the description can be cleared.--topics-automation: use the selected destination's settings instead.Version 1 templates remain readable. Specific experiment IDs produce an error naming the facet and automation because they cannot be carried between projects. Timing validation and normalization stay on the server.
Checks: 24 focused observability tests passed, covering settings round trips, push cases, API request contents, and automation-ID selection. Formatting and Clippy passed, with the existing root enum warning suppressed. A live pull verified three prompt facets, their shared saved preprocessor, and span-scoped Topics settings. No live destination push was performed. No backend changes are required.