diff --git a/.gitignore b/.gitignore
index 7f99485..06f8d9e 100644
--- a/.gitignore
+++ b/.gitignore
@@ -61,5 +61,5 @@ tests/docker/nas-data/*
# superpowers brainstorming visual companion
.superpowers/
-graphify-out/
+/graphify-out/
/*.png
diff --git a/assets/ExLabWizardLogo.svg b/assets/ExLabWizardLogo.svg
index 7dd15d1..11b9317 100644
--- a/assets/ExLabWizardLogo.svg
+++ b/assets/ExLabWizardLogo.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/assets/sync_cloud.svg b/assets/sync_cloud.svg
index 01a428f..8476de3 100644
--- a/assets/sync_cloud.svg
+++ b/assets/sync_cloud.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/assets/sync_local.svg b/assets/sync_local.svg
index d087e95..1319ef2 100644
--- a/assets/sync_local.svg
+++ b/assets/sync_local.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/assets/sync_nas.svg b/assets/sync_nas.svg
new file mode 100644
index 0000000..ecb17d3
--- /dev/null
+++ b/assets/sync_nas.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/docs/REMAINING_WORK.md b/docs/REMAINING_WORK.md
deleted file mode 100644
index b5aab5a..0000000
--- a/docs/REMAINING_WORK.md
+++ /dev/null
@@ -1,221 +0,0 @@
-# ExLab-Wizard — Remaining Work Specification
-
-**Verified against:** branch `fix/debug-with-playwright`, HEAD `85de7a3 feat: live config reload + opt-in staging_root`.
-All `file:line` references below were read from the current tree. Each item states the
-feature **intent** (with design-spec citation), the **current behavior / gap**, **what
-implementing it entails**, and the **issues / risks**.
-
-> **Tracked checklist:** [`REMAINING_WORK_TASKS.md`](./REMAINING_WORK_TASKS.md) — tick each
-> task and add an implementation note as it is integrated.
-
----
-
-## 0. Context
-
-### 0.1 Architecture (read first)
-The GUI is **NiceGUI mounted in-process on the FastAPI app**. The UI does **not** call the
-HTTP API — it calls backend objects directly off a dependency container `deps`
-(`deps.controller`, `deps.nas_sync`, `deps.lims_client`, `deps.keyring_store`,
-`deps.equipment_probe`, `deps.autostart_toggle`, `deps.audit_channel`, …). The `@router.*`
-HTTP routes under `src/exlab_wizard/api/` are a **parallel surface consumed only by the
-e2e/Playwright tests**. So "a route has no UI caller" is normal; an item is only a real gap
-when the **underlying capability has no path in the in-process UI** either. Every item below
-meets that stricter bar.
-
-### 0.2 What the recent edit changed (and didn't)
-`85de7a3` introduced **live config reload** (`apply_live_config` in `tray/dependencies.py`)
-plus an opt-in `orchestrator.staging_root`. Practical consequence for this backlog: settings
-saved from the dialog now apply **without an app restart**, so the editors proposed below
-(A2/A4/A5) take effect immediately once wired. The edit did **not** wire any of the inert
-Application-section controls, the operators editor, or any of the §B/§C items.
-
-### 0.3 Healthy baseline (not stubs)
-No `raise NotImplementedError` exists in the package; no bare `pass`/`...` bodies outside
-`typing.Protocol`; the validator's unresolved-placeholder detection is a **shipped feature**.
-The HTTP routers, `operations_modal`, and `session_progress` components are all built and
-unit-tested — the missing work is mostly **mount-layer wiring**.
-
----
-
-## A. UI controls that exist but are not functional
-
-### A1 — "Quit ExLab-Wizard now" button has no handler
-- **Where:** `src/exlab_wizard/ui/pages/settings.py:516` — `ui.button("Quit ExLab-Wizard now").props("flat")`, no `on_click`.
-- **Intent:** Frontend Spec **§7.13** (`design_specs/ExLab-Wizard_Frontend_Spec.md:1052`): an in-window button that initiates the same graceful shutdown as the tray "Quit", for when the operator can't find the tray icon. Graceful-shutdown protocol: Backend **§4.3.2** (`tray/quit_coordinator.py`).
-- **Current behavior / gap:** Renders but does nothing. The shutdown machinery exists but is **tray-process-local and not on `deps`**: `QuitCoordinator.quit()` (`tray/quit_coordinator.py:82`) runs the drain/force-quit protocol and `TrayApp.request_quit()` (`tray/main.py:77`) is the sync entry the pystray menu uses (`tray/main.py:109`), but `tray/dependencies.py` never attaches any quit callback to `deps` (it sets `deps.autostart_toggle` at `:130` and nothing quit-related; the `QuitCoordinator` is built later at `tray/main.py:171`).
-- **What implementing it entails:**
- 1. Expose a quit hook on `deps`: in `tray/main.py` after the coordinator/app are built (~`:171`–`:183`), set e.g. `deps.request_quit = tray_app.request_quit` (already handles running-loop vs no-loop, `tray/main.py:80`/`:84`).
- 2. Add an `on_quit` param to `render_settings_page(...)` and thread it to the Application section, mirroring how the LIMS credential handlers are plumbed.
- 3. In `ui/mount.py` `_settings()` (~`:358`) pass `on_quit=getattr(deps, "request_quit", None)` and wire the button with a `None`-guard; route the confirm through `QuitCoordinator.on_force_quit_prompt` (a NiceGUI confirm dialog) per §3.4.6.
-- **Issues / risks:** Calling `request_quit` **synchronously inside a NiceGUI handler kills the server serving the page** — schedule it (fire-and-forget) so the HTTP response flushes first; avoid deadlocking the event loop the window runs on. Disable/no-op the button in headless/test fixtures where `deps.request_quit` is absent.
-
-### A2 — "Start at login" autostart checkbox is not bound
-- **Where:** `src/exlab_wizard/ui/pages/settings.py:514` — `ui.checkbox("Start ExLab-Wizard at login")` with no initial value and no `on_change`. The comment at `:511-513` says wiring it "is a follow-up."
-- **Intent:** Frontend Spec **§7.13** (`Frontend_Spec.md:1048`) + Distribution **§15.7** (`design_spec_sections/15_Distribution.md:150,161,167`): a toggle that *immediately* registers/unregisters the platform autostart entry (LaunchAgent / systemd / Run-key), reflecting and reversible from Settings → Application.
-- **Current behavior / gap:** Renders inert; doesn't reflect real registration state. The capability is fully present and already used by the welcome card: `deps.autostart_toggle` (`tray/dependencies.py:130`, factory `:840`) calls `AutostartManager.register()/unregister()` and returns `is_registered()`; the welcome flow calls it via `_apply_autostart(deps, enabled)` (`ui/mount.py:687`). Same surface as the e2e-only `POST /setup/autostart` (`api/setup.py:289`).
-- **What implementing it entails:**
- 1. This section is **exempt from the draft/Save model** (§7.13 — applied immediately), so do not bind to the draft.
- 2. Add `deps.autostart_is_registered: bool` at build time (`tray/dependencies.py`, next to `autostart_toggle`) so the page can seed the checkbox without importing `tray/`.
- 3. Add params to `render_settings_page` (`autostart_present`, `on_set_autostart`); in `ui/mount.py` `_settings()` seed the value and wire `on_change` to reuse `_apply_autostart` (`mount.py:687`, already `None`-guards and logs). Reflect the **actual post-op `is_registered()`** result, not the optimistic checkbox state.
-- **Issues / risks:** `register()/unregister()` touch the real per-user filesystem; sandbox in tests via `EXLAB_AUTOSTART_ROOT` (`tray/autostart.py:80`) or the toggle stub. A failed registration must visibly revert the checkbox. Default-on applies only to the welcome card; here the initial state mirrors reality.
-
-### A3 — Application-section status indicators are hardcoded / missing (§7.13 parity)
-- **Where:** `src/exlab_wizard/ui/pages/settings.py:515` — `ui.label("Show in system tray: available")` is a **static literal** that doesn't reflect real `pystray` availability; there is no "Window behavior on close" text and no `[Refresh]` action.
-- **Intent:** Frontend Spec **§7.13** specifies the Application section also surfaces real tray availability and window-on-close behavior.
-- **Current behavior / gap:** The "available" string is always shown regardless of whether a tray backend loaded (on Linux without a tray, the app runs window-only per §15.7.4). Missing the close-behavior text.
-- **What implementing it entails:** seed the tray-availability label from a `deps` flag derived from whether `pystray` initialized; add the close-behavior copy. Low effort; bundle with A1/A2.
-- **Issues / risks:** low; cosmetic correctness.
-
-### A4 — Operators allowlist has backend enforcement but **no editor UI**
-- **Where:** omitted from `SETTINGS_SECTIONS` at `src/exlab_wizard/ui/pages/settings.py:30-32`; also absent from `_render_section_body`. Setup routing skips it in `ui/mount.py` (operators intentionally omitted).
-- **Intent:** Frontend Spec **§7.9** (`Frontend_Spec.md:1003-1007`): an Operators section backing `operators.allowlist` — a **chip input** (one chip per username, `[+ Add]`, per-chip delete) with helper text: *"If empty (default), the operator field accepts any value; if non-empty, the wizard renders a dropdown of these values and rejects free-text."* Config schema **§9** (`design_spec_sections/09_Configuration_File.md:116-123`); resolved Design-Spec Open-Q#11 (`ExLab-Wizard_Design_Spec.md:180`); creation-time gate in User Interaction **§2** (`02_User_Interaction.md:53,162`).
-- **Current behavior / gap:** Backend is correct and live: `OperatorsConfig.allowlist` (`config/models.py:422-427`) on `Config.operators` (`:565`); `controller/creation.py:540-547` rejects an operator absent from a **non-empty** allowlist. But with no GUI to populate it, the list stays `[]` and the gate is a permanent no-op for GUI users. The wizard's "dropdown vs free-text" behavior (Open-Q#11 resolution) is also not implemented on the creation wizard.
-- **What implementing it entails:**
- 1. Add `"operators"` to `SETTINGS_SECTIONS` (`settings.py:25`) and a `SECTION_TITLES` entry (`:46`).
- 2. Add an `elif section == "operators":` branch in `_render_section_body` (~`:464`) with a chip editor bound to `draft.operators.allowlist`. Persistence rides the existing draft → `finalize_settings_draft` → `on_save` → `_persist_config` → `apply_live_config` path — **no new plumbing**.
- 3. (Optional, separate) implement the wizard dropdown-vs-free-text behavior in the project/run wizard pages.
-- **Issues / risks:** needs a real chip widget (shared with A5). `OperatorsConfig` is `extra="forbid"`, `str_strip_whitespace=True`, and the allowlist is **case-sensitive** — the editor must not lowercase. Keep it **optional/non-gating**: do not add to `_missing_setup_sections` (the original reason it was pulled, so it can't block reaching the main GUI).
-
-### A5 — `content_scan_extensions` renders read-only (partial)
-- **Where:** `src/exlab_wizard/ui/pages/settings.py:482-484` — `ui.label("Scanned file extensions: " + ", ".join(...))`. Module docstring at `:399-402` notes list editors are "a follow-up."
-- **Status:** **Partially fixed** — equipment is now an editable add-form (`_render_equipment_section`, `:526-650`) and NAS-credentials is fully interactive; only `validator.content_scan_extensions` remains display-only (its scalar sibling `content_scan_max_mib` *is* editable at `:478-481`).
-- **Intent:** Frontend Spec **§7.10** (`Frontend_Spec.md:1016`): a **chip input** pre-populated with the spec defaults plus a **[Reset to defaults]** action. Configurability is resolved Design-Spec Open-Q#14 (`ExLab-Wizard_Design_Spec.md:183`).
-- **What implementing it entails:** replace the label at `:483` with a chip editor bound to `draft.validator.content_scan_extensions`; add `[Reset to defaults]` calling `_default_content_scan_extensions()` (`config/models.py:435`). Persistence is automatic via the draft path.
-- **Issues / risks:** `ValidatorConfig._extensions_must_start_with_dot` (`config/models.py:464-471`) rejects entries not starting with `.` — validate on add for good UX (the Save path already surfaces the first `ValidationError` via `notifications.notify_error`, `settings.py:355-361`). Build the chip widget once and reuse for A4.
-
-### Resolved / not-a-defect (previously suspected in A)
-- **"Phase 12" nav no-op — RESOLVED.** `on_select_section` is now a real handler: nav rows bind to `_select_section` (`settings.py:315-318`) which toggles section visibility client-side (`:298-302`) then calls `on_select_section` if provided. `ui/mount.py` deliberately leaves it unset (switching sections is client-side so edits survive). The docstring at `:213-216` is historical, not live. Not a bug.
-- **`lambda: None` handler defaults — RESOLVED.** They are parameter fallbacks for tests; production injects real handlers (LIMS creds `mount.py:345`; NAS creds `mount.py:367`; `nas_password_present` `mount.py:366`). Minor: `on_discard` is passed as `None` (`mount.py:362`) so **"Discard all" is inert in production** (guarded at `settings.py:373`) — acceptable since closing the draft already discards, but wire it if you want explicit discard.
-
----
-
-## B. Backend features fully built but **not surfaced in the GUI**
-
-> **Shared root cause.** The creation flow `ui/mount.py:_run_creation → _await_session`
-> (~`:1457`,`:1536`) is **fire-and-await-final-status only**: it never consumes
-> `controller.subscribe()`, never reads `session.pending_input`, and offers no
-> resume/cancel/operations affordances. Implementing the **event-subscription consumer (B4)**
-> is the foundation that B1/B2/B3 build on.
-
-### B1 — Operations modal is built, exported, and rendered nowhere ★ highest impact
-- **Where:** component `src/exlab_wizard/ui/components/operations_modal.py:77`, exported at `ui/components/__init__.py:12,29`. **Zero call sites** outside the file/export. The main toolbar (`ui/pages/main.py:189-209`) has New Project / New Run / New Test Run / Add Equipment / Refresh / Settings — **no `[Operations…]`**. The footer (`main.py:347-377`) renders Sync/Validator/LIMS/Staging segments with no click handler. `GET /operations` (`api/routers/operations.py:57`) has no in-process caller.
-- **Intent:** Frontend Spec **§9.5** "Disconnect and resume — the in-flight operations panel" (`Frontend_Spec.md:1154`): reachable from (1) an `[Operations…]` toolbar action when ≥1 operation is in flight/suspended (`:1163`) and (2) the footer Sync segment's "⚠ N operations need input" state (`:1162`, §3.5.5 `:586`); columns State/Started/Equipment/Project/Run/Plugin with per-row `[Resume]`/`[Cancel]`/`[View log]` (`:1165-1175`), suspended oldest-first (`:1177`), auto-refresh on WS events (`:1179`). Backed by `GET /api/v1/operations` (Backend **§4.6.1**, `04_Backend_Architecture.md:389`).
-- **Consequence of the gap:** a plugin that pauses for input mid-creation **cannot be answered from the GUI**, and an in-flight/suspended session **cannot be cancelled or resumed** in-app.
-- **What implementing it entails:**
- 1. Add an `[Operations…]` toolbar button in `main.py` (mirror the existing `ui.button(...).props('data-testid=...')` pattern), visible when operation count > 0.
- 2. Wire its `on_click` in `mount.py` `_main` to build rows from `deps.controller.session_store` — **extract a shared helper** from the route's `_iter_sessions`/`_session_to_entry` (`operations.py:86-121`) rather than duplicating; add a public accessor on `SessionStore` (the route reaches into private `store._sessions`, `operations.py:94`).
- 3. Wire row actions to `controller.resume`/`controller.cancel` (B2) and reuse `_open_log_dialog` (`mount.py:1249`) for View-log.
- 4. Make the footer Sync segment count suspended sessions (`tray/dependencies.py:861-865` already computes `input_required`) and open the same modal (§3.5.5).
-- **Issues / risks:** modal is a static snapshot — true auto-refresh needs B4; otherwise it refreshes only on manual re-render. Concurrency: the list mutates while open.
-
-### B2 — No GUI path to resume or cancel a session
-- **Where:** `CreationController.resume` (`controller/creation.py:327`), `.cancel` (`creation.py:351`); HTTP `POST /sessions/{id}/resume` (`api/routers/sessions.py:196`), `/cancel` (`:227`). Grep of `ui/`+`tray/` for `controller.resume(`/`controller.cancel(` → **none**; the GUI only calls `create_project`/`create_run` (`mount.py:1502,1533`) and `status` (`mount.py:1471`).
-- **Intent:** Frontend **§9.5** row actions and **§9.6** concurrent-session policy; Cancel routes through the **§9.4** confirmation dialog (`Frontend_Spec.md:1139`) carrying `discard_files` (Backend §4.6.1 `:388`). Resume contract: Backend **§4.7 / §6.4.1** (`06_Plugin_System.md:494-501`); `session_already_completed` → 409 + toast.
-- **Current behavior / gap:** resume/cancel reachable only via the e2e HTTP routes. The §9.6 "disable creation buttons while a session is in flight" rule is also unimplemented — `MainPageState.orchestrator_enabled` is hardcoded `True` (`main.py:54`) and button-disable only keys off `selected_node_is_received` (`main.py:198-200`).
-- **What implementing it entails:** wire the modal's `on_resume`/`on_cancel` (B1) to `deps.controller.resume(id, extra_inputs)` / `.cancel(id, discard_files=…)` (same dispatch pattern as `_run_staging_action`, `mount.py:1036`). `on_resume` should open the INPUT_REQUIRED form (B3) since `resume()` requires non-empty `extra_inputs` and raises if the session isn't INPUT_REQUIRED (`creation.py:337-341`). `on_cancel` opens the §9.4 Discard/Keep dialog. Replace the hardcoded `orchestrator_enabled` with the real config flag for §9.6.
-- **Issues / risks:** `cancel()` cancels and awaits the background task (`creation.py:377-381`); surface 409/`ValueError` if already finished. `discard_files=True` triggers `shutil.rmtree` of the partial dir (`creation.py:1151-1153`) — map the Discard/Keep choice correctly.
-
-### B3 — Plugin `INPUT_REQUIRED` cannot be answered from the GUI
-- **Where:** controller wiring `on_input_required` + `_resume_queues` (`controller/creation.py:865-887`); INPUT_REQUIRED transition + `session.pending_input` (`:866-871`); `input_required` event published (`:872-880`). No escalation dialog exists anywhere in `ui/`.
-- **Intent:** Frontend **§9.1** escalation dialog (`Frontend_Spec.md:1095-1106`): title "Additional input required", plugin-identity pill, the `reason` line, fields rendered with the README form widgets, `[Submit]`/`[Cancel]`; Submit → resume. Escalations are strictly **sequential** (§9.2 `:1112`). Backend **§6.4.1** suspend/resume; OS-notification fast path §9.5 `:1158` / Backend §15.7.3.
-- **Current behavior / gap:** the controller correctly suspends and parks on `await queue.get()` (`creation.py:881-887`) setting `session.pending_input`, but `_await_session` (`mount.py:1457`) just awaits the task — which never completes while suspended — so the wizard **hangs indefinitely with no dialog**. Only the HTTP `/resume` route can answer.
-- **What implementing it entails:** depends on **B4** (to learn a session entered INPUT_REQUIRED) and **B1** (the surface). Build a new §9.1 dialog rendering `pending_input["fields"]` with README field widgets + reason/plugin header; Submit → `controller.resume(sid, values)`, Cancel → §9.4 confirm → `controller.cancel`. Reuse from the Operations modal's `on_resume`.
-- **Issues / risks:** preserve the §9.2 sequential invariant (one dialog fully resolves before the next frame). The plugin's `isolation.timeout_seconds` keeps counting while suspended (§9.1 `:1110`) — handle a `failed` frame force-closing the dialog. `resume()` rejects empty/invalid input (`ValueError`; backend maps plugin-side rejection to `plugin_variable_validation_failed` 422) — surface inline.
-
-### B4 — Live per-session phase progress is static; the GUI never subscribes
-- **Where:** `CreationController.subscribe` (`controller/creation.py:401`); phase frames published in `_transition`/`_publish` (`creation.py:1104-1128`). Component `session_progress(...)` (`ui/components/session_progress.py:91`) is rendered **statically with `active_phase=None`** at `ui/pages/wizard_project.py:224` and `ui/pages/wizard_run.py:229`. Grep of `ui/`+`tray/` for `subscribe` → **none**.
-- **Intent:** Frontend **§10.1** (`Frontend_Spec.md:1196`): the Confirm & Create step shows a phase bar advancing Validating inputs → Rendering template → Running plugins → Writing cache → Validating post-creation → Queueing NAS sync; **§9.3** adds a per-plugin sub-row from `{kind:"progress", phase:"running_plugins", current, total}` (`:1120,1135`). Backend **§4.6.2** WS frames (`04_Backend_Architecture.md:406-413`), **§4.7.1** SessionState→Phase mapping (`:573`).
-- **Current behavior / gap:** every phase row sits at fraction 0.0 forever; `_run_creation` reads only final status. The frames the controller publishes (`creation.py:1116-1123`) are drained only by the e2e WebSocket.
-- **What implementing it entails:** in `mount.py`, spawn a background consumer (via `_spawn_background`, `mount.py:58`) iterating `controller.subscribe(session_id)`; on each `phase`/`progress` frame re-render `session_progress` with live `active_phase`/`completed`/`plugin_current/total`; pass real args at the two call sites instead of `None`. **Verify** the controller's emitted phase strings match the component's hardcoded `PHASES` tuple (`session_progress.py:24-31`) — a mismatch silently no-ops.
-- **Issues / risks:** the iterator ends on `done`/`failed` (`creation.py:416-419`) — cancel/clean up the consumer on wizard close (mind the `_BACKGROUND_TASKS` strong-ref set). The queue is lazily created (`creation.py:410-411`) — subscribe at/before create time or miss early phases. Re-render from a background task needs the right NiceGUI client context. The §9.3 sub-row depends on the plugin host actually emitting `progress` frames — confirm it does.
-
-### B5 — Audit / Problems live stream not consumed by the in-process UI
-- **Where:** `AuditChannel` + 30 s `_audit_loop` (`api/app.py:77-133`, `:327-356`); WS `/problems/events` (`api/routers/problems.py:252-282`). Grep of `ui/` for `audit_channel`/`AuditChannel`/`.subscribe()`/`problems/events` → **zero**.
-- **Intent:** Backend **§4.6.2** (`04_Backend_Architecture.md:406-426`; the 30 s task at `:366`): a background `Validator.audit("all")` every 30 s publishes a diff to a pub-sub channel the always-on Problems tab reads (snapshot on connect, then deltas). Frontend **§11 / §3.3**: the Problems tab carries a live count badge (`Frontend_Spec.md:429`) and the footer Validator segment shows "Last audit: HH:MM:SS" (`:587`); page footer copy is "Showing N of M findings · Last audit: HH:MM:SS · Next refresh in 23s".
-- **Current behavior / gap (all static):**
- - `/problems` page (`ui/mount.py:371-375`) runs `_safe_audit(deps)` **once per render** (`mount.py:1579-1588`); footer is the literal `"Showing {n} of {m} findings · Last audit: --"` (`ui/pages/problems.py:279-281`) — **"Last audit: --" is hardcoded**, no countdown.
- - Embedded right-pane Problems (`ui/pages/main.py:445-450`) shows `f"Showing 0 of {...} findings"` — **shown-count hardcoded to 0**; `problems_count_hard/soft` default 0 (`main.py:50-51`) and `_build_main_state` (`mount.py:699-721`) never sets them, so the tab badge `f"Problems ({...})"` (`main.py:432`) is always 0.
- - Nothing in the GUI reads `deps.last_audit_at` or the channel; only the HTTP/WS surface does.
-- **What implementing it entails:**
- 1. Either (a) a `ui.timer` that polls `deps.last_audit_at` and re-runs `validator.audit`, or (b) consume `deps.audit_channel.subscribe()` and push deltas into reactive page state.
- 2. Populate `MainPageState.problems_count_hard/soft` in `_build_main_state` from the audit summary; replace the hardcoded `0` at `main.py:447`.
- 3. Replace `"Last audit: --"` (`problems.py:280`) with `deps.last_audit_at` and add the "Next refresh in Ns" countdown.
- 4. Confirm production `create_app(...)` passes `start_audit_task=True` (`app.py:266`).
- 5. Verify the override-and-allow-sync dialog (Frontend §11.5, already present in `ui/pages/problems.py`) is reachable from wherever the tab is mounted.
-- **Issues / risks:** NiceGUI re-renders per navigation, so a per-render full `validator.audit` (current `_safe_audit`) is O(tree) each time — prefer the 30 s channel. Keep the three surfaces (tab badge, right-pane summary, `/problems` page) reading the same source to avoid drift; debounce delta storms; preserve filter-chip state across refreshes.
-
----
-
-## C. No-op default collaborators
-
-### C1 — Production runs on the **stub** README generator ★ real defect
-- **Where:** `NoOpReadmeGenerator` (`controller/creation.py:210-221`), wired as the constructor default at `:271-273`. The real `ReadmeGenerator` (`readme/generator.py:176-220`) is **never imported or constructed** in `tray/` or `api/` — `tray/dependencies._build_controller` (`:519-542`) and `apply_live_config` (`:226-238`) call `CreationController(...)` **without** `readme_generator=`.
-- **Intent:** Backend Spec **§10** (`10_README_Generation.md`): every project/run creation must generate a `README.md` (YAML front matter + Markdown) **and** the `readme_fields.json` cache via the four-layer field merge (template/config/custom/system) with full validation (§10.2, §10.3, §10.7; cache file §11.4). README is non-optional for project/run scope.
-- **Current behavior / gap:** `NoOpReadmeGenerator.generate()` writes a 3-line stub
- (`# {label}` / `Operator:` / `{objective}`) with **no front matter, no field blocks, and
- no `readme_fields.json`**. So GUI-created runs ship a placeholder README and are missing the
- fields cache that downstream consumers (LIMS ingest, validator) expect.
-- **What implementing it entails:**
- 1. Inject the real generator: `readme_generator=ReadmeGenerator()` in `_build_controller` and the `apply_live_config` fresh-build branch.
- 2. **Reconcile the type mismatch first** — there are two same-named `ReadmeContext` classes: the controller's flat one (`creation.py:188-201`) vs the generator's layered one (`generator.py:152-168`); and the controller's Protocol expects `-> Path` (`creation.py:204-207`) while `ReadmeGenerator.generate()` returns `tuple[Path, Path]`. Add an adapter in `_write_cache` (`creation.py:908-919`) that assembles the layered context (core fields, template/config decls from the resolved template + `config.readme.defaults`, `SystemFields`, custom fields) and consumes both returned paths.
-- **Issues / risks:** the real generator **raises** on validation failures (missing required template/config fields, type mismatches, core redeclaration); `_validate_inputs` (`creation.py:578-599`) currently checks required-field presence but not types, so newly enforced gates could fail creations that previously "passed" against the stub. Generator does sync work via `asyncio.to_thread` — fine for the pipeline. **This should be validated end-to-end with a real template before release.**
-
-### C2 — `NoOpNASSync` controller default (informational — not a production defect)
-- **Where:** `NoOpNASSync` (`controller/creation.py:230-234`), default at `:274`; real `NASSyncClient` (`sync/nas_client.py:257-1089`).
-- **Why it's not a defect:** the controller is **not** the production enqueue path — its inline enqueue is best-effort and `contextlib.suppress`-wrapped (`creation.py:686-688`). Auto-sync is owned by the **quiescence poller**, which gets the real `deps.nas_sync` (built `tray/dependencies.py:110-119`, `init()`'d in lifespan `api/app.py:277-279`, polled `:807-837`); force-sync / clear-verified call `deps.nas_sync` directly (`ui/mount.py:1056-1070`). `NASSyncClient` is complete (push/check/verify/cleanup/reconcile, rclone-only).
-- **Optional cleanup:** either inject `nas_sync=deps.nas_sync` into `_build_controller` if the inline enqueue is meant to be live, or add a one-line comment that the NoOp is intentional because the poller owns auto-sync. No functional change needed.
-
-### C3 — Runtime guard toasts (where the `None`/NoOp path surfaces in the live UI)
-All in `src/exlab_wizard/ui/mount.py` — useful as detectors of mis-wired deps:
-- `:1058` `"Force-sync unavailable: NAS sync not wired"` (`deps.nas_sync is None`)
-- `:1193` `"Keep-local unavailable: sync-state writer not wired"` (`deps.sync_state_writer is None`)
-- `:531` `"equipment probe is not available"` (`deps.equipment_probe is None`)
-- related: `:1052` no-config staging, `:1478`/`:1509` controller-not-initialized.
-
----
-
-## D. TODO / stale markers
-
-### D1 — Offline-catalogue schema-version gate is stricter than the cache-file policy (open spec question)
-- **Where:** `src/exlab_wizard/lims/catalogue.py:93-103` (comment `:93-96`, check `:97-103`).
-- **Intent:** Backend **§7.2.9.3** (`07_Sync_and_Database_Integration.md:360`): a `schema_version` mismatch should be treated as **catalogue absent** (WARN + fall through). The cache-schema reader policy **§11.9.2** (`11_Cache_Folders.md:462-468`) is **major-only** (accept newer/older minor).
-- **Gap:** `read_catalogue` does an **exact** match (`catalogue.py:98`) and **raises `ConfigError`**, which conflicts with both the major-only cache policy and the "treat as absent / WARN" wording. Net UI behavior already matches "absent" because the only caller wraps it in try/except → WARN (`ui/mount.py:1401-1416`); the inconsistency is internal-contract, not user-visible. The catalogue isn't in §11.9.4's enumerated schema list, hence the open question.
-- **What resolving it entails:** decide the policy (add the catalogue to §11.9.4 / §7.2.9, choose exact vs major-only); if major-only, swap the check to a major-compare and parse known-minor fields; if strict, consider a typed "treat-as-absent" signal instead of `ConfigError` to match §7.2.9.3. Drop the TODO once decided.
-- **Issues / risks:** low. With exact-match, a future *minor* bump of `OFFLINE_CATALOGUE_VERSION` on the producer makes every consumer silently ignore the catalogue — the hazard the TODO flags.
-
-### D2 — Stale "plugins/registry.py not yet committed" comment (documentation only)
-- **Where:** `src/exlab_wizard/plugins/host.py:73-81` (plus `:115-123`, `:896-905`).
-- **Reality:** `plugins/registry.py:128-378` is a **real, complete** `PluginRegistry` (manifest scan over bundled+lab roots, `api_version` gate, network-opt-in gate, lab-wins merge, `get`/`list_all`/`candidates_for`, no plugin imported at scan time) and is **wired in production** (`tray/dependencies._build_plugin_host:497-516` constructs it, `.reload()`s, adapts it to the host). The host's `_ListBackedRegistry`/`build_test_registry` (`host.py:896-918`) is test-only.
-- **Intent reference:** Backend **§6.2.1** (`06_Plugin_System.md:289-306`).
-- **What resolving it entails:** delete/rewrite the three stale comment blocks to say `registry.py` is committed and wired. Pure cleanup. (Minor spec note: §6.2.1 describes the registry as `extension -> list[PluginRecord]`; the impl keys `name -> PluginRecord` with `candidates_for` computing extension matches — functionally equivalent; flag only if the spec wants the literal structure.)
-
----
-
-## Prioritized backlog
-
-| # | Item | § | Impact | Effort |
-|---|------|---|--------|--------|
-| 1 | **Inject real `ReadmeGenerator`** (+ reconcile `ReadmeContext`/return type) | C1 | **High — GUI-created runs ship stub READMEs, no `readme_fields.json`** | M |
-| 2 | Event-subscription consumer in the creation flow (foundation) | B4 | High — unblocks 3–5; live progress | S–M |
-| 3 | Render Operations modal + toolbar/footer hooks | B1 | High — session control surface | M |
-| 4 | Resume/Cancel wiring (+ §9.4 confirm, §9.6 disable rule) | B2 | High | M |
-| 5 | INPUT_REQUIRED escalation dialog (new component) | B3 | High — creations can hang silently | M |
-| 6 | Live Problems/audit stream + real counts | B5 | Med | M |
-| 7 | Operators allowlist chip editor | A4 | Med — security gate has no populator | M |
-| 8 | "Start at login" checkbox wiring | A2 | Med | S |
-| 9 | "Quit ExLab-Wizard now" button (+ `deps` quit hook) | A1 | Low–Med | S |
-| 10 | `content_scan_extensions` chip editor + reset | A5 | Low | S (reuse #7) |
-| 11 | Application-section status labels parity (§7.13) | A3 | Low | S |
-| 12 | Resolve offline-catalogue version-policy TODO | D1 | Low | S |
-| 13 | Delete stale registry comment | D2 | Trivial | XS |
-
-### Shared foundations to build once
-- **Event-subscription consumer** (B4) underpins B1 auto-refresh, B2 in-flight cancel, B3 escalation, and B5.
-- **Reusable chip/list editor** serves A4 and A5 (and the equipment-section follow-up).
-- **Shared `SessionStore → row` helper / public accessor** removes the duplication between
- `api/routers/operations.py` and the new in-process modal.
-
-### Suggested sequencing
-**Release-blocking correctness first:** #1 (README) — validate end-to-end with a real
-template. **Then the session-control epic:** #2 → #3 → #4 → #5 (they compound). **Then**
-the visibility/usability items #6–#11, and the cleanups #12–#13 anytime.
diff --git a/docs/REMAINING_WORK_TASKS.md b/docs/REMAINING_WORK_TASKS.md
deleted file mode 100644
index 33c72bc..0000000
--- a/docs/REMAINING_WORK_TASKS.md
+++ /dev/null
@@ -1,270 +0,0 @@
-# ExLab-Wizard — Remaining Work: Tracked Tasks
-
-Task checklist derived from [`REMAINING_WORK.md`](./REMAINING_WORK.md) (verified against
-`85de7a3`). Each task links back to the spec section that carries the full intent, files,
-implementation steps, and risks.
-
-## How to use this tracker
-When a task is **integrated**:
-1. Flip its checkbox `- [ ]` → `- [x]`.
-2. Set **Status:** `✅ Done`.
-3. Fill **Impl note:** with the commit SHA / PR and a one-line summary of what landed
- (and any deviation from the spec).
-
-Status legend: `⬜ Not started` · `🟡 In progress` · `✅ Done` · `⛔ Blocked` (note the blocker).
-
----
-
-## Phase 1 — Release-blocking correctness
-
-### - [x] T1 — Inject the real `ReadmeGenerator` (+ reconcile `ReadmeContext` / return type)
-- **Spec:** [§C1](./REMAINING_WORK.md#c1--production-runs-on-the-stub-readme-generator--real-defect) · **Category:** C · **Effort:** M · **Priority:** Highest (release-blocking)
-- **Why:** Production builds the controller without `readme_generator=`, so it runs on
- `NoOpReadmeGenerator` — GUI-created runs ship a stub README with no YAML front matter and
- no `readme_fields.json`.
-- **Key files:** `controller/creation.py:188-221,271-273,578-599,908-919` · `readme/generator.py:152-220` · `tray/dependencies.py:226-238,519-542`
-- **Acceptance:** a GUI-created project/run produces a §10-compliant `README.md` (front
- matter + four-layer field blocks) **and** `readme_fields.json`; the two `ReadmeContext`
- classes and the `Path` vs `tuple[Path, Path]` return are reconciled; validated end-to-end
- against a real template.
-- **Risk watch:** the real generator raises on missing/typed-wrong fields — confirm
- `_validate_inputs` gates align so previously-passing creations don't start failing.
-- **Status:** ✅ Done
-- **Impl note:** Injected `ReadmeGenerator()` in `tray.dependencies._build_controller` (the sole
- production constructor, covering both the lifespan build and `apply_live_config`). Replaced the
- controller's flat placeholder `ReadmeContext` with the canonical layered type from
- `exlab_wizard.readme`; the controller's `ReadmeGeneratorProtocol` + `NoOpReadmeGenerator` now use
- the `tuple[Path, Path]` contract. Added `CreationController._build_readme_context` (partitions
- `readme_extra` across template/config/custom layers by id, maps decls, fills the §10.6 system
- block: `created_by` = OS user, `project` = LIMS short id (§3.1), `run` = run dir / null). Presence is
- already gated by `_validate_inputs` and the GUI submits no typed extra fields yet, so the
- generator's strict validation adds no new failures for current creations (it stays the backstop).
- New end-to-end test `test_real_readme_generator_writes_frontmatter_and_cache` asserts the
- four-layer front matter + `readme_fields.json`. Full unit+integration suite green (2201 passed).
-
----
-
-## Phase 2 — Session-control epic (build in order; they compound)
-
-### - [x] T2 — Event-subscription consumer in the creation flow (shared foundation)
-- **Spec:** [§B4](./REMAINING_WORK.md#b4--live-per-session-phase-progress-is-static-the-gui-never-subscribes) · **Category:** B · **Effort:** S–M · **Priority:** High
-- **Why:** The create flow is fire-and-await-final-status; nothing consumes
- `controller.subscribe()`, so progress is static (`active_phase=None`). This consumer
- underpins T3/T4/T5/T6.
-- **Key files:** `ui/mount.py:58,1457,1536` · `controller/creation.py:401,410-419,1104-1128` · `ui/components/session_progress.py:24-31,91` · `ui/pages/wizard_project.py:224` · `ui/pages/wizard_run.py:229`
-- **Acceptance:** the Confirm & Create step advances through the live phases (and the §9.3
- per-plugin sub-row when the host emits `progress`); the consumer is cancelled/cleaned up on
- wizard close; emitted phase strings verified to match the component's `PHASES`.
-- **Status:** ✅ Done
-- **Impl note:** Fixed a confirmed bug: `session_progress.PHASES`/`PHASE_LABELS` used
- `post_validation`/`queueing_sync`, but the controller emits the wire-format
- `validating_post_creation`/`queueing_nas_sync` (`state_machine.Phase`) — two of six phases would
- silently no-op. Corrected the component to the verbatim wire-format (single source of truth) and
- updated the phase-order test. Added `SessionProgressState` + `apply_frame(state, frame)` to the
- component (folds `phase`/`progress`/`done` frames; ignores `input_required`/unknown). Each wizard
- renders the confirm-step bar via a `@ui.refreshable` reading `state.progress`, exposing
- `state.progress_refresh`. `mount._run_creation` now consumes `controller.subscribe()` via
- `_consume_session_progress` while the pipeline runs (race-free: `_launch` creates the event queue
- before the pipeline starts and the asyncio.Queue buffers early phases). Note: the controller
- emits no `progress` frame today, so the §9.3 per-plugin sub-row stays dormant until the plugin
- host emits one (`apply_frame` handles it for when it lands). Suite green (2205 passed).
-
-### - [x] T3 — Render the Operations modal + toolbar/footer hooks
-- **Spec:** [§B1](./REMAINING_WORK.md#b1--operations-modal-is-built-exported-and-rendered-nowhere--highest-impact) · **Category:** B · **Effort:** M · **Priority:** High
-- **Why:** `operations_modal` is built/exported but rendered nowhere; no `[Operations…]`
- action exists, so sessions can't be inspected or acted on from the GUI.
-- **Key files:** `ui/components/operations_modal.py:77` · `ui/pages/main.py:189-209,347-377` · `ui/mount.py` (`_main`) · `api/routers/operations.py:86-121` (extract shared `SessionStore → row` helper + public accessor)
-- **Acceptance:** an `[Operations…]` toolbar button (visible when ≥1 operation in flight)
- opens the modal populated from `deps.controller.session_store`; footer Sync segment shows
- the "N need input" state and opens the same modal.
-- **Depends on:** T2 (for auto-refresh).
-- **Status:** ✅ Done
-- **Impl note:** Added a public `SessionStore.iter_sorted()` accessor + a shared
- `project_identifier(request)` (both in `controller/session_store.py`) so the `/operations` route
- and the in-process panel stop reaching into `store._sessions` and label rows identically;
- refactored the route onto them. Added `OperationRow.from_session()` (maps the §4.7 states onto the
- panel's running/suspended/completed buckets). `main.py`: `[Operations…]` toolbar button (shown
- when `operations_count > 0`, warning-colored if any need input) + footer Sync segment flips to
- "N operations need input" and opens the same modal; `MainPageState` gains
- `operations_count`/`operations_input_required`. `mount.py`: `_operation_counts`,
- `_build_operation_rows`, `_open_operations_modal` (fresh snapshot per open), and an
- `_open_operation_details` "view log" dialog. Fixed a latent circular import by importing
- `SessionState`/`project_identifier` from submodules in `operations.py`. Resume/cancel row actions
- are placeholders here (cancel does a keep-files cancel) — fully wired in T4/T5. Suite green.
-
-### - [x] T4 — Wire Resume / Cancel (+ §9.4 confirm, §9.6 disable rule)
-- **Spec:** [§B2](./REMAINING_WORK.md#b2--no-gui-path-to-resume-or-cancel-a-session) · **Category:** B · **Effort:** M · **Priority:** High
-- **Key files:** `controller/creation.py:327,337-341,351,377-381,1151-1153` · `ui/mount.py:1036` (dispatch pattern) · `ui/pages/main.py:54,198-200`
-- **Acceptance:** modal Resume/Cancel call `controller.resume`/`cancel` in-process; Cancel
- routes through a §9.4 Discard/Keep dialog mapped to `discard_files`; creation buttons
- disabled while a session is non-terminal (single-equipment); 409/`ValueError` surfaced.
-- **Depends on:** T3.
-- **Status:** ✅ Done
-- **Impl note:** `_cancel_operation` now opens a §9.4 Discard / Keep dialog mapped to
- `controller.cancel(id, discard_files=…)` (Discard → `shutil.rmtree` of the partial dir), with
- errors surfaced as a toast (`cancel` is a no-op on an already-terminal session, so no 409 to
- raise). §9.6 single-equipment lock: `_operation_counts` now also returns an `active`
- (strictly non-terminal) count; `_build_main_state` sets `MainPageState.creation_in_flight`, and
- `main.py` disables New Project / Run / Test Run (with a tooltip) while a creation is in flight.
- Added `_operation_counts` tests (panel vs active vs input_required). Resume still routes through
- T5's input dialog. Suite green (UI 463 passed).
-
-### - [x] T5 — Plugin `INPUT_REQUIRED` escalation dialog (new component)
-- **Spec:** [§B3](./REMAINING_WORK.md#b3--plugin-input_required-cannot-be-answered-from-the-gui) · **Category:** B · **Effort:** M · **Priority:** High
-- **Why:** When a plugin pauses, the wizard hangs indefinitely with no dialog; only the HTTP
- route can answer.
-- **Key files:** `controller/creation.py:865-887` · new `ui/components/` escalation dialog · `ui/mount.py`
-- **Acceptance:** a §9.1 dialog renders `pending_input["fields"]` with README widgets +
- reason/plugin header; Submit → `controller.resume(sid, values)`, Cancel → §9.4 confirm →
- `cancel`; escalations strictly sequential (§9.2); handles `failed`/timeout force-close.
-- **Depends on:** T2 (detect INPUT_REQUIRED) + T3 (surface).
-- **Status:** ✅ Done
-- **Impl note:** New component `ui/components/input_required_dialog.py`: §9.1 "Additional input
- required" dialog with a plugin-identity pill, the reason line, and one widget per
- `pending_input["fields"]` (string→input, text→textarea, choice→select, boolean→checkbox),
- two-way bound to a values dict; `persistent` so the escalation must resolve before the next frame
- (§9.2). `mount.py`: the T2 consumer now opens it on an `input_required` frame and force-closes it
- on a terminal `done`/`failed` frame (plugin timeout); Submit → `controller.resume(sid, values)`
- (errors — empty/invalid payload, stale state, or plugin re-rejection re-emitting `input_required`
- — surfaced as a toast / re-opened dialog), Cancel → the §9.4 cancel dialog. `_cancel_operation`
- was split into a controller-driven `_cancel_session` core (reused by the dialog) + a deps
- resolver; the Operations modal's Resume (`_resume_operation`) reads the parked `pending_input` and
- re-opens the same dialog. Tests for `collect_default_values` + dialog build. Suite green (2212).
-
----
-
-## Phase 3 — Visibility & usability
-
-### - [x] T6 — Live Problems/audit stream + real counts
-- **Spec:** [§B5](./REMAINING_WORK.md#b5--audit--problems-live-stream-not-consumed-by-the-in-process-ui) · **Category:** B · **Effort:** M · **Priority:** Med
-- **Key files:** `api/app.py:77-133,266,327-356` · `ui/pages/problems.py:279-281` · `ui/pages/main.py:50-51,432,445-450` · `ui/mount.py:699-721,1579-1588`
-- **Acceptance:** live findings counts (tab badge + right-pane summary, single source);
- "Last audit: HH:MM:SS · Next refresh in Ns" instead of `--`; override-and-allow-sync
- dialog (§11.5) reachable; `start_audit_task=True` confirmed in the production app build.
-- **Depends on:** T2 (subscription pattern, optional).
-- **Status:** ✅ Done
-- **Impl note:** The 30 s `_audit_loop` now caches tier counts on
- `deps.last_audit_hard`/`last_audit_soft` (single source, no per-render re-audit, per the §B5
- preference); `_build_main_state` reads them into `MainPageState.problems_count_hard/soft`, so the
- Problems **tab badge** (`problems_badge_text`) and the **right-pane summary** are now real (the
- right-pane no longer hardcodes "Showing 0"). The `/problems` footer takes `last_audit_at` and
- renders "Last audit: HH:MM:SS · Next refresh in Ns" with a 1 s `ui.timer` countdown (was a
- hardcoded "--"); `start_audit_task=True` confirmed in the production tray build.
- **Deferred (documented):** wiring the §11.5 override-and-allow-sync action and the full live
- WS-delta stream are out of scope here because `render_problems_page` renders a *view-model* shape
- (`finding.severity/.path/.state/.finding_id`) that the raw `Validator` `Finding`
- (`tier/rule/run_path/…`) does not provide — a pre-existing mismatch (the render is e2e-only,
- `# pragma: no cover`). Reconciling that view-model + the in-process override-write path
- (mirroring `POST /problems/{run_path}/override`) is a follow-up; the counts/last-audit core lands
- here. Suite green.
-
-### - [x] T7 — Operators allowlist chip editor
-- **Spec:** [§A4](./REMAINING_WORK.md#a4--operators-allowlist-has-backend-enforcement-but-no-editor-ui) · **Category:** A · **Effort:** M · **Priority:** Med
-- **Key files:** `ui/pages/settings.py:25,30-32,46,464` · `config/models.py:422-427` · `controller/creation.py:540-547`
-- **Acceptance:** an Operators section with a chip editor bound to
- `draft.operators.allowlist`, persisting via the existing draft path; **case-sensitive**, no
- trimming/lowercasing; kept **non-gating** (not added to `_missing_setup_sections`).
-- **Builds:** the reusable chip/list widget (shared with T10).
-- **Status:** ✅ Done
-- **Impl note:** Built a reusable `_render_chip_editor(values, …)` in `settings.py` (modeled on the
- equipment add-form: add/delete/optional-reset, mutates the draft list in place so persistence
- rides the existing draft → finalize → Save path). Added `"operators"` to `SETTINGS_SECTIONS`
- (between `nas_cleanup` and `validator`) + `SECTION_TITLES`, and an `elif section == "operators"`
- branch with the §7.9 helper text + chip editor bound to `draft.operators.allowlist`. Stored
- verbatim (case-sensitive; whitespace trimmed on add only). Non-gating (not in
- `_missing_setup_sections`). Updated the section-count test (8→9). Suite green.
-
-### - [x] T8 — "Start at login" checkbox wiring
-- **Spec:** [§A2](./REMAINING_WORK.md#a2--start-at-login-autostart-checkbox-is-not-bound) · **Category:** A · **Effort:** S · **Priority:** Med
-- **Key files:** `ui/pages/settings.py:514` · `tray/dependencies.py:130,840` (add `autostart_is_registered`) · `ui/mount.py:687`
-- **Acceptance:** checkbox reflects real `is_registered()` on open; `on_change` toggles
- immediately via `deps.autostart_toggle` and reflects the actual post-op result (reverts on
- failure); sandboxed in tests via `EXLAB_AUTOSTART_ROOT`.
-- **Status:** ✅ Done
-- **Impl note:** `tray/dependencies.py` seeds `deps.autostart_is_registered` from
- `AutostartManager().is_registered()` at build. `_apply_autostart` now returns the toggle's
- real `is_registered()` result (the welcome card still ignores it). `_settings` passes
- `autostart_registered` + `on_set_autostart`; the Application checkbox (exempt from the draft,
- §7.13) seeds from the real state and, on change, applies immediately and reverts to the actual
- post-op result on mismatch (re-entrancy-guarded). Disabled when no toggle is wired. Tests cover
- the return-value relay.
-
-### - [x] T9 — "Quit ExLab-Wizard now" button (+ `deps` quit hook)
-- **Spec:** [§A1](./REMAINING_WORK.md#a1--quit-exlab-wizard-now-button-has-no-handler) · **Category:** A · **Effort:** S · **Priority:** Low–Med
-- **Key files:** `ui/pages/settings.py:516` · `tray/main.py:77,80,84,171` · `tray/quit_coordinator.py:82` · `ui/mount.py:358`
-- **Acceptance:** a `deps.request_quit` hook exists; button triggers graceful shutdown
- **scheduled non-blocking** (response flushes first) behind a confirm; no-op/disabled when
- the hook is absent (headless/tests).
-- **Status:** ✅ Done
-- **Impl note:** The tray builder (`tray/main.py`) attaches `deps.request_quit =
- tray_app.request_quit` after building `TrayApp`. `_settings` builds an `on_quit` that schedules
- the hook via `ui.timer(0.1, …, once=True)` so the HTTP response flushes before the server tears
- down, and passes it to the Application section, which renders the Quit button behind a confirm
- dialog (§3.4.6). Disabled when the hook is absent (headless/tests). `AppDependencies` gains the
- typed `request_quit` field.
-
-### - [x] T10 — `content_scan_extensions` chip editor + reset-to-defaults
-- **Spec:** [§A5](./REMAINING_WORK.md#a5--content_scan_extensions-renders-read-only-partial) · **Category:** A · **Effort:** S · **Priority:** Low
-- **Key files:** `ui/pages/settings.py:482-484` · `config/models.py:435,464-471`
-- **Acceptance:** chip editor bound to `draft.validator.content_scan_extensions` with a
- `[Reset to defaults]` action; entries validated to start with `.` on add.
-- **Depends on:** T7 (reuse the chip widget).
-- **Status:** ✅ Done
-- **Impl note:** Replaced the read-only "Scanned file extensions" label with the shared
- `_render_chip_editor` bound to `draft.validator.content_scan_extensions`, with a
- `[Reset to defaults]` action (`draft.validator.content_scan_extensions[:] =
- _default_content_scan_extensions()`) and an on-add validator rejecting entries that don't start
- with `.` (the `ValidatorConfig` dot-prefix rule also re-checks at Save). Landed with T7.
-
-### - [x] T11 — Application-section status labels parity (§7.13)
-- **Spec:** [§A3](./REMAINING_WORK.md#a3--application-section-status-indicators-are-hardcoded--missing-713-parity) · **Category:** A · **Effort:** S · **Priority:** Low
-- **Key files:** `ui/pages/settings.py:515`
-- **Acceptance:** tray-availability label reflects real `pystray` init; window-on-close
- behavior text present.
-- **Status:** ✅ Done
-- **Impl note:** The tray builder sets `deps.tray_available` from `_tray_backend_available()`
- (whether `pystray` imports; window-only per §15.7.4 otherwise). The Application section now shows
- "Show in system tray: available / unavailable (window-only)" from that flag (no longer a static
- literal) plus the window-on-close behavior copy. `AppDependencies` gains the typed
- `tray_available` field. Landed with T8/T9.
-
----
-
-## Phase 4 — Cleanups (anytime)
-
-### - [x] T12 — Resolve the offline-catalogue version-policy TODO
-- **Spec:** [§D1](./REMAINING_WORK.md#d1--offline-catalogue-schema-version-gate-is-stricter-than-the-cache-file-policy-open-spec-question) · **Category:** D · **Effort:** S · **Priority:** Low
-- **Key files:** `lims/catalogue.py:93-103`
-- **Acceptance:** policy decided (exact vs §11.9.2 major-only) and the spec updated; check
- aligned; `TODO(spec)` removed.
-- **Status:** ✅ Done
-- **Impl note:** Policy = **treat as absent / WARN** (user-confirmed; §7.2.9.3). `read_catalogue`
- now returns `OfflineCatalogue | None` — a `schema_version` mismatch logs a WARN and returns
- `None` (consumer falls through) instead of raising `ConfigError`; the endpoint mismatch and
- missing/parse-error cases stay hard errors. The decision is recorded in the function docstring;
- `TODO(spec)` removed. Caller (`mount._lims_projects_from_catalogue`) treats `None` as `[]`. Test
- flipped to assert `None` + WARN.
-
-### - [x] T13 — Delete the stale plugin-registry comment
-- **Spec:** [§D2](./REMAINING_WORK.md#d2--stale-pluginsregistrypy-not-yet-committed-comment-documentation-only) · **Category:** D · **Effort:** XS · **Priority:** Trivial
-- **Key files:** `plugins/host.py:73-81,115-123,896-905`
-- **Acceptance:** comments rewritten to state `registry.py` is committed + wired and
- `_ListBackedRegistry` is test-only.
-- **Status:** ✅ Done
-- **Impl note:** Rewrote the three "owned by Agent A / not yet committed" comment blocks in
- `plugins/host.py` (the registry-surface header, the `PluginRegistryProtocol` docstring, and the
- `_ListBackedRegistry`/`build_test_registry` block) to state that
- `plugins.registry.PluginRegistry` is the committed, wired production registry (built in
- `tray.dependencies._build_plugin_host`) and that `_ListBackedRegistry` is test-only. Also fixed a
- stray "before Agent A's msgspec.Struct lands" comment. Pure cleanup; no behavior change.
-
----
-
-## Shared foundations (build once, reused across tasks)
-- **Event-subscription consumer** (T2) → underpins T3 auto-refresh, T4, T5, and T6.
-- **Reusable chip/list editor** (first built in T7) → reused by T10.
-- **Shared `SessionStore → row` helper + public accessor** (T3) → removes the duplication
- between `api/routers/operations.py` and the in-process modal.
-
-## Progress
-13 / 13 complete.
diff --git a/design_specs/ExLab-Wizard_Design_Spec.md b/docs/design_specs/ExLab-Wizard_Design_Spec.md
similarity index 100%
rename from design_specs/ExLab-Wizard_Design_Spec.md
rename to docs/design_specs/ExLab-Wizard_Design_Spec.md
diff --git a/design_specs/ExLab-Wizard_Frontend_Spec.md b/docs/design_specs/ExLab-Wizard_Frontend_Spec.md
similarity index 99%
rename from design_specs/ExLab-Wizard_Frontend_Spec.md
rename to docs/design_specs/ExLab-Wizard_Frontend_Spec.md
index d56b4cb..9a73ff9 100644
--- a/design_specs/ExLab-Wizard_Frontend_Spec.md
+++ b/docs/design_specs/ExLab-Wizard_Frontend_Spec.md
@@ -55,7 +55,7 @@ Guiding principles:
### 2.1 Visual tokens and the design system
-ExLab-Wizard inherits its visual design system from the lab's authoritative style guide at [`DESIGN.md`](../DESIGN.md) (*"Scientific Analysis Dashboard Design System v1.1"*). DESIGN.md is the single source of truth for color palette, type scale, spacing tokens, border radius, shadows, and component styling rules across all lab applications (PhenoTypic, ExLab-Wizard, future tools). This subsection describes how ExLab-Wizard consumes those tokens, the small set of ExLab-Wizard-specific overrides, and the Python module that exposes the tokens to runtime code.
+ExLab-Wizard inherits its visual design system from the lab's authoritative style guide at [`DESIGN.md`](../../DESIGN.md) (*"Scientific Analysis Dashboard Design System v1.1"*). DESIGN.md is the single source of truth for color palette, type scale, spacing tokens, border radius, shadows, and component styling rules across all lab applications (PhenoTypic, ExLab-Wizard, future tools). This subsection describes how ExLab-Wizard consumes those tokens, the small set of ExLab-Wizard-specific overrides, and the Python module that exposes the tokens to runtime code.
#### 2.1.1 The `design.py` module
@@ -722,7 +722,7 @@ Beyond NiceGUI's component defaults (Tab / Shift-Tab navigation, Enter to submit
## 4. New Project Wizard
-Modal, multi-step. User capability: "Create a New Project" (User Interaction Spec Section 3.1). Backed by the Mapping B LIMS integration ([Design Spec §7.2](../design_specs/design_spec_sections/07_Sync_and_Database_Integration.md#72-lims-integration)): ExLab-Wizard does not create LIMS projects, only consumes them.
+Modal, multi-step. User capability: "Create a New Project" (User Interaction Spec Section 3.1). Backed by the Mapping B LIMS integration ([Design Spec §7.2](tions/07_Sync_and_Database_Integration.md#72-lims-integration)): ExLab-Wizard does not create LIMS projects, only consumes them.
| Step | Purpose | Widgets |
|---|---|---|
diff --git a/design_specs/IMPLEMENTATION_PLAN.md b/docs/design_specs/IMPLEMENTATION_PLAN.md
similarity index 100%
rename from design_specs/IMPLEMENTATION_PLAN.md
rename to docs/design_specs/IMPLEMENTATION_PLAN.md
diff --git a/design_specs/design_spec_sections/02_User_Interaction.md b/docs/design_specs/design_spec_sections/02_User_Interaction.md
similarity index 100%
rename from design_specs/design_spec_sections/02_User_Interaction.md
rename to docs/design_specs/design_spec_sections/02_User_Interaction.md
diff --git a/design_specs/design_spec_sections/03_Directory_Structure_Convention.md b/docs/design_specs/design_spec_sections/03_Directory_Structure_Convention.md
similarity index 100%
rename from design_specs/design_spec_sections/03_Directory_Structure_Convention.md
rename to docs/design_specs/design_spec_sections/03_Directory_Structure_Convention.md
diff --git a/design_specs/design_spec_sections/04_Backend_Architecture.md b/docs/design_specs/design_spec_sections/04_Backend_Architecture.md
similarity index 100%
rename from design_specs/design_spec_sections/04_Backend_Architecture.md
rename to docs/design_specs/design_spec_sections/04_Backend_Architecture.md
diff --git a/design_specs/design_spec_sections/05_Template_Format.md b/docs/design_specs/design_spec_sections/05_Template_Format.md
similarity index 100%
rename from design_specs/design_spec_sections/05_Template_Format.md
rename to docs/design_specs/design_spec_sections/05_Template_Format.md
diff --git a/design_specs/design_spec_sections/06_Plugin_System.md b/docs/design_specs/design_spec_sections/06_Plugin_System.md
similarity index 100%
rename from design_specs/design_spec_sections/06_Plugin_System.md
rename to docs/design_specs/design_spec_sections/06_Plugin_System.md
diff --git a/design_specs/design_spec_sections/07_Sync_and_Database_Integration.md b/docs/design_specs/design_spec_sections/07_Sync_and_Database_Integration.md
similarity index 100%
rename from design_specs/design_spec_sections/07_Sync_and_Database_Integration.md
rename to docs/design_specs/design_spec_sections/07_Sync_and_Database_Integration.md
diff --git a/design_specs/design_spec_sections/08_Error_Handling_Principles.md b/docs/design_specs/design_spec_sections/08_Error_Handling_Principles.md
similarity index 100%
rename from design_specs/design_spec_sections/08_Error_Handling_Principles.md
rename to docs/design_specs/design_spec_sections/08_Error_Handling_Principles.md
diff --git a/design_specs/design_spec_sections/09_Configuration_File.md b/docs/design_specs/design_spec_sections/09_Configuration_File.md
similarity index 100%
rename from design_specs/design_spec_sections/09_Configuration_File.md
rename to docs/design_specs/design_spec_sections/09_Configuration_File.md
diff --git a/design_specs/design_spec_sections/10_README_Generation.md b/docs/design_specs/design_spec_sections/10_README_Generation.md
similarity index 100%
rename from design_specs/design_spec_sections/10_README_Generation.md
rename to docs/design_specs/design_spec_sections/10_README_Generation.md
diff --git a/design_specs/design_spec_sections/11_Cache_Folders.md b/docs/design_specs/design_spec_sections/11_Cache_Folders.md
similarity index 100%
rename from design_specs/design_spec_sections/11_Cache_Folders.md
rename to docs/design_specs/design_spec_sections/11_Cache_Folders.md
diff --git a/design_specs/design_spec_sections/12_Orchestrator_Mode.md b/docs/design_specs/design_spec_sections/12_Orchestrator_Mode.md
similarity index 100%
rename from design_specs/design_spec_sections/12_Orchestrator_Mode.md
rename to docs/design_specs/design_spec_sections/12_Orchestrator_Mode.md
diff --git a/design_specs/design_spec_sections/13_Equipment_to_Orchestrator_Data_Flow.md b/docs/design_specs/design_spec_sections/13_Equipment_to_Orchestrator_Data_Flow.md
similarity index 100%
rename from design_specs/design_spec_sections/13_Equipment_to_Orchestrator_Data_Flow.md
rename to docs/design_specs/design_spec_sections/13_Equipment_to_Orchestrator_Data_Flow.md
diff --git a/design_specs/design_spec_sections/15_Distribution.md b/docs/design_specs/design_spec_sections/15_Distribution.md
similarity index 100%
rename from design_specs/design_spec_sections/15_Distribution.md
rename to docs/design_specs/design_spec_sections/15_Distribution.md
diff --git a/design_specs/design_spec_sections/16_Logging.md b/docs/design_specs/design_spec_sections/16_Logging.md
similarity index 100%
rename from design_specs/design_spec_sections/16_Logging.md
rename to docs/design_specs/design_spec_sections/16_Logging.md
diff --git a/graphify-out/GRAPH_REPORT.md b/graphify-out/GRAPH_REPORT.md
index 4a73566..fd7b8f8 100644
--- a/graphify-out/GRAPH_REPORT.md
+++ b/graphify-out/GRAPH_REPORT.md
@@ -1,16 +1,16 @@
-# Graph Report - ExLabWizard (2026-05-29)
+# Graph Report - ExLabWizard (2026-05-30)
## Corpus Check
-- 413 files · ~815,442 words
+- 432 files · ~800,691 words
- Verdict: corpus is large enough that graph structure adds value.
## Summary
-- 9314 nodes · 15346 edges · 644 communities (443 shown, 201 thin omitted)
-- Extraction: 77% EXTRACTED · 23% INFERRED · 0% AMBIGUOUS · INFERRED: 3564 edges (avg confidence: 0.71)
+- 9884 nodes · 16238 edges · 673 communities (484 shown, 189 thin omitted)
+- Extraction: 77% EXTRACTED · 23% INFERRED · 0% AMBIGUOUS · INFERRED: 3766 edges (avg confidence: 0.71)
- Token cost: 0 input · 0 output
## Graph Freshness
-- Built from commit: `51b61868`
+- Built from commit: `43a55083`
- Run `git rev-parse HEAD` and compare to check if the graph is stale.
- Run `graphify update .` after code changes (no API cost).
@@ -543,7 +543,19 @@
- [[_COMMUNITY_Community 525|Community 525]]
- [[_COMMUNITY_Community 526|Community 526]]
- [[_COMMUNITY_Community 527|Community 527]]
+- [[_COMMUNITY_Community 528|Community 528]]
+- [[_COMMUNITY_Community 529|Community 529]]
+- [[_COMMUNITY_Community 530|Community 530]]
+- [[_COMMUNITY_Community 531|Community 531]]
+- [[_COMMUNITY_Community 532|Community 532]]
+- [[_COMMUNITY_Community 533|Community 533]]
+- [[_COMMUNITY_Community 534|Community 534]]
+- [[_COMMUNITY_Community 535|Community 535]]
+- [[_COMMUNITY_Community 536|Community 536]]
+- [[_COMMUNITY_Community 537|Community 537]]
+- [[_COMMUNITY_Community 538|Community 538]]
- [[_COMMUNITY_Community 539|Community 539]]
+- [[_COMMUNITY_Community 540|Community 540]]
- [[_COMMUNITY_Community 541|Community 541]]
- [[_COMMUNITY_Community 542|Community 542]]
- [[_COMMUNITY_Community 543|Community 543]]
@@ -555,20 +567,7 @@
- [[_COMMUNITY_Community 549|Community 549]]
- [[_COMMUNITY_Community 550|Community 550]]
- [[_COMMUNITY_Community 551|Community 551]]
-- [[_COMMUNITY_Community 552|Community 552]]
-- [[_COMMUNITY_Community 553|Community 553]]
-- [[_COMMUNITY_Community 554|Community 554]]
-- [[_COMMUNITY_Community 555|Community 555]]
-- [[_COMMUNITY_Community 556|Community 556]]
-- [[_COMMUNITY_Community 557|Community 557]]
-- [[_COMMUNITY_Community 558|Community 558]]
-- [[_COMMUNITY_Community 559|Community 559]]
-- [[_COMMUNITY_Community 560|Community 560]]
-- [[_COMMUNITY_Community 561|Community 561]]
-- [[_COMMUNITY_Community 562|Community 562]]
-- [[_COMMUNITY_Community 563|Community 563]]
- [[_COMMUNITY_Community 564|Community 564]]
-- [[_COMMUNITY_Community 565|Community 565]]
- [[_COMMUNITY_Community 566|Community 566]]
- [[_COMMUNITY_Community 567|Community 567]]
- [[_COMMUNITY_Community 568|Community 568]]
@@ -601,6 +600,7 @@
- [[_COMMUNITY_Community 595|Community 595]]
- [[_COMMUNITY_Community 596|Community 596]]
- [[_COMMUNITY_Community 597|Community 597]]
+- [[_COMMUNITY_Community 598|Community 598]]
- [[_COMMUNITY_Community 599|Community 599]]
- [[_COMMUNITY_Community 600|Community 600]]
- [[_COMMUNITY_Community 601|Community 601]]
@@ -625,7 +625,6 @@
- [[_COMMUNITY_Community 620|Community 620]]
- [[_COMMUNITY_Community 621|Community 621]]
- [[_COMMUNITY_Community 622|Community 622]]
-- [[_COMMUNITY_Community 623|Community 623]]
- [[_COMMUNITY_Community 624|Community 624]]
- [[_COMMUNITY_Community 625|Community 625]]
- [[_COMMUNITY_Community 626|Community 626]]
@@ -642,9 +641,38 @@
- [[_COMMUNITY_Community 637|Community 637]]
- [[_COMMUNITY_Community 638|Community 638]]
- [[_COMMUNITY_Community 639|Community 639]]
+- [[_COMMUNITY_Community 640|Community 640]]
- [[_COMMUNITY_Community 641|Community 641]]
- [[_COMMUNITY_Community 642|Community 642]]
- [[_COMMUNITY_Community 643|Community 643]]
+- [[_COMMUNITY_Community 644|Community 644]]
+- [[_COMMUNITY_Community 645|Community 645]]
+- [[_COMMUNITY_Community 646|Community 646]]
+- [[_COMMUNITY_Community 647|Community 647]]
+- [[_COMMUNITY_Community 648|Community 648]]
+- [[_COMMUNITY_Community 649|Community 649]]
+- [[_COMMUNITY_Community 650|Community 650]]
+- [[_COMMUNITY_Community 651|Community 651]]
+- [[_COMMUNITY_Community 652|Community 652]]
+- [[_COMMUNITY_Community 653|Community 653]]
+- [[_COMMUNITY_Community 654|Community 654]]
+- [[_COMMUNITY_Community 655|Community 655]]
+- [[_COMMUNITY_Community 656|Community 656]]
+- [[_COMMUNITY_Community 657|Community 657]]
+- [[_COMMUNITY_Community 658|Community 658]]
+- [[_COMMUNITY_Community 659|Community 659]]
+- [[_COMMUNITY_Community 660|Community 660]]
+- [[_COMMUNITY_Community 661|Community 661]]
+- [[_COMMUNITY_Community 662|Community 662]]
+- [[_COMMUNITY_Community 663|Community 663]]
+- [[_COMMUNITY_Community 664|Community 664]]
+- [[_COMMUNITY_Community 666|Community 666]]
+- [[_COMMUNITY_Community 667|Community 667]]
+- [[_COMMUNITY_Community 668|Community 668]]
+- [[_COMMUNITY_Community 669|Community 669]]
+- [[_COMMUNITY_Community 670|Community 670]]
+- [[_COMMUNITY_Community 671|Community 671]]
+- [[_COMMUNITY_Community 672|Community 672]]
## God Nodes (most connected - your core abstractions)
1. `_deps()` - 139 edges
@@ -652,361 +680,361 @@
3. `AppDependencies` - 123 edges
4. `NASSyncClient` - 107 edges
5. `SyncStateWriter` - 102 edges
-6. `EquipmentConfig` - 93 edges
-7. `PathsConfig` - 91 edges
-8. `CreationWriter` - 79 edges
-9. `SessionStore` - 78 edges
-10. `Config` - 71 edges
+6. `EquipmentConfig` - 96 edges
+7. `PathsConfig` - 95 edges
+8. `CreationWriter` - 82 edges
+9. `SessionStore` - 79 edges
+10. `Config` - 73 edges
## Surprising Connections (you probably didn't know these)
-- `test_config_error_can_be_raised_and_caught()` --calls--> `ConfigError` [INFERRED]
- tests/unit/test_errors.py → src/exlab_wizard/errors.py
-- `test_validation_error_can_be_raised_and_caught()` --calls--> `ValidationError` [INFERRED]
- tests/unit/test_errors.py → src/exlab_wizard/errors.py
- `test_keyring_unavailable_error_can_be_raised_and_caught()` --calls--> `KeyringUnavailableError` [INFERRED]
tests/unit/test_errors.py → src/exlab_wizard/errors.py
- `test_evaluate_setup_state_no_config()` --calls--> `evaluate_setup_state()` [INFERRED]
tests/unit/test_paths.py → src/exlab_wizard/paths.py
- `writer()` --calls--> `CreationWriter` [INFERRED]
tests/unit/cache/test_creation_writer.py → src/exlab_wizard/cache/creation_writer.py
+- `test_paths_config_defaults_are_empty_strings()` --calls--> `PathsConfig` [INFERRED]
+ tests/unit/config/test_models.py → src/exlab_wizard/config/models.py
+- `test_paths_config_rejects_unknown_keys()` --calls--> `PathsConfig` [INFERRED]
+ tests/unit/config/test_models.py → src/exlab_wizard/config/models.py
-## Communities (644 total, 201 thin omitted)
+## Communities (673 total, 189 thin omitted)
### Community 0 - "Community 0"
Cohesion: 0.03
-Nodes (118): CreationJson, LimsProjectBlock, PathsBlock, Template provenance captured at creation time. Spec §11.3., Resolved on-disk paths captured at creation time. Spec §11.3., Top-level ``creation.json`` payload at schema version 1.8. Reading: ``msgsp, LIMS-side project identity captured at creation time. Spec §11.3. Required, TemplateBlock (+110 more)
+Nodes (154): CreationJson, LimsProjectBlock, OverrideEntry, PathsBlock, msgspec.Struct types for the ExLab-Wizard cache files. This module is the singl, Template provenance captured at creation time. Spec §11.3., Resolved on-disk paths captured at creation time. Spec §11.3., Operator-recorded validation override entry. Spec §11.3. ``revoked`` is ``F (+146 more)
### Community 1 - "Community 1"
Cohesion: 0.03
-Nodes (130): AppDependencies, create_app(), Bundle of live components the API surface dispatches to. Production wiring, Build the FastAPI app. Backend Spec §4.6. ``config``: optional pre-loaded `, Build the FastAPI app. Backend Spec §4.6. ``config``: optional pre-loaded `, compute_setup_state(), Evaluate the §4.9.1 state for the app's current dependencies. The dependenc, Evaluate the §4.9.1 state for the app's current dependencies. The dependenc (+122 more)
+Nodes (113): CreationWriter, Atomic reader/writer for ``creation.json``. Backend Spec §4.4.5., Construct the writer. ``lock_timeout_seconds`` is the wall-clock cap fo, Write a fresh ``creation.json``. Reserved for initial creation. Acquire, Read, mutate, and write ``creation.json`` under one ``LOCK_EX``. The fu, Read a snapshot under ``LOCK_SH`` (shared/read lock). Concurrent reader, BandwidthConfig, ``bandwidth:`` sub-block on a transport. (+105 more)
### Community 2 - "Community 2"
Cohesion: 0.03
-Nodes (113): keyring_nas_username(), OS-keyring service/username conventions used for credential storage. The wizard, Return the keyring username for the given equipment's NAS credential. Equip, _config(), _deps(), _nas_config(), Tests for ``exlab_wizard.ui.mount`` helpers. The ``@ui.page(...)`` decorators i, Phase 4 adds optional file / q / density params to the same URL model. (+105 more)
+Nodes (105): _config(), _deps(), _nas_config(), Tests for ``exlab_wizard.ui.mount`` helpers. The ``@ui.page(...)`` decorators i, A clicked path is resolved from the in-memory feed into a file payload., A clicked path is resolved from the in-memory feed into a file payload., A clicked path is resolved from the in-memory feed into a file payload., Live-LIMS branch with the keyring password absent -> not ready. (+97 more)
### Community 3 - "Community 3"
-Cohesion: 0.05
-Nodes (100): _build_config(), _build_controller(), _drain_to_done(), _project_request(), End-to-end integration tests for :class:`CreationController`. Each test drives, The controller writes ``equipment.json`` under ``//.exlab-wiz, Generic exceptions are wrapped as ``internal_error``., The best-effort log appender writes to the equipment cache dir. (+92 more)
+Cohesion: 0.03
+Nodes (66): Mutable cross-request state for the e2e harness., TestState, cache_dir(), Return the ``.exlab-wizard/`` subdirectory for a run or project root., Return the ``.exlab-wizard/`` subdirectory for a run or project root., _build_driver(), _build_target_for(), _compute_nas_path() (+58 more)
### Community 4 - "Community 4"
-Cohesion: 0.05
-Nodes (69): Tests for ``exlab_wizard.io.yaml_files``., A YAML file with a top-level scalar/list is not a manifest., test_load_yaml_manifest_empty_file_returns_empty_dict(), test_load_yaml_manifest_missing_file_raises(), test_load_yaml_manifest_non_dict_returns_empty_dict(), test_load_yaml_manifest_propagates_yaml_error(), test_load_yaml_manifest_returns_dict(), load_yaml_manifest() (+61 more)
+Cohesion: 0.03
+Nodes (76): One operator-defined extra README field. Backend Spec §9, §10., One operator-defined extra README field. Backend Spec §9, §10., READMEDefaultField, _equipment_dict(), _orch_staging_transport_dict(), Unit tests for ``exlab_wizard.config.models``. Pydantic models that mirror ``co, The operator-free quiescence redesign drops the per-equipment completeness-s, rclone.conf migration (Phase 8): the per-equipment staging-transport block i (+68 more)
### Community 5 - "Community 5"
-Cohesion: 0.05
-Nodes (70): _make_config(), _mark_synced(), Unit tests for the ``/staging`` router. Backend Spec §13.7, §13.8. The operator, Seed a run dir that carries a ``creation.json`` -- a real run., Write a fully-verified ``sync_state.json`` so the run rolls up to ``synced``., Write a fully-verified ``sync_state.json`` so the run rolls up to ``synced``., A run with no queue job and no directory clears to zeros., A run with no queue job and no directory clears to zeros. (+62 more)
+Cohesion: 0.04
+Nodes (57): _attach_resolved(), CreationController, _format_error(), _has_hard_finding(), _os_username(), _project_name_for(), Creation controller. Backend Spec §4.4.1, §4.7, §4.8. Composes the validator, t, Run :meth:`Validator.validate_creation` against the rendered tree. Catc (+49 more)
### Community 6 - "Community 6"
Cohesion: 0.04
-Nodes (57): _equipment_dict(), _orch_staging_transport_dict(), Unit tests for ``exlab_wizard.config.models``. Pydantic models that mirror ``co, The operator-free quiescence redesign drops the per-equipment completeness-s, rclone.conf migration (Phase 8): the per-equipment staging-transport block i, rclone.conf migration: nas-mode carries no per-equipment connection. The ``, rclone.conf migration: a stray ``transport`` key is now forbidden., rclone.conf migration (Phase 8): stage-mode no longer requires (or accepts) (+49 more)
+Nodes (67): lock_path_for(), Cache package. Backend Spec §11., Return the advisory file-lock path string for ``path``. Centralizes the ``s, FileSyncRecord, ``msgspec.Struct`` types for the per-run ``sync_state.json`` cache. Operator-fr, Per-file sync record stored under ``sync_state.json``'s ``files`` map. One, ``sync_state.json`` per-run sync-state record at schema version 1.0. Writte, SyncStateJson (+59 more)
### Community 7 - "Community 7"
-Cohesion: 0.04
-Nodes (67): AutostartRequest, AutostartResult, _await_or_call(), build_setup_router(), _coerce_probe_dict(), EquipmentTestRequest, is_creation_blocked(), LIMSTestRequest (+59 more)
+Cohesion: 0.05
+Nodes (69): Tests for ``exlab_wizard.io.yaml_files``., A YAML file with a top-level scalar/list is not a manifest., test_load_yaml_manifest_empty_file_returns_empty_dict(), test_load_yaml_manifest_missing_file_raises(), test_load_yaml_manifest_non_dict_returns_empty_dict(), test_load_yaml_manifest_propagates_yaml_error(), test_load_yaml_manifest_returns_dict(), load_yaml_manifest() (+61 more)
### Community 8 - "Community 8"
Cohesion: 0.05
-Nodes (46): OrchestratorStagingCleanup, ``orchestrator.staging_cleanup:`` sub-block. Backend Spec §13.7., ``orchestrator.staging_cleanup:`` sub-block. Backend Spec §13.7., _Handle, _make_config(), _mark_run_synced(), Integration test for the orchestrator quiescence-sync lifecycle. Backend Spec §, A staged run is enqueued only once its files settle for the window. (+38 more)
+Nodes (72): Parallelism knobs forwarded to rclone (``--transfers`` / ``--checkers``). T, RclonePerf, NASSyncClient, Durable, per-equipment NAS sync queue with Pre-Sync Gate. Backend Spec §7.1, Swap the cached config + equipment map in place (no relaunch). The ``eq, Open the queue and start the worker task. Backend Spec §7.1.2., Durable, per-equipment NAS sync queue with Pre-Sync Gate. Backend Spec §7.1, Swap the cached config + equipment map in place (no relaunch). The ``eq (+64 more)
### Community 9 - "Community 9"
-Cohesion: 0.08
-Nodes (55): EquipmentJson, OrchestratorBlock, PluginApplied, PluginIsolation, msgspec.Struct types for the ExLab-Wizard cache files. This module is the singl, Plugin worker isolation telemetry. Spec §6.2.4 / §11.3 (added 1.3)., Per-plugin invocation record written into ``plugins_applied``. Spec §6.2.4, Orchestrator-mode metadata. Spec §11.3 / §13 / Redesign Spec §3.3. Always p (+47 more)
+Cohesion: 0.04
+Nodes (62): _parse_argv(), Parse the tray's CLI arguments. The tray accepts: - ``--version`` -- p, Bundle of long-lived tray components. The launcher constructs one and calls, Spawn or focus the window subprocess., TrayApp, _make_tray(), Tests for :mod:`exlab_wizard.tray.main`. Backend Spec §4.3.2., ``main()`` builds default components and calls :meth:`TrayApp.run`. (+54 more)
### Community 10 - "Community 10"
-Cohesion: 0.05
-Nodes (51): on_operations_panel(), project_identifier(), In-memory session store + GC for creation sessions. Backend Spec §4.4.7. The :c, Create a fresh session in :data:`SessionState.PENDING` state., Return the session keyed by ``session_id``, or ``None``., Return ``(session_id, session)`` pairs, oldest-created first. The publi, Move ``session_id`` to ``new_state``, updating ``current_phase``. Valid, Attach a WebSocket fan-out queue to the session. The controller pushes (+43 more)
+Cohesion: 0.06
+Nodes (67): EquipmentJson, PluginIsolation, Plugin worker isolation telemetry. Spec §6.2.4 / §11.3 (added 1.3)., ``equipment.json`` at schema version 1.0. Spec §11.4.1., app_with_real_controller(), The soft block does not gate POST /sessions per §4.9.4., The soft block does not gate POST /sessions per §4.9.4., End-to-end WebSocket stream of phase frames. Uses the synchronous TestClien (+59 more)
### Community 11 - "Community 11"
Cohesion: 0.05
-Nodes (55): _default_handoff(), is_pid_alive(), main(), _posix_is_pid_alive(), ``exlab-wizard-window`` console_scripts entry point. Backend Spec §15.3.2. Read, Entry point. Backend Spec §15.3.2. ``argv`` is ignored at this phase (the s, Hand off control to :mod:`pywebview_app`., Resolved ``server.json`` contents: ``port`` / ``pid`` / ``started_at``. (+47 more)
+Nodes (70): is_test_run_dir(), True if ``name`` is a test-run directory., True if ``name`` is a test-run directory., Return every run-leaf directory pending NAS sync. Stage-mode runs sit u, count_files_and_bytes(), iter_subdirs(), Shared filesystem helpers for the orchestrator. Backend Spec §13.2. Both :mod:`, Sum file count + total bytes under ``run_path``. With ``exclude_cache=True` (+62 more)
### Community 12 - "Community 12"
-Cohesion: 0.07
-Nodes (62): local_check_factory(), local_lsjson_factory(), Check factory whose closure declares every file equal. Returns a closure co, Check factory whose closure declares every file equal. Returns a closure co, lsjson factory whose closure mirrors the local subtree perfectly. Returns a, _build_config(), _factory(), _populate_run() (+54 more)
+Cohesion: 0.04
+Nodes (70): _config_with_local_root(), Unit tests for the ``/tree`` and ``/run/{path}`` browse endpoints., ``TestRuns`` directory under a project surfaces as ``test_runs`` list., ``TestRuns`` directory under a project surfaces as ``test_runs`` list., A creation.json that is present but malformed surfaces as 422., A creation.json that is present but malformed surfaces as 422., Run with creation.json but no README.md returns readme: null., Run with creation.json but no README.md returns readme: null. (+62 more)
### Community 13 - "Community 13"
Cohesion: 0.05
-Nodes (60): apply_test_mode_prefix(), _deep_merge(), dump_config(), load_config(), load_config_from_text(), config.yaml round-trip loader. Backend Spec §9. Uses ruamel.yaml in round-trip, Load a config from YAML text. Same semantics as load_config but for in-memory in, Atomically write `config` back to `path`. If `original_text` is supplied, r (+52 more)
+Nodes (49): OrchestratorStagingCleanup, ``orchestrator.staging_cleanup:`` sub-block. Backend Spec §13.7., ``orchestrator.staging_cleanup:`` sub-block. Backend Spec §13.7., test_orchestrator_staging_cleanup_defaults(), test_orchestrator_staging_cleanup_rejects_unknown_mode(), test_orchestrator_staging_cleanup_scheduled_requires_positive_hours(), _Handle, _make_config() (+41 more)
### Community 14 - "Community 14"
-Cohesion: 0.04
-Nodes (56): _build_creation_writer(), _build_equipment_writer(), _build_keyring_store(), _build_nas_sync(), _build_plugin_host(), build_production_dependencies(), _build_quiescence_poller(), _build_session_store() (+48 more)
+Cohesion: 0.03
+Nodes (65): A tombstone ("On NAS") file has no on-disk copy, so size is None., Minimal NiceGUI surface stand-in: clipboard + navigate.to + notify., Minimal NiceGUI surface stand-in: clipboard + navigate.to + notify., A tombstone ("On NAS") file has no on-disk copy, so size is None., Minimal NiceGUI surface stand-in: clipboard + navigate.to + notify., A tombstone ("On NAS") file has no on-disk copy, so size is None., Nothing selected -> no scan, no write, no raise., Minimal NiceGUI surface stand-in: clipboard + navigate.to + notify. (+57 more)
### Community 15 - "Community 15"
-Cohesion: 0.05
-Nodes (49): PluginStatus, Plugin invocation outcome reported by the host. Backend Spec §6.2.4., Plugin invocation outcome reported by the host. Backend Spec §6.2.4., applied_entry_as_json(), _apply_rlimits(), _build_applied_entry(), build_test_registry(), _diff_and_collect_violations() (+41 more)
+Cohesion: 0.04
+Nodes (42): _PydanticBody, Module-level body class so FastAPI treats ``body: _PydanticBody`` as a JSON, error_plugin -- raises PluginError mid-transform., ErrorPlugin, error_plugin -- raises PluginError mid-transform. Exercises the Backend Spec §6, Always raises PluginError on transform., ExLabError, PluginError (+34 more)
### Community 16 - "Community 16"
Cohesion: 0.05
-Nodes (54): DeltaEvent, DoneEvent, encode_event(), event_from_dict(), FailedEvent, InputRequiredEvent, PhaseEvent, ProgressEvent (+46 more)
+Nodes (62): Tests for the standalone dev seeder (``python -m exlab_wizard.dev.seed``)., Pin the sandbox under ``tmp_path`` and enable test mode. Patches ``paths.os, A clean sandbox (no config) is bootstrapped and fully seeded., A second run wipes the seeded subtree (clearing stray files) and rebuilds., _sandbox_under(), test_seed_main_creates_full_tree(), test_seed_main_wipes_and_rebuilds(), creation_json_path() (+54 more)
### Community 17 - "Community 17"
-Cohesion: 0.04
-Nodes (54): Minimal NiceGUI surface stand-in: clipboard + navigate.to + notify., Minimal NiceGUI surface stand-in: clipboard + navigate.to + notify., A tombstone ("On NAS") file has no on-disk copy, so size is None., Minimal NiceGUI surface stand-in: clipboard + navigate.to + notify., A tombstone ("On NAS") file has no on-disk copy, so size is None., Minimal NiceGUI surface stand-in: clipboard + navigate.to + notify., ``open_in_os`` action calls the platform opener and reports success., ``open_in_os`` action calls the platform opener and reports success. (+46 more)
+Cohesion: 0.05
+Nodes (55): _default_handoff(), is_pid_alive(), main(), _posix_is_pid_alive(), ``exlab-wizard-window`` console_scripts entry point. Backend Spec §15.3.2. Read, Entry point. Backend Spec §15.3.2. ``argv`` is ignored at this phase (the s, Hand off control to :mod:`pywebview_app`., Resolved ``server.json`` contents: ``port`` / ``pid`` / ``started_at``. (+47 more)
### Community 18 - "Community 18"
-Cohesion: 0.08
-Nodes (55): NASSyncClient, Durable, per-equipment NAS sync queue with Pre-Sync Gate. Backend Spec §7.1, Durable, per-equipment NAS sync queue with Pre-Sync Gate. Backend Spec §7.1, _build_config(), _client_for_target_test(), _make_creation(), _make_push_factory(), _make_recording_push_factory() (+47 more)
+Cohesion: 0.05
+Nodes (49): project_identifier(), In-memory session store + GC for creation sessions. Backend Spec §4.4.7. The :c, Create a fresh session in :data:`SessionState.PENDING` state., Return the session keyed by ``session_id``, or ``None``., Return ``(session_id, session)`` pairs, oldest-created first. The publi, Move ``session_id`` to ``new_state``, updating ``current_phase``. Valid, Attach a WebSocket fan-out queue to the session. The controller pushes, Refresh ``last_heartbeat`` so the GC will not close this session. No-op (+41 more)
### Community 19 - "Community 19"
Cohesion: 0.05
-Nodes (54): BandwidthDay, CreationLevel, DirectoryLevel, FieldType, FindingKind, LIMSProjectStatus, NextAction, OrchestratorTransportType (+46 more)
+Nodes (54): LoggingConfig, ``logging:`` block. Central app-log rotation + level., ``logging:`` block. Central app-log rotation + level., test_logging_central_log_keep_at_least_one(), test_logging_central_log_max_mb_at_least_one(), test_logging_level_accepts_all_canonical_values(), test_logging_level_normalized_to_uppercase(), test_logging_level_rejects_non_string_directly() (+46 more)
### Community 20 - "Community 20"
Cohesion: 0.05
-Nodes (40): Bundle of long-lived tray components. The launcher constructs one and calls, Spawn or focus the window subprocess., TrayApp, _make_tray(), Tests for :mod:`exlab_wizard.tray.main`. Backend Spec §4.3.2., ``main()`` builds default components and calls :meth:`TrayApp.run`., ``asyncio.run`` raises RuntimeError when a loop is running. The tray's ``re, ``_build_default_app`` builds deps, calls ``create_app``, mounts NiceGUI. (+32 more)
+Nodes (34): ABC, Plugin, Plugin contract base class. Backend Spec §6.1. Defines the public surface that, Return a list of error strings; empty list means "valid". Default imple, Called once before the file loop. Default: no-op. Use for batch setup t, Called once after the file loop. Default: no-op. Symmetric to :meth:`pr, Called if any prior hook raised. Default: no-op. Use to roll back parti, Abstract base class for all ExLab-Wizard plugins. Backend Spec §6.1.3. (+26 more)
### Community 21 - "Community 21"
-Cohesion: 0.06
-Nodes (29): _attach_resolved(), CreationController, _format_error(), _has_hard_finding(), _project_name_for(), Creation controller. Backend Spec §4.4.1, §4.7, §4.8. Composes the validator, t, Write the per-equipment ``equipment.json`` registry record. Backend Spe, Run :meth:`Validator.validate_creation` against the rendered tree. Catc (+21 more)
+Cohesion: 0.05
+Nodes (49): PluginStatus, Plugin invocation outcome reported by the host. Backend Spec §6.2.4., Plugin invocation outcome reported by the host. Backend Spec §6.2.4., applied_entry_as_json(), _apply_rlimits(), _build_applied_entry(), build_test_registry(), _diff_and_collect_violations() (+41 more)
### Community 22 - "Community 22"
Cohesion: 0.05
-Nodes (35): assert_transition(), Return the :class:`Phase` event corresponding to ``state``. Backend Spec §4, Raise :class:`ValueError` if ``current -> new_state`` is illegal. Defensive, state_to_phase(), Tests for ``exlab_wizard.controller.state_machine``. The state machine is the c, The guard rejects a state not present in ``VALID_TRANSITIONS``. We can't ea, Every ``SessionState`` value must have an explicit mapping entry., test_assert_transition_allows_cancel_from_any_non_terminal() (+27 more)
+Nodes (54): _build_creation_writer(), _build_equipment_writer(), _build_keyring_store(), _build_nas_sync(), _build_plugin_host(), build_production_dependencies(), _build_quiescence_poller(), _build_session_store() (+46 more)
### Community 23 - "Community 23"
-Cohesion: 0.06
-Nodes (35): _PydanticBody, Module-level body class so FastAPI treats ``body: _PydanticBody`` as a JSON, ExLabError, PluginInputRequired, Top-level exception hierarchy. Backend Spec §4.3 errors.py., Base class for all ExLab-Wizard exceptions., Raised when a Copier template fails to load. Backend Spec §5., Raised when a template redeclares label / operator / objective. Backend Spec §10 (+27 more)
+Cohesion: 0.04
+Nodes (54): _controller(), Unit tests for ``CreationController.apply_config`` (live config reload). The co, test_apply_config_reinjects_plugin_host_only_when_given(), test_apply_config_swaps_config(), A resolvable file flips keep_local via the writer and fires on_done., A resolvable file flips keep_local via the writer and fires on_done., A resolvable file flips keep_local via the writer and fires on_done., A resolvable file flips keep_local via the writer and fires on_done. (+46 more)
### Community 24 - "Community 24"
-Cohesion: 0.11
-Nodes (44): KeyringStore, OS keyring with encrypted-at-rest fallback. Backend Spec §7.4. Tries the OS, _BrokenKeyring, _InMemoryKeyring, Tests for :class:`exlab_wizard.lims.keyring_store.KeyringStore`. The OS-keyring, Set + get via the encrypted fallback (no OS keyring)., The fallback file is a JSON envelope with version, salt, ciphertext., A second ``set_password`` overwrites the prior secret. (+36 more)
+Cohesion: 0.05
+Nodes (35): assert_transition(), Return the :class:`Phase` event corresponding to ``state``. Backend Spec §4, Raise :class:`ValueError` if ``current -> new_state`` is illegal. Defensive, state_to_phase(), Tests for ``exlab_wizard.controller.state_machine``. The state machine is the c, The guard rejects a state not present in ``VALID_TRANSITIONS``. We can't ea, Every ``SessionState`` value must have an explicit mapping entry., test_assert_transition_allows_cancel_from_any_non_terminal() (+27 more)
### Community 25 - "Community 25"
-Cohesion: 0.06
-Nodes (51): creation_json_path(), Return the ``creation.json`` path under a run or project directory., build_browse_router(), _build_equipment_node(), build_hierarchy_dict(), _build_project_node(), build_received_equipment_nodes(), _build_run_node() (+43 more)
+Cohesion: 0.07
+Nodes (47): OrchestratorBlock, PluginApplied, Per-plugin invocation record written into ``plugins_applied``. Spec §6.2.4, Orchestrator-mode metadata. Spec §11.3 / §13 / Redesign Spec §3.3. Always p, Write the per-equipment ``equipment.json`` registry record. Backend Spe, Write the per-equipment ``equipment.json`` registry record. Backend Spe, Write README + creation.json into the destination tree., Write README + creation.json into the destination tree. (+39 more)
### Community 26 - "Community 26"
-Cohesion: 0.04
-Nodes (50): _controller(), Unit tests for ``CreationController.apply_config`` (live config reload). The co, test_apply_config_reinjects_plugin_host_only_when_given(), test_apply_config_swaps_config(), A resolvable file flips keep_local via the writer and fires on_done., A resolvable file flips keep_local via the writer and fires on_done., A resolvable file flips keep_local via the writer and fires on_done., A resolvable file flips keep_local via the writer and fires on_done. (+42 more)
+Cohesion: 0.11
+Nodes (44): KeyringStore, OS keyring with encrypted-at-rest fallback. Backend Spec §7.4. Tries the OS, _BrokenKeyring, _InMemoryKeyring, Tests for :class:`exlab_wizard.lims.keyring_store.KeyringStore`. The OS-keyring, Set + get via the encrypted fallback (no OS keyring)., The fallback file is a JSON envelope with version, salt, ciphertext., A second ``set_password`` overwrites the prior secret. (+36 more)
### Community 27 - "Community 27"
-Cohesion: 0.08
-Nodes (47): _make_config(), _make_run(), _poller(), Unit tests for ``exlab_wizard.orchestrator.quiescence_poller``. The :class:`Qui, Create a run-leaf directory mirroring the §13.2 staging layout., A file is enqueued only after its signature settles for the window., A file is enqueued only after its signature settles for the window., A signature change resets ``first_seen``; the window restarts. (+39 more)
+Cohesion: 0.06
+Nodes (37): Integration test: tray <-> window lifecycle round-trip. Backend Spec §4.3.2. Th, Poll ``/api/v1/health`` until the server is accepting requests., test_tray_lifecycle_round_trip(), test_tray_lifecycle_window_handshake_reads_server_json(), _wait_for_health(), Integration smoke: pywebview-facing root path returns HTML, not JSON 404. This, test_root_serves_html_after_mount(), _wait_for() (+29 more)
### Community 28 - "Community 28"
-Cohesion: 0.08
-Nodes (44): CreationWriter, Atomic reader/writer for ``creation.json``. Backend Spec §4.4.5., Construct the writer. ``lock_timeout_seconds`` is the wall-clock cap fo, Write a fresh ``creation.json``. Reserved for initial creation. Acquire, Read, mutate, and write ``creation.json`` under one ``LOCK_EX``. The fu, Read a snapshot under ``LOCK_SH`` (shared/read lock). Concurrent reader, _build_config(), _make_creation() (+36 more)
+Cohesion: 0.04
+Nodes (51): _build_operation_rows(), _cancel_operation(), _cancel_session(), _open_operations_modal(), Build the Operations-panel rows from the live session store (T3). Uses the, Open the in-flight Operations panel (Frontend §9.5). Builds a fresh snapsho, Build the Operations-panel rows from the live session store (T3). Uses the, Open the in-flight Operations panel (Frontend §9.5). Builds a fresh snapsho (+43 more)
### Community 29 - "Community 29"
-Cohesion: 0.06
-Nodes (44): _build_real_handlers(), configure_logging(), get_logger(), Canonical logger factory + configuration. Backend Spec §16.2.1, §16.2.2, §16.2.5, Drain the queue, stop the listener thread, and detach the queue handler. Ca, Tear down the active listener. Must be called with ``_state_lock`` held., Return the numeric level threshold for the root logger. ``LoggingConfig`` a, Return ``(central_log_max_mb, central_log_keep)`` from ``config`` or defaults. (+36 more)
+Cohesion: 0.05
+Nodes (50): AuditScopeKind, BandwidthDay, CreationLevel, DirectoryLevel, FieldType, FindingKind, LIMSProjectSource, LIMSProjectStatus (+42 more)
### Community 30 - "Community 30"
+Cohesion: 0.08
+Nodes (47): _make_config(), _make_run(), _poller(), Unit tests for ``exlab_wizard.orchestrator.quiescence_poller``. The :class:`Qui, Create a run-leaf directory mirroring the §13.2 staging layout., A file is enqueued only after its signature settles for the window., A file is enqueued only after its signature settles for the window., A signature change resets ``first_seen``; the window restarts. (+39 more)
+
+### Community 31 - "Community 31"
Cohesion: 0.06
Nodes (49): build_error_envelope(), _config_error_handler(), error_response(), _exlab_validation_handler(), extract_or_create_trace_id(), _generic_handler(), _http_exception_handler(), _keyring_unavailable_handler() (+41 more)
-### Community 31 - "Community 31"
+### Community 32 - "Community 32"
Cohesion: 0.12
Nodes (49): _click(), _click_handler(), _config_with(), _draft_of(), _find(), _find_all(), _fire_change(), _nas_equipment() (+41 more)
-### Community 32 - "Community 32"
-Cohesion: 0.06
-Nodes (48): Split ``proposed_path`` into per-segment names. Accepts both POSIX and Wind, _split_path_segments(), _clean_input(), Unit tests for ``exlab_wizard.validator.engine`` -- creation-time mode. The eng, Default ValidatorConfig matches the §9 documented defaults., Test-mode input with TestRuns/ parent and TestRun_ leaf passes., An angle-bracket identifier in a path segment fires §8.1.1., A Windows-illegal char in a file name fires §8.1.2. (+40 more)
-
### Community 33 - "Community 33"
-Cohesion: 0.06
-Nodes (47): append_log_line(), format_log_line(), Append-only writer for ``wizard..log`` files. Backend Spec §11.5, §16., Render the supplied context as ``[host:..] [equip:..] ...``. Returns the em, Trim ``line`` so its UTF-8 byte length is at most ``LOG_LINE_MAX_BYTES``. T, Append a single ``line`` to a ``wizard..log`` file. Creates the p, Render a structured log line per Backend Spec §11.5 / §16.4. Tags are omitt, _render_tags() (+39 more)
+Cohesion: 0.04
+Nodes (50): A run dir without a creation.json yields {path, name}, not crash., A run dir without a creation.json yields {path, name}, not crash., A run dir without a creation.json yields {path, name}, not crash., A run dir without a creation.json yields {path, name}, not crash., A run dir without a creation.json yields {path, name}, not crash., A directory match delegates to the one-level folder aggregate scan., A directory match delegates to the one-level folder aggregate scan., ``copy_path`` writes the entry path to the NiceGUI clipboard. (+42 more)
### Community 34 - "Community 34"
Cohesion: 0.06
-Nodes (35): parse_validation_override_entry(), Inspect ``entry["revoked"]`` and ``entry["revokes"]`` to decide which Struct, _creation_json_payload(), _minimal_creation_json(), Tests for the msgspec.Struct cache-file types in ``exlab_wizard.api.schemas``., Spec §11.3: orchestrator is *absent* (not null) in single-equipment mode., Redesign §3.3: pushed creation.json carries the equipment label so the orche, Older creation.json files (no relay field) decode cleanly. (+27 more)
+Nodes (47): append_log_line(), format_log_line(), Append-only writer for ``wizard..log`` files. Backend Spec §11.5, §16., Render the supplied context as ``[host:..] [equip:..] ...``. Returns the em, Trim ``line`` so its UTF-8 byte length is at most ``LOG_LINE_MAX_BYTES``. T, Append a single ``line`` to a ``wizard..log`` file. Creates the p, Render a structured log line per Backend Spec §11.5 / §16.4. Tags are omitt, _render_tags() (+39 more)
### Community 35 - "Community 35"
-Cohesion: 0.1
-Nodes (44): CustomField, Field declaration from a template's ``_exlab_readme.fields`` list or from ``, An ad-hoc user-added field. Backend Spec §10.4. Custom fields are plain str, TemplateFieldDecl, _ctx(), Tests for :class:`exlab_wizard.readme.generator.ReadmeGenerator`. Pins the cont, Calling generate twice with the same context produces identical bytes., A value whose id has no declaration is permitted (controller-side merge). (+36 more)
+Cohesion: 0.07
+Nodes (48): _make_config(), _mark_synced(), Unit tests for the ``/staging`` router. Backend Spec §13.7, §13.8. The operator, Seed a run dir that carries a ``creation.json`` -- a real run., Write a fully-verified ``sync_state.json`` so the run rolls up to ``synced``., Write a fully-verified ``sync_state.json`` so the run rolls up to ``synced``., A run with no queue job and no directory clears to zeros., A run with no queue job and no directory clears to zeros. (+40 more)
### Community 36 - "Community 36"
-Cohesion: 0.07
-Nodes (37): _Bucket, _coalesced_message(), _default_notifier(), _noop_notifier(), NotificationBus, notify(), OS notifications via plyer with 5-second coalescing. Backend Spec §15.7.3. Two, Coalescing layer over :func:`notify`. The launcher constructs one bus and t (+29 more)
+Cohesion: 0.06
+Nodes (48): Split ``proposed_path`` into per-segment names. Accepts both POSIX and Wind, _split_path_segments(), _clean_input(), Unit tests for ``exlab_wizard.validator.engine`` -- creation-time mode. The eng, Default ValidatorConfig matches the §9 documented defaults., Test-mode input with TestRuns/ parent and TestRun_ leaf passes., An angle-bracket identifier in a path segment fires §8.1.1., A Windows-illegal char in a file name fires §8.1.2. (+40 more)
### Community 37 - "Community 37"
-Cohesion: 0.04
-Nodes (44): 7.1.10 Cache file syncing and metadata-only retention on cleanup, 7.1.1 Component model, 7.1.2 Job lifecycle, 7.1.3 Transport driver (`RcloneDriver`), 7.1.3 Transport drivers, 7.1.4 Hash verification, 7.1.4 Verify flow (lsjson reconcile + cleanup-time hash gate), 7.1.5 Retry policy (+36 more)
+Cohesion: 0.08
+Nodes (46): NASCleanupConfig, ``nas_cleanup:`` block. Local-copy retention after NAS verify., ``nas_cleanup:`` block. Local-copy retention after NAS verify., test_nas_cleanup_defaults(), test_nas_cleanup_min_age_hours_non_negative(), test_nas_cleanup_min_verify_passes_at_least_one(), _build_config(), _make_creation() (+38 more)
### Community 38 - "Community 38"
-Cohesion: 0.07
-Nodes (42): Tests for the rclone transport driver. Backend Spec §7.1.3, §7.1.5. The driver, A missing binary raises :class:`TransportError`, not a retry result., A missing binary raises :class:`TransportError`, not a retry result., ``env`` arrives in the subprocess; ``mask_for_log`` redacts the password. T, Install the rclone stub under ``tmp_path/bin`` and prepend to PATH., Install the rclone stub under ``tmp_path/bin`` and prepend to PATH., If the --combined tempfile cannot be read, treat it as empty output., Tell the stub to append every invocation's argv to a log file. (+34 more)
+Cohesion: 0.05
+Nodes (24): ``test_runs.json`` marker at schema version 1.0. Spec §11.4.2. Filename ret, TestRunsJson, _from_must_precede_to(), OperatorsConfig, _parse_hhmm(), Pydantic models that mirror ``config.yaml``. Backend Spec §9. These models are, ``readme:`` block. Lab-policy fields layered on top of the core set., ``readme:`` block. Lab-policy fields layered on top of the core set. (+16 more)
### Community 39 - "Community 39"
Cohesion: 0.05
-Nodes (43): Structural smoke tests for the PyInstaller distribution. Phase 15. The actual `, ``__version__`` mirrors ``[project] version`` in ``pyproject.toml``. Drift, ``[project.scripts]`` lists exactly the three §15.3 entry points., ``exlab_wizard.spec`` parses as Python source. The file is interpreted by P, The spec names each of the three §15.1 executables., The spec names the three entry-point script paths. PyInstaller resolves the, The spec uses PyInstaller's ``MERGE`` directive (Backend Spec §15.1). ``MER, The spec declares hidden imports for libs PyInstaller misses. Backend Spec (+35 more)
+Nodes (44): build_test_app(), _classify_test_node(), create_app_factory(), _feed_rows(), E2E test app wiring (Phase 16 follow-up). Builds a FastAPI app via :func:`exlab, Parse a request URL's query string into a multi-value mapping., Same shape classifier the production mount uses, for seeded ids. Returns ``, Per-node-kind hardcoded payloads the test app threads into the production re (+36 more)
### Community 40 - "Community 40"
-Cohesion: 0.08
-Nodes (34): format_status(), Status-submenu rendering. Backend Spec §4.3.2. The tray's status submenu shows, Spawn the ticker thread. Idempotent., Signal the ticker to exit. Idempotent., Run a single tick synchronously. Returns the new label. Tests call this, Best-effort numeric read; missing / None / non-int returns 0., Immutable view over the §4.3.2 status inputs., Build a :class:`StatusSnapshot` from live component references. Each compon (+26 more)
+Cohesion: 0.05
+Nodes (46): _close_dialog(), _consume_session_progress(), _open_input_required_dialog(), Open the §9.1 escalation dialog; Submit resumes, Cancel confirms (T5). Subm, Open the §9.1 escalation dialog; Submit resumes, Cancel confirms (T5). Subm, Open the §9.1 escalation dialog; Submit resumes, Cancel confirms (T5). Subm, Open the in-flight Operations panel (Frontend §9.5). Builds a fresh snapsho, Open the §9.1 escalation dialog; Submit resumes, Cancel confirms (T5). Subm (+38 more)
### Community 41 - "Community 41"
-Cohesion: 0.08
-Nodes (39): format_bytes(), format_elapsed(), _invoke(), Orchestrator staging panel (Frontend Spec §3.9, Backend §13.8). A bottom-dock p, Render ``value`` as a binary unit string (KiB / MiB / ...). Returns a compa, Render ``seconds`` as a compact "Hh Mm Ss" / "Mm Ss" / "Ss" string., Static badge props for a staging-state pill. Returns ``{label, color, backg, Render-ready dict for one table row. Exposed for unit tests so the pure for (+31 more)
+Cohesion: 0.07
+Nodes (42): format_bytes(), format_elapsed(), _invoke(), Orchestrator staging panel (Frontend Spec §3.9, Backend §13.8). A bottom-dock p, Render ``value`` as a binary unit string (KiB / MiB / ...). Returns a compa, Render ``seconds`` as a compact "Hh Mm Ss" / "Mm Ss" / "Ss" string., Static badge props for a staging-state pill. Returns ``{label, color, backg, Render-ready dict for one table row. Exposed for unit tests so the pure for (+34 more)
+
+### Community 42 - "Community 42"
+Cohesion: 0.06
+Nodes (35): parse_validation_override_entry(), Inspect ``entry["revoked"]`` and ``entry["revokes"]`` to decide which Struct, _creation_json_payload(), _minimal_creation_json(), Tests for the msgspec.Struct cache-file types in ``exlab_wizard.api.schemas``., Spec §11.3: orchestrator is *absent* (not null) in single-equipment mode., Redesign §3.3: pushed creation.json carries the equipment label so the orche, Older creation.json files (no relay field) decode cleanly. (+27 more)
### Community 43 - "Community 43"
Cohesion: 0.07
-Nodes (29): Clear all module-level state. Test fixtures only., reset_for_tests(), _credential_testids(), Smoke tests that invoke the NiceGUI factory functions. The factory functions cr, Collect every ``data-testid`` in an element's subtree., Regression: the editing state must expose an inline password input., The LIMS section must expose the password credential row., Return a NiceGUI slot we can use as a parent for factory calls. (+21 more)
+Nodes (40): keyring_nas_username(), OS-keyring service/username conventions used for credential storage. The wizard, Return the keyring username for the given equipment's NAS credential. Equip, _check_nas_passwords_present(), _make_equipment_probe(), _nas_keyring_password(), Return the stored NAS password for ``equipment_id`` or ``None``. The creden, Build the ``deps.equipment_probe`` callable. rclone.conf NAS-sync migration (+32 more)
### Community 44 - "Community 44"
Cohesion: 0.07
-Nodes (24): HostPluginLogger, PluginLogFrame, Plugin logger shim. Backend Spec §6.1.4 / §6.3.2. Plugins call ``ctx.log.info(., Worker-side forwarder. Emits JSON frames on stderr. Used inside the plugin, Wire format for worker-side log records. The worker subprocess emits one ``, In-process forwarder used when plugins run without subprocess isolation. Us, WorkerPluginLogger, Tests for ``exlab_wizard.plugins.logger`` -- structured plugin log shim. Pin bo (+16 more)
+Nodes (37): _Bucket, _coalesced_message(), _default_notifier(), _noop_notifier(), NotificationBus, notify(), OS notifications via plyer with 5-second coalescing. Backend Spec §15.7.3. Two, Coalescing layer over :func:`notify`. The launcher constructs one bus and t (+29 more)
### Community 45 - "Community 45"
-Cohesion: 0.06
-Nodes (38): _build_main_state(), _build_staging_state(), _is_setup_ready(), _lims_credential_handlers(), _nas_credential_handlers(), _operation_counts(), _panel_sessions(), NiceGUI mount helper. Backend Spec §4.3, §15.3.2. ``mount_ui`` is the single en (+30 more)
+Cohesion: 0.04
+Nodes (44): 7.1.10 Cache file syncing and metadata-only retention on cleanup, 7.1.1 Component model, 7.1.2 Job lifecycle, 7.1.3 Transport driver (`RcloneDriver`), 7.1.3 Transport drivers, 7.1.4 Hash verification, 7.1.4 Verify flow (lsjson reconcile + cleanup-time hash gate), 7.1.5 Retry policy (+36 more)
### Community 46 - "Community 46"
-Cohesion: 0.08
-Nodes (35): EquipmentCacheWriter, Write the ``test_runs.json`` marker file. Idempotent per §11.4.2: if th, Read and decode a ``test_runs.json`` marker file. Raises ``SchemaMajorM, Writer for ``equipment.json`` and ``test_runs.json``. Instances are statele, Write or rewrite the per-equipment ``equipment.json`` file. Stamping ru, Read and decode an existing ``equipment.json`` file. Uses ``msgspec.jso, _make_equipment_payload(), _make_test_runs_payload() (+27 more)
+Cohesion: 0.05
+Nodes (43): Structural smoke tests for the PyInstaller distribution. Phase 15. The actual `, ``__version__`` mirrors ``[project] version`` in ``pyproject.toml``. Drift, ``[project.scripts]`` lists exactly the three §15.3 entry points., ``exlab_wizard.spec`` parses as Python source. The file is interpreted by P, The spec names each of the three §15.1 executables., The spec names the three entry-point script paths. PyInstaller resolves the, The spec uses PyInstaller's ``MERGE`` directive (Backend Spec §15.1). ``MER, The spec declares hidden imports for libs PyInstaller misses. Backend Spec (+35 more)
### Community 47 - "Community 47"
-Cohesion: 0.09
-Nodes (27): QuitCoordinator, Graceful tray shutdown coordinator. Backend Spec §4.3.2. Steps documented in §4, Return True iff the §4.3.2 predicate holds. ``SessionStore.active_sessi, Poll :meth:`_is_idle` up to ``deadline_seconds`` seconds. Returns True, Invoke the operator-facing force-quit prompt. Returns ``True`` to indic, Return ``int(obj.)`` defensively. Falls through ``None``, missing att, Drive the §4.3.2 graceful-shutdown protocol. Construction-time dependencies, Run the graceful-shutdown protocol. ``sigterm=True`` reduces the wait w (+19 more)
+Cohesion: 0.08
+Nodes (34): format_status(), Status-submenu rendering. Backend Spec §4.3.2. The tray's status submenu shows, Spawn the ticker thread. Idempotent., Signal the ticker to exit. Idempotent., Run a single tick synchronously. Returns the new label. Tests call this, Best-effort numeric read; missing / None / non-int returns 0., Immutable view over the §4.3.2 status inputs., Build a :class:`StatusSnapshot` from live component references. Each compon (+26 more)
### Community 48 - "Community 48"
-Cohesion: 0.09
-Nodes (35): _check_nas_passwords_present(), _make_equipment_probe(), Build the ``deps.equipment_probe`` callable. rclone.conf NAS-sync migration, Return the set of nas-mode equipment ids that have a keyring entry. Rclone-, Build the ``deps.equipment_probe`` callable. Rclone-only NAS sync migration, _InMemoryKeyring, _nas_config_with_remote(), _nas_config_with_two_equipment() (+27 more)
+Cohesion: 0.11
+Nodes (42): CustomField, Field declaration from a template's ``_exlab_readme.fields`` list or from ``, An ad-hoc user-added field. Backend Spec §10.4. Custom fields are plain str, TemplateFieldDecl, _ctx(), Tests for :class:`exlab_wizard.readme.generator.ReadmeGenerator`. Pins the cont, Calling generate twice with the same context produces identical bytes., A value whose id has no declaration is permitted (controller-side merge). (+34 more)
### Community 49 - "Community 49"
-Cohesion: 0.06
-Nodes (34): _FakeController, _NavSpy, Duck-typed CreationController for the create-flow helpers., Duck-typed CreationController for the create-flow helpers., Minimal stand-in for the NiceGUI ``ui`` object's navigate surface., A successful save persists, then hot-reloads the live components. The old b, Minimal stand-in for the NiceGUI ``ui`` object's navigate surface., Minimal stand-in for the NiceGUI ``ui`` object's navigate surface. (+26 more)
+Cohesion: 0.08
+Nodes (39): _extract_readme_fields(), Copier template-engine wrapper. Backend Spec §4.4.2 / §5. This module wraps Cop, Wraps the Copier Python API behind the §4.4.2 contract., Render the template into ``dst`` via Copier. Args: tpl: A p, Return the set of regular files under ``root`` (recursively). Returns the e, _snapshot_files(), TemplateEngine, Unit tests for ``exlab_wizard.template.copier_driver``. These tests pin the §4. (+31 more)
-### Community 51 - "Community 51"
-Cohesion: 0.07
-Nodes (30): _audit_loop(), AuditChannel, _diff_findings(), _drain(), _finding_to_dict(), FastAPI app + lifespan + dependency wiring. Backend Spec §4.6. The :func:`creat, Close every subscriber's queue. Idempotent., Yield from the subscriber queue until a sentinel arrives. (+22 more)
+### Community 50 - "Community 50"
+Cohesion: 0.05
+Nodes (42): _drain_background(), macOS dispatches to the ``open`` command., macOS dispatches to the ``open`` command., macOS dispatches to the ``open`` command., macOS dispatches to the ``open`` command., A failed scan keeps the existing payload and warns., Run any pending mount background tasks to completion., macOS dispatches to the ``open`` command. (+34 more)
### Community 52 - "Community 52"
-Cohesion: 0.07
-Nodes (39): evaluate_setup_state(), Evaluate the §4.9.1 setup state. Order of gates (first-failing wins):, Evaluate the §4.9.1 setup state. Order of gates (first-failing wins):, _make_equipment(), _make_orchestrator(), _nas_remote_config(), endpoint+email both filled in but no offline catalogue -> the keyring-passwo, endpoint+email both filled in but no offline catalogue -> the keyring-passwo (+31 more)
+Cohesion: 0.06
+Nodes (40): derive_footer_segment_states(), FooterSegmentStates, Bottom-of-window status bar segment (Frontend Spec §3.5.5). The status bar has, Build a clickable status-bar segment., Derived ``SEGMENT_*`` state for each footer status segment (Phase 5). Only, Compute a :class:`SegmentSpec` from a label and state. The state controls t, Map live backend counts to per-segment states (Frontend §3.5.5). * **Valida, Build a clickable status-bar segment. (+32 more)
### Community 53 - "Community 53"
Cohesion: 0.06
-Nodes (27): _build_driver(), _build_target_for(), _discover_run_files(), _file_signature(), NAS sync client. Backend Spec §7.1, §7.3. The :class:`NASSyncClient` is the pub, Mutate ``creation.json`` ``sync_status`` to ``synced``. Backend Spec §7.1.4., Mutate ``creation.json`` ``sync_status`` to ``synced``. Backend Spec §7.1.4., Compose the run-relative ``//`` path. Le (+19 more)
+Nodes (37): dict, _build_context(), _decode_files(), _load_plugin_class(), main(), Plugin worker entry point. Backend Spec §6.3.1, §6.3.2. Invoked as ``python -m, Materialize a :class:`PluginContext` from the stdin envelope. Returns the c, Import the plugin module and return the exported ``Plugin`` symbol. The hos (+29 more)
### Community 54 - "Community 54"
Cohesion: 0.05
-Nodes (38): 10. Affected files, 11. Deferred follow-ups (explicitly out of v1), 1. Summary, 2. Goals & non-goals, 3.1 New tokens, 3.2 Fix latent debt — referenced-but-undefined variables, 3. Design tokens (foundation), 4.1 Panel framing — `components/framed_pane.py` (new) + `pages/main.py` (+30 more)
+Nodes (41): Without a job row the dialog shows the 'no sync job' line., Without a job row the dialog shows the 'no sync job' line., Without a job row the dialog shows the 'no sync job' line., Non-EquipmentNode keys in the hierarchy are ignored; unknown root -> treated, Non-EquipmentNode keys in the hierarchy are ignored; unknown root -> treated, A matching equipment id projects its config fields into the payload., Non-EquipmentNode keys in the hierarchy are ignored; unknown root -> treated, A schema_version mismatch (read_catalogue -> None) yields ``[]``. (+33 more)
### Community 55 - "Community 55"
Cohesion: 0.05
-Nodes (38): The early-exit when config is missing produces a toast, no task., The early-exit when config is missing produces a toast, no task., The early-exit when config is missing produces a toast, no task., The early-exit when config is missing produces a toast, no task., The early-exit when config is missing produces a toast, no task., The early-exit when config is missing produces a toast, no task., Any exception raised by a per-kind builder is logged + swallowed., The early-exit when config is missing produces a toast, no task. (+30 more)
+Nodes (40): _open_log_dialog(), Dispatch a per-run context action to its backend surface. Mirrors :func:`ap, Dispatch a per-run context action to its backend surface. Mirrors :func:`ap, Force a fresh single-folder scan and prime the feed payload (OQ-1/A). The F, Force a fresh single-folder scan and prime the feed payload (OQ-1/A). The F, Flip a file's ``keep_local`` flag via the orchestrator's writer. Operator-f, Dispatch a per-run context action to its backend surface. Mirrors :func:`ap, Dispatch a per-run context action to its backend surface. Mirrors :func:`ap (+32 more)
### Community 56 - "Community 56"
-Cohesion: 0.06
-Nodes (37): banner_overflow_count(), BannerId, clear_banner(), clear_field_error(), clear_form_errors(), ContainerId, _emit_toast(), get_field_error() (+29 more)
+Cohesion: 0.08
+Nodes (37): equipment_json_path(), Return the ``equipment.json`` path under an equipment directory., Return ``Run_`` or ``TestRun_``., Return ``Run_`` or ``TestRun_``., run_dir_stem(), can_advance(), preview_path_segments(), primary_button_color() (+29 more)
### Community 57 - "Community 57"
-Cohesion: 0.06
-Nodes (37): _build_operation_rows(), _cancel_operation(), _cancel_session(), _open_operations_modal(), Build the Operations-panel rows from the live session store (T3). Uses the, Open the in-flight Operations panel (Frontend §9.5). Builds a fresh snapsho, Build the Operations-panel rows from the live session store (T3). Uses the, Open the in-flight Operations panel (Frontend §9.5). Builds a fresh snapsho (+29 more)
+Cohesion: 0.08
+Nodes (35): EquipmentCacheWriter, Write the ``test_runs.json`` marker file. Idempotent per §11.4.2: if th, Read and decode a ``test_runs.json`` marker file. Raises ``SchemaMajorM, Writer for ``equipment.json`` and ``test_runs.json``. Instances are statele, Write or rewrite the per-equipment ``equipment.json`` file. Stamping ru, Read and decode an existing ``equipment.json`` file. Uses ``msgspec.jso, _make_equipment_payload(), _make_test_runs_payload() (+27 more)
### Community 58 - "Community 58"
-Cohesion: 0.07
-Nodes (25): ABC, error_plugin -- raises PluginError mid-transform., ErrorPlugin, error_plugin -- raises PluginError mid-transform. Exercises the Backend Spec §6, Always raises PluginError on transform., PluginError, Raised by plugin workers to signal expected failure. Backend Spec §6., FileChange (+17 more)
+Cohesion: 0.09
+Nodes (27): QuitCoordinator, Graceful tray shutdown coordinator. Backend Spec §4.3.2. Steps documented in §4, Return True iff the §4.3.2 predicate holds. ``SessionStore.active_sessi, Poll :meth:`_is_idle` up to ``deadline_seconds`` seconds. Returns True, Invoke the operator-facing force-quit prompt. Returns ``True`` to indic, Return ``int(obj.)`` defensively. Falls through ``None``, missing att, Drive the §4.3.2 graceful-shutdown protocol. Construction-time dependencies, Run the graceful-shutdown protocol. ``sigterm=True`` reduces the wait w (+19 more)
### Community 59 - "Community 59"
-Cohesion: 0.06
-Nodes (35): ActionSpec, A single action affordance attached to a notification. At most one action p, Unit tests for :mod:`exlab_wizard.ui.notifications`. The helpers all delegate t, ``clear_banner`` removes the active record., Frontend §2.2.3: max 2 banners; 3rd collapses into a count., Inline field errors round-trip through register / get / clear., Inline form errors round-trip through register / get / clear., Frontend §2.2.3: exactly five canonical banner ids. (+27 more)
+Cohesion: 0.07
+Nodes (40): evaluate_setup_state(), Evaluate the §4.9.1 setup state. Order of gates (first-failing wins):, Evaluate the §4.9.1 setup state. Order of gates (first-failing wins):, _make_equipment(), _make_orchestrator(), _nas_remote_config(), endpoint+email both filled in but no offline catalogue -> the keyring-passwo, endpoint+email both filled in but no offline catalogue -> the keyring-passwo (+32 more)
### Community 60 - "Community 60"
-Cohesion: 0.07
-Nodes (35): _lims_slot_satisfied(), _missing_lims_fields(), _missing_nas_fields(), _missing_orchestrator_fields(), _missing_paths_fields(), _nas_in_use(), _nas_remote_satisfied(), _nas_slot_satisfied() (+27 more)
+Cohesion: 0.06
+Nodes (35): _FakeController, _NavSpy, Duck-typed CreationController for the create-flow helpers., Duck-typed CreationController for the create-flow helpers., Duck-typed CreationController for the create-flow helpers., Minimal stand-in for the NiceGUI ``ui`` object's navigate surface., Minimal stand-in for the NiceGUI ``ui`` object's navigate surface., Minimal stand-in for the NiceGUI ``ui`` object's navigate surface. (+27 more)
### Community 61 - "Community 61"
-Cohesion: 0.1
-Nodes (34): Wraps the Copier Python API behind the §4.4.2 contract., TemplateEngine, Unit tests for ``exlab_wizard.template.copier_driver``. These tests pin the §4., test_render_calls_copier_run_copy_with_spec_kwargs(), test_render_into_dst_with_conflicting_files_raises(), test_render_project_basic_files_written_lists_the_readme(), test_render_project_basic_writes_readme(), test_render_snapshots_existing_regular_file_at_dst() (+26 more)
+Cohesion: 0.07
+Nodes (37): body_style(), card_style(), framed_pane(), header_style(), Framed pane helper (GUI/Orchestrator Redesign §4.1). The main-window refresh fr, Return the framed-pane card-shell style fragment (pure; testable). Always e, Return the framed-pane card-shell style fragment (pure; testable). Always e, Return the title-strip style fragment (pure; testable). (+29 more)
-### Community 62 - "Community 62"
+### Community 63 - "Community 63"
Cohesion: 0.06
-Nodes (35): A directory match delegates to the one-level folder aggregate scan., ``copy_path`` writes the entry path to the NiceGUI clipboard., A directory match delegates to the one-level folder aggregate scan., ``copy_path`` writes the entry path to the NiceGUI clipboard., ``copy_path`` writes the entry path to the NiceGUI clipboard., ``copy_path`` writes the entry path to the NiceGUI clipboard., Without a selected node the feed isn't started and returns ``[]``., ``copy_path`` writes the entry path to the NiceGUI clipboard. (+27 more)
+Nodes (39): _await_session(), _equipment_ids(), Open the §9.1 escalation dialog; Submit resumes, Cancel confirms (T5). Subm, Map each ``template_type`` template name to its parsed copier questions. Re, Map each ``template_type`` template name to its parsed copier questions. Re, Await a controller session's pipeline task and return the final handle. ``c, Return the configured equipment IDs., Map each ``template_type`` template name to its parsed copier questions. Re (+31 more)
### Community 64 - "Community 64"
-Cohesion: 0.07
-Nodes (35): _app_name(), _env_path(), _home(), os_cache_path(), os_config_path(), _platform(), Return a normalized platform tag for OS-conditional path dispatch., Return the operator's home directory. Centralized so test fixtures can monk (+27 more)
+Cohesion: 0.08
+Nodes (37): DeltaEvent, DoneEvent, encode_event(), event_from_dict(), FailedEvent, InputRequiredEvent, PhaseEvent, ProgressEvent (+29 more)
### Community 65 - "Community 65"
-Cohesion: 0.1
-Nodes (32): can_advance(), preview_path_segments(), primary_button_color(), primary_button_label(), New Run Wizard (Frontend Spec §5). Six-step wizard with mode bound at construct, Return ``True`` when the active step's preconditions hold., Render the six-step run wizard. ``templates`` lists run-scope template name, Render the bound input fields for one run-wizard step. The "variables" step (+24 more)
+Cohesion: 0.05
+Nodes (38): 10. Affected files, 11. Deferred follow-ups (explicitly out of v1), 1. Summary, 2. Goals & non-goals, 3.1 New tokens, 3.2 Fix latent debt — referenced-but-undefined variables, 3. Design tokens (foundation), 4.1 Panel framing — `components/framed_pane.py` (new) + `pages/main.py` (+30 more)
### Community 66 - "Community 66"
Cohesion: 0.08
-Nodes (33): An absent or ``None`` ``schema_version`` is a major-mismatch case., Empty string is treated like ``None`` (no parseable major)., A non-``MAJOR.MINOR`` string is treated as a major-mismatch case., Same major (different minor) is allowed., test_require_schema_major_passes_on_same_major(), test_require_schema_major_raises_on_empty_version(), test_require_schema_major_raises_on_garbage_version(), test_require_schema_major_raises_on_none_version() (+25 more)
+Nodes (25): _credential_testids(), Smoke tests that invoke the NiceGUI factory functions. The factory functions cr, Collect every ``data-testid`` in an element's subtree., Regression: the editing state must expose an inline password input., The LIMS section must expose the password credential row., Return a NiceGUI slot we can use as a parent for factory calls., _slot(), test_credential_field_editing_state_renders_a_password_input() (+17 more)
### Community 67 - "Community 67"
-Cohesion: 0.06
-Nodes (19): queue(), Tests for ``exlab_wizard.sync.queue``. Covers the durable SQLite-backed sync-jo, A queue rebuilt against the same db file sees the prior rows., A RUNNING row from a prior process is downgraded to QUEUED on restart., Operations without init() raise a clear RuntimeError., ``insert`` produces a QUEUED row with a generated UUID job id., Two inserts on the same run_path violate UNIQUE., The per-file ``files`` list round-trips through insert and read. (+11 more)
+Cohesion: 0.07
+Nodes (29): _audit_loop(), AuditChannel, _diff_findings(), _drain(), _finding_to_dict(), FastAPI app + lifespan + dependency wiring. Backend Spec §4.6. The :func:`creat, Close every subscriber's queue. Idempotent., Yield from the subscriber queue until a sentinel arrives. (+21 more)
### Community 68 - "Community 68"
-Cohesion: 0.06
-Nodes (34): _open_log_dialog(), Dispatch a per-run context action to its backend surface. Mirrors :func:`ap, Dispatch a per-run context action to its backend surface. Mirrors :func:`ap, Force a fresh single-folder scan and prime the feed payload (OQ-1/A). The F, Force a fresh single-folder scan and prime the feed payload (OQ-1/A). The F, Flip a file's ``keep_local`` flag via the orchestrator's writer. Operator-f, Dispatch a per-run context action to its backend surface. Mirrors :func:`ap, Dispatch a per-run context action to its backend surface. Mirrors :func:`ap (+26 more)
+Cohesion: 0.09
+Nodes (36): Tests for the rclone transport driver. Backend Spec §7.1.3, §7.1.5. The driver, A missing binary raises :class:`TransportError`, not a retry result., A missing binary raises :class:`TransportError`, not a retry result., ``env`` arrives in the subprocess; ``mask_for_log`` redacts the password. T, If the --combined tempfile cannot be read, treat it as empty output., Return the recorded argv lists, in invocation order., Return the recorded argv lists, in invocation order., _read_recorded_argvs() (+28 more)
### Community 69 - "Community 69"
-Cohesion: 0.07
-Nodes (34): Return the configured templates directory, or ``None``., List template directory names of ``template_type`` under templates_dir., Return the configured templates directory, or ``None``., Map each ``template_type`` template name to its parsed copier questions. Re, Return the configured templates directory, or ``None``., List template directory names of ``template_type`` under templates_dir., Map each ``template_type`` template name to its parsed copier questions. Re, Map each ``template_type`` template name to its parsed copier questions. Re (+26 more)
+Cohesion: 0.05
+Nodes (37): Any exception raised by a per-kind builder is logged + swallowed., Any exception raised by a per-kind builder is logged + swallowed., A missing parent dir returns 0 (no FS pre-check needed)., Only directory children whose names start with the prefix are counted., Any exception raised by a per-kind builder is logged + swallowed., When nas_sync.enqueue raises, the background task swallows + toasts., When nas_sync.enqueue raises, the background task swallows + toasts., Only directory children whose names start with the prefix are counted. (+29 more)
### Community 70 - "Community 70"
-Cohesion: 0.08
-Nodes (32): body_style(), card_style(), framed_pane(), header_style(), Framed pane helper (GUI/Orchestrator Redesign §4.1). The main-window refresh fr, Return the framed-pane card-shell style fragment (pure; testable). Always e, Return the framed-pane card-shell style fragment (pure; testable). Always e, Return the title-strip style fragment (pure; testable). (+24 more)
+Cohesion: 0.06
+Nodes (27): Unit tests for :mod:`exlab_wizard.ui.theme`. The theme module renders the ``:ro, A body / heading / mono reset block follows the ``:root {}``., In source layout, the resolver returns ``/assets/``., All shadows are navy-tinted (DESIGN.md §04)., Phase 5 / §4.8: the compact-density rule scopes file-row padding to the .exl, The block opens with ``:root {`` per DESIGN.md §07., All shadows are navy-tinted (DESIGN.md §04)., A body / heading / mono reset block follows the ``:root {}``. (+19 more)
### Community 71 - "Community 71"
Cohesion: 0.09
-Nodes (28): assemble_equipment_config(), can_advance(), EquipmentWizardState, _maybe_confirm(), Add-Equipment wizard (GUI/Orchestrator Redesign §6). Four-step wizard launched, Build the final EquipmentConfig from the wizard's state. Raises a pydantic, Render the self-contained Add-Equipment wizard. Next / Back navigation is h, Build the final EquipmentConfig from the wizard's state. Raises a pydantic (+20 more)
+Nodes (21): is_run_dir(), True if ``name`` is an experimental-run directory. Note: ``RUN_DIR_PREFIX``, True if ``name`` is an experimental-run directory. Note: ``RUN_DIR_PREFIX``, _extract_overrides_and_sync(), Read ``/.exlab-wizard/creation.json`` if present. Returns ``, Run §8.1 rules in creation-time and audit modes. Backend Spec §11.8. The co, Walk a directory subtree and return all findings. Backend Spec §11.8. U, Public read-only alias for :meth:`audit`. Backend Spec §11.8. Read-only (+13 more)
### Community 72 - "Community 72"
-Cohesion: 0.08
-Nodes (31): _build_minimal_payload(), Tests for the atomic ``creation.json`` writer in ``exlab_wizard.cache.creation_w, Even if the caller hands us an old version, the writer pins to current., Forward-compat: a v0.7 writer must not drop fields a v0.8 writer added., Two simultaneous mutators on the same path must serialize. This is a small-, Multiple LOCK_SH readers must not block each other., A non-MAJOR.MINOR string must surface as the same structured error rather th, Spec §11.3 history: a 1.0 file predates ``run_kind``, ``validation_overrides (+23 more)
-
-### Community 73 - "Community 73"
-Cohesion: 0.09
-Nodes (24): AutostartManager, _detect_platform(), platform(), Per-platform autostart register / unregister / is_registered. Construction-, fake_winreg(), _FakeKey, _FakeWinreg, Tests for :mod:`exlab_wizard.tray.autostart`. Backend Spec §15.7. (+16 more)
+Cohesion: 0.1
+Nodes (22): AutostartManager, _import_winreg(), Create the per-platform autostart record. Idempotent., Remove the per-platform autostart record. Idempotent., Import ``winreg`` lazily so the module loads on macOS / Linux too. Returns, Per-platform autostart register / unregister / is_registered. Construction-, Return True iff a per-platform autostart record exists., Tests for :mod:`exlab_wizard.tray.autostart`. Backend Spec §15.7. (+14 more)
### Community 74 - "Community 74"
-Cohesion: 0.07
-Nodes (22): Integration test: tray <-> window lifecycle round-trip. Backend Spec §4.3.2. Th, Poll ``/api/v1/health`` until the server is accepting requests., test_tray_lifecycle_round_trip(), test_tray_lifecycle_window_handshake_reads_server_json(), _wait_for_health(), Integration smoke: pywebview-facing root path returns HTML, not JSON 404. This, test_root_serves_html_after_mount(), _wait_for() (+14 more)
+Cohesion: 0.06
+Nodes (13): E2E flow 08: Settings dialog round-trip + persistence. Frontend Spec §6.7 (sett, The renamed "Workstation" section (id still ``orchestrator``) collects the l, The LIMS credential field's full lifecycle: set -> replace -> clear (§7.4.1)., Cancelling the credential editor collapses the row without saving., test_flow_08_lims_password_cancel_discards_edit(), test_flow_08_lims_password_credential(), test_flow_08_settings(), test_flow_08_workstation_section_hides_staging_root() (+5 more)
### Community 75 - "Community 75"
-Cohesion: 0.06
-Nodes (33): code:bash (# macOS), code:block10 (:///), code:bash (# Confirm the remote answers), code:bash (rclone --config /path/to/rclone.conf about lab-nas:), code:yaml (nas:), code:yaml (nas:), code:yaml (nas:), code:yaml (nas:) (+25 more)
+Cohesion: 0.09
+Nodes (34): canonicalize_equipment_id(), compose_project_path(), Validate ``value`` against the §3.1 equipment-ID regex. Returns ``value`` u, Compose the project-level directory. ``// replace -> clear (§7.4.1)., Cancelling the credential editor collapses the row without saving., test_flow_08_lims_password_cancel_discards_edit(), test_flow_08_lims_password_credential(), test_flow_08_settings(), Page object for the Settings dialog. Frontend Spec §6.7., Locators for the settings dialog's nine-section layout. (+3 more)
+Cohesion: 0.07
+Nodes (33): chip_state_to_tree_filters(), count_search_results(), _default_chips(), density_card_class(), MainPageState, problems_badge_text(), Main window (Frontend Spec §3). Layout: * **Left drawer** -- search box + filt, Translate a chip group state into a :class:`TreeFilters`. (+25 more)
### Community 82 - "Community 82"
-Cohesion: 0.09
-Nodes (32): canonicalize_equipment_id(), compose_project_path(), Validate ``value`` against the §3.1 equipment-ID regex. Returns ``value`` u, Compose the project-level directory. ``//``; returns None on 404. ``uid_or_short_id``, ``GET /api/v1/me``; returns the current operator's row., Return a ``HealthStatus`` snapshot. Backend Spec §7.2.3. Calls ``GET /a, Close the underlying ``httpx.AsyncClient``. Idempotent. (+12 more)
+Cohesion: 0.06
+Nodes (33): code:bash (# macOS), code:block10 (:///), code:bash (# Confirm the remote answers), code:bash (rclone --config /path/to/rclone.conf about lab-nas:), code:yaml (nas:), code:yaml (nas:), code:yaml (nas:), code:yaml (nas:) (+25 more)
### Community 85 - "Community 85"
-Cohesion: 0.09
-Nodes (23): Plugin, _make_ctx(), _MinimalPlugin, Tests for ``exlab_wizard.plugins.base`` -- the plugin contract base class. Pin, A subclass with both abstract methods implemented is instantiable., An empty string is treated as a missing value (per spec: 'missing or empty')., The plugins package re-exports the same class object as ``errors``., PluginInputRequired stores both the field list and the operator-readable reason. (+15 more)
+Cohesion: 0.06
+Nodes (33): 11.1 Folder Placement, 11.2 File Inventory per Level, 11.3 `creation.json` Schema, 11.4.1 `equipment.json` Schema, 11.4.2 `test_runs.json` Schema, 11.4.3 `runs.json` Schema, 11.4 `readme_fields.json` Schema, 11.5.1 Log Levels, Rotation, and the Central App Log (+25 more)
### Community 86 - "Community 86"
-Cohesion: 0.09
-Nodes (24): _python_window_argv(), Tests for :mod:`exlab_wizard.tray.window_launcher`. Backend Spec §4.3.2., Default constructor with no override delegates to the resolver., Return an argv that runs a tiny window stand-in (a sleep)., test_argv_falls_through_resolve_helper(), test_close_is_idempotent(), test_close_kills_unresponsive_process(), test_close_terminates_subprocess() (+16 more)
+Cohesion: 0.06
+Nodes (34): Force-sync routes to ``deps.nas_sync.enqueue`` with the run path., Force-sync routes to ``deps.nas_sync.enqueue`` with the run path., Force-sync routes to ``deps.nas_sync.enqueue`` with the run path., Force-sync routes to ``deps.nas_sync.enqueue`` with the run path., The early-exit when config is missing produces a toast, no task., The early-exit when config is missing produces a toast, no task., The early-exit when config is missing produces a toast, no task., When the feed's last_payload is set, entries are projected into FileListEntr (+26 more)
### Community 87 - "Community 87"
Cohesion: 0.13
@@ -1014,735 +1042,731 @@ Nodes (29): PluginHost, Spawns plugin worker subprocesses with strict isolation.
### Community 88 - "Community 88"
Cohesion: 0.09
-Nodes (32): _make_clean_tree(), _make_validator(), If ``stat()`` raises OSError, the file is skipped from content scanning., If ``open(rb)`` raises OSError, the file is silently skipped., Build a single-equipment / single-project / single-run clean tree. Returns, Construct a :class:`Validator` for tests with a single equipment root., A well-formed equipment / project / run tree produces no findings., A large file with a placeholder is NOT scanned for content. (+24 more)
+Nodes (24): _python_window_argv(), Tests for :mod:`exlab_wizard.tray.window_launcher`. Backend Spec §4.3.2., Default constructor with no override delegates to the resolver., Return an argv that runs a tiny window stand-in (a sleep)., test_argv_falls_through_resolve_helper(), test_close_is_idempotent(), test_close_kills_unresponsive_process(), test_close_terminates_subprocess() (+16 more)
### Community 89 - "Community 89"
-Cohesion: 0.09
-Nodes (32): _build_creation_json_dict(), A directory name containing ```` produces a finding., Hard-tier findings come first; ties break on rule then offending_path., ``{"kind": "equipment_id", ...}`` walks only the matching subtree., ``{"kind": "project_path", ...}`` walks the supplied path only., ``{"kind": "all"}`` aggregates findings across every equipment root., Build the wire-form ``creation.json`` dict for a fixture tree., Every entry in the result is a :class:`Finding` instance. (+24 more)
+Cohesion: 0.12
+Nodes (30): BandwidthWindow, One ``{days, from, to}`` window. Backend Spec §9., One ``{days, from, to}`` window. Backend Spec §9., effective_bandwidth_limit_kibps(), is_window_active(), mbps_to_kibps(), _parse_hhmm(), Bandwidth schedule evaluator. Backend Spec §7.1.7. The §7.1.7 bandwidth limiter (+22 more)
### Community 90 - "Community 90"
Cohesion: 0.07
-Nodes (24): Exception, test_about_missing_binary_returns_not_ok(), test_classify_failure_unknown_when_rc_zero_and_no_markers(), Sync transports package. Backend Spec §7.1.3. Each transport is a thin async wr, Kind of failure that the queue worker uses to drive the retry policy. Backe, Outcome of a transport push. ``ok`` is True iff the transport reported succ, Raised when a transport probe cannot complete. Distinct from :class:`Transp, TransportError (+16 more)
+Nodes (31): BannerId, clear_banner(), clear_field_error(), clear_form_errors(), ContainerId, _emit_toast(), get_field_error(), get_form_error() (+23 more)
### Community 91 - "Community 91"
-Cohesion: 0.07
-Nodes (18): FolderFeed, FolderFeedState, Folder-feed client abstraction. GUI/Orchestrator Redesign §5. A small ``start(p, In-memory state of one folder feed (one per centre pane)., One folder feed; rebound to a different path via ``start()``., Start polling ``path``. Switching paths stops the previous poll before s, Pause polling — used when the window is backgrounded., Resume polling after a pause. (+10 more)
+Cohesion: 0.09
+Nodes (31): _make_finding(), Unit tests for ``exlab_wizard.validator.findings``. The :class:`Finding` datacl, Optional fields default if missing from the payload., Unknown keys in a future-minor payload are not lethal., ``matched_token`` of ``None`` survives the round-trip as ``None``., Two findings with identical field values collapse in a set., Different field values produce distinct set entries., Findings sort lexicographically when keyed by their dict shape. (+23 more)
### Community 92 - "Community 92"
Cohesion: 0.09
-Nodes (31): _make_finding(), Unit tests for ``exlab_wizard.validator.findings``. The :class:`Finding` datacl, Optional fields default if missing from the payload., Unknown keys in a future-minor payload are not lethal., ``matched_token`` of ``None`` survives the round-trip as ``None``., Two findings with identical field values collapse in a set., Different field values produce distinct set entries., Findings sort lexicographically when keyed by their dict shape. (+23 more)
+Nodes (32): _make_clean_tree(), _make_validator(), If ``stat()`` raises OSError, the file is skipped from content scanning., If ``open(rb)`` raises OSError, the file is silently skipped., Build a single-equipment / single-project / single-run clean tree. Returns, Construct a :class:`Validator` for tests with a single equipment root., A well-formed equipment / project / run tree produces no findings., A large file with a placeholder is NOT scanned for content. (+24 more)
### Community 93 - "Community 93"
Cohesion: 0.09
-Nodes (21): Writer for ``equipment.json`` (registry) and ``test_runs.json`` (marker). Backe, Return the on-disk ``first_seen_at`` if the file exists. Returns ``None`` w, _read_equipment_sync(), _read_existing_first_seen_at(), _read_test_runs_marker_sync(), _write_equipment_sync(), _write_test_runs_marker_sync(), lock_path_for() (+13 more)
+Nodes (32): _build_creation_json_dict(), A ``Run_*`` leaf whose creation.json says ``run_kind="test"`` is flagged., Hard-tier findings come first; ties break on rule then offending_path., ``{"kind": "equipment_id", ...}`` walks only the matching subtree., ``{"kind": "project_path", ...}`` walks the supplied path only., ``{"kind": "all"}`` aggregates findings across every equipment root., Build the wire-form ``creation.json`` dict for a fixture tree., Every entry in the result is a :class:`Finding` instance. (+24 more)
### Community 94 - "Community 94"
-Cohesion: 0.06
-Nodes (31): A suspended session re-opens its escalation dialog with parked fields., A suspended session re-opens its escalation dialog with parked fields., A suspended session re-opens its escalation dialog with parked fields., With a job row, the dialog renders each populated field line., With a job row, the dialog renders each populated field line., A suspended session re-opens its escalation dialog with parked fields., A suspended session re-opens its escalation dialog with parked fields., Without a job row the dialog shows the 'no sync job' line. (+23 more)
+Cohesion: 0.08
+Nodes (31): create_app(), Build the FastAPI app. Backend Spec §4.6. ``config``: optional pre-loaded `, Build the FastAPI app. Backend Spec §4.6. ``config``: optional pre-loaded `, build_setup_router(), Construct the ``/setup/*`` router. Always-available endpoints., Construct the ``/setup/*`` router. Always-available endpoints., When config has no equipment the setup gate blocks /tree., When config has no equipment the setup gate blocks /tree. (+23 more)
### Community 95 - "Community 95"
-Cohesion: 0.11
-Nodes (28): can_advance(), disk_space_pre_flight_message(), preview_step_clear(), ProjectWizardState, New Project Wizard (Frontend Spec §4). Seven steps in a ``ui.stepper``: 1. LIM, Pre-flight checks for the Preview step (Frontend §10.5.4)., Return a copy-ready message when disk space is low; else ``None``., Render the seven-step project wizard. ``templates`` is the list of project- (+20 more)
+Cohesion: 0.14
+Nodes (30): AppDependencies, Bundle of live components the API surface dispatches to. Production wiring, compute_setup_state(), Evaluate the §4.9.1 state for the app's current dependencies. The dependenc, Evaluate the §4.9.1 state for the app's current dependencies. The dependenc, Unit tests for ``exlab_wizard.api.setup`` (gate + endpoints)., When the nas remote is unavailable the status surfaces the rclone next-action., Equipment with a password-requiring transport but no keyring entry gates. (+22 more)
### Community 96 - "Community 96"
-Cohesion: 0.11
-Nodes (28): _build_front_matter(), _build_readme_fields(), _check_value_type(), _core_fields_dict(), _custom_fields_list(), _is_present(), README generator. Backend Spec §10 / §11.4. Renders ``README.md`` (YAML front m, Renders ``README.md`` + ``readme_fields.json``. Backend Spec §10. (+20 more)
+Cohesion: 0.08
+Nodes (31): _goto(), E2E flow 25: production /main is wired to the redesigned renderer. This suite e, Loading /main?selected=TEST_EQ1 directly renders the centre + right panes., Clicking a breadcrumb segment routes back through /main?selected=. The brea, Clicking a breadcrumb segment routes back through /main?selected=. The brea, Clicking the right-pane toggle flips ?right_pane=collapsed in the URL., Clicking the right-pane toggle flips ?right_pane=collapsed in the URL., Owned-equipment Edit menu navigates to /settings with the equipment id. Rou (+23 more)
### Community 97 - "Community 97"
-Cohesion: 0.11
-Nodes (30): _apply_live_config(), Push ``cfg`` into the running components, then keep it as the live config., apply_live_config(), _lims_identity(), Push a freshly saved ``config.yaml`` into the running components. Replaces, Push a freshly saved ``config.yaml`` into the running components. Replaces, Return the ``(endpoint, email)`` pair that defines a LIMS client. Trailing, Return the ``(endpoint, email)`` pair that defines a LIMS client. Trailing (+22 more)
+Cohesion: 0.07
+Nodes (18): FolderFeed, FolderFeedState, Folder-feed client abstraction. GUI/Orchestrator Redesign §5. A small ``start(p, In-memory state of one folder feed (one per centre pane)., One folder feed; rebound to a different path via ``start()``., Start polling ``path``. Switching paths stops the previous poll before s, Pause polling — used when the window is backgrounded., Resume polling after a pause. (+10 more)
### Community 98 - "Community 98"
-Cohesion: 0.11
-Nodes (17): _encode_files(), Encode a run-relative path tuple into the ``files`` JSON column., Async SQLite-backed durable sync queue. Backend Spec §7.1.1. Use :meth:`ini, Open the connection, ensure the schema, and replay in-flight rows. Repl, Close the underlying connection (idempotent)., Return the row for ``job_id`` or raise ``ValueError``. Centralizes the, Insert a new ``QUEUED`` row for ``run_path``. ``files`` is the per-file, Return the row with the given ``job_id`` or ``None``. (+9 more)
+Cohesion: 0.09
+Nodes (18): LIMSClient, _project_from_row(), Read-only LIMS client (Mapping B). Backend Spec §7.2. The client wraps an :clas, ``GET /api/v1/projects``; returns one LIMSProject per row. ``status_fil, ``GET /api/v1/projects/``; returns None on 404. ``uid_or_short_id``, ``GET /api/v1/me``; returns the current operator's row., Return a ``HealthStatus`` snapshot. Backend Spec §7.2.3. Calls ``GET /a, Close the underlying ``httpx.AsyncClient``. Idempotent. (+10 more)
### Community 99 - "Community 99"
-Cohesion: 0.09
-Nodes (25): build_icon(), default_icon_image(), _import_pystray(), pystray icon construction. Backend Spec §4.3.2. The tray icon's menu has three, Invoke a menu callback; log + swallow exceptions. The pystray menu handler, Return a small PIL.Image used as the tray icon bitmap. Imported lazily so t, Build the pystray icon with the §4.1 menu. ``status_provider`` is invoked e, Lazy import so unit tests on headless hosts can mock pystray. (+17 more)
+Cohesion: 0.07
+Nodes (31): Drive a create_* call to completion and toast the outcome. When ``wizard_st, Build a RunCreateRequest from the wizard state and run it., Drive a create_* call to completion and toast the outcome. When ``wizard_st, Run the validator audit, swallowing failures to a WARN log., Drive a create_* call to completion and toast the outcome. When ``wizard_st, Run the validator audit, swallowing failures to a WARN log., Run the validator audit, swallowing failures to a WARN log., Build a RunCreateRequest from the wizard state and run it. (+23 more)
### Community 100 - "Community 100"
-Cohesion: 0.07
-Nodes (30): _await_session(), Await a controller session's pipeline task and return the final handle. ``c, Await a controller session's pipeline task and return the final handle. ``c, Await a controller session's pipeline task and return the final handle. ``c, Drive a create_* call to completion and toast the outcome. When ``wizard_st, Return the configured equipment IDs., Await a controller session's pipeline task and return the final handle. ``c, Drive a create_* call to completion and toast the outcome. When ``wizard_st (+22 more)
+Cohesion: 0.11
+Nodes (28): can_advance(), disk_space_pre_flight_message(), preview_step_clear(), ProjectWizardState, New Project Wizard (Frontend Spec §4). Seven steps in a ``ui.stepper``: 1. LIM, Pre-flight checks for the Preview step (Frontend §10.5.4)., Return a copy-ready message when disk space is low; else ``None``., Render the seven-step project wizard. ``templates`` is the list of project- (+20 more)
### Community 101 - "Community 101"
-Cohesion: 0.09
-Nodes (15): _import_winreg(), Per-platform autostart registration. Backend Spec §4.3.2 + §15.7. Registers ``E, Create the per-platform autostart record. Idempotent., Remove the per-platform autostart record. Idempotent., Return the macOS LaunchAgent plist body. Backend Spec §15.7.1., Return the Linux systemd-user unit body. Backend Spec §15.7.1., Return the XDG ``.desktop`` autostart body. Backend Spec §15.7.1., Import ``winreg`` lazily so the module loads on macOS / Linux too. Returns (+7 more)
+Cohesion: 0.11
+Nodes (30): _apply_live_config(), Push ``cfg`` into the running components, then keep it as the live config., apply_live_config(), _lims_identity(), Push a freshly saved ``config.yaml`` into the running components. Replaces, Push a freshly saved ``config.yaml`` into the running components. Replaces, Return the ``(endpoint, email)`` pair that defines a LIMS client. Trailing, Return the ``(endpoint, email)`` pair that defines a LIMS client. Trailing (+22 more)
### Community 102 - "Community 102"
Cohesion: 0.07
-Nodes (29): 10. Error handling, 11. Testing strategy, 12. Future (v1.x), 1. Summary, 2. Goals & non-goals, 3.1 Always-orchestrator, 3.2 Per-equipment sync role, 3.3 Owned vs. received equipment (+21 more)
+Nodes (29): Unit tests for :mod:`exlab_wizard.ui.notifications`. The helpers all delegate t, ``clear_banner`` removes the active record., Frontend §2.2.3: max 2 banners; 3rd collapses into a count., Inline field errors round-trip through register / get / clear., Inline form errors round-trip through register / get / clear., Frontend §2.2.3: exactly five canonical banner ids., Severity matches DESIGN.md alerts table., ContainerId enumerates the three banner placement scopes. (+21 more)
### Community 103 - "Community 103"
-Cohesion: 0.07
-Nodes (29): The selected-node fields end up on MainPageState for the renderer., The selected-node fields end up on MainPageState for the renderer., An unknown sys.platform falls through to False so the toast can warn., An unknown sys.platform falls through to False so the toast can warn., The selected-node fields end up on MainPageState for the renderer., Linux dispatches to xdg-open via subprocess.Popen., The selected-node fields end up on MainPageState for the renderer., Phase 4 selection / search / density fields reach MainPageState. (+21 more)
+Cohesion: 0.09
+Nodes (25): build_icon(), default_icon_image(), _import_pystray(), pystray icon construction. Backend Spec §4.3.2. The tray icon's menu has three, Invoke a menu callback; log + swallow exceptions. The pystray menu handler, Return a small PIL.Image used as the tray icon bitmap. Imported lazily so t, Build the pystray icon with the §4.1 menu. ``status_provider`` is invoked e, Lazy import so unit tests on headless hosts can mock pystray. (+17 more)
### Community 104 - "Community 104"
-Cohesion: 0.07
-Nodes (28): Unit tests for ``Validator.audit`` and ``Validator.query_problems``. Backend Sp, A directory outside the equipment root resolves to "other" (defensive)., A finding with an unknown tier sorts after both hard and soft., ``Validator.from_config`` projects fields out of a Config-shaped object., When ``orchestrator.enabled`` is False, no staging root is wired in., ``orchestrator`` attribute absent on the config also works (default None)., ``_classify_level`` returns "other" for dirs outside the equipment root., ``_compute_run_path`` returns ``str(directory)`` for unrelated paths. (+20 more)
+Cohesion: 0.09
+Nodes (21): Exception, test_classify_failure_unknown_when_rc_zero_and_no_markers(), Sync transports package. Backend Spec §7.1.3. Each transport is a thin async wr, Kind of failure that the queue worker uses to drive the retry policy. Backe, Outcome of a transport push. ``ok`` is True iff the transport reported succ, Raised when a transport probe cannot complete. Distinct from :class:`Transp, TransportError, TransportErrorKind (+13 more)
### Community 105 - "Community 105"
Cohesion: 0.07
-Nodes (28): 0.1 Architecture (read first), 0.2 What the recent edit changed (and didn't), 0.3 Healthy baseline (not stubs), 0. Context, A1 — "Quit ExLab-Wizard now" button has no handler, A2 — "Start at login" autostart checkbox is not bound, A3 — Application-section status indicators are hardcoded / missing (§7.13 parity), A4 — Operators allowlist has backend enforcement but **no editor UI** (+20 more)
+Nodes (29): 10. Error handling, 11. Testing strategy, 12. Future (v1.x), 1. Summary, 2. Goals & non-goals, 3.1 Always-orchestrator, 3.2 Per-equipment sync role, 3.3 Owned vs. received equipment (+21 more)
### Community 106 - "Community 106"
Cohesion: 0.07
-Nodes (28): code:block1 (┌───────────────────────────────────────────────────────────), Context, Critical Files (Reference), ExLab-Wizard Implementation Plan, First Action (before phase 1), Goals, Per-Phase Definition of Done, Phase 10: NAS sync client (+20 more)
+Nodes (30): A successful scan records the refresh on the coordinator., A successful scan records the refresh on the coordinator., A successful scan records the refresh on the coordinator., A successful scan records the refresh on the coordinator., When the clear helper raises, the background task swallows + toasts., When the clear helper raises, the background task swallows + toasts., The 0-file path reports ``already cleared`` rather than ``cleared N``., The 0-file path reports ``already cleared`` rather than ``cleared N``. (+22 more)
### Community 107 - "Community 107"
-Cohesion: 0.16
-Nodes (24): _findings(), Unit tests for the ``/problems`` router., Connecting to /problems/events emits a snapshot frame immediately., Connecting to /problems/events emits a snapshot frame immediately., Without an audit channel the WebSocket closes with 1011., Without an audit channel the WebSocket closes with 1011., ``POST /problems/refresh`` invokes audit and publishes to the channel., ``POST /problems/refresh`` invokes audit and publishes to the channel. (+16 more)
+Cohesion: 0.07
+Nodes (30): An unknown sys.platform falls through to False so the toast can warn., An unknown sys.platform falls through to False so the toast can warn., An unknown sys.platform falls through to False so the toast can warn., A scan failure yields item_count=None + neutral rollup, no raise., A force-refresh writes the fresh scan onto the per-tab feed payload and reco, An entry with no path triggers the early-return toast., An unknown sys.platform falls through to False so the toast can warn., A scan failure yields item_count=None + neutral rollup, no raise. (+22 more)
### Community 108 - "Community 108"
-Cohesion: 0.09
-Nodes (26): browser(), _free_port(), page(), E2E test fixtures (Phase 16). Boots a real uvicorn process serving the e2e test, Yield a chromium browser (headless)., Yield a fresh Playwright page for each test., Return a free TCP port on 127.0.0.1., Return a chromium executable path or None. Search order: 1. ``EXLAB_E2 (+18 more)
+Cohesion: 0.07
+Nodes (29): apply_test_mode_prefix(), load_config_from_text(), Load a config from YAML text. Same semantics as load_config but for in-memory in, Return ``config`` with each equipment id prefixed by :data:`TEST_MODE_PREFIX`., The default code path is a no-op: no env var, no rewrite., A truthy env value rewrites every id with the canonical prefix., An already-``TEST_``-prefixed id must NOT be re-prefixed., The default code path is a no-op: no env var, no rewrite. (+21 more)
### Community 109 - "Community 109"
-Cohesion: 0.12
-Nodes (17): is_run_dir(), True if ``name`` is an experimental-run directory. Note: ``RUN_DIR_PREFIX``, True if ``name`` is an experimental-run directory. Note: ``RUN_DIR_PREFIX``, _extract_overrides_and_sync(), Read ``/.exlab-wizard/creation.json`` if present. Returns ``, Run §8.1 rules in creation-time and audit modes. Backend Spec §11.8. The co, Recursive ``os.scandir`` walk; apply rules at every level. Per-director, Classify a directory's role in an equipment subtree. Equipment root is (+9 more)
+Cohesion: 0.17
+Nodes (28): generate_samples(), Expand ``SAMPLES`` into an on-disk demo tree under the sandbox. Synchronous, _project_dirs(), End-to-end tests for the sample-data generator (design spec §6/§7/§9). These dr, A seeded equipment dir replaced by a symlink out of the sandbox is refused., Seeded ``EquipmentConfig.local_root``/``nas_root`` are BASE roots. Consumer, ``wipe=False`` seeds, and a re-seed without wipe does not delete the tree., Return the README ``core_fields.label`` for a project/run folder. (+20 more)
### Community 110 - "Community 110"
-Cohesion: 0.11
-Nodes (23): Build a perfect remote manifest from the local run subtree. Each non-cache, _walk_local(), parse_lsjson(), Parser for ``rclone lsjson`` output into a run-relative remote manifest. Sole o, One file on the remote. ``mod_time`` is the RFC3339 string as emitted., Run-relative view of a remote subtree. Keyed by POSIX rel-path., True iff ``rel_path`` is present and its remote size equals local., True iff ``rel_path`` is present on the remote (existence probe). (+15 more)
+Cohesion: 0.08
+Nodes (23): create_prod_app_factory(), uvicorn ``--factory`` entrypoint for the *production* wizard app. ``_test_app.p, Build the production wizard app (NiceGUI mounted at ``/``)., _build_default_app(), _build_default_components(), main(), ``exlab-wizard-tray`` console_scripts entry point. Backend Spec §4.3.2. Wires t, Return the production FastAPI app for the tray. Constructs the live :class: (+15 more)
### Community 111 - "Community 111"
-Cohesion: 0.07
-Nodes (27): 1. Transport driver — `sync/transports/rclone.py` (single reusable rclone-ops surface), 2. Manifest + parser — new `sync/manifest.py`, 3. Sync client + verify/cleanup flow — `sync/nas_client.py`, `sync/verifier.py`, `sync/cleanup.py`, 4. Verify / cleanup flow, 5. Credentials / setup gate — `paths.py`, `constants/`, `api/`, `tray/`, 6. UI — `ui/pages/settings.py`, `ui/mount.py`, `ui/pages/main.py`, `ui/pages/wizard_equipment.py`, `ui/equipment_form.py`, 7. Orchestrator / staging hop, 8. Docs (+19 more)
+Cohesion: 0.11
+Nodes (25): ``transport:`` block for an SMB share with password auth. The wizard invoke, RcloneSmbTransport, Return the inline rclone remote name used for ``equipment``. The remote nam, Look up the password, obscure it, build the rclone env. Returns ``(env, mas, _remote_name_for(), _resolve_env_for_equipment(), build_rclone_env(), pass_env_keys_for() (+17 more)
### Community 112 - "Community 112"
-Cohesion: 0.09
-Nodes (26): Return True when ``transport`` sources its credential from the keyring. Bot, transport_requires_keyring_password(), _full_config_dict(), Build a Config from a §9-shaped dict, dump it, and compare. ``model_dump()`, Minimal valid rclone_sftp transport block., Full Config dict mirroring the §9 example. Used by round-trip tests., Full Config dict mirroring the §9 example. Used by round-trip tests., Build a Config from a §9-shaped dict, dump it, and compare. ``model_dump()` (+18 more)
+Cohesion: 0.07
+Nodes (28): AutostartRequest, AutostartResult, _await_or_call(), _coerce_probe_dict(), EquipmentTestRequest, LIMSTestRequest, ProbeResult, Setup-state gate + ``/setup/*`` endpoints. Backend Spec §4.6, §4.9. Two respons (+20 more)
### Community 113 - "Community 113"
-Cohesion: 0.13
-Nodes (26): Mask credential-bearing substrings inside ``value``. Replaces three classes, Formatter that renders the §16.4 structured-tag log line. Reads the active, redact_secret(), StructuredTagFormatter, Tests for ``exlab_wizard.logging.format``. Backend Spec §16.4 defines the canon, ``record.exc_info`` triggers the formatter to append a traceback (§16.4 keep, Build a minimal ``LogRecord`` at a known timestamp. The timestamp is set to, Spec §16.4: level field is exactly 5 chars wide. §16.5 commits four canonic (+18 more)
+Cohesion: 0.07
+Nodes (28): 0.1 Architecture (read first), 0.2 What the recent edit changed (and didn't), 0.3 Healthy baseline (not stubs), 0. Context, A1 — "Quit ExLab-Wizard now" button has no handler, A2 — "Start at login" autostart checkbox is not bound, A3 — Application-section status indicators are hardcoded / missing (§7.13 parity), A4 — Operators allowlist has backend enforcement but **no editor UI** (+20 more)
### Community 114 - "Community 114"
-Cohesion: 0.09
-Nodes (21): create_prod_app_factory(), uvicorn ``--factory`` entrypoint for the *production* wizard app. ``_test_app.p, Build the production wizard app (NiceGUI mounted at ``/``)., _build_default_app(), _build_default_components(), main(), ``exlab-wizard-tray`` console_scripts entry point. Backend Spec §4.3.2. Wires t, Return the production FastAPI app for the tray. Constructs the live :class: (+13 more)
+Cohesion: 0.07
+Nodes (28): code:block1 (┌───────────────────────────────────────────────────────────), Context, Critical Files (Reference), ExLab-Wizard Implementation Plan, First Action (before phase 1), Goals, Per-Phase Definition of Done, Phase 10: NAS sync client (+20 more)
### Community 115 - "Community 115"
-Cohesion: 0.14
-Nodes (25): cleanup_interlocks_satisfied(), has_recent_revocation(), Cleanup safety interlocks. Backend Spec §7.1.6. The cleanup reaper deletes loca, Return True if any tombstone was recorded within ``min_age_hours``. A tombs, Evaluate every §7.1.6 interlock; return True iff all pass. Logs a debug ent, _config(), _job(), Tests for ``exlab_wizard.sync.cleanup``. Backend Spec §7.1.6. Each interlock mu (+17 more)
+Cohesion: 0.11
+Nodes (23): Build a perfect remote manifest from the local run subtree. Each non-cache, _walk_local(), parse_lsjson(), Parser for ``rclone lsjson`` output into a run-relative remote manifest. Sole o, One file on the remote. ``mod_time`` is the RFC3339 string as emitted., Run-relative view of a remote subtree. Keyed by POSIX rel-path., True iff ``rel_path`` is present and its remote size equals local., True iff ``rel_path`` is present on the remote (existence probe). (+15 more)
### Community 116 - "Community 116"
-Cohesion: 0.07
-Nodes (26): 16.10 Anti-patterns, 16.1 Goals, 16.2.1 The `get_logger(name)` entry point, 16.2.2 `configure_logging(config)` at startup, 16.2.3 Context vars, 16.2.4 Equipment-scoped handlers, 16.2.5 Non-blocking emit via `QueueHandler` + `QueueListener`, 16.2 The `logging/` package (+18 more)
+Cohesion: 0.09
+Nodes (26): browser(), _free_port(), page(), E2E test fixtures (Phase 16). Boots a real uvicorn process serving the e2e test, Yield a chromium browser (headless)., Yield a fresh Playwright page for each test., Return a free TCP port on 127.0.0.1., Return a chromium executable path or None. Search order: 1. ``EXLAB_E2 (+18 more)
### Community 117 - "Community 117"
-Cohesion: 0.08
-Nodes (17): Unit tests for :mod:`exlab_wizard.ui.theme`. The theme module renders the ``:ro, A body / heading / mono reset block follows the ``:root {}``., In source layout, the resolver returns ``/assets/``., All shadows are navy-tinted (DESIGN.md §04)., The block opens with ``:root {`` per DESIGN.md §07., A body / heading / mono reset block follows the ``:root {}``., In source layout, the resolver returns ``/assets/``., The main-window refresh tokens are emitted into the :root block. (+9 more)
+Cohesion: 0.1
+Nodes (26): An absent or ``None`` ``schema_version`` is a major-mismatch case., Empty string is treated like ``None`` (no parseable major)., A non-``MAJOR.MINOR`` string is treated as a major-mismatch case., Same major (different minor) is allowed., test_require_schema_major_passes_on_same_major(), test_require_schema_major_raises_on_empty_version(), test_require_schema_major_raises_on_garbage_version(), test_require_schema_major_raises_on_none_version() (+18 more)
+
+### Community 118 - "Community 118"
+Cohesion: 0.07
+Nodes (27): 1. Transport driver — `sync/transports/rclone.py` (single reusable rclone-ops surface), 2. Manifest + parser — new `sync/manifest.py`, 3. Sync client + verify/cleanup flow — `sync/nas_client.py`, `sync/verifier.py`, `sync/cleanup.py`, 4. Verify / cleanup flow, 5. Credentials / setup gate — `paths.py`, `constants/`, `api/`, `tray/`, 6. UI — `ui/pages/settings.py`, `ui/mount.py`, `ui/pages/main.py`, `ui/pages/wizard_equipment.py`, `ui/equipment_form.py`, 7. Orchestrator / staging hop, 8. Docs (+19 more)
### Community 119 - "Community 119"
-Cohesion: 0.08
-Nodes (26): _equipment_ids(), _lims_catalogue_projects(), Read the offline-catalogue projects (disconnected-workstation source). Read, Read the offline-catalogue projects (disconnected-workstation source). Read, Open a NiceGUI dialog showing the run's sync-queue job state. The operator-, Return the configured equipment IDs., Map each ``template_type`` template name to its parsed copier questions. Re, Build a ProjectCreateRequest from the wizard state and run it. (+18 more)
+Cohesion: 0.07
+Nodes (26): Unit tests for ``Validator.audit`` and ``Validator.query_problems``. Backend Sp, A directory outside the equipment root resolves to "other" (defensive)., A finding with an unknown tier sorts after both hard and soft., When ``orchestrator.enabled`` is False, no staging root is wired in., ``orchestrator`` attribute absent on the config also works (default None)., ``_classify_level`` returns "other" for dirs outside the equipment root., ``_compute_run_path`` returns ``str(directory)`` for unrelated paths., ``_compute_run_path`` for the equipment root itself with ``other``. (+18 more)
### Community 120 - "Community 120"
-Cohesion: 0.15
-Nodes (25): create_template(), list_templates(), Return the templates under ``templates_dir``, optionally filtered. A templa, Scaffold a new minimal Copier template under ``templates_dir``. Writes `` ``current_state == 'synced'``., A run whose ``sync_state.json`` carries ``cleared_at`` rolls up to ``cleared``., A re-modified file (signature cleared -> unverified) flips synced back to syncin (+16 more)
+Cohesion: 0.08
+Nodes (26): The selected-node fields end up on MainPageState for the renderer., Phase 4 selection / search / density fields reach MainPageState., The selected-node fields end up on MainPageState for the renderer., The selected-node fields end up on MainPageState for the renderer., The selected-node fields end up on MainPageState for the renderer., Linux dispatches to xdg-open via subprocess.Popen., The selected-node fields end up on MainPageState for the renderer., Phase 4 selection / search / density fields reach MainPageState. (+18 more)
+
+### Community 132 - "Community 132"
+Cohesion: 0.13
+Nodes (24): _kv(), _kv_sync(), Node-type-aware metadata pane for the rebuilt main window. GUI/Orchestrator Red, Key/value row whose value is a sync-status icon (tolerant). Mirrors :func:`, Key/value row whose value is a sync-status icon (tolerant). Mirrors :func:`, Key/value row whose value is a sync-status icon (tolerant). Mirrors :func:`, Render the SELECTED FILE / SELECTED FOLDER sub-card (Phase 4, §4.4). Append, Render the SELECTED FILE / SELECTED FOLDER sub-card (Phase 4, §4.4). Append (+16 more)
### Community 133 - "Community 133"
-Cohesion: 0.11
-Nodes (21): ``validator:`` block. Content-scan tuning. Backend Spec §8.1.1, §11.8., ``validator:`` block. Content-scan tuning. Backend Spec §8.1.1, §11.8., ValidatorConfig, test_validator_config_defaults(), test_validator_content_scan_max_mib_at_least_one(), test_validator_extensions_must_start_with_dot(), test_validator_extensions_rejects_dotless_among_others(), _build_creation_json_dict() (+13 more)
+Cohesion: 0.14
+Nodes (23): _build_front_matter(), _build_readme_fields(), _check_value_type(), _core_fields_dict(), _custom_fields_list(), _is_present(), README generator. Backend Spec §10 / §11.4. Renders ``README.md`` (YAML front m, Run every validation gate. Raises on the first failure. Order matches the s (+15 more)
### Community 134 - "Community 134"
-Cohesion: 0.1
-Nodes (18): BandwidthConfig, ``bandwidth:`` sub-block on a transport., ``bandwidth:`` sub-block on a transport., _build_transport_driver(), Return a ``(driver, push_callable, check_callable)`` triple. Both supported, Minimal keyring stub returning a fixed password by username., An unknown transport type raises ValueError from the helper., _StubKeyring (+10 more)
+Cohesion: 0.12
+Nodes (23): _is_future(), Return True if ``expires_at`` (UTC ISO-8601) is strictly after ``now``. The, Tests for ``exlab_wizard.utils.time``., test_dt_to_iso_naive_assumed_utc(), test_dt_to_iso_non_utc_zone_converts(), test_dt_to_iso_utc_aware(), test_parse_utc_iso_naive_input_tagged_utc(), test_parse_utc_iso_offset_form() (+15 more)
### Community 135 - "Community 135"
-Cohesion: 0.13
-Nodes (23): _build_minimal_controller(), _client(), Full-flow integration test for the FastAPI surface. Drives one project-creation, End-to-end: POST /sessions -> session reaches DONE -> creation.json on disk., End-to-end: POST /sessions -> session reaches DONE -> creation.json on disk., Each non-soft INCOMPLETE_* state surfaces the right next_action., Each non-soft INCOMPLETE_* state surfaces the right next_action., POST /sessions returns 503 + setup_incomplete in non-soft INCOMPLETE_* states. (+15 more)
+Cohesion: 0.17
+Nodes (19): _make_request(), Unit tests for the ``/sessions`` router., Posting without ``kind`` discriminator must 422., Posting without ``kind`` discriminator must 422., Minimal in-memory controller for routing tests., Minimal in-memory controller for routing tests., _ready_config(), _StubController (+11 more)
### Community 136 - "Community 136"
-Cohesion: 0.09
-Nodes (22): clear_run_context(), get_run_context(), Per-task structured-tag context vars for the logging system. Backend Spec §16.2., Return a snapshot of the active context as a plain ``dict``. Used by the fo, Reset every context var to ``None``. Provided for test fixtures that want t, Tests for ``exlab_wizard.logging.context``. Backend Spec §16.2.3 commits the pe, Two ``asyncio.gather``-ed tasks must not see each other's context. This is, Wipe context vars before each test to prevent cross-test leakage. (+14 more)
+Cohesion: 0.12
+Nodes (23): build_health_router(), _component_rollup(), HealthResponse, _lims_health(), _nas_sync_health(), _plugin_host_health(), ``GET /api/v1/health`` rollup. Backend Spec §4.6.3. Returns a component-health, Aggregate per-component statuses into the §4.6.3 top-level value. Top-level (+15 more)
### Community 137 - "Community 137"
-Cohesion: 0.08
-Nodes (13): E2E flow 06: Problems view + override / revoke round trip. Frontend Spec §6.6 (, test_flow_06_problems(), E2E flow 10: Schema-mismatch / migration prompt. Frontend Spec §6.9 (schema-mis, test_flow_10_schema_mismatch(), E2E flow 11: Crash-recovery prompt on relaunch. Frontend Spec §6.10 (crash reco, test_flow_11_crash_recovery(), ProblemsPage, Page object for the Problems tab. Frontend Spec §6.6. (+5 more)
-
-### Community 138 - "Community 138"
-Cohesion: 0.17
-Nodes (22): BadgeProps, FindingLocation, Travelling problem-badge pure function. GUI/Orchestrator Redesign §4.5. Given t, Render properties for a single tree node's badge., A validator finding pinned to a tree-node path. ``path`` is the slash-joine, Compute ``{node_id: BadgeProps}`` for every node that gets a badge. ``fold_, Walk root → leaf along ``path``; return the first collapsed ancestor. If ev, _shallowest_collapsed_ancestor() (+14 more)
+Cohesion: 0.15
+Nodes (23): test_full_create_lifecycle(), OfflineCatalogue, _project_to_dict(), Offline LIMS project catalogue read/write. Backend Spec §7.2.9. A catalogue is, Atomically write ``catalogue`` to ``path``. Backend Spec §7.2.9.2. Protocol, Re-emit a LIMSProject as a serializable dict., Decoded offline catalogue. Backend Spec §7.2.9.1. ``schema_version`` is pin, Read and validate the catalogue file. Returns ``None`` (and logs a WARN) wh (+15 more)
### Community 139 - "Community 139"
-Cohesion: 0.12
-Nodes (23): _fill(), _goto(), _pick_radio(), prod_server(), _project_next(), E2E flow 00b: the full create-lifecycle against the PRODUCTION app. Boots the g, Click a stepper-navigation button scoped to its step container. The Next /, Advance the project wizard from ``step_id`` via its Next button. (+15 more)
+Cohesion: 0.14
+Nodes (23): Return the CSS background + decoration fragment for one file-list row. Pure, Return the CSS background + decoration fragment for one file-list row. Pure, Return the CSS background + decoration fragment for one file-list row. Pure, row_background(), _entry(), Unit tests for ``ui/components/file_list``. Redesign §4.3, §5., A bare entry defaults ``keep_local`` and ``tombstone`` to False., A bare entry defaults ``keep_local`` and ``tombstone`` to False. (+15 more)
### Community 140 - "Community 140"
-Cohesion: 0.09
-Nodes (23): code:block1 (tests/docker/), code:bash (# 1. credentials / ports — edit NAS_PASSWORD to taste), code:yaml (nas:), code:yaml (equipment:), code:yaml (sync:), code:bash (# from tests/docker/), code:python (import shutil, subprocess), code:bash (# online machine) (+15 more)
+Cohesion: 0.22
+Nodes (23): _build_config(), _build_controller(), _project_request(), End-to-end integration tests for :class:`CreationController`. Each test drives, Project creation walks every state and emits a current-version creation.json., Project creation walks every state and emits a current-version creation.json., Construct a minimal Config with one equipment configured., Construct a minimal Config with one equipment configured. (+15 more)
### Community 141 - "Community 141"
Cohesion: 0.11
-Nodes (13): EquipmentScopedFileHandler, open(), _OpenLogFile, Equipment-scoped file handler. Backend Spec §16.2.4. The :class:`EquipmentScope, Return the cached :class:`_OpenLogFile` for ``equipment_id``. Opens the, Return ``//.exlab-wizard/wizard..log``., Append-mode log file with platform-appropriate share / append flags. The wr, Append ``line`` (already newline-terminated) to the file. (+5 more)
+Nodes (24): _drain_to_done(), A run whose parent project folder has no readable creation.json still produc, A run whose parent project folder has no readable creation.json still produc, A run whose parent project folder has no readable creation.json still produc, Wait for the session task to finish and return the final state dict., Wait for the session task to finish and return the final state dict., Redesign §3.4: two creations on the same instrument within the same minute r, Redesign §3.4: two creations on the same instrument within the same minute r (+16 more)
+
+### Community 142 - "Community 142"
+Cohesion: 0.08
+Nodes (13): E2E flow 06: Problems view + override / revoke round trip. Frontend Spec §6.6 (, test_flow_06_problems(), E2E flow 10: Schema-mismatch / migration prompt. Frontend Spec §6.9 (schema-mis, test_flow_10_schema_mismatch(), E2E flow 11: Crash-recovery prompt on relaunch. Frontend Spec §6.10 (crash reco, test_flow_11_crash_recovery(), ProblemsPage, Page object for the Problems tab. Frontend Spec §6.6. (+5 more)
### Community 143 - "Community 143"
-Cohesion: 0.11
-Nodes (21): Sync-status icon component (Frontend Spec §3.2, §10.5.1). Distinct visual state, Compute icon + tooltip + retry-counter for a sync status. The ``retry_n``/`, Compute icon + tooltip + retry-counter for a sync status. The ``retry_n``/`, Build a NiceGUI row containing the icon and optional retry counter., Build a NiceGUI row containing the icon and optional retry counter., Build a NiceGUI row containing the icon and optional retry counter. ``stric, Build a NiceGUI row containing the icon and optional retry counter. ``stric, sync_status_icon() (+13 more)
+Cohesion: 0.17
+Nodes (22): BadgeProps, FindingLocation, Travelling problem-badge pure function. GUI/Orchestrator Redesign §4.5. Given t, Render properties for a single tree node's badge., A validator finding pinned to a tree-node path. ``path`` is the slash-joine, Compute ``{node_id: BadgeProps}`` for every node that gets a badge. ``fold_, Walk root → leaf along ``path``; return the first collapsed ancestor. If ev, _shallowest_collapsed_ancestor() (+14 more)
### Community 144 - "Community 144"
Cohesion: 0.09
-Nodes (22): 1. Purpose and Scope, 2. Mandatory Core Fields (Creation Gate), 2. User Interaction, 3.1 Create a New Project, 3.2 Create a New Experimental Run, 3.3 Create a New Test Run, 3.4 Browse Existing Equipment, Projects, and Runs, 3.5 Author a README at Creation Time (+14 more)
+Nodes (22): clear_run_context(), get_run_context(), Per-task structured-tag context vars for the logging system. Backend Spec §16.2., Return a snapshot of the active context as a plain ``dict``. Used by the fo, Reset every context var to ``None``. Provided for test fixtures that want t, Tests for ``exlab_wizard.logging.context``. Backend Spec §16.2.3 commits the pe, Two ``asyncio.gather``-ed tasks must not see each other's context. This is, Wipe context vars before each test to prevent cross-test leakage. (+14 more)
### Community 145 - "Community 145"
Cohesion: 0.09
-Nodes (22): Force-sync without a wired NAS sync surfaces a negative toast (no raise)., Force-sync without a wired NAS sync surfaces a negative toast (no raise)., ``view_log`` dispatches to the dialog opener helper., ``view_log`` dispatches to the dialog opener helper., Force-sync without a wired NAS sync surfaces a negative toast (no raise)., An unknown action verb is reported but doesn't raise., ``view_log`` dispatches to the dialog opener helper., An unknown action verb is reported but doesn't raise. (+14 more)
+Nodes (23): code:block1 (tests/docker/), code:bash (# 1. credentials / ports — edit NAS_PASSWORD to taste), code:yaml (nas:), code:yaml (equipment:), code:yaml (sync:), code:bash (# from tests/docker/), code:python (import shutil, subprocess), code:bash (# online machine) (+15 more)
### Community 146 - "Community 146"
-Cohesion: 0.1
-Nodes (21): build_test_app(), _classify_test_node(), create_app_factory(), _feed_rows(), E2E test app wiring (Phase 16 follow-up). Builds a FastAPI app via :func:`exlab, Parse a request URL's query string into a multi-value mapping., Same shape classifier the production mount uses, for seeded ids. Returns ``, Per-node-kind hardcoded payloads the test app threads into the production re (+13 more)
+Cohesion: 0.18
+Nodes (22): MetadataPaneState, Mutable state for the metadata pane., Mutable state for the metadata pane., Mutable state for the metadata pane., _by_testid(), _file_payload(), Unit tests for the metadata pane's selected-file/folder sub-card. GUI/Orchestra, A degraded folder scan (item_count=None / rollup=None) still renders. (+14 more)
### Community 147 - "Community 147"
-Cohesion: 0.12
-Nodes (20): Shared asyncio subprocess helper for transport drivers. Backend Spec §7.1.3. Th, Launch ``cmd`` and return ``(returncode, stdout, stderr)`` as text. The chi, Launch ``cmd`` and return ``(returncode, stdout, stderr)`` as text. ``env``, run_subprocess(), Unit tests for ``exlab_wizard.sync.transports._run.run_subprocess``. rclone.con, The child inherits the parent's environment unchanged., An env-dict entry must surface in the child process' environment., Caller-supplied env is *merged* over ``os.environ`` -- it does not replace it. (+12 more)
+Cohesion: 0.1
+Nodes (23): FileListState, Mutable state for the file list, consumed by the renderer., Mutable state for the file list, consumed by the renderer., _click(), Yield ``element`` and every descendant across all its slots. NiceGUI render, The row whose path matches ``selected_path`` carries the selected fill., The row whose path matches ``selected_path`` carries the selected fill., A tombstone row carries the data-tombstone attr + dim/italic decoration. (+15 more)
### Community 148 - "Community 148"
-Cohesion: 0.16
-Nodes (18): ``transport:`` block for an SMB share with password auth. The wizard invoke, RcloneSmbTransport, Look up the password, obscure it, build the rclone env. Returns ``(env, mas, _resolve_env_for_equipment(), build_rclone_env(), _BrokenKeyring, _equipment(), _Keyring (+10 more)
+Cohesion: 0.15
+Nodes (22): check_illegal_filesystem_character(), check_unresolved_placeholder(), §8.1.2: detect Windows-illegal characters in any segment / file name. Illeg, §8.1.1: detect angle-bracket and Jinja placeholder tokens. Hard-tier. Uses, Tests for ``exlab_wizard.validator.rules``. Backend Spec §8.1. Covers each §8.1, test_angle_bracket_token_in_segment_fires(), test_empty_file_contents_dict_is_path_only_scan(), test_findings_have_hard_tier() (+14 more)
### Community 149 - "Community 149"
-Cohesion: 0.11
-Nodes (21): ChipDefinition, ChipState, filter_chips(), initial_state(), is_active(), list_active(), Filter-chip strip component (Frontend Spec §3.5.4, §11.1). A row of toggleable, One chip in a chip group. (+13 more)
-
-### Community 150 - "Community 150"
-Cohesion: 0.09
-Nodes (5): E2E flow 05: Browse view -- open existing project + sessions. Frontend Spec §6., test_flow_05_browse_view(), MainPage, Page object for the main window. Frontend Spec §6. Selectors target ``data-test, Page object for the main window. Frontend Spec §6.1, §6.2.
+Cohesion: 0.13
+Nodes (13): _make_ctx(), _MinimalPlugin, Tests for ``exlab_wizard.plugins.base`` -- the plugin contract base class. Pin, A subclass with both abstract methods implemented is instantiable., Concrete subclass with only the two abstract methods implemented., test_default_validate_variables_returns_empty_when_no_required(), test_describe_changes_default_returns_single_modify_change(), test_minimal_plugin_can_be_instantiated() (+5 more)
### Community 151 - "Community 151"
-Cohesion: 0.13
-Nodes (21): _goto(), E2E flow 25: production /main is wired to the redesigned renderer. This suite e, Clicking a breadcrumb segment routes back through /main?selected=. The brea, Clicking the right-pane toggle flips ?right_pane=collapsed in the URL., Owned-equipment Edit menu navigates to /settings with the equipment id. Rou, Selecting a TEST_RELAY_* node disables the New Project/Run/Test-Run buttons., The footer Clear-verified button is wired to a callback. Asserts the button, Navigate to ``url`` with one retry on transient NiceGUI failures. (+13 more)
+Cohesion: 0.1
+Nodes (23): _build_metadata_payload(), _metadata_for_owned_equipment(), _metadata_for_relay_equipment(), Build the metadata-pane payload for the selected node, by kind. Returns ``{, Build the metadata-pane payload for the selected node, by kind. Returns ``{, Build the metadata-pane payload for the selected node, by kind. Returns ``{, Return the relay-equipment payload (label, source_host)., Project equipment-config fields into the owned-equipment payload. (+15 more)
### Community 152 - "Community 152"
-Cohesion: 0.09
-Nodes (8): E2E flow 03: Experimental-run wizard end-to-end. Frontend Spec §6.4 (run wizard, test_flow_03_experimental_run(), E2E flow 04: Test-run wizard end-to-end. Frontend Spec §6.4 (run wizard, test m, test_flow_04_test_run(), Page object for the New Run Wizard. Frontend Spec §6.4., Locators for the run wizard (experimental + test mode)., Locator for a specific step container., WizardRunPage
+Cohesion: 0.11
+Nodes (23): override_entry_to_dict(), Serialize an ``OverrideEntry`` to a wire-form dict. Uses ``msgspec.structs., Serialize a ``TombstoneEntry`` to a wire-form dict. Mirrors ``override_entry, tombstone_entry_to_dict(), Spec §11.3: ``revoked`` is required on every entry. ``omit_defaults`` would, test_override_entry_to_dict_emits_revoked_field_explicitly(), test_tombstone_entry_to_dict_emits_revoked_field_explicitly(), Return the subset of override entries that are currently active. Implements (+15 more)
### Community 153 - "Community 153"
-Cohesion: 0.09
-Nodes (22): Soft block: surfaces a banner, not a missing-field list., Construct a fully READY Config (paths + equipment + LIMS endpoint+email). R, Construct a fully READY Config (paths + equipment + LIMS endpoint+email). R, endpoint+email present but keyring lacks the password -> INCOMPLETE_NO_LIMS., endpoint+email present but keyring lacks the password -> INCOMPLETE_NO_LIMS., Nas-mode equipment without its keyring entry gates with the new state., A configured LIMS does not mask the missing NAS credential., Adding the keyring entry advances the state to the next gate. (+14 more)
+Cohesion: 0.1
+Nodes (22): ChipDefinition, ChipState, filter_chips(), initial_state(), is_active(), list_active(), Filter-chip strip component (Frontend Spec §3.5.4, §11.1). A row of toggleable, One chip in a chip group. (+14 more)
### Community 154 - "Community 154"
-Cohesion: 0.09
-Nodes (22): _open_input_required_dialog(), Resume a suspended session by re-opening its §9.1 input dialog (T5). Reads, Resume a suspended session by re-opening its §9.1 input dialog (T5). Reads, Open the §9.1 escalation dialog; Submit resumes, Cancel confirms (T5). Subm, Open the §9.1 escalation dialog; Submit resumes, Cancel confirms (T5). Subm, Resume a suspended session by re-opening its §9.1 input dialog (T5). Reads, Open the §9.1 escalation dialog; Submit resumes, Cancel confirms (T5). Subm, Resume a suspended session by re-opening its §9.1 input dialog (T5). Reads (+14 more)
+Cohesion: 0.11
+Nodes (13): EquipmentScopedFileHandler, open(), _OpenLogFile, Equipment-scoped file handler. Backend Spec §16.2.4. The :class:`EquipmentScope, Return the cached :class:`_OpenLogFile` for ``equipment_id``. Opens the, Return ``//.exlab-wizard/wizard..log``., Append-mode log file with platform-appropriate share / append flags. The wr, Append ``line`` (already newline-terminated) to the file. (+5 more)
### Community 155 - "Community 155"
-Cohesion: 0.12
-Nodes (22): get_binding(), KeyCombo, Return the :class:`ShortcutBinding` for the given shortcut id. Raises:, A modifier-and-key combination., ``Cmd+Enter`` / ``Ctrl+Enter`` advances the wizard., Esc cancels the wizard., ``get_binding`` raises ``KeyError`` for an unknown shortcut id., ``Cmd+N`` on macOS, ``Ctrl+N`` elsewhere. (+14 more)
+Cohesion: 0.09
+Nodes (22): 1. Summary, 2. Goals & non-goals, 3.1 Add-Equipment wizard — `ui/pages/wizard_equipment.py`, 3.2 Settings section — `ui/pages/settings.py`, 3.3 Staging route — `ui/mount.py`, 3.4 Main-window footer — `ui/pages/main.py`, 3.5 What stays dormant (explicitly untouched), 3.6 Reversibility contract (+14 more)
### Community 156 - "Community 156"
-Cohesion: 0.19
-Nodes (21): MetadataPaneState, Mutable state for the metadata pane., Mutable state for the metadata pane., _by_testid(), _file_payload(), Unit tests for the metadata pane's selected-file/folder sub-card. GUI/Orchestra, A degraded folder scan (item_count=None / rollup=None) still renders., A degraded folder scan (item_count=None / rollup=None) still renders. (+13 more)
+Cohesion: 0.09
+Nodes (22): 1. Purpose and Scope, 2. Mandatory Core Fields (Creation Gate), 2. User Interaction, 3.1 Create a New Project, 3.2 Create a New Experimental Run, 3.3 Create a New Test Run, 3.4 Browse Existing Equipment, Projects, and Runs, 3.5 Author a README at Creation Time (+14 more)
### Community 157 - "Community 157"
-Cohesion: 0.12
-Nodes (21): class_chip_definitions(), empty_state_text(), filter_findings(), Finding, near_limit(), ProblemsPageState, Problems tab (Frontend Spec §11). Filter chips (Severity, Class, State, Scope),, Filter ``findings`` against the active chip / search state. (+13 more)
+Cohesion: 0.09
+Nodes (23): The fetch is a no-op when RefreshCoordinator just walked the tree., The fetch is a no-op when RefreshCoordinator just walked the tree., The fetch is a no-op when RefreshCoordinator just walked the tree., The fetch is a no-op when RefreshCoordinator just walked the tree., A corrupt creation.json yields {path, name}, never crashes., A corrupt creation.json yields {path, name}, never crashes., A corrupt creation.json yields {path, name}, never crashes., A corrupt creation.json yields {path, name}, never crashes. (+15 more)
### Community 158 - "Community 158"
-Cohesion: 0.17
-Nodes (20): OfflineCatalogue, _project_to_dict(), Offline LIMS project catalogue read/write. Backend Spec §7.2.9. A catalogue is, Atomically write ``catalogue`` to ``path``. Backend Spec §7.2.9.2. Protocol, Re-emit a LIMSProject as a serializable dict., Decoded offline catalogue. Backend Spec §7.2.9.1. ``schema_version`` is pin, Read and validate the catalogue file. Returns ``None`` (and logs a WARN) wh, read_catalogue() (+12 more)
+Cohesion: 0.09
+Nodes (23): A run with a sync-queue job renders its state without raising., A scan failure returns ``None`` so the feed keeps polling., A run with a sync-queue job renders its state without raising., The relay payload pulls id+label from build_received_equipment_nodes., The relay payload pulls id+label from build_received_equipment_nodes., A run with a sync-queue job renders its state without raising., An unknown relay id still produces a payload (best-effort label)., Lightweight ``app`` stand-in carrying ``storage.tab``. (+15 more)
### Community 159 - "Community 159"
-Cohesion: 0.15
-Nodes (21): check_malformed_yaml_front_matter(), check_unresolved_placeholder(), §8.1: detect malformed YAML front matter at the head of a Markdown file., §8.1.1: detect angle-bracket and Jinja placeholder tokens. Hard-tier. Uses, Tests for ``exlab_wizard.validator.rules``. Backend Spec §8.1. Covers each §8.1, test_angle_bracket_token_in_segment_fires(), test_empty_content_passes(), test_empty_file_contents_dict_is_path_only_scan() (+13 more)
+Cohesion: 0.09
+Nodes (8): E2E flow 03: Experimental-run wizard end-to-end. Frontend Spec §6.4 (run wizard, test_flow_03_experimental_run(), E2E flow 04: Test-run wizard end-to-end. Frontend Spec §6.4 (run wizard, test m, test_flow_04_test_run(), Page object for the New Run Wizard. Frontend Spec §6.4., Locators for the run wizard (experimental + test mode)., Locator for a specific step container., WizardRunPage
### Community 160 - "Community 160"
Cohesion: 0.09
-Nodes (21): ExLab-Wizard — Remaining Work: Tracked Tasks, How to use this tracker, Phase 1 — Release-blocking correctness, Phase 2 — Session-control epic (build in order; they compound), Phase 3 — Visibility & usability, Phase 4 — Cleanups (anytime), Progress, Shared foundations (build once, reused across tasks) (+13 more)
+Nodes (22): Soft block: surfaces a banner, not a missing-field list., Construct a fully READY Config (paths + equipment + LIMS endpoint+email). R, Construct a fully READY Config (paths + equipment + LIMS endpoint+email). R, endpoint+email present but keyring lacks the password -> INCOMPLETE_NO_LIMS., endpoint+email present but keyring lacks the password -> INCOMPLETE_NO_LIMS., Nas-mode equipment without its keyring entry gates with the new state., A configured LIMS does not mask the missing NAS credential., Adding the keyring entry advances the state to the next gate. (+14 more)
### Community 161 - "Community 161"
Cohesion: 0.09
-Nodes (21): 1. Summary, 2. Goals & non-goals, 3.1 Setup-state gate — `paths.py`, 3.2 Suggestion helper — `paths.py`, 3.3 Settings UI — `ui/pages/settings.py`, 3.4 Create-on-save — `ui/mount.py` `_persist_config`, 3.5 Verified, not modified, 3.6 Test mode — unchanged (+13 more)
+Nodes (22): _bulk_clear_verified(), _file_context_action(), Bulk-clear every staged run whose sync job is verified. Wired from the file, Bulk-clear every staged run whose sync job is verified. Wired from the file, Handle ``Open in OS`` / ``Copy path`` / ``Keep local`` file actions., Bulk-clear every staged run whose sync job is verified. Wired from the file, Handle ``Open in OS`` / ``Copy path`` / ``Keep local`` file actions., Handle ``Open in OS`` / ``Copy path`` / ``Keep local`` file actions. (+14 more)
### Community 162 - "Community 162"
-Cohesion: 0.1
-Nodes (21): An unknown action verb is logged + toasted without raising., An unknown action verb is logged + toasted without raising., An unknown action verb is logged + toasted without raising., Force-sync routes to ``deps.nas_sync.enqueue`` with the run path., Force-sync routes to ``deps.nas_sync.enqueue`` with the run path., Force-sync routes to ``deps.nas_sync.enqueue`` with the run path., Force-sync routes to ``deps.nas_sync.enqueue`` with the run path., An exception from the clear sweep is caught + toasted. (+13 more)
+Cohesion: 0.09
+Nodes (22): _lims_catalogue_projects(), _lims_projects(), Read the offline-catalogue projects (disconnected-workstation source). Read, Return the LIMS projects backing the project wizard's picker. Tries the liv, Return the LIMS projects backing the project wizard's picker. Tries the liv, Read the offline-catalogue projects (disconnected-workstation source). Read, Return the LIMS projects backing the project wizard's picker. Tries the liv, Read the offline-catalogue projects (disconnected-workstation source). Read (+14 more)
### Community 163 - "Community 163"
-Cohesion: 0.1
-Nodes (21): A successful scan records the refresh on the coordinator., A successful scan records the refresh on the coordinator., A successful scan records the refresh on the coordinator., The bulk action clears every ``synced`` row and toasts the count., The 0-file path reports ``already cleared`` rather than ``cleared N``., The 0-file path reports ``already cleared`` rather than ``cleared N``., A successful scan records the refresh on the coordinator., A successful scan records the refresh on the coordinator. (+13 more)
+Cohesion: 0.09
+Nodes (22): _build_selected_file(), _build_selected_folder(), _metadata_for_run(), Count immediate child directories of ``parent`` whose names start with ``pre, Decode the run's creation.json into the metadata-pane payload. Returns ``{}, Decode the run's creation.json into the metadata-pane payload. Returns ``{}, Decode the run's creation.json into the metadata-pane payload. Returns ``{}, Resolve a centre-list selection (file or folder) to a render payload. Phase (+14 more)
### Community 164 - "Community 164"
-Cohesion: 0.1
-Nodes (21): An equipment node payload pulls fields from config.equipment[id]., An equipment node payload pulls fields from config.equipment[id]., Asking for a node that isn't in config.equipment returns ``{}``., Asking for a node that isn't in config.equipment returns ``{}``., An equipment node payload pulls fields from config.equipment[id]., The project payload counts Run_* and TestRun_* directories., An equipment node payload pulls fields from config.equipment[id]., Asking for a node that isn't in config.equipment returns ``{}``. (+13 more)
+Cohesion: 0.09
+Nodes (22): _open_in_os(), _open_operation_details(), Launch the host OS's default opener for ``path``. Returns False on platform, Launch the host OS's default opener for ``path``. Returns False on platform, Launch the host OS's default opener for ``path``. Returns False on platform, Show a lightweight details/"log" dialog for one in-flight operation. The §9, Show a lightweight details/"log" dialog for one in-flight operation. The §9, Launch the host OS's default opener for ``path``. Returns False on platform (+14 more)
### Community 165 - "Community 165"
-Cohesion: 0.1
-Nodes (21): A scan failure returns ``None`` so the feed keeps polling., A scan failure returns ``None`` so the feed keeps polling., A run with no sync-queue job still renders a dialog without raising., A run with no sync-queue job still renders a dialog without raising., A scan failure returns ``None`` so the feed keeps polling., A run with no sync-queue job still renders a dialog without raising., A run with no sync-queue job still renders a dialog without raising., A clipboard write failure is caught and reported as a negative toast. (+13 more)
+Cohesion: 0.12
+Nodes (22): get_binding(), KeyCombo, Return the :class:`ShortcutBinding` for the given shortcut id. Raises:, A modifier-and-key combination., ``Cmd+Enter`` / ``Ctrl+Enter`` advances the wizard., Esc cancels the wizard., ``get_binding`` raises ``KeyError`` for an unknown shortcut id., ``Cmd+N`` on macOS, ``Ctrl+N`` elsewhere. (+14 more)
### Community 166 - "Community 166"
-Cohesion: 0.09
-Nodes (21): One operator-defined extra README field. Backend Spec §9, §10., One operator-defined extra README field. Backend Spec §9, §10., ``sync:`` block. NAS sync engine kill-switch + retry / quiescence policy., ``sync:`` block. NAS sync engine kill-switch + retry / quiescence policy., READMEDefaultField, SyncConfig, test_readme_choice_field_accepts_non_empty_options(), test_readme_choice_field_rejects_empty_options_list() (+13 more)
+Cohesion: 0.12
+Nodes (21): class_chip_definitions(), empty_state_text(), filter_findings(), Finding, near_limit(), ProblemsPageState, Problems tab (Frontend Spec §11). Filter chips (Severity, Class, State, Scope),, Filter ``findings`` against the active chip / search state. (+13 more)
### Community 167 - "Community 167"
-Cohesion: 0.1
-Nodes (21): compose_run_path(), Compose the absolute on-disk path for a new run. Paths follow Backend Spec, The leaf is ISO 8601 with colons replaced by hyphens. §3.1. Redesign §3.4:, The leaf is ISO 8601 with colons replaced by hyphens. §3.1. Redesign §3.4:, Redesign §3.4: experimental runs live under /Runs/Run_*., Redesign §3.4: experimental runs live under /Runs/Run_*., Redesign §3.4: two runs in the same minute resolve to the same path (Copier, Redesign §3.4: two runs in the same minute resolve to the same path (Copier (+13 more)
+Cohesion: 0.12
+Nodes (20): Shared asyncio subprocess helper for transport drivers. Backend Spec §7.1.3. Th, Launch ``cmd`` and return ``(returncode, stdout, stderr)`` as text. The chi, Launch ``cmd`` and return ``(returncode, stdout, stderr)`` as text. ``env``, run_subprocess(), Unit tests for ``exlab_wizard.sync.transports._run.run_subprocess``. rclone.con, The child inherits the parent's environment unchanged., An env-dict entry must surface in the child process' environment., Caller-supplied env is *merged* over ``os.environ`` -- it does not replace it. (+12 more)
### Community 168 - "Community 168"
-Cohesion: 0.1
-Nodes (21): _bulk_clear_verified(), _file_context_action(), Bulk-clear every staged run whose sync job is verified. Wired from the file, Bulk-clear every staged run whose sync job is verified. Wired from the file, Handle ``Open in OS`` / ``Copy path`` / ``Keep local`` file actions., Bulk-clear every staged run whose sync job is verified. Wired from the file, Handle ``Open in OS`` / ``Copy path`` / ``Keep local`` file actions., Handle ``Open in OS`` / ``Copy path`` / ``Keep local`` file actions. (+13 more)
+Cohesion: 0.09
+Nodes (21): ExLab-Wizard — Remaining Work: Tracked Tasks, How to use this tracker, Phase 1 — Release-blocking correctness, Phase 2 — Session-control epic (build in order; they compound), Phase 3 — Visibility & usability, Phase 4 — Cleanups (anytime), Progress, Shared foundations (build once, reused across tasks) (+13 more)
### Community 169 - "Community 169"
-Cohesion: 0.19
-Nodes (20): diff_file_lists(), Return the CSS background + decoration fragment for one file-list row. Pure, Return the CSS background + decoration fragment for one file-list row. Pure, Return additions / removals / modifications between two snapshots. Pure fun, Return additions / removals / modifications between two snapshots. Pure fun, row_background(), _entry(), Unit tests for ``ui/components/file_list``. Redesign §4.3, §5. (+12 more)
+Cohesion: 0.09
+Nodes (21): 1. Summary, 2. Goals & non-goals, 3.1 Setup-state gate — `paths.py`, 3.2 Suggestion helper — `paths.py`, 3.3 Settings UI — `ui/pages/settings.py`, 3.4 Create-on-save — `ui/mount.py` `_persist_config`, 3.5 Verified, not modified, 3.6 Test mode — unchanged (+13 more)
### Community 170 - "Community 170"
-Cohesion: 0.17
-Nodes (20): _kv(), _kv_sync(), Node-type-aware metadata pane for the rebuilt main window. GUI/Orchestrator Red, Key/value row whose value is a sync-status icon (tolerant). Mirrors :func:`, Key/value row whose value is a sync-status icon (tolerant). Mirrors :func:`, Render the SELECTED FILE / SELECTED FOLDER sub-card (Phase 4, §4.4). Append, Render the SELECTED FILE / SELECTED FOLDER sub-card (Phase 4, §4.4). Append, Render the right-pane Metadata content for ``state.selected_node``. Dispatc (+12 more)
+Cohesion: 0.09
+Nodes (22): On win32 the helper calls ``os.startfile`` and reports success., No probe wired -> a failure result rather than a crash., On win32 the helper calls ``os.startfile`` and reports success., On win32 the helper calls ``os.startfile`` and reports success., On win32 the helper calls ``os.startfile`` and reports success., On win32 the helper calls ``os.startfile`` and reports success., The §9.4 dialog's Discard button cancels with discard_files=True., On win32 the helper calls ``os.startfile`` and reports success. (+14 more)
### Community 171 - "Community 171"
-Cohesion: 0.13
-Nodes (8): KeyringUnavailableError, Raised when no OS keyring backend is reachable and fallback is exhausted. Backen, _decode_envelope(), OS keyring storage with encrypted-at-rest fallback. Backend Spec §7.4. Two back, Look up the secret for ``(KEYRING_SERVICE, username)``. Returns ``None`, Persist ``password`` under ``(KEYRING_SERVICE, username)``. On a keyrin, Remove the secret stored under ``(KEYRING_SERVICE, username)``. Missing, Best-effort probe of the OS keyring backend. Implemented as a round-tri
+Cohesion: 0.09
+Nodes (22): A suspended session re-opens its escalation dialog with parked fields., A suspended session re-opens its escalation dialog with parked fields., A suspended session re-opens its escalation dialog with parked fields., A suspended session re-opens its escalation dialog with parked fields., The Keep-files button cancels with discard_files=False., The Keep-files button cancels with discard_files=False., The Keep-files button cancels with discard_files=False., With a job row, the dialog renders each populated field line. (+14 more)
### Community 172 - "Community 172"
+Cohesion: 0.09
+Nodes (22): A cancel failure is caught and toasted, not raised., A cancel failure is caught and toasted, not raised., A cancel failure is caught and toasted, not raised., A cancel failure is caught and toasted, not raised., ``_render_run_wizard`` wires templates/equipment into the run-wizard page., ``_render_run_wizard`` wires templates/equipment into the run-wizard page., A cancel failure is caught and toasted, not raised., A cancel failure is caught and toasted, not raised. (+14 more)
+
+### Community 173 - "Community 173"
Cohesion: 0.1
-Nodes (20): When nas_sync.enqueue raises, the background task swallows + toasts., When nas_sync.enqueue raises, the background task swallows + toasts., When the clear helper raises, the background task swallows + toasts., When the clear helper raises, the background task swallows + toasts., When nas_sync.enqueue raises, the background task swallows + toasts., When the clear helper raises, the background task swallows + toasts., When nas_sync.enqueue raises, the background task swallows + toasts., When nas_sync.enqueue raises, the background task swallows + toasts. (+12 more)
+Nodes (22): A scan failure returns ``None`` so the feed keeps polling., A scan failure returns ``None`` so the feed keeps polling., A run with no sync-queue job still renders a dialog without raising., A run with no sync-queue job still renders a dialog without raising., A run with no sync-queue job still renders a dialog without raising., A scan failure returns ``None`` so the feed keeps polling., A run with no sync-queue job still renders a dialog without raising., A run with no sync-queue job still renders a dialog without raising. (+14 more)
### Community 174 - "Community 174"
-Cohesion: 0.13
-Nodes (16): Parallelism knobs forwarded to rclone (``--transfers`` / ``--checkers``). T, RclonePerf, The ``(remote, base_root, perf)`` an equipment's ops resolve to. Computed o, Lightweight handle returned by :meth:`NASSyncClient.enqueue`. ``job_id`` is, Lightweight handle returned by :meth:`NASSyncClient.enqueue`. ``job_id`` is, _RemoteResolution, SyncJobHandle, _decode_files() (+8 more)
+Cohesion: 0.19
+Nodes (20): load_config(), Atomically write `config` back to `path`. If `original_text` is supplied, r, Load a config.yaml from disk and validate against the Pydantic model. Raise, save_config(), Tests for ``exlab_wizard.config.loader``. Backend Spec §9. The loader is the si, test_load_config_complete_yaml(), test_load_config_invalid_yaml_raises(), test_load_config_missing_file_raises() (+12 more)
### Community 175 - "Community 175"
-Cohesion: 0.1
-Nodes (20): _open_in_os(), _open_operation_details(), Launch the host OS's default opener for ``path``. Returns False on platform, Launch the host OS's default opener for ``path``. Returns False on platform, Launch the host OS's default opener for ``path``. Returns False on platform, Show a lightweight details/"log" dialog for one in-flight operation. The §9, Show a lightweight details/"log" dialog for one in-flight operation. The §9, Launch the host OS's default opener for ``path``. Returns False on platform (+12 more)
+Cohesion: 0.15
+Nodes (20): _build_minimal_controller(), _client(), Full-flow integration test for the FastAPI surface. Drives one project-creation, End-to-end: POST /sessions -> session reaches DONE -> creation.json on disk., End-to-end: POST /sessions -> session reaches DONE -> creation.json on disk., Each non-soft INCOMPLETE_* state surfaces the right next_action., Each non-soft INCOMPLETE_* state surfaces the right next_action., POST /sessions returns 503 + setup_incomplete in non-soft INCOMPLETE_* states. (+12 more)
### Community 176 - "Community 176"
-Cohesion: 0.12
-Nodes (20): _build_metadata_payload(), _metadata_for_owned_equipment(), _metadata_for_relay_equipment(), Build the metadata-pane payload for the selected node, by kind. Returns ``{, Build the metadata-pane payload for the selected node, by kind. Returns ``{, Build the metadata-pane payload for the selected node, by kind. Returns ``{, Return the relay-equipment payload (label, source_host)., Project equipment-config fields into the owned-equipment payload. (+12 more)
+Cohesion: 0.1
+Nodes (21): compose_run_path(), Compose the absolute on-disk path for a new run. Paths follow Backend Spec, The leaf is ISO 8601 with colons replaced by hyphens. §3.1. Redesign §3.4:, The leaf is ISO 8601 with colons replaced by hyphens. §3.1. Redesign §3.4:, Redesign §3.4: experimental runs live under /Runs/Run_*., Redesign §3.4: experimental runs live under /Runs/Run_*., Redesign §3.4: two runs in the same minute resolve to the same path (Copier, Redesign §3.4: two runs in the same minute resolve to the same path (Copier (+13 more)
### Community 177 - "Community 177"
-Cohesion: 0.12
-Nodes (19): mount_ui(), Register every wizard page on ``app`` and mount NiceGUI at ``/``. ``storage, Define every ``@ui.page(...)`` handler. Called from :func:`mount_ui`., Define every ``@ui.page(...)`` handler. Called from :func:`mount_ui`., _register_pages(), build_root_css(), Theme registration for NiceGUI / Quasar. Per Frontend Spec §2.1.1, this module, Register the design tokens with NiceGUI / Quasar at app start. Imports Nice (+11 more)
+Cohesion: 0.1
+Nodes (21): _missing_lims_fields(), _missing_orchestrator_fields(), _missing_paths_fields(), Translate a state into ``{field, reason}`` dicts for ``/api/v1/setup/status``., Translate a state into ``{field, reason}`` dicts for ``/api/v1/setup/status``., Only ``label`` is required; ``staging_root`` is opt-in (see gate)., Only ``label`` is required; ``staging_root`` is opt-in (see gate)., setup_state_missing() (+13 more)
### Community 178 - "Community 178"
-Cohesion: 0.16
-Nodes (18): Folder-level sync-status rollup (GUI/Orchestrator Redesign §4.6). When a folder, Reduce per-file sync statuses to a single worst-of rollup value. Returns th, sync_rollup(), Unit tests for the folder-level sync-status rollup (Redesign §4.6)., failed > blocked > pending > synced > cleaned: each prefix's rollup is its f, SyncStatus is a StrEnum, so passing members (not .value strings) works. Gua, test_accepts_syncstatus_enum_members_directly(), test_all_none_returns_none() (+10 more)
+Cohesion: 0.14
+Nodes (20): build_settings_draft(), finalize_settings_draft(), Return the editable deep-copy draft the settings dialog mutates. ``None`` (, Return the editable deep-copy draft the settings dialog mutates. ``None`` (, Return the editable deep-copy draft the settings dialog mutates. ``None`` (, Re-validate a mutated draft into a clean :class:`Config`. The dialog's two-, Re-validate a mutated draft into a clean :class:`Config`. The dialog's two-, Re-validate a mutated draft into a clean :class:`Config`. The dialog's two- (+12 more)
### Community 179 - "Community 179"
-Cohesion: 0.15
-Nodes (17): _file_names_in_run(), is_eligible(), Pre-Sync Gate. Backend Spec §7.3. The Pre-Sync Gate is the contract by which va, Return the bare file names directly under ``run_path``. The Pre-Sync Gate i, Evaluate the §7.3 eligibility rule for a run. Returns ``(True, [])`` iff th, _build_creation(), Tests for ``exlab_wizard.sync.pre_sync_gate``. Backend Spec §7.3. The Pre-Sync, An override that has been revoked does NOT unblock sync. (+9 more)
+Cohesion: 0.13
+Nodes (8): KeyringUnavailableError, Raised when no OS keyring backend is reachable and fallback is exhausted. Backen, _decode_envelope(), OS keyring storage with encrypted-at-rest fallback. Backend Spec §7.4. Two back, Look up the secret for ``(KEYRING_SERVICE, username)``. Returns ``None`, Persist ``password`` under ``(KEYRING_SERVICE, username)``. On a keyrin, Remove the secret stored under ``(KEYRING_SERVICE, username)``. Missing, Best-effort probe of the OS keyring backend. Implemented as a round-tri
### Community 180 - "Community 180"
-Cohesion: 0.12
-Nodes (19): ``readme_fields.json`` at schema version 1.1. Spec §11.4., ReadmeFieldsJson, test_readme_fields_json_optional_fields_default_to_empty(), test_readme_fields_json_round_trip_preserves_custom_fields(), test_readme_fields_json_round_trips(), _os_username(), Map a template's ``_exlab_readme.fields`` dicts to typed declarations. Entr, Map ``config.readme.defaults`` entries to typed declarations. Core field id (+11 more)
+Cohesion: 0.1
+Nodes (21): An async probe is awaited before its dict is mapped., An async probe is awaited before its dict is mapped., An async probe is awaited before its dict is mapped., No controller -> a negative toast and no dialog open., No controller -> a negative toast and no dialog open., An async probe is awaited before its dict is mapped., A wired controller builds the modal and opens it (no raise)., An async probe is awaited before its dict is mapped. (+13 more)
### Community 181 - "Community 181"
-Cohesion: 0.14
-Nodes (17): _build_context(), _decode_files(), _load_plugin_class(), main(), Plugin worker entry point. Backend Spec §6.3.1, §6.3.2. Invoked as ``python -m, Materialize a :class:`PluginContext` from the stdin envelope. Returns the c, Import the plugin module and return the exported ``Plugin`` symbol. The hos, Execute the plugin's transform lifecycle against ``files``. The lifecycle i (+9 more)
+Cohesion: 0.1
+Nodes (21): The Back button closes the dialog without cancelling., The Back button closes the dialog without cancelling., The Back button closes the dialog without cancelling., The Back button closes the dialog without cancelling., The Back button closes the dialog without cancelling., The Back button closes the dialog without cancelling., The received_equipment kind routes to the relay-equipment builder., The Back button closes the dialog without cancelling. (+13 more)
### Community 182 - "Community 182"
-Cohesion: 0.13
-Nodes (19): first_incomplete_section(), Settings dialog (Frontend Spec §7). Two-pane modal with a left vertical-nav and, Return the first section ID in canonical order that's incomplete. The dynam, Return the first section ID in canonical order that's incomplete. The dynam, Compute the *Save all* button label, including the badge count., Compute the *Save all* button label, including the badge count., Return ``True`` when the sidebar should decorate ``section``., Return ``True`` when the sidebar should decorate ``section``. (+11 more)
-
-### Community 183 - "Community 183"
Cohesion: 0.1
-Nodes (19): Cleanup — rollup, code:block1 ({), Components touched, Config changes (`config/models.py`), Context, Failure handling, Goals, GUI per-file display state (+11 more)
+Nodes (20): Render the centre-pane file list (Redesign §4.3). Each row carries a right-, Render the centre-pane file list (Redesign §4.3). Each row carries a right-, Render the centre-pane file list (Redesign §4.3). Each row carries a right-, Render the centre-pane file list (Redesign §4.3). Each row carries a right-, Render the centre-pane file list (Redesign §4.3). Each row carries a right-, Render the centre-pane file list (Redesign §4.3). Each row carries a right-, Render the centre-pane file list (Redesign §4.3). Each row carries a right-, Render the centre-pane file list (Redesign §4.3). Each row carries a right- (+12 more)
-### Community 184 - "Community 184"
-Cohesion: 0.1
-Nodes (20): 7.10 Validator section, 7.11 Logging section, 7.12 Orchestrator Mode section, 7.13 Application section, 7.14 Setup-incomplete state, 7.1 Modality, 7.2 Layout — sidebar navigation, 7.3 Save and Discard model (+12 more)
+### Community 183 - "Community 183"
+Cohesion: 0.16
+Nodes (18): Folder-level sync-status rollup (GUI/Orchestrator Redesign §4.6). When a folder, Reduce per-file sync statuses to a single worst-of rollup value. Returns th, sync_rollup(), Unit tests for the folder-level sync-status rollup (Redesign §4.6)., failed > blocked > pending > synced > cleaned: each prefix's rollup is its f, SyncStatus is a StrEnum, so passing members (not .value strings) works. Gua, test_accepts_syncstatus_enum_members_directly(), test_all_none_returns_none() (+10 more)
### Community 185 - "Community 185"
Cohesion: 0.11
-Nodes (19): A cancel failure is caught and toasted, not raised., A cancel failure is caught and toasted, not raised., A cancel failure is caught and toasted, not raised., ``_render_run_wizard`` wires templates/equipment into the run-wizard page., ``_render_run_wizard`` wires templates/equipment into the run-wizard page., A cancel failure is caught and toasted, not raised., A cancel failure is caught and toasted, not raised., A cancel failure is caught and toasted, not raised. (+11 more)
+Nodes (19): _fill(), _goto(), _pick_radio(), _project_next(), E2E flow 00b: the full create-lifecycle against the PRODUCTION app. Boots the g, Click a stepper-navigation button scoped to its step container. The Next /, Advance the project wizard from ``step_id`` via its Next button., Advance the run wizard from ``step_id`` via its Next button. (+11 more)
### Community 186 - "Community 186"
-Cohesion: 0.11
-Nodes (19): The Back button closes the dialog without cancelling., The Back button closes the dialog without cancelling., The Back button closes the dialog without cancelling., The Back button closes the dialog without cancelling., The Back button closes the dialog without cancelling., The received_equipment kind routes to the relay-equipment builder., The Back button closes the dialog without cancelling., The received_equipment kind routes to the relay-equipment builder. (+11 more)
+Cohesion: 0.15
+Nodes (18): _goto(), E2E flow 16: Add-Equipment wizard (Redesign §6). Drives the wizard end to end a, Identity step renders the ID + label inputs., Identity step renders the ID + label inputs., Paths step renders local + NAS root inputs., Paths step renders local + NAS root inputs., Sync mode step renders the nas/stage radio., Review step renders Confirm; clicking it fires the success label. (+10 more)
### Community 187 - "Community 187"
-Cohesion: 0.11
-Nodes (19): _by_rule(), A project directory with no ``creation.json`` produces one orphan finding., A run directory with no ``creation.json`` produces one orphan finding., A human-readable project name (spaces and all) is a safe segment., A ``Run_*`` leaf whose creation.json says ``run_kind="test"`` is flagged., An active override with matching ``problem_class`` flips ``override_active``., Synced run + hard finding -> ``synced_under_prior_policy=True``., Cleaned run + hard finding -> ``synced_under_prior_policy=True``. A ``clean (+11 more)
+Cohesion: 0.12
+Nodes (19): nas_remote_available(), _lims_slot_satisfied(), _missing_nas_fields(), _nas_in_use(), _nas_remote_satisfied(), _nas_slot_satisfied(), _orchestrator_identity_complete(), _password_required_equipment() (+11 more)
### Community 188 - "Community 188"
-Cohesion: 0.12
-Nodes (13): Mutate ``creation.json`` ``sync_status`` to ``cleaned``. Backend Spec §7.1.10., Mutate ``creation.json`` ``sync_status`` to ``cleaned``. Backend Spec §7.1.10., Stop the worker and close the queue DB. Idempotent., Stop the worker and close the queue DB. Idempotent., Re-run ``rclone check --download`` against the configured remote. Used, Re-run ``rclone check --download`` against the configured remote. Used, Resolve the ``rclone check --download`` callable for ``equipment``. Tes, Resolve the ``rclone check`` callable for ``equipment.transport``. Test (+5 more)
+Cohesion: 0.1
+Nodes (20): _drive_folder_feed(), _fetch_folder_async(), Mount / rebind the per-tab FolderFeed and return current entries. Uses ``ap, FolderFeed fetch hook. Skips when the tree just walked. Runs the synchronou, FolderFeed fetch hook. Skips when the tree just walked. Runs the synchronou, FolderFeed fetch hook. Skips when the tree just walked. Runs the synchronou, Mount / rebind the per-tab FolderFeed and return current entries. Uses ``ap, Mount / rebind the per-tab FolderFeed and return current entries. Uses ``ap (+12 more)
### Community 189 - "Community 189"
-Cohesion: 0.12
-Nodes (18): test_obscure_missing_binary_raises_auth(), test_obscure_returns_stdout_stripped(), test_parse_combined_empty_returns_empty_result(), test_parse_combined_handles_all_prefixes(), test_parse_combined_tolerates_blank_lines_and_unknown_prefix(), CheckResult, obscure(), _parse_combined() (+10 more)
+Cohesion: 0.15
+Nodes (17): _file_names_in_run(), is_eligible(), Pre-Sync Gate. Backend Spec §7.3. The Pre-Sync Gate is the contract by which va, Return the bare file names directly under ``run_path``. The Pre-Sync Gate i, Evaluate the §7.3 eligibility rule for a run. Returns ``(True, [])`` iff th, _build_creation(), Tests for ``exlab_wizard.sync.pre_sync_gate``. Backend Spec §7.3. The Pre-Sync, An override that has been revoked does NOT unblock sync. (+9 more)
### Community 190 - "Community 190"
-Cohesion: 0.29
-Nodes (18): Push the supplied context vars on entry and reset them on exit. Vars whose, set_run_context(), _make_handler(), _make_record(), Tests for ``exlab_wizard.logging.handlers``. Backend Spec §16.2.4 commits the e, The ``Exception`` branch in :meth:`emit` is the stdlib handler-error contrac, Construct a handler with a deterministic hostname for test paths., test_close_drains_cached_files() (+10 more)
+Cohesion: 0.1
+Nodes (19): Cleanup — rollup, code:block1 ({), Components touched, Config changes (`config/models.py`), Context, Failure handling, Goals, GUI per-file display state (+11 more)
### Community 191 - "Community 191"
-Cohesion: 0.11
-Nodes (6): E2E flow 02: Project wizard 7-step happy path. Frontend Spec §6.3 (project wiza, test_flow_02_project_wizard(), Page object for the New Project Wizard. Frontend Spec §6.3., Locators for the new-project wizard's seven-step stepper., Locator for a specific step container., WizardProjectPage
+Cohesion: 0.1
+Nodes (20): 7.10 Validator section, 7.11 Logging section, 7.12 Orchestrator Mode section, 7.13 Application section, 7.14 Setup-incomplete state, 7.1 Modality, 7.2 Layout — sidebar navigation, 7.3 Save and Discard model (+12 more)
### Community 192 - "Community 192"
Cohesion: 0.11
-Nodes (19): _build_selected_file(), _build_selected_folder(), _metadata_for_run(), Count immediate child directories of ``parent`` whose names start with ``pre, Decode the run's creation.json into the metadata-pane payload. Returns ``{}, Decode the run's creation.json into the metadata-pane payload. Returns ``{}, Decode the run's creation.json into the metadata-pane payload. Returns ``{}, Resolve a centre-list selection (file or folder) to a render payload. Phase (+11 more)
+Nodes (19): Render the right Metadata / Problems pane (Redesign §4.4)., Render the right Metadata / Problems pane (Redesign §4.4)., Render the right Metadata / Problems pane (Redesign §4.4)., Render the right Metadata / Problems pane (Redesign §4.4)., Render the right Metadata / Problems pane (Redesign §4.4)., Render the right Metadata / Problems pane (Redesign §4.4)., Render the right Metadata / Problems pane (Redesign §4.4)., Render the right Metadata / Problems pane (Redesign §4.4). (+11 more)
### Community 193 - "Community 193"
Cohesion: 0.11
-Nodes (19): _apply_live_config(), _ensure_staging_root(), _persist_config(), Write ``updated`` via ``deps.save_config`` and hot-reload components. Retur, Create the staging directory when the operator saved a non-empty path. ``st, Write ``updated`` via ``deps.save_config`` and hot-reload components. Retur, Write ``updated`` via ``deps.save_config`` and hot-reload components. Retur, Write ``updated`` via ``deps.save_config`` and hot-reload components. Retur (+11 more)
+Nodes (6): E2E flow 02: Project wizard 7-step happy path. Frontend Spec §6.3 (project wiza, test_flow_02_project_wizard(), Page object for the New Project Wizard. Frontend Spec §6.3., Locators for the new-project wizard's seven-step stepper., Locator for a specific step container., WizardProjectPage
### Community 194 - "Community 194"
-Cohesion: 0.11
-Nodes (19): _close_dialog(), _consume_session_progress(), Fold the controller's WS frames into the wizard's live phase bar (T2) and su, Best-effort close of a NiceGUI dialog (no-op when ``None`` / test mode)., Return the configured templates directory, or ``None``., List template directory names of ``template_type`` under templates_dir., Best-effort close of a NiceGUI dialog (no-op when ``None`` / test mode)., Fold the controller's WS frames into the wizard's live phase bar (T2) and su (+11 more)
+Cohesion: 0.18
+Nodes (17): Parse the operator-answerable questions out of a ``copier.yml`` body. Handl, template_questions(), build_equipment_config(), Shared assembler for an :class:`EquipmentConfig` from raw form fields. GUI/Orch, Assemble a validated :class:`EquipmentConfig` from raw form fields. Redesig, Assemble a validated :class:`EquipmentConfig` from raw form fields. Redesig, _equipment_kwargs(), Unit tests for the frontend-polish helpers. Covers the pure logic behind the th (+9 more)
### Community 195 - "Community 195"
Cohesion: 0.12
-Nodes (18): FileListDiff, Live file-list component for the rebuilt main window. GUI/Orchestrator Redesign, Render the centre-pane file list. Pure render function. Double-clicking a f, Render the file-list column header row (Name / Size / Modified / Status)., Render the centre-pane file list. Pure render function. Double-clicking a f, Render the centre-pane file list. Pure render function. Double-clicking a f, Render the centre-pane file list. Pure render function. Double-clicking a f, Render the centre-pane file list. Pure render function. Double-clicking a f (+10 more)
+Nodes (15): TypedDict, AuditScopeAll, AuditScopeEquipment, AuditScopeProject, _finding_sort_key(), _materialise(), _materialise_audit(), Validator engine. Backend Spec §4.4.4, §8.1, §11.7, §11.8. The engine is the si (+7 more)
### Community 196 - "Community 196"
-Cohesion: 0.11
-Nodes (19): Render the centre-pane file list (Redesign §4.3). Each row carries a right-, Render the centre-pane file list (Redesign §4.3). Each row carries a right-, Render the centre-pane file list (Redesign §4.3). Each row carries a right-, Render the centre-pane file list (Redesign §4.3). Each row carries a right-, Render the centre-pane file list (Redesign §4.3). Each row carries a right-, Render the centre-pane file list (Redesign §4.3). Each row carries a right-, Render the centre-pane file list (Redesign §4.3). Each row carries a right-, Render the centre-pane file list (Redesign §4.3). Each row carries a right- (+11 more)
+Cohesion: 0.29
+Nodes (18): Push the supplied context vars on entry and reset them on exit. Vars whose, set_run_context(), _make_handler(), _make_record(), Tests for ``exlab_wizard.logging.handlers``. Backend Spec §16.2.4 commits the e, The ``Exception`` branch in :meth:`emit` is the stdlib handler-error contrac, Construct a handler with a deterministic hostname for test paths., test_close_drains_cached_files() (+10 more)
### Community 197 - "Community 197"
-Cohesion: 0.18
-Nodes (17): Parse the operator-answerable questions out of a ``copier.yml`` body. Handl, template_questions(), build_equipment_config(), Shared assembler for an :class:`EquipmentConfig` from raw form fields. GUI/Orch, Assemble a validated :class:`EquipmentConfig` from raw form fields. Redesig, Assemble a validated :class:`EquipmentConfig` from raw form fields. Redesig, _equipment_kwargs(), Unit tests for the frontend-polish helpers. Covers the pure logic behind the th (+9 more)
+Cohesion: 0.11
+Nodes (18): 10. File-level change summary, 1. Summary, 2. Goals & non-goals, 3. Approaches considered, 4. Sample list data model (Pydantic), 5. Shared-helper refactor of `creation.py`, 6. Generation flow, 7. Safety guardrails (destructive wipe) (+10 more)
### Community 198 - "Community 198"
-Cohesion: 0.12
-Nodes (15): TypedDict, AuditScopeAll, AuditScopeEquipment, AuditScopeProject, _finding_sort_key(), _materialise(), _materialise_audit(), Validator engine. Backend Spec §4.4.4, §8.1, §11.7, §11.8. The engine is the si (+7 more)
+Cohesion: 0.11
+Nodes (18): 12.1 Template Variable Form (from `copier.yml` questions), 12.2 README Form Fields, 12.3 Required-Field Indication, 12. Widget Mappings, 13. Open Questions, 1. Purpose and Scope, 4.1 LIMS Picker Behavior, 4. New Project Wizard (+10 more)
### Community 199 - "Community 199"
Cohesion: 0.11
-Nodes (18): 10. File-level change summary, 1. Summary, 2. Goals & non-goals, 3. Approaches considered, 4. Sample list data model (Pydantic), 5. Shared-helper refactor of `creation.py`, 6. Generation flow, 7. Safety guardrails (destructive wipe) (+10 more)
+Nodes (18): 10. README Generation, 11. `.exlab-wizard` Cache Folders, 12. Orchestrator Mode (Multi-Equipment Workstations), 13. Equipment-to-Orchestrator Data Flow, 14. Open Questions, 15. Distribution and Installation, 16. Logging Architecture, 1. Purpose and Goals (+10 more)
### Community 200 - "Community 200"
Cohesion: 0.11
-Nodes (18): 10. README Generation, 11. `.exlab-wizard` Cache Folders, 12. Orchestrator Mode (Multi-Equipment Workstations), 13. Equipment-to-Orchestrator Data Flow, 14. Open Questions, 15. Distribution and Installation, 16. Logging Architecture, 1. Purpose and Goals (+10 more)
+Nodes (18): 15.1 Build Pipeline (PyInstaller), 15.2.1 Offline-machine specifics, 15.2 Code Signing Posture, 15.3.1 `ExLab-Wizard-Tray` (long-lived, autostart target), 15.3.2 `ExLab-Wizard-Window` (on-demand), 15.3.3 `ExLab-Wizard` (CLI alias / desktop-launcher target), 15.3.4 Linux fallback (no system tray), 15.3 Launcher Behavior (+10 more)
### Community 201 - "Community 201"
Cohesion: 0.11
-Nodes (18): 15.1 Build Pipeline (PyInstaller), 15.2.1 Offline-machine specifics, 15.2 Code Signing Posture, 15.3.1 `ExLab-Wizard-Tray` (long-lived, autostart target), 15.3.2 `ExLab-Wizard-Window` (on-demand), 15.3.3 `ExLab-Wizard` (CLI alias / desktop-launcher target), 15.3.4 Linux fallback (no system tray), 15.3 Launcher Behavior (+10 more)
+Nodes (18): diff_file_lists(), FileListDiff, Result of comparing two successive folder-list snapshots., Result of comparing two successive folder-list snapshots., Result of comparing two successive folder-list snapshots., Return additions / removals / modifications between two snapshots. Pure fun, Return additions / removals / modifications between two snapshots. Pure fun, Return additions / removals / modifications between two snapshots. Pure fun (+10 more)
### Community 202 - "Community 202"
-Cohesion: 0.15
-Nodes (17): _dump_env(), _emit_combined(), _flag_value(), _is_flag_value(), main(), _parse_copy_args(), Return the value following ``flag`` in ``argv`` or ``None``., Return the value following ``flag`` in ``argv`` or ``None``. (+9 more)
+Cohesion: 0.12
+Nodes (17): Live file-list component for the rebuilt main window. GUI/Orchestrator Redesign, Render the centre-pane file list. Pure render function. Double-clicking a f, Render the file-list column header row (Name / Size / Modified / Status)., Render the centre-pane file list. Pure render function. Double-clicking a f, Render the centre-pane file list. Pure render function. Double-clicking a f, Render the centre-pane file list. Pure render function. Double-clicking a f, Render the centre-pane file list. Pure render function. Double-clicking a f, Render the centre-pane file list. Pure render function. Double-clicking a f (+9 more)
### Community 203 - "Community 203"
-Cohesion: 0.11
-Nodes (18): _drive_folder_feed(), _fetch_folder_async(), Mount / rebind the per-tab FolderFeed and return current entries. Uses ``ap, FolderFeed fetch hook. Skips when the tree just walked. Runs the synchronou, FolderFeed fetch hook. Skips when the tree just walked. Runs the synchronou, FolderFeed fetch hook. Skips when the tree just walked. Runs the synchronou, Mount / rebind the per-tab FolderFeed and return current entries. Uses ``ap, Mount / rebind the per-tab FolderFeed and return current entries. Uses ``ap (+10 more)
+Cohesion: 0.15
+Nodes (17): _dump_env(), _emit_combined(), _flag_value(), _is_flag_value(), main(), _parse_copy_args(), Return the value following ``flag`` in ``argv`` or ``None``., Return the value following ``flag`` in ``argv`` or ``None``. (+9 more)
### Community 204 - "Community 204"
Cohesion: 0.11
-Nodes (18): _missing_setup_sections(), _nas_credential_missing(), _nas_remote_missing(), Return the settings sections the operator still needs to fill in. Mirrors a, Return the settings sections the operator still needs to fill in. Mirrors a, Return the settings sections the operator still needs to fill in. Mirrors a, Return the settings sections the operator still needs to fill in. Mirrors a, Return the settings sections the operator still needs to fill in. Mirrors a (+10 more)
+Nodes (18): on_operations_panel(), Return ``True`` when ``session`` belongs on the Operations panel. Frontend, _operation_counts(), _panel_sessions(), Return the (session_id, session) pairs the Operations panel shows. The §9.5, Return the (session_id, session) pairs the Operations panel shows. The §9.5, Return ``(panel_count, input_required, active)`` operation counts. ``panel_, Return ``(panel_count, input_required, active)`` operation counts. ``panel_ (+10 more)
### Community 205 - "Community 205"
-Cohesion: 0.11
-Nodes (18): Render the right Metadata / Problems pane (Redesign §4.4)., Render the right Metadata / Problems pane (Redesign §4.4)., Render the right Metadata / Problems pane (Redesign §4.4)., Render the right Metadata / Problems pane (Redesign §4.4)., Render the right Metadata / Problems pane (Redesign §4.4)., Render the right Metadata / Problems pane (Redesign §4.4)., Render the right Metadata / Problems pane (Redesign §4.4)., Render the right Metadata / Problems pane (Redesign §4.4). (+10 more)
+Cohesion: 0.15
+Nodes (16): Compute icon + tooltip + retry-counter for a sync status. The ``retry_n``/`, Compute icon + tooltip + retry-counter for a sync status. The ``retry_n``/`, Compute icon + tooltip + retry-counter for a sync status. The ``retry_n``/`, sync_status_props(), Unit tests for sync_status_icon tolerant mode (Redesign §4.5, OQ-5)., The original contract is preserved: strict (default) raises., strict=False yields neutral props (muted dash) instead of raising., strict=False accepts None (optional per-file / per-folder status). (+8 more)
### Community 206 - "Community 206"
-Cohesion: 0.18
-Nodes (15): _FakeUvicornServer, _make_runner(), Tests for :mod:`exlab_wizard.tray.server_runner`. Backend Spec §4.3.2., A custom server object missing ``should_exit`` is tolerated., Fake :class:`uvicorn.Server` that runs a tiny event loop., test_double_start_raises(), test_is_running_tracks_thread_lifecycle(), test_port_property_after_start() (+7 more)
+Cohesion: 0.12
+Nodes (17): _by_rule(), A project directory with no ``creation.json`` produces one orphan finding., A run directory with no ``creation.json`` produces one orphan finding., A project directory whose name is not a safe path segment (§3.2) produces a, A human-readable project name (spaces and all) is a safe segment., A directory name containing ```` produces a finding., An active override with matching ``problem_class`` flips ``override_active``., A tombstone-revoked override does not flip ``override_active``. (+9 more)
### Community 207 - "Community 207"
-Cohesion: 0.15
-Nodes (11): _apply_migration_defaults(), _is_future(), _merge_unknown_fields(), _payload_to_dict(), Atomic reader/writer for ``creation.json``. Backend Spec §4.4.5. All ``creation, Return True if ``expires_at`` (UTC ISO-8601) is strictly after ``now``. The, Apply §11.3 history-table defaults for fields missing on old minors. Return, Load the file as a raw ``dict`` (no Struct conversion yet). We need the (+3 more)
-
-### Community 208 - "Community 208"
Cohesion: 0.24
Nodes (16): _goto(), _open_context(), E2E flow 24: right-click context menus (Redesign §4.6 / decision 4A / §9.1). Th, An "On NAS" tombstone row has no local copy, so no Open-in-OS action. Opera, A keep-local file shows the "kept local" badge; the toggle action fires. Op, Open a NiceGUI ``ui.context_menu`` by right-clicking its anchor., Decision 3: received-equipment nodes don't expose edit / remove., Right-clicking a file-list row surfaces Open in OS / Copy path / Keep local. (+8 more)
-### Community 209 - "Community 209"
+### Community 208 - "Community 208"
Cohesion: 0.12
Nodes (8): E2E flow 09: Orchestrator staging panel + quiescence-sync trigger. Frontend Spe, test_flow_09_orchestrator(), Page object for the orchestrator staging dock. Frontend Spec §3.9., Locators for the staging dock + per-row actions., The Force-sync button on the Nth row., The Clear button on the Nth row., The View-log button on the Nth row., StagingPage
+### Community 209 - "Community 209"
+Cohesion: 0.12
+Nodes (17): _build_main_query(), _classify_node(), Compose the ``?selected=...&right_pane=...`` query string for /main. Omits, Compose the ``?selected=...&right_pane=...`` query string for /main. Omits, Compose the ``?selected=...&right_pane=...`` query string for /main. Omits, Map a selected node id to ``(kind, is_received)``. Mirrors the shape classi, Map a selected node id to ``(kind, is_received)``. Mirrors the shape classi, Map a selected node id to ``(kind, is_received)``. Mirrors the shape classi (+9 more)
+
### Community 210 - "Community 210"
Cohesion: 0.12
-Nodes (16): cache_dir(), equipment_json_path(), Map a state to the §4.9.3 next-action enum member. Returns ``None`` when th, Return the ``.exlab-wizard/`` subdirectory for a run or project root., Return the ``equipment.json`` path under an equipment directory., Return the ``readme_fields.json`` path under a run or project directory., Return the ``.exlab-wizard/`` subdirectory for a run or project root., Return ``Run_`` or ``TestRun_``. (+8 more)
+Nodes (17): _count_dir_children(), _metadata_for_project(), Count immediate child directories of ``parent`` whose names start with ``pre, Derive a project payload from the on-disk project directory. ``node_id`` is, Derive a project payload from the on-disk project directory. ``node_id`` is, Derive a project payload from the on-disk project directory. ``node_id`` is, Count immediate child directories of ``parent`` whose names start with ``pre, Count immediate child directories of ``parent`` whose names start with ``pre (+9 more)
### Community 211 - "Community 211"
-Cohesion: 0.13
-Nodes (17): FileListState, Mutable state for the file list, consumed by the renderer., Yield ``element`` and every descendant across all its slots. NiceGUI render, The row whose path matches ``selected_path`` carries the selected fill., The row whose path matches ``selected_path`` carries the selected fill., A tombstone row carries the data-tombstone attr + dim/italic decoration., A tombstone row carries the data-tombstone attr + dim/italic decoration., Selection is opt-in: with no ``on_select`` the rows wire no click handler. (+9 more)
+Cohesion: 0.12
+Nodes (14): ``validator:`` block. Content-scan tuning. Backend Spec §8.1.1, §11.8., ``validator:`` block. Content-scan tuning. Backend Spec §8.1.1, §11.8., ValidatorConfig, test_validator_config_defaults(), test_validator_content_scan_max_mib_at_least_one(), test_validator_extensions_must_start_with_dot(), test_validator_extensions_rejects_dotless_among_others(), Re-seed the config + audit-mode roots in place (no tray relaunch). Mirr (+6 more)
### Community 212 - "Community 212"
-Cohesion: 0.15
-Nodes (16): build_health_router(), _component_rollup(), HealthResponse, _lims_health(), _nas_sync_health(), _plugin_host_health(), ``GET /api/v1/health`` rollup. Backend Spec §4.6.3. Returns a component-health, Aggregate per-component statuses into the §4.6.3 top-level value. Top-level (+8 more)
+Cohesion: 0.12
+Nodes (17): Return True when ``transport`` sources its credential from the keyring. Bot, transport_requires_keyring_password(), _full_config_dict(), Build a Config from a §9-shaped dict, dump it, and compare. ``model_dump()`, Full Config dict mirroring the §9 example. Used by round-trip tests., Full Config dict mirroring the §9 example. Used by round-trip tests., Build a Config from a §9-shaped dict, dump it, and compare. ``model_dump()`, _smb_transport_dict() (+9 more)
### Community 213 - "Community 213"
-Cohesion: 0.15
-Nodes (16): is_test_run_dir(), True if ``name`` is a test-run directory., True if ``name`` is a test-run directory., _dir_mtime_iso(), _iso_to_epoch(), _parse_iso(), _path_identity(), Read-only enumeration of runs pending NAS sync. Backend Spec §13.8. The orchest (+8 more)
+Cohesion: 0.12
+Nodes (14): _detect_platform(), platform(), Per-platform autostart registration. Backend Spec §4.3.2 + §15.7. Registers ``E, Return the macOS LaunchAgent plist body. Backend Spec §15.7.1., Return the Linux systemd-user unit body. Backend Spec §15.7.1., Return the XDG ``.desktop`` autostart body. Backend Spec §15.7.1., _render_desktop_file(), _render_plist() (+6 more)
### Community 214 - "Community 214"
Cohesion: 0.12
Nodes (16): Building a distributable binary, code:bash (git clone https://github.com/exfab/ExLabWizard.git), code:bash (uv run exlab-wizard-tray # or: source .venv/bin/activate), code:bash (./scripts/build_local.sh # macOS / Linux), code:bash (uv run pytest tests/unit tests/integration # fast suite), code:yaml (nas:), Context, Documentation (+8 more)
### Community 215 - "Community 215"
-Cohesion: 0.12
-Nodes (17): 4.4.1 CreationController, 4.4.2 TemplateEngine, 4.4.3 PluginHost, 4.4.4 Validator, 4.4.5 CacheWriter, 4.4.6 NASSyncClient and LIMSClient, 4.4.7 SessionStore, 4.4 Component Contracts (+9 more)
-
-### Community 216 - "Community 216"
-Cohesion: 0.17
-Nodes (15): begin_edit(), cancel_edit(), clear_credential(), commit_edit(), credential_field(), credential_props(), CredentialState, Credential field component (Frontend Spec §7.4.1). Three resting / transient st (+7 more)
+Cohesion: 0.14
+Nodes (7): _goto(), E2E flow 22: onboarding via the new Add-Equipment wizard (Redesign decision 2)., test_flow_22_main_window_has_add_equipment_in_toolbar(), test_flow_22_welcome_to_add_equipment(), Page object for the first-launch welcome card. Frontend Spec §6.1., Page object for the welcome card shown on first launch. Frontend Spec §6.1., WelcomePage
### Community 217 - "Community 217"
-Cohesion: 0.16
-Nodes (15): excerpt_line(), FindingExcerpt, header_line(), overflow_line(), override_line(), Validation summary block (Frontend Spec §3.6.4, §11.4.1). Renders the per-run v, A single finding row used in the summary., Inputs to the summary block. (+7 more)
+Cohesion: 0.13
+Nodes (12): _goto(), E2E flow 01: First-launch onboarding. Frontend Spec §6.1 (welcome card + autost, Navigate to a NiceGUI page, tolerating a transient ERR_ABORTED. NiceGUI's c, test_flow_01_onboarding(), E2E flow 05: Browse view -- open existing project + sessions. Frontend Spec §6., E2E flow 05b: per-run sync icons in the browse tree. Verifies that the project, The ``/assets`` mount serves both SVGs as 200 OK., test_flow_05_sync_icons_render_in_tree() (+4 more)
### Community 218 - "Community 218"
-Cohesion: 0.12
-Nodes (16): _parse_argv(), Parse the tray's CLI arguments. The tray accepts: - ``--version`` -- p, No flags -> ``smoke`` is False, ``no_autostart_prompt`` is False., ``--smoke`` sets the smoke flag., ``--no-autostart-prompt`` is silently accepted (reserved)., ``--version`` sets the version flag., No flags -> both test-mode flags are False., ``--add-test-samples`` alone must be rejected via parser.error (exit 2). (+8 more)
+Cohesion: 0.17
+Nodes (15): begin_edit(), cancel_edit(), clear_credential(), commit_edit(), credential_field(), credential_props(), CredentialState, Credential field component (Frontend Spec §7.4.1). Three resting / transient st (+7 more)
### Community 219 - "Community 219"
-Cohesion: 0.2
-Nodes (15): build_settings_draft(), finalize_settings_draft(), Return the editable deep-copy draft the settings dialog mutates. ``None`` (, Return the editable deep-copy draft the settings dialog mutates. ``None`` (, Re-validate a mutated draft into a clean :class:`Config`. The dialog's two-, Re-validate a mutated draft into a clean :class:`Config`. The dialog's two-, Tests for the settings-page config binding helpers. ``render_settings_page`` it, staging_root is opt-in: a blank value finalizes cleanly (the field is option (+7 more)
+Cohesion: 0.16
+Nodes (15): excerpt_line(), FindingExcerpt, header_line(), overflow_line(), override_line(), Validation summary block (Frontend Spec §3.6.4, §11.4.1). Renders the per-run v, A single finding row used in the summary., Inputs to the summary block. (+7 more)
### Community 220 - "Community 220"
Cohesion: 0.12
-Nodes (16): 2.1.1 The `design.py` module, 2.1.2 What lives in DESIGN.md vs in this spec, 2.1.3 ExLab-Wizard typography overrides, 2.1.4 Warning-tier color (resolves OQ #3), 2.1.5 CSS styling reference rule, 2.1.6 DESIGN.md absolute constraints (binding), 2.1 Visual tokens and the design system, 2.2.1 Pattern selection rule (+8 more)
+Nodes (16): Compute the *Save all* button label, including the badge count., Compute the *Save all* button label, including the badge count., Compute the *Save all* button label, including the badge count., Return ``True`` when the sidebar should decorate ``section``., Return ``True`` when the sidebar should decorate ``section``., Return ``True`` when the sidebar should decorate ``section``., Return ``True`` when ``section`` has uncommitted edits., Return ``True`` when ``section`` has uncommitted edits. (+8 more)
### Community 221 - "Community 221"
Cohesion: 0.12
-Nodes (15): 10.1 When It Runs, 10.2 Field Sources (Merged Layers), 10.3 Field Types, 10.4 User-Added Custom Fields, 10.5 Pre-fill Behavior, 10.6 Auto-Filled System Fields, 10.7.1 Machine Query Examples, 10.7.2 Prose Body (+7 more)
+Nodes (16): 2.1.1 The `design.py` module, 2.1.2 What lives in DESIGN.md vs in this spec, 2.1.3 ExLab-Wizard typography overrides, 2.1.4 Warning-tier color (resolves OQ #3), 2.1.5 CSS styling reference rule, 2.1.6 DESIGN.md absolute constraints (binding), 2.1 Visual tokens and the design system, 2.2.1 Pattern selection rule (+8 more)
### Community 222 - "Community 222"
-Cohesion: 0.13
-Nodes (15): _client(), Build an un-init'd client for direct ``_delete_local`` calls., ``_delete_local`` keeps ``keep_local`` files, incl. a nested one., A directory holding only deleted files is pruned (deepest-first); a parent s, Build an un-init'd client for direct ``_delete_local`` calls., A directory symlink inside the run is left untouched -- its target's content, A ``keep_local`` file survives even when ``retain_cache=False``., A directory holding only deleted files is pruned (deepest-first); a parent s (+7 more)
+Cohesion: 0.12
+Nodes (15): 10.1 When It Runs, 10.2 Field Sources (Merged Layers), 10.3 Field Types, 10.4 User-Added Custom Fields, 10.5 Pre-fill Behavior, 10.6 Auto-Filled System Fields, 10.7.1 Machine Query Examples, 10.7.2 Prose Body (+7 more)
### Community 223 - "Community 223"
-Cohesion: 0.17
-Nodes (14): _load(), Contract test against vendored upstream `mcnaughtonadm/exlab` snapshots. Loads, Every required snapshot exists; guards against accidental deletion., ``GET /api/v1/me`` JSON must satisfy the ``LIMSUser`` schema., Upstream's login body is the same ``safe_user`` shape as ``/me``., ``GET /api/v1/projects`` payload must yield ``LIMSProject`` rows. Mirrors t, An empty ``data`` array must yield zero rows, not raise., ``GET /api/v1/projects/{id}`` returns one bare project object. (+6 more)
+Cohesion: 0.2
+Nodes (13): BreadcrumbSegment, Breadcrumb bar for the rebuilt main window. GUI/Orchestrator Redesign §4.1 / §4, One clickable segment in the breadcrumb bar., Decompose a tree-node id into clickable segments. Tree ids are slash-joined, Render the breadcrumb row. Pure render function. Each segment is a clickabl, render_breadcrumb(), segments_from_node_id(), Unit tests for ``ui/components/breadcrumb``. Redesign §4.7 / decision 7A. (+5 more)
### Community 224 - "Community 224"
-Cohesion: 0.22
-Nodes (13): _goto(), E2E flow 16: Add-Equipment wizard (Redesign §6). Drives the four-step wizard en, Identity step renders the ID + label inputs., Paths step renders local + NAS root inputs., Sync mode step renders the nas/stage radio., Review step renders Confirm; clicking it fires the success label., An empty wizard: Next stays disabled until the identity step is valid, then, test_flow_16_add_equipment_identity_step() (+5 more)
+Cohesion: 0.13
+Nodes (14): ``readme_fields.json`` at schema version 1.1. Spec §11.4., ReadmeFieldsJson, test_readme_fields_json_optional_fields_default_to_empty(), test_readme_fields_json_round_trip_preserves_custom_fields(), test_readme_fields_json_round_trips(), Auto-populated, non-editable system fields. Backend Spec §10.6., Renders ``README.md`` + ``readme_fields.json``. Backend Spec §10., Validate ``ctx``, write both files, return ``(readme, cache)``. The des (+6 more)
### Community 225 - "Community 225"
-Cohesion: 0.18
-Nodes (12): config_path(), free_port(), prod_app_env(), Reusable spawn/restart harness for the *production* wizard app. The e2e lifecyc, Return a free TCP port on 127.0.0.1., Build a hermetic environment for a spawned production-app process. Every OS, Where the spawned production app writes ``config.yaml``. Computed by callin, resolve_config_path() (+4 more)
+Cohesion: 0.17
+Nodes (14): _load(), Contract test against vendored upstream `mcnaughtonadm/exlab` snapshots. Loads, Every required snapshot exists; guards against accidental deletion., ``GET /api/v1/me`` JSON must satisfy the ``LIMSUser`` schema., Upstream's login body is the same ``safe_user`` shape as ``/me``., ``GET /api/v1/projects`` payload must yield ``LIMSProject`` rows. Mirrors t, An empty ``data`` array must yield zero rows, not raise., ``GET /api/v1/projects/{id}`` returns one bare project object. (+6 more)
### Community 226 - "Community 226"
-Cohesion: 0.13
-Nodes (15): _count_dir_children(), _metadata_for_project(), Derive a project payload from the on-disk project directory. ``node_id`` is, Derive a project payload from the on-disk project directory. ``node_id`` is, Derive a project payload from the on-disk project directory. ``node_id`` is, Count immediate child directories of ``parent`` whose names start with ``pre, Count immediate child directories of ``parent`` whose names start with ``pre, Derive a project payload from the on-disk project directory. ``node_id`` is (+7 more)
+Cohesion: 0.19
+Nodes (14): _goto(), E2E flow 28: Phase 4/5 polish — file selection, search, density, legend. Covers, Single-clicking a file row threads ?file=, marks the row selected, and surfa, A search query renders the result-count pill and seeds the box (OQ-2)., A query that matches nothing renders the no-matches hint (OQ-2)., The Files-header density toggle re-navigates with ?density=compact (§4.8)., The Files-header "?" opens the sync-status legend popover (Phase 5)., The selected tree node renders Quasar's selected class -- the hook the unifi (+6 more)
### Community 227 - "Community 227"
-Cohesion: 0.2
-Nodes (13): BreadcrumbSegment, Breadcrumb bar for the rebuilt main window. GUI/Orchestrator Redesign §4.1 / §4, One clickable segment in the breadcrumb bar., Decompose a tree-node id into clickable segments. Tree ids are slash-joined, Render the breadcrumb row. Pure render function. Each segment is a clickabl, render_breadcrumb(), segments_from_node_id(), Unit tests for ``ui/components/breadcrumb``. Redesign §4.7 / decision 7A. (+5 more)
+Cohesion: 0.18
+Nodes (12): config_path(), free_port(), prod_app_env(), Reusable spawn/restart harness for the *production* wizard app. The e2e lifecyc, Return a free TCP port on 127.0.0.1., Build a hermetic environment for a spawned production-app process. Every OS, Where the spawned production app writes ``config.yaml``. Computed by callin, resolve_config_path() (+4 more)
### Community 228 - "Community 228"
Cohesion: 0.14
-Nodes (14): check_illegal_filesystem_character(), Validator rule functions. Backend Spec §8.1. This module is a pure-function lib, Return one finding per placeholder match in ``text``., §8.1.2: detect Windows-illegal characters in any segment / file name. Illeg, Return one finding per illegal character / trailing-rule violation in ``name``., _scan_for_illegal_chars(), _scan_for_placeholders(), test_findings_have_hard_tier() (+6 more)
+Nodes (14): panel_props(), Test-connection result panel (Frontend Spec §7.4.2). A persistent inline panel, One result rendered in the panel., Compute the rendered props for the panel. Returns a dict suitable for asser, Build the inline result panel. Returns a NiceGUI element, or the props dict, test_connection_panel(), TestConnectionResult, _nas_test_connection() (+6 more)
### Community 229 - "Community 229"
-Cohesion: 0.22
-Nodes (14): Tombstone entry that revokes a prior override by ``id``. Spec §11.3. ``revo, ``test_runs.json`` marker at schema version 1.0. Spec §11.4.2. Filename ret, TestRunsJson, TombstoneEntry, FileSyncRecord, ``msgspec.Struct`` types for the per-run ``sync_state.json`` cache. Operator-fr, Per-file sync record stored under ``sync_state.json``'s ``files`` map. One, ``sync_state.json`` per-run sync-state record at schema version 1.0. Writte (+6 more)
+Cohesion: 0.14
+Nodes (10): assemble_equipment_config(), can_advance(), _maybe_confirm(), Add-Equipment wizard (GUI/Orchestrator Redesign §6). Three-step wizard launched, Build the final EquipmentConfig from the wizard's state. Raises a pydantic, Build the final EquipmentConfig from the wizard's state. Raises a pydantic, Build the final EquipmentConfig from the wizard's state. Raises a pydantic, Return True if the active step has the data it needs to advance. Pure funct (+2 more)
### Community 230 - "Community 230"
-Cohesion: 0.24
-Nodes (14): Code-review findings to honor (from earlier passes), code:block1 (git branch --show-current # feature/gui-imrprovemen), Committed (clean) — Phases 1–3, ⏩ CURRENT STATE (2026-05-29, session 2), Demo checkpoint (task #6, after Phase 4 verifies green), How to work (lessons from this session — important), Phase 4 remaining work (Option B — selection → metadata), Quick resume verification (run sequentially, one at a time) (+6 more)
+Cohesion: 0.13
+Nodes (15): Reusable chip / list editor bound to a draft string list (T7 / T10). Mutate, Reusable chip / list editor bound to a draft string list (T7 / T10). Mutate, Reusable chip / list editor bound to a draft string list (T7 / T10). Mutate, Render the content for a single section, bound to ``draft``. Every scalar f, Render the content for a single section, bound to ``draft``. Every scalar f, Render the content for a single section, bound to ``draft``. Every scalar f, Render the equipment list + a full add-equipment sub-form. Adding an entry, Render the equipment list + a full add-equipment sub-form. Adding an entry (+7 more)
### Community 231 - "Community 231"
-Cohesion: 0.13
-Nodes (14): 12.1 Template Variable Form (from `copier.yml` questions), 12.2 README Form Fields, 12.3 Required-Field Indication, 12. Widget Mappings, 13. Open Questions, 1. Purpose and Scope, 4.1 LIMS Picker Behavior, 4. New Project Wizard (+6 more)
+Cohesion: 0.16
+Nodes (14): Writer for ``equipment.json`` (registry) and ``test_runs.json`` (marker). Backe, Return the on-disk ``first_seen_at`` if the file exists. Returns ``None`` w, _read_equipment_sync(), _read_existing_first_seen_at(), _read_test_runs_marker_sync(), _write_equipment_sync(), _write_test_runs_marker_sync(), Read ``path`` and decode it as ``type_``, optionally gating on major. When (+6 more)
### Community 232 - "Community 232"
-Cohesion: 0.13
-Nodes (14): 5.0 Template Locations (Global and Per-Equipment), 5.1 Template Structure, 5.2 Copier Manifest (`copier.yml`), 5.3 Copier Python API Integration, 5.4 Copier Answers File (`.exlab-answers.yml`), 5.5 Plugin Pass (Post-Render, Controller-Driven), 5.6 Jinja2 Templating in File Contents, 5.7 Template Versioning (+6 more)
+Cohesion: 0.15
+Nodes (14): test_about_missing_binary_returns_not_ok(), test_parse_combined_empty_returns_empty_result(), test_parse_combined_handles_all_prefixes(), test_parse_combined_tolerates_blank_lines_and_unknown_prefix(), AboutResult, CheckResult, _parse_combined(), rclone transport driver. Backend Spec §7.1.3. Single transport binary for the N (+6 more)
### Community 233 - "Community 233"
-Cohesion: 0.18
-Nodes (10): ProdServer, Terminate the uvicorn process. Idempotent., Stop and re-spawn the process with the same HOME / port., A spawnable / restartable production-app uvicorn process. ``home`` is the r, Spawn uvicorn and block until ``/api/v1/health`` answers 200. Returns `, prod_server(), E2E flow 26: Add-Equipment wizard confirm against the PRODUCTION app. ``test_fl, Spawn the production wizard app under a fresh tmp HOME. (+2 more)
+Cohesion: 0.17
+Nodes (9): _apply_migration_defaults(), _merge_unknown_fields(), _payload_to_dict(), Atomic reader/writer for ``creation.json``. Backend Spec §4.4.5. All ``creation, Apply §11.3 history-table defaults for fields missing on old minors. Return, Load the file as a raw ``dict`` (no Struct conversion yet). We need the, Encode ``payload`` to bytes, write atomically via atomic_write_bytes. T, Recursively convert a ``CreationJson`` into a plain ``dict``. Uses :func:`m (+1 more)
### Community 234 - "Community 234"
-Cohesion: 0.18
-Nodes (13): Automated UX-interaction documentation + coverage checks. Drives :mod:`tests.e2, Every cataloged ``data-testid`` is present in the UI source., Every cataloged ``data-testid`` is driven by an e2e test. Scans the whole `, Render the catalog into the ``UX_INTERACTIONS.md`` markdown body., ``docs/UX_INTERACTIONS.md`` is regenerated from the catalog. Regenerates th, Guard against an empty catalog silently passing the other checks., Return ``True`` when ``haystack`` references ``testid``. Tolerates testids, _references() (+5 more)
+Cohesion: 0.13
+Nodes (14): 5.0 Template Locations (Global and Per-Equipment), 5.1 Template Structure, 5.2 Copier Manifest (`copier.yml`), 5.3 Copier Python API Integration, 5.4 Copier Answers File (`.exlab-answers.yml`), 5.5 Plugin Pass (Post-Render, Controller-Driven), 5.6 Jinja2 Templating in File Contents, 5.7 Template Versioning (+6 more)
### Community 235 - "Community 235"
-Cohesion: 0.15
-Nodes (14): ensure_dir(), ensure_state_dir(), os_state_path(), Return the OS-appropriate state directory. Backend Spec §15.7., ``mkdir -p`` the given path; return it. Idempotent., ``ensure_dir(os_state_path())``., test_ensure_dir_creates_missing(), test_ensure_dir_idempotent_when_exists() (+6 more)
+Cohesion: 0.24
+Nodes (14): Code-review findings to honor (from earlier passes), code:block1 (git branch --show-current # feature/gui-imrprovemen), Committed (clean) — Phases 1–3, ⏩ CURRENT STATE (2026-05-29, session 2), Demo checkpoint (task #6, after Phase 4 verifies green), How to work (lessons from this session — important), Phase 4 remaining work (Option B — selection → metadata), Quick resume verification (run sequentially, one at a time) (+6 more)
### Community 236 - "Community 236"
-Cohesion: 0.15
-Nodes (12): bind_global_shortcuts(), is_macos(), Keyboard-shortcut registry (Frontend Spec §3.7). The bindings are intentionally, Return ``True`` when running on macOS (used for combo selection)., Find the shortcut id matching the given key event, if any., Install a NiceGUI keyboard listener for the registry. NiceGUI is imported l, Identifiers for the app-level shortcut set (Frontend §3.7)., Return True if a NiceGUI ``KeyEventArguments`` matches this combo. (+4 more)
+Cohesion: 0.14
+Nodes (13): check_reserved_filesystem_name(), check_unsafe_project_name(), Validator rule functions. Backend Spec §8.1. This module is a pure-function lib, Return one finding per placeholder match in ``text``., Return one finding per illegal character / trailing-rule violation in ``name``., §8.1.2: detect Windows reserved names (``CON``, ``PRN``, ``AUX``, ``NUL``, `, §3.2: flag a project directory whose name is not a safe path segment. The p, _scan_for_illegal_chars() (+5 more)
### Community 237 - "Community 237"
-Cohesion: 0.15
-Nodes (13): panel_props(), Test-connection result panel (Frontend Spec §7.4.2). A persistent inline panel, One result rendered in the panel., Compute the rendered props for the panel. Returns a dict suitable for asser, Build the inline result panel. Returns a NiceGUI element, or the props dict, test_connection_panel(), TestConnectionResult, _nas_test_connection() (+5 more)
+Cohesion: 0.18
+Nodes (13): Automated UX-interaction documentation + coverage checks. Drives :mod:`tests.e2, Every cataloged ``data-testid`` is present in the UI source., Every cataloged ``data-testid`` is driven by an e2e test. Scans the whole `, Render the catalog into the ``UX_INTERACTIONS.md`` markdown body., ``docs/UX_INTERACTIONS.md`` is regenerated from the catalog. Regenerates th, Guard against an empty catalog silently passing the other checks., Return ``True`` when ``haystack`` references ``testid``. Tolerates testids, _references() (+5 more)
### Community 238 - "Community 238"
-Cohesion: 0.19
-Nodes (13): bandwidth_schedule_editor(), BandwidthSchedule, find_overlaps(), Bandwidth schedule editor (Frontend Spec §7.7.3). Lives inside the Equipment Ad, Build the schedule editor., One row in the schedule table., The full editor state., Return an error string if ``window`` is invalid, else ``None``. Time string (+5 more)
+Cohesion: 0.15
+Nodes (14): ensure_central_log_dir(), ensure_dir(), os_central_log_path(), Return the OS-appropriate central log file. Backend Spec §16.3., ``mkdir -p`` the given path; return it. Idempotent., ``ensure_dir(os_central_log_path().parent)``., test_ensure_central_log_dir_creates_parent(), test_ensure_dir_creates_missing() (+6 more)
### Community 239 - "Community 239"
-Cohesion: 0.14
-Nodes (14): code:bash (git add src/exlab_wizard/sync/transports/rclone.py tests/uni), code:python (# tests/unit/sync/test_transports.py — add), code:python (async def lsjson(self, remote: str, *, recursive: bool = Tru), code:bash (git add src/exlab_wizard/sync/transports/rclone.py tests/uni), code:python (# tests/unit/sync/test_transports.py — add), code:python (async def listremotes(self) -> tuple[str, ...]:), code:bash (git add src/exlab_wizard/sync/transports/rclone.py tests/uni), code:python (# tests/unit/sync/test_transports.py — add) (+6 more)
+Cohesion: 0.15
+Nodes (13): main(), Standalone sample-data seeder -- ``python -m exlab_wizard.dev.seed``. Forces th, Regenerate the ``-test`` sample-data tree from scratch. Returns the process, ensure_state_dir(), os_state_path(), Return the OS-appropriate state directory. Backend Spec §15.7., ``ensure_dir(os_state_path())``., test_ensure_state_dir_creates_state_dir() (+5 more)
### Community 240 - "Community 240"
-Cohesion: 0.14
-Nodes (14): code:python (# tests/unit/sync/test_transports.py — add (verifier is smal), code:bash (git add src/exlab_wizard/sync/verifier.py tests/unit/sync/te), code:python (# tests/unit/sync/test_nas_client.py — add), code:python (lsjson = self._build_lsjson(equipment)), code:bash (git add src/exlab_wizard/sync/nas_client.py tests/unit/sync/), code:python (# tests/unit/sync/test_nas_client.py — add), code:python (# Integrity gate: never delete local bytes that have not bee), code:bash (git add src/exlab_wizard/sync/nas_client.py tests/unit/sync/) (+6 more)
+Cohesion: 0.15
+Nodes (12): bind_global_shortcuts(), is_macos(), Keyboard-shortcut registry (Frontend Spec §3.7). The bindings are intentionally, Return ``True`` when running on macOS (used for combo selection)., Find the shortcut id matching the given key event, if any., Install a NiceGUI keyboard listener for the registry. NiceGUI is imported l, Identifiers for the app-level shortcut set (Frontend §3.7)., Return True if a NiceGUI ``KeyEventArguments`` matches this combo. (+4 more)
### Community 241 - "Community 241"
-Cohesion: 0.14
-Nodes (13): 13.1 Topology, 13.2 Staging Area Layout, 13.3 Run Lifecycle States, 13.4 `ingest.json` Schema, 13.5 Run Completeness Signal, 13.6 Transport Handling, 13.7 Staging Cleanup, 13.8 Staging State Query (Backend Contract) (+5 more)
+Cohesion: 0.19
+Nodes (13): bandwidth_schedule_editor(), BandwidthSchedule, find_overlaps(), Bandwidth schedule editor (Frontend Spec §7.7.3). Lives inside the Equipment Ad, Build the schedule editor., One row in the schedule table., The full editor state., Return an error string if ``window`` is invalid, else ``None``. Time string (+5 more)
### Community 242 - "Community 242"
-Cohesion: 0.14
-Nodes (13): A run dir without a creation.json yields {path, name}, not crash., A run dir without a creation.json yields {path, name}, not crash., A run dir without a creation.json yields {path, name}, not crash., A run dir without a creation.json yields {path, name}, not crash., A run dir without a creation.json yields {path, name}, not crash., A schema_version mismatch (read_catalogue -> None) yields ``[]``., A schema_version mismatch (read_catalogue -> None) yields ``[]``., A schema_version mismatch (read_catalogue -> None) yields ``[]``. (+5 more)
+Cohesion: 0.24
+Nodes (13): Unit tests for the Add-Equipment wizard. Redesign §6., The sync-mode step is hidden (orchestrator/staging hidden — see docs/superpo, _state_filled_for(), test_assemble_rejects_invalid_input(), test_assemble_round_trips_to_valid_equipment_config_nas(), test_assemble_round_trips_to_valid_equipment_config_stage(), test_can_advance_paths_requires_both_roots(), test_can_advance_sync_mode_nas_needs_no_transport_fields() (+5 more)
### Community 243 - "Community 243"
-Cohesion: 0.15
-Nodes (13): No controller -> a negative toast and no dialog open., No controller -> a negative toast and no dialog open., An async probe is awaited before its dict is mapped., A wired controller builds the modal and opens it (no raise)., No controller -> a negative toast and no dialog open., A wired controller builds the modal and opens it (no raise)., No controller -> a negative toast and no dialog open., No controller -> a negative toast and no dialog open. (+5 more)
+Cohesion: 0.14
+Nodes (14): code:bash (git add src/exlab_wizard/sync/transports/rclone.py tests/uni), code:python (# tests/unit/sync/test_transports.py — add), code:python (async def lsjson(self, remote: str, *, recursive: bool = Tru), code:bash (git add src/exlab_wizard/sync/transports/rclone.py tests/uni), code:python (# tests/unit/sync/test_transports.py — add), code:python (async def listremotes(self) -> tuple[str, ...]:), code:bash (git add src/exlab_wizard/sync/transports/rclone.py tests/uni), code:python (# tests/unit/sync/test_transports.py — add) (+6 more)
### Community 244 - "Community 244"
-Cohesion: 0.19
-Nodes (10): _goto(), E2E flow 01: First-launch onboarding. Frontend Spec §6.1 (welcome card + autost, Navigate to a NiceGUI page, tolerating a transient ERR_ABORTED. NiceGUI's c, test_flow_01_onboarding(), _goto(), E2E flow 22: onboarding via the new Add-Equipment wizard (Redesign decision 2)., test_flow_22_main_window_has_add_equipment_in_toolbar(), test_flow_22_welcome_to_add_equipment() (+2 more)
+Cohesion: 0.14
+Nodes (14): code:python (# tests/unit/sync/test_transports.py — add (verifier is smal), code:bash (git add src/exlab_wizard/sync/verifier.py tests/unit/sync/te), code:python (# tests/unit/sync/test_nas_client.py — add), code:python (lsjson = self._build_lsjson(equipment)), code:bash (git add src/exlab_wizard/sync/nas_client.py tests/unit/sync/), code:python (# tests/unit/sync/test_nas_client.py — add), code:python (# Integrity gate: never delete local bytes that have not bee), code:bash (git add src/exlab_wizard/sync/nas_client.py tests/unit/sync/) (+6 more)
### Community 245 - "Community 245"
-Cohesion: 0.19
-Nodes (12): from_session(), operation_columns(), OperationRow, operations_modal(), In-flight operations panel (Frontend Spec §9.5). A modal reachable from the Syn, Map an operation state to its NiceGUI icon name., Build the operations modal., A single row in the operations panel. (+4 more)
+Cohesion: 0.14
+Nodes (14): 4.4.1 CreationController, 4.4.2 TemplateEngine, 4.4.3 PluginHost, 4.4.4 Validator, 4.4.5 CacheWriter, 4.4.7 SessionStore, 4.4 Component Contracts, code:python (class SessionStore:) (+6 more)
### Community 246 - "Community 246"
-Cohesion: 0.17
-Nodes (10): clear_run_dir(), Operator-facing staging-clear helper. Backend Spec §13.7. The operator-free per, Delete a staged run's data files; return ``(file_count, bytes_freed)``. Ide, Delete ``run_path`` data files honoring ``retain_cache`` and ``keep_local``., Delete ``run_path`` data files honoring ``retain_cache`` and ``keep_local``., delete_run_files(), _prune_empty_dirs(), Keep-local-aware, symlink-safe deletion of a run's staging copy. Operator-free (+2 more)
+Cohesion: 0.14
+Nodes (13): 13.1 Topology, 13.2 Staging Area Layout, 13.3 Run Lifecycle States, 13.4 `ingest.json` Schema, 13.5 Run Completeness Signal, 13.6 Transport Handling, 13.7 Staging Cleanup, 13.8 Staging State Query (Backend Contract) (+5 more)
### Community 247 - "Community 247"
-Cohesion: 0.15
-Nodes (13): code:python (# tests/unit/constants/test_enums.py — add), code:bash (git add src/exlab_wizard/constants/enums.py tests/unit/const), code:python (# tests/unit/test_paths.py — add), code:python (def _nas_in_use(config: Config) -> bool:), code:python (remote_lookup = nas_remote_available if nas_remote_available), code:python (def _missing_nas_fields(config: Config | None) -> list[dict[), code:bash (git add src/exlab_wizard/paths.py tests/unit/test_paths.py), code:python (nas_remote_available: Callable[[str], bool] = field(default=) (+5 more)
+Cohesion: 0.19
+Nodes (12): from_session(), operation_columns(), OperationRow, operations_modal(), In-flight operations panel (Frontend Spec §9.5). A modal reachable from the Syn, Map an operation state to its NiceGUI icon name., Build the operations modal., A single row in the operations panel. (+4 more)
### Community 248 - "Community 248"
-Cohesion: 0.15
-Nodes (12): 6.0 Where Plugins Sit in the Pipeline, 6.10 Test / Debug CLI: `exlab-wizard plugins exec`, 6.4.1 Suspend / resume flow, 6.4.2 Resume contract (what the plugin author must guarantee), 6.4 Plugin Input Escalation (`PluginInputRequired`), 6.7 Example Plugins (Illustrative Catalog), 6.8 Plugin Authoring Checklist, 6.9 Lint CLI: `exlab-wizard plugins lint` (+4 more)
+Cohesion: 0.19
+Nodes (12): _nas_mode_equipment(), _password_requiring_nas_equipment(), Settings dialog (Frontend Spec §7). Two-pane modal with a left vertical-nav and, Return nas-mode equipment whose transport sources a keyring password. Share, Return the nas-mode equipment for ``config``. Drives the NAS-remote section, Return the nas-mode equipment for ``config``. Drives the NAS-remote section, Return the visible section ids for ``config``. The NAS-remote section is in, Return the visible section ids for ``config``. The NAS-remote section is in (+4 more)
### Community 249 - "Community 249"
+Cohesion: 0.15
+Nodes (13): code:python (# tests/unit/constants/test_enums.py — add), code:bash (git add src/exlab_wizard/constants/enums.py tests/unit/const), code:python (# tests/unit/test_paths.py — add), code:python (def _nas_in_use(config: Config) -> bool:), code:python (remote_lookup = nas_remote_available if nas_remote_available), code:python (def _missing_nas_fields(config: Config | None) -> list[dict[), code:bash (git add src/exlab_wizard/paths.py tests/unit/test_paths.py), code:python (nas_remote_available: Callable[[str], bool] = field(default=) (+5 more)
+
+### Community 250 - "Community 250"
Cohesion: 0.38
Nodes (12): _config_with(), _nas_equipment(), Tests for the Settings NAS-credentials section (rclone-only migration). The sec, _stage_equipment(), test_handlers_factory_called_per_equipment_id(), test_present_password_opens_set_state_with_clear_action(), test_section_nav_entry_absent_for_stage_only_config(), test_section_nav_entry_present_when_password_equipment_exists() (+4 more)
-### Community 250 - "Community 250"
+### Community 251 - "Community 251"
Cohesion: 0.17
-Nodes (12): config_with_equipment_appended(), Return a copy of ``config`` with ``equipment`` appended. The single place t, Return a copy of ``config`` with ``equipment`` appended. The single place t, A ``None`` config (fresh install) yields a default Config + the device., Appending keeps prior equipment and other config sections, unmutated., A device whose id already exists raises ConfigError, not a silent merge., A ``None`` config (fresh install) yields a default Config + the device., Appending keeps prior equipment and other config sections, unmutated. (+4 more)
+Nodes (11): Sync-status icon component (Frontend Spec §3.2, §10.5.1). Distinct visual state, Return the sync-status legend rows, in declaration order (Phase 5). One dic, Build a NiceGUI row containing the icon and optional retry counter., Build a NiceGUI row containing the icon and optional retry counter., Build a NiceGUI row containing the icon and optional retry counter. ``stric, Build a NiceGUI row containing the icon and optional retry counter. ``stric, Build a NiceGUI row containing the icon and optional retry counter. ``stric, sync_legend_entries() (+3 more)
-### Community 251 - "Community 251"
+### Community 252 - "Community 252"
+Cohesion: 0.17
+Nodes (12): check_mode_prefix_mismatch(), §8.1.3: detect three-way disagreement between ``run_kind``, leaf prefix, and, Redesign §3.4: experimental run leaf parented by ``Runs`` is valid., Redesign §3.4: a misplaced ``Run_*`` directly under the project (not under `, test_experimental_under_test_runs_parent_fires(), test_experimental_with_run_prefix_at_project_level_fires(), test_experimental_with_run_prefix_under_runs_parent_passes(), test_experimental_with_test_run_prefix_fires() (+4 more)
+
+### Community 253 - "Community 253"
+Cohesion: 0.24
+Nodes (11): _make_client(), Integration tests for the LIMS client + cache pair. Backend Spec §7.2. These te, A 401-then-relogin flow successfully refreshes and caches results., list_projects() fills the cache; the cache then returns the same rows., A get_project against the cache hits without a live LIMS call., When cache TTL expires, a refresh from the live API rewrites rows., test_cache_satisfies_lookup_without_network(), test_client_populates_cache() (+3 more)
+
+### Community 254 - "Community 254"
+Cohesion: 0.18
+Nodes (6): aiosqlite-backed cache for LIMS project rows. Backend Spec §7.2.4. The cache li, Insert or update every row. ``last_refreshed`` is taken from each ``LIMS, Return every cached project for ``endpoint``, optionally filtered by ``s, Return one project by uid or short_id, or None if absent., True iff the most recent ``last_refreshed`` is within ``ttl_hours`` of t, _row_to_project()
+
+### Community 255 - "Community 255"
Cohesion: 0.21
Nodes (10): Read and decode the run's ``sync_state.json``. Returns a fresh empty :c, _CacheCase, Integration tests for the cross-major-read-fails contract from §11.9.2. For eve, Walk the candidate matrix and return the first reader method we find. Each, A v2.0 file MUST be refused by every v1.x reader (§11.9.2 rule 3)., A v3.7 file is also refused; the rule isn't tied to ``2.0`` specifically., One cache-file flavour to exercise against the reader gate., _resolve_reader() (+2 more)
-### Community 252 - "Community 252"
+### Community 256 - "Community 256"
Cohesion: 0.2
Nodes (12): project_name_violations(), Return every way ``value`` fails the §3.2 project-name rule. The project fo, Validate ``value`` as a §3.2 project-folder name. Returns the input unchang, validate_project_name(), Spaces and ordinary punctuation are fine -- the name is used verbatim., Spaces and ordinary punctuation are fine -- the name is used verbatim., The §3.2 contract is 'used verbatim' -- no canonicalisation., The §3.2 contract is 'used verbatim' -- no canonicalisation. (+4 more)
-### Community 253 - "Community 253"
+### Community 257 - "Community 257"
Cohesion: 0.17
Nodes (10): A populated registry of shortcut handlers. Pages instantiate one registry,, Attach a handler. Only one handler per shortcut. Raises: Va, Invoke the handler for ``shortcut`` if registered. Returns ``True`` if, ShortcutRegistry, ``ShortcutRegistry`` dispatches the registered handler exactly once., Dispatching an unbound shortcut returns ``False`` and runs no handler., Two handlers per shortcut is forbidden., test_registry_dispatch_returns_false_when_unbound() (+2 more)
-### Community 254 - "Community 254"
+### Community 258 - "Community 258"
Cohesion: 0.2
Nodes (11): apply_frame(), compute_phase_rows(), PhaseRow, Wizard session-progress bar (Frontend Spec §10.1, §9.3). Drives a phase indicat, Build the progress bar for the Confirm & Create step. The wizard reaches in, Mutable phase/sub-progress state folded from controller WS frames. The wiza, Fold one controller WS ``frame`` into ``state`` in place. Returns ``True``, One renderable row in the session-progress component. (+3 more)
-### Community 255 - "Community 255"
+### Community 259 - "Community 259"
Cohesion: 0.2
Nodes (11): Template manager page (Frontend Spec §4 step 2, §5 step 2). Two operations the, Render one Copier question as a bound NiceGUI widget. The widget two-way bi, Render the template manager: existing-template list + create form. ``on_cre, One row in the template list. ``name`` is the template directory name (what, One Copier question parsed from a template's ``copier.yml``. ``kind`` is no, render_question_field(), render_template_manager(), TemplateQuestion (+3 more)
-### Community 256 - "Community 256"
-Cohesion: 0.24
-Nodes (11): _make_client(), Integration tests for the LIMS client + cache pair. Backend Spec §7.2. These te, A 401-then-relogin flow successfully refreshes and caches results., list_projects() fills the cache; the cache then returns the same rows., A get_project against the cache hits without a live LIMS call., When cache TTL expires, a refresh from the live API rewrites rows., test_cache_satisfies_lookup_without_network(), test_client_populates_cache() (+3 more)
-
-### Community 257 - "Community 257"
-Cohesion: 0.18
-Nodes (6): aiosqlite-backed cache for LIMS project rows. Backend Spec §7.2.4. The cache li, Insert or update every row. ``last_refreshed`` is taken from each ``LIMS, Return every cached project for ``endpoint``, optionally filtered by ``s, Return one project by uid or short_id, or None if absent., True iff the most recent ``last_refreshed`` is within ``ttl_hours`` of t, _row_to_project()
+### Community 260 - "Community 260"
+Cohesion: 0.17
+Nodes (12): EquipmentWizardState, Render the self-contained Add-Equipment wizard. Next / Back navigation is h, Render the self-contained Add-Equipment wizard. Next / Back navigation is h, Render the self-contained Add-Equipment wizard. Next / Back navigation is h, Mutable state for the in-flight Add-Equipment wizard., Mutable state for the in-flight Add-Equipment wizard., Mutable state for the in-flight Add-Equipment wizard., render_wizard_equipment() (+4 more)
-### Community 258 - "Community 258"
+### Community 261 - "Community 261"
Cohesion: 0.17
-Nodes (12): check_mode_prefix_mismatch(), §8.1.3: detect three-way disagreement between ``run_kind``, leaf prefix, and, Redesign §3.4: experimental run leaf parented by ``Runs`` is valid., Redesign §3.4: a misplaced ``Run_*`` directly under the project (not under `, test_experimental_under_test_runs_parent_fires(), test_experimental_with_run_prefix_at_project_level_fires(), test_experimental_with_run_prefix_under_runs_parent_passes(), test_experimental_with_test_run_prefix_fires() (+4 more)
+Nodes (12): config_with_equipment_appended(), Return a copy of ``config`` with ``equipment`` appended. The single place t, Return a copy of ``config`` with ``equipment`` appended. The single place t, A ``None`` config (fresh install) yields a default Config + the device., Appending keeps prior equipment and other config sections, unmutated., A device whose id already exists raises ConfigError, not a silent merge., A ``None`` config (fresh install) yields a default Config + the device., Appending keeps prior equipment and other config sections, unmutated. (+4 more)
-### Community 259 - "Community 259"
+### Community 262 - "Community 262"
Cohesion: 0.24
Nodes (10): atomic_write_bytes(), Atomic file writes via the §4.4.5 temp-file + ``os.replace`` recipe. This is th, Write ``data`` to ``path`` atomically. Implementation follows the §4.4.5 re, Tests for ``exlab_wizard.io.atomic_write``., test_atomic_write_calls_fsync_by_default(), test_atomic_write_cleans_up_temp_on_replace_failure(), test_atomic_write_creates_file(), test_atomic_write_leaves_no_temp_file_on_success() (+2 more)
-### Community 260 - "Community 260"
+### Community 263 - "Community 263"
Cohesion: 0.24
Nodes (10): load_or_create_storage_secret(), Per-installation NiceGUI ``storage_secret`` token. Backend Spec §15.3. NiceGUI', Return the per-installation storage secret, generating it if absent. The fi, Tests for ``exlab_wizard.tray.storage_secret``. The secret backs NiceGUI's Star, test_creates_state_dir_if_missing(), test_generates_secret_on_first_call(), test_idempotent_across_calls(), test_regenerates_on_empty_file() (+2 more)
-### Community 261 - "Community 261"
-Cohesion: 0.18
-Nodes (11): lims_password_present(), nas_password_present(), nas_remote_available(), Shared FastAPI dependency helpers for the wizard's HTTP routers. The lifespan h, Return whether a LIMS password is stored -- the repo-wide reader. Every sur, Return whether ``remote`` is present in the operator's rclone.conf. rclone., Return ``deps.controller`` or raise a structured 503. Used by the routes th, Return ``deps.controller`` or raise a structured 503. Used by the routes th (+3 more)
-
-### Community 262 - "Community 262"
-Cohesion: 0.17
-Nodes (11): Add equipment, Equipment, File explorer, First-launch setup, NAS Credentials, NAS Remote, New project, New run / test run (+3 more)
-
-### Community 263 - "Community 263"
+### Community 264 - "Community 264"
Cohesion: 0.17
-Nodes (12): 3.1.1 Setup-complete definition, 3.1.2 Boot flow, 3.1.3 Welcome Card (first launch only), 3.1.4 Setup-Incomplete state on the Main Window, 3.1.5 First-launch defaults, 3.1.6 Bundled content discovery, 3.1.7 LIMS configuration: online and offline workstations, 3.1 Application Lifecycle and First-Launch State (+4 more)
+Nodes (11): Async SQLite-backed durable sync queue. Backend Spec §7.1.1. Use :meth:`ini, Open the connection, ensure the schema, and replay in-flight rows. Repl, SyncQueue, queue(), A queue rebuilt against the same db file sees the prior rows., A RUNNING row from a prior process is downgraded to QUEUED on restart., Operations without init() raise a clear RuntimeError., test_close_is_idempotent() (+3 more)
### Community 265 - "Community 265"
-Cohesion: 0.22
-Nodes (8): from_check_result(), SHA-256 verifier wrapper around ``rclone check --download``. Rclone-only NAS sy, Run ``rclone check --download`` over ``files_from`` and translate. Rais, Run ``rclone check --download`` over ``files_from`` and translate. Rais, Outcome of one ``rclone check --download`` pass against a remote. ``ok`` is, Verifier: ``rclone check`` wrapper, no Python SHA pipeline. Constructed wit, Verifier, VerifyResult
+Cohesion: 0.18
+Nodes (10): compute_next_attempt_at(), Return the ISO timestamp of the next retry attempt. ``attempts_after`` is t, Transition a job to ``new_state`` and patch the auxiliary columns. The, Record a transport failure on ``job_id``. If ``terminal`` is True (auth, The 1st through 5th attempts use the documented backoff sequence., Attempts <1 or >MAX_ATTEMPTS yield ``None``., test_compute_next_attempt_at_out_of_range(), test_compute_next_attempt_at_uses_schedule() (+2 more)
### Community 266 - "Community 266"
-Cohesion: 0.18
-Nodes (11): _lims_projects(), Return the LIMS projects backing the project wizard's picker. Tries the liv, Return the LIMS projects backing the project wizard's picker. Tries the liv, Return the LIMS projects backing the project wizard's picker. Tries the liv, Return the LIMS projects backing the project wizard's picker. Tries the liv, Return the LIMS projects backing the project wizard's picker. Tries the liv, Return the LIMS projects backing the project wizard's picker. Tries the liv, Return the LIMS projects backing the project wizard's picker. Tries the liv (+3 more)
+Cohesion: 0.17
+Nodes (11): Add equipment, Equipment, File explorer, First-launch setup, NAS Credentials, NAS Remote, New project, New run / test run (+3 more)
### Community 267 - "Community 267"
-Cohesion: 0.18
-Nodes (10): code:yaml (name: "xlsx_field_filler"), code:yaml (supported_extensions: [".xlsx"] # file-extension or "readm), code:yaml (required_variables:), code:yaml (isolation:), Discovery rules, Manifest Schema, Optional declaration block, Optional execution policy (+2 more)
+Cohesion: 0.17
+Nodes (12): 3.1.1 Setup-complete definition, 3.1.2 Boot flow, 3.1.3 Welcome Card (first launch only), 3.1.4 Setup-Incomplete state on the Main Window, 3.1.5 First-launch defaults, 3.1.6 Bundled content discovery, 3.1.7 LIMS configuration: online and offline workstations, 3.1 Application Lifecycle and First-Launch State (+4 more)
### Community 268 - "Community 268"
-Cohesion: 0.27
-Nodes (9): collect_default_values(), _field_id(), input_required_dialog(), Plugin ``INPUT_REQUIRED`` escalation dialog (Frontend Spec §9.1). When a plugin, Return the field's identifier (``id``, falling back to ``key``)., Seed an answers dict from each field's declared default. Booleans default t, Build the §9.1 "Additional input required" dialog. Renders one widget per f, test_collect_default_values_seeds_from_declared_defaults() (+1 more)
-
-### Community 269 - "Community 269"
Cohesion: 0.2
-Nodes (10): A subprocess failure is caught and surfaces False so the caller can toast., A subprocess failure is caught and surfaces False so the caller can toast., A subprocess failure is caught and surfaces False so the caller can toast., Empty path or a path matching no current entry resolves to None., Empty path or a path matching no current entry resolves to None., A subprocess failure is caught and surfaces False so the caller can toast., A subprocess failure is caught and surfaces False so the caller can toast., A subprocess failure is caught and surfaces False so the caller can toast. (+2 more)
+Nodes (10): _deep_merge(), dump_config(), config.yaml round-trip loader. Backend Spec §9. Uses ruamel.yaml in round-trip, In-place deep-merge source into target. Used by save_config to overlay new, Serialize config to a YAML string. No comment preservation; tests use this., Return True when the env var :data:`TEST_MODE_ENV` is truthy. Centralized h, Build a configured ruamel.yaml instance. typ='rt' is round-trip mode (prese, _test_mode_enabled() (+2 more)
### Community 270 - "Community 270"
-Cohesion: 0.2
-Nodes (10): An entry with no path triggers the early-return toast., An entry with no path triggers the early-return toast., An entry with no path triggers the early-return toast., A force-refresh writes the fresh scan onto the per-tab feed payload and reco, A force-refresh writes the fresh scan onto the per-tab feed payload., An entry with no path triggers the early-return toast., An entry with no path triggers the early-return toast., An entry with no path triggers the early-return toast. (+2 more)
+Cohesion: 0.24
+Nodes (8): ProdServer, Terminate the uvicorn process. Idempotent., Stop and re-spawn the process with the same HOME / port., A spawnable / restartable production-app uvicorn process. ``home`` is the r, Spawn uvicorn and block until ``/api/v1/health`` answers 200. Returns `, prod_server(), Yield a started :class:`ProdServer` rooted at a fresh tmp HOME. The keyring, Yield a started :class:`ProdServer` rooted at a fresh tmp HOME. The keyring
### Community 271 - "Community 271"
-Cohesion: 0.2
-Nodes (10): LoggingConfig, ``logging:`` block. Central app-log rotation + level., ``logging:`` block. Central app-log rotation + level., test_logging_central_log_keep_at_least_one(), test_logging_central_log_max_mb_at_least_one(), test_logging_level_accepts_all_canonical_values(), test_logging_level_normalized_to_uppercase(), test_logging_level_rejects_non_string_directly() (+2 more)
+Cohesion: 0.18
+Nodes (3): fake_winreg(), _FakeKey, _FakeWinreg
### Community 272 - "Community 272"
-Cohesion: 0.2
-Nodes (7): _compute_nas_path(), Return the equipment id for a run path. Prefers an explicit equipment i, Return the equipment id for a run path. Prefers an explicit equipment i, Mutate ``creation.json`` ``sync_status`` to ``blocked_by_validation``., Mutate ``creation.json`` ``sync_status`` to ``blocked_by_validation``., Pre-Sync Gate -> if hard-tier finding without override, mark ``sync_stat, Pre-Sync Gate -> if hard-tier finding without override, mark ``sync_stat
+Cohesion: 0.22
+Nodes (5): Close the underlying connection (idempotent)., Return the row whose ``run_path`` matches, or ``None``., Return every row currently in ``state`` ordered by ``enqueued_at``., Return every row in the queue ordered by ``enqueued_at``., Remove a job row entirely. Used by the cleanup reaper after CLEANED.
### Community 273 - "Community 273"
-Cohesion: 0.2
-Nodes (9): corrupt_one_check_factory(), missing_one_lsjson_factory(), Shared helpers for ``tests/unit/sync/`` test modules. Kept under a leading-unde, lsjson factory whose closure omits ``missing_rel`` from the manifest. Every, Check factory whose closure flags ``corrupt_rel`` as ``differ``. Every othe, Read run-relative paths from a ``--files-from`` tempfile., Read run-relative paths from a ``--files-from`` tempfile., Check factory whose closure flags ``corrupt_rel`` as ``differ``. Every othe (+1 more)
+Cohesion: 0.18
+Nodes (10): code:yaml (name: "xlsx_field_filler"), code:yaml (supported_extensions: [".xlsx"] # file-extension or "readm), code:yaml (required_variables:), code:yaml (isolation:), Discovery rules, Manifest Schema, Optional declaration block, Optional execution policy (+2 more)
### Community 274 - "Community 274"
-Cohesion: 0.22
-Nodes (10): ensure_central_log_dir(), os_central_log_path(), Return the OS-appropriate central log file. Backend Spec §16.3., ``ensure_dir(os_central_log_path().parent)``., test_ensure_central_log_dir_creates_parent(), test_os_central_log_path_linux_with_xdg(), test_os_central_log_path_linux_without_xdg(), test_os_central_log_path_macos() (+2 more)
+Cohesion: 0.18
+Nodes (10): 1. What has shipped (committed on the branch), 2. Divergences from the approved design spec (must be reconciled), A. Spec reconciliation ✅ DONE, B. Phase 5 — Polish (reconcile each item with the popover), C. Phase 6 — e2e + final verification ✅ DONE (`e72cd73`), D. Cleanup / tech-debt, E. Risks & open questions, F. Deferred / out of scope (from design spec §11) (+2 more)
### Community 275 - "Community 275"
-Cohesion: 0.2
-Nodes (9): Unit tests for :mod:`exlab_wizard.ui.keyboard`. The registry is intentionally s, Resolver returns the right shortcut id on non-darwin., Unknown combos resolve to ``None``., ``KeyCombo.matches`` is exact-match across modifiers and key., ``Cmd+R`` / ``Ctrl+R``., test_keycombo_matches_returns_true_for_same_modifiers(), test_refresh_tree_combo(), test_resolve_finds_known_combo_on_linux() (+1 more)
+Cohesion: 0.27
+Nodes (9): collect_default_values(), _field_id(), input_required_dialog(), Plugin ``INPUT_REQUIRED`` escalation dialog (Frontend Spec §9.1). When a plugin, Return the field's identifier (``id``, falling back to ``key``)., Seed an answers dict from each field's declared default. Booleans default t, Build the §9.1 "Additional input required" dialog. Renders one widget per f, test_collect_default_values_seeds_from_declared_defaults() (+1 more)
### Community 276 - "Community 276"
Cohesion: 0.2
@@ -1750,658 +1774,822 @@ Nodes (10): check_missing_required_field(), _lookup_field_value(), §8.1.5: dete
### Community 277 - "Community 277"
Cohesion: 0.2
-Nodes (10): 05 -- Components, Alerts & Callouts, Badges, Buttons, code:css (.progress-track {), code:css (/* Track */), Data Tables, Form Inputs (+2 more)
+Nodes (6): Plugin, test_plugin_abc_cannot_be_instantiated_directly(), Failure fixture: plugin that hangs in ``transform`` past its timeout., timeout_plugin -- exercises Backend Spec §6.3.4 timeout enforcement. The plugin, Hang past the declared timeout. Never reaches its file write., TimeoutPlugin
### Community 278 - "Community 278"
-Cohesion: 0.2
-Nodes (9): Adding a new flow, code:block1 (pip install -e .[test]), code:block2 (pytest tests/e2e -q # full suite (headless), E2E test suite, Page objects, Run, Setup, Status of the 15-flow merged plan (+1 more)
+Cohesion: 0.42
+Nodes (8): _make_project_request(), Unit tests for the ``/operations`` router., _ready_config(), _StubController, test_get_operations_503_when_controller_missing(), test_get_operations_emits_plugin_name_when_input_required(), test_get_operations_excludes_done_and_aborted(), test_get_operations_lists_in_flight_sessions()
### Community 279 - "Community 279"
Cohesion: 0.2
-Nodes (10): 10.1 Progress, 10.2 Errors, 10.3 Success Summary, 10.4 Sync-Blocked Banner, 10.5.1 NAS sync failure recovery, 10.5.2 LIMS unreachability mid-wizard, 10.5.3 Crash and orphan recovery, 10.5.4 Pre-flight checks before creation (+2 more)
+Nodes (9): Unit tests for :mod:`exlab_wizard.ui.keyboard`. The registry is intentionally s, Resolver returns the right shortcut id on non-darwin., Unknown combos resolve to ``None``., ``KeyCombo.matches`` is exact-match across modifiers and key., ``Cmd+R`` / ``Ctrl+R``., test_keycombo_matches_returns_true_for_same_modifiers(), test_refresh_tree_combo(), test_resolve_finds_known_combo_on_linux() (+1 more)
### Community 280 - "Community 280"
-Cohesion: 0.2
-Nodes (10): 6.1.1 Package layout, 6.1.2 `manifest.yml` schema, 6.1.3 The `Plugin` base class, 6.1.4 The `PluginContext` object, 6.1.5 What plugins must not touch, 6.1 Plugin Contract, code:block2 (/), code:yaml (# Required identity fields) (+2 more)
+Cohesion: 0.29
+Nodes (9): _build_creation_json_dict(), _build_fixture_tree(), Integration test: ``Validator.audit`` is byte-deterministic across runs. Backen, Spec §11.8 determinism: two ``audit`` calls produce identical findings. The, ``audit`` and ``query_problems`` produce byte-identical outputs. This is th, Construct a tree with several findings in stable on-disk shape. The tree co, test_audit_byte_identical_with_query_problems_alias(), test_audit_two_calls_return_byte_identical_finding_lists() (+1 more)
### Community 281 - "Community 281"
Cohesion: 0.2
-Nodes (10): 6.5.1 Directory, 6.5.2 `__init__.py`, 6.5.3 `manifest.yml`, 6.5.4 `plugin.py`, 6.5.5 `README.md`, 6.5 Base Plugin Scaffold (`hello_plugin`), code:block10 (hello_plugin/), code:python ("""hello_plugin -- minimal example plugin for ExLab-Wizard.) (+2 more)
+Nodes (10): 05 -- Components, Alerts & Callouts, Badges, Buttons, code:css (.progress-track {), code:css (/* Track */), Data Tables, Form Inputs (+2 more)
### Community 282 - "Community 282"
Cohesion: 0.2
-Nodes (9): 4.1 Deployment Model, 4.2 Process Model, 4.5 Async / Threading Model, 4.7.1 SessionState → Phase mapping, 4.7 Creation-Session State Machine, 4.8 Crash Recovery, 4. Backend Architecture, code:block1 (┌───────────────────────────────────────────────────────────) (+1 more)
+Nodes (9): Adding a new flow, code:block1 (pip install -e .[test]), code:block2 (pytest tests/e2e -q # full suite (headless), E2E test suite, Page objects, Run, Setup, Status of the 15-flow merged plan (+1 more)
+
+### Community 283 - "Community 283"
+Cohesion: 0.2
+Nodes (10): 10.1 Progress, 10.2 Errors, 10.3 Success Summary, 10.4 Sync-Blocked Banner, 10.5.1 NAS sync failure recovery, 10.5.2 LIMS unreachability mid-wizard, 10.5.3 Crash and orphan recovery, 10.5.4 Pre-flight checks before creation (+2 more)
### Community 284 - "Community 284"
-Cohesion: 0.5
-Nodes (8): _make_project_request(), Unit tests for the ``/operations`` router., _ready_config(), _StubController, test_get_operations_503_when_controller_missing(), test_get_operations_emits_plugin_name_when_input_required(), test_get_operations_excludes_done_and_aborted(), test_get_operations_lists_in_flight_sessions()
+Cohesion: 0.2
+Nodes (10): 6.1.1 Package layout, 6.1.2 `manifest.yml` schema, 6.1.3 The `Plugin` base class, 6.1.4 The `PluginContext` object, 6.1.5 What plugins must not touch, 6.1 Plugin Contract, code:block2 (/), code:yaml (# Required identity fields) (+2 more)
### Community 285 - "Community 285"
-Cohesion: 0.31
-Nodes (8): _build_minimal_payload(), Integration test: concurrent ``creation.json`` writers serialize correctly. Spe, An interleaved write must never produce a half-written file. The ``os.replac, Run 10 ``update_creation_atomic`` calls concurrently against the same file., The writer pins ``schema_version`` to the current version on every write. Co, test_concurrent_mutations_keep_file_valid_json(), test_concurrent_mutations_keep_schema_at_current_version(), test_ten_concurrent_mutations_all_land()
+Cohesion: 0.2
+Nodes (10): 6.5.1 Directory, 6.5.2 `__init__.py`, 6.5.3 `manifest.yml`, 6.5.4 `plugin.py`, 6.5.5 `README.md`, 6.5 Base Plugin Scaffold (`hello_plugin`), code:block10 (hello_plugin/), code:python ("""hello_plugin -- minimal example plugin for ExLab-Wizard.) (+2 more)
### Community 286 - "Community 286"
-Cohesion: 0.22
-Nodes (6): Open the queue and start the worker task. Backend Spec §7.1.2., Open the queue and start the worker task. Backend Spec §7.1.2., Pick the next due job and drive it through the state machine., Return the next QUEUED row whose backoff has passed (or None)., Pick the next due job and drive it through the state machine., Return the next QUEUED row whose backoff has passed (or None).
+Cohesion: 0.2
+Nodes (9): 6.0 Where Plugins Sit in the Pipeline, 6.10 Test / Debug CLI: `exlab-wizard plugins exec`, 6.7 Example Plugins (Illustrative Catalog), 6.8 Plugin Authoring Checklist, 6.9 Lint CLI: `exlab-wizard plugins lint`, 6. Plugin System, code:block1 (┌───────────────────────────────────────────────────────────), code:block16 (exlab-wizard plugins lint ) (+1 more)
### Community 287 - "Community 287"
-Cohesion: 0.31
-Nodes (8): _install_stub_rclone(), nas_prod_server(), E2E flow 27: NAS Remote setup gate + Settings section (rclone.conf migration)., Spawn the production wizard seeded with a credential-less nas equipment. Yi, Spawn the production wizard seeded with a credential-less nas equipment. Yi, _setup_state(), test_nas_credential_gate_set_test_and_clear(), test_nas_remote_gate_configure_and_test()
+Cohesion: 0.2
+Nodes (9): 4.1 Deployment Model, 4.2 Process Model, 4.5 Async / Threading Model, 4.7.1 SessionState → Phase mapping, 4.7 Creation-Session State Machine, 4.8 Crash Recovery, 4. Backend Architecture, code:block1 (┌───────────────────────────────────────────────────────────) (+1 more)
### Community 288 - "Community 288"
-Cohesion: 0.25
-Nodes (8): build_operations_router(), OperationEntry, OperationsResponse, ``/operations`` router. Backend Spec §4.6.1, Frontend §9.5. Lists all in-flight, One row in the Operations panel. Backend Spec §4.6.1, Frontend §9.5., ``GET /operations`` response., Construct the ``/operations`` router., _session_to_entry()
-
-### Community 289 - "Community 289"
-Cohesion: 0.22
-Nodes (9): Reusable chip / list editor bound to a draft string list (T7 / T10). Mutate, Reusable chip / list editor bound to a draft string list (T7 / T10). Mutate, Render the content for a single section, bound to ``draft``. Every scalar f, Render the content for a single section, bound to ``draft``. Every scalar f, Render the equipment list + a full add-equipment sub-form. Adding an entry, Render the equipment list + a full add-equipment sub-form. Adding an entry, _render_chip_editor(), _render_equipment_section() (+1 more)
+Cohesion: 0.39
+Nodes (8): _by_testid(), Unit tests for the shared empty-state placeholder (Phase 5). The helper renders, The placeholder keeps the caller's testid (once) and shows the hint., The icon name reaches the rendered icon element., test_empty_state_carries_testid_and_message(), test_empty_state_renders_the_icon(), _texts(), _walk()
### Community 290 - "Community 290"
-Cohesion: 0.22
-Nodes (9): _nas_mode_equipment(), _password_requiring_nas_equipment(), Return nas-mode equipment whose transport sources a keyring password. Share, Return the nas-mode equipment for ``config``. Drives the NAS-remote section, Return the visible section ids for ``config``. The NAS-remote section is in, Return the visible section ids for ``config``. The NAS-credentials section, Render one keyring-credential row + Test-connection panel per equipment. Rc, _render_nas_credentials_section() (+1 more)
+Cohesion: 0.25
+Nodes (8): build_operations_router(), OperationEntry, OperationsResponse, ``/operations`` router. Backend Spec §4.6.1, Frontend §9.5. Lists all in-flight, One row in the Operations panel. Backend Spec §4.6.1, Frontend §9.5., ``GET /operations`` response., Construct the ``/operations`` router., _session_to_entry()
### Community 291 - "Community 291"
-Cohesion: 0.22
-Nodes (8): 3.6 Configure Equipment, Paths, and Integrations, Add Equipment wizard, Capability summary, code:{image} (:alt: Settings dialog with the Paths section active), code:{image} (:alt: Add-Equipment wizard, identity step), Related material, Screenshots, Walkthrough
+Cohesion: 0.31
+Nodes (8): _install_stub_rclone(), nas_prod_server(), E2E flow 27: NAS Remote setup gate + Settings section (rclone.conf migration)., Spawn the production wizard seeded with a credential-less nas equipment. Yi, Spawn the production wizard seeded with a credential-less nas equipment. Yi, _setup_state(), test_nas_credential_gate_set_test_and_clear(), test_nas_remote_gate_configure_and_test()
### Community 292 - "Community 292"
Cohesion: 0.22
-Nodes (9): code:python (# tests/unit/config/test_models.py — add), code:python (class RclonePerf(BaseModel):), code:python (nas: NasConfig = Field(default_factory=NasConfig)), code:bash (git add src/exlab_wizard/config/models.py tests/unit/config/), code:python (# tests/unit/config/test_loader.py — add), code:bash (git add tests/unit/config/test_loader.py), Phase 1 — Config foundation (`nas:` block, additive), Task 1.1: Add `RclonePerf` and `NasConfig` models (+1 more)
+Nodes (9): ``sync:`` block. NAS sync engine kill-switch + retry / quiescence policy., ``sync:`` block. NAS sync engine kill-switch + retry / quiescence policy., SyncConfig, test_sync_config_accepts_custom_quiescence_settings(), test_sync_config_defaults(), test_sync_config_ignore_globs_default_is_independent_per_instance(), test_sync_config_poll_interval_seconds_at_least_one(), test_sync_config_quiescence_minutes_at_least_one() (+1 more)
### Community 293 - "Community 293"
-Cohesion: 0.22
-Nodes (9): 6.3.1 Process model, 6.3.2 IPC envelope, 6.3.3 Resource limits, 6.3.4 Failure handling, 6.3.5 Security model: what isolation does and does not solve, 6.3.6 Validation-worker subprocess (mode = `validate`), 6.3 Subprocess Isolation, code:json ({) (+1 more)
+Cohesion: 0.25
+Nodes (6): from_check_result(), SHA-256 verifier wrapper around ``rclone check --download``. Rclone-only NAS sy, Run ``rclone check --download`` over ``files_from`` and translate. Rais, Run ``rclone check --download`` over ``files_from`` and translate. Rais, Verifier: ``rclone check`` wrapper, no Python SHA pipeline. Constructed wit, Verifier
### Community 294 - "Community 294"
-Cohesion: 0.22
-Nodes (8): 8.1.1 Unresolved-placeholder rule (hard tier), 8.1.2 Illegal-filesystem-character rule (hard tier), 8.1.3 Mode-prefix mismatch rule (hard tier), 8.1.4 Orphan rule (soft tier), 8.1.5 Missing-required-field rule (soft tier), 8.1.6 Tier mapping, 8.1 Path Validation Rules, 8. Error Handling Principles
+Cohesion: 0.31
+Nodes (8): _build_minimal_payload(), Integration test: concurrent ``creation.json`` writers serialize correctly. Spe, An interleaved write must never produce a half-written file. The ``os.replac, Run 10 ``update_creation_atomic`` calls concurrently against the same file., The writer pins ``schema_version`` to the current version on every write. Co, test_concurrent_mutations_keep_file_valid_json(), test_concurrent_mutations_keep_schema_at_current_version(), test_ten_concurrent_mutations_all_land()
### Community 295 - "Community 295"
-Cohesion: 0.25
-Nodes (8): A corrupt creation.json yields {path, name}, never crashes., A corrupt creation.json yields {path, name}, never crashes., A corrupt creation.json yields {path, name}, never crashes., A corrupt creation.json yields {path, name}, never crashes., A corrupt creation.json yields {path, name}, never crashes., A corrupt creation.json yields {path, name}, never crashes., A corrupt creation.json yields {path, name}, never crashes., test_metadata_for_run_returns_partial_on_decode_failure()
+Cohesion: 0.22
+Nodes (8): 3.6 Configure Equipment, Paths, and Integrations, Add Equipment wizard, Capability summary, code:{image} (:alt: Settings dialog with the Paths section active), code:{image} (:alt: Add-Equipment wizard, identity step), Related material, Screenshots, Walkthrough
### Community 296 - "Community 296"
-Cohesion: 0.25
-Nodes (8): Only directory children whose names start with the prefix are counted., Only directory children whose names start with the prefix are counted., Only directory children whose names start with the prefix are counted., Only directory children whose names start with the prefix are counted., Only directory children whose names start with the prefix are counted., Only directory children whose names start with the prefix are counted., Only directory children whose names start with the prefix are counted., test_count_dir_children_filters_by_prefix()
+Cohesion: 0.22
+Nodes (9): code:python (# tests/unit/config/test_models.py — add), code:python (class RclonePerf(BaseModel):), code:python (nas: NasConfig = Field(default_factory=NasConfig)), code:bash (git add src/exlab_wizard/config/models.py tests/unit/config/), code:python (# tests/unit/config/test_loader.py — add), code:bash (git add tests/unit/config/test_loader.py), Phase 1 — Config foundation (`nas:` block, additive), Task 1.1: Add `RclonePerf` and `NasConfig` models (+1 more)
### Community 297 - "Community 297"
-Cohesion: 0.25
-Nodes (8): When the opener returns False the action surfaces a negative toast., When the opener returns False the action surfaces a negative toast., When the opener returns False the action surfaces a negative toast., When the opener returns False the action surfaces a negative toast., When the opener returns False the action surfaces a negative toast., When the opener returns False the action surfaces a negative toast., When the opener returns False the action surfaces a negative toast., test_file_context_action_open_in_os_failure_toasts_negative()
+Cohesion: 0.22
+Nodes (9): 6.3.1 Process model, 6.3.2 IPC envelope, 6.3.3 Resource limits, 6.3.4 Failure handling, 6.3.5 Security model: what isolation does and does not solve, 6.3.6 Validation-worker subprocess (mode = `validate`), 6.3 Subprocess Isolation, code:json ({) (+1 more)
### Community 298 - "Community 298"
-Cohesion: 0.21
-Nodes (8): Nothing selected -> no scan, no write, no raise., Nothing selected -> no scan, no write, no raise., Nothing selected -> no scan, no write, no raise., A raising keyring backend surfaces a toast, not an unhandled crash., A raising keyring backend surfaces a toast, not an unhandled crash., A raising keyring backend surfaces a toast, not an unhandled crash., test_lims_credential_handlers_swallow_backend_errors(), test_refresh_selected_folder_noop_when_path_none()
+Cohesion: 0.22
+Nodes (8): 8.1.1 Unresolved-placeholder rule (hard tier), 8.1.2 Illegal-filesystem-character rule (hard tier), 8.1.3 Mode-prefix mismatch rule (hard tier), 8.1.4 Orphan rule (soft tier), 8.1.5 Missing-required-field rule (soft tier), 8.1.6 Tier mapping, 8.1 Path Validation Rules, 8. Error Handling Principles
### Community 299 - "Community 299"
Cohesion: 0.25
-Nodes (8): macOS dispatches to the ``open`` command., macOS dispatches to the ``open`` command., macOS dispatches to the ``open`` command., macOS dispatches to the ``open`` command., macOS dispatches to the ``open`` command., macOS dispatches to the ``open`` command., macOS dispatches to the ``open`` command., test_open_in_os_darwin_invokes_open()
+Nodes (8): A one-equipment hierarchy with two runs for the search-count tests., The result pill counts project + run rows (equipment is always shown)., A query surfaces only the matching run under its project., A no-match query yields a zero count (the no-matches state) even though buil, _search_hierarchy(), test_main_count_search_results_counts_projects_and_runs(), test_main_count_search_results_narrows_with_query(), test_main_count_search_results_zero_on_no_match()
+
+### Community 300 - "Community 300"
+Cohesion: 0.25
+Nodes (8): The details dialog renders the session state plus pending/error lines., The details dialog renders the session state plus pending/error lines., The details dialog renders the session state plus pending/error lines., The details dialog renders the session state plus pending/error lines., The details dialog renders the session state plus pending/error lines., The details dialog renders the session state plus pending/error lines., The details dialog renders the session state plus pending/error lines., test_open_operation_details_renders_state_and_pending()
### Community 301 - "Community 301"
Cohesion: 0.29
-Nodes (5): _NoiseFilter, Sphinx configuration for ExLab-Wizard documentation. The configuration wires th, Drop uncategorised warnings whose message text matches a known needle. Inse, Install the noise filter at the head of the warning handler chain. Sphinx w, setup()
+Nodes (7): Token-equality tests for :mod:`exlab_wizard.ui.design`. The tests assert each c, Primary palette hexes are verbatim from DESIGN.md §01., Main-window refresh surface tokens (DESIGN.md §02 UI Chrome Palette). Sever, Okabe-Ito hexes are verbatim from DESIGN.md §01., test_okabe_ito_palette_matches_designmd(), test_primary_palette_matches_designmd(), test_ui_refresh_surface_tokens_match_designmd()
### Community 302 - "Community 302"
Cohesion: 0.25
-Nodes (8): _build_main_query(), Compose the ``?selected=...&right_pane=...`` query string for /main. Omits, Compose the ``?selected=...&right_pane=...`` query string for /main. Omits, Compose the ``?selected=...&right_pane=...`` query string for /main. Omits, Compose the ``?selected=...&right_pane=...`` query string for /main. Omits, Compose the ``?selected=...&right_pane=...`` query string for /main. Omits, Compose the ``?selected=...&right_pane=...`` query string for /main. Omits, Compose the ``?selected=...&right_pane=...`` query string for /main. Omits
+Nodes (8): check_malformed_yaml_front_matter(), §8.1: detect malformed YAML front matter at the head of a Markdown file., test_empty_content_passes(), test_front_matter_with_nested_yaml_passes(), test_malformed_yaml_in_block_fires(), test_no_front_matter_passes(), test_unterminated_front_matter_fires(), test_well_formed_front_matter_passes()
### Community 303 - "Community 303"
Cohesion: 0.25
-Nodes (8): _classify_node(), Map a selected node id to ``(kind, is_received)``. Mirrors the shape classi, Map a selected node id to ``(kind, is_received)``. Mirrors the shape classi, Map a selected node id to ``(kind, is_received)``. Mirrors the shape classi, Map a selected node id to ``(kind, is_received)``. Mirrors the shape classi, Map a selected node id to ``(kind, is_received)``. Mirrors the shape classi, Map a selected node id to ``(kind, is_received)``. Mirrors the shape classi, Map a selected node id to ``(kind, is_received)``. Mirrors the shape classi
+Nodes (4): crash_plugin -- exercises subprocess crash containment (SIGSEGV-like)., CrashPlugin, crash_plugin -- exercises subprocess crash containment. The plugin's ``transfor, Hard-exit the worker process before any file write.
### Community 304 - "Community 304"
-Cohesion: 0.32
-Nodes (7): Bottom-of-window status bar segment (Frontend Spec §3.5.5). The status bar has, Computed render spec for a status-bar segment., Compute a :class:`SegmentSpec` from a label and state. The state controls t, Build a clickable status-bar segment., segment_spec(), SegmentSpec, status_bar_segment()
+Cohesion: 0.25
+Nodes (4): policy_violation_plugin -- writes to a forbidden path (Backend Spec §6.1.5)., PolicyViolationPlugin, policy_violation_plugin -- exercises Backend Spec §6.1.5 enforcement. The plugi, Write into ``README.md`` (a wizard-controlled file).
### Community 305 - "Community 305"
-Cohesion: 0.32
-Nodes (7): banner_stack(), banner_stack_props(), _color_for_severity(), Banner stack component (Frontend Spec §2.2.3). Renders the active banners for a, Compute the visible / overflow split for a container. Returns a dict with `, Map a :class:`Severity` to its CSS variable token., Build the banner stack UI for a container.
+Cohesion: 0.25
+Nodes (4): input_required_plugin -- exercises the PluginInputRequired suspend/resume handsh, InputRequiredPlugin, input_required_plugin -- exercises Backend Spec §6.4 suspend/resume. On the fir, Demand a user-supplied ``color`` value before completing.
### Community 306 - "Community 306"
-Cohesion: 0.32
-Nodes (7): Welcome card page (Frontend Spec §3.1.3). Modal card shown exactly once on the, Render spec captured for unit-test assertions., Return the immutable spec used to render the welcome card., Render the welcome card. ``on_get_started`` and ``on_skip`` are invoked wit, render_welcome_page(), welcome_card_spec(), WelcomeCardSpec
+Cohesion: 0.25
+Nodes (4): hello_plugin -- canonical scaffold from Backend Spec §6.5. The ``Plugin`` re-ex, HelloPlugin, hello_plugin -- minimal real plugin used by the host integration suite. Backend, Append ``hello\\n`` to every ``.txt`` file the host hands us.
### Community 307 - "Community 307"
-Cohesion: 0.25
-Nodes (4): Walk a directory subtree and return all findings. Backend Spec §11.8. U, Public read-only alias for :meth:`audit`. Backend Spec §11.8. Read-only, Map an :class:`AuditScope` onto the directory roots to walk., Walk a single subtree rooted at ``root`` (depth-first). Returns a flat
+Cohesion: 0.21
+Nodes (8): The controller writes ``equipment.json`` under ``//.exlab-wiz, The controller writes ``equipment.json`` under ``//.exlab-wiz, A run inherits its LIMS identity from the parent project's creation.json (Ba, A run inherits its LIMS identity from the parent project's creation.json (Ba, A run inherits its LIMS identity from the parent project's creation.json (Ba, The controller writes ``equipment.json`` under ``//.exlab-wiz, test_run_creation_writes_equipment_json_at_root(), test_run_inherits_lims_project_block_from_parent()
### Community 308 - "Community 308"
-Cohesion: 0.25
-Nodes (4): policy_violation_plugin -- writes to a forbidden path (Backend Spec §6.1.5)., PolicyViolationPlugin, policy_violation_plugin -- exercises Backend Spec §6.1.5 enforcement. The plugi, Write into ``README.md`` (a wizard-controlled file).
+Cohesion: 0.29
+Nodes (5): _NoiseFilter, Sphinx configuration for ExLab-Wizard documentation. The configuration wires th, Drop uncategorised warnings whose message text matches a known needle. Inse, Install the noise filter at the head of the warning handler chain. Sphinx w, setup()
### Community 309 - "Community 309"
-Cohesion: 0.25
-Nodes (4): Failure fixture: plugin that hangs in ``transform`` past its timeout., timeout_plugin -- exercises Backend Spec §6.3.4 timeout enforcement. The plugin, Hang past the declared timeout. Never reaches its file write., TimeoutPlugin
+Cohesion: 0.32
+Nodes (7): banner_stack(), banner_stack_props(), _color_for_severity(), Banner stack component (Frontend Spec §2.2.3). Renders the active banners for a, Compute the visible / overflow split for a container. Returns a dict with `, Map a :class:`Severity` to its CSS variable token., Build the banner stack UI for a container.
### Community 310 - "Community 310"
Cohesion: 0.25
-Nodes (4): crash_plugin -- exercises subprocess crash containment (SIGSEGV-like)., CrashPlugin, crash_plugin -- exercises subprocess crash containment. The plugin's ``transfor, Hard-exit the worker process before any file write.
+Nodes (8): lims_credential_initial_state(), Return the credential-row state seeding the LIMS password field. A password, Return the credential-row state seeding the LIMS password field. A password, Return the credential-row state seeding the LIMS password field. A password, A password already in the OS keyring opens the row in *Set*., A password already in the OS keyring opens the row in *Set*., test_lims_credential_initial_state_not_set_when_keyring_empty(), test_lims_credential_initial_state_set_when_keyring_has_password()
### Community 311 - "Community 311"
-Cohesion: 0.25
-Nodes (4): input_required_plugin -- exercises the PluginInputRequired suspend/resume handsh, InputRequiredPlugin, input_required_plugin -- exercises Backend Spec §6.4 suspend/resume. On the fir, Demand a user-supplied ``color`` value before completing.
+Cohesion: 0.32
+Nodes (7): Welcome card page (Frontend Spec §3.1.3). Modal card shown exactly once on the, Render spec captured for unit-test assertions., Return the immutable spec used to render the welcome card., Render the welcome card. ``on_get_started`` and ``on_skip`` are invoked wit, render_welcome_page(), welcome_card_spec(), WelcomeCardSpec
### Community 312 - "Community 312"
-Cohesion: 0.25
-Nodes (4): hello_plugin -- canonical scaffold from Backend Spec §6.5. The ``Plugin`` re-ex, HelloPlugin, hello_plugin -- minimal real plugin used by the host integration suite. Backend, Append ``hello\\n`` to every ``.txt`` file the host hands us.
+Cohesion: 0.32
+Nodes (4): Return the row for ``job_id`` or raise ``ValueError``. Centralizes the, Return the row with the given ``job_id`` or ``None``., Reset a ``FAILED`` job back to ``QUEUED`` for a manual retry. Per §7.1., Reset a terminal job back to ``QUEUED`` carrying a new ``files`` list.
### Community 313 - "Community 313"
Cohesion: 0.25
-Nodes (8): compute_next_attempt_at(), Return the ISO timestamp of the next retry attempt. ``attempts_after`` is t, The 1st through 5th attempts use the documented backoff sequence., Attempts <1 or >MAX_ATTEMPTS yield ``None``., test_compute_next_attempt_at_out_of_range(), test_compute_next_attempt_at_uses_schedule(), Return ``dt`` when supplied, otherwise the current UTC time. Mirrors the ``, utc_now_or()
+Nodes (7): 00 -- Logo and Branding, 03 -- Spacing, 08 -- Usage Rules & Anti-Patterns, Absolute Constraints, Do, Don't, Frontend Design Style Guide
### Community 314 - "Community 314"
Cohesion: 0.25
-Nodes (7): 00 -- Logo and Branding, 03 -- Spacing, 04 -- Border Radius & Shadows, Absolute Constraints, Border Radius, Frontend Design Style Guide, Shadows
+Nodes (7): Bundled plugins (Spec §6.5, §6.6), Bundled templates (Spec §5), code:block1 (_internal/), `_internal/` -- bundled starter content, Layout, Populating for v1, v1 status
### Community 315 - "Community 315"
Cohesion: 0.25
-Nodes (7): Bundled plugins (Spec §6.5, §6.6), Bundled templates (Spec §5), code:block1 (_internal/), `_internal/` -- bundled starter content, Layout, Populating for v1, v1 status
+Nodes (7): 3.4 Browse Existing Equipment, Projects, and Runs, Capability summary, code:{image} (:alt: File-explorer main window, no node selected), code:{image} (:alt: File explorer with a project selected -- tree, file li), Related material, Screenshots, Walkthrough
### Community 316 - "Community 316"
Cohesion: 0.25
-Nodes (7): 3.4 Browse Existing Equipment, Projects, and Runs, Capability summary, code:{image} (:alt: File-explorer main window, no node selected), code:{image} (:alt: File explorer with a project selected -- tree, file li), Related material, Screenshots, Walkthrough
+Nodes (7): 3.7 Monitor Orchestrator Staging, Capability summary, code:{image} (:alt: Staging dock with one row in the staging state), code:{image} (:alt: Main window with the orchestrator staging panel enable), Related material, Screenshots, Walkthrough
### Community 317 - "Community 317"
Cohesion: 0.25
-Nodes (7): 3.7 Monitor Orchestrator Staging, Capability summary, code:{image} (:alt: Staging dock with one row in the staging state), code:{image} (:alt: Main window with the orchestrator staging panel enable), Related material, Screenshots, Walkthrough
+Nodes (7): code:json ({), code:json ({), Exit codes, IPC Envelope, Stderr (structured log channel), Stdin (host to worker), Stdout (worker to host)
### Community 318 - "Community 318"
Cohesion: 0.25
-Nodes (7): code:json ({), code:json ({), Exit codes, IPC Envelope, Stderr (structured log channel), Stdin (host to worker), Stdout (worker to host)
+Nodes (8): 9.1 Escalation dialog layout, 9.2 Multiple consecutive escalations from one session (sequential), 9.3 Mid-plugin-pass progress (per-plugin sub-progress), 9.4 Cancel during escalation -- confirmation dialog, 9.5 Disconnect and resume -- the in-flight operations panel, 9.6 Concurrent suspended sessions, 9. Plugin Input Escalation, code:block5 (Running plugins )
### Community 319 - "Community 319"
Cohesion: 0.25
-Nodes (8): 9.1 Escalation dialog layout, 9.2 Multiple consecutive escalations from one session (sequential), 9.3 Mid-plugin-pass progress (per-plugin sub-progress), 9.4 Cancel during escalation -- confirmation dialog, 9.5 Disconnect and resume -- the in-flight operations panel, 9.6 Concurrent suspended sessions, 9. Plugin Input Escalation, code:block5 (Running plugins )
+Nodes (8): 11.1 Layout, 11.2 Severity Tier Visual Treatment, 11.3 Per-Row Actions, 11.4.1 New-finding surfacing during the session, 11.4 Empty State, 11.5 Override-and-Allow-Sync Dialog, 11.6 Cross-Surface Links, 11. Problems Tab
### Community 320 - "Community 320"
Cohesion: 0.25
-Nodes (8): 11.1 Layout, 11.2 Severity Tier Visual Treatment, 11.3 Per-Row Actions, 11.4.1 New-finding surfacing during the session, 11.4 Empty State, 11.5 Override-and-Allow-Sync Dialog, 11.6 Cross-Surface Links, 11. Problems Tab
+Nodes (8): 3.6.1 Title bar, 3.6.2 Project detail sections, 3.6.3 Run detail sections, 3.6.4 Validation and override summary, 3.6.5 Action affordances, 3.6.6 Empty selection, 3.6 Detail pane (right panel), code:block4 (⚠ Unresolved placeholder token · Run_)
### Community 321 - "Community 321"
Cohesion: 0.25
-Nodes (8): 3.5.1 LIMS name resolution, 3.5.2 Tree node display format, 3.5.3 Archived and deleted LIMS-project handling, 3.5.4 Search and filter chips, 3.5.5 Status bar (bottom of the main window), 3.5.6 Empty states, 3.5 Tree details, filters, and status bar, code:block3 ([ search by name, short_id, or run label ... ] [Active ✓] )
+Nodes (8): 3.4.1 Tray menu, 3.4.2 Status submenu, 3.4.3 Window lifecycle, 3.4.4 Why this lifecycle matters for the lab workflow, 3.4.5 OS notifications, 3.4.6 Quitting the app, 3.4.7 Linux fallback (no system tray), 3.4 Tray Icon and Window Lifecycle
### Community 322 - "Community 322"
Cohesion: 0.25
-Nodes (8): 3.6.1 Title bar, 3.6.2 Project detail sections, 3.6.3 Run detail sections, 3.6.4 Validation and override summary, 3.6.5 Action affordances, 3.6.6 Empty selection, 3.6 Detail pane (right panel), code:block4 (⚠ Unresolved placeholder token · Run_)
+Nodes (8): 3.5.1 LIMS name resolution, 3.5.2 Tree node display format, 3.5.3 Archived and deleted LIMS-project handling, 3.5.4 Search and filter chips, 3.5.5 Status bar (bottom of the main window), 3.5.6 Empty states, 3.5 Tree details, filters, and status bar, code:block3 ([ search by name, short_id, or run label ... ] [Active ✓] )
### Community 323 - "Community 323"
Cohesion: 0.25
-Nodes (8): 3.4.1 Tray menu, 3.4.2 Status submenu, 3.4.3 Window lifecycle, 3.4.4 Why this lifecycle matters for the lab workflow, 3.4.5 OS notifications, 3.4.6 Quitting the app, 3.4.7 Linux fallback (no system tray), 3.4 Tray Icon and Window Lifecycle
+Nodes (8): 4.6.1 REST surface (illustrative subset; full schema lives in `api/schemas.py`), 4.6.2 WebSocket events, 4.6.3 API versioning, health, and error envelope, 4.6 Frontend ↔ Backend Protocol, code:json ({ "kind": "phase", "phase": "rendering_template", ), code:json ({ "kind": "snapshot", "findings": [...], "audit_at": "..." }), code:json ({), code:json ({)
### Community 324 - "Community 324"
Cohesion: 0.25
-Nodes (8): 4.6.1 REST surface (illustrative subset; full schema lives in `api/schemas.py`), 4.6.2 WebSocket events, 4.6.3 API versioning, health, and error envelope, 4.6 Frontend ↔ Backend Protocol, code:json ({ "kind": "phase", "phase": "rendering_template", ), code:json ({ "kind": "snapshot", "findings": [...], "audit_at": "..." }), code:json ({), code:json ({)
+Nodes (8): A successful save persists, then hot-reloads the live components. The old b, Redesign §3.1: orchestrator pipeline is always on, but a missing staging_roo, Redesign §3.1: orchestrator pipeline is always on, but a missing staging_roo, A successful save persists, then hot-reloads the live components. The old b, A successful save persists, then hot-reloads the live components. The old b, A successful save persists, then hot-reloads the live components. The old b, test_persist_config_writes_and_applies_live(), test_staging_state_when_staging_root_missing()
### Community 325 - "Community 325"
-Cohesion: 0.29
-Nodes (7): A fully-satisfied install has no outstanding next action., A fully-satisfied install has no outstanding next action., A fully-satisfied install has no outstanding next action., A fully-satisfied install has no outstanding next action., A fully-satisfied install has no outstanding next action., A fully-satisfied install has no outstanding next action., test_setup_next_action_none_when_ready()
+Cohesion: 0.25
+Nodes (8): A fully-satisfied install has no outstanding next action., A fully-satisfied install has no outstanding next action., A fully-satisfied install has no outstanding next action., A fully-satisfied install has no outstanding next action., A fully-satisfied install has no outstanding next action., A fully-satisfied install has no outstanding next action., A fully-satisfied install has no outstanding next action., test_setup_next_action_none_when_ready()
### Community 326 - "Community 326"
Cohesion: 0.29
-Nodes (7): A path with no enclosing run root surfaces a negative toast., A path with no enclosing run root surfaces a negative toast., A path with no enclosing run root surfaces a negative toast., A path with no enclosing run root surfaces a negative toast., A path with no enclosing run root surfaces a negative toast., A path with no enclosing run root surfaces a negative toast., test_toggle_keep_local_file_not_in_run_toasts()
+Nodes (7): ``RunNode.sync_status`` flows through to the resulting ``TreeNode``., ``RunNode.sync_status`` flows through to the resulting ``TreeNode``., A ``cleared`` run row carries the cloud-icon URL and its sync_status. Opera, ``RunNode.sync_status`` flows through to the resulting ``TreeNode``., A ``cleared`` run row carries the cloud-icon URL and its sync_status. Opera, test_to_nicegui_nodes_cleared_run_uses_cloud_icon(), test_tree_run_node_propagates_sync_status()
### Community 327 - "Community 327"
Cohesion: 0.29
-Nodes (7): The details dialog renders the session state plus pending/error lines., The details dialog renders the session state plus pending/error lines., The details dialog renders the session state plus pending/error lines., The details dialog renders the session state plus pending/error lines., The details dialog renders the session state plus pending/error lines., The details dialog renders the session state plus pending/error lines., test_open_operation_details_renders_state_and_pending()
+Nodes (7): Equipment and project rows render without the per-row sync icon., Equipment and project rows render without the per-row sync icon., Equipment and project rows render without the per-row sync icon., An ``EquipmentNode(relay=True)`` builds a ``received_equipment`` row., An ``EquipmentNode(relay=True)`` builds a ``received_equipment`` row., test_equipment_node_relay_flag_emits_received_equipment_kind(), test_to_nicegui_nodes_equipment_and_project_have_no_sync_icon()
### Community 328 - "Community 328"
Cohesion: 0.29
-Nodes (6): Token-equality tests for :mod:`exlab_wizard.ui.design`. The tests assert each c, Primary palette hexes are verbatim from DESIGN.md §01., Frontend §2.1.3 overrides DM Sans / DM Mono with IBM Plex / system mono., Frontend §2.1.3 overrides DM Sans / DM Mono with IBM Plex / system mono., test_primary_palette_matches_designmd(), test_typography_uses_frontend_override()
+Nodes (7): Hard chip default-on; Soft default-off., Hard chip default-on; Soft default-off., _sample_findings(), test_problems_filter_default_shows_hard_only(), test_problems_filter_scope_filters_by_equipment(), test_problems_filter_search_path_substring(), test_problems_filter_show_soft_when_chip_on()
### Community 329 - "Community 329"
-Cohesion: 0.33
-Nodes (5): _format_utc_timestamp(), Structured log formatter and secret-redaction helpers. Backend Spec §16.4, §16.1, Render ``epoch_seconds`` as a UTC ISO 8601 timestamp with ``Z`` suffix. Exa, Render the active context as ``[host:..] [equip:..] ...``. Returns the empt, _render_tags()
+Cohesion: 0.29
+Nodes (7): check_orphan(), §8.1.4: detect missing ``creation.json`` at project / run level (NOT equipme, test_equipment_without_creation_json_does_not_fire(), test_project_with_creation_json_passes(), test_project_without_creation_json_fires(), test_run_with_creation_json_passes(), test_run_without_creation_json_fires()
### Community 330 - "Community 330"
-Cohesion: 0.33
-Nodes (6): _free_port(), _make_seeded_server(), E2E flow 19: travelling problem badge (Redesign §4.5). The badge sits on the sh, Spawn a uvicorn server with seeded findings injected via env var., The badge for a seeded hard finding renders on the root node., test_flow_19_travelling_badge_aggregates_red()
+Cohesion: 0.29
+Nodes (6): FileChange, Return the dry-run preview for what ``transform`` would do. Default ret, A single mutation a plugin would make. Used by ``describe_changes``. Backen, test_filechange_accepts_detail_payload(), test_filechange_default_detail_is_empty_dict(), test_filechange_is_frozen_dataclass()
### Community 331 - "Community 331"
Cohesion: 0.29
-Nodes (4): MockLimsState, Mutable per-app state. ``valid_email`` / ``valid_password`` are the credent, Mint a fresh opaque session token., Drop every issued session token. The next protected call sees a 401 and
+Nodes (7): is_creation_blocked(), Return True when ``state`` should gate creation flows. Per §4.9.4 the soft, Return True when ``state`` should gate creation flows. Per §4.9.4 the soft, FastAPI dependency that gates a route on setup state. Looks up the app's bo, FastAPI dependency that gates a route on setup state. Looks up the app's bo, setup_state_gate(), test_is_creation_blocked_treats_lims_unreachable_as_soft()
### Community 332 - "Community 332"
Cohesion: 0.29
-Nodes (7): check_orphan(), §8.1.4: detect missing ``creation.json`` at project / run level (NOT equipme, test_equipment_without_creation_json_does_not_fire(), test_project_with_creation_json_passes(), test_project_without_creation_json_fires(), test_run_with_creation_json_passes(), test_run_without_creation_json_fires()
+Nodes (4): MockLimsState, Mutable per-app state. ``valid_email`` / ``valid_password`` are the credent, Mint a fresh opaque session token., Drop every issued session token. The next protected call sees a 401 and
### Community 333 - "Community 333"
Cohesion: 0.29
-Nodes (5): _extract_readme_fields(), Copier template-engine wrapper. Backend Spec §4.4.2 / §5. This module wraps Cop, Render the template into ``dst`` via Copier. Args: tpl: A p, Return the set of regular files under ``root`` (recursively). Returns the e, _snapshot_files()
+Nodes (7): Generic exceptions are wrapped as ``internal_error``., Generic exceptions are wrapped as ``internal_error``., The best-effort log appender writes to the equipment cache dir., The best-effort log appender writes to the equipment cache dir., The best-effort log appender writes to the equipment cache dir., test_append_log_writes_log_line(), test_format_error_with_non_validation_exception_returns_internal_error()
### Community 334 - "Community 334"
-Cohesion: 0.29
-Nodes (7): 07 -- Code Integration, code:css (:root {), code:python (import matplotlib as mpl), code:python (# RGBA tuples normalized 0-1, for napari label layer color d), CSS Custom Properties, matplotlib / seaborn rcParams, napari Label Layer Colors
+Cohesion: 0.33
+Nodes (6): _free_port(), _make_seeded_server(), E2E flow 19: travelling problem badge (Redesign §4.5). The badge sits on the sh, Spawn a uvicorn server with seeded findings injected via env var., The badge for a seeded hard finding renders on the root node., test_flow_19_travelling_badge_aggregates_red()
### Community 335 - "Community 335"
-Cohesion: 0.29
-Nodes (7): 01 -- Color Palette, Color Selection Decision Logic, Data Colors -- Okabe-Ito -- Visualization Only, Main-window surface & interaction tokens (2026-05-29 UI refresh), Primary Colors -- UI Only, Semantic Color Assignments, Surface & Neutral Tokens
+Cohesion: 0.33
+Nodes (5): _format_utc_timestamp(), Structured log formatter and secret-redaction helpers. Backend Spec §16.4, §16.1, Render ``epoch_seconds`` as a UTC ISO 8601 timestamp with ``Z`` suffix. Exa, Render the active context as ``[host:..] [equip:..] ...``. Returns the empt, _render_tags()
### Community 336 - "Community 336"
Cohesion: 0.29
-Nodes (6): 3.1 Create a New Project, Capability summary, code:{image} (:alt: New project wizard, initial render), Related material, Screenshots, Walkthrough
+Nodes (7): 07 -- Code Integration, code:css (:root {), code:python (import matplotlib as mpl), code:python (# RGBA tuples normalized 0-1, for napari label layer color d), CSS Custom Properties, matplotlib / seaborn rcParams, napari Label Layer Colors
### Community 337 - "Community 337"
Cohesion: 0.29
-Nodes (6): 3.8 Review and Resolve Naming and Validation Problems, Capability summary, code:{image} (:alt: Problems tab with one hard-tier finding visible), Related material, Screenshots, Walkthrough
+Nodes (7): 01 -- Color Palette, Color Selection Decision Logic, Data Colors -- Okabe-Ito -- Visualization Only, Main-window surface & interaction tokens (2026-05-29 UI refresh), Primary Colors -- UI Only, Semantic Color Assignments, Surface & Neutral Tokens
### Community 338 - "Community 338"
Cohesion: 0.29
-Nodes (6): 3.5 Author a README at Creation Time, Capability summary, code:{image} (:alt: README step inside the new-project wizard), Related material, Screenshots, Walkthrough
+Nodes (6): 3.1 Create a New Project, Capability summary, code:{image} (:alt: New project wizard, initial render), Related material, Screenshots, Walkthrough
### Community 339 - "Community 339"
Cohesion: 0.29
-Nodes (6): code:{image} (:alt: First-launch welcome card), Getting Started, Overview, Related material, Screenshots, Walkthrough
+Nodes (6): 3.8 Review and Resolve Naming and Validation Problems, Capability summary, code:{image} (:alt: Problems tab with one hard-tier finding visible), Related material, Screenshots, Walkthrough
### Community 340 - "Community 340"
Cohesion: 0.29
-Nodes (6): 3.2 Create a New Experimental Run, Capability summary, code:{image} (:alt: New experimental run wizard, initial render), Related material, Screenshots, Walkthrough
+Nodes (6): 3.5 Author a README at Creation Time, Capability summary, code:{image} (:alt: README step inside the new-project wizard), Related material, Screenshots, Walkthrough
### Community 341 - "Community 341"
Cohesion: 0.29
-Nodes (6): 3.3 Create a New Test Run, Capability summary, code:{image} (:alt: New test run wizard, initial render), Related material, Screenshots, Walkthrough
+Nodes (6): code:{image} (:alt: First-launch welcome card), Getting Started, Overview, Related material, Screenshots, Walkthrough
### Community 342 - "Community 342"
Cohesion: 0.29
-Nodes (6): code:block1 (Creation Controller), code:{toctree} (:maxdepth: 1), Plugin Author Guide, What plugins do, Where plugins fit in the pipeline, Where to look in the codebase
+Nodes (6): 3.2 Create a New Experimental Run, Capability summary, code:{image} (:alt: New experimental run wizard, initial render), Related material, Screenshots, Walkthrough
### Community 343 - "Community 343"
Cohesion: 0.29
-Nodes (6): code:block1 (pip install -e .[plugin-examples]), docx_variable_replacer, Hello plugin, Where to look in the codebase, Worked Examples, xlsx_field_filler
+Nodes (6): 3.3 Create a New Test Run, Capability summary, code:{image} (:alt: New test run wizard, initial render), Related material, Screenshots, Walkthrough
### Community 344 - "Community 344"
Cohesion: 0.29
-Nodes (6): File Structure, Phase 8 — Orchestrator staging via rclone (confirmed in scope), rclone.conf-based NAS Sync — Implementation Plan, Self-Review (completed during authoring), Task 8.1: Staging config — `orchestrator.staging_remote` / `staging_base_root`, Task 8.2: Stage-mode push routes through rclone
+Nodes (6): code:block1 (Creation Controller), code:{toctree} (:maxdepth: 1), Plugin Author Guide, What plugins do, Where plugins fit in the pipeline, Where to look in the codebase
### Community 345 - "Community 345"
Cohesion: 0.29
-Nodes (7): 6.2.1 Discovery, 6.2.2 Resolution per creation session, 6.2.3 Order control via `_exlab_plugins`, 6.2.4 What gets recorded in `creation.json`, 6.2 Plugin Registry, code:yaml (_exlab_plugins:), code:json ({)
+Nodes (6): code:block1 (pip install -e .[plugin-examples]), docx_variable_replacer, Hello plugin, Where to look in the codebase, Worked Examples, xlsx_field_filler
### Community 346 - "Community 346"
Cohesion: 0.29
-Nodes (7): 6.6.1 What it does, 6.6.2 `manifest.yml`, 6.6.3 `plugin.py`, 6.6.4 What this exercises, 6.6 Worked Example: `xlsx_field_filler`, code:yaml (name: "xlsx_field_filler"), code:python (from pathlib import Path)
+Nodes (6): File Structure, Phase 8 — Orchestrator staging via rclone (confirmed in scope), rclone.conf-based NAS Sync — Implementation Plan, Self-Review (completed during authoring), Task 8.1: Staging config — `orchestrator.staging_remote` / `staging_base_root`, Task 8.2: Stage-mode push routes through rclone
### Community 347 - "Community 347"
Cohesion: 0.29
-Nodes (7): 4.9.1 Setup states, 4.9.2 Endpoint gating, 4.9.3 `GET /api/v1/setup/status` response shape, 4.9.4 LIMS unreachability is a soft block, 4.9.5 Initial setup ordering (informational), 4.9 First-Launch and Setup-Incomplete State, code:json ({)
+Nodes (7): 6.2.1 Discovery, 6.2.2 Resolution per creation session, 6.2.3 Order control via `_exlab_plugins`, 6.2.4 What gets recorded in `creation.json`, 6.2 Plugin Registry, code:yaml (_exlab_plugins:), code:json ({)
### Community 348 - "Community 348"
-Cohesion: 0.33
-Nodes (6): Hard chip default-on; Soft default-off., _sample_findings(), test_problems_filter_default_shows_hard_only(), test_problems_filter_scope_filters_by_equipment(), test_problems_filter_search_path_substring(), test_problems_filter_show_soft_when_chip_on()
+Cohesion: 0.29
+Nodes (7): 6.6.1 What it does, 6.6.2 `manifest.yml`, 6.6.3 `plugin.py`, 6.6.4 What this exercises, 6.6 Worked Example: `xlsx_field_filler`, code:yaml (name: "xlsx_field_filler"), code:python (from pathlib import Path)
### Community 349 - "Community 349"
-Cohesion: 0.33
-Nodes (6): A node id whose root is not in the hierarchy returns ``(None, False)``. Gua, A node id whose root is not in the hierarchy returns ``(None, False)``. Gua, A node id whose root is not in the hierarchy returns ``(None, False)``. Gua, A node id whose root is not in the hierarchy returns ``(None, False)``. Gua, A node id whose root is not in the hierarchy returns ``(None, False)``. Gua, test_classify_node_rejects_unknown_root()
+Cohesion: 0.29
+Nodes (7): 4.9.1 Setup states, 4.9.2 Endpoint gating, 4.9.3 `GET /api/v1/setup/status` response shape, 4.9.4 LIMS unreachability is a soft block, 4.9.5 Initial setup ordering (informational), 4.9 First-Launch and Setup-Incomplete State, code:json ({)
### Community 350 - "Community 350"
-Cohesion: 0.33
-Nodes (6): Equipment / project / run / received_equipment all classify correctly., Equipment / project / run / received_equipment all classify correctly., Equipment / project / run / received_equipment all classify correctly., Equipment / project / run / received_equipment all classify correctly., Equipment / project / run / received_equipment all classify correctly., test_classify_node_discriminates_kinds()
+Cohesion: 0.29
+Nodes (7): A node id whose root is not in the hierarchy returns ``(None, False)``. Gua, A node id whose root is not in the hierarchy returns ``(None, False)``. Gua, A node id whose root is not in the hierarchy returns ``(None, False)``. Gua, A node id whose root is not in the hierarchy returns ``(None, False)``. Gua, A node id whose root is not in the hierarchy returns ``(None, False)``. Gua, A node id whose root is not in the hierarchy returns ``(None, False)``. Gua, test_classify_node_rejects_unknown_root()
### Community 351 - "Community 351"
-Cohesion: 0.33
-Nodes (6): NASCleanupConfig, ``nas_cleanup:`` block. Local-copy retention after NAS verify., ``nas_cleanup:`` block. Local-copy retention after NAS verify., test_nas_cleanup_defaults(), test_nas_cleanup_min_age_hours_non_negative(), test_nas_cleanup_min_verify_passes_at_least_one()
+Cohesion: 0.29
+Nodes (7): With no SYNCED rows the sweep clears nothing and toasts 'none'., With no SYNCED rows the sweep clears nothing and toasts 'none'., With no SYNCED rows the sweep clears nothing and toasts 'none'., With no SYNCED rows the sweep clears nothing and toasts 'none'., With no SYNCED rows the sweep clears nothing and toasts 'none'., With no SYNCED rows the sweep clears nothing and toasts 'none'., test_bulk_clear_verified_no_verified_rows_toasts()
### Community 352 - "Community 352"
Cohesion: 0.33
-Nodes (5): _await_or_call(), build_config_router(), ``/config`` router. Backend Spec §4.6.1, §4.9. Endpoints: * ``GET /config`` --, Invoke a saver that may be sync or async., Construct the ``/config`` router. Routes are always available.
+Nodes (6): ActionSpec, A single action affordance attached to a notification. At most one action p, ``ActionSpec`` is immutable so callbacks can't be swapped post-hoc., When an action is attached, the timeout extends to 12 s., test_action_spec_is_frozen(), test_notify_with_action_extends_to_12_seconds()
### Community 353 - "Community 353"
-Cohesion: 0.53
-Nodes (5): _goto(), E2E flow 20: file-explorer navigation (Redesign §4). Tree selection drives the, test_flow_20_breadcrumb_is_present_when_node_selected(), test_flow_20_file_explorer_renders_three_regions(), test_flow_20_select_run_node_renders_metadata_pane()
+Cohesion: 0.33
+Nodes (6): Activate a banner from the closed §2.2.3 set. Raises: ValueError: w, Clear all module-level state. Test fixtures only., reset_for_tests(), show_banner(), test_smoke_banner_stack_renders_with_active_banners(), test_smoke_file_explorer_page_renders_setup_incomplete()
### Community 354 - "Community 354"
-Cohesion: 0.33
-Nodes (6): combo_for_current_os(), Resolve the :class:`KeyCombo` for the current OS., On non-darwin we return ``other``., On darwin we return ``macos``., test_combo_for_current_os_returns_macos_on_darwin(), test_combo_for_current_os_returns_other_on_linux()
+Cohesion: 0.53
+Nodes (5): _goto(), E2E flow 20: file-explorer navigation (Redesign §4). Tree selection drives the, test_flow_20_breadcrumb_is_present_when_node_selected(), test_flow_20_file_explorer_renders_three_regions(), test_flow_20_select_run_node_renders_metadata_pane()
### Community 355 - "Community 355"
Cohesion: 0.33
-Nodes (6): list_bindings(), Return the canonical bindings table (Frontend §3.7)., Each binding has a non-empty description (Frontend §3.7)., Every Frontend §3.7 row has a ShortcutBinding., test_all_documented_shortcuts_in_registry(), test_descriptions_match_spec()
+Nodes (5): prod_server(), E2E flow 26: Add-Equipment wizard confirm against the PRODUCTION app. ``test_fl, Spawn the production wizard app under a fresh tmp HOME., Drive the production wizard to Confirm and assert config.yaml gains the device., test_equipment_wizard_confirm_persists_to_config()
### Community 356 - "Community 356"
-Cohesion: 0.4
-Nodes (5): override_badge(), override_badge_props(), Override pill (Frontend Spec §3.6.1, §11). A pill that appears next to a run's, Compute styling props for the override pill., Build a clickable badge for the override state. Clicking opens the §11.5 ov
+Cohesion: 0.33
+Nodes (6): list_bindings(), Return the canonical bindings table (Frontend §3.7)., Each binding has a non-empty description (Frontend §3.7)., Every Frontend §3.7 row has a ShortcutBinding., test_all_documented_shortcuts_in_registry(), test_descriptions_match_spec()
### Community 357 - "Community 357"
-Cohesion: 0.4
-Nodes (5): Test-run pill (Frontend Spec §3.2, §3.6.1). A small *"Test"* pill rendered next, Static styling for the *"Test"* pill (Frontend §3.6.1)., Build a NiceGUI badge for a test run., test_run_badge(), test_run_badge_props()
+Cohesion: 0.33
+Nodes (6): combo_for_current_os(), Resolve the :class:`KeyCombo` for the current OS., On non-darwin we return ``other``., On darwin we return ``macos``., test_combo_for_current_os_returns_macos_on_darwin(), test_combo_for_current_os_returns_other_on_linux()
### Community 358 - "Community 358"
-Cohesion: 0.33
-Nodes (5): Tree context-menu renderers. GUI/Orchestrator Redesign §4.6 / decision 4A / §9., Render the right-click menu for an owned-equipment tree node. The callback, Render the right-click menu for a run tree node. The callback receives ``(r, render_equipment_context_menu(), render_run_context_menu()
+Cohesion: 0.4
+Nodes (5): override_badge(), override_badge_props(), Override pill (Frontend Spec §3.6.1, §11). A pill that appears next to a run's, Compute styling props for the override pill., Build a clickable badge for the override state. Clicking opens the §11.5 ov
### Community 359 - "Community 359"
-Cohesion: 0.4
-Nodes (5): mode_badge(), mode_badge_props(), Mode badge component (Frontend Spec §5.3, §6). Shows the active wizard mode (ex, Compute the badge styling props for a run kind. Returns a dict that wizards, Build a NiceGUI badge element for the given run kind. Lazy NiceGUI import k
+Cohesion: 0.33
+Nodes (5): High-level Copier-template category. Backend Spec §5.2., Run-scope tag declared in a run template's ``_exlab_run_scope``. Backend Sp, RunScope, TemplateType, Load + validate a template's ``copier.yml``. Args: template
### Community 360 - "Community 360"
-Cohesion: 0.33
-Nodes (6): lims_credential_initial_state(), Return the credential-row state seeding the LIMS password field. A password, Return the credential-row state seeding the LIMS password field. A password, A password already in the OS keyring opens the row in *Set*., test_lims_credential_initial_state_not_set_when_keyring_empty(), test_lims_credential_initial_state_set_when_keyring_has_password()
+Cohesion: 0.4
+Nodes (5): Test-run pill (Frontend Spec §3.2, §3.6.1). A small *"Test"* pill rendered next, Static styling for the *"Test"* pill (Frontend §3.6.1)., Build a NiceGUI badge for a test run., test_run_badge(), test_run_badge_props()
### Community 361 - "Community 361"
Cohesion: 0.33
-Nodes (6): 06 -- Data Visualization, Categorical Series Order, Chart Styling Rules, code:block7 (ring stroke-width: 20px on r=40 SVG circle (circumference ~), Donut / Pie Charts, Heatmap Colorscale (Single-Variable)
+Nodes (5): Tree context-menu renderers. GUI/Orchestrator Redesign §4.6 / decision 4A / §9., Render the right-click menu for an owned-equipment tree node. The callback, Render the right-click menu for a run tree node. The callback receives ``(r, render_equipment_context_menu(), render_run_context_menu()
### Community 362 - "Community 362"
-Cohesion: 0.33
-Nodes (6): 02 -- Typography, code:css (--font-display: 'DM Serif Display', Georgia, serif;), code:html (/), code:block2 (/data/lab/CONFOCAL_01/UCR-000-I-D_WHEELDON/Runs/Run_2026-04-)
+Nodes (6): code:python (def test_nas_mode_equipment_needs_no_transport_block():), code:bash (git add src/exlab_wizard/config/models.py tests/unit/config/), code:bash (git add -A), Phase 7 — Remove dead code (clean break), Task 7.1: Remove the transport union + EquipmentConfig.transport, Task 7.2: Remove `build_rclone_env`/`obscure`/`pass_env_keys_for` + keyring helper + env plumbing
### Community 368 - "Community 368"
Cohesion: 0.33
-Nodes (5): 12.1 What Changes in Orchestrator Mode, 12.2 Configuration, 12.3 Concurrent Run Handling, 12.4 Logging and DB Changes, 12. Orchestrator Mode (Multi-Equipment Workstations)
+Nodes (6): code:python (if verb == "lsjson":), Phase 9 — Fixtures, integration, docker, docs, Task 9.1: Teach `stub_rclone` lsjson + listremotes; drop env-require, Task 9.2: Integration + e2e + docker `rclone.conf`, Task 9.3: Docs, Task 9.4: Full-suite + lint/type gate
### Community 369 - "Community 369"
Cohesion: 0.33
-Nodes (6): 4.10.1 Unit tests (`tests/unit/`), 4.10.2 Integration tests (`tests/integration/`), 4.10.3 End-to-end tests (`tests/e2e/`), 4.10.4 Test fixtures (`tests/fixtures/`), 4.10.5 What's NOT tested at each layer, 4.10 Testing Strategy
+Nodes (5): 3.1 Equipment-ID format, 3.2 Project-folder name, 3. Directory Structure Convention, code:block1 (/), code:block2 (/data/lab/CONFOCAL_01/UCR-000-I-D_WHEELDON/Runs/Run_2026-04-)
### Community 370 - "Community 370"
-Cohesion: 0.4
-Nodes (5): OperatorsConfig, ``operators:`` block. Optional case-sensitive allowlist., ``operators:`` block. Optional case-sensitive allowlist., test_operators_config_accepts_arbitrary_strings(), test_operators_config_defaults_to_empty_allowlist()
+Cohesion: 0.33
+Nodes (5): 12.1 What Changes in Orchestrator Mode, 12.2 Configuration, 12.3 Concurrent Run Handling, 12.4 Logging and DB Changes, 12. Orchestrator Mode (Multi-Equipment Workstations)
+
+### Community 371 - "Community 371"
+Cohesion: 0.33
+Nodes (6): 4.10.1 Unit tests (`tests/unit/`), 4.10.2 Integration tests (`tests/integration/`), 4.10.3 End-to-end tests (`tests/e2e/`), 4.10.4 Test fixtures (`tests/fixtures/`), 4.10.5 What's NOT tested at each layer, 4.10 Testing Strategy
### Community 372 - "Community 372"
-Cohesion: 0.6
-Nodes (4): _goto(), E2E flow 18: relay-receive — received equipment auto-discovery (Redesign §3.3)., test_flow_18_received_equipment_node_appears(), test_flow_18_received_metadata_shows_relay_badge()
+Cohesion: 0.4
+Nodes (5): ``FILE_CONTEXT_KEEP_LOCAL`` is a distinct discriminator value., ``FILE_CONTEXT_KEEP_LOCAL`` is a distinct discriminator value., ``FILE_CONTEXT_KEEP_LOCAL`` is a distinct discriminator value., ``FILE_CONTEXT_KEEP_LOCAL`` is a distinct discriminator value., test_keep_local_action_constant_is_distinct()
### Community 373 - "Community 373"
-Cohesion: 0.6
-Nodes (4): _goto(), E2E flow 17: creation-button enablement on received nodes (Redesign decision 1)., test_flow_17_creation_buttons_disabled_on_received_node(), test_flow_17_creation_buttons_enabled_on_owned_node()
-
-### Community 374 - "Community 374"
Cohesion: 0.4
-Nodes (4): E2E flow 05b: per-run sync icons in the browse tree. Verifies that the project, The ``/assets`` mount serves both SVGs as 200 OK., test_flow_05_sync_icons_render_in_tree(), test_flow_05_sync_icons_static_assets_serve_200()
+Nodes (5): The renderer wires the keep-local menu item and tombstone row. Exercises th, The renderer wires the keep-local menu item and tombstone row. Exercises th, The renderer wires the keep-local menu item and tombstone row. Exercises th, The renderer wires the keep-local menu item and tombstone row. Exercises th, test_render_file_list_keep_local_menu_and_tombstone()
### Community 375 - "Community 375"
Cohesion: 0.6
-Nodes (4): _goto(), E2E flow 23: footer Staging segment + bulk Clear verified (Redesign §4.6). The, test_flow_23_bulk_clear_verified_action_present(), test_flow_23_footer_staging_segment_renders()
+Nodes (4): _goto(), E2E flow 18: relay-receive — received equipment auto-discovery (Redesign §3.3)., test_flow_18_received_equipment_node_appears(), test_flow_18_received_metadata_shows_relay_badge()
### Community 376 - "Community 376"
-Cohesion: 0.4
-Nodes (5): The renderer wires the keep-local menu item and tombstone row. Exercises th, The renderer wires the keep-local menu item and tombstone row. Exercises th, The renderer wires the keep-local menu item and tombstone row. Exercises th, The renderer wires the keep-local menu item and tombstone row. Exercises th, test_render_file_list_keep_local_menu_and_tombstone()
+Cohesion: 0.6
+Nodes (4): _goto(), E2E flow 17: creation-button enablement on received nodes (Redesign decision 1)., test_flow_17_creation_buttons_disabled_on_received_node(), test_flow_17_creation_buttons_enabled_on_owned_node()
### Community 377 - "Community 377"
-Cohesion: 0.4
-Nodes (5): _click(), Single-click selection fires ``on_select`` for files AND folders., Single-click selection fires ``on_select`` for files AND folders., Invoke ``element``'s registered click handler (simulates a single-click)., test_on_select_fires_for_file_and_folder()
+Cohesion: 0.6
+Nodes (4): _goto(), E2E flow 23: footer Staging segment + bulk Clear verified (Redesign §4.6). The, test_flow_23_bulk_clear_verified_action_present(), test_flow_23_footer_staging_segment_renders()
### Community 378 - "Community 378"
Cohesion: 0.4
-Nodes (5): A bare entry defaults ``keep_local`` and ``tombstone`` to False., A bare entry defaults ``keep_local`` and ``tombstone`` to False., A bare entry defaults ``keep_local`` and ``tombstone`` to False., A bare entry defaults ``keep_local`` and ``tombstone`` to False., test_file_list_entry_defaults_keep_local_and_tombstone_false()
+Nodes (5): OrchestratorStagingTransport, ``orchestrator_staging_transport:`` -- staging hop only. Backend Spec §13., test_orchestrator_staging_transport_file_transfer(), test_orchestrator_staging_transport_rejects_unknown_type(), test_orchestrator_staging_transport_smb_mount()
### Community 379 - "Community 379"
Cohesion: 0.4
-Nodes (5): Flipping ``keep_local`` is a modification (drives a re-render)., Flipping ``keep_local`` is a modification (drives a re-render)., Flipping ``keep_local`` is a modification (drives a re-render)., Flipping ``keep_local`` is a modification (drives a re-render)., test_diff_detects_keep_local_change_as_modification()
+Nodes (4): Capability map, code:{toctree} (:maxdepth: 1), Conventions, User Guide
### Community 380 - "Community 380"
Cohesion: 0.4
-Nodes (5): ``FILE_CONTEXT_KEEP_LOCAL`` is a distinct discriminator value., ``FILE_CONTEXT_KEEP_LOCAL`` is a distinct discriminator value., ``FILE_CONTEXT_KEEP_LOCAL`` is a distinct discriminator value., ``FILE_CONTEXT_KEEP_LOCAL`` is a distinct discriminator value., test_keep_local_action_constant_is_distinct()
+Nodes (5): code:bash (git add src/exlab_wizard/ui/pages/settings.py src/exlab_wiza), code:bash (git add src/exlab_wizard/ui/ tests/unit/ui/), Phase 6 — UI, Task 6.1: Settings "NAS Remote" section (replaces NAS Credentials), Task 6.2: Equipment wizard/form — drop transport fields; main-page banner copy
### Community 381 - "Community 381"
Cohesion: 0.4
-Nodes (5): A file transitioning to a tombstone is a modification., A file transitioning to a tombstone is a modification., A file transitioning to a tombstone is a modification., A file transitioning to a tombstone is a modification., test_diff_detects_tombstone_change_as_modification()
+Nodes (5): code:python (# tests/unit/sync/test_nas_client.py — add (uses existing he), code:python (def _build_target_for_run(*, remote: str, base_root: str, eq), code:python (def _build_push(self, equipment: EquipmentConfig) -> Callabl), code:bash (git add src/exlab_wizard/sync/nas_client.py tests/unit/sync/), Task 4.1: Named-remote target builder + driver construction from `nas:` config
### Community 382 - "Community 382"
Cohesion: 0.4
-Nodes (4): Capability map, code:{toctree} (:maxdepth: 1), Conventions, User Guide
+Nodes (5): code:python (# tests/unit/tray/test_dependencies.py — add/replace probe t), code:python (async def _probe(equipment: Any) -> dict[str, Any]:), code:python (def _hydrate_nas_remotes(config: Any) -> tuple[str, ...]:), code:bash (git add src/exlab_wizard/tray/dependencies.py tests/unit/tra), Task 5.3: Tray probe + NAS-sync wiring + password-presence removal
### Community 383 - "Community 383"
Cohesion: 0.4
-Nodes (5): code:bash (git add src/exlab_wizard/ui/pages/settings.py src/exlab_wiza), code:bash (git add src/exlab_wizard/ui/ tests/unit/ui/), Phase 6 — UI, Task 6.1: Settings "NAS Remote" section (replaces NAS Credentials), Task 6.2: Equipment wizard/form — drop transport fields; main-page banner copy
+Nodes (5): code:python (# tests/unit/sync/test_manifest.py), code:python (# src/exlab_wizard/sync/manifest.py), code:bash (git add src/exlab_wizard/sync/manifest.py tests/unit/sync/te), Phase 3 — Manifest module + parser, Task 3.1: `sync/manifest.py` with `parse_lsjson`
### Community 384 - "Community 384"
Cohesion: 0.4
-Nodes (5): code:python (# tests/unit/sync/test_nas_client.py — add (uses existing he), code:python (def _build_target_for_run(*, remote: str, base_root: str, eq), code:python (def _build_push(self, equipment: EquipmentConfig) -> Callabl), code:bash (git add src/exlab_wizard/sync/nas_client.py tests/unit/sync/), Task 4.1: Named-remote target builder + driver construction from `nas:` config
+Nodes (5): 6.1 Layout, 6.2 Pre-fill Rules, 6.3 Preview Behavior, 6.4 Required-Field Error Messaging, 6. README Authoring Step
### Community 385 - "Community 385"
Cohesion: 0.4
-Nodes (5): code:python (# tests/unit/tray/test_dependencies.py — add/replace probe t), code:python (async def _probe(equipment: Any) -> dict[str, Any]:), code:python (def _hydrate_nas_remotes(config: Any) -> tuple[str, ...]:), code:bash (git add src/exlab_wizard/tray/dependencies.py tests/unit/tra), Task 5.3: Tray probe + NAS-sync wiring + password-presence removal
+Nodes (5): A raising keyring backend surfaces a toast, not an unhandled crash., A raising keyring backend surfaces a toast, not an unhandled crash., A raising keyring backend surfaces a toast, not an unhandled crash., A raising keyring backend surfaces a toast, not an unhandled crash., test_lims_credential_handlers_swallow_backend_errors()
### Community 386 - "Community 386"
Cohesion: 0.4
-Nodes (5): code:python (# tests/unit/sync/test_manifest.py), code:python (# src/exlab_wizard/sync/manifest.py), code:bash (git add src/exlab_wizard/sync/manifest.py tests/unit/sync/te), Phase 3 — Manifest module + parser, Task 3.1: `sync/manifest.py` with `parse_lsjson`
+Nodes (5): If the coordinator raises wholesale, the live config is still kept., If the coordinator raises wholesale, the live config is still kept., If the coordinator raises wholesale, the live config is still kept., If the coordinator raises wholesale, the live config is still kept., test_apply_live_config_falls_back_to_setting_config()
### Community 387 - "Community 387"
Cohesion: 0.4
-Nodes (5): 6.1 Layout, 6.2 Pre-fill Rules, 6.3 Preview Behavior, 6.4 Required-Field Error Messaging, 6. README Authoring Step
+Nodes (5): Both empty -> empty string. One present -> single param., Both empty -> empty string. One present -> single param., Both empty -> empty string. One present -> single param., Both empty -> empty string. One present -> single param., test_build_main_query_omits_empty_params()
### Community 389 - "Community 389"
Cohesion: 0.5
-Nodes (4): Both empty -> empty string. One present -> single param., Both empty -> empty string. One present -> single param., Both empty -> empty string. One present -> single param., test_build_main_query_omits_empty_params()
+Nodes (4): The pre-commit ``no-direct-ui-notify`` rule is mirrored in tests. Any call, The pre-commit ``no-direct-ui-notify`` rule is mirrored in tests. Any call, The pre-commit ``no-direct-ui-notify`` rule is mirrored in tests. Any call, test_no_stray_ui_notify_calls_in_ui_package()
### Community 390 - "Community 390"
Cohesion: 0.5
-Nodes (4): Project names with spaces / special chars survive the round trip., Project names with spaces / special chars survive the round trip., Project names with spaces / special chars survive the round trip., test_build_main_query_url_encodes_special_chars()
+Nodes (4): The ``default-header`` template carries the per-row anchors the Playwright f, The ``default-header`` template carries the per-row anchors the Playwright f, The ``default-header`` template carries the per-row anchors the Playwright f, test_slot_template_emits_testid_data_node_id_and_context_menus()
### Community 391 - "Community 391"
Cohesion: 0.5
-Nodes (4): Main-window refresh surface tokens (DESIGN.md §02 UI Chrome Palette). Sever, Okabe-Ito hexes are verbatim from DESIGN.md §01., test_okabe_ito_palette_matches_designmd(), test_ui_refresh_surface_tokens_match_designmd()
+Nodes (4): Any non-``cleaned`` sync status (or unset) maps to the local-icon URL., Any non-``cleaned`` sync status (or unset) maps to the local-icon URL., Any non-``cleaned`` sync status (or unset) maps to the local-icon URL., test_to_nicegui_nodes_local_run_uses_local_icon()
+
+### Community 392 - "Community 392"
+Cohesion: 0.5
+Nodes (4): Each factory emits a dict (or NiceGUI element) without crashing. The factor, Each factory emits a dict (or NiceGUI element) without crashing. The factor, Each factory emits a dict (or NiceGUI element) without crashing. The factor, test_factories_smoke_outside_nicegui()
+
+### Community 393 - "Community 393"
+Cohesion: 0.5
+Nodes (4): Deleted-from-LIMS rows always render (Frontend §3.5.3)., Deleted-from-LIMS rows always render (Frontend §3.5.3)., Deleted-from-LIMS rows always render (Frontend §3.5.3)., test_tree_filter_deleted_always_shown()
### Community 394 - "Community 394"
Cohesion: 0.5
-Nodes (3): E2E smoke flow. Confirms the Phase 16 e2e harness can drive a real browser agai, Smoke: navigate to / and confirm the e2e harness is wired up. The Phase 16, test_root_url_responds_with_html()
+Nodes (4): Archived projects are hidden by default., Archived projects are hidden by default., Archived projects are hidden by default., test_tree_filter_archived_default_off_hides_archived()
### Community 395 - "Community 395"
Cohesion: 0.5
-Nodes (3): Machine-readable catalog of the wizard's UX interactions. Each :class:`UXIntera, One operator-facing affordance in the wizard UI., UXInteraction
+Nodes (4): Each row carries a ``testid_kind`` matching the Playwright contract., Each row carries a ``testid_kind`` matching the Playwright contract., Each row carries a ``testid_kind`` matching the Playwright contract., test_to_nicegui_nodes_emits_testid_kind()
+
+### Community 396 - "Community 396"
+Cohesion: 0.5
+Nodes (4): The dynamic NAS-remote section is auto-selected when it's the gate., The dynamic NAS-remote section is auto-selected when it's the gate., test_settings_first_incomplete_resolves_nas_credentials(), test_settings_first_incomplete_resolves_nas_remote()
### Community 397 - "Community 397"
Cohesion: 0.5
-Nodes (3): LIMSProjectSource, Origin of a LIMS project row presented to the UI. Backend Spec §11.3., Write README + creation.json into the destination tree.
+Nodes (4): The rclone-remote next-action points the operator at the setup docs., The rclone-remote next-action points the operator at the setup docs., test_main_setup_banner_subline_tailored_for_nas_credentials(), test_main_setup_banner_subline_tailored_for_rclone_remote()
### Community 398 - "Community 398"
Cohesion: 0.5
-Nodes (4): AuditScopeKind, Kind discriminator for validator audit scopes. Backend Spec §8.1. Values ma, Kind discriminator for validator audit scopes. Backend Spec §8.1. Values ma, _build_scope()
+Nodes (4): banner_overflow_count(), list_active_banners(), Return active banners, optionally filtered by container. Banners are return, How many banners exceed the stacking cap of 2 (Frontend §2.2.3).
### Community 399 - "Community 399"
Cohesion: 0.5
-Nodes (4): check_reserved_filesystem_name(), §8.1.2: detect Windows reserved names (``CON``, ``PRN``, ``AUX``, ``NUL``, `, test_non_reserved_name_passes(), test_reserved_name_fires()
-
-### Community 400 - "Community 400"
-Cohesion: 0.5
-Nodes (4): check_unsafe_project_name(), §3.2: flag a project directory whose name is not a safe path segment. The p, test_safe_project_name_passes(), test_unsafe_project_name_fires()
-
-### Community 401 - "Community 401"
-Cohesion: 0.5
-Nodes (4): _level_for_orphan(), Translate the engine-level enum into the rules.check_orphan input. The orph, ``_level_for_orphan`` returns None for non-project / non-run levels., test_level_for_orphan_returns_none_for_unmapped_levels()
+Nodes (3): bootstrap_test_config(), Starter ``config.yaml`` bootstrap for the ``-test`` sandbox. Shared by the tray, Tray ``--test`` bootstrap: write the starter config, optionally seed samples.
### Community 402 - "Community 402"
Cohesion: 0.5
-Nodes (4): 5.1 Mode Binding at Launch, 5.2 Steps, 5.3 Visual Differentiation, 5. New Run Wizard (Experimental and Test Modes)
+Nodes (4): When :class:`PluginHost` returns ``aborted=True``, the controller transition, When :class:`PluginHost` returns ``aborted=True``, the controller transition, When :class:`PluginHost` returns ``aborted=True``, the controller transition, test_plugin_pass_aborted_transitions_to_failed()
### Community 403 - "Community 403"
Cohesion: 0.5
-Nodes (4): 4.3.1 The `constants/` package, 4.3.2 The `tray/` and `window/` packages, 4.3 Package Layout, code:block2 (exlab_wizard/)
+Nodes (4): T1 (§C1): the production ``ReadmeGenerator`` -- injected by ``tray.dependenc, T1 (§C1): the production ``ReadmeGenerator`` -- injected by ``tray.dependenc, T1 (§C1): the production ``ReadmeGenerator`` -- injected by ``tray.dependenc, test_real_readme_generator_writes_frontmatter_and_cache()
### Community 404 - "Community 404"
Cohesion: 0.5
-Nodes (3): Answer, Q: How are the example equipment, projects, run folders, and samples generated in --test mode of the wizard tray?, Source Nodes
+Nodes (4): ``subscribe`` initializes ``event_queue`` if the session opened with none (d, ``subscribe`` initializes ``event_queue`` if the session opened with none (d, ``subscribe`` initializes ``event_queue`` if the session opened with none (d, test_subscribe_creates_queue_when_missing()
### Community 405 - "Community 405"
-Cohesion: 0.67
-Nodes (3): ``RunNode.sync_status`` flows through to the resulting ``TreeNode``., ``RunNode.sync_status`` flows through to the resulting ``TreeNode``., test_tree_run_node_propagates_sync_status()
+Cohesion: 0.5
+Nodes (4): When the operator cancels the input-required prompt (host returns ``aborted=, When the operator cancels the input-required prompt (host returns ``aborted=, When the operator cancels the input-required prompt (host returns ``aborted=, test_cancel_input_required_aborts_session_via_plugin_callback()
### Community 406 - "Community 406"
-Cohesion: 0.67
-Nodes (3): Each row carries a ``testid_kind`` matching the Playwright contract., Each row carries a ``testid_kind`` matching the Playwright contract., test_to_nicegui_nodes_emits_testid_kind()
+Cohesion: 0.5
+Nodes (4): ``_cleanup`` swallows compose-path errors gracefully., ``_cleanup`` swallows compose-path errors gracefully., ``_cleanup`` swallows compose-path errors gracefully., test_cancel_invokes_cleanup_when_compose_path_fails()
### Community 407 - "Community 407"
-Cohesion: 0.67
-Nodes (3): Archived projects are hidden by default., Archived projects are hidden by default., test_tree_filter_archived_default_off_hides_archived()
+Cohesion: 0.5
+Nodes (4): The ``_required_field_ids`` helper must skip non-dict entries in the templat, The ``_required_field_ids`` helper must skip non-dict entries in the templat, The ``_required_field_ids`` helper must skip non-dict entries in the templat, test_required_field_ids_filters_non_dict_entries()
### Community 408 - "Community 408"
-Cohesion: 0.67
-Nodes (3): Deleted-from-LIMS rows always render (Frontend §3.5.3)., Deleted-from-LIMS rows always render (Frontend §3.5.3)., test_tree_filter_deleted_always_shown()
+Cohesion: 0.5
+Nodes (4): ``_cleanup`` removes the destination directory when ``discard_files=True``., ``_cleanup`` removes the destination directory when ``discard_files=True``., ``_cleanup`` removes the destination directory when ``discard_files=True``., test_cleanup_removes_existing_directory_when_discard_files_true()
### Community 409 - "Community 409"
-Cohesion: 0.67
-Nodes (3): An ``EquipmentNode(relay=True)`` builds a ``received_equipment`` row., An ``EquipmentNode(relay=True)`` builds a ``received_equipment`` row., test_equipment_node_relay_flag_emits_received_equipment_kind()
+Cohesion: 0.5
+Nodes (4): A template-required README field missing from ``readme_extra`` must trigger, A template-required README field missing from ``readme_extra`` must trigger, A template-required README field missing from ``readme_extra`` must trigger, test_required_template_field_missing_in_readme_extra_fails()
### Community 410 - "Community 410"
-Cohesion: 0.67
-Nodes (3): A ``cleared`` run row carries the cloud-icon URL and its sync_status. Opera, A ``cleared`` run row carries the cloud-icon URL and its sync_status. Opera, test_to_nicegui_nodes_cleared_run_uses_cloud_icon()
+Cohesion: 0.5
+Nodes (4): A cancel with ``discard_files=False`` leaves the partial directory., A cancel with ``discard_files=False`` leaves the partial directory., A cancel with ``discard_files=False`` leaves the partial directory., test_cancel_without_discard_leaves_partial_dir()
### Community 411 - "Community 411"
-Cohesion: 0.67
-Nodes (3): The pre-commit ``no-direct-ui-notify`` rule is mirrored in tests. Any call, The pre-commit ``no-direct-ui-notify`` rule is mirrored in tests. Any call, test_no_stray_ui_notify_calls_in_ui_package()
+Cohesion: 0.5
+Nodes (4): If ``cancel`` is invoked on a session that has not yet started a pipeline ta, If ``cancel`` is invoked on a session that has not yet started a pipeline ta, If ``cancel`` is invoked on a session that has not yet started a pipeline ta, test_cancel_before_task_starts_invokes_cleanup()
### Community 412 - "Community 412"
-Cohesion: 0.67
-Nodes (3): The ``default-header`` template carries the per-row anchors the Playwright f, The ``default-header`` template carries the per-row anchors the Playwright f, test_slot_template_emits_testid_data_node_id_and_context_menus()
+Cohesion: 0.5
+Nodes (4): A Copier render failure (e.g. dst exists) transitions the session to ``FAILE, A Copier render failure (e.g. dst exists) transitions the session to ``FAILE, A Copier render failure (e.g. dst exists) transitions the session to ``FAILE, test_render_failure_transitions_session_to_failed()
### Community 413 - "Community 413"
-Cohesion: 0.67
-Nodes (3): Any non-``cleaned`` sync status (or unset) maps to the local-icon URL., Any non-``cleaned`` sync status (or unset) maps to the local-icon URL., test_to_nicegui_nodes_local_run_uses_local_icon()
+Cohesion: 0.5
+Nodes (4): A config.yaml-required README field missing from ``readme_extra`` must trigg, A config.yaml-required README field missing from ``readme_extra`` must trigg, A config.yaml-required README field missing from ``readme_extra`` must trigg, test_config_required_readme_field_missing_fails()
### Community 414 - "Community 414"
-Cohesion: 0.67
-Nodes (3): Each factory emits a dict (or NiceGUI element) without crashing. The factor, Each factory emits a dict (or NiceGUI element) without crashing. The factor, test_factories_smoke_outside_nicegui()
+Cohesion: 0.5
+Nodes (4): Resume against a session that has no resume queue raises., Resume against a session that has no resume queue raises., Resume against a session that has no resume queue raises., test_resume_session_with_no_resume_queue_raises()
### Community 415 - "Community 415"
-Cohesion: 0.67
-Nodes (3): Equipment and project rows render without the per-row sync icon., Equipment and project rows render without the per-row sync icon., test_to_nicegui_nodes_equipment_and_project_have_no_sync_icon()
+Cohesion: 0.5
+Nodes (4): A cancel with ``discard_files=True`` deletes the partial directory., A cancel with ``discard_files=True`` deletes the partial directory., A cancel with ``discard_files=True`` deletes the partial directory., test_cancel_with_discard_files_removes_partial_dir()
### Community 416 - "Community 416"
-Cohesion: 0.67
-Nodes (3): The rclone-remote next-action points the operator at the setup docs., test_main_setup_banner_subline_tailored_for_nas_credentials(), test_main_setup_banner_subline_tailored_for_rclone_remote()
+Cohesion: 0.5
+Nodes (3): E2E smoke flow. Confirms the Phase 16 e2e harness can drive a real browser agai, Smoke: navigate to / and confirm the e2e harness is wired up. The Phase 16, test_root_url_responds_with_html()
### Community 417 - "Community 417"
-Cohesion: 0.67
-Nodes (3): The dynamic NAS-remote section is auto-selected when it's the gate., test_settings_first_incomplete_resolves_nas_credentials(), test_settings_first_incomplete_resolves_nas_remote()
+Cohesion: 0.5
+Nodes (3): Machine-readable catalog of the wizard's UX interactions. Each :class:`UXIntera, One operator-facing affordance in the wizard UI., UXInteraction
-### Community 418 - "Community 418"
-Cohesion: 0.67
-Nodes (3): The Phase 4 params default empty and drop out of the URL entirely., The Phase 4 params default empty and drop out of the URL entirely., test_build_main_query_omits_empty_phase4_params()
+### Community 419 - "Community 419"
+Cohesion: 0.5
+Nodes (3): empty_state(), Empty-state placeholder (GUI/Orchestrator Redesign §4 polish, Phase 5). A centr, Render a centred icon + hint placeholder; return the column element. ``icon
### Community 420 - "Community 420"
-Cohesion: 0.67
-Nodes (3): Motion tokens (DESIGN.md §07)., Motion tokens (DESIGN.md §07)., test_motion_tokens_match_designmd()
+Cohesion: 0.5
+Nodes (4): first_incomplete_section(), Return the first section ID in canonical order that's incomplete. The dynam, Return the first section ID in canonical order that's incomplete. The dynam, Return the first section ID in canonical order that's incomplete. The dynam
### Community 421 - "Community 421"
-Cohesion: 0.67
-Nodes (3): Semantic tokens alias the Okabe-Ito palette per DESIGN.md §01., Semantic tokens alias the Okabe-Ito palette per DESIGN.md §01., test_semantic_aliases_are_okabe_ito()
+Cohesion: 0.5
+Nodes (4): Mutable state for the dialog., Mutable state for the dialog., Mutable state for the dialog., SettingsState
### Community 422 - "Community 422"
-Cohesion: 0.67
-Nodes (3): Spacing tokens follow the 4px grid (DESIGN.md §03)., Spacing tokens follow the 4px grid (DESIGN.md §03)., test_spacing_scale_4px_grid()
+Cohesion: 0.5
+Nodes (4): _level_for_orphan(), Translate the engine-level enum into the rules.check_orphan input. The orph, ``_level_for_orphan`` returns None for non-project / non-run levels., test_level_for_orphan_returns_none_for_unmapped_levels()
### Community 423 - "Community 423"
-Cohesion: 0.67
-Nodes (3): Vermilion is reserved for the error / alert series (DESIGN.md §06)., Vermilion is reserved for the error / alert series (DESIGN.md §06)., test_vermilion_is_last_in_series()
+Cohesion: 0.5
+Nodes (4): PluginsConfig, ``plugins:`` block. Master opt-in for network-declaring plugins., ``plugins:`` block. Master opt-in for network-declaring plugins., test_plugins_config_default_allow_network_false()
### Community 424 - "Community 424"
-Cohesion: 0.67
-Nodes (3): Series order is fixed (DESIGN.md absolute constraint)., Series order is fixed (DESIGN.md absolute constraint)., test_okabe_ito_series_order_is_fixed()
+Cohesion: 0.5
+Nodes (3): _encode_files(), Encode a run-relative path tuple into the ``files`` JSON column., Insert a new ``QUEUED`` row for ``run_path``. ``files`` is the per-file
### Community 425 - "Community 425"
-Cohesion: 0.67
-Nodes (3): Frontend rules (DESIGN.md): series 5 is OI_BLUE but only after 4 prior series., Frontend rules (DESIGN.md): series 5 is OI_BLUE but only after 4 prior series., test_no_blue_collision_in_series_first_six()
+Cohesion: 0.5
+Nodes (4): test_obscure_missing_binary_raises_auth(), test_obscure_returns_stdout_stripped(), obscure(), Return the rclone-obscured form of ``password``. rclone refuses raw passwor
### Community 426 - "Community 426"
-Cohesion: 0.67
-Nodes (3): Type scale tokens are verbatim from DESIGN.md §02., Type scale tokens are verbatim from DESIGN.md §02., test_type_scale_matches_designmd()
+Cohesion: 0.5
+Nodes (3): _await_or_call(), ``/config`` router. Backend Spec §4.6.1, §4.9. Endpoints: * ``GET /config`` --, Invoke a saver that may be sync or async.
### Community 427 - "Community 427"
-Cohesion: 0.67
-Nodes (3): ``#F0E442`` is exposed as a token but never used for chrome. The chip strip, ``#F0E442`` is exposed as a token but never used for chrome. The chip strip, test_yellow_is_present_but_only_for_fills()
+Cohesion: 0.5
+Nodes (4): 4.3.1 The `constants/` package, 4.3.2 The `tray/` and `window/` packages, 4.3 Package Layout, code:block2 (exlab_wizard/)
### Community 428 - "Community 428"
-Cohesion: 0.67
-Nodes (3): All shadow definitions use ``rgba(0,54,96,...)`` (DESIGN.md §04)., All shadow definitions use ``rgba(0,54,96,...)`` (DESIGN.md §04)., test_shadows_are_navy_tinted()
+Cohesion: 0.5
+Nodes (3): Answer, Q: How are the example equipment, projects, run folders, and samples generated in --test mode of the wizard tray?, Source Nodes
### Community 429 - "Community 429"
-Cohesion: 0.67
-Nodes (3): Alert text variants are the documented hexes (DESIGN.md §05)., Alert text variants are the documented hexes (DESIGN.md §05)., test_alert_text_variants_match_designmd()
+Cohesion: 0.5
+Nodes (4): The Phase 4 params default empty and drop out of the URL entirely., The Phase 4 params default empty and drop out of the URL entirely., The Phase 4 params default empty and drop out of the URL entirely., test_build_main_query_omits_empty_phase4_params()
### Community 430 - "Community 430"
-Cohesion: 0.67
-Nodes (3): Frontend §2.1.4: warning is canonically ``--oi-orange``., Frontend §2.1.4: warning is canonically ``--oi-orange``., test_warning_token_is_oi_orange()
+Cohesion: 0.5
+Nodes (4): ``file`` keeps '/' readable but encodes spaces; ``q`` encodes everything., ``file`` keeps '/' readable but encodes spaces; ``q`` encodes everything., ``file`` keeps '/' readable but encodes spaces; ``q`` encodes everything., test_build_main_query_encodes_file_path_and_search()
### Community 431 - "Community 431"
Cohesion: 0.67
-Nodes (3): Border radius tokens (DESIGN.md §04)., Border radius tokens (DESIGN.md §04)., test_radius_tokens_match_designmd()
+Nodes (3): Suspended rows sort first, oldest started_at first (§9.5)., Suspended rows sort first, oldest started_at first (§9.5)., test_operations_modal_sort_suspended_first_oldest_first()
### Community 432 - "Community 432"
Cohesion: 0.67
-Nodes (3): Badge text variants are the documented darkened hexes (DESIGN.md §05)., Badge text variants are the documented darkened hexes (DESIGN.md §05)., test_badge_text_variants_are_wcag_aa()
+Nodes (3): The phase enum order matches Frontend §10.1., The phase enum order matches Frontend §10.1., test_session_progress_phase_order_is_canonical()
+
+### Community 433 - "Community 433"
+Cohesion: 0.67
+Nodes (3): An empty input has nothing to persist -- stay in the editor., An empty input has nothing to persist -- stay in the editor., test_commit_edit_with_empty_value_stays_editing_and_skips_save()
+
+### Community 434 - "Community 434"
+Cohesion: 0.67
+Nodes (3): When ``running_plugins`` carries N/M, a sub-row dict is emitted. We assert, When ``running_plugins`` carries N/M, a sub-row dict is emitted. We assert, test_session_progress_plugin_sub_row_present()
+
+### Community 435 - "Community 435"
+Cohesion: 0.67
+Nodes (3): The active phase has fraction 0.5 and ``is_active``., The active phase has fraction 0.5 and ``is_active``., test_session_progress_active_phase_marked()
### Community 436 - "Community 436"
Cohesion: 0.67
-Nodes (3): Redesign §3.1: the ``enabled`` toggle is removed; old configs that carry it, Redesign §3.1: the ``enabled`` toggle is removed; old configs that carry it, test_orchestrator_legacy_enabled_field_rejected()
+Nodes (3): Clicking *Set* opens the editor; *Cancel* must return to Not set., Clicking *Set* opens the editor; *Cancel* must return to Not set., test_begin_edit_from_not_set_enters_editing_remembering_not_set()
### Community 437 - "Community 437"
Cohesion: 0.67
-Nodes (3): Redesign §3.1: the ``enabled`` toggle is removed; ``label`` and ``staging_ro, Redesign §3.1: the ``enabled`` toggle is removed; ``label`` and ``staging_ro, test_orchestrator_config_defaults()
+Nodes (3): Clicking *Replace* opens the editor; *Cancel* must return to Set., Clicking *Replace* opens the editor; *Cancel* must return to Set., test_begin_edit_from_set_remembers_set_as_resting()
### Community 438 - "Community 438"
Cohesion: 0.67
-Nodes (3): They can be empty at load time (the setup-incomplete gate trips, not the Pyd, They can be empty at load time (the setup-incomplete gate trips, not the Pyd, test_orchestrator_label_and_staging_root_load_independently()
+Nodes (3): Banners exceed the 2-cap; overflow is reported., Banners exceed the 2-cap; overflow is reported., test_banner_stack_shows_visible_and_overflow_split()
+
+### Community 439 - "Community 439"
+Cohesion: 0.67
+Nodes (3): Settings has nine sections (Frontend §7.2 + §7.9 operators). The ``operator, Settings has nine sections (Frontend §7.2 + §7.9 operators). The ``operator, test_settings_nine_sections_includes_operators()
+
+### Community 440 - "Community 440"
+Cohesion: 0.67
+Nodes (3): Test runs add a TestRuns/ folder and TestRun_ leaf prefix., Test runs add a TestRuns/ folder and TestRun_ leaf prefix., test_wizard_run_preview_test_path_highlights()
+
+### Community 441 - "Community 441"
+Cohesion: 0.67
+Nodes (3): Translation preserves the chip state., Translation preserves the chip state., test_main_chip_state_to_tree_filters_round_trip()
+
+### Community 442 - "Community 442"
+Cohesion: 0.67
+Nodes (3): Three bullets describing what the app does. Redesign decision 2: bullets re, Three bullets describing what the app does. Redesign decision 2: bullets re, test_welcome_card_three_bullets()
+
+### Community 443 - "Community 443"
+Cohesion: 0.67
+Nodes (3): First incomplete section is the first per canonical order., First incomplete section is the first per canonical order., test_settings_first_incomplete_returns_canonical_first()
+
+### Community 444 - "Community 444"
+Cohesion: 0.67
+Nodes (3): Pre-flight: less than 100 MB free aborts (Frontend §10.5.4)., Pre-flight: less than 100 MB free aborts (Frontend §10.5.4)., test_wizard_project_preview_blocks_with_low_disk()
+
+### Community 445 - "Community 445"
+Cohesion: 0.67
+Nodes (3): Frontend §4 mandates seven steps in a fixed order., Frontend §4 mandates seven steps in a fixed order., test_wizard_project_seven_steps()
+
+### Community 446 - "Community 446"
+Cohesion: 0.67
+Nodes (3): Setup-incomplete banner uses ``--color-warning`` per Frontend §3.1.4., Setup-incomplete banner uses ``--color-warning`` per Frontend §3.1.4., test_main_setup_incomplete_banner_uses_warning()
### Community 447 - "Community 447"
Cohesion: 0.67
-Nodes (3): When no factory is injected, the client builds the per-equipment driver. We, When no factory is injected, the client builds the named-remote driver. We, test_default_push_factory_uses_real_driver()
+Nodes (3): Frontend §11.5: minimum 10 chars after trim., Frontend §11.5: minimum 10 chars after trim., test_problems_override_reason_min_length()
### Community 448 - "Community 448"
Cohesion: 0.67
-Nodes (3): ``_mark_synced`` is a no-op when ``creation.json`` doesn't exist., ``_mark_synced`` is a no-op when ``creation.json`` doesn't exist., test_mark_synced_no_op_when_creation_missing()
+Nodes (3): Step 1 requires a LIMS short_id., Step 1 requires a LIMS short_id., test_wizard_project_can_advance_blocks_until_lims_picked()
### Community 449 - "Community 449"
Cohesion: 0.67
-Nodes (3): ``_delete_local`` is a no-op when the run directory is already gone., ``_delete_local`` is a no-op when the run directory is already gone., test_delete_local_no_op_when_path_missing()
+Nodes (3): Whitespace is trimmed before length check., Whitespace is trimmed before length check., test_problems_override_reason_trims_whitespace()
+
+### Community 450 - "Community 450"
+Cohesion: 0.67
+Nodes (3): Test-mode primary button uses ``warning`` color (Frontend §5.3)., Test-mode primary button uses ``warning`` color (Frontend §5.3)., test_wizard_run_test_button_uses_warning_color()
### Community 451 - "Community 451"
Cohesion: 0.67
-Nodes (3): If neither ``creation.paths.local`` nor ``run_path`` contains a configured e, If neither ``creation.paths.local`` nor ``run_path`` contains a configured e, test_infer_equipment_id_falls_back_to_first()
+Nodes (3): Frontend §11.5: maximum 500 chars after trim., Frontend §11.5: maximum 500 chars after trim., test_problems_override_reason_max_length()
+
+### Community 452 - "Community 452"
+Cohesion: 0.67
+Nodes (3): Welcome card defaults autostart to on (Frontend §3.1.3)., Welcome card defaults autostart to on (Frontend §3.1.3)., test_welcome_card_spec_default_autostart_on()
### Community 453 - "Community 453"
Cohesion: 0.67
-Nodes (3): Install the rclone stub on PATH for the test., Install the rclone stub on PATH for the test., stub_binaries_on_path()
+Nodes (3): Within 10 of the maximum -> near-limit warning., Within 10 of the maximum -> near-limit warning., test_problems_near_limit_flag()
+
+### Community 454 - "Community 454"
+Cohesion: 0.67
+Nodes (3): Five problem-class chips per Backend §8.1.1-§8.1.5., Five problem-class chips per Backend §8.1.1-§8.1.5., test_problems_chip_definitions_match_spec()
+
+### Community 455 - "Community 455"
+Cohesion: 0.67
+Nodes (3): Active default-on, Archived default-off, Test runs default-on., Active default-on, Archived default-off, Test runs default-on., test_main_default_chips_match_spec()
+
+### Community 457 - "Community 457"
+Cohesion: 0.67
+Nodes (3): Series order is fixed (DESIGN.md absolute constraint)., Series order is fixed (DESIGN.md absolute constraint)., test_okabe_ito_series_order_is_fixed()
+
+### Community 458 - "Community 458"
+Cohesion: 0.67
+Nodes (3): Type scale tokens are verbatim from DESIGN.md §02., Type scale tokens are verbatim from DESIGN.md §02., test_type_scale_matches_designmd()
### Community 459 - "Community 459"
Cohesion: 0.67
-Nodes (3): Defensive fallback: any value that isn't a recognized SetupState returns an, Defensive fallback: any value that isn't a recognized SetupState returns an, test_setup_state_missing_unrecognized_state_returns_empty()
+Nodes (3): Motion tokens (DESIGN.md §07)., Motion tokens (DESIGN.md §07)., test_motion_tokens_match_designmd()
### Community 460 - "Community 460"
Cohesion: 0.67
-Nodes (3): When config is None but state is INCOMPLETE_NO_LIMS, the whole lims block is, When config is None but state is INCOMPLETE_NO_LIMS, the whole lims block is, test_setup_state_missing_for_no_lims_with_none_config()
+Nodes (3): Vermilion is reserved for the error / alert series (DESIGN.md §06)., Vermilion is reserved for the error / alert series (DESIGN.md §06)., test_vermilion_is_last_in_series()
+
+### Community 461 - "Community 461"
+Cohesion: 0.67
+Nodes (3): All shadow definitions use ``rgba(0,54,96,...)`` (DESIGN.md §04)., All shadow definitions use ``rgba(0,54,96,...)`` (DESIGN.md §04)., test_shadows_are_navy_tinted()
+
+### Community 462 - "Community 462"
+Cohesion: 0.67
+Nodes (3): Semantic tokens alias the Okabe-Ito palette per DESIGN.md §01., Semantic tokens alias the Okabe-Ito palette per DESIGN.md §01., test_semantic_aliases_are_okabe_ito()
### Community 463 - "Community 463"
Cohesion: 0.67
-Nodes (3): code:block3 (+-- 3px accent bar (color by category) ---------------------), code:css (.stat-card {), Stat Cards
+Nodes (3): Border radius tokens (DESIGN.md §04)., Border radius tokens (DESIGN.md §04)., test_radius_tokens_match_designmd()
### Community 464 - "Community 464"
Cohesion: 0.67
-Nodes (3): 08 -- Usage Rules & Anti-Patterns, Do, Don't
+Nodes (3): Badge text variants are the documented darkened hexes (DESIGN.md §05)., Badge text variants are the documented darkened hexes (DESIGN.md §05)., test_badge_text_variants_are_wcag_aa()
+
+### Community 465 - "Community 465"
+Cohesion: 0.67
+Nodes (3): Spacing tokens follow the 4px grid (DESIGN.md §03)., Spacing tokens follow the 4px grid (DESIGN.md §03)., test_spacing_scale_4px_grid()
+
+### Community 466 - "Community 466"
+Cohesion: 0.67
+Nodes (3): Frontend rules (DESIGN.md): series 5 is OI_BLUE but only after 4 prior series., Frontend rules (DESIGN.md): series 5 is OI_BLUE but only after 4 prior series., test_no_blue_collision_in_series_first_six()
+
+### Community 467 - "Community 467"
+Cohesion: 0.67
+Nodes (3): ``#F0E442`` is exposed as a token but never used for chrome. The chip strip, ``#F0E442`` is exposed as a token but never used for chrome. The chip strip, test_yellow_is_present_but_only_for_fills()
+
+### Community 468 - "Community 468"
+Cohesion: 0.67
+Nodes (3): Frontend §2.1.4: warning is canonically ``--oi-orange``., Frontend §2.1.4: warning is canonically ``--oi-orange``., test_warning_token_is_oi_orange()
+
+### Community 469 - "Community 469"
+Cohesion: 0.67
+Nodes (3): Alert text variants are the documented hexes (DESIGN.md §05)., Alert text variants are the documented hexes (DESIGN.md §05)., test_alert_text_variants_match_designmd()
+
+### Community 470 - "Community 470"
+Cohesion: 0.67
+Nodes (3): Frontend §2.1.3 overrides DM Sans / DM Mono with IBM Plex / system mono., Frontend §2.1.3 overrides DM Sans / DM Mono with IBM Plex / system mono., test_typography_uses_frontend_override()
+
+### Community 473 - "Community 473"
+Cohesion: 0.67
+Nodes (3): Map relpath -> bytes for README/creation.json/payload (no equipment.json)., _snapshot(), test_determinism()
+
+### Community 483 - "Community 483"
+Cohesion: 0.67
+Nodes (3): A run whose parent project name is not a safe path segment (§3.2) is rejecte, A run whose parent project name is not a safe path segment (§3.2) is rejecte, test_validation_rejects_unsafe_project_name_for_runs()
+
+### Community 489 - "Community 489"
+Cohesion: 0.67
+Nodes (3): fake_home(), Return a fake HOME under tmp_path; route ``Path.home()`` to it., Return a fake HOME under tmp_path; route ``Path.home()`` to it.
+
+### Community 491 - "Community 491"
+Cohesion: 0.67
+Nodes (3): Return the ``readme_fields.json`` path under a run or project directory., Return the ``readme_fields.json`` path under a run or project directory., readme_fields_json_path()
+
+### Community 492 - "Community 492"
+Cohesion: 0.67
+Nodes (3): Redesign §3.1: the ``enabled`` toggle is removed; old configs that carry it, Redesign §3.1: the ``enabled`` toggle is removed; old configs that carry it, test_orchestrator_legacy_enabled_field_rejected()
+
+### Community 493 - "Community 493"
+Cohesion: 0.67
+Nodes (3): Redesign §3.1: the ``enabled`` toggle is removed; ``label`` and ``staging_ro, Redesign §3.1: the ``enabled`` toggle is removed; ``label`` and ``staging_ro, test_orchestrator_config_defaults()
+
+### Community 494 - "Community 494"
+Cohesion: 0.67
+Nodes (3): They can be empty at load time (the setup-incomplete gate trips, not the Pyd, They can be empty at load time (the setup-incomplete gate trips, not the Pyd, test_orchestrator_label_and_staging_root_load_independently()
+
+### Community 495 - "Community 495"
+Cohesion: 0.67
+Nodes (3): Install the rclone stub under ``tmp_path/bin`` and prepend to PATH., Install the rclone stub under ``tmp_path/bin`` and prepend to PATH., stub_dir()
+
+### Community 496 - "Community 496"
+Cohesion: 0.67
+Nodes (3): Tell the stub to append every invocation's argv to a log file., Tell the stub to append every invocation's argv to a log file., record_argv()
+
+### Community 497 - "Community 497"
+Cohesion: 0.67
+Nodes (3): 04 -- Border Radius & Shadows, Border Radius, Shadows
+
+### Community 498 - "Community 498"
+Cohesion: 0.67
+Nodes (3): code:block3 (+-- 3px accent bar (color by category) ---------------------), code:css (.stat-card {), Stat Cards
+
+### Community 501 - "Community 501"
+Cohesion: 0.67
+Nodes (3): 6.4.1 Suspend / resume flow, 6.4.2 Resume contract (what the plugin author must guarantee), 6.4 Plugin Input Escalation (`PluginInputRequired`)
+
+### Community 502 - "Community 502"
+Cohesion: 0.67
+Nodes (3): 4.4.6 NASSyncClient and LIMSClient, code:python (class LIMSClient:), code:python (class NASSyncClient:)
+
+### Community 504 - "Community 504"
+Cohesion: 0.67
+Nodes (3): Phase 4 adds optional file / q / density params to the same URL model., Phase 4 adds optional file / q / density params to the same URL model., test_build_main_query_includes_file_q_density()
## Knowledge Gaps
-- **4281 isolated node(s):** `Tests for the top-level exception hierarchy in ``exlab_wizard.errors``. These t`, `Unit tests for ``exlab_wizard.paths``. OS-aware directory helpers + equipment-i`, `Construct a minimal valid EquipmentConfig for setup-state fixtures.`, `Minimal orchestrator identity (Redesign §3.1) for setup-state fixtures.`, `Construct a fully READY Config (paths + equipment + LIMS endpoint+email). R` (+4276 more)
+- **4648 isolated node(s):** `Tests for the top-level exception hierarchy in ``exlab_wizard.errors``. These t`, `Unit tests for ``exlab_wizard.paths``. OS-aware directory helpers + equipment-i`, `Construct a minimal valid EquipmentConfig for setup-state fixtures.`, `Minimal orchestrator identity (Redesign §3.1) for setup-state fixtures.`, `Construct a fully READY Config (paths + equipment + LIMS endpoint+email). R` (+4643 more)
These have ≤1 connection - possible missing edges or undocumented components.
-- **201 thin communities (<3 nodes) omitted from report** — run `graphify query` to explore isolated nodes.
+- **189 thin communities (<3 nodes) omitted from report** — run `graphify query` to explore isolated nodes.
## Suggested Questions
_Questions this graph is uniquely positioned to answer:_
-- **Why does `ConfigError` connect `Community 0` to `Community 133`, `Community 134`, `Community 8`, `Community 9`, `Community 13`, `Community 271`, `Community 146`, `Community 148`, `Community 21`, `Community 23`, `Community 158`, `Community 166`, `Community 174`, `Community 60`, `Community 79`, `Community 80`, `Community 82`, `Community 84`, `Community 351`, `Community 370`, `Community 250`, `Community 252`?**
- _High betweenness centrality (0.070) - this node is a cross-community bridge._
-- **Why does `Config` connect `Community 0` to `Community 129`, `Community 1`, `Community 134`, `Community 7`, `Community 8`, `Community 9`, `Community 17`, `Community 146`, `Community 18`, `Community 20`, `Community 21`, `Community 27`, `Community 28`, `Community 284`, `Community 174`, `Community 48`, `Community 49`, `Community 51`, `Community 182`, `Community 79`, `Community 107`, `Community 250`?**
- _High betweenness centrality (0.068) - this node is a cross-community bridge._
-- **Why does `TrayApp` connect `Community 20` to `Community 0`, `Community 36`, `Community 40`, `Community 73`, `Community 74`, `Community 47`, `Community 114`, `Community 86`?**
- _High betweenness centrality (0.055) - this node is a cross-community bridge._
+- **Why does `ConfigError` connect `Community 10` to `Community 0`, `Community 1`, `Community 256`, `Community 3`, `Community 4`, `Community 5`, `Community 261`, `Community 8`, `Community 137`, `Community 13`, `Community 15`, `Community 19`, `Community 292`, `Community 37`, `Community 38`, `Community 423`, `Community 174`, `Community 75`, `Community 78`, `Community 211`, `Community 89`, `Community 98`, `Community 108`, `Community 111`, `Community 378`?**
+ _High betweenness centrality (0.079) - this node is a cross-community bridge._
+- **Why does `Config` connect `Community 0` to `Community 1`, `Community 3`, `Community 261`, `Community 5`, `Community 135`, `Community 6`, `Community 8`, `Community 10`, `Community 9`, `Community 13`, `Community 14`, `Community 278`, `Community 25`, `Community 30`, `Community 37`, `Community 38`, `Community 421`, `Community 43`, `Community 60`, `Community 67`, `Community 95`, `Community 121`?**
+ _High betweenness centrality (0.066) - this node is a cross-community bridge._
+- **Why does `_UiSpy` connect `Community 14` to `Community 0`, `Community 2`, `Community 131`, `Community 18`, `Community 23`, `Community 158`, `Community 33`, `Community 170`, `Community 171`, `Community 172`, `Community 173`, `Community 180`, `Community 54`, `Community 69`, `Community 86`, `Community 351`, `Community 106`, `Community 107`, `Community 125`?**
+ _High betweenness centrality (0.059) - this node is a cross-community bridge._
- **Are the 120 inferred relationships involving `create_app()` (e.g. with `test_get_setup_status_reports_configure_rclone_remote()` and `test_get_setup_status_ready()`) actually correct?**
_`create_app()` has 120 INFERRED edges - model-reasoned connections that need verification._
- **Are the 120 inferred relationships involving `AppDependencies` (e.g. with `_RecordingComponent` and `_RecordingValidator`) actually correct?**
diff --git a/graphify-out/graph.json b/graphify-out/graph.json
index e1e51ff..2303de9 100644
--- a/graphify-out/graph.json
+++ b/graphify-out/graph.json
@@ -9,7 +9,7 @@
"source_file": "tests/__init__.py",
"source_location": "L1",
"id": "tests_init_py",
- "community": 528,
+ "community": 552,
"norm_label": "__init__.py"
},
{
@@ -18,7 +18,7 @@
"source_file": "tests/unit/test_errors.py",
"source_location": "L1",
"id": "tests_unit_test_errors_py",
- "community": 23,
+ "community": 15,
"norm_label": "test_errors.py"
},
{
@@ -27,7 +27,7 @@
"source_file": "tests/unit/test_errors.py",
"source_location": "L33",
"id": "unit_test_errors_test_exlab_error_is_subclass_of_exception",
- "community": 23,
+ "community": 15,
"norm_label": "test_exlab_error_is_subclass_of_exception()"
},
{
@@ -36,7 +36,7 @@
"source_file": "tests/unit/test_errors.py",
"source_location": "L37",
"id": "unit_test_errors_test_exlab_error_can_be_raised_and_caught",
- "community": 23,
+ "community": 15,
"norm_label": "test_exlab_error_can_be_raised_and_caught()"
},
{
@@ -45,7 +45,7 @@
"source_file": "tests/unit/test_errors.py",
"source_location": "L48",
"id": "unit_test_errors_test_config_error_is_subclass_of_exlab_error",
- "community": 23,
+ "community": 15,
"norm_label": "test_config_error_is_subclass_of_exlab_error()"
},
{
@@ -54,7 +54,7 @@
"source_file": "tests/unit/test_errors.py",
"source_location": "L52",
"id": "unit_test_errors_test_config_error_can_be_raised_and_caught",
- "community": 23,
+ "community": 10,
"norm_label": "test_config_error_can_be_raised_and_caught()"
},
{
@@ -63,7 +63,7 @@
"source_file": "tests/unit/test_errors.py",
"source_location": "L57",
"id": "unit_test_errors_test_validation_error_is_subclass_of_exlab_error",
- "community": 23,
+ "community": 15,
"norm_label": "test_validation_error_is_subclass_of_exlab_error()"
},
{
@@ -72,7 +72,7 @@
"source_file": "tests/unit/test_errors.py",
"source_location": "L61",
"id": "unit_test_errors_test_validation_error_can_be_raised_and_caught",
- "community": 23,
+ "community": 10,
"norm_label": "test_validation_error_can_be_raised_and_caught()"
},
{
@@ -81,7 +81,7 @@
"source_file": "tests/unit/test_errors.py",
"source_location": "L66",
"id": "unit_test_errors_test_template_load_error_is_subclass_of_exlab_error",
- "community": 23,
+ "community": 15,
"norm_label": "test_template_load_error_is_subclass_of_exlab_error()"
},
{
@@ -90,7 +90,7 @@
"source_file": "tests/unit/test_errors.py",
"source_location": "L70",
"id": "unit_test_errors_test_template_load_error_can_be_raised_and_caught",
- "community": 23,
+ "community": 15,
"norm_label": "test_template_load_error_can_be_raised_and_caught()"
},
{
@@ -99,7 +99,7 @@
"source_file": "tests/unit/test_errors.py",
"source_location": "L75",
"id": "unit_test_errors_test_plugin_error_is_subclass_of_exlab_error",
- "community": 23,
+ "community": 15,
"norm_label": "test_plugin_error_is_subclass_of_exlab_error()"
},
{
@@ -108,7 +108,7 @@
"source_file": "tests/unit/test_errors.py",
"source_location": "L79",
"id": "unit_test_errors_test_plugin_error_can_be_raised_and_caught",
- "community": 58,
+ "community": 15,
"norm_label": "test_plugin_error_can_be_raised_and_caught()"
},
{
@@ -117,7 +117,7 @@
"source_file": "tests/unit/test_errors.py",
"source_location": "L84",
"id": "unit_test_errors_test_keyring_unavailable_error_is_subclass_of_exlab_error",
- "community": 23,
+ "community": 15,
"norm_label": "test_keyring_unavailable_error_is_subclass_of_exlab_error()"
},
{
@@ -126,7 +126,7 @@
"source_file": "tests/unit/test_errors.py",
"source_location": "L88",
"id": "unit_test_errors_test_keyring_unavailable_error_can_be_raised_and_caught",
- "community": 23,
+ "community": 15,
"norm_label": "test_keyring_unavailable_error_can_be_raised_and_caught()"
},
{
@@ -135,7 +135,7 @@
"source_file": "tests/unit/test_errors.py",
"source_location": "L93",
"id": "unit_test_errors_test_setup_incomplete_error_is_subclass_of_exlab_error",
- "community": 23,
+ "community": 15,
"norm_label": "test_setup_incomplete_error_is_subclass_of_exlab_error()"
},
{
@@ -144,7 +144,7 @@
"source_file": "tests/unit/test_errors.py",
"source_location": "L97",
"id": "unit_test_errors_test_setup_incomplete_error_can_be_raised_and_caught",
- "community": 23,
+ "community": 15,
"norm_label": "test_setup_incomplete_error_can_be_raised_and_caught()"
},
{
@@ -153,7 +153,7 @@
"source_file": "tests/unit/test_errors.py",
"source_location": "L107",
"id": "unit_test_errors_test_template_core_field_redeclared_is_subclass_of_template_load_error",
- "community": 23,
+ "community": 15,
"norm_label": "test_template_core_field_redeclared_is_subclass_of_template_load_error()"
},
{
@@ -162,7 +162,7 @@
"source_file": "tests/unit/test_errors.py",
"source_location": "L112",
"id": "unit_test_errors_test_template_core_field_redeclared_is_also_subclass_of_exlab_error",
- "community": 23,
+ "community": 15,
"norm_label": "test_template_core_field_redeclared_is_also_subclass_of_exlab_error()"
},
{
@@ -171,7 +171,7 @@
"source_file": "tests/unit/test_errors.py",
"source_location": "L116",
"id": "unit_test_errors_test_template_core_field_redeclared_can_be_caught_as_template_load_error",
- "community": 23,
+ "community": 15,
"norm_label": "test_template_core_field_redeclared_can_be_caught_as_template_load_error()"
},
{
@@ -180,7 +180,7 @@
"source_file": "tests/unit/test_errors.py",
"source_location": "L121",
"id": "unit_test_errors_test_template_core_field_redeclared_can_be_caught_as_exlab_error",
- "community": 23,
+ "community": 15,
"norm_label": "test_template_core_field_redeclared_can_be_caught_as_exlab_error()"
},
{
@@ -189,7 +189,7 @@
"source_file": "tests/unit/test_errors.py",
"source_location": "L131",
"id": "unit_test_errors_test_plugin_input_required_is_subclass_of_exlab_error",
- "community": 23,
+ "community": 15,
"norm_label": "test_plugin_input_required_is_subclass_of_exlab_error()"
},
{
@@ -198,7 +198,7 @@
"source_file": "tests/unit/test_errors.py",
"source_location": "L135",
"id": "unit_test_errors_test_plugin_input_required_sets_fields_attribute",
- "community": 23,
+ "community": 15,
"norm_label": "test_plugin_input_required_sets_fields_attribute()"
},
{
@@ -207,7 +207,7 @@
"source_file": "tests/unit/test_errors.py",
"source_location": "L141",
"id": "unit_test_errors_test_plugin_input_required_accepts_empty_fields_list",
- "community": 23,
+ "community": 15,
"norm_label": "test_plugin_input_required_accepts_empty_fields_list()"
},
{
@@ -216,7 +216,7 @@
"source_file": "tests/unit/test_errors.py",
"source_location": "L146",
"id": "unit_test_errors_test_plugin_input_required_reason_property_returns_message_string",
- "community": 23,
+ "community": 15,
"norm_label": "test_plugin_input_required_reason_property_returns_message_string()"
},
{
@@ -225,7 +225,7 @@
"source_file": "tests/unit/test_errors.py",
"source_location": "L151",
"id": "unit_test_errors_test_plugin_input_required_str_equals_reason",
- "community": 23,
+ "community": 15,
"norm_label": "test_plugin_input_required_str_equals_reason()"
},
{
@@ -234,7 +234,7 @@
"source_file": "tests/unit/test_errors.py",
"source_location": "L157",
"id": "unit_test_errors_test_plugin_input_required_can_be_raised_and_caught",
- "community": 23,
+ "community": 15,
"norm_label": "test_plugin_input_required_can_be_raised_and_caught()"
},
{
@@ -243,7 +243,7 @@
"source_file": "tests/unit/test_errors.py",
"source_location": "L164",
"id": "unit_test_errors_test_plugin_input_required_can_be_caught_as_exlab_error",
- "community": 23,
+ "community": 15,
"norm_label": "test_plugin_input_required_can_be_caught_as_exlab_error()"
},
{
@@ -252,7 +252,7 @@
"source_file": "tests/unit/test_errors.py",
"source_location": "L174",
"id": "unit_test_errors_test_schema_major_mismatch_is_subclass_of_exlab_error",
- "community": 23,
+ "community": 15,
"norm_label": "test_schema_major_mismatch_is_subclass_of_exlab_error()"
},
{
@@ -261,7 +261,7 @@
"source_file": "tests/unit/test_errors.py",
"source_location": "L178",
"id": "unit_test_errors_test_schema_major_mismatch_sets_expected_major_attribute",
- "community": 23,
+ "community": 15,
"norm_label": "test_schema_major_mismatch_sets_expected_major_attribute()"
},
{
@@ -270,7 +270,7 @@
"source_file": "tests/unit/test_errors.py",
"source_location": "L183",
"id": "unit_test_errors_test_schema_major_mismatch_sets_found_attribute",
- "community": 23,
+ "community": 15,
"norm_label": "test_schema_major_mismatch_sets_found_attribute()"
},
{
@@ -279,7 +279,7 @@
"source_file": "tests/unit/test_errors.py",
"source_location": "L188",
"id": "unit_test_errors_test_schema_major_mismatch_str_contains_expected_and_found",
- "community": 23,
+ "community": 15,
"norm_label": "test_schema_major_mismatch_str_contains_expected_and_found()"
},
{
@@ -288,7 +288,7 @@
"source_file": "tests/unit/test_errors.py",
"source_location": "L195",
"id": "unit_test_errors_test_schema_major_mismatch_can_be_raised_and_caught",
- "community": 23,
+ "community": 15,
"norm_label": "test_schema_major_mismatch_can_be_raised_and_caught()"
},
{
@@ -297,7 +297,7 @@
"source_file": "tests/unit/test_errors.py",
"source_location": "L202",
"id": "unit_test_errors_test_schema_major_mismatch_can_be_caught_as_exlab_error",
- "community": 23,
+ "community": 15,
"norm_label": "test_schema_major_mismatch_can_be_caught_as_exlab_error()"
},
{
@@ -306,7 +306,7 @@
"source_file": "tests/unit/test_errors.py",
"source_location": "L212",
"id": "unit_test_errors_test_all_lists_every_public_exception_class",
- "community": 23,
+ "community": 15,
"norm_label": "test_all_lists_every_public_exception_class()"
},
{
@@ -315,7 +315,7 @@
"source_file": "tests/unit/test_errors.py",
"source_location": "L229",
"id": "unit_test_errors_test_all_entries_resolve_to_module_attributes",
- "community": 23,
+ "community": 15,
"norm_label": "test_all_entries_resolve_to_module_attributes()"
},
{
@@ -324,7 +324,7 @@
"source_file": "tests/unit/test_errors.py",
"source_location": "L1",
"id": "unit_test_errors_rationale_1",
- "community": 23,
+ "community": 15,
"norm_label": "tests for the top-level exception hierarchy in ``exlab_wizard.errors``. these t"
},
{
@@ -333,7 +333,7 @@
"source_file": "tests/unit/__init__.py",
"source_location": "L1",
"id": "tests_unit_init_py",
- "community": 529,
+ "community": 553,
"norm_label": "__init__.py"
},
{
@@ -342,7 +342,7 @@
"source_file": "tests/unit/test_paths.py",
"source_location": "L1",
"id": "tests_unit_test_paths_py",
- "community": 82,
+ "community": 75,
"norm_label": "test_paths.py"
},
{
@@ -351,7 +351,7 @@
"source_file": "tests/unit/test_paths.py",
"source_location": "L52",
"id": "unit_test_paths_make_equipment",
- "community": 52,
+ "community": 59,
"norm_label": "_make_equipment()"
},
{
@@ -360,7 +360,7 @@
"source_file": "tests/unit/test_paths.py",
"source_location": "L64",
"id": "unit_test_paths_make_orchestrator",
- "community": 52,
+ "community": 59,
"norm_label": "_make_orchestrator()"
},
{
@@ -369,7 +369,7 @@
"source_file": "tests/unit/test_paths.py",
"source_location": "L74",
"id": "unit_test_paths_ready_config",
- "community": 153,
+ "community": 160,
"norm_label": "_ready_config()"
},
{
@@ -378,7 +378,7 @@
"source_file": "tests/unit/test_paths.py",
"source_location": "L103",
"id": "unit_test_paths_fake_home",
- "community": 82,
+ "community": 489,
"norm_label": "fake_home()"
},
{
@@ -387,7 +387,7 @@
"source_file": "tests/unit/test_paths.py",
"source_location": "L126",
"id": "unit_test_paths_test_os_config_path_macos",
- "community": 64,
+ "community": 76,
"norm_label": "test_os_config_path_macos()"
},
{
@@ -396,7 +396,7 @@
"source_file": "tests/unit/test_paths.py",
"source_location": "L132",
"id": "unit_test_paths_test_os_config_path_windows",
- "community": 64,
+ "community": 76,
"norm_label": "test_os_config_path_windows()"
},
{
@@ -405,7 +405,7 @@
"source_file": "tests/unit/test_paths.py",
"source_location": "L140",
"id": "unit_test_paths_test_os_config_path_linux_with_xdg",
- "community": 64,
+ "community": 76,
"norm_label": "test_os_config_path_linux_with_xdg()"
},
{
@@ -414,7 +414,7 @@
"source_file": "tests/unit/test_paths.py",
"source_location": "L148",
"id": "unit_test_paths_test_os_config_path_linux_without_xdg",
- "community": 64,
+ "community": 76,
"norm_label": "test_os_config_path_linux_without_xdg()"
},
{
@@ -423,7 +423,7 @@
"source_file": "tests/unit/test_paths.py",
"source_location": "L159",
"id": "unit_test_paths_test_os_state_path_macos",
- "community": 235,
+ "community": 239,
"norm_label": "test_os_state_path_macos()"
},
{
@@ -432,7 +432,7 @@
"source_file": "tests/unit/test_paths.py",
"source_location": "L165",
"id": "unit_test_paths_test_os_state_path_windows",
- "community": 235,
+ "community": 239,
"norm_label": "test_os_state_path_windows()"
},
{
@@ -441,7 +441,7 @@
"source_file": "tests/unit/test_paths.py",
"source_location": "L173",
"id": "unit_test_paths_test_os_state_path_linux_with_xdg",
- "community": 235,
+ "community": 239,
"norm_label": "test_os_state_path_linux_with_xdg()"
},
{
@@ -450,7 +450,7 @@
"source_file": "tests/unit/test_paths.py",
"source_location": "L181",
"id": "unit_test_paths_test_os_state_path_linux_without_xdg",
- "community": 235,
+ "community": 239,
"norm_label": "test_os_state_path_linux_without_xdg()"
},
{
@@ -459,7 +459,7 @@
"source_file": "tests/unit/test_paths.py",
"source_location": "L192",
"id": "unit_test_paths_test_os_cache_path_macos",
- "community": 64,
+ "community": 76,
"norm_label": "test_os_cache_path_macos()"
},
{
@@ -468,7 +468,7 @@
"source_file": "tests/unit/test_paths.py",
"source_location": "L198",
"id": "unit_test_paths_test_os_cache_path_windows",
- "community": 64,
+ "community": 76,
"norm_label": "test_os_cache_path_windows()"
},
{
@@ -477,7 +477,7 @@
"source_file": "tests/unit/test_paths.py",
"source_location": "L206",
"id": "unit_test_paths_test_os_cache_path_linux_with_xdg",
- "community": 64,
+ "community": 76,
"norm_label": "test_os_cache_path_linux_with_xdg()"
},
{
@@ -486,7 +486,7 @@
"source_file": "tests/unit/test_paths.py",
"source_location": "L214",
"id": "unit_test_paths_test_os_cache_path_linux_without_xdg",
- "community": 64,
+ "community": 76,
"norm_label": "test_os_cache_path_linux_without_xdg()"
},
{
@@ -495,7 +495,7 @@
"source_file": "tests/unit/test_paths.py",
"source_location": "L225",
"id": "unit_test_paths_test_os_central_log_path_macos",
- "community": 274,
+ "community": 238,
"norm_label": "test_os_central_log_path_macos()"
},
{
@@ -504,7 +504,7 @@
"source_file": "tests/unit/test_paths.py",
"source_location": "L231",
"id": "unit_test_paths_test_os_central_log_path_windows",
- "community": 274,
+ "community": 238,
"norm_label": "test_os_central_log_path_windows()"
},
{
@@ -513,7 +513,7 @@
"source_file": "tests/unit/test_paths.py",
"source_location": "L239",
"id": "unit_test_paths_test_os_central_log_path_linux_with_xdg",
- "community": 274,
+ "community": 238,
"norm_label": "test_os_central_log_path_linux_with_xdg()"
},
{
@@ -522,7 +522,7 @@
"source_file": "tests/unit/test_paths.py",
"source_location": "L249",
"id": "unit_test_paths_test_os_central_log_path_linux_without_xdg",
- "community": 274,
+ "community": 238,
"norm_label": "test_os_central_log_path_linux_without_xdg()"
},
{
@@ -531,7 +531,7 @@
"source_file": "tests/unit/test_paths.py",
"source_location": "L266",
"id": "unit_test_paths_test_suggested_staging_root_linux_fallback",
- "community": 64,
+ "community": 76,
"norm_label": "test_suggested_staging_root_linux_fallback()"
},
{
@@ -540,7 +540,7 @@
"source_file": "tests/unit/test_paths.py",
"source_location": "L274",
"id": "unit_test_paths_test_suggested_staging_root_linux_honors_xdg_data_home",
- "community": 64,
+ "community": 76,
"norm_label": "test_suggested_staging_root_linux_honors_xdg_data_home()"
},
{
@@ -549,7 +549,7 @@
"source_file": "tests/unit/test_paths.py",
"source_location": "L283",
"id": "unit_test_paths_test_suggested_staging_root_macos",
- "community": 64,
+ "community": 76,
"norm_label": "test_suggested_staging_root_macos()"
},
{
@@ -558,7 +558,7 @@
"source_file": "tests/unit/test_paths.py",
"source_location": "L289",
"id": "unit_test_paths_test_suggested_staging_root_windows",
- "community": 64,
+ "community": 76,
"norm_label": "test_suggested_staging_root_windows()"
},
{
@@ -567,7 +567,7 @@
"source_file": "tests/unit/test_paths.py",
"source_location": "L310",
"id": "unit_test_paths_test_test_mode_suffixes_os_config_path",
- "community": 64,
+ "community": 76,
"norm_label": "test_test_mode_suffixes_os_config_path()"
},
{
@@ -576,7 +576,7 @@
"source_file": "tests/unit/test_paths.py",
"source_location": "L319",
"id": "unit_test_paths_test_test_mode_suffixes_os_state_path",
- "community": 235,
+ "community": 239,
"norm_label": "test_test_mode_suffixes_os_state_path()"
},
{
@@ -585,7 +585,7 @@
"source_file": "tests/unit/test_paths.py",
"source_location": "L326",
"id": "unit_test_paths_test_test_mode_suffixes_os_cache_path",
- "community": 64,
+ "community": 76,
"norm_label": "test_test_mode_suffixes_os_cache_path()"
},
{
@@ -594,7 +594,7 @@
"source_file": "tests/unit/test_paths.py",
"source_location": "L333",
"id": "unit_test_paths_test_test_mode_suffixes_os_central_log_path",
- "community": 274,
+ "community": 238,
"norm_label": "test_test_mode_suffixes_os_central_log_path()"
},
{
@@ -603,7 +603,7 @@
"source_file": "tests/unit/test_paths.py",
"source_location": "L342",
"id": "unit_test_paths_test_test_mode_suffixes_suggested_staging_root",
- "community": 64,
+ "community": 76,
"norm_label": "test_test_mode_suffixes_suggested_staging_root()"
},
{
@@ -612,7 +612,7 @@
"source_file": "tests/unit/test_paths.py",
"source_location": "L353",
"id": "unit_test_paths_test_test_mode_off_does_not_suffix",
- "community": 64,
+ "community": 76,
"norm_label": "test_test_mode_off_does_not_suffix()"
},
{
@@ -621,7 +621,7 @@
"source_file": "tests/unit/test_paths.py",
"source_location": "L372",
"id": "unit_test_paths_test_ensure_dir_creates_missing",
- "community": 235,
+ "community": 238,
"norm_label": "test_ensure_dir_creates_missing()"
},
{
@@ -630,7 +630,7 @@
"source_file": "tests/unit/test_paths.py",
"source_location": "L380",
"id": "unit_test_paths_test_ensure_dir_idempotent_when_exists",
- "community": 235,
+ "community": 238,
"norm_label": "test_ensure_dir_idempotent_when_exists()"
},
{
@@ -639,7 +639,7 @@
"source_file": "tests/unit/test_paths.py",
"source_location": "L389",
"id": "unit_test_paths_test_ensure_state_dir_creates_state_dir",
- "community": 235,
+ "community": 239,
"norm_label": "test_ensure_state_dir_creates_state_dir()"
},
{
@@ -648,7 +648,7 @@
"source_file": "tests/unit/test_paths.py",
"source_location": "L398",
"id": "unit_test_paths_test_ensure_central_log_dir_creates_parent",
- "community": 274,
+ "community": 238,
"norm_label": "test_ensure_central_log_dir_creates_parent()"
},
{
@@ -657,7 +657,7 @@
"source_file": "tests/unit/test_paths.py",
"source_location": "L412",
"id": "unit_test_paths_test_canonicalize_equipment_id_accepts_canonical",
- "community": 82,
+ "community": 75,
"norm_label": "test_canonicalize_equipment_id_accepts_canonical()"
},
{
@@ -666,7 +666,7 @@
"source_file": "tests/unit/test_paths.py",
"source_location": "L420",
"id": "unit_test_paths_test_canonicalize_equipment_id_accepts_other_canonical_examples",
- "community": 82,
+ "community": 75,
"norm_label": "test_canonicalize_equipment_id_accepts_other_canonical_examples()"
},
{
@@ -675,7 +675,7 @@
"source_file": "tests/unit/test_paths.py",
"source_location": "L424",
"id": "unit_test_paths_test_canonicalize_equipment_id_rejects_lowercase",
- "community": 82,
+ "community": 75,
"norm_label": "test_canonicalize_equipment_id_rejects_lowercase()"
},
{
@@ -684,7 +684,7 @@
"source_file": "tests/unit/test_paths.py",
"source_location": "L429",
"id": "unit_test_paths_test_canonicalize_equipment_id_rejects_hyphen",
- "community": 82,
+ "community": 75,
"norm_label": "test_canonicalize_equipment_id_rejects_hyphen()"
},
{
@@ -693,7 +693,7 @@
"source_file": "tests/unit/test_paths.py",
"source_location": "L434",
"id": "unit_test_paths_test_canonicalize_equipment_id_rejects_leading_digit",
- "community": 82,
+ "community": 75,
"norm_label": "test_canonicalize_equipment_id_rejects_leading_digit()"
},
{
@@ -702,7 +702,7 @@
"source_file": "tests/unit/test_paths.py",
"source_location": "L439",
"id": "unit_test_paths_test_canonicalize_equipment_id_rejects_space",
- "community": 82,
+ "community": 75,
"norm_label": "test_canonicalize_equipment_id_rejects_space()"
},
{
@@ -711,7 +711,7 @@
"source_file": "tests/unit/test_paths.py",
"source_location": "L444",
"id": "unit_test_paths_test_canonicalize_equipment_id_rejects_non_ascii",
- "community": 82,
+ "community": 75,
"norm_label": "test_canonicalize_equipment_id_rejects_non_ascii()"
},
{
@@ -720,7 +720,7 @@
"source_file": "tests/unit/test_paths.py",
"source_location": "L449",
"id": "unit_test_paths_test_canonicalize_equipment_id_rejects_too_long",
- "community": 82,
+ "community": 75,
"norm_label": "test_canonicalize_equipment_id_rejects_too_long()"
},
{
@@ -729,7 +729,7 @@
"source_file": "tests/unit/test_paths.py",
"source_location": "L457",
"id": "unit_test_paths_test_canonicalize_equipment_id_accepts_max_length",
- "community": 82,
+ "community": 75,
"norm_label": "test_canonicalize_equipment_id_accepts_max_length()"
},
{
@@ -738,7 +738,7 @@
"source_file": "tests/unit/test_paths.py",
"source_location": "L462",
"id": "unit_test_paths_test_canonicalize_equipment_id_rejects_empty",
- "community": 82,
+ "community": 75,
"norm_label": "test_canonicalize_equipment_id_rejects_empty()"
},
{
@@ -747,7 +747,7 @@
"source_file": "tests/unit/test_paths.py",
"source_location": "L467",
"id": "unit_test_paths_test_canonicalize_equipment_id_rejects_none",
- "community": 82,
+ "community": 75,
"norm_label": "test_canonicalize_equipment_id_rejects_none()"
},
{
@@ -756,7 +756,7 @@
"source_file": "tests/unit/test_paths.py",
"source_location": "L474",
"id": "unit_test_paths_test_canonicalize_equipment_id_rejects_int",
- "community": 82,
+ "community": 75,
"norm_label": "test_canonicalize_equipment_id_rejects_int()"
},
{
@@ -765,7 +765,7 @@
"source_file": "tests/unit/test_paths.py",
"source_location": "L482",
"id": "unit_test_paths_test_canonicalize_equipment_id_does_not_mutate_input",
- "community": 82,
+ "community": 75,
"norm_label": "test_canonicalize_equipment_id_does_not_mutate_input()"
},
{
@@ -774,7 +774,7 @@
"source_file": "tests/unit/test_paths.py",
"source_location": "L500",
"id": "unit_test_paths_test_compose_run_path_experimental",
- "community": 167,
+ "community": 176,
"norm_label": "test_compose_run_path_experimental()"
},
{
@@ -783,7 +783,7 @@
"source_file": "tests/unit/test_paths.py",
"source_location": "L512",
"id": "unit_test_paths_test_compose_run_path_test",
- "community": 167,
+ "community": 176,
"norm_label": "test_compose_run_path_test()"
},
{
@@ -792,7 +792,7 @@
"source_file": "tests/unit/test_paths.py",
"source_location": "L524",
"id": "unit_test_paths_test_compose_run_path_strftime_format",
- "community": 167,
+ "community": 176,
"norm_label": "test_compose_run_path_strftime_format()"
},
{
@@ -801,7 +801,7 @@
"source_file": "tests/unit/test_paths.py",
"source_location": "L541",
"id": "unit_test_paths_test_compose_run_path_experimental_under_runs_subdir",
- "community": 167,
+ "community": 176,
"norm_label": "test_compose_run_path_experimental_under_runs_subdir()"
},
{
@@ -810,7 +810,7 @@
"source_file": "tests/unit/test_paths.py",
"source_location": "L554",
"id": "unit_test_paths_test_compose_run_path_same_minute_collision_returns_same_path",
- "community": 167,
+ "community": 176,
"norm_label": "test_compose_run_path_same_minute_collision_returns_same_path()"
},
{
@@ -819,7 +819,7 @@
"source_file": "tests/unit/test_paths.py",
"source_location": "L575",
"id": "unit_test_paths_test_compose_run_path_rejects_invalid_equipment_id",
- "community": 167,
+ "community": 176,
"norm_label": "test_compose_run_path_rejects_invalid_equipment_id()"
},
{
@@ -828,7 +828,7 @@
"source_file": "tests/unit/test_paths.py",
"source_location": "L586",
"id": "unit_test_paths_test_compose_run_path_rejects_unsafe_project_name",
- "community": 167,
+ "community": 176,
"norm_label": "test_compose_run_path_rejects_unsafe_project_name()"
},
{
@@ -837,7 +837,7 @@
"source_file": "tests/unit/test_paths.py",
"source_location": "L597",
"id": "unit_test_paths_test_compose_project_path_basic",
- "community": 82,
+ "community": 75,
"norm_label": "test_compose_project_path_basic()"
},
{
@@ -846,7 +846,7 @@
"source_file": "tests/unit/test_paths.py",
"source_location": "L607",
"id": "unit_test_paths_test_compose_project_path_rejects_invalid_equipment_id",
- "community": 82,
+ "community": 75,
"norm_label": "test_compose_project_path_rejects_invalid_equipment_id()"
},
{
@@ -855,7 +855,7 @@
"source_file": "tests/unit/test_paths.py",
"source_location": "L616",
"id": "unit_test_paths_test_compose_project_path_rejects_unsafe_project_name",
- "community": 82,
+ "community": 75,
"norm_label": "test_compose_project_path_rejects_unsafe_project_name()"
},
{
@@ -864,7 +864,7 @@
"source_file": "tests/unit/test_paths.py",
"source_location": "L625",
"id": "unit_test_paths_test_compose_run_path_rejects_non_str_project_name",
- "community": 167,
+ "community": 176,
"norm_label": "test_compose_run_path_rejects_non_str_project_name()"
},
{
@@ -873,7 +873,7 @@
"source_file": "tests/unit/test_paths.py",
"source_location": "L638",
"id": "unit_test_paths_test_compose_run_path_rejects_empty_project_name",
- "community": 167,
+ "community": 176,
"norm_label": "test_compose_run_path_rejects_empty_project_name()"
},
{
@@ -882,7 +882,7 @@
"source_file": "tests/unit/test_paths.py",
"source_location": "L651",
"id": "unit_test_paths_test_compose_project_path_rejects_non_str_project_name",
- "community": 82,
+ "community": 75,
"norm_label": "test_compose_project_path_rejects_non_str_project_name()"
},
{
@@ -891,7 +891,7 @@
"source_file": "tests/unit/test_paths.py",
"source_location": "L666",
"id": "unit_test_paths_test_validate_project_name_accepts_human_readable_names",
- "community": 252,
+ "community": 256,
"norm_label": "test_validate_project_name_accepts_human_readable_names()"
},
{
@@ -900,7 +900,7 @@
"source_file": "tests/unit/test_paths.py",
"source_location": "L690",
"id": "unit_test_paths_test_validate_project_name_rejects_unsafe_names",
- "community": 252,
+ "community": 256,
"norm_label": "test_validate_project_name_rejects_unsafe_names()"
},
{
@@ -909,7 +909,7 @@
"source_file": "tests/unit/test_paths.py",
"source_location": "L696",
"id": "unit_test_paths_test_validate_project_name_rejects_overlong_name",
- "community": 252,
+ "community": 256,
"norm_label": "test_validate_project_name_rejects_overlong_name()"
},
{
@@ -918,7 +918,7 @@
"source_file": "tests/unit/test_paths.py",
"source_location": "L702",
"id": "unit_test_paths_test_validate_project_name_does_not_mutate_input",
- "community": 252,
+ "community": 256,
"norm_label": "test_validate_project_name_does_not_mutate_input()"
},
{
@@ -927,7 +927,7 @@
"source_file": "tests/unit/test_paths.py",
"source_location": "L713",
"id": "unit_test_paths_test_evaluate_setup_state_no_config",
- "community": 82,
+ "community": 75,
"norm_label": "test_evaluate_setup_state_no_config()"
},
{
@@ -936,7 +936,7 @@
"source_file": "tests/unit/test_paths.py",
"source_location": "L717",
"id": "unit_test_paths_test_evaluate_setup_state_missing_paths",
- "community": 52,
+ "community": 59,
"norm_label": "test_evaluate_setup_state_missing_paths()"
},
{
@@ -945,7 +945,7 @@
"source_file": "tests/unit/test_paths.py",
"source_location": "L726",
"id": "unit_test_paths_test_evaluate_setup_state_missing_paths_partial",
- "community": 52,
+ "community": 59,
"norm_label": "test_evaluate_setup_state_missing_paths_partial()"
},
{
@@ -954,7 +954,7 @@
"source_file": "tests/unit/test_paths.py",
"source_location": "L740",
"id": "unit_test_paths_test_evaluate_setup_state_no_equipment",
- "community": 52,
+ "community": 59,
"norm_label": "test_evaluate_setup_state_no_equipment()"
},
{
@@ -963,7 +963,7 @@
"source_file": "tests/unit/test_paths.py",
"source_location": "L753",
"id": "unit_test_paths_test_evaluate_setup_state_no_orchestrator",
- "community": 52,
+ "community": 59,
"norm_label": "test_evaluate_setup_state_no_orchestrator()"
},
{
@@ -972,7 +972,7 @@
"source_file": "tests/unit/test_paths.py",
"source_location": "L766",
"id": "unit_test_paths_test_evaluate_setup_state_no_orchestrator_when_only_staging_set",
- "community": 52,
+ "community": 59,
"norm_label": "test_evaluate_setup_state_no_orchestrator_when_only_staging_set()"
},
{
@@ -990,7 +990,7 @@
"source_file": "tests/unit/test_paths.py",
"source_location": "L800",
"id": "unit_test_paths_test_setup_state_missing_for_no_orchestrator_lists_only_label",
- "community": 52,
+ "community": 59,
"norm_label": "test_setup_state_missing_for_no_orchestrator_lists_only_label()"
},
{
@@ -1008,7 +1008,7 @@
"source_file": "tests/unit/test_paths.py",
"source_location": "L834",
"id": "unit_test_paths_test_evaluate_setup_state_lims_via_offline_catalogue",
- "community": 52,
+ "community": 59,
"norm_label": "test_evaluate_setup_state_lims_via_offline_catalogue()"
},
{
@@ -1017,7 +1017,7 @@
"source_file": "tests/unit/test_paths.py",
"source_location": "L857",
"id": "unit_test_paths_test_evaluate_setup_state_lims_unreachable",
- "community": 153,
+ "community": 160,
"norm_label": "test_evaluate_setup_state_lims_unreachable()"
},
{
@@ -1026,7 +1026,7 @@
"source_file": "tests/unit/test_paths.py",
"source_location": "L864",
"id": "unit_test_paths_test_evaluate_setup_state_ready",
- "community": 153,
+ "community": 160,
"norm_label": "test_evaluate_setup_state_ready()"
},
{
@@ -1035,7 +1035,7 @@
"source_file": "tests/unit/test_paths.py",
"source_location": "L868",
"id": "unit_test_paths_test_evaluate_setup_state_keyring_missing",
- "community": 153,
+ "community": 160,
"norm_label": "test_evaluate_setup_state_keyring_missing()"
},
{
@@ -1044,7 +1044,7 @@
"source_file": "tests/unit/test_paths.py",
"source_location": "L877",
"id": "unit_test_paths_nas_remote_config",
- "community": 52,
+ "community": 59,
"norm_label": "_nas_remote_config()"
},
{
@@ -1053,7 +1053,7 @@
"source_file": "tests/unit/test_paths.py",
"source_location": "L903",
"id": "unit_test_paths_test_setup_incomplete_when_nas_remote_blank",
- "community": 52,
+ "community": 59,
"norm_label": "test_setup_incomplete_when_nas_remote_blank()"
},
{
@@ -1062,7 +1062,7 @@
"source_file": "tests/unit/test_paths.py",
"source_location": "L911",
"id": "unit_test_paths_test_setup_incomplete_when_remote_not_in_rclone_conf",
- "community": 52,
+ "community": 59,
"norm_label": "test_setup_incomplete_when_remote_not_in_rclone_conf()"
},
{
@@ -1071,7 +1071,7 @@
"source_file": "tests/unit/test_paths.py",
"source_location": "L921",
"id": "unit_test_paths_test_setup_ready_when_remote_present",
- "community": 52,
+ "community": 59,
"norm_label": "test_setup_ready_when_remote_present()"
},
{
@@ -1080,7 +1080,7 @@
"source_file": "tests/unit/test_paths.py",
"source_location": "L931",
"id": "unit_test_paths_test_evaluate_setup_state_nas_state_precedes_lims_state",
- "community": 153,
+ "community": 160,
"norm_label": "test_evaluate_setup_state_nas_state_precedes_lims_state()"
},
{
@@ -1089,7 +1089,7 @@
"source_file": "tests/unit/test_paths.py",
"source_location": "L943",
"id": "unit_test_paths_test_setup_state_missing_for_no_nas_remote_reports_remote_field",
- "community": 60,
+ "community": 177,
"norm_label": "test_setup_state_missing_for_no_nas_remote_reports_remote_field()"
},
{
@@ -1098,7 +1098,7 @@
"source_file": "tests/unit/test_paths.py",
"source_location": "L956",
"id": "unit_test_paths_test_setup_state_next_action_for_no_nas_remote",
- "community": 210,
+ "community": 75,
"norm_label": "test_setup_state_next_action_for_no_nas_remote()"
},
{
@@ -1107,7 +1107,7 @@
"source_file": "tests/unit/test_paths.py",
"source_location": "L965",
"id": "unit_test_paths_test_evaluate_setup_state_endpoint_only_missing_email",
- "community": 52,
+ "community": 59,
"norm_label": "test_evaluate_setup_state_endpoint_only_missing_email()"
},
{
@@ -1116,7 +1116,7 @@
"source_file": "tests/unit/test_paths.py",
"source_location": "L999",
"id": "unit_test_paths_test_setup_state_next_action_table",
- "community": 210,
+ "community": 75,
"norm_label": "test_setup_state_next_action_table()"
},
{
@@ -1125,7 +1125,7 @@
"source_file": "tests/unit/test_paths.py",
"source_location": "L1008",
"id": "unit_test_paths_test_setup_state_missing_when_no_config",
- "community": 60,
+ "community": 177,
"norm_label": "test_setup_state_missing_when_no_config()"
},
{
@@ -1134,7 +1134,7 @@
"source_file": "tests/unit/test_paths.py",
"source_location": "L1016",
"id": "unit_test_paths_test_setup_state_missing_when_ready",
- "community": 153,
+ "community": 160,
"norm_label": "test_setup_state_missing_when_ready()"
},
{
@@ -1143,7 +1143,7 @@
"source_file": "tests/unit/test_paths.py",
"source_location": "L1020",
"id": "unit_test_paths_test_setup_state_missing_when_lims_unreachable_returns_empty",
- "community": 153,
+ "community": 160,
"norm_label": "test_setup_state_missing_when_lims_unreachable_returns_empty()"
},
{
@@ -1152,7 +1152,7 @@
"source_file": "tests/unit/test_paths.py",
"source_location": "L1025",
"id": "unit_test_paths_test_setup_state_missing_for_paths_lists_each_unset",
- "community": 60,
+ "community": 177,
"norm_label": "test_setup_state_missing_for_paths_lists_each_unset()"
},
{
@@ -1161,7 +1161,7 @@
"source_file": "tests/unit/test_paths.py",
"source_location": "L1036",
"id": "unit_test_paths_test_setup_state_missing_for_no_equipment",
- "community": 153,
+ "community": 160,
"norm_label": "test_setup_state_missing_for_no_equipment()"
},
{
@@ -1170,7 +1170,7 @@
"source_file": "tests/unit/test_paths.py",
"source_location": "L1041",
"id": "unit_test_paths_test_setup_state_missing_for_no_lims_lists_endpoint_email",
- "community": 0,
+ "community": 59,
"norm_label": "test_setup_state_missing_for_no_lims_lists_endpoint_email()"
},
{
@@ -1179,7 +1179,7 @@
"source_file": "tests/unit/test_paths.py",
"source_location": "L1058",
"id": "unit_test_paths_test_setup_state_missing_for_missing_paths_with_none_config",
- "community": 60,
+ "community": 177,
"norm_label": "test_setup_state_missing_for_missing_paths_with_none_config()"
},
{
@@ -1188,7 +1188,7 @@
"source_file": "tests/unit/test_paths.py",
"source_location": "L1069",
"id": "unit_test_paths_test_setup_state_missing_for_no_lims_with_none_config",
- "community": 460,
+ "community": 177,
"norm_label": "test_setup_state_missing_for_no_lims_with_none_config()"
},
{
@@ -1197,7 +1197,7 @@
"source_file": "tests/unit/test_paths.py",
"source_location": "L1077",
"id": "unit_test_paths_test_setup_state_missing_for_no_lims_flags_keyring_when_endpoint_email_set",
- "community": 52,
+ "community": 59,
"norm_label": "test_setup_state_missing_for_no_lims_flags_keyring_when_endpoint_email_set()"
},
{
@@ -1206,7 +1206,7 @@
"source_file": "tests/unit/test_paths.py",
"source_location": "L1103",
"id": "unit_test_paths_test_setup_state_missing_unrecognized_state_returns_empty",
- "community": 459,
+ "community": 177,
"norm_label": "test_setup_state_missing_unrecognized_state_returns_empty()"
},
{
@@ -1215,7 +1215,7 @@
"source_file": "tests/unit/test_paths.py",
"source_location": "L1",
"id": "unit_test_paths_rationale_1",
- "community": 82,
+ "community": 75,
"norm_label": "unit tests for ``exlab_wizard.paths``. os-aware directory helpers + equipment-i"
},
{
@@ -1224,7 +1224,7 @@
"source_file": "tests/unit/test_paths.py",
"source_location": "L53",
"id": "unit_test_paths_rationale_53",
- "community": 52,
+ "community": 59,
"norm_label": "construct a minimal valid equipmentconfig for setup-state fixtures."
},
{
@@ -1233,7 +1233,7 @@
"source_file": "tests/unit/test_paths.py",
"source_location": "L65",
"id": "unit_test_paths_rationale_65",
- "community": 52,
+ "community": 59,
"norm_label": "minimal orchestrator identity (redesign \u00a73.1) for setup-state fixtures."
},
{
@@ -1242,7 +1242,7 @@
"source_file": "tests/unit/test_paths.py",
"source_location": "L75",
"id": "unit_test_paths_rationale_75",
- "community": 153,
+ "community": 160,
"norm_label": "construct a fully ready config (paths + equipment + lims endpoint+email). r"
},
{
@@ -1251,7 +1251,7 @@
"source_file": "tests/unit/test_paths.py",
"source_location": "L104",
"id": "unit_test_paths_rationale_104",
- "community": 82,
+ "community": 489,
"norm_label": "return a fake home under tmp_path; route ``path.home()`` to it."
},
{
@@ -1260,7 +1260,7 @@
"source_file": "tests/unit/test_paths.py",
"source_location": "L345",
"id": "unit_test_paths_rationale_345",
- "community": 64,
+ "community": 76,
"norm_label": "the suggestion now nests under app_name on every platform, so the test-mode"
},
{
@@ -1269,7 +1269,7 @@
"source_file": "tests/unit/test_paths.py",
"source_location": "L354",
"id": "unit_test_paths_rationale_354",
- "community": 64,
+ "community": 76,
"norm_label": "unset / non-'1' values must leave the real os dirs untouched."
},
{
@@ -1278,7 +1278,7 @@
"source_file": "tests/unit/test_paths.py",
"source_location": "L468",
"id": "unit_test_paths_rationale_468",
- "community": 82,
+ "community": 75,
"norm_label": "non-str input hits the isinstance guard, not the regex."
},
{
@@ -1287,7 +1287,7 @@
"source_file": "tests/unit/test_paths.py",
"source_location": "L475",
"id": "unit_test_paths_rationale_475",
- "community": 82,
+ "community": 75,
"norm_label": "non-str input hits the isinstance guard, not the length / regex check."
},
{
@@ -1296,7 +1296,7 @@
"source_file": "tests/unit/test_paths.py",
"source_location": "L483",
"id": "unit_test_paths_rationale_483",
- "community": 82,
+ "community": 75,
"norm_label": "spec contract: input must already be canonical; no silent uppercasing."
},
{
@@ -1305,7 +1305,7 @@
"source_file": "tests/unit/test_paths.py",
"source_location": "L525",
"id": "unit_test_paths_rationale_525",
- "community": 167,
+ "community": 176,
"norm_label": "the leaf is iso 8601 with colons replaced by hyphens. \u00a73.1. redesign \u00a73.4:"
},
{
@@ -1314,7 +1314,7 @@
"source_file": "tests/unit/test_paths.py",
"source_location": "L542",
"id": "unit_test_paths_rationale_542",
- "community": 167,
+ "community": 176,
"norm_label": "redesign \u00a73.4: experimental runs live under /runs/run_*."
},
{
@@ -1323,7 +1323,7 @@
"source_file": "tests/unit/test_paths.py",
"source_location": "L555",
"id": "unit_test_paths_rationale_555",
- "community": 167,
+ "community": 176,
"norm_label": "redesign \u00a73.4: two runs in the same minute resolve to the same path (copier"
},
{
@@ -1332,7 +1332,7 @@
"source_file": "tests/unit/test_paths.py",
"source_location": "L626",
"id": "unit_test_paths_rationale_626",
- "community": 167,
+ "community": 176,
"norm_label": "a non-str project_name hits the isinstance guard."
},
{
@@ -1341,7 +1341,7 @@
"source_file": "tests/unit/test_paths.py",
"source_location": "L639",
"id": "unit_test_paths_rationale_639",
- "community": 167,
+ "community": 176,
"norm_label": "an empty-string project_name also hits the same guard."
},
{
@@ -1350,7 +1350,7 @@
"source_file": "tests/unit/test_paths.py",
"source_location": "L667",
"id": "unit_test_paths_rationale_667",
- "community": 252,
+ "community": 256,
"norm_label": "spaces and ordinary punctuation are fine -- the name is used verbatim."
},
{
@@ -1359,7 +1359,7 @@
"source_file": "tests/unit/test_paths.py",
"source_location": "L703",
"id": "unit_test_paths_rationale_703",
- "community": 252,
+ "community": 256,
"norm_label": "the \u00a73.2 contract is 'used verbatim' -- no canonicalisation."
},
{
@@ -1368,7 +1368,7 @@
"source_file": "tests/unit/test_paths.py",
"source_location": "L727",
"id": "unit_test_paths_rationale_727",
- "community": 52,
+ "community": 59,
"norm_label": "only one path is empty -- still incomplete_missing_paths."
},
{
@@ -1377,7 +1377,7 @@
"source_file": "tests/unit/test_paths.py",
"source_location": "L754",
"id": "unit_test_paths_rationale_754",
- "community": 52,
+ "community": 59,
"norm_label": "only ``label`` gates orchestrator identity; a blank label trips it."
},
{
@@ -1386,7 +1386,7 @@
"source_file": "tests/unit/test_paths.py",
"source_location": "L767",
"id": "unit_test_paths_rationale_767",
- "community": 52,
+ "community": 59,
"norm_label": "a staging root without a label still trips -- staging never substitutes."
},
{
@@ -1404,7 +1404,7 @@
"source_file": "tests/unit/test_paths.py",
"source_location": "L801",
"id": "unit_test_paths_rationale_801",
- "community": 52,
+ "community": 59,
"norm_label": "the orchestrator missing-field rollup no longer mentions staging_root."
},
{
@@ -1413,7 +1413,7 @@
"source_file": "tests/unit/test_paths.py",
"source_location": "L835",
"id": "unit_test_paths_rationale_835",
- "community": 52,
+ "community": 59,
"norm_label": "offline catalogue path satisfies the lims slot without endpoint+email."
},
{
@@ -1422,7 +1422,7 @@
"source_file": "tests/unit/test_paths.py",
"source_location": "L869",
"id": "unit_test_paths_rationale_869",
- "community": 153,
+ "community": 160,
"norm_label": "endpoint+email present but keyring lacks the password -> incomplete_no_lims."
},
{
@@ -1431,7 +1431,7 @@
"source_file": "tests/unit/test_paths.py",
"source_location": "L878",
"id": "unit_test_paths_rationale_878",
- "community": 52,
+ "community": 59,
"norm_label": "build a ready-shaped config with a single nas-mode equipment. nas sync is i"
},
{
@@ -1440,7 +1440,7 @@
"source_file": "tests/unit/test_paths.py",
"source_location": "L904",
"id": "unit_test_paths_rationale_904",
- "community": 52,
+ "community": 59,
"norm_label": "nas sync in use but no remote configured -> incomplete_no_nas_remote."
},
{
@@ -1449,7 +1449,7 @@
"source_file": "tests/unit/test_paths.py",
"source_location": "L912",
"id": "unit_test_paths_rationale_912",
- "community": 52,
+ "community": 59,
"norm_label": "remote named but absent from rclone.conf -> incomplete_no_nas_remote."
},
{
@@ -1458,7 +1458,7 @@
"source_file": "tests/unit/test_paths.py",
"source_location": "L922",
"id": "unit_test_paths_rationale_922",
- "community": 52,
+ "community": 59,
"norm_label": "remote named and present in rclone.conf -> ready."
},
{
@@ -1467,7 +1467,7 @@
"source_file": "tests/unit/test_paths.py",
"source_location": "L932",
"id": "unit_test_paths_rationale_932",
- "community": 153,
+ "community": 160,
"norm_label": "a configured lims does not mask the missing nas remote."
},
{
@@ -1476,7 +1476,7 @@
"source_file": "tests/unit/test_paths.py",
"source_location": "L944",
"id": "unit_test_paths_rationale_944",
- "community": 60,
+ "community": 177,
"norm_label": "the missing list names ``nas.remote`` and distinguishes unset vs absent."
},
{
@@ -1485,7 +1485,7 @@
"source_file": "tests/unit/test_paths.py",
"source_location": "L966",
"id": "unit_test_paths_rationale_966",
- "community": 52,
+ "community": 59,
"norm_label": "endpoint present but email empty -> incomplete_no_lims (email is required)."
},
{
@@ -1494,7 +1494,7 @@
"source_file": "tests/unit/test_paths.py",
"source_location": "L1021",
"id": "unit_test_paths_rationale_1021",
- "community": 153,
+ "community": 160,
"norm_label": "soft block: surfaces a banner, not a missing-field list."
},
{
@@ -1503,7 +1503,7 @@
"source_file": "tests/unit/test_paths.py",
"source_location": "L1059",
"id": "unit_test_paths_rationale_1059",
- "community": 60,
+ "community": 177,
"norm_label": "when config is none but state is incomplete_missing_paths, every paths field"
},
{
@@ -1512,7 +1512,7 @@
"source_file": "tests/unit/test_paths.py",
"source_location": "L1070",
"id": "unit_test_paths_rationale_1070",
- "community": 460,
+ "community": 177,
"norm_label": "when config is none but state is incomplete_no_lims, the whole lims block is"
},
{
@@ -1521,7 +1521,7 @@
"source_file": "tests/unit/test_paths.py",
"source_location": "L1078",
"id": "unit_test_paths_rationale_1078",
- "community": 52,
+ "community": 59,
"norm_label": "endpoint+email both filled in but no offline catalogue -> the keyring-passwo"
},
{
@@ -1530,7 +1530,7 @@
"source_file": "tests/unit/test_paths.py",
"source_location": "L1104",
"id": "unit_test_paths_rationale_1104",
- "community": 459,
+ "community": 177,
"norm_label": "defensive fallback: any value that isn't a recognized setupstate returns an"
},
{
@@ -1575,7 +1575,7 @@
"source_file": "tests/unit/ui/test_wizard_run_page.py",
"source_location": "L1",
"id": "tests_unit_ui_test_wizard_run_page_py",
- "community": 65,
+ "community": 56,
"norm_label": "test_wizard_run_page.py"
},
{
@@ -1584,7 +1584,7 @@
"source_file": "tests/unit/ui/test_wizard_run_page.py",
"source_location": "L34",
"id": "ui_test_wizard_run_page_test_can_advance_template_step_requires_selection",
- "community": 65,
+ "community": 56,
"norm_label": "test_can_advance_template_step_requires_selection()"
},
{
@@ -1593,7 +1593,7 @@
"source_file": "tests/unit/ui/test_wizard_run_page.py",
"source_location": "L41",
"id": "ui_test_wizard_run_page_test_can_advance_variables_step_always_true",
- "community": 65,
+ "community": 56,
"norm_label": "test_can_advance_variables_step_always_true()"
},
{
@@ -1602,7 +1602,7 @@
"source_file": "tests/unit/ui/test_wizard_run_page.py",
"source_location": "L46",
"id": "ui_test_wizard_run_page_test_can_advance_preview_step_blocks_on_validator_findings",
- "community": 65,
+ "community": 56,
"norm_label": "test_can_advance_preview_step_blocks_on_validator_findings()"
},
{
@@ -1611,7 +1611,7 @@
"source_file": "tests/unit/ui/test_wizard_run_page.py",
"source_location": "L53",
"id": "ui_test_wizard_run_page_test_can_advance_confirm_step_always_true",
- "community": 65,
+ "community": 56,
"norm_label": "test_can_advance_confirm_step_always_true()"
},
{
@@ -1620,7 +1620,7 @@
"source_file": "tests/unit/ui/test_wizard_run_page.py",
"source_location": "L58",
"id": "ui_test_wizard_run_page_test_can_advance_default_step_is_project_equipment",
- "community": 65,
+ "community": 56,
"norm_label": "test_can_advance_default_step_is_project_equipment()"
},
{
@@ -1629,7 +1629,7 @@
"source_file": "tests/unit/ui/test_wizard_run_page.py",
"source_location": "L68",
"id": "ui_test_wizard_run_page_test_can_advance_readme_blocks_on_partial_core_fields",
- "community": 65,
+ "community": 56,
"norm_label": "test_can_advance_readme_blocks_on_partial_core_fields()"
},
{
@@ -1638,7 +1638,7 @@
"source_file": "tests/unit/ui/test_wizard_run_page.py",
"source_location": "L81",
"id": "ui_test_wizard_run_page_test_state_run_kind_is_bound_and_drives_helpers",
- "community": 65,
+ "community": 56,
"norm_label": "test_state_run_kind_is_bound_and_drives_helpers()"
},
{
@@ -1647,7 +1647,7 @@
"source_file": "tests/unit/ui/test_wizard_run_page.py",
"source_location": "L98",
"id": "ui_test_wizard_run_page_test_preview_path_segments_experimental_uses_run_prefix",
- "community": 65,
+ "community": 56,
"norm_label": "test_preview_path_segments_experimental_uses_run_prefix()"
},
{
@@ -1656,7 +1656,7 @@
"source_file": "tests/unit/ui/test_wizard_run_page.py",
"source_location": "L109",
"id": "ui_test_wizard_run_page_test_preview_path_segments_test_uses_testrun_prefix_and_folder",
- "community": 65,
+ "community": 56,
"norm_label": "test_preview_path_segments_test_uses_testrun_prefix_and_folder()"
},
{
@@ -1665,7 +1665,7 @@
"source_file": "tests/unit/ui/test_wizard_run_page.py",
"source_location": "L126",
"id": "ui_test_wizard_run_page_test_render_run_wizard_experimental_with_choices_does_not_raise",
- "community": 65,
+ "community": 56,
"norm_label": "test_render_run_wizard_experimental_with_choices_does_not_raise()"
},
{
@@ -1674,7 +1674,7 @@
"source_file": "tests/unit/ui/test_wizard_run_page.py",
"source_location": "L136",
"id": "ui_test_wizard_run_page_test_render_run_wizard_test_with_choices_does_not_raise",
- "community": 65,
+ "community": 56,
"norm_label": "test_render_run_wizard_test_with_choices_does_not_raise()"
},
{
@@ -1683,7 +1683,7 @@
"source_file": "tests/unit/ui/test_wizard_run_page.py",
"source_location": "L146",
"id": "ui_test_wizard_run_page_test_render_run_wizard_with_empty_choices_does_not_raise",
- "community": 65,
+ "community": 56,
"norm_label": "test_render_run_wizard_with_empty_choices_does_not_raise()"
},
{
@@ -1692,7 +1692,7 @@
"source_file": "tests/unit/ui/test_wizard_run_page.py",
"source_location": "L155",
"id": "ui_test_wizard_run_page_test_wizard_run_step_titles_cover_every_step",
- "community": 65,
+ "community": 56,
"norm_label": "test_wizard_run_step_titles_cover_every_step()"
},
{
@@ -1701,7 +1701,7 @@
"source_file": "tests/unit/ui/test_wizard_run_page.py",
"source_location": "L1",
"id": "ui_test_wizard_run_page_rationale_1",
- "community": 65,
+ "community": 56,
"norm_label": "tests for the new run wizard helpers (gaps not covered by test_pages). ``test_p"
},
{
@@ -1710,7 +1710,7 @@
"source_file": "tests/unit/ui/test_metadata_pane.py",
"source_location": "L1",
"id": "tests_unit_ui_test_metadata_pane_py",
- "community": 156,
+ "community": 146,
"norm_label": "test_metadata_pane.py"
},
{
@@ -1719,7 +1719,7 @@
"source_file": "tests/unit/ui/test_metadata_pane.py",
"source_location": "L20",
"id": "ui_test_metadata_pane_walk",
- "community": 156,
+ "community": 146,
"norm_label": "_walk()"
},
{
@@ -1728,7 +1728,7 @@
"source_file": "tests/unit/ui/test_metadata_pane.py",
"source_location": "L27",
"id": "ui_test_metadata_pane_by_testid",
- "community": 156,
+ "community": 146,
"norm_label": "_by_testid()"
},
{
@@ -1737,7 +1737,7 @@
"source_file": "tests/unit/ui/test_metadata_pane.py",
"source_location": "L31",
"id": "ui_test_metadata_pane_texts",
- "community": 156,
+ "community": 146,
"norm_label": "_texts()"
},
{
@@ -1746,7 +1746,7 @@
"source_file": "tests/unit/ui/test_metadata_pane.py",
"source_location": "L35",
"id": "ui_test_metadata_pane_file_payload",
- "community": 156,
+ "community": 146,
"norm_label": "_file_payload()"
},
{
@@ -1755,7 +1755,7 @@
"source_file": "tests/unit/ui/test_metadata_pane.py",
"source_location": "L54",
"id": "ui_test_metadata_pane_test_selected_file_card_title_maps_kind",
- "community": 170,
+ "community": 132,
"norm_label": "test_selected_file_card_title_maps_kind()"
},
{
@@ -1764,7 +1764,7 @@
"source_file": "tests/unit/ui/test_metadata_pane.py",
"source_location": "L66",
"id": "ui_test_metadata_pane_test_file_sub_card_renders_fields",
- "community": 156,
+ "community": 146,
"norm_label": "test_file_sub_card_renders_fields()"
},
{
@@ -1773,7 +1773,7 @@
"source_file": "tests/unit/ui/test_metadata_pane.py",
"source_location": "L81",
"id": "ui_test_metadata_pane_test_tombstone_file_sub_card_omits_size_and_notes_on_nas",
- "community": 156,
+ "community": 146,
"norm_label": "test_tombstone_file_sub_card_omits_size_and_notes_on_nas()"
},
{
@@ -1782,7 +1782,7 @@
"source_file": "tests/unit/ui/test_metadata_pane.py",
"source_location": "L98",
"id": "ui_test_metadata_pane_test_folder_sub_card_renders_count_no_size",
- "community": 156,
+ "community": 146,
"norm_label": "test_folder_sub_card_renders_count_no_size()"
},
{
@@ -1791,7 +1791,7 @@
"source_file": "tests/unit/ui/test_metadata_pane.py",
"source_location": "L122",
"id": "ui_test_metadata_pane_test_folder_sub_card_tolerates_degraded_scan",
- "community": 156,
+ "community": 146,
"norm_label": "test_folder_sub_card_tolerates_degraded_scan()"
},
{
@@ -1800,7 +1800,7 @@
"source_file": "tests/unit/ui/test_metadata_pane.py",
"source_location": "L144",
"id": "ui_test_metadata_pane_test_sub_card_appends_after_empty_state",
- "community": 156,
+ "community": 146,
"norm_label": "test_sub_card_appends_after_empty_state()"
},
{
@@ -1809,7 +1809,7 @@
"source_file": "tests/unit/ui/test_metadata_pane.py",
"source_location": "L152",
"id": "ui_test_metadata_pane_test_sub_card_appends_after_populated_node",
- "community": 156,
+ "community": 146,
"norm_label": "test_sub_card_appends_after_populated_node()"
},
{
@@ -1818,7 +1818,7 @@
"source_file": "tests/unit/ui/test_metadata_pane.py",
"source_location": "L169",
"id": "ui_test_metadata_pane_test_no_sub_card_without_selected_file",
- "community": 156,
+ "community": 146,
"norm_label": "test_no_sub_card_without_selected_file()"
},
{
@@ -1827,7 +1827,7 @@
"source_file": "tests/unit/ui/test_metadata_pane.py",
"source_location": "L1",
"id": "ui_test_metadata_pane_rationale_1",
- "community": 156,
+ "community": 146,
"norm_label": "unit tests for the metadata pane's selected-file/folder sub-card. gui/orchestra"
},
{
@@ -1836,7 +1836,7 @@
"source_file": "tests/unit/ui/test_metadata_pane.py",
"source_location": "L123",
"id": "ui_test_metadata_pane_rationale_123",
- "community": 156,
+ "community": 146,
"norm_label": "a degraded folder scan (item_count=none / rollup=none) still renders."
},
{
@@ -1845,7 +1845,7 @@
"source_file": "tests/unit/ui/test_metadata_pane.py",
"source_location": "L145",
"id": "ui_test_metadata_pane_rationale_145",
- "community": 156,
+ "community": 146,
"norm_label": "with no node selected, the sub-card sits beneath the empty-state hint."
},
{
@@ -1854,7 +1854,7 @@
"source_file": "tests/unit/ui/test_metadata_pane.py",
"source_location": "L153",
"id": "ui_test_metadata_pane_rationale_153",
- "community": 156,
+ "community": 146,
"norm_label": "a selected run node's content stays; the sub-card appends below it."
},
{
@@ -1863,7 +1863,7 @@
"source_file": "tests/unit/ui/test_components.py",
"source_location": "L1",
"id": "tests_unit_ui_test_components_py",
- "community": 42,
+ "community": 51,
"norm_label": "test_components.py"
},
{
@@ -1872,7 +1872,7 @@
"source_file": "tests/unit/ui/test_components.py",
"source_location": "L37",
"id": "ui_test_components_test_mode_badge_test_uses_warning_token",
- "community": 472,
+ "community": 512,
"norm_label": "test_mode_badge_test_uses_warning_token()"
},
{
@@ -1881,7 +1881,7 @@
"source_file": "tests/unit/ui/test_components.py",
"source_location": "L45",
"id": "ui_test_components_test_mode_badge_experimental_uses_navy",
- "community": 484,
+ "community": 519,
"norm_label": "test_mode_badge_experimental_uses_navy()"
},
{
@@ -1890,7 +1890,7 @@
"source_file": "tests/unit/ui/test_components.py",
"source_location": "L52",
"id": "ui_test_components_test_mode_badge_none_falls_back_to_navy_with_placeholder",
- "community": 480,
+ "community": 505,
"norm_label": "test_mode_badge_none_falls_back_to_navy_with_placeholder()"
},
{
@@ -1899,7 +1899,7 @@
"source_file": "tests/unit/ui/test_components.py",
"source_location": "L60",
"id": "ui_test_components_test_mode_badge_accepts_label_override",
- "community": 475,
+ "community": 518,
"norm_label": "test_mode_badge_accepts_label_override()"
},
{
@@ -1908,7 +1908,7 @@
"source_file": "tests/unit/ui/test_components.py",
"source_location": "L72",
"id": "ui_test_components_test_test_run_badge_uses_orange_aa_text",
- "community": 483,
+ "community": 506,
"norm_label": "test_test_run_badge_uses_orange_aa_text()"
},
{
@@ -1917,7 +1917,7 @@
"source_file": "tests/unit/ui/test_components.py",
"source_location": "L80",
"id": "ui_test_components_test_override_badge_active_uses_sky_aa_text",
- "community": 473,
+ "community": 509,
"norm_label": "test_override_badge_active_uses_sky_aa_text()"
},
{
@@ -1926,7 +1926,7 @@
"source_file": "tests/unit/ui/test_components.py",
"source_location": "L88",
"id": "ui_test_components_test_override_badge_inactive_uses_muted",
- "community": 471,
+ "community": 520,
"norm_label": "test_override_badge_inactive_uses_muted()"
},
{
@@ -1935,7 +1935,7 @@
"source_file": "tests/unit/ui/test_components.py",
"source_location": "L100",
"id": "ui_test_components_test_sync_status_pending_uses_muted",
- "community": 42,
+ "community": 51,
"norm_label": "test_sync_status_pending_uses_muted()"
},
{
@@ -1944,7 +1944,7 @@
"source_file": "tests/unit/ui/test_components.py",
"source_location": "L106",
"id": "ui_test_components_test_sync_status_synced_uses_success",
- "community": 42,
+ "community": 51,
"norm_label": "test_sync_status_synced_uses_success()"
},
{
@@ -1953,7 +1953,7 @@
"source_file": "tests/unit/ui/test_components.py",
"source_location": "L111",
"id": "ui_test_components_test_sync_status_failed_uses_danger",
- "community": 42,
+ "community": 51,
"norm_label": "test_sync_status_failed_uses_danger()"
},
{
@@ -1962,7 +1962,7 @@
"source_file": "tests/unit/ui/test_components.py",
"source_location": "L116",
"id": "ui_test_components_test_sync_status_blocked_uses_warning",
- "community": 478,
+ "community": 508,
"norm_label": "test_sync_status_blocked_uses_warning()"
},
{
@@ -1971,7 +1971,7 @@
"source_file": "tests/unit/ui/test_components.py",
"source_location": "L123",
"id": "ui_test_components_test_sync_status_override_uses_info",
- "community": 42,
+ "community": 51,
"norm_label": "test_sync_status_override_uses_info()"
},
{
@@ -1980,7 +1980,7 @@
"source_file": "tests/unit/ui/test_components.py",
"source_location": "L128",
"id": "ui_test_components_test_sync_status_cleaned_uses_success_with_cloud_icon",
- "community": 482,
+ "community": 521,
"norm_label": "test_sync_status_cleaned_uses_success_with_cloud_icon()"
},
{
@@ -1989,7 +1989,7 @@
"source_file": "tests/unit/ui/test_components.py",
"source_location": "L136",
"id": "ui_test_components_test_sync_status_acquiring_uses_muted",
- "community": 479,
+ "community": 517,
"norm_label": "test_sync_status_acquiring_uses_muted()"
},
{
@@ -1998,7 +1998,7 @@
"source_file": "tests/unit/ui/test_components.py",
"source_location": "L145",
"id": "ui_test_components_test_sync_status_syncing_uses_info",
- "community": 485,
+ "community": 514,
"norm_label": "test_sync_status_syncing_uses_info()"
},
{
@@ -2007,7 +2007,7 @@
"source_file": "tests/unit/ui/test_components.py",
"source_location": "L154",
"id": "ui_test_components_test_sync_status_on_nas_uses_muted_cloud",
- "community": 477,
+ "community": 522,
"norm_label": "test_sync_status_on_nas_uses_muted_cloud()"
},
{
@@ -2016,7 +2016,7 @@
"source_file": "tests/unit/ui/test_components.py",
"source_location": "L163",
"id": "ui_test_components_test_sync_status_retrying_with_counter",
- "community": 470,
+ "community": 511,
"norm_label": "test_sync_status_retrying_with_counter()"
},
{
@@ -2025,520 +2025,556 @@
"source_file": "tests/unit/ui/test_components.py",
"source_location": "L171",
"id": "ui_test_components_test_sync_status_unknown_raises",
- "community": 474,
+ "community": 516,
"norm_label": "test_sync_status_unknown_raises()"
},
+ {
+ "label": "test_sync_legend_entries_cover_every_state()",
+ "file_type": "code",
+ "source_file": "tests/unit/ui/test_components.py",
+ "source_location": "L178",
+ "id": "ui_test_components_test_sync_legend_entries_cover_every_state",
+ "community": 513,
+ "norm_label": "test_sync_legend_entries_cover_every_state()"
+ },
{
"label": "test_session_progress_phase_order_is_canonical()",
"file_type": "code",
"source_file": "tests/unit/ui/test_components.py",
- "source_location": "L183",
+ "source_location": "L200",
"id": "ui_test_components_test_session_progress_phase_order_is_canonical",
- "community": 487,
+ "community": 432,
"norm_label": "test_session_progress_phase_order_is_canonical()"
},
{
"label": "test_apply_frame_advances_phase_and_marks_predecessors_done()",
"file_type": "code",
"source_file": "tests/unit/ui/test_components.py",
- "source_location": "L199",
+ "source_location": "L216",
"id": "ui_test_components_test_apply_frame_advances_phase_and_marks_predecessors_done",
- "community": 42,
+ "community": 51,
"norm_label": "test_apply_frame_advances_phase_and_marks_predecessors_done()"
},
{
"label": "test_apply_frame_progress_sets_plugin_sub_row()",
"file_type": "code",
"source_file": "tests/unit/ui/test_components.py",
- "source_location": "L207",
+ "source_location": "L224",
"id": "ui_test_components_test_apply_frame_progress_sets_plugin_sub_row",
- "community": 42,
+ "community": 51,
"norm_label": "test_apply_frame_progress_sets_plugin_sub_row()"
},
{
"label": "test_apply_frame_done_completes_all_phases()",
"file_type": "code",
"source_file": "tests/unit/ui/test_components.py",
- "source_location": "L217",
+ "source_location": "L234",
"id": "ui_test_components_test_apply_frame_done_completes_all_phases",
- "community": 42,
+ "community": 51,
"norm_label": "test_apply_frame_done_completes_all_phases()"
},
{
"label": "test_apply_frame_ignores_unknown_kinds_and_phases()",
"file_type": "code",
"source_file": "tests/unit/ui/test_components.py",
- "source_location": "L224",
+ "source_location": "L241",
"id": "ui_test_components_test_apply_frame_ignores_unknown_kinds_and_phases",
- "community": 42,
+ "community": 51,
"norm_label": "test_apply_frame_ignores_unknown_kinds_and_phases()"
},
{
"label": "test_session_progress_active_phase_marked()",
"file_type": "code",
"source_file": "tests/unit/ui/test_components.py",
- "source_location": "L231",
+ "source_location": "L248",
"id": "ui_test_components_test_session_progress_active_phase_marked",
- "community": 467,
+ "community": 435,
"norm_label": "test_session_progress_active_phase_marked()"
},
{
"label": "test_session_progress_plugin_sub_row_present()",
"file_type": "code",
"source_file": "tests/unit/ui/test_components.py",
- "source_location": "L244",
+ "source_location": "L261",
"id": "ui_test_components_test_session_progress_plugin_sub_row_present",
- "community": 481,
+ "community": 434,
"norm_label": "test_session_progress_plugin_sub_row_present()"
},
{
"label": "test_credential_field_states_default_to_not_set()",
"file_type": "code",
"source_file": "tests/unit/ui/test_components.py",
- "source_location": "L266",
+ "source_location": "L283",
"id": "ui_test_components_test_credential_field_states_default_to_not_set",
- "community": 42,
+ "community": 51,
"norm_label": "test_credential_field_states_default_to_not_set()"
},
{
"label": "test_credential_field_set_state_offers_replace_and_clear()",
"file_type": "code",
"source_file": "tests/unit/ui/test_components.py",
- "source_location": "L273",
+ "source_location": "L290",
"id": "ui_test_components_test_credential_field_set_state_offers_replace_and_clear",
- "community": 42,
+ "community": 51,
"norm_label": "test_credential_field_set_state_offers_replace_and_clear()"
},
{
"label": "test_credential_field_editing_offers_save_and_cancel()",
"file_type": "code",
"source_file": "tests/unit/ui/test_components.py",
- "source_location": "L280",
+ "source_location": "L297",
"id": "ui_test_components_test_credential_field_editing_offers_save_and_cancel",
- "community": 42,
+ "community": 51,
"norm_label": "test_credential_field_editing_offers_save_and_cancel()"
},
{
"label": "test_begin_edit_from_not_set_enters_editing_remembering_not_set()",
"file_type": "code",
"source_file": "tests/unit/ui/test_components.py",
- "source_location": "L291",
+ "source_location": "L308",
"id": "ui_test_components_test_begin_edit_from_not_set_enters_editing_remembering_not_set",
- "community": 468,
+ "community": 436,
"norm_label": "test_begin_edit_from_not_set_enters_editing_remembering_not_set()"
},
{
"label": "test_begin_edit_from_set_remembers_set_as_resting()",
"file_type": "code",
"source_file": "tests/unit/ui/test_components.py",
- "source_location": "L301",
+ "source_location": "L318",
"id": "ui_test_components_test_begin_edit_from_set_remembers_set_as_resting",
- "community": 476,
+ "community": 437,
"norm_label": "test_begin_edit_from_set_remembers_set_as_resting()"
},
{
"label": "test_cancel_edit_returns_to_remembered_resting_state()",
"file_type": "code",
"source_file": "tests/unit/ui/test_components.py",
- "source_location": "L311",
+ "source_location": "L328",
"id": "ui_test_components_test_cancel_edit_returns_to_remembered_resting_state",
- "community": 42,
+ "community": 51,
"norm_label": "test_cancel_edit_returns_to_remembered_resting_state()"
},
{
"label": "test_cancel_edit_from_fresh_edit_returns_to_not_set()",
"file_type": "code",
"source_file": "tests/unit/ui/test_components.py",
- "source_location": "L318",
+ "source_location": "L335",
"id": "ui_test_components_test_cancel_edit_from_fresh_edit_returns_to_not_set",
- "community": 42,
+ "community": 51,
"norm_label": "test_cancel_edit_from_fresh_edit_returns_to_not_set()"
},
{
"label": "test_commit_edit_with_value_transitions_to_set_and_signals_save()",
"file_type": "code",
"source_file": "tests/unit/ui/test_components.py",
- "source_location": "L325",
+ "source_location": "L342",
"id": "ui_test_components_test_commit_edit_with_value_transitions_to_set_and_signals_save",
- "community": 42,
+ "community": 51,
"norm_label": "test_commit_edit_with_value_transitions_to_set_and_signals_save()"
},
{
"label": "test_commit_edit_with_empty_value_stays_editing_and_skips_save()",
"file_type": "code",
"source_file": "tests/unit/ui/test_components.py",
- "source_location": "L333",
+ "source_location": "L350",
"id": "ui_test_components_test_commit_edit_with_empty_value_stays_editing_and_skips_save",
- "community": 486,
+ "community": 433,
"norm_label": "test_commit_edit_with_empty_value_stays_editing_and_skips_save()"
},
{
"label": "test_clear_credential_returns_to_not_set()",
"file_type": "code",
"source_file": "tests/unit/ui/test_components.py",
- "source_location": "L342",
+ "source_location": "L359",
"id": "ui_test_components_test_clear_credential_returns_to_not_set",
- "community": 42,
+ "community": 51,
"norm_label": "test_clear_credential_returns_to_not_set()"
},
{
"label": "test_connection_panel_hidden_when_no_result()",
"file_type": "code",
"source_file": "tests/unit/ui/test_components.py",
- "source_location": "L354",
+ "source_location": "L371",
"id": "ui_test_components_test_connection_panel_hidden_when_no_result",
- "community": 42,
+ "community": 51,
"norm_label": "test_connection_panel_hidden_when_no_result()"
},
{
"label": "test_connection_panel_visible_after_result()",
"file_type": "code",
"source_file": "tests/unit/ui/test_components.py",
- "source_location": "L359",
+ "source_location": "L376",
"id": "ui_test_components_test_connection_panel_visible_after_result",
- "community": 42,
+ "community": 51,
"norm_label": "test_connection_panel_visible_after_result()"
},
{
"label": "test_connection_panel_failure_color_is_danger()",
"file_type": "code",
"source_file": "tests/unit/ui/test_components.py",
- "source_location": "L371",
+ "source_location": "L388",
"id": "ui_test_components_test_connection_panel_failure_color_is_danger",
- "community": 42,
+ "community": 51,
"norm_label": "test_connection_panel_failure_color_is_danger()"
},
{
"label": "test_connection_panel_stale_appends_disclaimer()",
"file_type": "code",
"source_file": "tests/unit/ui/test_components.py",
- "source_location": "L381",
+ "source_location": "L398",
"id": "ui_test_components_test_connection_panel_stale_appends_disclaimer",
- "community": 42,
+ "community": 51,
"norm_label": "test_connection_panel_stale_appends_disclaimer()"
},
{
"label": "test_filter_chips_initial_state_respects_default_on()",
"file_type": "code",
"source_file": "tests/unit/ui/test_components.py",
- "source_location": "L393",
+ "source_location": "L410",
"id": "ui_test_components_test_filter_chips_initial_state_respects_default_on",
- "community": 42,
+ "community": 51,
"norm_label": "test_filter_chips_initial_state_respects_default_on()"
},
{
"label": "test_filter_chips_toggle_flips_membership()",
"file_type": "code",
"source_file": "tests/unit/ui/test_components.py",
- "source_location": "L403",
+ "source_location": "L420",
"id": "ui_test_components_test_filter_chips_toggle_flips_membership",
- "community": 42,
+ "community": 51,
"norm_label": "test_filter_chips_toggle_flips_membership()"
},
{
"label": "test_filter_chips_list_active_preserves_definition_order()",
"file_type": "code",
"source_file": "tests/unit/ui/test_components.py",
- "source_location": "L412",
+ "source_location": "L429",
"id": "ui_test_components_test_filter_chips_list_active_preserves_definition_order",
- "community": 42,
+ "community": 51,
"norm_label": "test_filter_chips_list_active_preserves_definition_order()"
},
{
"label": "test_status_bar_segment_normal_uses_muted()",
"file_type": "code",
"source_file": "tests/unit/ui/test_components.py",
- "source_location": "L426",
+ "source_location": "L443",
"id": "ui_test_components_test_status_bar_segment_normal_uses_muted",
- "community": 42,
+ "community": 51,
"norm_label": "test_status_bar_segment_normal_uses_muted()"
},
{
"label": "test_status_bar_segment_warning_prefix_glyph()",
"file_type": "code",
"source_file": "tests/unit/ui/test_components.py",
- "source_location": "L432",
+ "source_location": "L449",
"id": "ui_test_components_test_status_bar_segment_warning_prefix_glyph",
- "community": 42,
+ "community": 51,
"norm_label": "test_status_bar_segment_warning_prefix_glyph()"
},
{
"label": "test_status_bar_segment_danger_prefix_glyph()",
"file_type": "code",
"source_file": "tests/unit/ui/test_components.py",
- "source_location": "L440",
+ "source_location": "L457",
"id": "ui_test_components_test_status_bar_segment_danger_prefix_glyph",
- "community": 42,
+ "community": 51,
"norm_label": "test_status_bar_segment_danger_prefix_glyph()"
},
{
"label": "test_banner_stack_shows_visible_and_overflow_split()",
"file_type": "code",
"source_file": "tests/unit/ui/test_components.py",
- "source_location": "L453",
+ "source_location": "L470",
"id": "ui_test_components_test_banner_stack_shows_visible_and_overflow_split",
- "community": 488,
+ "community": 438,
"norm_label": "test_banner_stack_shows_visible_and_overflow_split()"
},
{
"label": "test_operations_modal_columns_match_spec()",
"file_type": "code",
"source_file": "tests/unit/ui/test_components.py",
- "source_location": "L489",
+ "source_location": "L506",
"id": "ui_test_components_test_operations_modal_columns_match_spec",
- "community": 42,
+ "community": 51,
"norm_label": "test_operations_modal_columns_match_spec()"
},
{
"label": "test_operations_modal_sort_suspended_first_oldest_first()",
"file_type": "code",
"source_file": "tests/unit/ui/test_components.py",
- "source_location": "L502",
+ "source_location": "L519",
"id": "ui_test_components_test_operations_modal_sort_suspended_first_oldest_first",
- "community": 469,
+ "community": 431,
"norm_label": "test_operations_modal_sort_suspended_first_oldest_first()"
},
{
"label": "test_operations_modal_state_glyph_known_states()",
"file_type": "code",
"source_file": "tests/unit/ui/test_components.py",
- "source_location": "L535",
+ "source_location": "L552",
"id": "ui_test_components_test_operations_modal_state_glyph_known_states",
- "community": 42,
+ "community": 51,
"norm_label": "test_operations_modal_state_glyph_known_states()"
},
{
"label": "test_operation_row_from_session_maps_state_buckets_and_fields()",
"file_type": "code",
"source_file": "tests/unit/ui/test_components.py",
- "source_location": "L541",
+ "source_location": "L558",
"id": "ui_test_components_test_operation_row_from_session_maps_state_buckets_and_fields",
- "community": 42,
+ "community": 51,
"norm_label": "test_operation_row_from_session_maps_state_buckets_and_fields()"
},
{
"label": "test_collect_default_values_seeds_from_declared_defaults()",
"file_type": "code",
"source_file": "tests/unit/ui/test_components.py",
- "source_location": "L598",
+ "source_location": "L615",
"id": "ui_test_components_test_collect_default_values_seeds_from_declared_defaults",
- "community": 268,
+ "community": 275,
"norm_label": "test_collect_default_values_seeds_from_declared_defaults()"
},
{
"label": "test_input_required_dialog_builds_without_raising()",
"file_type": "code",
"source_file": "tests/unit/ui/test_components.py",
- "source_location": "L612",
+ "source_location": "L629",
"id": "ui_test_components_test_input_required_dialog_builds_without_raising",
- "community": 268,
+ "community": 275,
"norm_label": "test_input_required_dialog_builds_without_raising()"
},
{
"label": "test_bandwidth_window_validates_from_before_to()",
"file_type": "code",
"source_file": "tests/unit/ui/test_components.py",
- "source_location": "L634",
+ "source_location": "L651",
"id": "ui_test_components_test_bandwidth_window_validates_from_before_to",
- "community": 42,
+ "community": 51,
"norm_label": "test_bandwidth_window_validates_from_before_to()"
},
{
"label": "test_bandwidth_window_passes_when_correct()",
"file_type": "code",
"source_file": "tests/unit/ui/test_components.py",
- "source_location": "L641",
+ "source_location": "L658",
"id": "ui_test_components_test_bandwidth_window_passes_when_correct",
- "community": 42,
+ "community": 51,
"norm_label": "test_bandwidth_window_passes_when_correct()"
},
{
"label": "test_bandwidth_overlap_detected_for_shared_day_and_time()",
"file_type": "code",
"source_file": "tests/unit/ui/test_components.py",
- "source_location": "L648",
+ "source_location": "L665",
"id": "ui_test_components_test_bandwidth_overlap_detected_for_shared_day_and_time",
- "community": 42,
+ "community": 51,
"norm_label": "test_bandwidth_overlap_detected_for_shared_day_and_time()"
},
{
"label": "test_bandwidth_no_overlap_for_disjoint_days()",
"file_type": "code",
"source_file": "tests/unit/ui/test_components.py",
- "source_location": "L654",
+ "source_location": "L671",
"id": "ui_test_components_test_bandwidth_no_overlap_for_disjoint_days",
- "community": 42,
+ "community": 51,
"norm_label": "test_bandwidth_no_overlap_for_disjoint_days()"
},
{
"label": "test_validation_summary_hard_findings_use_warning()",
"file_type": "code",
"source_file": "tests/unit/ui/test_components.py",
- "source_location": "L665",
+ "source_location": "L682",
"id": "ui_test_components_test_validation_summary_hard_findings_use_warning",
- "community": 42,
+ "community": 51,
"norm_label": "test_validation_summary_hard_findings_use_warning()"
},
{
"label": "test_validation_summary_override_takes_priority()",
"file_type": "code",
"source_file": "tests/unit/ui/test_components.py",
- "source_location": "L672",
+ "source_location": "L689",
"id": "ui_test_components_test_validation_summary_override_takes_priority",
- "community": 42,
+ "community": 51,
"norm_label": "test_validation_summary_override_takes_priority()"
},
{
"label": "test_validation_summary_first_two_excerpts_returned_in_payload()",
"file_type": "code",
"source_file": "tests/unit/ui/test_components.py",
- "source_location": "L684",
+ "source_location": "L701",
"id": "ui_test_components_test_validation_summary_first_two_excerpts_returned_in_payload",
- "community": 42,
+ "community": 51,
"norm_label": "test_validation_summary_first_two_excerpts_returned_in_payload()"
},
{
"label": "test_validation_summary_override_line_includes_attribution()",
"file_type": "code",
"source_file": "tests/unit/ui/test_components.py",
- "source_location": "L698",
+ "source_location": "L715",
"id": "ui_test_components_test_validation_summary_override_line_includes_attribution",
- "community": 42,
+ "community": 51,
"norm_label": "test_validation_summary_override_line_includes_attribution()"
},
{
"label": "test_tree_filter_archived_default_off_hides_archived()",
"file_type": "code",
"source_file": "tests/unit/ui/test_components.py",
- "source_location": "L719",
+ "source_location": "L736",
"id": "ui_test_components_test_tree_filter_archived_default_off_hides_archived",
- "community": 407,
+ "community": 394,
"norm_label": "test_tree_filter_archived_default_off_hides_archived()"
},
{
"label": "test_tree_filter_archived_chip_on_shows_archived()",
"file_type": "code",
"source_file": "tests/unit/ui/test_components.py",
- "source_location": "L730",
+ "source_location": "L747",
"id": "ui_test_components_test_tree_filter_archived_chip_on_shows_archived",
- "community": 42,
+ "community": 51,
"norm_label": "test_tree_filter_archived_chip_on_shows_archived()"
},
{
"label": "test_tree_filter_deleted_always_shown()",
"file_type": "code",
"source_file": "tests/unit/ui/test_components.py",
- "source_location": "L739",
+ "source_location": "L756",
"id": "ui_test_components_test_tree_filter_deleted_always_shown",
- "community": 408,
+ "community": 393,
"norm_label": "test_tree_filter_deleted_always_shown()"
},
{
"label": "test_tree_filter_test_runs_chip_off_hides_test_runs()",
"file_type": "code",
"source_file": "tests/unit/ui/test_components.py",
- "source_location": "L750",
+ "source_location": "L767",
"id": "ui_test_components_test_tree_filter_test_runs_chip_off_hides_test_runs",
- "community": 42,
+ "community": 51,
"norm_label": "test_tree_filter_test_runs_chip_off_hides_test_runs()"
},
{
"label": "test_tree_build_nodes_yields_canonical_kinds()",
"file_type": "code",
"source_file": "tests/unit/ui/test_components.py",
- "source_location": "L758",
+ "source_location": "L775",
"id": "ui_test_components_test_tree_build_nodes_yields_canonical_kinds",
- "community": 42,
+ "community": 51,
"norm_label": "test_tree_build_nodes_yields_canonical_kinds()"
},
{
"label": "test_tree_test_run_carries_test_badge()",
"file_type": "code",
"source_file": "tests/unit/ui/test_components.py",
- "source_location": "L771",
+ "source_location": "L788",
"id": "ui_test_components_test_tree_test_run_carries_test_badge",
- "community": 42,
+ "community": 51,
"norm_label": "test_tree_test_run_carries_test_badge()"
},
{
"label": "test_tree_run_node_propagates_sync_status()",
"file_type": "code",
"source_file": "tests/unit/ui/test_components.py",
- "source_location": "L786",
+ "source_location": "L803",
"id": "ui_test_components_test_tree_run_node_propagates_sync_status",
- "community": 405,
+ "community": 326,
"norm_label": "test_tree_run_node_propagates_sync_status()"
},
{
"label": "test_to_nicegui_nodes_cleared_run_uses_cloud_icon()",
"file_type": "code",
"source_file": "tests/unit/ui/test_components.py",
- "source_location": "L803",
+ "source_location": "L820",
"id": "ui_test_components_test_to_nicegui_nodes_cleared_run_uses_cloud_icon",
- "community": 410,
+ "community": 326,
"norm_label": "test_to_nicegui_nodes_cleared_run_uses_cloud_icon()"
},
{
"label": "test_to_nicegui_nodes_local_run_uses_local_icon()",
"file_type": "code",
"source_file": "tests/unit/ui/test_components.py",
- "source_location": "L828",
+ "source_location": "L845",
"id": "ui_test_components_test_to_nicegui_nodes_local_run_uses_local_icon",
- "community": 413,
+ "community": 391,
"norm_label": "test_to_nicegui_nodes_local_run_uses_local_icon()"
},
{
"label": "test_to_nicegui_nodes_equipment_and_project_have_no_sync_icon()",
"file_type": "code",
"source_file": "tests/unit/ui/test_components.py",
- "source_location": "L854",
+ "source_location": "L871",
"id": "ui_test_components_test_to_nicegui_nodes_equipment_and_project_have_no_sync_icon",
- "community": 415,
+ "community": 327,
"norm_label": "test_to_nicegui_nodes_equipment_and_project_have_no_sync_icon()"
},
+ {
+ "label": "test_to_nicegui_nodes_carries_sync_title()",
+ "file_type": "code",
+ "source_file": "tests/unit/ui/test_components.py",
+ "source_location": "L888",
+ "id": "ui_test_components_test_to_nicegui_nodes_carries_sync_title",
+ "community": 515,
+ "norm_label": "test_to_nicegui_nodes_carries_sync_title()"
+ },
+ {
+ "label": "test_build_tree_seeds_selected_node()",
+ "file_type": "code",
+ "source_file": "tests/unit/ui/test_components.py",
+ "source_location": "L912",
+ "id": "ui_test_components_test_build_tree_seeds_selected_node",
+ "community": 510,
+ "norm_label": "test_build_tree_seeds_selected_node()"
+ },
+ {
+ "label": "test_build_tree_no_selection_leaves_selected_unset()",
+ "file_type": "code",
+ "source_file": "tests/unit/ui/test_components.py",
+ "source_location": "L930",
+ "id": "ui_test_components_test_build_tree_no_selection_leaves_selected_unset",
+ "community": 507,
+ "norm_label": "test_build_tree_no_selection_leaves_selected_unset()"
+ },
{
"label": "test_equipment_node_relay_flag_emits_received_equipment_kind()",
"file_type": "code",
"source_file": "tests/unit/ui/test_components.py",
- "source_location": "L876",
+ "source_location": "L948",
"id": "ui_test_components_test_equipment_node_relay_flag_emits_received_equipment_kind",
- "community": 409,
+ "community": 327,
"norm_label": "test_equipment_node_relay_flag_emits_received_equipment_kind()"
},
{
"label": "test_to_nicegui_nodes_emits_testid_kind()",
"file_type": "code",
"source_file": "tests/unit/ui/test_components.py",
- "source_location": "L890",
+ "source_location": "L962",
"id": "ui_test_components_test_to_nicegui_nodes_emits_testid_kind",
- "community": 406,
+ "community": 395,
"norm_label": "test_to_nicegui_nodes_emits_testid_kind()"
},
{
"label": "test_slot_template_emits_testid_data_node_id_and_context_menus()",
"file_type": "code",
"source_file": "tests/unit/ui/test_components.py",
- "source_location": "L914",
+ "source_location": "L986",
"id": "ui_test_components_test_slot_template_emits_testid_data_node_id_and_context_menus",
- "community": 412,
+ "community": 390,
"norm_label": "test_slot_template_emits_testid_data_node_id_and_context_menus()"
},
{
"label": "test_factories_smoke_outside_nicegui()",
"file_type": "code",
"source_file": "tests/unit/ui/test_components.py",
- "source_location": "L954",
+ "source_location": "L1026",
"id": "ui_test_components_test_factories_smoke_outside_nicegui",
- "community": 414,
+ "community": 392,
"norm_label": "test_factories_smoke_outside_nicegui()"
},
{
"label": "test_no_stray_ui_notify_calls_in_ui_package()",
"file_type": "code",
"source_file": "tests/unit/ui/test_components.py",
- "source_location": "L987",
+ "source_location": "L1059",
"id": "ui_test_components_test_no_stray_ui_notify_calls_in_ui_package",
- "community": 411,
+ "community": 389,
"norm_label": "test_no_stray_ui_notify_calls_in_ui_package()"
},
{
@@ -2547,7 +2583,7 @@
"source_file": "tests/unit/ui/test_components.py",
"source_location": "L1",
"id": "ui_test_components_rationale_1",
- "community": 42,
+ "community": 51,
"norm_label": "unit tests for the ui components. each component exposes a pure-data ``*_props`"
},
{
@@ -2556,7 +2592,7 @@
"source_file": "tests/unit/ui/test_components.py",
"source_location": "L38",
"id": "ui_test_components_rationale_38",
- "community": 472,
+ "community": 512,
"norm_label": "test-mode badge maps to ``--color-warning`` (frontend \u00a75.3)."
},
{
@@ -2565,7 +2601,7 @@
"source_file": "tests/unit/ui/test_components.py",
"source_location": "L46",
"id": "ui_test_components_rationale_46",
- "community": 484,
+ "community": 519,
"norm_label": "experimental badge maps to ``--color-navy``."
},
{
@@ -2574,7 +2610,7 @@
"source_file": "tests/unit/ui/test_components.py",
"source_location": "L53",
"id": "ui_test_components_rationale_53",
- "community": 480,
+ "community": 505,
"norm_label": "a ``none`` run kind defaults to navy with a placeholder label."
},
{
@@ -2583,7 +2619,7 @@
"source_file": "tests/unit/ui/test_components.py",
"source_location": "L61",
"id": "ui_test_components_rationale_61",
- "community": 475,
+ "community": 518,
"norm_label": "an explicit label overrides the default."
},
{
@@ -2592,7 +2628,7 @@
"source_file": "tests/unit/ui/test_components.py",
"source_location": "L73",
"id": "ui_test_components_rationale_73",
- "community": 483,
+ "community": 506,
"norm_label": "the test-run pill uses the orange darkened-aa text variant."
},
{
@@ -2601,7 +2637,7 @@
"source_file": "tests/unit/ui/test_components.py",
"source_location": "L81",
"id": "ui_test_components_rationale_81",
- "community": 473,
+ "community": 509,
"norm_label": "an active override pill uses the sky-blue aa text variant."
},
{
@@ -2610,7 +2646,7 @@
"source_file": "tests/unit/ui/test_components.py",
"source_location": "L89",
"id": "ui_test_components_rationale_89",
- "community": 471,
+ "community": 520,
"norm_label": "an inactive override pill uses the muted gray."
},
{
@@ -2619,7 +2655,7 @@
"source_file": "tests/unit/ui/test_components.py",
"source_location": "L117",
"id": "ui_test_components_rationale_117",
- "community": 478,
+ "community": 508,
"norm_label": "blocked-by-validation maps to warning per frontend \u00a72.1.4."
},
{
@@ -2628,7 +2664,7 @@
"source_file": "tests/unit/ui/test_components.py",
"source_location": "L129",
"id": "ui_test_components_rationale_129",
- "community": 482,
+ "community": 521,
"norm_label": "cleaned status (post-cleanup) reuses the success color with a cloud glyph."
},
{
@@ -2637,7 +2673,7 @@
"source_file": "tests/unit/ui/test_components.py",
"source_location": "L137",
"id": "ui_test_components_rationale_137",
- "community": 479,
+ "community": 517,
"norm_label": "``acquiring`` (new file, still settling) uses the muted token."
},
{
@@ -2646,7 +2682,7 @@
"source_file": "tests/unit/ui/test_components.py",
"source_location": "L146",
"id": "ui_test_components_rationale_146",
- "community": 485,
+ "community": 514,
"norm_label": "``syncing`` (settled, transferring) uses the info token."
},
{
@@ -2655,7 +2691,7 @@
"source_file": "tests/unit/ui/test_components.py",
"source_location": "L155",
"id": "ui_test_components_rationale_155",
- "community": 477,
+ "community": 522,
"norm_label": "``on_nas`` (tombstone, local copy cleared) uses a muted cloud glyph."
},
{
@@ -2664,7 +2700,7 @@
"source_file": "tests/unit/ui/test_components.py",
"source_location": "L164",
"id": "ui_test_components_rationale_164",
- "community": 470,
+ "community": 511,
"norm_label": "retry counter renders as ``(n/m)`` (frontend \u00a710.5.1)."
},
{
@@ -2673,178 +2709,214 @@
"source_file": "tests/unit/ui/test_components.py",
"source_location": "L172",
"id": "ui_test_components_rationale_172",
- "community": 474,
+ "community": 516,
"norm_label": "unknown status values raise."
},
+ {
+ "label": "The legend lists one row per known state, each with icon + meaning, sourced",
+ "file_type": "rationale",
+ "source_file": "tests/unit/ui/test_components.py",
+ "source_location": "L179",
+ "id": "ui_test_components_rationale_179",
+ "community": 513,
+ "norm_label": "the legend lists one row per known state, each with icon + meaning, sourced"
+ },
{
"label": "The phase enum order matches Frontend \u00a710.1.",
"file_type": "rationale",
"source_file": "tests/unit/ui/test_components.py",
- "source_location": "L184",
- "id": "ui_test_components_rationale_184",
- "community": 487,
+ "source_location": "L201",
+ "id": "ui_test_components_rationale_201",
+ "community": 432,
"norm_label": "the phase enum order matches frontend \u00a710.1."
},
{
"label": "The active phase has fraction 0.5 and ``is_active``.",
"file_type": "rationale",
"source_file": "tests/unit/ui/test_components.py",
- "source_location": "L232",
- "id": "ui_test_components_rationale_232",
- "community": 467,
+ "source_location": "L249",
+ "id": "ui_test_components_rationale_249",
+ "community": 435,
"norm_label": "the active phase has fraction 0.5 and ``is_active``."
},
{
"label": "When ``running_plugins`` carries N/M, a sub-row dict is emitted. We assert",
"file_type": "rationale",
"source_file": "tests/unit/ui/test_components.py",
- "source_location": "L245",
- "id": "ui_test_components_rationale_245",
- "community": 481,
+ "source_location": "L262",
+ "id": "ui_test_components_rationale_262",
+ "community": 434,
"norm_label": "when ``running_plugins`` carries n/m, a sub-row dict is emitted. we assert"
},
{
"label": "Clicking *Set* opens the editor; *Cancel* must return to Not set.",
"file_type": "rationale",
"source_file": "tests/unit/ui/test_components.py",
- "source_location": "L292",
- "id": "ui_test_components_rationale_292",
- "community": 468,
+ "source_location": "L309",
+ "id": "ui_test_components_rationale_309",
+ "community": 436,
"norm_label": "clicking *set* opens the editor; *cancel* must return to not set."
},
{
"label": "Clicking *Replace* opens the editor; *Cancel* must return to Set.",
"file_type": "rationale",
"source_file": "tests/unit/ui/test_components.py",
- "source_location": "L302",
- "id": "ui_test_components_rationale_302",
- "community": 476,
+ "source_location": "L319",
+ "id": "ui_test_components_rationale_319",
+ "community": 437,
"norm_label": "clicking *replace* opens the editor; *cancel* must return to set."
},
{
"label": "An empty input has nothing to persist -- stay in the editor.",
"file_type": "rationale",
"source_file": "tests/unit/ui/test_components.py",
- "source_location": "L334",
- "id": "ui_test_components_rationale_334",
- "community": 486,
+ "source_location": "L351",
+ "id": "ui_test_components_rationale_351",
+ "community": 433,
"norm_label": "an empty input has nothing to persist -- stay in the editor."
},
{
"label": "Banners exceed the 2-cap; overflow is reported.",
"file_type": "rationale",
"source_file": "tests/unit/ui/test_components.py",
- "source_location": "L454",
- "id": "ui_test_components_rationale_454",
- "community": 488,
+ "source_location": "L471",
+ "id": "ui_test_components_rationale_471",
+ "community": 438,
"norm_label": "banners exceed the 2-cap; overflow is reported."
},
{
"label": "Suspended rows sort first, oldest started_at first (\u00a79.5).",
"file_type": "rationale",
"source_file": "tests/unit/ui/test_components.py",
- "source_location": "L503",
- "id": "ui_test_components_rationale_503",
- "community": 469,
+ "source_location": "L520",
+ "id": "ui_test_components_rationale_520",
+ "community": 431,
"norm_label": "suspended rows sort first, oldest started_at first (\u00a79.5)."
},
{
"label": "Archived projects are hidden by default.",
"file_type": "rationale",
"source_file": "tests/unit/ui/test_components.py",
- "source_location": "L720",
- "id": "ui_test_components_rationale_720",
- "community": 407,
+ "source_location": "L737",
+ "id": "ui_test_components_rationale_737",
+ "community": 394,
"norm_label": "archived projects are hidden by default."
},
{
"label": "Deleted-from-LIMS rows always render (Frontend \u00a73.5.3).",
"file_type": "rationale",
"source_file": "tests/unit/ui/test_components.py",
- "source_location": "L740",
- "id": "ui_test_components_rationale_740",
- "community": 408,
+ "source_location": "L757",
+ "id": "ui_test_components_rationale_757",
+ "community": 393,
"norm_label": "deleted-from-lims rows always render (frontend \u00a73.5.3)."
},
{
"label": "``RunNode.sync_status`` flows through to the resulting ``TreeNode``.",
"file_type": "rationale",
"source_file": "tests/unit/ui/test_components.py",
- "source_location": "L787",
- "id": "ui_test_components_rationale_787",
- "community": 405,
+ "source_location": "L804",
+ "id": "ui_test_components_rationale_804",
+ "community": 326,
"norm_label": "``runnode.sync_status`` flows through to the resulting ``treenode``."
},
{
"label": "A ``cleared`` run row carries the cloud-icon URL and its sync_status. Opera",
"file_type": "rationale",
"source_file": "tests/unit/ui/test_components.py",
- "source_location": "L804",
- "id": "ui_test_components_rationale_804",
- "community": 410,
+ "source_location": "L821",
+ "id": "ui_test_components_rationale_821",
+ "community": 326,
"norm_label": "a ``cleared`` run row carries the cloud-icon url and its sync_status. opera"
},
{
"label": "Any non-``cleaned`` sync status (or unset) maps to the local-icon URL.",
"file_type": "rationale",
"source_file": "tests/unit/ui/test_components.py",
- "source_location": "L829",
- "id": "ui_test_components_rationale_829",
- "community": 413,
+ "source_location": "L846",
+ "id": "ui_test_components_rationale_846",
+ "community": 391,
"norm_label": "any non-``cleaned`` sync status (or unset) maps to the local-icon url."
},
{
"label": "Equipment and project rows render without the per-row sync icon.",
"file_type": "rationale",
"source_file": "tests/unit/ui/test_components.py",
- "source_location": "L855",
- "id": "ui_test_components_rationale_855",
- "community": 415,
+ "source_location": "L872",
+ "id": "ui_test_components_rationale_872",
+ "community": 327,
"norm_label": "equipment and project rows render without the per-row sync icon."
},
+ {
+ "label": "Run rows carry a friendly ``sync_title`` hover tooltip mirroring the icon: c",
+ "file_type": "rationale",
+ "source_file": "tests/unit/ui/test_components.py",
+ "source_location": "L889",
+ "id": "ui_test_components_rationale_889",
+ "community": 515,
+ "norm_label": "run rows carry a friendly ``sync_title`` hover tooltip mirroring the icon: c"
+ },
+ {
+ "label": "``selected_node`` seeds Quasar's v-model:selected so the current node render",
+ "file_type": "rationale",
+ "source_file": "tests/unit/ui/test_components.py",
+ "source_location": "L913",
+ "id": "ui_test_components_rationale_913",
+ "community": 510,
+ "norm_label": "``selected_node`` seeds quasar's v-model:selected so the current node render"
+ },
+ {
+ "label": "Without ``selected_node`` the tree carries no seeded selection.",
+ "file_type": "rationale",
+ "source_file": "tests/unit/ui/test_components.py",
+ "source_location": "L931",
+ "id": "ui_test_components_rationale_931",
+ "community": 507,
+ "norm_label": "without ``selected_node`` the tree carries no seeded selection."
+ },
{
"label": "An ``EquipmentNode(relay=True)`` builds a ``received_equipment`` row.",
"file_type": "rationale",
"source_file": "tests/unit/ui/test_components.py",
- "source_location": "L877",
- "id": "ui_test_components_rationale_877",
- "community": 409,
+ "source_location": "L949",
+ "id": "ui_test_components_rationale_949",
+ "community": 327,
"norm_label": "an ``equipmentnode(relay=true)`` builds a ``received_equipment`` row."
},
{
"label": "Each row carries a ``testid_kind`` matching the Playwright contract.",
"file_type": "rationale",
"source_file": "tests/unit/ui/test_components.py",
- "source_location": "L891",
- "id": "ui_test_components_rationale_891",
- "community": 406,
+ "source_location": "L963",
+ "id": "ui_test_components_rationale_963",
+ "community": 395,
"norm_label": "each row carries a ``testid_kind`` matching the playwright contract."
},
{
"label": "The ``default-header`` template carries the per-row anchors the Playwright f",
"file_type": "rationale",
"source_file": "tests/unit/ui/test_components.py",
- "source_location": "L915",
- "id": "ui_test_components_rationale_915",
- "community": 412,
+ "source_location": "L987",
+ "id": "ui_test_components_rationale_987",
+ "community": 390,
"norm_label": "the ``default-header`` template carries the per-row anchors the playwright f"
},
{
"label": "Each factory emits a dict (or NiceGUI element) without crashing. The factor",
"file_type": "rationale",
"source_file": "tests/unit/ui/test_components.py",
- "source_location": "L955",
- "id": "ui_test_components_rationale_955",
- "community": 414,
+ "source_location": "L1027",
+ "id": "ui_test_components_rationale_1027",
+ "community": 392,
"norm_label": "each factory emits a dict (or nicegui element) without crashing. the factor"
},
{
"label": "The pre-commit ``no-direct-ui-notify`` rule is mirrored in tests. Any call",
"file_type": "rationale",
"source_file": "tests/unit/ui/test_components.py",
- "source_location": "L988",
- "id": "ui_test_components_rationale_988",
- "community": 411,
+ "source_location": "L1060",
+ "id": "ui_test_components_rationale_1060",
+ "community": 389,
"norm_label": "the pre-commit ``no-direct-ui-notify`` rule is mirrored in tests. any call"
},
{
@@ -2853,7 +2925,7 @@
"source_file": "tests/unit/ui/test_framed_pane.py",
"source_location": "L1",
"id": "tests_unit_ui_test_framed_pane_py",
- "community": 70,
+ "community": 61,
"norm_label": "test_framed_pane.py"
},
{
@@ -2862,7 +2934,7 @@
"source_file": "tests/unit/ui/test_framed_pane.py",
"source_location": "L13",
"id": "ui_test_framed_pane_test_card_style_uses_surface_border_shadow_radius_tokens",
- "community": 70,
+ "community": 61,
"norm_label": "test_card_style_uses_surface_border_shadow_radius_tokens()"
},
{
@@ -2871,7 +2943,7 @@
"source_file": "tests/unit/ui/test_framed_pane.py",
"source_location": "L24",
"id": "ui_test_framed_pane_test_card_style_ends_with_semicolon_for_safe_concatenation",
- "community": 70,
+ "community": 61,
"norm_label": "test_card_style_ends_with_semicolon_for_safe_concatenation()"
},
{
@@ -2880,7 +2952,7 @@
"source_file": "tests/unit/ui/test_framed_pane.py",
"source_location": "L30",
"id": "ui_test_framed_pane_test_card_style_carries_literal_fallbacks",
- "community": 70,
+ "community": 61,
"norm_label": "test_card_style_carries_literal_fallbacks()"
},
{
@@ -2889,7 +2961,7 @@
"source_file": "tests/unit/ui/test_framed_pane.py",
"source_location": "L37",
"id": "ui_test_framed_pane_test_header_style_is_tinted_strip_with_rule",
- "community": 70,
+ "community": 61,
"norm_label": "test_header_style_is_tinted_strip_with_rule()"
},
{
@@ -2898,7 +2970,7 @@
"source_file": "tests/unit/ui/test_framed_pane.py",
"source_location": "L44",
"id": "ui_test_framed_pane_test_body_style_scrolls",
- "community": 70,
+ "community": 61,
"norm_label": "test_body_style_scrolls()"
},
{
@@ -2907,7 +2979,7 @@
"source_file": "tests/unit/ui/test_framed_pane.py",
"source_location": "L50",
"id": "ui_test_framed_pane_test_framed_pane_yields_body_and_nests_children",
- "community": 70,
+ "community": 61,
"norm_label": "test_framed_pane_yields_body_and_nests_children()"
},
{
@@ -2916,16 +2988,34 @@
"source_file": "tests/unit/ui/test_framed_pane.py",
"source_location": "L66",
"id": "ui_test_framed_pane_test_framed_pane_card_carries_testid",
- "community": 70,
+ "community": 61,
"norm_label": "test_framed_pane_card_carries_testid()"
},
{
- "label": "test_framed_pane_renders_header_extra_in_strip()",
+ "label": "test_framed_pane_applies_card_classes()",
"file_type": "code",
"source_file": "tests/unit/ui/test_framed_pane.py",
"source_location": "L77",
+ "id": "ui_test_framed_pane_test_framed_pane_applies_card_classes",
+ "community": 61,
+ "norm_label": "test_framed_pane_applies_card_classes()"
+ },
+ {
+ "label": "test_framed_pane_no_card_classes_by_default()",
+ "file_type": "code",
+ "source_file": "tests/unit/ui/test_framed_pane.py",
+ "source_location": "L89",
+ "id": "ui_test_framed_pane_test_framed_pane_no_card_classes_by_default",
+ "community": 61,
+ "norm_label": "test_framed_pane_no_card_classes_by_default()"
+ },
+ {
+ "label": "test_framed_pane_renders_header_extra_in_strip()",
+ "file_type": "code",
+ "source_file": "tests/unit/ui/test_framed_pane.py",
+ "source_location": "L98",
"id": "ui_test_framed_pane_test_framed_pane_renders_header_extra_in_strip",
- "community": 70,
+ "community": 61,
"norm_label": "test_framed_pane_renders_header_extra_in_strip()"
},
{
@@ -2934,7 +3024,7 @@
"source_file": "tests/unit/ui/test_framed_pane.py",
"source_location": "L1",
"id": "ui_test_framed_pane_rationale_1",
- "community": 70,
+ "community": 61,
"norm_label": "unit tests for the framed-pane helper (redesign \u00a74.1)."
},
{
@@ -2943,7 +3033,7 @@
"source_file": "tests/unit/ui/test_framed_pane.py",
"source_location": "L25",
"id": "ui_test_framed_pane_rationale_25",
- "community": 70,
+ "community": 61,
"norm_label": "the metadata pane appends 'overflow: auto;' -- card_style() must end with ';"
},
{
@@ -2952,7 +3042,7 @@
"source_file": "tests/unit/ui/test_framed_pane.py",
"source_location": "L31",
"id": "ui_test_framed_pane_rationale_31",
- "community": 70,
+ "community": 61,
"norm_label": "every token has a literal fallback (register_theme not on every route)."
},
{
@@ -2961,7 +3051,7 @@
"source_file": "tests/unit/ui/test_framed_pane.py",
"source_location": "L51",
"id": "ui_test_framed_pane_rationale_51",
- "community": 70,
+ "community": 61,
"norm_label": "the manager yields the body element and children of the ``with`` block land"
},
{
@@ -2970,16 +3060,34 @@
"source_file": "tests/unit/ui/test_framed_pane.py",
"source_location": "L67",
"id": "ui_test_framed_pane_rationale_67",
- "community": 70,
+ "community": 61,
"norm_label": "the card root (the body's grandparent element) carries the testid."
},
{
- "label": "``header_extra`` renders its controls inside the title strip (Phase 4). Use",
+ "label": "``card_classes`` lands on the card root so descendant CSS (e.g. the compact-",
"file_type": "rationale",
"source_file": "tests/unit/ui/test_framed_pane.py",
"source_location": "L78",
"id": "ui_test_framed_pane_rationale_78",
- "community": 70,
+ "community": 61,
+ "norm_label": "``card_classes`` lands on the card root so descendant css (e.g. the compact-"
+ },
+ {
+ "label": "Omitting ``card_classes`` adds no extra class to the card root.",
+ "file_type": "rationale",
+ "source_file": "tests/unit/ui/test_framed_pane.py",
+ "source_location": "L90",
+ "id": "ui_test_framed_pane_rationale_90",
+ "community": 61,
+ "norm_label": "omitting ``card_classes`` adds no extra class to the card root."
+ },
+ {
+ "label": "``header_extra`` renders its controls inside the title strip (Phase 4). Use",
+ "file_type": "rationale",
+ "source_file": "tests/unit/ui/test_framed_pane.py",
+ "source_location": "L99",
+ "id": "ui_test_framed_pane_rationale_99",
+ "community": 61,
"norm_label": "``header_extra`` renders its controls inside the title strip (phase 4). use"
},
{
@@ -2988,421 +3096,475 @@
"source_file": "tests/unit/ui/test_pages.py",
"source_location": "L1",
"id": "tests_unit_ui_test_pages_py",
- "community": 132,
+ "community": 138,
"norm_label": "test_pages.py"
},
{
"label": "test_welcome_card_spec_default_autostart_on()",
"file_type": "code",
"source_file": "tests/unit/ui/test_pages.py",
- "source_location": "L25",
+ "source_location": "L32",
"id": "ui_test_pages_test_welcome_card_spec_default_autostart_on",
- "community": 492,
+ "community": 452,
"norm_label": "test_welcome_card_spec_default_autostart_on()"
},
{
"label": "test_welcome_card_three_bullets()",
"file_type": "code",
"source_file": "tests/unit/ui/test_pages.py",
- "source_location": "L36",
+ "source_location": "L43",
"id": "ui_test_pages_test_welcome_card_three_bullets",
- "community": 499,
+ "community": 442,
"norm_label": "test_welcome_card_three_bullets()"
},
{
"label": "test_main_default_chips_match_spec()",
"file_type": "code",
"source_file": "tests/unit/ui/test_pages.py",
- "source_location": "L56",
+ "source_location": "L63",
"id": "ui_test_pages_test_main_default_chips_match_spec",
- "community": 503,
+ "community": 455,
"norm_label": "test_main_default_chips_match_spec()"
},
{
"label": "test_main_chip_state_to_tree_filters_round_trip()",
"file_type": "code",
"source_file": "tests/unit/ui/test_pages.py",
- "source_location": "L66",
+ "source_location": "L73",
"id": "ui_test_pages_test_main_chip_state_to_tree_filters_round_trip",
- "community": 491,
+ "community": 441,
"norm_label": "test_main_chip_state_to_tree_filters_round_trip()"
},
{
"label": "test_main_problems_badge_simple_count_when_no_soft()",
"file_type": "code",
"source_file": "tests/unit/ui/test_pages.py",
- "source_location": "L76",
+ "source_location": "L83",
"id": "ui_test_pages_test_main_problems_badge_simple_count_when_no_soft",
- "community": 132,
+ "community": 138,
"norm_label": "test_main_problems_badge_simple_count_when_no_soft()"
},
{
"label": "test_main_problems_badge_compound_when_soft_present()",
"file_type": "code",
"source_file": "tests/unit/ui/test_pages.py",
- "source_location": "L81",
+ "source_location": "L88",
"id": "ui_test_pages_test_main_problems_badge_compound_when_soft_present",
- "community": 132,
+ "community": 138,
"norm_label": "test_main_problems_badge_compound_when_soft_present()"
},
{
"label": "test_main_setup_incomplete_banner_uses_warning()",
"file_type": "code",
"source_file": "tests/unit/ui/test_pages.py",
- "source_location": "L86",
+ "source_location": "L93",
"id": "ui_test_pages_test_main_setup_incomplete_banner_uses_warning",
- "community": 490,
+ "community": 446,
"norm_label": "test_main_setup_incomplete_banner_uses_warning()"
},
{
"label": "test_main_setup_banner_subline_tailored_for_rclone_remote()",
"file_type": "code",
"source_file": "tests/unit/ui/test_pages.py",
- "source_location": "L94",
+ "source_location": "L101",
"id": "ui_test_pages_test_main_setup_banner_subline_tailored_for_rclone_remote",
- "community": 416,
+ "community": 397,
"norm_label": "test_main_setup_banner_subline_tailored_for_rclone_remote()"
},
+ {
+ "label": "_search_hierarchy()",
+ "file_type": "code",
+ "source_file": "tests/unit/ui/test_pages.py",
+ "source_location": "L116",
+ "id": "ui_test_pages_search_hierarchy",
+ "community": 299,
+ "norm_label": "_search_hierarchy()"
+ },
+ {
+ "label": "test_main_chip_state_to_tree_filters_threads_search()",
+ "file_type": "code",
+ "source_file": "tests/unit/ui/test_pages.py",
+ "source_location": "L129",
+ "id": "ui_test_pages_test_main_chip_state_to_tree_filters_threads_search",
+ "community": 524,
+ "norm_label": "test_main_chip_state_to_tree_filters_threads_search()"
+ },
+ {
+ "label": "test_main_count_search_results_counts_projects_and_runs()",
+ "file_type": "code",
+ "source_file": "tests/unit/ui/test_pages.py",
+ "source_location": "L137",
+ "id": "ui_test_pages_test_main_count_search_results_counts_projects_and_runs",
+ "community": 299,
+ "norm_label": "test_main_count_search_results_counts_projects_and_runs()"
+ },
+ {
+ "label": "test_main_count_search_results_narrows_with_query()",
+ "file_type": "code",
+ "source_file": "tests/unit/ui/test_pages.py",
+ "source_location": "L146",
+ "id": "ui_test_pages_test_main_count_search_results_narrows_with_query",
+ "community": 299,
+ "norm_label": "test_main_count_search_results_narrows_with_query()"
+ },
+ {
+ "label": "test_main_count_search_results_zero_on_no_match()",
+ "file_type": "code",
+ "source_file": "tests/unit/ui/test_pages.py",
+ "source_location": "L155",
+ "id": "ui_test_pages_test_main_count_search_results_zero_on_no_match",
+ "community": 299,
+ "norm_label": "test_main_count_search_results_zero_on_no_match()"
+ },
+ {
+ "label": "test_main_density_card_class_maps_compact()",
+ "file_type": "code",
+ "source_file": "tests/unit/ui/test_pages.py",
+ "source_location": "L166",
+ "id": "ui_test_pages_test_main_density_card_class_maps_compact",
+ "community": 523,
+ "norm_label": "test_main_density_card_class_maps_compact()"
+ },
{
"label": "test_wizard_project_seven_steps()",
"file_type": "code",
"source_file": "tests/unit/ui/test_pages.py",
- "source_location": "L109",
+ "source_location": "L180",
"id": "ui_test_pages_test_wizard_project_seven_steps",
- "community": 496,
+ "community": 445,
"norm_label": "test_wizard_project_seven_steps()"
},
{
"label": "test_wizard_project_can_advance_blocks_until_lims_picked()",
"file_type": "code",
"source_file": "tests/unit/ui/test_pages.py",
- "source_location": "L117",
+ "source_location": "L188",
"id": "ui_test_pages_test_wizard_project_can_advance_blocks_until_lims_picked",
- "community": 500,
+ "community": 448,
"norm_label": "test_wizard_project_can_advance_blocks_until_lims_picked()"
},
{
"label": "test_wizard_project_can_advance_blocks_until_template_picked()",
"file_type": "code",
"source_file": "tests/unit/ui/test_pages.py",
- "source_location": "L126",
+ "source_location": "L197",
"id": "ui_test_pages_test_wizard_project_can_advance_blocks_until_template_picked",
- "community": 132,
+ "community": 138,
"norm_label": "test_wizard_project_can_advance_blocks_until_template_picked()"
},
{
"label": "test_wizard_project_readme_requires_core_fields()",
"file_type": "code",
"source_file": "tests/unit/ui/test_pages.py",
- "source_location": "L133",
+ "source_location": "L204",
"id": "ui_test_pages_test_wizard_project_readme_requires_core_fields",
- "community": 132,
+ "community": 138,
"norm_label": "test_wizard_project_readme_requires_core_fields()"
},
{
"label": "test_wizard_project_preview_blocks_with_validator_findings()",
"file_type": "code",
"source_file": "tests/unit/ui/test_pages.py",
- "source_location": "L140",
+ "source_location": "L211",
"id": "ui_test_pages_test_wizard_project_preview_blocks_with_validator_findings",
- "community": 132,
+ "community": 138,
"norm_label": "test_wizard_project_preview_blocks_with_validator_findings()"
},
{
"label": "test_wizard_project_preview_blocks_with_low_disk()",
"file_type": "code",
"source_file": "tests/unit/ui/test_pages.py",
- "source_location": "L148",
+ "source_location": "L219",
"id": "ui_test_pages_test_wizard_project_preview_blocks_with_low_disk",
- "community": 493,
+ "community": 444,
"norm_label": "test_wizard_project_preview_blocks_with_low_disk()"
},
{
"label": "test_wizard_project_preview_blocks_when_plugin_host_unhealthy()",
"file_type": "code",
"source_file": "tests/unit/ui/test_pages.py",
- "source_location": "L160",
+ "source_location": "L231",
"id": "ui_test_pages_test_wizard_project_preview_blocks_when_plugin_host_unhealthy",
- "community": 132,
+ "community": 138,
"norm_label": "test_wizard_project_preview_blocks_when_plugin_host_unhealthy()"
},
{
"label": "test_wizard_project_preview_passes_when_clear()",
"file_type": "code",
"source_file": "tests/unit/ui/test_pages.py",
- "source_location": "L168",
+ "source_location": "L239",
"id": "ui_test_pages_test_wizard_project_preview_passes_when_clear",
- "community": 132,
+ "community": 138,
"norm_label": "test_wizard_project_preview_passes_when_clear()"
},
{
"label": "test_wizard_run_six_steps()",
"file_type": "code",
"source_file": "tests/unit/ui/test_pages.py",
- "source_location": "L182",
+ "source_location": "L253",
"id": "ui_test_pages_test_wizard_run_six_steps",
- "community": 132,
+ "community": 138,
"norm_label": "test_wizard_run_six_steps()"
},
{
"label": "test_wizard_run_test_mode_title()",
"file_type": "code",
"source_file": "tests/unit/ui/test_pages.py",
- "source_location": "L186",
+ "source_location": "L257",
"id": "ui_test_pages_test_wizard_run_test_mode_title",
- "community": 132,
+ "community": 138,
"norm_label": "test_wizard_run_test_mode_title()"
},
{
"label": "test_wizard_run_experimental_mode_title()",
"file_type": "code",
"source_file": "tests/unit/ui/test_pages.py",
- "source_location": "L191",
+ "source_location": "L262",
"id": "ui_test_pages_test_wizard_run_experimental_mode_title",
- "community": 132,
+ "community": 138,
"norm_label": "test_wizard_run_experimental_mode_title()"
},
{
"label": "test_wizard_run_test_button_uses_warning_color()",
"file_type": "code",
"source_file": "tests/unit/ui/test_pages.py",
- "source_location": "L196",
+ "source_location": "L267",
"id": "ui_test_pages_test_wizard_run_test_button_uses_warning_color",
- "community": 502,
+ "community": 450,
"norm_label": "test_wizard_run_test_button_uses_warning_color()"
},
{
"label": "test_wizard_run_experimental_button_uses_primary_color()",
"file_type": "code",
"source_file": "tests/unit/ui/test_pages.py",
- "source_location": "L204",
+ "source_location": "L275",
"id": "ui_test_pages_test_wizard_run_experimental_button_uses_primary_color",
- "community": 132,
+ "community": 138,
"norm_label": "test_wizard_run_experimental_button_uses_primary_color()"
},
{
"label": "test_wizard_run_preview_test_path_highlights()",
"file_type": "code",
"source_file": "tests/unit/ui/test_pages.py",
- "source_location": "L210",
+ "source_location": "L281",
"id": "ui_test_pages_test_wizard_run_preview_test_path_highlights",
- "community": 497,
+ "community": 440,
"norm_label": "test_wizard_run_preview_test_path_highlights()"
},
{
"label": "test_wizard_run_preview_experimental_no_test_marker()",
"file_type": "code",
"source_file": "tests/unit/ui/test_pages.py",
- "source_location": "L224",
+ "source_location": "L295",
"id": "ui_test_pages_test_wizard_run_preview_experimental_no_test_marker",
- "community": 132,
+ "community": 138,
"norm_label": "test_wizard_run_preview_experimental_no_test_marker()"
},
{
"label": "test_wizard_run_can_advance_blocks_until_project_and_equipment()",
"file_type": "code",
"source_file": "tests/unit/ui/test_pages.py",
- "source_location": "L235",
+ "source_location": "L306",
"id": "ui_test_pages_test_wizard_run_can_advance_blocks_until_project_and_equipment",
- "community": 132,
+ "community": 138,
"norm_label": "test_wizard_run_can_advance_blocks_until_project_and_equipment()"
},
{
"label": "test_wizard_run_readme_blocks_until_core_fields()",
"file_type": "code",
"source_file": "tests/unit/ui/test_pages.py",
- "source_location": "L243",
+ "source_location": "L314",
"id": "ui_test_pages_test_wizard_run_readme_blocks_until_core_fields",
- "community": 132,
+ "community": 138,
"norm_label": "test_wizard_run_readme_blocks_until_core_fields()"
},
{
"label": "test_settings_nine_sections_includes_operators()",
"file_type": "code",
"source_file": "tests/unit/ui/test_pages.py",
- "source_location": "L255",
+ "source_location": "L326",
"id": "ui_test_pages_test_settings_nine_sections_includes_operators",
- "community": 504,
+ "community": 439,
"norm_label": "test_settings_nine_sections_includes_operators()"
},
{
"label": "test_settings_first_incomplete_returns_canonical_first()",
"file_type": "code",
"source_file": "tests/unit/ui/test_pages.py",
- "source_location": "L268",
+ "source_location": "L339",
"id": "ui_test_pages_test_settings_first_incomplete_returns_canonical_first",
- "community": 489,
+ "community": 443,
"norm_label": "test_settings_first_incomplete_returns_canonical_first()"
},
{
"label": "test_settings_first_incomplete_resolves_nas_remote()",
"file_type": "code",
"source_file": "tests/unit/ui/test_pages.py",
- "source_location": "L275",
+ "source_location": "L346",
"id": "ui_test_pages_test_settings_first_incomplete_resolves_nas_remote",
- "community": 417,
+ "community": 396,
"norm_label": "test_settings_first_incomplete_resolves_nas_remote()"
},
{
"label": "test_settings_save_button_label_setup_incomplete()",
"file_type": "code",
"source_file": "tests/unit/ui/test_pages.py",
- "source_location": "L283",
+ "source_location": "L354",
"id": "ui_test_pages_test_settings_save_button_label_setup_incomplete",
- "community": 132,
+ "community": 138,
"norm_label": "test_settings_save_button_label_setup_incomplete()"
},
{
"label": "test_settings_save_button_label_no_changes()",
"file_type": "code",
"source_file": "tests/unit/ui/test_pages.py",
- "source_location": "L288",
+ "source_location": "L359",
"id": "ui_test_pages_test_settings_save_button_label_no_changes",
- "community": 132,
+ "community": 138,
"norm_label": "test_settings_save_button_label_no_changes()"
},
{
"label": "test_settings_save_button_label_with_count_badge()",
"file_type": "code",
"source_file": "tests/unit/ui/test_pages.py",
- "source_location": "L293",
+ "source_location": "L364",
"id": "ui_test_pages_test_settings_save_button_label_with_count_badge",
- "community": 132,
+ "community": 138,
"norm_label": "test_settings_save_button_label_with_count_badge()"
},
{
"label": "test_settings_section_warning_only_for_incomplete()",
"file_type": "code",
"source_file": "tests/unit/ui/test_pages.py",
- "source_location": "L298",
+ "source_location": "L369",
"id": "ui_test_pages_test_settings_section_warning_only_for_incomplete",
- "community": 132,
+ "community": 138,
"norm_label": "test_settings_section_warning_only_for_incomplete()"
},
{
"label": "_sample_findings()",
"file_type": "code",
"source_file": "tests/unit/ui/test_pages.py",
- "source_location": "L309",
+ "source_location": "L380",
"id": "ui_test_pages_sample_findings",
- "community": 348,
+ "community": 328,
"norm_label": "_sample_findings()"
},
{
"label": "test_problems_filter_default_shows_hard_only()",
"file_type": "code",
"source_file": "tests/unit/ui/test_pages.py",
- "source_location": "L336",
+ "source_location": "L407",
"id": "ui_test_pages_test_problems_filter_default_shows_hard_only",
- "community": 348,
+ "community": 328,
"norm_label": "test_problems_filter_default_shows_hard_only()"
},
{
"label": "test_problems_filter_show_soft_when_chip_on()",
"file_type": "code",
"source_file": "tests/unit/ui/test_pages.py",
- "source_location": "L345",
+ "source_location": "L416",
"id": "ui_test_pages_test_problems_filter_show_soft_when_chip_on",
- "community": 348,
+ "community": 328,
"norm_label": "test_problems_filter_show_soft_when_chip_on()"
},
{
"label": "test_problems_filter_search_path_substring()",
"file_type": "code",
"source_file": "tests/unit/ui/test_pages.py",
- "source_location": "L352",
+ "source_location": "L423",
"id": "ui_test_pages_test_problems_filter_search_path_substring",
- "community": 348,
+ "community": 328,
"norm_label": "test_problems_filter_search_path_substring()"
},
{
"label": "test_problems_filter_scope_filters_by_equipment()",
"file_type": "code",
"source_file": "tests/unit/ui/test_pages.py",
- "source_location": "L358",
+ "source_location": "L429",
"id": "ui_test_pages_test_problems_filter_scope_filters_by_equipment",
- "community": 348,
+ "community": 328,
"norm_label": "test_problems_filter_scope_filters_by_equipment()"
},
{
"label": "test_problems_override_reason_min_length()",
"file_type": "code",
"source_file": "tests/unit/ui/test_pages.py",
- "source_location": "L364",
+ "source_location": "L435",
"id": "ui_test_pages_test_problems_override_reason_min_length",
- "community": 494,
+ "community": 447,
"norm_label": "test_problems_override_reason_min_length()"
},
{
"label": "test_problems_override_reason_max_length()",
"file_type": "code",
"source_file": "tests/unit/ui/test_pages.py",
- "source_location": "L372",
+ "source_location": "L443",
"id": "ui_test_pages_test_problems_override_reason_max_length",
- "community": 501,
+ "community": 451,
"norm_label": "test_problems_override_reason_max_length()"
},
{
"label": "test_problems_override_reason_accepts_valid()",
"file_type": "code",
"source_file": "tests/unit/ui/test_pages.py",
- "source_location": "L381",
+ "source_location": "L452",
"id": "ui_test_pages_test_problems_override_reason_accepts_valid",
- "community": 132,
+ "community": 138,
"norm_label": "test_problems_override_reason_accepts_valid()"
},
{
"label": "test_problems_override_reason_trims_whitespace()",
"file_type": "code",
"source_file": "tests/unit/ui/test_pages.py",
- "source_location": "L387",
+ "source_location": "L458",
"id": "ui_test_pages_test_problems_override_reason_trims_whitespace",
- "community": 495,
+ "community": 449,
"norm_label": "test_problems_override_reason_trims_whitespace()"
},
{
"label": "test_problems_near_limit_flag()",
"file_type": "code",
"source_file": "tests/unit/ui/test_pages.py",
- "source_location": "L394",
+ "source_location": "L465",
"id": "ui_test_pages_test_problems_near_limit_flag",
- "community": 505,
+ "community": 453,
"norm_label": "test_problems_near_limit_flag()"
},
{
"label": "test_problems_empty_state_default()",
"file_type": "code",
"source_file": "tests/unit/ui/test_pages.py",
- "source_location": "L401",
+ "source_location": "L472",
"id": "ui_test_pages_test_problems_empty_state_default",
- "community": 132,
+ "community": 138,
"norm_label": "test_problems_empty_state_default()"
},
{
"label": "test_problems_empty_state_with_hidden_soft_count()",
"file_type": "code",
"source_file": "tests/unit/ui/test_pages.py",
- "source_location": "L406",
+ "source_location": "L477",
"id": "ui_test_pages_test_problems_empty_state_with_hidden_soft_count",
- "community": 132,
+ "community": 138,
"norm_label": "test_problems_empty_state_with_hidden_soft_count()"
},
{
"label": "test_problems_empty_state_with_active_filter()",
"file_type": "code",
"source_file": "tests/unit/ui/test_pages.py",
- "source_location": "L412",
+ "source_location": "L483",
"id": "ui_test_pages_test_problems_empty_state_with_active_filter",
- "community": 132,
+ "community": 138,
"norm_label": "test_problems_empty_state_with_active_filter()"
},
{
"label": "test_problems_chip_definitions_match_spec()",
"file_type": "code",
"source_file": "tests/unit/ui/test_pages.py",
- "source_location": "L418",
+ "source_location": "L489",
"id": "ui_test_pages_test_problems_chip_definitions_match_spec",
- "community": 498,
+ "community": 454,
"norm_label": "test_problems_chip_definitions_match_spec()"
},
{
@@ -3411,187 +3573,241 @@
"source_file": "tests/unit/ui/test_pages.py",
"source_location": "L1",
"id": "ui_test_pages_rationale_1",
- "community": 132,
+ "community": 138,
"norm_label": "unit tests for ui pages. pages render nicegui elements; these tests exercise th"
},
{
"label": "Welcome card defaults autostart to on (Frontend \u00a73.1.3).",
"file_type": "rationale",
"source_file": "tests/unit/ui/test_pages.py",
- "source_location": "L26",
- "id": "ui_test_pages_rationale_26",
- "community": 492,
+ "source_location": "L33",
+ "id": "ui_test_pages_rationale_33",
+ "community": 452,
"norm_label": "welcome card defaults autostart to on (frontend \u00a73.1.3)."
},
{
"label": "Three bullets describing what the app does. Redesign decision 2: bullets re",
"file_type": "rationale",
"source_file": "tests/unit/ui/test_pages.py",
- "source_location": "L37",
- "id": "ui_test_pages_rationale_37",
- "community": 499,
+ "source_location": "L44",
+ "id": "ui_test_pages_rationale_44",
+ "community": 442,
"norm_label": "three bullets describing what the app does. redesign decision 2: bullets re"
},
{
"label": "Active default-on, Archived default-off, Test runs default-on.",
"file_type": "rationale",
"source_file": "tests/unit/ui/test_pages.py",
- "source_location": "L57",
- "id": "ui_test_pages_rationale_57",
- "community": 503,
+ "source_location": "L64",
+ "id": "ui_test_pages_rationale_64",
+ "community": 455,
"norm_label": "active default-on, archived default-off, test runs default-on."
},
{
"label": "Translation preserves the chip state.",
"file_type": "rationale",
"source_file": "tests/unit/ui/test_pages.py",
- "source_location": "L67",
- "id": "ui_test_pages_rationale_67",
- "community": 491,
+ "source_location": "L74",
+ "id": "ui_test_pages_rationale_74",
+ "community": 441,
"norm_label": "translation preserves the chip state."
},
{
"label": "Setup-incomplete banner uses ``--color-warning`` per Frontend \u00a73.1.4.",
"file_type": "rationale",
"source_file": "tests/unit/ui/test_pages.py",
- "source_location": "L87",
- "id": "ui_test_pages_rationale_87",
- "community": 490,
+ "source_location": "L94",
+ "id": "ui_test_pages_rationale_94",
+ "community": 446,
"norm_label": "setup-incomplete banner uses ``--color-warning`` per frontend \u00a73.1.4."
},
{
"label": "The rclone-remote next-action points the operator at the setup docs.",
"file_type": "rationale",
"source_file": "tests/unit/ui/test_pages.py",
- "source_location": "L95",
- "id": "ui_test_pages_rationale_95",
- "community": 416,
+ "source_location": "L102",
+ "id": "ui_test_pages_rationale_102",
+ "community": 397,
"norm_label": "the rclone-remote next-action points the operator at the setup docs."
},
+ {
+ "label": "A one-equipment hierarchy with two runs for the search-count tests.",
+ "file_type": "rationale",
+ "source_file": "tests/unit/ui/test_pages.py",
+ "source_location": "L117",
+ "id": "ui_test_pages_rationale_117",
+ "community": 299,
+ "norm_label": "a one-equipment hierarchy with two runs for the search-count tests."
+ },
+ {
+ "label": "The search-box query reaches TreeFilters.search (OQ-2).",
+ "file_type": "rationale",
+ "source_file": "tests/unit/ui/test_pages.py",
+ "source_location": "L130",
+ "id": "ui_test_pages_rationale_130",
+ "community": 524,
+ "norm_label": "the search-box query reaches treefilters.search (oq-2)."
+ },
+ {
+ "label": "The result pill counts project + run rows (equipment is always shown).",
+ "file_type": "rationale",
+ "source_file": "tests/unit/ui/test_pages.py",
+ "source_location": "L138",
+ "id": "ui_test_pages_rationale_138",
+ "community": 299,
+ "norm_label": "the result pill counts project + run rows (equipment is always shown)."
+ },
+ {
+ "label": "A query surfaces only the matching run under its project.",
+ "file_type": "rationale",
+ "source_file": "tests/unit/ui/test_pages.py",
+ "source_location": "L147",
+ "id": "ui_test_pages_rationale_147",
+ "community": 299,
+ "norm_label": "a query surfaces only the matching run under its project."
+ },
+ {
+ "label": "A no-match query yields a zero count (the no-matches state) even though buil",
+ "file_type": "rationale",
+ "source_file": "tests/unit/ui/test_pages.py",
+ "source_location": "L156",
+ "id": "ui_test_pages_rationale_156",
+ "community": 299,
+ "norm_label": "a no-match query yields a zero count (the no-matches state) even though buil"
+ },
+ {
+ "label": "`?density=compact` -> the Files-card class the theme rule keys on; any other",
+ "file_type": "rationale",
+ "source_file": "tests/unit/ui/test_pages.py",
+ "source_location": "L167",
+ "id": "ui_test_pages_rationale_167",
+ "community": 523,
+ "norm_label": "`?density=compact` -> the files-card class the theme rule keys on; any other"
+ },
{
"label": "Frontend \u00a74 mandates seven steps in a fixed order.",
"file_type": "rationale",
"source_file": "tests/unit/ui/test_pages.py",
- "source_location": "L110",
- "id": "ui_test_pages_rationale_110",
- "community": 496,
+ "source_location": "L181",
+ "id": "ui_test_pages_rationale_181",
+ "community": 445,
"norm_label": "frontend \u00a74 mandates seven steps in a fixed order."
},
{
"label": "Step 1 requires a LIMS short_id.",
"file_type": "rationale",
"source_file": "tests/unit/ui/test_pages.py",
- "source_location": "L118",
- "id": "ui_test_pages_rationale_118",
- "community": 500,
+ "source_location": "L189",
+ "id": "ui_test_pages_rationale_189",
+ "community": 448,
"norm_label": "step 1 requires a lims short_id."
},
{
"label": "Pre-flight: less than 100 MB free aborts (Frontend \u00a710.5.4).",
"file_type": "rationale",
"source_file": "tests/unit/ui/test_pages.py",
- "source_location": "L149",
- "id": "ui_test_pages_rationale_149",
- "community": 493,
+ "source_location": "L220",
+ "id": "ui_test_pages_rationale_220",
+ "community": 444,
"norm_label": "pre-flight: less than 100 mb free aborts (frontend \u00a710.5.4)."
},
{
"label": "Test-mode primary button uses ``warning`` color (Frontend \u00a75.3).",
"file_type": "rationale",
"source_file": "tests/unit/ui/test_pages.py",
- "source_location": "L197",
- "id": "ui_test_pages_rationale_197",
- "community": 502,
+ "source_location": "L268",
+ "id": "ui_test_pages_rationale_268",
+ "community": 450,
"norm_label": "test-mode primary button uses ``warning`` color (frontend \u00a75.3)."
},
{
"label": "Test runs add a TestRuns/ folder and TestRun_ leaf prefix.",
"file_type": "rationale",
"source_file": "tests/unit/ui/test_pages.py",
- "source_location": "L211",
- "id": "ui_test_pages_rationale_211",
- "community": 497,
+ "source_location": "L282",
+ "id": "ui_test_pages_rationale_282",
+ "community": 440,
"norm_label": "test runs add a testruns/ folder and testrun_ leaf prefix."
},
{
"label": "Settings has nine sections (Frontend \u00a77.2 + \u00a77.9 operators). The ``operator",
"file_type": "rationale",
"source_file": "tests/unit/ui/test_pages.py",
- "source_location": "L256",
- "id": "ui_test_pages_rationale_256",
- "community": 504,
+ "source_location": "L327",
+ "id": "ui_test_pages_rationale_327",
+ "community": 439,
"norm_label": "settings has nine sections (frontend \u00a77.2 + \u00a77.9 operators). the ``operator"
},
{
"label": "First incomplete section is the first per canonical order.",
"file_type": "rationale",
"source_file": "tests/unit/ui/test_pages.py",
- "source_location": "L269",
- "id": "ui_test_pages_rationale_269",
- "community": 489,
+ "source_location": "L340",
+ "id": "ui_test_pages_rationale_340",
+ "community": 443,
"norm_label": "first incomplete section is the first per canonical order."
},
{
"label": "The dynamic NAS-remote section is auto-selected when it's the gate.",
"file_type": "rationale",
"source_file": "tests/unit/ui/test_pages.py",
- "source_location": "L276",
- "id": "ui_test_pages_rationale_276",
- "community": 417,
+ "source_location": "L347",
+ "id": "ui_test_pages_rationale_347",
+ "community": 396,
"norm_label": "the dynamic nas-remote section is auto-selected when it's the gate."
},
{
"label": "Hard chip default-on; Soft default-off.",
"file_type": "rationale",
"source_file": "tests/unit/ui/test_pages.py",
- "source_location": "L337",
- "id": "ui_test_pages_rationale_337",
- "community": 348,
+ "source_location": "L408",
+ "id": "ui_test_pages_rationale_408",
+ "community": 328,
"norm_label": "hard chip default-on; soft default-off."
},
{
"label": "Frontend \u00a711.5: minimum 10 chars after trim.",
"file_type": "rationale",
"source_file": "tests/unit/ui/test_pages.py",
- "source_location": "L365",
- "id": "ui_test_pages_rationale_365",
- "community": 494,
+ "source_location": "L436",
+ "id": "ui_test_pages_rationale_436",
+ "community": 447,
"norm_label": "frontend \u00a711.5: minimum 10 chars after trim."
},
{
"label": "Frontend \u00a711.5: maximum 500 chars after trim.",
"file_type": "rationale",
"source_file": "tests/unit/ui/test_pages.py",
- "source_location": "L373",
- "id": "ui_test_pages_rationale_373",
- "community": 501,
+ "source_location": "L444",
+ "id": "ui_test_pages_rationale_444",
+ "community": 451,
"norm_label": "frontend \u00a711.5: maximum 500 chars after trim."
},
{
"label": "Whitespace is trimmed before length check.",
"file_type": "rationale",
"source_file": "tests/unit/ui/test_pages.py",
- "source_location": "L388",
- "id": "ui_test_pages_rationale_388",
- "community": 495,
+ "source_location": "L459",
+ "id": "ui_test_pages_rationale_459",
+ "community": 449,
"norm_label": "whitespace is trimmed before length check."
},
{
"label": "Within 10 of the maximum -> near-limit warning.",
"file_type": "rationale",
"source_file": "tests/unit/ui/test_pages.py",
- "source_location": "L395",
- "id": "ui_test_pages_rationale_395",
- "community": 505,
+ "source_location": "L466",
+ "id": "ui_test_pages_rationale_466",
+ "community": 453,
"norm_label": "within 10 of the maximum -> near-limit warning."
},
{
"label": "Five problem-class chips per Backend \u00a78.1.1-\u00a78.1.5.",
"file_type": "rationale",
"source_file": "tests/unit/ui/test_pages.py",
- "source_location": "L419",
- "id": "ui_test_pages_rationale_419",
- "community": 498,
+ "source_location": "L490",
+ "id": "ui_test_pages_rationale_490",
+ "community": 454,
"norm_label": "five problem-class chips per backend \u00a78.1.1-\u00a78.1.5."
},
{
@@ -3675,119 +3891,56 @@
"community": 0,
"norm_label": ".__exit__()"
},
- {
- "label": "_FakeUI",
- "file_type": "code",
- "source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L99",
- "id": "ui_test_mount_fakeui",
- "community": 0,
- "norm_label": "_fakeui"
- },
- {
- "label": ".__init__()",
- "file_type": "code",
- "source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L102",
- "id": "ui_test_mount_fakeui_init",
- "community": 0,
- "norm_label": ".__init__()"
- },
- {
- "label": ".card()",
- "file_type": "code",
- "source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L108",
- "id": "ui_test_mount_fakeui_card",
- "community": 0,
- "norm_label": ".card()"
- },
- {
- "label": ".label()",
- "file_type": "code",
- "source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L112",
- "id": "ui_test_mount_fakeui_label",
- "community": 0,
- "norm_label": ".label()"
- },
- {
- "label": "_BoomUI",
- "file_type": "code",
- "source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L117",
- "id": "ui_test_mount_boomui",
- "community": 0,
- "norm_label": "_boomui"
- },
- {
- "label": ".card()",
- "file_type": "code",
- "source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L120",
- "id": "ui_test_mount_boomui_card",
- "community": 0,
- "norm_label": ".card()"
- },
- {
- "label": ".label()",
- "file_type": "code",
- "source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L124",
- "id": "ui_test_mount_boomui_label",
- "community": 0,
- "norm_label": ".label()"
- },
{
"label": "_FakeController",
"file_type": "code",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L129",
+ "source_location": "L99",
"id": "ui_test_mount_fakecontroller",
- "community": 49,
+ "community": 60,
"norm_label": "_fakecontroller"
},
{
"label": ".__init__()",
"file_type": "code",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L132",
+ "source_location": "L102",
"id": "ui_test_mount_fakecontroller_init",
- "community": 49,
+ "community": 60,
"norm_label": ".__init__()"
},
{
"label": ".status()",
"file_type": "code",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L148",
+ "source_location": "L118",
"id": "ui_test_mount_fakecontroller_status",
- "community": 49,
+ "community": 60,
"norm_label": ".status()"
},
{
"label": ".create_project()",
"file_type": "code",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L151",
+ "source_location": "L121",
"id": "ui_test_mount_fakecontroller_create_project",
- "community": 49,
+ "community": 60,
"norm_label": ".create_project()"
},
{
"label": ".create_run()",
"file_type": "code",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L158",
+ "source_location": "L128",
"id": "ui_test_mount_fakecontroller_create_run",
- "community": 49,
+ "community": 60,
"norm_label": ".create_run()"
},
{
"label": "test_is_setup_ready_false_when_deps_none()",
"file_type": "code",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L176",
+ "source_location": "L146",
"id": "ui_test_mount_test_is_setup_ready_false_when_deps_none",
"community": 2,
"norm_label": "test_is_setup_ready_false_when_deps_none()"
@@ -3796,7 +3949,7 @@
"label": "test_is_setup_ready_false_when_config_missing()",
"file_type": "code",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L180",
+ "source_location": "L150",
"id": "ui_test_mount_test_is_setup_ready_false_when_config_missing",
"community": 2,
"norm_label": "test_is_setup_ready_false_when_config_missing()"
@@ -3805,7 +3958,7 @@
"label": "test_is_setup_ready_false_when_keyring_missing()",
"file_type": "code",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L184",
+ "source_location": "L154",
"id": "ui_test_mount_test_is_setup_ready_false_when_keyring_missing",
"community": 2,
"norm_label": "test_is_setup_ready_false_when_keyring_missing()"
@@ -3814,7 +3967,7 @@
"label": "test_is_setup_ready_false_when_lims_unreachable()",
"file_type": "code",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L194",
+ "source_location": "L164",
"id": "ui_test_mount_test_is_setup_ready_false_when_lims_unreachable",
"community": 2,
"norm_label": "test_is_setup_ready_false_when_lims_unreachable()"
@@ -3823,7 +3976,7 @@
"label": "test_is_setup_ready_true_when_all_satisfied()",
"file_type": "code",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L203",
+ "source_location": "L173",
"id": "ui_test_mount_test_is_setup_ready_true_when_all_satisfied",
"community": 2,
"norm_label": "test_is_setup_ready_true_when_all_satisfied()"
@@ -3832,7 +3985,7 @@
"label": "test_is_setup_ready_false_when_nas_remote_unset()",
"file_type": "code",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L212",
+ "source_location": "L182",
"id": "ui_test_mount_test_is_setup_ready_false_when_nas_remote_unset",
"community": 2,
"norm_label": "test_is_setup_ready_false_when_nas_remote_unset()"
@@ -3841,7 +3994,7 @@
"label": "test_is_setup_ready_false_when_nas_remote_unavailable()",
"file_type": "code",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L222",
+ "source_location": "L192",
"id": "ui_test_mount_test_is_setup_ready_false_when_nas_remote_unavailable",
"community": 2,
"norm_label": "test_is_setup_ready_false_when_nas_remote_unavailable()"
@@ -3850,7 +4003,7 @@
"label": "test_is_setup_ready_true_with_offline_catalogue_lims()",
"file_type": "code",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L233",
+ "source_location": "L203",
"id": "ui_test_mount_test_is_setup_ready_true_with_offline_catalogue_lims",
"community": 2,
"norm_label": "test_is_setup_ready_true_with_offline_catalogue_lims()"
@@ -3859,7 +4012,7 @@
"label": "test_build_main_state_marks_incomplete_without_config()",
"file_type": "code",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L253",
+ "source_location": "L223",
"id": "ui_test_mount_test_build_main_state_marks_incomplete_without_config",
"community": 2,
"norm_label": "test_build_main_state_marks_incomplete_without_config()"
@@ -3868,7 +4021,7 @@
"label": "test_build_main_state_sources_problems_counts_from_audit()",
"file_type": "code",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L262",
+ "source_location": "L232",
"id": "ui_test_mount_test_build_main_state_sources_problems_counts_from_audit",
"community": 2,
"norm_label": "test_build_main_state_sources_problems_counts_from_audit()"
@@ -3877,7 +4030,7 @@
"label": "test_build_main_state_always_on_orchestrator()",
"file_type": "code",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L270",
+ "source_location": "L240",
"id": "ui_test_mount_test_build_main_state_always_on_orchestrator",
"community": 2,
"norm_label": "test_build_main_state_always_on_orchestrator()"
@@ -3886,7 +4039,7 @@
"label": "test_operation_counts_distinguishes_panel_active_and_input_required()",
"file_type": "code",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L288",
+ "source_location": "L258",
"id": "ui_test_mount_test_operation_counts_distinguishes_panel_active_and_input_required",
"community": 2,
"norm_label": "test_operation_counts_distinguishes_panel_active_and_input_required()"
@@ -3895,7 +4048,7 @@
"label": "test_operation_counts_zero_without_controller()",
"file_type": "code",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L309",
+ "source_location": "L279",
"id": "ui_test_mount_test_operation_counts_zero_without_controller",
"community": 2,
"norm_label": "test_operation_counts_zero_without_controller()"
@@ -3904,7 +4057,7 @@
"label": "test_missing_sections_when_deps_none()",
"file_type": "code",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L318",
+ "source_location": "L288",
"id": "ui_test_mount_test_missing_sections_when_deps_none",
"community": 2,
"norm_label": "test_missing_sections_when_deps_none()"
@@ -3913,7 +4066,7 @@
"label": "test_missing_sections_when_config_none()",
"file_type": "code",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L322",
+ "source_location": "L292",
"id": "ui_test_mount_test_missing_sections_when_config_none",
"community": 2,
"norm_label": "test_missing_sections_when_config_none()"
@@ -3922,7 +4075,7 @@
"label": "test_missing_sections_with_paths_unset()",
"file_type": "code",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L329",
+ "source_location": "L299",
"id": "ui_test_mount_test_missing_sections_with_paths_unset",
"community": 2,
"norm_label": "test_missing_sections_with_paths_unset()"
@@ -3931,7 +4084,7 @@
"label": "test_missing_sections_with_keyring_absent_reports_lims()",
"file_type": "code",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L338",
+ "source_location": "L308",
"id": "ui_test_mount_test_missing_sections_with_keyring_absent_reports_lims",
"community": 2,
"norm_label": "test_missing_sections_with_keyring_absent_reports_lims()"
@@ -3940,7 +4093,7 @@
"label": "test_missing_sections_empty_when_fully_configured()",
"file_type": "code",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L343",
+ "source_location": "L313",
"id": "ui_test_mount_test_missing_sections_empty_when_fully_configured",
"community": 2,
"norm_label": "test_missing_sections_empty_when_fully_configured()"
@@ -3949,7 +4102,7 @@
"label": "_nas_config()",
"file_type": "code",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L348",
+ "source_location": "L318",
"id": "ui_test_mount_nas_config",
"community": 2,
"norm_label": "_nas_config()"
@@ -3958,7 +4111,7 @@
"label": "test_missing_sections_includes_nas_remote_when_remote_unavailable()",
"file_type": "code",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L391",
+ "source_location": "L361",
"id": "ui_test_mount_test_missing_sections_includes_nas_remote_when_remote_unavailable",
"community": 2,
"norm_label": "test_missing_sections_includes_nas_remote_when_remote_unavailable()"
@@ -3967,7 +4120,7 @@
"label": "test_missing_sections_includes_nas_remote_when_remote_unset()",
"file_type": "code",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L400",
+ "source_location": "L370",
"id": "ui_test_mount_test_missing_sections_includes_nas_remote_when_remote_unset",
"community": 2,
"norm_label": "test_missing_sections_includes_nas_remote_when_remote_unset()"
@@ -3976,7 +4129,7 @@
"label": "test_missing_sections_excludes_nas_remote_when_remote_available()",
"file_type": "code",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L408",
+ "source_location": "L378",
"id": "ui_test_mount_test_missing_sections_excludes_nas_remote_when_remote_available",
"community": 2,
"norm_label": "test_missing_sections_excludes_nas_remote_when_remote_available()"
@@ -3985,7 +4138,7 @@
"label": "_RaisingValidator",
"file_type": "code",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L423",
+ "source_location": "L393",
"id": "ui_test_mount_raisingvalidator",
"community": 0,
"norm_label": "_raisingvalidator"
@@ -3994,7 +4147,7 @@
"label": ".audit()",
"file_type": "code",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L424",
+ "source_location": "L394",
"id": "ui_test_mount_raisingvalidator_audit",
"community": 0,
"norm_label": ".audit()"
@@ -4003,7 +4156,7 @@
"label": "_OkValidator",
"file_type": "code",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L429",
+ "source_location": "L399",
"id": "ui_test_mount_okvalidator",
"community": 0,
"norm_label": "_okvalidator"
@@ -4012,7 +4165,7 @@
"label": ".__init__()",
"file_type": "code",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L430",
+ "source_location": "L400",
"id": "ui_test_mount_okvalidator_init",
"community": 0,
"norm_label": ".__init__()"
@@ -4021,7 +4174,7 @@
"label": ".audit()",
"file_type": "code",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L433",
+ "source_location": "L403",
"id": "ui_test_mount_okvalidator_audit",
"community": 0,
"norm_label": ".audit()"
@@ -4030,7 +4183,7 @@
"label": "test_safe_audit_returns_empty_list_when_validator_missing()",
"file_type": "code",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L437",
+ "source_location": "L407",
"id": "ui_test_mount_test_safe_audit_returns_empty_list_when_validator_missing",
"community": 2,
"norm_label": "test_safe_audit_returns_empty_list_when_validator_missing()"
@@ -4039,7 +4192,7 @@
"label": "test_safe_audit_swallows_validator_exception()",
"file_type": "code",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L441",
+ "source_location": "L411",
"id": "ui_test_mount_test_safe_audit_swallows_validator_exception",
"community": 2,
"norm_label": "test_safe_audit_swallows_validator_exception()"
@@ -4048,151 +4201,106 @@
"label": "test_safe_audit_forwards_validator_output()",
"file_type": "code",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L449",
+ "source_location": "L419",
"id": "ui_test_mount_test_safe_audit_forwards_validator_output",
"community": 2,
"norm_label": "test_safe_audit_forwards_validator_output()"
},
- {
- "label": "test_staging_state_when_staging_root_missing()",
- "file_type": "code",
- "source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L460",
- "id": "ui_test_mount_test_staging_state_when_staging_root_missing",
- "community": 2,
- "norm_label": "test_staging_state_when_staging_root_missing()"
- },
- {
- "label": "test_staging_state_none_when_no_config()",
- "file_type": "code",
- "source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L475",
- "id": "ui_test_mount_test_staging_state_none_when_no_config",
- "community": 2,
- "norm_label": "test_staging_state_none_when_no_config()"
- },
- {
- "label": "test_staging_state_returns_empty_rows_on_query_failure()",
- "file_type": "code",
- "source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L479",
- "id": "ui_test_mount_test_staging_state_returns_empty_rows_on_query_failure",
- "community": 2,
- "norm_label": "test_staging_state_returns_empty_rows_on_query_failure()"
- },
{
"label": "_NavSpy",
"file_type": "code",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L507",
+ "source_location": "L437",
"id": "ui_test_mount_navspy",
- "community": 49,
+ "community": 60,
"norm_label": "_navspy"
},
{
"label": ".__init__()",
"file_type": "code",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L510",
+ "source_location": "L440",
"id": "ui_test_mount_navspy_init",
- "community": 49,
+ "community": 60,
"norm_label": ".__init__()"
},
{
"label": "test_persist_config_writes_and_applies_live()",
"file_type": "code",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L515",
+ "source_location": "L445",
"id": "ui_test_mount_test_persist_config_writes_and_applies_live",
- "community": 49,
+ "community": 324,
"norm_label": "test_persist_config_writes_and_applies_live()"
},
{
"label": "test_persist_config_returns_false_when_no_saver()",
"file_type": "code",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L538",
+ "source_location": "L468",
"id": "ui_test_mount_test_persist_config_returns_false_when_no_saver",
- "community": 49,
+ "community": 60,
"norm_label": "test_persist_config_returns_false_when_no_saver()"
},
{
"label": "test_persist_config_returns_false_when_saver_raises()",
"file_type": "code",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L550",
+ "source_location": "L480",
"id": "ui_test_mount_test_persist_config_returns_false_when_saver_raises",
- "community": 49,
+ "community": 60,
"norm_label": "test_persist_config_returns_false_when_saver_raises()"
},
{
"label": "test_persist_config_warns_when_saver_returns_awaitable()",
"file_type": "code",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L567",
+ "source_location": "L497",
"id": "ui_test_mount_test_persist_config_warns_when_saver_returns_awaitable",
- "community": 49,
+ "community": 60,
"norm_label": "test_persist_config_warns_when_saver_returns_awaitable()"
},
{
"label": "test_persist_config_creates_staging_root_when_set()",
"file_type": "code",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L590",
+ "source_location": "L520",
"id": "ui_test_mount_test_persist_config_creates_staging_root_when_set",
- "community": 49,
+ "community": 60,
"norm_label": "test_persist_config_creates_staging_root_when_set()"
},
{
"label": "test_persist_config_does_not_create_staging_root_when_blank()",
"file_type": "code",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L605",
+ "source_location": "L535",
"id": "ui_test_mount_test_persist_config_does_not_create_staging_root_when_blank",
- "community": 49,
+ "community": 60,
"norm_label": "test_persist_config_does_not_create_staging_root_when_blank()"
},
{
"label": "test_persist_config_staging_dir_failure_is_non_fatal()",
"file_type": "code",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L619",
+ "source_location": "L549",
"id": "ui_test_mount_test_persist_config_staging_dir_failure_is_non_fatal",
- "community": 49,
+ "community": 60,
"norm_label": "test_persist_config_staging_dir_failure_is_non_fatal()"
},
{
"label": "test_apply_live_config_falls_back_to_setting_config()",
"file_type": "code",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L645",
+ "source_location": "L575",
"id": "ui_test_mount_test_apply_live_config_falls_back_to_setting_config",
- "community": 2,
+ "community": 386,
"norm_label": "test_apply_live_config_falls_back_to_setting_config()"
},
- {
- "label": "test_render_unavailable_renders_headline_and_subline()",
- "file_type": "code",
- "source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L671",
- "id": "ui_test_mount_test_render_unavailable_renders_headline_and_subline",
- "community": 2,
- "norm_label": "test_render_unavailable_renders_headline_and_subline()"
- },
- {
- "label": "test_render_unavailable_swallows_failure()",
- "file_type": "code",
- "source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L678",
- "id": "ui_test_mount_test_render_unavailable_swallows_failure",
- "community": 2,
- "norm_label": "test_render_unavailable_swallows_failure()"
- },
{
"label": "test_show_toast_positive_and_negative_never_raise()",
"file_type": "code",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L689",
+ "source_location": "L605",
"id": "ui_test_mount_test_show_toast_positive_and_negative_never_raise",
"community": 2,
"norm_label": "test_show_toast_positive_and_negative_never_raise()"
@@ -4201,7 +4309,7 @@
"label": "test_show_toast_swallows_notification_failure()",
"file_type": "code",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L696",
+ "source_location": "L612",
"id": "ui_test_mount_test_show_toast_swallows_notification_failure",
"community": 2,
"norm_label": "test_show_toast_swallows_notification_failure()"
@@ -4210,7 +4318,7 @@
"label": "_RecordingKeyringStore",
"file_type": "code",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L715",
+ "source_location": "L631",
"id": "ui_test_mount_recordingkeyringstore",
"community": 0,
"norm_label": "_recordingkeyringstore"
@@ -4219,7 +4327,7 @@
"label": ".__init__()",
"file_type": "code",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L718",
+ "source_location": "L634",
"id": "ui_test_mount_recordingkeyringstore_init",
"community": 0,
"norm_label": ".__init__()"
@@ -4228,7 +4336,7 @@
"label": ".set_password()",
"file_type": "code",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L723",
+ "source_location": "L639",
"id": "ui_test_mount_recordingkeyringstore_set_password",
"community": 0,
"norm_label": ".set_password()"
@@ -4237,7 +4345,7 @@
"label": ".delete_password()",
"file_type": "code",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L729",
+ "source_location": "L645",
"id": "ui_test_mount_recordingkeyringstore_delete_password",
"community": 0,
"norm_label": ".delete_password()"
@@ -4246,7 +4354,7 @@
"label": "test_lims_credential_handlers_save_writes_under_lims_username()",
"file_type": "code",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L736",
+ "source_location": "L652",
"id": "ui_test_mount_test_lims_credential_handlers_save_writes_under_lims_username",
"community": 2,
"norm_label": "test_lims_credential_handlers_save_writes_under_lims_username()"
@@ -4255,7 +4363,7 @@
"label": "test_lims_credential_handlers_clear_deletes_under_lims_username()",
"file_type": "code",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L745",
+ "source_location": "L661",
"id": "ui_test_mount_test_lims_credential_handlers_clear_deletes_under_lims_username",
"community": 2,
"norm_label": "test_lims_credential_handlers_clear_deletes_under_lims_username()"
@@ -4264,7 +4372,7 @@
"label": "test_lims_credential_handlers_tolerate_missing_keyring_store()",
"file_type": "code",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L754",
+ "source_location": "L670",
"id": "ui_test_mount_test_lims_credential_handlers_tolerate_missing_keyring_store",
"community": 2,
"norm_label": "test_lims_credential_handlers_tolerate_missing_keyring_store()"
@@ -4273,16 +4381,16 @@
"label": "test_lims_credential_handlers_swallow_backend_errors()",
"file_type": "code",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L763",
+ "source_location": "L679",
"id": "ui_test_mount_test_lims_credential_handlers_swallow_backend_errors",
- "community": 298,
+ "community": 385,
"norm_label": "test_lims_credential_handlers_swallow_backend_errors()"
},
{
"label": "test_apply_autostart_noop_when_deps_none()",
"file_type": "code",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L778",
+ "source_location": "L694",
"id": "ui_test_mount_test_apply_autostart_noop_when_deps_none",
"community": 2,
"norm_label": "test_apply_autostart_noop_when_deps_none()"
@@ -4291,7 +4399,7 @@
"label": "test_apply_autostart_noop_when_toggle_missing()",
"file_type": "code",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L782",
+ "source_location": "L698",
"id": "ui_test_mount_test_apply_autostart_noop_when_toggle_missing",
"community": 2,
"norm_label": "test_apply_autostart_noop_when_toggle_missing()"
@@ -4300,7 +4408,7 @@
"label": "test_apply_autostart_invokes_toggle()",
"file_type": "code",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L786",
+ "source_location": "L702",
"id": "ui_test_mount_test_apply_autostart_invokes_toggle",
"community": 2,
"norm_label": "test_apply_autostart_invokes_toggle()"
@@ -4309,7 +4417,7 @@
"label": "test_apply_autostart_returns_real_registration_state()",
"file_type": "code",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L793",
+ "source_location": "L709",
"id": "ui_test_mount_test_apply_autostart_returns_real_registration_state",
"community": 2,
"norm_label": "test_apply_autostart_returns_real_registration_state()"
@@ -4318,7 +4426,7 @@
"label": "test_apply_autostart_swallows_toggle_failure()",
"file_type": "code",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L802",
+ "source_location": "L718",
"id": "ui_test_mount_test_apply_autostart_swallows_toggle_failure",
"community": 2,
"norm_label": "test_apply_autostart_swallows_toggle_failure()"
@@ -4327,7 +4435,7 @@
"label": "test_templates_dir_none_when_deps_none()",
"file_type": "code",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L819",
+ "source_location": "L735",
"id": "ui_test_mount_test_templates_dir_none_when_deps_none",
"community": 2,
"norm_label": "test_templates_dir_none_when_deps_none()"
@@ -4336,7 +4444,7 @@
"label": "test_templates_dir_none_when_config_none()",
"file_type": "code",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L823",
+ "source_location": "L739",
"id": "ui_test_mount_test_templates_dir_none_when_config_none",
"community": 2,
"norm_label": "test_templates_dir_none_when_config_none()"
@@ -4345,7 +4453,7 @@
"label": "test_templates_dir_none_when_unset()",
"file_type": "code",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L827",
+ "source_location": "L743",
"id": "ui_test_mount_test_templates_dir_none_when_unset",
"community": 2,
"norm_label": "test_templates_dir_none_when_unset()"
@@ -4354,7 +4462,7 @@
"label": "test_templates_dir_returns_path()",
"file_type": "code",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L831",
+ "source_location": "L747",
"id": "ui_test_mount_test_templates_dir_returns_path",
"community": 2,
"norm_label": "test_templates_dir_returns_path()"
@@ -4363,7 +4471,7 @@
"label": "test_equipment_ids_empty_without_config()",
"file_type": "code",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L836",
+ "source_location": "L752",
"id": "ui_test_mount_test_equipment_ids_empty_without_config",
"community": 2,
"norm_label": "test_equipment_ids_empty_without_config()"
@@ -4372,7 +4480,7 @@
"label": "test_equipment_ids_lists_configured_ids()",
"file_type": "code",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L840",
+ "source_location": "L756",
"id": "ui_test_mount_test_equipment_ids_lists_configured_ids",
"community": 2,
"norm_label": "test_equipment_ids_lists_configured_ids()"
@@ -4381,7 +4489,7 @@
"label": "test_template_names_empty_without_templates_dir()",
"file_type": "code",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L852",
+ "source_location": "L768",
"id": "ui_test_mount_test_template_names_empty_without_templates_dir",
"community": 2,
"norm_label": "test_template_names_empty_without_templates_dir()"
@@ -4390,7 +4498,7 @@
"label": "test_template_names_lists_summary_names()",
"file_type": "code",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L856",
+ "source_location": "L772",
"id": "ui_test_mount_test_template_names_lists_summary_names",
"community": 2,
"norm_label": "test_template_names_lists_summary_names()"
@@ -4399,7 +4507,7 @@
"label": "test_template_names_swallows_scan_failure()",
"file_type": "code",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L868",
+ "source_location": "L784",
"id": "ui_test_mount_test_template_names_swallows_scan_failure",
"community": 2,
"norm_label": "test_template_names_swallows_scan_failure()"
@@ -4408,7 +4516,7 @@
"label": "test_lims_projects_empty_without_config()",
"file_type": "code",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L888",
+ "source_location": "L804",
"id": "ui_test_mount_test_lims_projects_empty_without_config",
"community": 2,
"norm_label": "test_lims_projects_empty_without_config()"
@@ -4417,7 +4525,7 @@
"label": "test_lims_projects_empty_without_catalogue_path()",
"file_type": "code",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L892",
+ "source_location": "L808",
"id": "ui_test_mount_test_lims_projects_empty_without_catalogue_path",
"community": 2,
"norm_label": "test_lims_projects_empty_without_catalogue_path()"
@@ -4426,7 +4534,7 @@
"label": "test_lims_projects_empty_when_catalogue_missing()",
"file_type": "code",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L896",
+ "source_location": "L812",
"id": "ui_test_mount_test_lims_projects_empty_when_catalogue_missing",
"community": 2,
"norm_label": "test_lims_projects_empty_when_catalogue_missing()"
@@ -4435,7 +4543,7 @@
"label": "test_lims_projects_reads_offline_catalogue()",
"file_type": "code",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L901",
+ "source_location": "L817",
"id": "ui_test_mount_test_lims_projects_reads_offline_catalogue",
"community": 2,
"norm_label": "test_lims_projects_reads_offline_catalogue()"
@@ -4444,7 +4552,7 @@
"label": "test_lims_projects_swallows_read_failure()",
"file_type": "code",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L922",
+ "source_location": "L838",
"id": "ui_test_mount_test_lims_projects_swallows_read_failure",
"community": 2,
"norm_label": "test_lims_projects_swallows_read_failure()"
@@ -4453,7 +4561,7 @@
"label": "_FakeLimsClient",
"file_type": "code",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L939",
+ "source_location": "L855",
"id": "ui_test_mount_fakelimsclient",
"community": 0,
"norm_label": "_fakelimsclient"
@@ -4462,7 +4570,7 @@
"label": ".__init__()",
"file_type": "code",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L942",
+ "source_location": "L858",
"id": "ui_test_mount_fakelimsclient_init",
"community": 0,
"norm_label": ".__init__()"
@@ -4471,7 +4579,7 @@
"label": ".list_projects()",
"file_type": "code",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L947",
+ "source_location": "L863",
"id": "ui_test_mount_fakelimsclient_list_projects",
"community": 0,
"norm_label": ".list_projects()"
@@ -4480,7 +4588,7 @@
"label": "test_lims_projects_uses_live_lims()",
"file_type": "code",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L955",
+ "source_location": "L871",
"id": "ui_test_mount_test_lims_projects_uses_live_lims",
"community": 2,
"norm_label": "test_lims_projects_uses_live_lims()"
@@ -4489,7 +4597,7 @@
"label": "test_lims_projects_skips_live_lims_when_unreachable()",
"file_type": "code",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L969",
+ "source_location": "L885",
"id": "ui_test_mount_test_lims_projects_skips_live_lims_when_unreachable",
"community": 2,
"norm_label": "test_lims_projects_skips_live_lims_when_unreachable()"
@@ -4498,7 +4606,7 @@
"label": "test_lims_projects_falls_back_to_catalogue_on_live_failure()",
"file_type": "code",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L976",
+ "source_location": "L892",
"id": "ui_test_mount_test_lims_projects_falls_back_to_catalogue_on_live_failure",
"community": 2,
"norm_label": "test_lims_projects_falls_back_to_catalogue_on_live_failure()"
@@ -4507,7 +4615,7 @@
"label": "test_template_questions_map_empty_without_templates_dir()",
"file_type": "code",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L1011",
+ "source_location": "L927",
"id": "ui_test_mount_test_template_questions_map_empty_without_templates_dir",
"community": 2,
"norm_label": "test_template_questions_map_empty_without_templates_dir()"
@@ -4516,7 +4624,7 @@
"label": "test_template_questions_map_resolves_questions()",
"file_type": "code",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L1015",
+ "source_location": "L931",
"id": "ui_test_mount_test_template_questions_map_resolves_questions",
"community": 2,
"norm_label": "test_template_questions_map_resolves_questions()"
@@ -4525,7 +4633,7 @@
"label": "test_template_questions_map_skips_unresolvable_template()",
"file_type": "code",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L1036",
+ "source_location": "L952",
"id": "ui_test_mount_test_template_questions_map_skips_unresolvable_template",
"community": 2,
"norm_label": "test_template_questions_map_skips_unresolvable_template()"
@@ -4534,142 +4642,142 @@
"label": "test_await_session_awaits_pending_task()",
"file_type": "code",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L1061",
+ "source_location": "L977",
"id": "ui_test_mount_test_await_session_awaits_pending_task",
- "community": 49,
+ "community": 60,
"norm_label": "test_await_session_awaits_pending_task()"
},
{
"label": "test_await_session_without_pending_task()",
"file_type": "code",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L1074",
+ "source_location": "L990",
"id": "ui_test_mount_test_await_session_without_pending_task",
- "community": 49,
+ "community": 60,
"norm_label": "test_await_session_without_pending_task()"
},
{
"label": "test_run_creation_navigates_home_on_done()",
"file_type": "code",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L1086",
+ "source_location": "L1002",
"id": "ui_test_mount_test_run_creation_navigates_home_on_done",
- "community": 49,
+ "community": 60,
"norm_label": "test_run_creation_navigates_home_on_done()"
},
{
"label": "test_run_creation_reports_failure_state()",
"file_type": "code",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L1093",
+ "source_location": "L1009",
"id": "ui_test_mount_test_run_creation_reports_failure_state",
- "community": 49,
+ "community": 60,
"norm_label": "test_run_creation_reports_failure_state()"
},
{
"label": "test_run_creation_swallows_create_exception()",
"file_type": "code",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L1101",
+ "source_location": "L1017",
"id": "ui_test_mount_test_run_creation_swallows_create_exception",
- "community": 49,
+ "community": 60,
"norm_label": "test_run_creation_swallows_create_exception()"
},
{
"label": "test_submit_project_toasts_when_controller_missing()",
"file_type": "code",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L1119",
+ "source_location": "L1035",
"id": "ui_test_mount_test_submit_project_toasts_when_controller_missing",
- "community": 49,
+ "community": 60,
"norm_label": "test_submit_project_toasts_when_controller_missing()"
},
{
"label": "test_submit_project_toasts_without_template()",
"file_type": "code",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L1125",
+ "source_location": "L1041",
"id": "ui_test_mount_test_submit_project_toasts_without_template",
- "community": 49,
+ "community": 60,
"norm_label": "test_submit_project_toasts_without_template()"
},
{
"label": "test_submit_project_builds_request_and_runs()",
"file_type": "code",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L1133",
+ "source_location": "L1049",
"id": "ui_test_mount_test_submit_project_builds_request_and_runs",
- "community": 49,
+ "community": 60,
"norm_label": "test_submit_project_builds_request_and_runs()"
},
{
"label": "test_submit_run_toasts_when_controller_missing()",
"file_type": "code",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L1154",
+ "source_location": "L1070",
"id": "ui_test_mount_test_submit_run_toasts_when_controller_missing",
- "community": 49,
+ "community": 60,
"norm_label": "test_submit_run_toasts_when_controller_missing()"
},
{
"label": "test_submit_run_builds_request_and_runs()",
"file_type": "code",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L1160",
+ "source_location": "L1076",
"id": "ui_test_mount_test_submit_run_builds_request_and_runs",
- "community": 49,
+ "community": 60,
"norm_label": "test_submit_run_builds_request_and_runs()"
},
{
"label": "test_build_main_query_omits_empty_params()",
"file_type": "code",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L1185",
+ "source_location": "L1101",
"id": "ui_test_mount_test_build_main_query_omits_empty_params",
- "community": 389,
+ "community": 387,
"norm_label": "test_build_main_query_omits_empty_params()"
},
{
"label": "test_build_main_query_url_encodes_special_chars()",
"file_type": "code",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L1193",
+ "source_location": "L1109",
"id": "ui_test_mount_test_build_main_query_url_encodes_special_chars",
- "community": 390,
+ "community": 80,
"norm_label": "test_build_main_query_url_encodes_special_chars()"
},
{
"label": "test_build_main_query_includes_file_q_density()",
"file_type": "code",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L1205",
+ "source_location": "L1121",
"id": "ui_test_mount_test_build_main_query_includes_file_q_density",
- "community": 2,
+ "community": 504,
"norm_label": "test_build_main_query_includes_file_q_density()"
},
{
"label": "test_build_main_query_omits_empty_phase4_params()",
"file_type": "code",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L1214",
+ "source_location": "L1130",
"id": "ui_test_mount_test_build_main_query_omits_empty_phase4_params",
- "community": 418,
+ "community": 429,
"norm_label": "test_build_main_query_omits_empty_phase4_params()"
},
{
"label": "test_build_main_query_encodes_file_path_and_search()",
"file_type": "code",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L1219",
+ "source_location": "L1135",
"id": "ui_test_mount_test_build_main_query_encodes_file_path_and_search",
- "community": 2,
+ "community": 430,
"norm_label": "test_build_main_query_encodes_file_path_and_search()"
},
{
"label": "test_classify_node_returns_none_for_empty_selection()",
"file_type": "code",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L1228",
+ "source_location": "L1144",
"id": "ui_test_mount_test_classify_node_returns_none_for_empty_selection",
"community": 2,
"norm_label": "test_classify_node_returns_none_for_empty_selection()"
@@ -4678,25 +4786,25 @@
"label": "test_classify_node_discriminates_kinds()",
"file_type": "code",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L1233",
+ "source_location": "L1149",
"id": "ui_test_mount_test_classify_node_discriminates_kinds",
- "community": 350,
+ "community": 80,
"norm_label": "test_classify_node_discriminates_kinds()"
},
{
"label": "test_classify_node_rejects_unknown_root()",
"file_type": "code",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L1254",
+ "source_location": "L1170",
"id": "ui_test_mount_test_classify_node_rejects_unknown_root",
- "community": 349,
+ "community": 350,
"norm_label": "test_classify_node_rejects_unknown_root()"
},
{
"label": "test_build_metadata_payload_returns_empty_when_node_missing()",
"file_type": "code",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L1270",
+ "source_location": "L1186",
"id": "ui_test_mount_test_build_metadata_payload_returns_empty_when_node_missing",
"community": 2,
"norm_label": "test_build_metadata_payload_returns_empty_when_node_missing()"
@@ -4705,70 +4813,70 @@
"label": "test_build_metadata_payload_owned_equipment_reads_config()",
"file_type": "code",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L1276",
+ "source_location": "L1192",
"id": "ui_test_mount_test_build_metadata_payload_owned_equipment_reads_config",
- "community": 164,
+ "community": 80,
"norm_label": "test_build_metadata_payload_owned_equipment_reads_config()"
},
{
"label": "test_build_metadata_payload_unknown_equipment_id_returns_empty()",
"file_type": "code",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L1294",
+ "source_location": "L1210",
"id": "ui_test_mount_test_build_metadata_payload_unknown_equipment_id_returns_empty",
- "community": 164,
+ "community": 80,
"norm_label": "test_build_metadata_payload_unknown_equipment_id_returns_empty()"
},
{
"label": "test_build_metadata_payload_project_scans_run_counts()",
"file_type": "code",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L1301",
+ "source_location": "L1217",
"id": "ui_test_mount_test_build_metadata_payload_project_scans_run_counts",
- "community": 164,
+ "community": 80,
"norm_label": "test_build_metadata_payload_project_scans_run_counts()"
},
{
"label": "test_build_metadata_payload_run_parses_creation_json()",
"file_type": "code",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L1320",
+ "source_location": "L1236",
"id": "ui_test_mount_test_build_metadata_payload_run_parses_creation_json",
- "community": 164,
+ "community": 80,
"norm_label": "test_build_metadata_payload_run_parses_creation_json()"
},
{
"label": "test_build_metadata_payload_run_missing_creation_returns_path_only()",
"file_type": "code",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L1365",
+ "source_location": "L1281",
"id": "ui_test_mount_test_build_metadata_payload_run_missing_creation_returns_path_only",
- "community": 242,
+ "community": 33,
"norm_label": "test_build_metadata_payload_run_missing_creation_returns_path_only()"
},
{
"label": "test_build_main_state_threads_selection_into_state()",
"file_type": "code",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L1374",
+ "source_location": "L1290",
"id": "ui_test_mount_test_build_main_state_threads_selection_into_state",
- "community": 103,
+ "community": 131,
"norm_label": "test_build_main_state_threads_selection_into_state()"
},
{
"label": "test_build_main_state_threads_file_search_density()",
"file_type": "code",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L1390",
+ "source_location": "L1306",
"id": "ui_test_mount_test_build_main_state_threads_file_search_density",
- "community": 103,
+ "community": 131,
"norm_label": "test_build_main_state_threads_file_search_density()"
},
{
"label": "test_build_selected_file_resolves_file_by_path_match()",
"file_type": "code",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L1411",
+ "source_location": "L1327",
"id": "ui_test_mount_test_build_selected_file_resolves_file_by_path_match",
"community": 2,
"norm_label": "test_build_selected_file_resolves_file_by_path_match()"
@@ -4777,106 +4885,106 @@
"label": "test_build_selected_file_none_for_empty_or_missing_path()",
"file_type": "code",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L1437",
+ "source_location": "L1353",
"id": "ui_test_mount_test_build_selected_file_none_for_empty_or_missing_path",
- "community": 269,
+ "community": 125,
"norm_label": "test_build_selected_file_none_for_empty_or_missing_path()"
},
{
"label": "test_build_selected_file_tombstone_omits_size()",
"file_type": "code",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L1446",
+ "source_location": "L1362",
"id": "ui_test_mount_test_build_selected_file_tombstone_omits_size",
- "community": 17,
+ "community": 14,
"norm_label": "test_build_selected_file_tombstone_omits_size()"
},
{
"label": "test_build_selected_file_folder_delegates_to_aggregate()",
"file_type": "code",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L1465",
+ "source_location": "L1381",
"id": "ui_test_mount_test_build_selected_file_folder_delegates_to_aggregate",
- "community": 62,
+ "community": 33,
"norm_label": "test_build_selected_file_folder_delegates_to_aggregate()"
},
{
"label": "test_build_selected_folder_degrades_on_scan_failure()",
"file_type": "code",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L1492",
+ "source_location": "L1408",
"id": "ui_test_mount_test_build_selected_folder_degrades_on_scan_failure",
- "community": 2,
+ "community": 107,
"norm_label": "test_build_selected_folder_degrades_on_scan_failure()"
},
{
"label": "test_refresh_selected_folder_primes_feed_payload()",
"file_type": "code",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L1520",
+ "source_location": "L1436",
"id": "ui_test_mount_test_refresh_selected_folder_primes_feed_payload",
- "community": 270,
+ "community": 107,
"norm_label": "test_refresh_selected_folder_primes_feed_payload()"
},
{
"label": "test_refresh_selected_folder_noop_when_path_none()",
"file_type": "code",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L1540",
+ "source_location": "L1456",
"id": "ui_test_mount_test_refresh_selected_folder_noop_when_path_none",
- "community": 298,
+ "community": 14,
"norm_label": "test_refresh_selected_folder_noop_when_path_none()"
},
{
"label": "test_refresh_selected_folder_swallows_scan_failure()",
"file_type": "code",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L1546",
+ "source_location": "L1462",
"id": "ui_test_mount_test_refresh_selected_folder_swallows_scan_failure",
- "community": 77,
+ "community": 50,
"norm_label": "test_refresh_selected_folder_swallows_scan_failure()"
},
{
"label": "test_open_in_os_returns_false_on_unhandled_platform()",
"file_type": "code",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L1565",
+ "source_location": "L1481",
"id": "ui_test_mount_test_open_in_os_returns_false_on_unhandled_platform",
- "community": 103,
+ "community": 107,
"norm_label": "test_open_in_os_returns_false_on_unhandled_platform()"
},
{
"label": "test_open_in_os_linux_invokes_xdg_open()",
"file_type": "code",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L1573",
+ "source_location": "L1489",
"id": "ui_test_mount_test_open_in_os_linux_invokes_xdg_open",
- "community": 103,
+ "community": 131,
"norm_label": "test_open_in_os_linux_invokes_xdg_open()"
},
{
"label": "test_open_in_os_darwin_invokes_open()",
"file_type": "code",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L1587",
+ "source_location": "L1503",
"id": "ui_test_mount_test_open_in_os_darwin_invokes_open",
- "community": 299,
+ "community": 50,
"norm_label": "test_open_in_os_darwin_invokes_open()"
},
{
"label": "test_open_in_os_returns_false_when_popen_raises()",
"file_type": "code",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L1596",
+ "source_location": "L1512",
"id": "ui_test_mount_test_open_in_os_returns_false_when_popen_raises",
- "community": 269,
+ "community": 125,
"norm_label": "test_open_in_os_returns_false_when_popen_raises()"
},
{
"label": "_ClipboardSpy",
"file_type": "code",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L1612",
+ "source_location": "L1528",
"id": "ui_test_mount_clipboardspy",
"community": 0,
"norm_label": "_clipboardspy"
@@ -4885,7 +4993,7 @@
"label": ".__init__()",
"file_type": "code",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L1613",
+ "source_location": "L1529",
"id": "ui_test_mount_clipboardspy_init",
"community": 0,
"norm_label": ".__init__()"
@@ -4894,7 +5002,7 @@
"label": ".write()",
"file_type": "code",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L1616",
+ "source_location": "L1532",
"id": "ui_test_mount_clipboardspy_write",
"community": 0,
"norm_label": ".write()"
@@ -4903,79 +5011,79 @@
"label": "_UiSpy",
"file_type": "code",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L1620",
+ "source_location": "L1536",
"id": "ui_test_mount_uispy",
- "community": 17,
+ "community": 14,
"norm_label": "_uispy"
},
{
"label": ".__init__()",
"file_type": "code",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L1623",
+ "source_location": "L1539",
"id": "ui_test_mount_uispy_init",
- "community": 17,
+ "community": 14,
"norm_label": ".__init__()"
},
{
"label": ".__getattr__()",
"file_type": "code",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L1636",
+ "source_location": "L1552",
"id": "ui_test_mount_uispy_getattr",
- "community": 17,
+ "community": 14,
"norm_label": ".__getattr__()"
},
{
"label": "test_file_context_action_open_in_os_dispatches_to_helper()",
"file_type": "code",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L1643",
+ "source_location": "L1559",
"id": "ui_test_mount_test_file_context_action_open_in_os_dispatches_to_helper",
- "community": 17,
+ "community": 14,
"norm_label": "test_file_context_action_open_in_os_dispatches_to_helper()"
},
{
"label": "test_file_context_action_open_in_os_failure_toasts_negative()",
"file_type": "code",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L1655",
+ "source_location": "L1571",
"id": "ui_test_mount_test_file_context_action_open_in_os_failure_toasts_negative",
- "community": 297,
+ "community": 131,
"norm_label": "test_file_context_action_open_in_os_failure_toasts_negative()"
},
{
"label": "test_file_context_action_copy_path_writes_clipboard()",
"file_type": "code",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L1666",
+ "source_location": "L1582",
"id": "ui_test_mount_test_file_context_action_copy_path_writes_clipboard",
- "community": 62,
+ "community": 33,
"norm_label": "test_file_context_action_copy_path_writes_clipboard()"
},
{
"label": "test_file_context_action_unknown_action_no_raise()",
"file_type": "code",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L1674",
+ "source_location": "L1590",
"id": "ui_test_mount_test_file_context_action_unknown_action_no_raise",
- "community": 162,
+ "community": 125,
"norm_label": "test_file_context_action_unknown_action_no_raise()"
},
{
"label": "test_file_context_action_empty_path_toasts_negative()",
"file_type": "code",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L1681",
+ "source_location": "L1597",
"id": "ui_test_mount_test_file_context_action_empty_path_toasts_negative",
- "community": 270,
+ "community": 107,
"norm_label": "test_file_context_action_empty_path_toasts_negative()"
},
{
"label": "_StubNasSync",
"file_type": "code",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L1692",
+ "source_location": "L1608",
"id": "ui_test_mount_stubnassync",
"community": 0,
"norm_label": "_stubnassync"
@@ -4984,7 +5092,7 @@
"label": ".__init__()",
"file_type": "code",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L1693",
+ "source_location": "L1609",
"id": "ui_test_mount_stubnassync_init",
"community": 0,
"norm_label": ".__init__()"
@@ -4993,106 +5101,70 @@
"label": ".enqueue()",
"file_type": "code",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L1696",
+ "source_location": "L1612",
"id": "ui_test_mount_stubnassync_enqueue",
"community": 0,
"norm_label": ".enqueue()"
},
- {
- "label": "_drain_background()",
- "file_type": "code",
- "source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L1701",
- "id": "ui_test_mount_drain_background",
- "community": 77,
- "norm_label": "_drain_background()"
- },
{
"label": "test_run_staging_action_force_sync_invokes_nas_sync_enqueue()",
"file_type": "code",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L1716",
+ "source_location": "L1617",
"id": "ui_test_mount_test_run_staging_action_force_sync_invokes_nas_sync_enqueue",
- "community": 162,
+ "community": 86,
"norm_label": "test_run_staging_action_force_sync_invokes_nas_sync_enqueue()"
},
{
"label": "test_run_staging_action_force_sync_missing_nas_sync_toasts()",
"file_type": "code",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L1729",
+ "source_location": "L1630",
"id": "ui_test_mount_test_run_staging_action_force_sync_missing_nas_sync_toasts",
- "community": 145,
+ "community": 33,
"norm_label": "test_run_staging_action_force_sync_missing_nas_sync_toasts()"
},
{
"label": "test_run_staging_action_no_config_toasts_negative()",
"file_type": "code",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L1736",
+ "source_location": "L1637",
"id": "ui_test_mount_test_run_staging_action_no_config_toasts_negative",
- "community": 103,
+ "community": 107,
"norm_label": "test_run_staging_action_no_config_toasts_negative()"
},
{
"label": "test_run_staging_action_view_log_invokes_log_dialog()",
"file_type": "code",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L1743",
+ "source_location": "L1644",
"id": "ui_test_mount_test_run_staging_action_view_log_invokes_log_dialog",
- "community": 145,
+ "community": 33,
"norm_label": "test_run_staging_action_view_log_invokes_log_dialog()"
},
{
"label": "test_run_staging_action_unknown_action_no_raise()",
"file_type": "code",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L1755",
+ "source_location": "L1656",
"id": "ui_test_mount_test_run_staging_action_unknown_action_no_raise",
- "community": 145,
+ "community": 33,
"norm_label": "test_run_staging_action_unknown_action_no_raise()"
},
{
"label": "test_run_staging_action_clear_verified_invokes_clear()",
"file_type": "code",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L1762",
+ "source_location": "L1663",
"id": "ui_test_mount_test_run_staging_action_clear_verified_invokes_clear",
- "community": 17,
+ "community": 14,
"norm_label": "test_run_staging_action_clear_verified_invokes_clear()"
},
- {
- "label": "test_bulk_clear_verified_clears_verified_rows()",
- "file_type": "code",
- "source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L1787",
- "id": "ui_test_mount_test_bulk_clear_verified_clears_verified_rows",
- "community": 17,
- "norm_label": "test_bulk_clear_verified_clears_verified_rows()"
- },
- {
- "label": "test_bulk_clear_verified_no_config_toasts_and_returns()",
- "file_type": "code",
- "source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L1816",
- "id": "ui_test_mount_test_bulk_clear_verified_no_config_toasts_and_returns",
- "community": 55,
- "norm_label": "test_bulk_clear_verified_no_config_toasts_and_returns()"
- },
- {
- "label": "test_bulk_clear_verified_logs_helper_exception()",
- "file_type": "code",
- "source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L1823",
- "id": "ui_test_mount_test_bulk_clear_verified_logs_helper_exception",
- "community": 162,
- "norm_label": "test_bulk_clear_verified_logs_helper_exception()"
- },
{
"label": "_StubTabStorage",
"file_type": "code",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L1845",
+ "source_location": "L1694",
"id": "ui_test_mount_stubtabstorage",
"community": 0,
"norm_label": "_stubtabstorage"
@@ -5103,14 +5175,14 @@
"source_file": "",
"source_location": "",
"id": "dict",
- "community": 112,
+ "community": 53,
"norm_label": "dict"
},
{
"label": "_StubApp",
"file_type": "code",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L1849",
+ "source_location": "L1698",
"id": "ui_test_mount_stubapp",
"community": 0,
"norm_label": "_stubapp"
@@ -5119,7 +5191,7 @@
"label": ".__init__()",
"file_type": "code",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L1852",
+ "source_location": "L1701",
"id": "ui_test_mount_stubapp_init",
"community": 0,
"norm_label": ".__init__()"
@@ -5128,178 +5200,178 @@
"label": "test_drive_folder_feed_returns_empty_when_no_selection()",
"file_type": "code",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L1860",
+ "source_location": "L1709",
"id": "ui_test_mount_test_drive_folder_feed_returns_empty_when_no_selection",
- "community": 62,
+ "community": 33,
"norm_label": "test_drive_folder_feed_returns_empty_when_no_selection()"
},
{
"label": "test_drive_folder_feed_creates_feed_on_first_render()",
"file_type": "code",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L1868",
+ "source_location": "L1717",
"id": "ui_test_mount_test_drive_folder_feed_creates_feed_on_first_render",
- "community": 77,
+ "community": 50,
"norm_label": "test_drive_folder_feed_creates_feed_on_first_render()"
},
{
"label": "test_drive_folder_feed_converts_cached_payload_to_entries()",
"file_type": "code",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L1881",
+ "source_location": "L1730",
"id": "ui_test_mount_test_drive_folder_feed_converts_cached_payload_to_entries",
- "community": 78,
+ "community": 86,
"norm_label": "test_drive_folder_feed_converts_cached_payload_to_entries()"
},
{
"label": "test_fetch_folder_async_skips_when_coord_says_skip()",
"file_type": "code",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L1923",
+ "source_location": "L1772",
"id": "ui_test_mount_test_fetch_folder_async_skips_when_coord_says_skip",
- "community": 78,
+ "community": 157,
"norm_label": "test_fetch_folder_async_skips_when_coord_says_skip()"
},
{
"label": "test_fetch_folder_async_records_refresh_on_success()",
"file_type": "code",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L1940",
+ "source_location": "L1789",
"id": "ui_test_mount_test_fetch_folder_async_records_refresh_on_success",
- "community": 163,
+ "community": 106,
"norm_label": "test_fetch_folder_async_records_refresh_on_success()"
},
{
"label": "test_fetch_folder_async_swallows_helper_exceptions()",
"file_type": "code",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L1959",
+ "source_location": "L1808",
"id": "ui_test_mount_test_fetch_folder_async_swallows_helper_exceptions",
- "community": 165,
+ "community": 173,
"norm_label": "test_fetch_folder_async_swallows_helper_exceptions()"
},
{
"label": "test_open_log_dialog_no_queue_job_renders_dialog()",
"file_type": "code",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L1977",
+ "source_location": "L1826",
"id": "ui_test_mount_test_open_log_dialog_no_queue_job_renders_dialog",
- "community": 165,
+ "community": 173,
"norm_label": "test_open_log_dialog_no_queue_job_renders_dialog()"
},
{
"label": "test_open_log_dialog_with_queue_job_renders_dialog()",
"file_type": "code",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L1986",
+ "source_location": "L1835",
"id": "ui_test_mount_test_open_log_dialog_with_queue_job_renders_dialog",
- "community": 62,
+ "community": 158,
"norm_label": "test_open_log_dialog_with_queue_job_renders_dialog()"
},
{
"label": "test_build_metadata_payload_returns_empty_on_builder_exception()",
"file_type": "code",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L2012",
+ "source_location": "L1861",
"id": "ui_test_mount_test_build_metadata_payload_returns_empty_on_builder_exception",
- "community": 55,
+ "community": 69,
"norm_label": "test_build_metadata_payload_returns_empty_on_builder_exception()"
},
{
"label": "test_metadata_for_relay_equipment_emits_id_label_source_host()",
"file_type": "code",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L2025",
+ "source_location": "L1874",
"id": "ui_test_mount_test_metadata_for_relay_equipment_emits_id_label_source_host",
- "community": 62,
+ "community": 158,
"norm_label": "test_metadata_for_relay_equipment_emits_id_label_source_host()"
},
{
"label": "test_metadata_for_relay_equipment_unknown_id_falls_back()",
"file_type": "code",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L2043",
+ "source_location": "L1892",
"id": "ui_test_mount_test_metadata_for_relay_equipment_unknown_id_falls_back",
- "community": 77,
+ "community": 158,
"norm_label": "test_metadata_for_relay_equipment_unknown_id_falls_back()"
},
{
"label": "test_metadata_for_project_returns_empty_for_single_segment_id()",
"file_type": "code",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L2050",
+ "source_location": "L1899",
"id": "ui_test_mount_test_metadata_for_project_returns_empty_for_single_segment_id",
- "community": 78,
+ "community": 86,
"norm_label": "test_metadata_for_project_returns_empty_for_single_segment_id()"
},
{
"label": "test_count_dir_children_returns_zero_for_missing_dir()",
"file_type": "code",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L2056",
+ "source_location": "L1905",
"id": "ui_test_mount_test_count_dir_children_returns_zero_for_missing_dir",
- "community": 78,
+ "community": 86,
"norm_label": "test_count_dir_children_returns_zero_for_missing_dir()"
},
{
"label": "test_count_dir_children_filters_by_prefix()",
"file_type": "code",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L2061",
+ "source_location": "L1910",
"id": "ui_test_mount_test_count_dir_children_filters_by_prefix",
- "community": 296,
+ "community": 69,
"norm_label": "test_count_dir_children_filters_by_prefix()"
},
{
"label": "test_metadata_for_run_returns_partial_on_decode_failure()",
"file_type": "code",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L2070",
+ "source_location": "L1919",
"id": "ui_test_mount_test_metadata_for_run_returns_partial_on_decode_failure",
- "community": 295,
+ "community": 157,
"norm_label": "test_metadata_for_run_returns_partial_on_decode_failure()"
},
{
"label": "test_run_staging_action_force_sync_exception_path_no_raise()",
"file_type": "code",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L2081",
+ "source_location": "L1930",
"id": "ui_test_mount_test_run_staging_action_force_sync_exception_path_no_raise",
- "community": 172,
+ "community": 69,
"norm_label": "test_run_staging_action_force_sync_exception_path_no_raise()"
},
{
"label": "test_run_staging_action_clear_verified_exception_path_no_raise()",
"file_type": "code",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L2097",
+ "source_location": "L1946",
"id": "ui_test_mount_test_run_staging_action_clear_verified_exception_path_no_raise",
- "community": 172,
+ "community": 106,
"norm_label": "test_run_staging_action_clear_verified_exception_path_no_raise()"
},
{
"label": "test_run_staging_action_clear_verified_zero_files_branch()",
"file_type": "code",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L2113",
+ "source_location": "L1962",
"id": "ui_test_mount_test_run_staging_action_clear_verified_zero_files_branch",
- "community": 163,
+ "community": 106,
"norm_label": "test_run_staging_action_clear_verified_zero_files_branch()"
},
{
"label": "test_file_context_action_clipboard_failure_toasts()",
"file_type": "code",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L2126",
+ "source_location": "L1975",
"id": "ui_test_mount_test_file_context_action_clipboard_failure_toasts",
- "community": 165,
+ "community": 173,
"norm_label": "test_file_context_action_clipboard_failure_toasts()"
},
{
"label": "_DialogStub",
"file_type": "code",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L2150",
+ "source_location": "L1999",
"id": "ui_test_mount_dialogstub",
"community": 0,
"norm_label": "_dialogstub"
@@ -5308,7 +5380,7 @@
"label": ".__init__()",
"file_type": "code",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L2151",
+ "source_location": "L2000",
"id": "ui_test_mount_dialogstub_init",
"community": 0,
"norm_label": ".__init__()"
@@ -5317,7 +5389,7 @@
"label": ".open()",
"file_type": "code",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L2156",
+ "source_location": "L2005",
"id": "ui_test_mount_dialogstub_open",
"community": 2,
"norm_label": ".open()"
@@ -5326,16 +5398,16 @@
"label": ".close()",
"file_type": "code",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L2160",
+ "source_location": "L2009",
"id": "ui_test_mount_dialogstub_close",
- "community": 77,
+ "community": 50,
"norm_label": ".close()"
},
{
"label": "_DialogUI",
"file_type": "code",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L2165",
+ "source_location": "L2014",
"id": "ui_test_mount_dialogui",
"community": 0,
"norm_label": "_dialogui"
@@ -5344,7 +5416,7 @@
"label": ".__init__()",
"file_type": "code",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L2174",
+ "source_location": "L2023",
"id": "ui_test_mount_dialogui_init",
"community": 0,
"norm_label": ".__init__()"
@@ -5353,7 +5425,7 @@
"label": ".dialog()",
"file_type": "code",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L2181",
+ "source_location": "L2030",
"id": "ui_test_mount_dialogui_dialog",
"community": 0,
"norm_label": ".dialog()"
@@ -5362,7 +5434,7 @@
"label": ".card()",
"file_type": "code",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L2186",
+ "source_location": "L2035",
"id": "ui_test_mount_dialogui_card",
"community": 0,
"norm_label": ".card()"
@@ -5371,7 +5443,7 @@
"label": ".row()",
"file_type": "code",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L2189",
+ "source_location": "L2038",
"id": "ui_test_mount_dialogui_row",
"community": 0,
"norm_label": ".row()"
@@ -5380,7 +5452,7 @@
"label": ".label()",
"file_type": "code",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L2192",
+ "source_location": "L2041",
"id": "ui_test_mount_dialogui_label",
"community": 0,
"norm_label": ".label()"
@@ -5389,7 +5461,7 @@
"label": ".icon()",
"file_type": "code",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L2196",
+ "source_location": "L2045",
"id": "ui_test_mount_dialogui_icon",
"community": 0,
"norm_label": ".icon()"
@@ -5398,7 +5470,7 @@
"label": ".button()",
"file_type": "code",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L2199",
+ "source_location": "L2048",
"id": "ui_test_mount_dialogui_button",
"community": 0,
"norm_label": ".button()"
@@ -5407,16 +5479,16 @@
"label": "test_nas_test_connection_unavailable_when_probe_missing()",
"file_type": "code",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L2209",
+ "source_location": "L2058",
"id": "ui_test_mount_test_nas_test_connection_unavailable_when_probe_missing",
- "community": 55,
+ "community": 69,
"norm_label": "test_nas_test_connection_unavailable_when_probe_missing()"
},
{
"label": "test_nas_test_connection_unavailable_when_config_missing()",
"file_type": "code",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L2216",
+ "source_location": "L2065",
"id": "ui_test_mount_test_nas_test_connection_unavailable_when_config_missing",
"community": 2,
"norm_label": "test_nas_test_connection_unavailable_when_config_missing()"
@@ -5425,16 +5497,16 @@
"label": "test_nas_test_connection_success_maps_latency()",
"file_type": "code",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L2221",
+ "source_location": "L2070",
"id": "ui_test_mount_test_nas_test_connection_success_maps_latency",
- "community": 62,
+ "community": 157,
"norm_label": "test_nas_test_connection_success_maps_latency()"
},
{
"label": "test_nas_test_connection_failure_maps_reason()",
"file_type": "code",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L2238",
+ "source_location": "L2087",
"id": "ui_test_mount_test_nas_test_connection_failure_maps_reason",
"community": 2,
"norm_label": "test_nas_test_connection_failure_maps_reason()"
@@ -5443,16 +5515,16 @@
"label": "test_nas_test_connection_awaits_coroutine_probe()",
"file_type": "code",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L2248",
+ "source_location": "L2097",
"id": "ui_test_mount_test_nas_test_connection_awaits_coroutine_probe",
- "community": 78,
+ "community": 180,
"norm_label": "test_nas_test_connection_awaits_coroutine_probe()"
},
{
"label": "test_nas_test_connection_swallows_probe_exception()",
"file_type": "code",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L2259",
+ "source_location": "L2108",
"id": "ui_test_mount_test_nas_test_connection_swallows_probe_exception",
"community": 2,
"norm_label": "test_nas_test_connection_swallows_probe_exception()"
@@ -5461,7 +5533,7 @@
"label": "test_setup_next_action_none_when_deps_none()",
"file_type": "code",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L2274",
+ "source_location": "L2123",
"id": "ui_test_mount_test_setup_next_action_none_when_deps_none",
"community": 2,
"norm_label": "test_setup_next_action_none_when_deps_none()"
@@ -5470,16 +5542,16 @@
"label": "test_setup_next_action_returns_action_for_incomplete_setup()",
"file_type": "code",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L2278",
+ "source_location": "L2127",
"id": "ui_test_mount_test_setup_next_action_returns_action_for_incomplete_setup",
- "community": 172,
+ "community": 69,
"norm_label": "test_setup_next_action_returns_action_for_incomplete_setup()"
},
{
"label": "test_setup_next_action_none_when_ready()",
"file_type": "code",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L2285",
+ "source_location": "L2134",
"id": "ui_test_mount_test_setup_next_action_none_when_ready",
"community": 325,
"norm_label": "test_setup_next_action_none_when_ready()"
@@ -5488,7 +5560,7 @@
"label": "test_setup_next_action_swallows_failure()",
"file_type": "code",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L2291",
+ "source_location": "L2140",
"id": "ui_test_mount_test_setup_next_action_swallows_failure",
"community": 2,
"norm_label": "test_setup_next_action_swallows_failure()"
@@ -5497,61 +5569,61 @@
"label": "test_toggle_keep_local_no_writer_toasts()",
"file_type": "code",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L2309",
+ "source_location": "L2158",
"id": "ui_test_mount_test_toggle_keep_local_no_writer_toasts",
- "community": 163,
+ "community": 106,
"norm_label": "test_toggle_keep_local_no_writer_toasts()"
},
{
"label": "test_toggle_keep_local_file_not_in_run_toasts()",
"file_type": "code",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L2316",
+ "source_location": "L2165",
"id": "ui_test_mount_test_toggle_keep_local_file_not_in_run_toasts",
- "community": 326,
+ "community": 14,
"norm_label": "test_toggle_keep_local_file_not_in_run_toasts()"
},
{
"label": "test_toggle_keep_local_invokes_writer_and_on_done()",
"file_type": "code",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L2327",
+ "source_location": "L2176",
"id": "ui_test_mount_test_toggle_keep_local_invokes_writer_and_on_done",
- "community": 26,
+ "community": 23,
"norm_label": "test_toggle_keep_local_invokes_writer_and_on_done()"
},
{
"label": "test_toggle_keep_local_writer_failure_toasts()",
"file_type": "code",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L2361",
+ "source_location": "L2210",
"id": "ui_test_mount_test_toggle_keep_local_writer_failure_toasts",
- "community": 17,
+ "community": 14,
"norm_label": "test_toggle_keep_local_writer_failure_toasts()"
},
{
"label": "test_file_context_action_keep_local_dispatches()",
"file_type": "code",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L2384",
+ "source_location": "L2233",
"id": "ui_test_mount_test_file_context_action_keep_local_dispatches",
- "community": 17,
+ "community": 14,
"norm_label": "test_file_context_action_keep_local_dispatches()"
},
{
"label": "test_open_in_os_win32_invokes_startfile()",
"file_type": "code",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L2401",
+ "source_location": "L2250",
"id": "ui_test_mount_test_open_in_os_win32_invokes_startfile",
- "community": 55,
+ "community": 170,
"norm_label": "test_open_in_os_win32_invokes_startfile()"
},
{
"label": "_store_with_running_session()",
"file_type": "code",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L2418",
+ "source_location": "L2267",
"id": "ui_test_mount_store_with_running_session",
"community": 2,
"norm_label": "_store_with_running_session()"
@@ -5560,7 +5632,7 @@
"label": "test_build_operation_rows_maps_panel_sessions()",
"file_type": "code",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L2427",
+ "source_location": "L2276",
"id": "ui_test_mount_test_build_operation_rows_maps_panel_sessions",
"community": 2,
"norm_label": "test_build_operation_rows_maps_panel_sessions()"
@@ -5569,178 +5641,178 @@
"label": "test_open_operations_modal_no_controller_toasts()",
"file_type": "code",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L2435",
+ "source_location": "L2284",
"id": "ui_test_mount_test_open_operations_modal_no_controller_toasts",
- "community": 243,
+ "community": 180,
"norm_label": "test_open_operations_modal_no_controller_toasts()"
},
{
"label": "test_open_operations_modal_opens_with_controller()",
"file_type": "code",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L2441",
+ "source_location": "L2290",
"id": "ui_test_mount_test_open_operations_modal_opens_with_controller",
- "community": 243,
+ "community": 180,
"norm_label": "test_open_operations_modal_opens_with_controller()"
},
{
"label": "test_open_operation_details_session_not_found_toasts()",
"file_type": "code",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L2454",
+ "source_location": "L2303",
"id": "ui_test_mount_test_open_operation_details_session_not_found_toasts",
- "community": 17,
+ "community": 14,
"norm_label": "test_open_operation_details_session_not_found_toasts()"
},
{
"label": "test_open_operation_details_renders_state_and_pending()",
"file_type": "code",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L2462",
+ "source_location": "L2311",
"id": "ui_test_mount_test_open_operation_details_renders_state_and_pending",
- "community": 327,
+ "community": 300,
"norm_label": "test_open_operation_details_renders_state_and_pending()"
},
{
"label": "test_resume_operation_no_pending_input_toasts()",
"file_type": "code",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L2486",
+ "source_location": "L2335",
"id": "ui_test_mount_test_resume_operation_no_pending_input_toasts",
- "community": 17,
+ "community": 14,
"norm_label": "test_resume_operation_no_pending_input_toasts()"
},
{
"label": "test_resume_operation_opens_input_dialog()",
"file_type": "code",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L2495",
+ "source_location": "L2344",
"id": "ui_test_mount_test_resume_operation_opens_input_dialog",
- "community": 94,
+ "community": 171,
"norm_label": "test_resume_operation_opens_input_dialog()"
},
{
"label": "test_open_input_required_dialog_submit_resumes_controller()",
"file_type": "code",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L2522",
+ "source_location": "L2371",
"id": "ui_test_mount_test_open_input_required_dialog_submit_resumes_controller",
- "community": 26,
+ "community": 23,
"norm_label": "test_open_input_required_dialog_submit_resumes_controller()"
},
{
"label": "test_open_input_required_dialog_cancel_routes_to_cancel_session()",
"file_type": "code",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L2554",
+ "source_location": "L2403",
"id": "ui_test_mount_test_open_input_required_dialog_cancel_routes_to_cancel_session",
- "community": 125,
+ "community": 23,
"norm_label": "test_open_input_required_dialog_cancel_routes_to_cancel_session()"
},
{
"label": "test_cancel_operation_no_controller_toasts()",
"file_type": "code",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L2583",
+ "source_location": "L2432",
"id": "ui_test_mount_test_cancel_operation_no_controller_toasts",
- "community": 17,
+ "community": 14,
"norm_label": "test_cancel_operation_no_controller_toasts()"
},
{
"label": "test_cancel_operation_routes_to_cancel_session()",
"file_type": "code",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L2588",
+ "source_location": "L2437",
"id": "ui_test_mount_test_cancel_operation_routes_to_cancel_session",
- "community": 17,
+ "community": 14,
"norm_label": "test_cancel_operation_routes_to_cancel_session()"
},
{
"label": "test_cancel_session_discard_calls_controller_cancel()",
"file_type": "code",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L2596",
+ "source_location": "L2445",
"id": "ui_test_mount_test_cancel_session_discard_calls_controller_cancel",
- "community": 55,
+ "community": 170,
"norm_label": "test_cancel_session_discard_calls_controller_cancel()"
},
{
"label": "test_cancel_session_keep_files_calls_controller_cancel()",
"file_type": "code",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L2615",
+ "source_location": "L2464",
"id": "ui_test_mount_test_cancel_session_keep_files_calls_controller_cancel",
- "community": 26,
+ "community": 171,
"norm_label": "test_cancel_session_keep_files_calls_controller_cancel()"
},
{
"label": "test_cancel_session_swallows_controller_failure()",
"file_type": "code",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L2632",
+ "source_location": "L2481",
"id": "ui_test_mount_test_cancel_session_swallows_controller_failure",
- "community": 185,
+ "community": 172,
"norm_label": "test_cancel_session_swallows_controller_failure()"
},
{
"label": "test_cancel_session_back_button_closes_dialog()",
"file_type": "code",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L2648",
+ "source_location": "L2497",
"id": "ui_test_mount_test_cancel_session_back_button_closes_dialog",
- "community": 186,
+ "community": 181,
"norm_label": "test_cancel_session_back_button_closes_dialog()"
},
{
"label": "test_open_log_dialog_renders_row_fields()",
"file_type": "code",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L2662",
+ "source_location": "L2511",
"id": "ui_test_mount_test_open_log_dialog_renders_row_fields",
- "community": 94,
+ "community": 171,
"norm_label": "test_open_log_dialog_renders_row_fields()"
},
{
"label": "test_open_log_dialog_no_row_renders_empty_line()",
"file_type": "code",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L2690",
+ "source_location": "L2539",
"id": "ui_test_mount_test_open_log_dialog_no_row_renders_empty_line",
- "community": 94,
+ "community": 54,
"norm_label": "test_open_log_dialog_no_row_renders_empty_line()"
},
{
"label": "test_consume_session_progress_early_return_without_progress()",
"file_type": "code",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L2706",
+ "source_location": "L2555",
"id": "ui_test_mount_test_consume_session_progress_early_return_without_progress",
- "community": 26,
+ "community": 23,
"norm_label": "test_consume_session_progress_early_return_without_progress()"
},
{
"label": "test_consume_session_progress_opens_dialog_then_closes_on_done()",
"file_type": "code",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L2717",
+ "source_location": "L2566",
"id": "ui_test_mount_test_consume_session_progress_opens_dialog_then_closes_on_done",
- "community": 26,
+ "community": 23,
"norm_label": "test_consume_session_progress_opens_dialog_then_closes_on_done()"
},
{
"label": "test_consume_session_progress_swallows_stream_failure()",
"file_type": "code",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L2752",
+ "source_location": "L2601",
"id": "ui_test_mount_test_consume_session_progress_swallows_stream_failure",
- "community": 125,
+ "community": 23,
"norm_label": "test_consume_session_progress_swallows_stream_failure()"
},
{
"label": "test_close_dialog_none_is_noop()",
"file_type": "code",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L2770",
+ "source_location": "L2619",
"id": "ui_test_mount_test_close_dialog_none_is_noop",
"community": 2,
"norm_label": "test_close_dialog_none_is_noop()"
@@ -5749,7 +5821,7 @@
"label": "test_close_dialog_calls_close()",
"file_type": "code",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L2774",
+ "source_location": "L2623",
"id": "ui_test_mount_test_close_dialog_calls_close",
"community": 2,
"norm_label": "test_close_dialog_calls_close()"
@@ -5758,7 +5830,7 @@
"label": "test_close_dialog_swallows_close_failure()",
"file_type": "code",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L2780",
+ "source_location": "L2629",
"id": "ui_test_mount_test_close_dialog_swallows_close_failure",
"community": 2,
"norm_label": "test_close_dialog_swallows_close_failure()"
@@ -5767,43 +5839,43 @@
"label": "test_submit_run_toasts_without_template()",
"file_type": "code",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L2794",
+ "source_location": "L2643",
"id": "ui_test_mount_test_submit_run_toasts_without_template",
- "community": 55,
+ "community": 170,
"norm_label": "test_submit_run_toasts_without_template()"
},
{
"label": "test_render_run_wizard_builds_page()",
"file_type": "code",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L2805",
+ "source_location": "L2654",
"id": "ui_test_mount_test_render_run_wizard_builds_page",
- "community": 185,
+ "community": 172,
"norm_label": "test_render_run_wizard_builds_page()"
},
{
"label": "test_classify_node_skips_non_equipment_hierarchy_keys()",
"file_type": "code",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L2834",
+ "source_location": "L2683",
"id": "ui_test_mount_test_classify_node_skips_non_equipment_hierarchy_keys",
- "community": 94,
+ "community": 54,
"norm_label": "test_classify_node_skips_non_equipment_hierarchy_keys()"
},
{
"label": "test_build_metadata_payload_received_equipment_kind()",
"file_type": "code",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L2841",
+ "source_location": "L2690",
"id": "ui_test_mount_test_build_metadata_payload_received_equipment_kind",
- "community": 186,
+ "community": 181,
"norm_label": "test_build_metadata_payload_received_equipment_kind()"
},
{
"label": "test_build_metadata_payload_unknown_kind_returns_empty()",
"file_type": "code",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L2854",
+ "source_location": "L2703",
"id": "ui_test_mount_test_build_metadata_payload_unknown_kind_returns_empty",
"community": 2,
"norm_label": "test_build_metadata_payload_unknown_kind_returns_empty()"
@@ -5812,92 +5884,74 @@
"label": "test_metadata_for_owned_equipment_projects_fields()",
"file_type": "code",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L2859",
+ "source_location": "L2708",
"id": "ui_test_mount_test_metadata_for_owned_equipment_projects_fields",
- "community": 94,
+ "community": 54,
"norm_label": "test_metadata_for_owned_equipment_projects_fields()"
},
{
"label": "test_lims_catalogue_projects_schema_mismatch_returns_empty()",
"file_type": "code",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L2879",
+ "source_location": "L2728",
"id": "ui_test_mount_test_lims_catalogue_projects_schema_mismatch_returns_empty",
- "community": 242,
+ "community": 54,
"norm_label": "test_lims_catalogue_projects_schema_mismatch_returns_empty()"
},
{
"label": "test_drive_folder_feed_tolerates_storage_error()",
"file_type": "code",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L2893",
+ "source_location": "L2742",
"id": "ui_test_mount_test_drive_folder_feed_tolerates_storage_error",
- "community": 77,
+ "community": 50,
"norm_label": "test_drive_folder_feed_tolerates_storage_error()"
},
{
"label": "test_is_setup_ready_swallows_evaluation_failure()",
"file_type": "code",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L2913",
+ "source_location": "L2762",
"id": "ui_test_mount_test_is_setup_ready_swallows_evaluation_failure",
- "community": 26,
+ "community": 50,
"norm_label": "test_is_setup_ready_swallows_evaluation_failure()"
},
{
"label": "test_metadata_for_owned_equipment_no_match_returns_empty()",
"file_type": "code",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L2928",
+ "source_location": "L2777",
"id": "ui_test_mount_test_metadata_for_owned_equipment_no_match_returns_empty",
- "community": 125,
+ "community": 54,
"norm_label": "test_metadata_for_owned_equipment_no_match_returns_empty()"
},
- {
- "label": "test_bulk_clear_verified_no_verified_rows_toasts()",
- "file_type": "code",
- "source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L2934",
- "id": "ui_test_mount_test_bulk_clear_verified_no_verified_rows_toasts",
- "community": 17,
- "norm_label": "test_bulk_clear_verified_no_verified_rows_toasts()"
- },
{
"label": "test_toggle_keep_local_unresolvable_relative_path_toasts()",
"file_type": "code",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L2951",
+ "source_location": "L2783",
"id": "ui_test_mount_test_toggle_keep_local_unresolvable_relative_path_toasts",
- "community": 125,
+ "community": 54,
"norm_label": "test_toggle_keep_local_unresolvable_relative_path_toasts()"
},
{
"label": "test_open_input_required_dialog_submit_swallows_resume_failure()",
"file_type": "code",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L2969",
+ "source_location": "L2801",
"id": "ui_test_mount_test_open_input_required_dialog_submit_swallows_resume_failure",
- "community": 26,
+ "community": 23,
"norm_label": "test_open_input_required_dialog_submit_swallows_resume_failure()"
},
{
"label": "test_template_questions_map_swallows_outer_failure()",
"file_type": "code",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L2998",
+ "source_location": "L2830",
"id": "ui_test_mount_test_template_questions_map_swallows_outer_failure",
- "community": 185,
+ "community": 172,
"norm_label": "test_template_questions_map_swallows_outer_failure()"
},
- {
- "label": "test_build_staging_state_query_failure_returns_empty_rows()",
- "file_type": "code",
- "source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L3014",
- "id": "ui_test_mount_test_build_staging_state_query_failure_returns_empty_rows",
- "community": 186,
- "norm_label": "test_build_staging_state_query_failure_returns_empty_rows()"
- },
{
"label": "Tests for ``exlab_wizard.ui.mount`` helpers. The ``@ui.page(...)`` decorators i",
"file_type": "rationale",
@@ -5926,38 +5980,20 @@
"norm_label": "chainable no-op stand-in for a nicegui element."
},
{
- "label": "Records cards / labels and exposes a ``navigate.to`` spy.",
+ "label": "Duck-typed CreationController for the create-flow helpers.",
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
"source_location": "L100",
"id": "ui_test_mount_rationale_100",
- "community": 0,
- "norm_label": "records cards / labels and exposes a ``navigate.to`` spy."
- },
- {
- "label": "A ``ui`` whose element factories raise -- exercises render except paths.",
- "file_type": "rationale",
- "source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L118",
- "id": "ui_test_mount_rationale_118",
- "community": 0,
- "norm_label": "a ``ui`` whose element factories raise -- exercises render except paths."
- },
- {
- "label": "Duck-typed CreationController for the create-flow helpers.",
- "file_type": "rationale",
- "source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L130",
- "id": "ui_test_mount_rationale_130",
- "community": 49,
+ "community": 60,
"norm_label": "duck-typed creationcontroller for the create-flow helpers."
},
{
"label": "Live-LIMS branch with the keyring password absent -> not ready.",
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L185",
- "id": "ui_test_mount_rationale_185",
+ "source_location": "L155",
+ "id": "ui_test_mount_rationale_155",
"community": 2,
"norm_label": "live-lims branch with the keyring password absent -> not ready."
},
@@ -5965,8 +6001,8 @@
"label": "A nas-mode device whose ``nas.remote`` is unset blocks ready.",
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L213",
- "id": "ui_test_mount_rationale_213",
+ "source_location": "L183",
+ "id": "ui_test_mount_rationale_183",
"community": 2,
"norm_label": "a nas-mode device whose ``nas.remote`` is unset blocks ready."
},
@@ -5974,8 +6010,8 @@
"label": "A configured nas remote absent from rclone.conf blocks ready.",
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L223",
- "id": "ui_test_mount_rationale_223",
+ "source_location": "L193",
+ "id": "ui_test_mount_rationale_193",
"community": 2,
"norm_label": "a configured nas remote absent from rclone.conf blocks ready."
},
@@ -5983,8 +6019,8 @@
"label": "Regression: LIMS satisfied via the offline catalogue (no keyring password) m",
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L234",
- "id": "ui_test_mount_rationale_234",
+ "source_location": "L204",
+ "id": "ui_test_mount_rationale_204",
"community": 2,
"norm_label": "regression: lims satisfied via the offline catalogue (no keyring password) m"
},
@@ -5992,8 +6028,8 @@
"label": "Redesign \u00a73.1: the orchestrator pipeline is unconditional.",
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L271",
- "id": "ui_test_mount_rationale_271",
+ "source_location": "L241",
+ "id": "ui_test_mount_rationale_241",
"community": 2,
"norm_label": "redesign \u00a73.1: the orchestrator pipeline is unconditional."
},
@@ -6001,80 +6037,71 @@
"label": "Real Config with one nas-mode equipment. ``offline_catalogue`` swaps the li",
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L349",
- "id": "ui_test_mount_rationale_349",
+ "source_location": "L319",
+ "id": "ui_test_mount_rationale_319",
"community": 2,
"norm_label": "real config with one nas-mode equipment. ``offline_catalogue`` swaps the li"
},
- {
- "label": "Redesign \u00a73.1: orchestrator pipeline is always on, but a missing staging_roo",
- "file_type": "rationale",
- "source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L461",
- "id": "ui_test_mount_rationale_461",
- "community": 2,
- "norm_label": "redesign \u00a73.1: orchestrator pipeline is always on, but a missing staging_roo"
- },
{
"label": "Minimal stand-in for the NiceGUI ``ui`` object's navigate surface.",
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L508",
- "id": "ui_test_mount_rationale_508",
- "community": 49,
+ "source_location": "L438",
+ "id": "ui_test_mount_rationale_438",
+ "community": 60,
"norm_label": "minimal stand-in for the nicegui ``ui`` object's navigate surface."
},
{
"label": "A successful save persists, then hot-reloads the live components. The old b",
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L516",
- "id": "ui_test_mount_rationale_516",
- "community": 49,
+ "source_location": "L446",
+ "id": "ui_test_mount_rationale_446",
+ "community": 324,
"norm_label": "a successful save persists, then hot-reloads the live components. the old b"
},
{
"label": "Opt-in: a saved non-empty staging_root is created on save.",
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L593",
- "id": "ui_test_mount_rationale_593",
- "community": 49,
+ "source_location": "L523",
+ "id": "ui_test_mount_rationale_523",
+ "community": 60,
"norm_label": "opt-in: a saved non-empty staging_root is created on save."
},
{
"label": "Blank staging_root creates nothing -- the device is not a staging PC.",
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L608",
- "id": "ui_test_mount_rationale_608",
- "community": 49,
+ "source_location": "L538",
+ "id": "ui_test_mount_rationale_538",
+ "community": 60,
"norm_label": "blank staging_root creates nothing -- the device is not a staging pc."
},
{
"label": "An ensure_dir failure warns but keeps the persisted config.",
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L622",
- "id": "ui_test_mount_rationale_622",
- "community": 49,
+ "source_location": "L552",
+ "id": "ui_test_mount_rationale_552",
+ "community": 60,
"norm_label": "an ensure_dir failure warns but keeps the persisted config."
},
{
"label": "If the coordinator raises wholesale, the live config is still kept.",
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L649",
- "id": "ui_test_mount_rationale_649",
- "community": 2,
+ "source_location": "L579",
+ "id": "ui_test_mount_rationale_579",
+ "community": 386,
"norm_label": "if the coordinator raises wholesale, the live config is still kept."
},
{
"label": "Keyring-store stand-in that records the calls the handlers make.",
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L716",
- "id": "ui_test_mount_rationale_716",
+ "source_location": "L632",
+ "id": "ui_test_mount_rationale_632",
"community": 0,
"norm_label": "keyring-store stand-in that records the calls the handlers make."
},
@@ -6082,8 +6109,8 @@
"label": "A best-effort keyring build can fail; the handlers must not crash.",
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L755",
- "id": "ui_test_mount_rationale_755",
+ "source_location": "L671",
+ "id": "ui_test_mount_rationale_671",
"community": 2,
"norm_label": "a best-effort keyring build can fail; the handlers must not crash."
},
@@ -6091,17 +6118,17 @@
"label": "A raising keyring backend surfaces a toast, not an unhandled crash.",
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L764",
- "id": "ui_test_mount_rationale_764",
- "community": 298,
+ "source_location": "L680",
+ "id": "ui_test_mount_rationale_680",
+ "community": 385,
"norm_label": "a raising keyring backend surfaces a toast, not an unhandled crash."
},
{
"label": "Async ``list_projects`` stub for the live-LIMS picker path.",
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L940",
- "id": "ui_test_mount_rationale_940",
+ "source_location": "L856",
+ "id": "ui_test_mount_rationale_856",
"community": 0,
"norm_label": "async ``list_projects`` stub for the live-lims picker path."
},
@@ -6109,134 +6136,134 @@
"label": "Both empty -> empty string. One present -> single param.",
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L1186",
- "id": "ui_test_mount_rationale_1186",
- "community": 389,
+ "source_location": "L1102",
+ "id": "ui_test_mount_rationale_1102",
+ "community": 387,
"norm_label": "both empty -> empty string. one present -> single param."
},
{
"label": "Project names with spaces / special chars survive the round trip.",
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L1194",
- "id": "ui_test_mount_rationale_1194",
- "community": 390,
+ "source_location": "L1110",
+ "id": "ui_test_mount_rationale_1110",
+ "community": 80,
"norm_label": "project names with spaces / special chars survive the round trip."
},
{
"label": "Phase 4 adds optional file / q / density params to the same URL model.",
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L1206",
- "id": "ui_test_mount_rationale_1206",
- "community": 2,
+ "source_location": "L1122",
+ "id": "ui_test_mount_rationale_1122",
+ "community": 504,
"norm_label": "phase 4 adds optional file / q / density params to the same url model."
},
{
"label": "The Phase 4 params default empty and drop out of the URL entirely.",
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L1215",
- "id": "ui_test_mount_rationale_1215",
- "community": 418,
+ "source_location": "L1131",
+ "id": "ui_test_mount_rationale_1131",
+ "community": 429,
"norm_label": "the phase 4 params default empty and drop out of the url entirely."
},
{
"label": "``file`` keeps '/' readable but encodes spaces; ``q`` encodes everything.",
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L1220",
- "id": "ui_test_mount_rationale_1220",
- "community": 2,
+ "source_location": "L1136",
+ "id": "ui_test_mount_rationale_1136",
+ "community": 430,
"norm_label": "``file`` keeps '/' readable but encodes spaces; ``q`` encodes everything."
},
{
"label": "Equipment / project / run / received_equipment all classify correctly.",
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L1234",
- "id": "ui_test_mount_rationale_1234",
- "community": 350,
+ "source_location": "L1150",
+ "id": "ui_test_mount_rationale_1150",
+ "community": 80,
"norm_label": "equipment / project / run / received_equipment all classify correctly."
},
{
"label": "A node id whose root is not in the hierarchy returns ``(None, False)``. Gua",
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L1255",
- "id": "ui_test_mount_rationale_1255",
- "community": 349,
+ "source_location": "L1171",
+ "id": "ui_test_mount_rationale_1171",
+ "community": 350,
"norm_label": "a node id whose root is not in the hierarchy returns ``(none, false)``. gua"
},
{
"label": "An equipment node payload pulls fields from config.equipment[id].",
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L1277",
- "id": "ui_test_mount_rationale_1277",
- "community": 164,
+ "source_location": "L1193",
+ "id": "ui_test_mount_rationale_1193",
+ "community": 80,
"norm_label": "an equipment node payload pulls fields from config.equipment[id]."
},
{
"label": "Asking for a node that isn't in config.equipment returns ``{}``.",
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L1295",
- "id": "ui_test_mount_rationale_1295",
- "community": 164,
+ "source_location": "L1211",
+ "id": "ui_test_mount_rationale_1211",
+ "community": 80,
"norm_label": "asking for a node that isn't in config.equipment returns ``{}``."
},
{
"label": "The project payload counts Run_* and TestRun_* directories.",
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L1302",
- "id": "ui_test_mount_rationale_1302",
- "community": 164,
+ "source_location": "L1218",
+ "id": "ui_test_mount_rationale_1218",
+ "community": 80,
"norm_label": "the project payload counts run_* and testrun_* directories."
},
{
"label": "The run payload decodes creation.json into the metadata fields.",
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L1321",
- "id": "ui_test_mount_rationale_1321",
- "community": 164,
+ "source_location": "L1237",
+ "id": "ui_test_mount_rationale_1237",
+ "community": 80,
"norm_label": "the run payload decodes creation.json into the metadata fields."
},
{
"label": "A run dir without a creation.json yields {path, name}, not crash.",
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L1366",
- "id": "ui_test_mount_rationale_1366",
- "community": 242,
+ "source_location": "L1282",
+ "id": "ui_test_mount_rationale_1282",
+ "community": 33,
"norm_label": "a run dir without a creation.json yields {path, name}, not crash."
},
{
"label": "The selected-node fields end up on MainPageState for the renderer.",
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L1375",
- "id": "ui_test_mount_rationale_1375",
- "community": 103,
+ "source_location": "L1291",
+ "id": "ui_test_mount_rationale_1291",
+ "community": 131,
"norm_label": "the selected-node fields end up on mainpagestate for the renderer."
},
{
"label": "Phase 4 selection / search / density fields reach MainPageState.",
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L1391",
- "id": "ui_test_mount_rationale_1391",
- "community": 103,
+ "source_location": "L1307",
+ "id": "ui_test_mount_rationale_1307",
+ "community": 131,
"norm_label": "phase 4 selection / search / density fields reach mainpagestate."
},
{
"label": "A clicked path is resolved from the in-memory feed into a file payload.",
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L1412",
- "id": "ui_test_mount_rationale_1412",
+ "source_location": "L1328",
+ "id": "ui_test_mount_rationale_1328",
"community": 2,
"norm_label": "a clicked path is resolved from the in-memory feed into a file payload."
},
@@ -6244,251 +6271,215 @@
"label": "Empty path or a path matching no current entry resolves to None.",
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L1438",
- "id": "ui_test_mount_rationale_1438",
- "community": 269,
+ "source_location": "L1354",
+ "id": "ui_test_mount_rationale_1354",
+ "community": 125,
"norm_label": "empty path or a path matching no current entry resolves to none."
},
{
"label": "A tombstone (\"On NAS\") file has no on-disk copy, so size is None.",
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L1447",
- "id": "ui_test_mount_rationale_1447",
- "community": 17,
+ "source_location": "L1363",
+ "id": "ui_test_mount_rationale_1363",
+ "community": 14,
"norm_label": "a tombstone (\"on nas\") file has no on-disk copy, so size is none."
},
{
"label": "A directory match delegates to the one-level folder aggregate scan.",
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L1468",
- "id": "ui_test_mount_rationale_1468",
- "community": 62,
+ "source_location": "L1384",
+ "id": "ui_test_mount_rationale_1384",
+ "community": 33,
"norm_label": "a directory match delegates to the one-level folder aggregate scan."
},
{
"label": "A scan failure yields item_count=None + neutral rollup, no raise.",
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L1495",
- "id": "ui_test_mount_rationale_1495",
- "community": 2,
+ "source_location": "L1411",
+ "id": "ui_test_mount_rationale_1411",
+ "community": 107,
"norm_label": "a scan failure yields item_count=none + neutral rollup, no raise."
},
{
"label": "A force-refresh writes the fresh scan onto the per-tab feed payload and reco",
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L1523",
- "id": "ui_test_mount_rationale_1523",
- "community": 270,
+ "source_location": "L1439",
+ "id": "ui_test_mount_rationale_1439",
+ "community": 107,
"norm_label": "a force-refresh writes the fresh scan onto the per-tab feed payload and reco"
},
{
"label": "Nothing selected -> no scan, no write, no raise.",
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L1541",
- "id": "ui_test_mount_rationale_1541",
- "community": 298,
+ "source_location": "L1457",
+ "id": "ui_test_mount_rationale_1457",
+ "community": 14,
"norm_label": "nothing selected -> no scan, no write, no raise."
},
{
"label": "A failed scan keeps the existing payload and warns.",
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L1549",
- "id": "ui_test_mount_rationale_1549",
- "community": 77,
+ "source_location": "L1465",
+ "id": "ui_test_mount_rationale_1465",
+ "community": 50,
"norm_label": "a failed scan keeps the existing payload and warns."
},
{
"label": "An unknown sys.platform falls through to False so the toast can warn.",
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L1568",
- "id": "ui_test_mount_rationale_1568",
- "community": 103,
+ "source_location": "L1484",
+ "id": "ui_test_mount_rationale_1484",
+ "community": 107,
"norm_label": "an unknown sys.platform falls through to false so the toast can warn."
},
{
"label": "Linux dispatches to xdg-open via subprocess.Popen.",
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L1574",
- "id": "ui_test_mount_rationale_1574",
- "community": 103,
+ "source_location": "L1490",
+ "id": "ui_test_mount_rationale_1490",
+ "community": 131,
"norm_label": "linux dispatches to xdg-open via subprocess.popen."
},
{
"label": "macOS dispatches to the ``open`` command.",
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L1588",
- "id": "ui_test_mount_rationale_1588",
- "community": 299,
+ "source_location": "L1504",
+ "id": "ui_test_mount_rationale_1504",
+ "community": 50,
"norm_label": "macos dispatches to the ``open`` command."
},
{
"label": "A subprocess failure is caught and surfaces False so the caller can toast.",
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L1597",
- "id": "ui_test_mount_rationale_1597",
- "community": 269,
+ "source_location": "L1513",
+ "id": "ui_test_mount_rationale_1513",
+ "community": 125,
"norm_label": "a subprocess failure is caught and surfaces false so the caller can toast."
},
{
"label": "Minimal NiceGUI surface stand-in: clipboard + navigate.to + notify.",
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L1621",
- "id": "ui_test_mount_rationale_1621",
- "community": 17,
+ "source_location": "L1537",
+ "id": "ui_test_mount_rationale_1537",
+ "community": 14,
"norm_label": "minimal nicegui surface stand-in: clipboard + navigate.to + notify."
},
{
"label": "``open_in_os`` action calls the platform opener and reports success.",
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L1646",
- "id": "ui_test_mount_rationale_1646",
- "community": 17,
+ "source_location": "L1562",
+ "id": "ui_test_mount_rationale_1562",
+ "community": 107,
"norm_label": "``open_in_os`` action calls the platform opener and reports success."
},
{
"label": "When the opener returns False the action surfaces a negative toast.",
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L1658",
- "id": "ui_test_mount_rationale_1658",
- "community": 297,
+ "source_location": "L1574",
+ "id": "ui_test_mount_rationale_1574",
+ "community": 131,
"norm_label": "when the opener returns false the action surfaces a negative toast."
},
{
"label": "``copy_path`` writes the entry path to the NiceGUI clipboard.",
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L1667",
- "id": "ui_test_mount_rationale_1667",
- "community": 62,
+ "source_location": "L1583",
+ "id": "ui_test_mount_rationale_1583",
+ "community": 33,
"norm_label": "``copy_path`` writes the entry path to the nicegui clipboard."
},
{
"label": "An unknown action verb is logged + toasted without raising.",
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L1675",
- "id": "ui_test_mount_rationale_1675",
- "community": 162,
+ "source_location": "L1591",
+ "id": "ui_test_mount_rationale_1591",
+ "community": 125,
"norm_label": "an unknown action verb is logged + toasted without raising."
},
{
"label": "An entry with no path triggers the early-return toast.",
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L1682",
- "id": "ui_test_mount_rationale_1682",
- "community": 270,
+ "source_location": "L1598",
+ "id": "ui_test_mount_rationale_1598",
+ "community": 107,
"norm_label": "an entry with no path triggers the early-return toast."
},
- {
- "label": "Run any pending mount background tasks to completion.",
- "file_type": "rationale",
- "source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L1702",
- "id": "ui_test_mount_rationale_1702",
- "community": 77,
- "norm_label": "run any pending mount background tasks to completion."
- },
{
"label": "Force-sync routes to ``deps.nas_sync.enqueue`` with the run path.",
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L1717",
- "id": "ui_test_mount_rationale_1717",
- "community": 162,
+ "source_location": "L1618",
+ "id": "ui_test_mount_rationale_1618",
+ "community": 86,
"norm_label": "force-sync routes to ``deps.nas_sync.enqueue`` with the run path."
},
{
"label": "Force-sync without a wired NAS sync surfaces a negative toast (no raise).",
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L1730",
- "id": "ui_test_mount_rationale_1730",
- "community": 145,
+ "source_location": "L1631",
+ "id": "ui_test_mount_rationale_1631",
+ "community": 33,
"norm_label": "force-sync without a wired nas sync surfaces a negative toast (no raise)."
},
{
"label": "The early-exit when config is missing keeps the action a no-op.",
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L1737",
- "id": "ui_test_mount_rationale_1737",
- "community": 103,
+ "source_location": "L1638",
+ "id": "ui_test_mount_rationale_1638",
+ "community": 107,
"norm_label": "the early-exit when config is missing keeps the action a no-op."
},
{
"label": "``view_log`` dispatches to the dialog opener helper.",
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L1746",
- "id": "ui_test_mount_rationale_1746",
- "community": 145,
+ "source_location": "L1647",
+ "id": "ui_test_mount_rationale_1647",
+ "community": 33,
"norm_label": "``view_log`` dispatches to the dialog opener helper."
},
{
"label": "An unknown action verb is reported but doesn't raise.",
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L1756",
- "id": "ui_test_mount_rationale_1756",
- "community": 145,
+ "source_location": "L1657",
+ "id": "ui_test_mount_rationale_1657",
+ "community": 33,
"norm_label": "an unknown action verb is reported but doesn't raise."
},
{
"label": "``clear_verified`` deletes the run directory via the local helper.",
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L1765",
- "id": "ui_test_mount_rationale_1765",
- "community": 17,
+ "source_location": "L1666",
+ "id": "ui_test_mount_rationale_1666",
+ "community": 14,
"norm_label": "``clear_verified`` deletes the run directory via the local helper."
},
- {
- "label": "The bulk action clears every ``synced`` row and toasts the count.",
- "file_type": "rationale",
- "source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L1790",
- "id": "ui_test_mount_rationale_1790",
- "community": 17,
- "norm_label": "the bulk action clears every ``synced`` row and toasts the count."
- },
- {
- "label": "The early-exit when config is missing produces a toast, no task.",
- "file_type": "rationale",
- "source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L1817",
- "id": "ui_test_mount_rationale_1817",
- "community": 55,
- "norm_label": "the early-exit when config is missing produces a toast, no task."
- },
- {
- "label": "An exception from the clear sweep is caught + toasted.",
- "file_type": "rationale",
- "source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L1826",
- "id": "ui_test_mount_rationale_1826",
- "community": 162,
- "norm_label": "an exception from the clear sweep is caught + toasted."
- },
{
"label": "Lightweight ``app`` stand-in carrying ``storage.tab``.",
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L1850",
- "id": "ui_test_mount_rationale_1850",
+ "source_location": "L1699",
+ "id": "ui_test_mount_rationale_1699",
"community": 0,
"norm_label": "lightweight ``app`` stand-in carrying ``storage.tab``."
},
@@ -6496,224 +6487,224 @@
"label": "Without a selected node the feed isn't started and returns ``[]``.",
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L1861",
- "id": "ui_test_mount_rationale_1861",
- "community": 62,
+ "source_location": "L1710",
+ "id": "ui_test_mount_rationale_1710",
+ "community": 33,
"norm_label": "without a selected node the feed isn't started and returns ``[]``."
},
{
"label": "The first call mounts a FolderFeed + RefreshCoordinator on tab storage.",
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L1871",
- "id": "ui_test_mount_rationale_1871",
- "community": 77,
+ "source_location": "L1720",
+ "id": "ui_test_mount_rationale_1720",
+ "community": 50,
"norm_label": "the first call mounts a folderfeed + refreshcoordinator on tab storage."
},
{
"label": "When the feed's last_payload is set, entries are projected into FileListEntr",
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L1884",
- "id": "ui_test_mount_rationale_1884",
- "community": 78,
+ "source_location": "L1733",
+ "id": "ui_test_mount_rationale_1733",
+ "community": 107,
"norm_label": "when the feed's last_payload is set, entries are projected into filelistentr"
},
{
"label": "The fetch is a no-op when RefreshCoordinator just walked the tree.",
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L1926",
- "id": "ui_test_mount_rationale_1926",
- "community": 78,
+ "source_location": "L1775",
+ "id": "ui_test_mount_rationale_1775",
+ "community": 157,
"norm_label": "the fetch is a no-op when refreshcoordinator just walked the tree."
},
{
"label": "A successful scan records the refresh on the coordinator.",
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L1943",
- "id": "ui_test_mount_rationale_1943",
- "community": 163,
+ "source_location": "L1792",
+ "id": "ui_test_mount_rationale_1792",
+ "community": 106,
"norm_label": "a successful scan records the refresh on the coordinator."
},
{
"label": "A scan failure returns ``None`` so the feed keeps polling.",
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L1962",
- "id": "ui_test_mount_rationale_1962",
- "community": 165,
+ "source_location": "L1811",
+ "id": "ui_test_mount_rationale_1811",
+ "community": 173,
"norm_label": "a scan failure returns ``none`` so the feed keeps polling."
},
{
"label": "A run with no sync-queue job still renders a dialog without raising.",
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L1978",
- "id": "ui_test_mount_rationale_1978",
- "community": 165,
+ "source_location": "L1827",
+ "id": "ui_test_mount_rationale_1827",
+ "community": 173,
"norm_label": "a run with no sync-queue job still renders a dialog without raising."
},
{
"label": "A run with a sync-queue job renders its state without raising.",
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L1987",
- "id": "ui_test_mount_rationale_1987",
- "community": 62,
+ "source_location": "L1836",
+ "id": "ui_test_mount_rationale_1836",
+ "community": 158,
"norm_label": "a run with a sync-queue job renders its state without raising."
},
{
"label": "Any exception raised by a per-kind builder is logged + swallowed.",
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L2015",
- "id": "ui_test_mount_rationale_2015",
- "community": 55,
+ "source_location": "L1864",
+ "id": "ui_test_mount_rationale_1864",
+ "community": 69,
"norm_label": "any exception raised by a per-kind builder is logged + swallowed."
},
{
"label": "The relay payload pulls id+label from build_received_equipment_nodes.",
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L2028",
- "id": "ui_test_mount_rationale_2028",
- "community": 62,
+ "source_location": "L1877",
+ "id": "ui_test_mount_rationale_1877",
+ "community": 158,
"norm_label": "the relay payload pulls id+label from build_received_equipment_nodes."
},
{
"label": "An unknown relay id still produces a payload (best-effort label).",
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L2044",
- "id": "ui_test_mount_rationale_2044",
- "community": 77,
+ "source_location": "L1893",
+ "id": "ui_test_mount_rationale_1893",
+ "community": 158,
"norm_label": "an unknown relay id still produces a payload (best-effort label)."
},
{
"label": "A node id without an equipment/project split returns ``{}``.",
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L2051",
- "id": "ui_test_mount_rationale_2051",
- "community": 78,
+ "source_location": "L1900",
+ "id": "ui_test_mount_rationale_1900",
+ "community": 86,
"norm_label": "a node id without an equipment/project split returns ``{}``."
},
{
"label": "A missing parent dir returns 0 (no FS pre-check needed).",
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L2057",
- "id": "ui_test_mount_rationale_2057",
- "community": 78,
+ "source_location": "L1906",
+ "id": "ui_test_mount_rationale_1906",
+ "community": 86,
"norm_label": "a missing parent dir returns 0 (no fs pre-check needed)."
},
{
"label": "Only directory children whose names start with the prefix are counted.",
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L2062",
- "id": "ui_test_mount_rationale_2062",
- "community": 296,
+ "source_location": "L1911",
+ "id": "ui_test_mount_rationale_1911",
+ "community": 69,
"norm_label": "only directory children whose names start with the prefix are counted."
},
{
"label": "A corrupt creation.json yields {path, name}, never crashes.",
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L2071",
- "id": "ui_test_mount_rationale_2071",
- "community": 295,
+ "source_location": "L1920",
+ "id": "ui_test_mount_rationale_1920",
+ "community": 157,
"norm_label": "a corrupt creation.json yields {path, name}, never crashes."
},
{
"label": "When nas_sync.enqueue raises, the background task swallows + toasts.",
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L2084",
- "id": "ui_test_mount_rationale_2084",
- "community": 172,
+ "source_location": "L1933",
+ "id": "ui_test_mount_rationale_1933",
+ "community": 69,
"norm_label": "when nas_sync.enqueue raises, the background task swallows + toasts."
},
{
"label": "When the clear helper raises, the background task swallows + toasts.",
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L2100",
- "id": "ui_test_mount_rationale_2100",
- "community": 172,
+ "source_location": "L1949",
+ "id": "ui_test_mount_rationale_1949",
+ "community": 106,
"norm_label": "when the clear helper raises, the background task swallows + toasts."
},
{
"label": "The 0-file path reports ``already cleared`` rather than ``cleared N``.",
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L2116",
- "id": "ui_test_mount_rationale_2116",
- "community": 163,
+ "source_location": "L1965",
+ "id": "ui_test_mount_rationale_1965",
+ "community": 106,
"norm_label": "the 0-file path reports ``already cleared`` rather than ``cleared n``."
},
{
"label": "A clipboard write failure is caught and reported as a negative toast.",
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L2129",
- "id": "ui_test_mount_rationale_2129",
- "community": 165,
+ "source_location": "L1978",
+ "id": "ui_test_mount_rationale_1978",
+ "community": 173,
"norm_label": "a clipboard write failure is caught and reported as a negative toast."
},
{
"label": "A fake ``ui`` whose factories build recording stand-ins. Unlike ``_UiSpy``",
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L2166",
- "id": "ui_test_mount_rationale_2166",
- "community": 0,
+ "source_location": "L2015",
+ "id": "ui_test_mount_rationale_2015",
+ "community": 69,
"norm_label": "a fake ``ui`` whose factories build recording stand-ins. unlike ``_uispy``"
},
{
"label": "No probe wired -> a failure result rather than a crash.",
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L2210",
- "id": "ui_test_mount_rationale_2210",
- "community": 55,
+ "source_location": "L2059",
+ "id": "ui_test_mount_rationale_2059",
+ "community": 69,
"norm_label": "no probe wired -> a failure result rather than a crash."
},
{
"label": "A reachable probe maps ok/latency into a Connected result.",
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L2222",
- "id": "ui_test_mount_rationale_2222",
- "community": 62,
+ "source_location": "L2071",
+ "id": "ui_test_mount_rationale_2071",
+ "community": 157,
"norm_label": "a reachable probe maps ok/latency into a connected result."
},
{
"label": "An async probe is awaited before its dict is mapped.",
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L2249",
- "id": "ui_test_mount_rationale_2249",
- "community": 78,
+ "source_location": "L2098",
+ "id": "ui_test_mount_rationale_2098",
+ "community": 180,
"norm_label": "an async probe is awaited before its dict is mapped."
},
{
"label": "A half-wired install names its first-failing gate as the next action.",
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L2279",
- "id": "ui_test_mount_rationale_2279",
- "community": 172,
+ "source_location": "L2128",
+ "id": "ui_test_mount_rationale_2128",
+ "community": 69,
"norm_label": "a half-wired install names its first-failing gate as the next action."
},
{
"label": "A fully-satisfied install has no outstanding next action.",
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L2286",
- "id": "ui_test_mount_rationale_2286",
+ "source_location": "L2135",
+ "id": "ui_test_mount_rationale_2135",
"community": 325,
"norm_label": "a fully-satisfied install has no outstanding next action."
},
@@ -6721,316 +6712,325 @@
"label": "No sync-state writer wired -> negative toast, no task spawned.",
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L2310",
- "id": "ui_test_mount_rationale_2310",
- "community": 163,
+ "source_location": "L2159",
+ "id": "ui_test_mount_rationale_2159",
+ "community": 106,
"norm_label": "no sync-state writer wired -> negative toast, no task spawned."
},
{
"label": "A path with no enclosing run root surfaces a negative toast.",
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L2319",
- "id": "ui_test_mount_rationale_2319",
- "community": 326,
+ "source_location": "L2168",
+ "id": "ui_test_mount_rationale_2168",
+ "community": 14,
"norm_label": "a path with no enclosing run root surfaces a negative toast."
},
{
"label": "A resolvable file flips keep_local via the writer and fires on_done.",
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L2330",
- "id": "ui_test_mount_rationale_2330",
- "community": 26,
+ "source_location": "L2179",
+ "id": "ui_test_mount_rationale_2179",
+ "community": 23,
"norm_label": "a resolvable file flips keep_local via the writer and fires on_done."
},
{
"label": "The ``keep_local`` action routes to ``_toggle_keep_local``.",
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L2385",
- "id": "ui_test_mount_rationale_2385",
- "community": 17,
+ "source_location": "L2234",
+ "id": "ui_test_mount_rationale_2234",
+ "community": 14,
"norm_label": "the ``keep_local`` action routes to ``_toggle_keep_local``."
},
{
"label": "On win32 the helper calls ``os.startfile`` and reports success.",
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L2402",
- "id": "ui_test_mount_rationale_2402",
- "community": 55,
+ "source_location": "L2251",
+ "id": "ui_test_mount_rationale_2251",
+ "community": 170,
"norm_label": "on win32 the helper calls ``os.startfile`` and reports success."
},
{
"label": "No controller -> a negative toast and no dialog open.",
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L2436",
- "id": "ui_test_mount_rationale_2436",
- "community": 243,
+ "source_location": "L2285",
+ "id": "ui_test_mount_rationale_2285",
+ "community": 180,
"norm_label": "no controller -> a negative toast and no dialog open."
},
{
"label": "A wired controller builds the modal and opens it (no raise).",
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L2442",
- "id": "ui_test_mount_rationale_2442",
- "community": 243,
+ "source_location": "L2291",
+ "id": "ui_test_mount_rationale_2291",
+ "community": 180,
"norm_label": "a wired controller builds the modal and opens it (no raise)."
},
{
"label": "The details dialog renders the session state plus pending/error lines.",
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L2463",
- "id": "ui_test_mount_rationale_2463",
- "community": 327,
+ "source_location": "L2312",
+ "id": "ui_test_mount_rationale_2312",
+ "community": 300,
"norm_label": "the details dialog renders the session state plus pending/error lines."
},
{
"label": "A session not awaiting input cannot be resumed -> negative toast.",
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L2487",
- "id": "ui_test_mount_rationale_2487",
- "community": 17,
+ "source_location": "L2336",
+ "id": "ui_test_mount_rationale_2336",
+ "community": 14,
"norm_label": "a session not awaiting input cannot be resumed -> negative toast."
},
{
"label": "A suspended session re-opens its escalation dialog with parked fields.",
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L2496",
- "id": "ui_test_mount_rationale_2496",
- "community": 94,
+ "source_location": "L2345",
+ "id": "ui_test_mount_rationale_2345",
+ "community": 171,
"norm_label": "a suspended session re-opens its escalation dialog with parked fields."
},
{
"label": "The dialog's Submit handler calls ``controller.resume`` in the background.",
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L2525",
- "id": "ui_test_mount_rationale_2525",
- "community": 26,
+ "source_location": "L2374",
+ "id": "ui_test_mount_rationale_2374",
+ "community": 23,
"norm_label": "the dialog's submit handler calls ``controller.resume`` in the background."
},
{
"label": "The dialog's Cancel handler routes through ``_cancel_session``.",
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L2557",
- "id": "ui_test_mount_rationale_2557",
- "community": 125,
+ "source_location": "L2406",
+ "id": "ui_test_mount_rationale_2406",
+ "community": 23,
"norm_label": "the dialog's cancel handler routes through ``_cancel_session``."
},
{
"label": "The \u00a79.4 dialog's Discard button cancels with discard_files=True.",
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L2597",
- "id": "ui_test_mount_rationale_2597",
- "community": 55,
+ "source_location": "L2446",
+ "id": "ui_test_mount_rationale_2446",
+ "community": 170,
"norm_label": "the \u00a79.4 dialog's discard button cancels with discard_files=true."
},
{
"label": "The Keep-files button cancels with discard_files=False.",
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L2616",
- "id": "ui_test_mount_rationale_2616",
- "community": 26,
+ "source_location": "L2465",
+ "id": "ui_test_mount_rationale_2465",
+ "community": 171,
"norm_label": "the keep-files button cancels with discard_files=false."
},
{
"label": "A cancel failure is caught and toasted, not raised.",
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L2633",
- "id": "ui_test_mount_rationale_2633",
- "community": 185,
+ "source_location": "L2482",
+ "id": "ui_test_mount_rationale_2482",
+ "community": 172,
"norm_label": "a cancel failure is caught and toasted, not raised."
},
{
"label": "The Back button closes the dialog without cancelling.",
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L2649",
- "id": "ui_test_mount_rationale_2649",
- "community": 186,
+ "source_location": "L2498",
+ "id": "ui_test_mount_rationale_2498",
+ "community": 181,
"norm_label": "the back button closes the dialog without cancelling."
},
{
"label": "With a job row, the dialog renders each populated field line.",
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L2663",
- "id": "ui_test_mount_rationale_2663",
- "community": 94,
+ "source_location": "L2512",
+ "id": "ui_test_mount_rationale_2512",
+ "community": 171,
"norm_label": "with a job row, the dialog renders each populated field line."
},
{
"label": "Without a job row the dialog shows the 'no sync job' line.",
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L2691",
- "id": "ui_test_mount_rationale_2691",
- "community": 94,
+ "source_location": "L2540",
+ "id": "ui_test_mount_rationale_2540",
+ "community": 54,
"norm_label": "without a job row the dialog shows the 'no sync job' line."
},
{
"label": "No progress view on the wizard state -> the consumer returns at once.",
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L2707",
- "id": "ui_test_mount_rationale_2707",
- "community": 26,
+ "source_location": "L2556",
+ "id": "ui_test_mount_rationale_2556",
+ "community": 23,
"norm_label": "no progress view on the wizard state -> the consumer returns at once."
},
{
"label": "An input_required frame opens the dialog; a done frame closes it.",
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L2718",
- "id": "ui_test_mount_rationale_2718",
- "community": 26,
+ "source_location": "L2567",
+ "id": "ui_test_mount_rationale_2567",
+ "community": 23,
"norm_label": "an input_required frame opens the dialog; a done frame closes it."
},
{
"label": "A subscribe error is logged, not raised.",
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L2755",
- "id": "ui_test_mount_rationale_2755",
- "community": 125,
+ "source_location": "L2604",
+ "id": "ui_test_mount_rationale_2604",
+ "community": 23,
"norm_label": "a subscribe error is logged, not raised."
},
{
"label": "Submitting a run with no template selected surfaces a negative toast.",
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L2795",
- "id": "ui_test_mount_rationale_2795",
- "community": 55,
+ "source_location": "L2644",
+ "id": "ui_test_mount_rationale_2644",
+ "community": 170,
"norm_label": "submitting a run with no template selected surfaces a negative toast."
},
{
"label": "``_render_run_wizard`` wires templates/equipment into the run-wizard page.",
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L2806",
- "id": "ui_test_mount_rationale_2806",
- "community": 185,
+ "source_location": "L2655",
+ "id": "ui_test_mount_rationale_2655",
+ "community": 172,
"norm_label": "``_render_run_wizard`` wires templates/equipment into the run-wizard page."
},
{
"label": "Non-EquipmentNode keys in the hierarchy are ignored; unknown root -> treated",
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L2835",
- "id": "ui_test_mount_rationale_2835",
- "community": 94,
+ "source_location": "L2684",
+ "id": "ui_test_mount_rationale_2684",
+ "community": 54,
"norm_label": "non-equipmentnode keys in the hierarchy are ignored; unknown root -> treated"
},
{
"label": "The received_equipment kind routes to the relay-equipment builder.",
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L2844",
- "id": "ui_test_mount_rationale_2844",
- "community": 186,
+ "source_location": "L2693",
+ "id": "ui_test_mount_rationale_2693",
+ "community": 181,
"norm_label": "the received_equipment kind routes to the relay-equipment builder."
},
{
"label": "A matching equipment id projects its config fields into the payload.",
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L2860",
- "id": "ui_test_mount_rationale_2860",
- "community": 94,
+ "source_location": "L2709",
+ "id": "ui_test_mount_rationale_2709",
+ "community": 54,
"norm_label": "a matching equipment id projects its config fields into the payload."
},
{
"label": "A schema_version mismatch (read_catalogue -> None) yields ``[]``.",
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L2882",
- "id": "ui_test_mount_rationale_2882",
- "community": 242,
+ "source_location": "L2731",
+ "id": "ui_test_mount_rationale_2731",
+ "community": 54,
"norm_label": "a schema_version mismatch (read_catalogue -> none) yields ``[]``."
},
{
"label": "A raising ``app.storage.tab`` degrades to an in-memory feed (no tab).",
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L2894",
- "id": "ui_test_mount_rationale_2894",
- "community": 77,
+ "source_location": "L2743",
+ "id": "ui_test_mount_rationale_2743",
+ "community": 50,
"norm_label": "a raising ``app.storage.tab`` degrades to an in-memory feed (no tab)."
},
{
"label": "A raising evaluator degrades to 'not ready' (banner stays up).",
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L2916",
- "id": "ui_test_mount_rationale_2916",
- "community": 26,
+ "source_location": "L2765",
+ "id": "ui_test_mount_rationale_2765",
+ "community": 50,
"norm_label": "a raising evaluator degrades to 'not ready' (banner stays up)."
},
{
"label": "An equipment id absent from config yields ``{}``.",
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L2929",
- "id": "ui_test_mount_rationale_2929",
- "community": 125,
+ "source_location": "L2778",
+ "id": "ui_test_mount_rationale_2778",
+ "community": 54,
"norm_label": "an equipment id absent from config yields ``{}``."
},
- {
- "label": "With no SYNCED rows the sweep clears nothing and toasts 'none'.",
- "file_type": "rationale",
- "source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L2937",
- "id": "ui_test_mount_rationale_2937",
- "community": 17,
- "norm_label": "with no synced rows the sweep clears nothing and toasts 'none'."
- },
{
"label": "A run root that can't yield a relative path surfaces a negative toast.",
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L2954",
- "id": "ui_test_mount_rationale_2954",
- "community": 125,
+ "source_location": "L2786",
+ "id": "ui_test_mount_rationale_2786",
+ "community": 54,
"norm_label": "a run root that can't yield a relative path surfaces a negative toast."
},
{
"label": "A failing ``controller.resume`` is caught + toasted, not raised.",
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L2972",
- "id": "ui_test_mount_rationale_2972",
- "community": 26,
+ "source_location": "L2804",
+ "id": "ui_test_mount_rationale_2804",
+ "community": 23,
"norm_label": "a failing ``controller.resume`` is caught + toasted, not raised."
},
{
"label": "An import/engine failure in the outer try yields ``{}``.",
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L3001",
- "id": "ui_test_mount_rationale_3001",
- "community": 185,
+ "source_location": "L2833",
+ "id": "ui_test_mount_rationale_2833",
+ "community": 172,
"norm_label": "an import/engine failure in the outer try yields ``{}``."
},
{
- "label": "A staging-query failure degrades to an empty dock, not a crash.",
+ "label": "# NOTE: _build_staging_state was removed when the /staging route was hidden",
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L3017",
- "id": "ui_test_mount_rationale_3017",
- "community": 186,
- "norm_label": "a staging-query failure degrades to an empty dock, not a crash."
+ "source_location": "L425",
+ "id": "ui_test_mount_rationale_425",
+ "community": 2,
+ "norm_label": "# note: _build_staging_state was removed when the /staging route was hidden"
+ },
+ {
+ "label": "# NOTE: _render_unavailable was removed with the /staging route (its only",
+ "file_type": "rationale",
+ "source_file": "tests/unit/ui/test_mount.py",
+ "source_location": "L596",
+ "id": "ui_test_mount_rationale_596",
+ "community": 2,
+ "norm_label": "# note: _render_unavailable was removed with the /staging route (its only"
+ },
+ {
+ "label": "# NOTE: _bulk_clear_verified was removed with the footer \"Clear verified runs\"",
+ "file_type": "rationale",
+ "source_file": "tests/unit/ui/test_mount.py",
+ "source_location": "L1683",
+ "id": "ui_test_mount_rationale_1683",
+ "community": 2,
+ "norm_label": "# note: _bulk_clear_verified was removed with the footer \"clear verified runs\""
},
{
"label": "test_settings_page.py",
@@ -7038,88 +7038,97 @@
"source_file": "tests/unit/ui/test_settings_page.py",
"source_location": "L1",
"id": "tests_unit_ui_test_settings_page_py",
- "community": 219,
+ "community": 178,
"norm_label": "test_settings_page.py"
},
{
"label": "test_build_draft_from_none_yields_defaults()",
"file_type": "code",
"source_file": "tests/unit/ui/test_settings_page.py",
- "source_location": "L27",
+ "source_location": "L29",
"id": "ui_test_settings_page_test_build_draft_from_none_yields_defaults",
- "community": 219,
+ "community": 178,
"norm_label": "test_build_draft_from_none_yields_defaults()"
},
{
"label": "test_build_draft_copies_existing_config()",
"file_type": "code",
"source_file": "tests/unit/ui/test_settings_page.py",
- "source_location": "L36",
+ "source_location": "L38",
"id": "ui_test_settings_page_test_build_draft_copies_existing_config",
- "community": 219,
+ "community": 178,
"norm_label": "test_build_draft_copies_existing_config()"
},
{
"label": "test_draft_edits_do_not_leak_into_source()",
"file_type": "code",
"source_file": "tests/unit/ui/test_settings_page.py",
- "source_location": "L49",
+ "source_location": "L51",
"id": "ui_test_settings_page_test_draft_edits_do_not_leak_into_source",
- "community": 219,
+ "community": 178,
"norm_label": "test_draft_edits_do_not_leak_into_source()"
},
{
"label": "test_finalize_coerces_widget_floats_back_to_int()",
"file_type": "code",
"source_file": "tests/unit/ui/test_settings_page.py",
- "source_location": "L60",
+ "source_location": "L62",
"id": "ui_test_settings_page_test_finalize_coerces_widget_floats_back_to_int",
- "community": 219,
+ "community": 178,
"norm_label": "test_finalize_coerces_widget_floats_back_to_int()"
},
{
"label": "test_finalize_round_trips_edited_scalar_fields()",
"file_type": "code",
"source_file": "tests/unit/ui/test_settings_page.py",
- "source_location": "L73",
+ "source_location": "L75",
"id": "ui_test_settings_page_test_finalize_round_trips_edited_scalar_fields",
- "community": 219,
+ "community": 178,
"norm_label": "test_finalize_round_trips_edited_scalar_fields()"
},
{
"label": "test_finalize_allows_blank_staging_root()",
"file_type": "code",
"source_file": "tests/unit/ui/test_settings_page.py",
- "source_location": "L90",
+ "source_location": "L92",
"id": "ui_test_settings_page_test_finalize_allows_blank_staging_root",
- "community": 219,
+ "community": 178,
"norm_label": "test_finalize_allows_blank_staging_root()"
},
+ {
+ "label": "test_orchestrator_section_is_titled_workstation()",
+ "file_type": "code",
+ "source_file": "tests/unit/ui/test_settings_page.py",
+ "source_location": "L106",
+ "id": "ui_test_settings_page_test_orchestrator_section_is_titled_workstation",
+ "community": 178,
+ "norm_label": "test_orchestrator_section_is_titled_workstation()"
+ },
{
"label": "test_finalize_raises_on_invalid_edit()",
"file_type": "code",
"source_file": "tests/unit/ui/test_settings_page.py",
- "source_location": "L104",
+ "source_location": "L117",
"id": "ui_test_settings_page_test_finalize_raises_on_invalid_edit",
- "community": 219,
+ "community": 178,
"norm_label": "test_finalize_raises_on_invalid_edit()"
},
{
"label": "test_lims_credential_initial_state_not_set_when_keyring_empty()",
"file_type": "code",
"source_file": "tests/unit/ui/test_settings_page.py",
- "source_location": "L113",
+ "source_location": "L126",
"id": "ui_test_settings_page_test_lims_credential_initial_state_not_set_when_keyring_empty",
- "community": 360,
+ "community": 310,
"norm_label": "test_lims_credential_initial_state_not_set_when_keyring_empty()"
},
{
"label": "test_lims_credential_initial_state_set_when_keyring_has_password()",
"file_type": "code",
"source_file": "tests/unit/ui/test_settings_page.py",
- "source_location": "L118",
+ "source_location": "L131",
"id": "ui_test_settings_page_test_lims_credential_initial_state_set_when_keyring_has_password",
- "community": 360,
+ "community": 310,
"norm_label": "test_lims_credential_initial_state_set_when_keyring_has_password()"
},
{
@@ -7128,25 +7137,34 @@
"source_file": "tests/unit/ui/test_settings_page.py",
"source_location": "L1",
"id": "ui_test_settings_page_rationale_1",
- "community": 219,
+ "community": 178,
"norm_label": "tests for the settings-page config binding helpers. ``render_settings_page`` it"
},
{
"label": "staging_root is opt-in: a blank value finalizes cleanly (the field is option",
"file_type": "rationale",
"source_file": "tests/unit/ui/test_settings_page.py",
- "source_location": "L91",
- "id": "ui_test_settings_page_rationale_91",
- "community": 219,
+ "source_location": "L93",
+ "id": "ui_test_settings_page_rationale_93",
+ "community": 178,
"norm_label": "staging_root is opt-in: a blank value finalizes cleanly (the field is option"
},
+ {
+ "label": "Orchestrator/staging is hidden at the UI layer (see docs/superpowers/specs/2",
+ "file_type": "rationale",
+ "source_file": "tests/unit/ui/test_settings_page.py",
+ "source_location": "L107",
+ "id": "ui_test_settings_page_rationale_107",
+ "community": 178,
+ "norm_label": "orchestrator/staging is hidden at the ui layer (see docs/superpowers/specs/2"
+ },
{
"label": "A password already in the OS keyring opens the row in *Set*.",
"file_type": "rationale",
"source_file": "tests/unit/ui/test_settings_page.py",
- "source_location": "L119",
- "id": "ui_test_settings_page_rationale_119",
- "community": 360,
+ "source_location": "L132",
+ "id": "ui_test_settings_page_rationale_132",
+ "community": 310,
"norm_label": "a password already in the os keyring opens the row in *set*."
},
{
@@ -7155,7 +7173,7 @@
"source_file": "tests/unit/ui/__init__.py",
"source_location": "L1",
"id": "tests_unit_ui_init_py",
- "community": 419,
+ "community": 456,
"norm_label": "__init__.py"
},
{
@@ -7164,7 +7182,7 @@
"source_file": "src/exlab_wizard/ui/__init__.py",
"source_location": "L1",
"id": "ui_init_rationale_1",
- "community": 419,
+ "community": 456,
"norm_label": "ui package re-exports (backend spec \u00a74.3, frontend spec \u00a72). public surface: *"
},
{
@@ -7173,97 +7191,106 @@
"source_file": "tests/unit/ui/test_wizard_equipment.py",
"source_location": "L1",
"id": "tests_unit_ui_test_wizard_equipment_py",
- "community": 71,
+ "community": 242,
"norm_label": "test_wizard_equipment.py"
},
{
- "label": "test_wizard_has_four_steps_without_signal_step()",
+ "label": "test_wizard_has_three_steps_with_sync_mode_hidden()",
"file_type": "code",
"source_file": "tests/unit/ui/test_wizard_equipment.py",
"source_location": "L17",
- "id": "ui_test_wizard_equipment_test_wizard_has_four_steps_without_signal_step",
- "community": 71,
- "norm_label": "test_wizard_has_four_steps_without_signal_step()"
+ "id": "ui_test_wizard_equipment_test_wizard_has_three_steps_with_sync_mode_hidden",
+ "community": 242,
+ "norm_label": "test_wizard_has_three_steps_with_sync_mode_hidden()"
+ },
+ {
+ "label": "test_assembled_equipment_defaults_to_nas_sync_mode()",
+ "file_type": "code",
+ "source_file": "tests/unit/ui/test_wizard_equipment.py",
+ "source_location": "L28",
+ "id": "ui_test_wizard_equipment_test_assembled_equipment_defaults_to_nas_sync_mode",
+ "community": 260,
+ "norm_label": "test_assembled_equipment_defaults_to_nas_sync_mode()"
},
{
"label": "_state_filled_for()",
"file_type": "code",
"source_file": "tests/unit/ui/test_wizard_equipment.py",
- "source_location": "L24",
+ "source_location": "L41",
"id": "ui_test_wizard_equipment_state_filled_for",
- "community": 71,
+ "community": 242,
"norm_label": "_state_filled_for()"
},
{
"label": "test_can_advance_identity_requires_id_and_label()",
"file_type": "code",
"source_file": "tests/unit/ui/test_wizard_equipment.py",
- "source_location": "L34",
+ "source_location": "L51",
"id": "ui_test_wizard_equipment_test_can_advance_identity_requires_id_and_label",
- "community": 71,
+ "community": 260,
"norm_label": "test_can_advance_identity_requires_id_and_label()"
},
{
"label": "test_can_advance_identity_rejects_invalid_id()",
"file_type": "code",
"source_file": "tests/unit/ui/test_wizard_equipment.py",
- "source_location": "L43",
+ "source_location": "L60",
"id": "ui_test_wizard_equipment_test_can_advance_identity_rejects_invalid_id",
- "community": 71,
+ "community": 260,
"norm_label": "test_can_advance_identity_rejects_invalid_id()"
},
{
"label": "test_can_advance_paths_requires_both_roots()",
"file_type": "code",
"source_file": "tests/unit/ui/test_wizard_equipment.py",
- "source_location": "L50",
+ "source_location": "L67",
"id": "ui_test_wizard_equipment_test_can_advance_paths_requires_both_roots",
- "community": 71,
+ "community": 242,
"norm_label": "test_can_advance_paths_requires_both_roots()"
},
{
"label": "test_can_advance_sync_mode_nas_needs_no_transport_fields()",
"file_type": "code",
"source_file": "tests/unit/ui/test_wizard_equipment.py",
- "source_location": "L57",
+ "source_location": "L74",
"id": "ui_test_wizard_equipment_test_can_advance_sync_mode_nas_needs_no_transport_fields",
- "community": 71,
+ "community": 242,
"norm_label": "test_can_advance_sync_mode_nas_needs_no_transport_fields()"
},
{
"label": "test_can_advance_sync_mode_stage_needs_no_per_equipment_fields()",
"file_type": "code",
"source_file": "tests/unit/ui/test_wizard_equipment.py",
- "source_location": "L64",
+ "source_location": "L81",
"id": "ui_test_wizard_equipment_test_can_advance_sync_mode_stage_needs_no_per_equipment_fields",
- "community": 71,
+ "community": 242,
"norm_label": "test_can_advance_sync_mode_stage_needs_no_per_equipment_fields()"
},
{
"label": "test_assemble_round_trips_to_valid_equipment_config_nas()",
"file_type": "code",
"source_file": "tests/unit/ui/test_wizard_equipment.py",
- "source_location": "L73",
+ "source_location": "L90",
"id": "ui_test_wizard_equipment_test_assemble_round_trips_to_valid_equipment_config_nas",
- "community": 71,
+ "community": 242,
"norm_label": "test_assemble_round_trips_to_valid_equipment_config_nas()"
},
{
"label": "test_assemble_round_trips_to_valid_equipment_config_stage()",
"file_type": "code",
"source_file": "tests/unit/ui/test_wizard_equipment.py",
- "source_location": "L82",
+ "source_location": "L99",
"id": "ui_test_wizard_equipment_test_assemble_round_trips_to_valid_equipment_config_stage",
- "community": 71,
+ "community": 242,
"norm_label": "test_assemble_round_trips_to_valid_equipment_config_stage()"
},
{
"label": "test_assemble_rejects_invalid_input()",
"file_type": "code",
"source_file": "tests/unit/ui/test_wizard_equipment.py",
- "source_location": "L93",
+ "source_location": "L110",
"id": "ui_test_wizard_equipment_test_assemble_rejects_invalid_input",
- "community": 71,
+ "community": 242,
"norm_label": "test_assemble_rejects_invalid_input()"
},
{
@@ -7272,17 +7299,26 @@
"source_file": "tests/unit/ui/test_wizard_equipment.py",
"source_location": "L1",
"id": "ui_test_wizard_equipment_rationale_1",
- "community": 71,
+ "community": 242,
"norm_label": "unit tests for the add-equipment wizard. redesign \u00a76."
},
{
- "label": "The completeness-signal step is removed by the quiescence redesign.",
+ "label": "The sync-mode step is hidden (orchestrator/staging hidden \u2014 see docs/superpo",
"file_type": "rationale",
"source_file": "tests/unit/ui/test_wizard_equipment.py",
"source_location": "L18",
"id": "ui_test_wizard_equipment_rationale_18",
- "community": 71,
- "norm_label": "the completeness-signal step is removed by the quiescence redesign."
+ "community": 242,
+ "norm_label": "the sync-mode step is hidden (orchestrator/staging hidden \u2014 see docs/superpo"
+ },
+ {
+ "label": "With the sync-mode step hidden, every wizard-built equipment is nas-mode.",
+ "file_type": "rationale",
+ "source_file": "tests/unit/ui/test_wizard_equipment.py",
+ "source_location": "L29",
+ "id": "ui_test_wizard_equipment_rationale_29",
+ "community": 260,
+ "norm_label": "with the sync-mode step hidden, every wizard-built equipment is nas-mode."
},
{
"label": "test_staging_page.py",
@@ -7297,7 +7333,7 @@
"label": "test_staging_dock_height_is_120_px()",
"file_type": "code",
"source_file": "tests/unit/ui/test_staging_page.py",
- "source_location": "L29",
+ "source_location": "L40",
"id": "ui_test_staging_page_test_staging_dock_height_is_120_px",
"community": 41,
"norm_label": "test_staging_dock_height_is_120_px()"
@@ -7306,7 +7342,7 @@
"label": "test_staging_table_columns_match_brief_order()",
"file_type": "code",
"source_file": "tests/unit/ui/test_staging_page.py",
- "source_location": "L33",
+ "source_location": "L44",
"id": "ui_test_staging_page_test_staging_table_columns_match_brief_order",
"community": 41,
"norm_label": "test_staging_table_columns_match_brief_order()"
@@ -7315,7 +7351,7 @@
"label": "test_format_bytes_handles_negative_values()",
"file_type": "code",
"source_file": "tests/unit/ui/test_staging_page.py",
- "source_location": "L50",
+ "source_location": "L61",
"id": "ui_test_staging_page_test_format_bytes_handles_negative_values",
"community": 41,
"norm_label": "test_format_bytes_handles_negative_values()"
@@ -7324,7 +7360,7 @@
"label": "test_format_bytes_renders_sub_kib_in_bytes()",
"file_type": "code",
"source_file": "tests/unit/ui/test_staging_page.py",
- "source_location": "L54",
+ "source_location": "L65",
"id": "ui_test_staging_page_test_format_bytes_renders_sub_kib_in_bytes",
"community": 41,
"norm_label": "test_format_bytes_renders_sub_kib_in_bytes()"
@@ -7333,7 +7369,7 @@
"label": "test_format_bytes_renders_kib_with_one_decimal()",
"file_type": "code",
"source_file": "tests/unit/ui/test_staging_page.py",
- "source_location": "L59",
+ "source_location": "L70",
"id": "ui_test_staging_page_test_format_bytes_renders_kib_with_one_decimal",
"community": 41,
"norm_label": "test_format_bytes_renders_kib_with_one_decimal()"
@@ -7342,7 +7378,7 @@
"label": "test_format_bytes_renders_mib_and_gib()",
"file_type": "code",
"source_file": "tests/unit/ui/test_staging_page.py",
- "source_location": "L64",
+ "source_location": "L75",
"id": "ui_test_staging_page_test_format_bytes_renders_mib_and_gib",
"community": 41,
"norm_label": "test_format_bytes_renders_mib_and_gib()"
@@ -7351,7 +7387,7 @@
"label": "test_format_elapsed_seconds_only()",
"file_type": "code",
"source_file": "tests/unit/ui/test_staging_page.py",
- "source_location": "L74",
+ "source_location": "L85",
"id": "ui_test_staging_page_test_format_elapsed_seconds_only",
"community": 41,
"norm_label": "test_format_elapsed_seconds_only()"
@@ -7360,7 +7396,7 @@
"label": "test_format_elapsed_minutes_and_seconds()",
"file_type": "code",
"source_file": "tests/unit/ui/test_staging_page.py",
- "source_location": "L79",
+ "source_location": "L90",
"id": "ui_test_staging_page_test_format_elapsed_minutes_and_seconds",
"community": 41,
"norm_label": "test_format_elapsed_minutes_and_seconds()"
@@ -7369,7 +7405,7 @@
"label": "test_format_elapsed_hours_and_minutes()",
"file_type": "code",
"source_file": "tests/unit/ui/test_staging_page.py",
- "source_location": "L83",
+ "source_location": "L94",
"id": "ui_test_staging_page_test_format_elapsed_hours_and_minutes",
"community": 41,
"norm_label": "test_format_elapsed_hours_and_minutes()"
@@ -7378,7 +7414,7 @@
"label": "test_format_elapsed_days_and_hours()",
"file_type": "code",
"source_file": "tests/unit/ui/test_staging_page.py",
- "source_location": "L87",
+ "source_location": "L98",
"id": "ui_test_staging_page_test_format_elapsed_days_and_hours",
"community": 41,
"norm_label": "test_format_elapsed_days_and_hours()"
@@ -7387,7 +7423,7 @@
"label": "test_format_elapsed_handles_negative()",
"file_type": "code",
"source_file": "tests/unit/ui/test_staging_page.py",
- "source_location": "L91",
+ "source_location": "L102",
"id": "ui_test_staging_page_test_format_elapsed_handles_negative",
"community": 41,
"norm_label": "test_format_elapsed_handles_negative()"
@@ -7396,7 +7432,7 @@
"label": "test_state_pill_props_returns_label_and_color_for_each_state()",
"file_type": "code",
"source_file": "tests/unit/ui/test_staging_page.py",
- "source_location": "L100",
+ "source_location": "L111",
"id": "ui_test_staging_page_test_state_pill_props_returns_label_and_color_for_each_state",
"community": 41,
"norm_label": "test_state_pill_props_returns_label_and_color_for_each_state()"
@@ -7405,7 +7441,7 @@
"label": "test_state_pill_props_falls_back_for_unknown_state()",
"file_type": "code",
"source_file": "tests/unit/ui/test_staging_page.py",
- "source_location": "L112",
+ "source_location": "L123",
"id": "ui_test_staging_page_test_state_pill_props_falls_back_for_unknown_state",
"community": 41,
"norm_label": "test_state_pill_props_falls_back_for_unknown_state()"
@@ -7414,7 +7450,7 @@
"label": "_make_row()",
"file_type": "code",
"source_file": "tests/unit/ui/test_staging_page.py",
- "source_location": "L123",
+ "source_location": "L134",
"id": "ui_test_staging_page_make_row",
"community": 41,
"norm_label": "_make_row()"
@@ -7423,7 +7459,7 @@
"label": "test_row_props_emits_run_label_as_leaf()",
"file_type": "code",
"source_file": "tests/unit/ui/test_staging_page.py",
- "source_location": "L144",
+ "source_location": "L155",
"id": "ui_test_staging_page_test_row_props_emits_run_label_as_leaf",
"community": 41,
"norm_label": "test_row_props_emits_run_label_as_leaf()"
@@ -7432,7 +7468,7 @@
"label": "test_row_props_marks_synced_rollup_as_clearable()",
"file_type": "code",
"source_file": "tests/unit/ui/test_staging_page.py",
- "source_location": "L149",
+ "source_location": "L160",
"id": "ui_test_staging_page_test_row_props_marks_synced_rollup_as_clearable",
"community": 41,
"norm_label": "test_row_props_marks_synced_rollup_as_clearable()"
@@ -7441,7 +7477,7 @@
"label": "test_row_props_does_not_mark_other_rollups_as_clearable()",
"file_type": "code",
"source_file": "tests/unit/ui/test_staging_page.py",
- "source_location": "L155",
+ "source_location": "L166",
"id": "ui_test_staging_page_test_row_props_does_not_mark_other_rollups_as_clearable",
"community": 41,
"norm_label": "test_row_props_does_not_mark_other_rollups_as_clearable()"
@@ -7450,7 +7486,7 @@
"label": "test_row_props_formats_bytes_and_elapsed()",
"file_type": "code",
"source_file": "tests/unit/ui/test_staging_page.py",
- "source_location": "L163",
+ "source_location": "L174",
"id": "ui_test_staging_page_test_row_props_formats_bytes_and_elapsed",
"community": 41,
"norm_label": "test_row_props_formats_bytes_and_elapsed()"
@@ -7459,7 +7495,7 @@
"label": "test_render_staging_dock_returns_dict_when_nicegui_unavailable()",
"file_type": "code",
"source_file": "tests/unit/ui/test_staging_page.py",
- "source_location": "L174",
+ "source_location": "L185",
"id": "ui_test_staging_page_test_render_staging_dock_returns_dict_when_nicegui_unavailable",
"community": 41,
"norm_label": "test_render_staging_dock_returns_dict_when_nicegui_unavailable()"
@@ -7468,7 +7504,7 @@
"label": "test_staging_dock_state_defaults()",
"file_type": "code",
"source_file": "tests/unit/ui/test_staging_page.py",
- "source_location": "L191",
+ "source_location": "L202",
"id": "ui_test_staging_page_test_staging_dock_state_defaults",
"community": 41,
"norm_label": "test_staging_dock_state_defaults()"
@@ -7486,8 +7522,8 @@
"label": "Only a fully-``synced`` run rollup is clearable.",
"file_type": "rationale",
"source_file": "tests/unit/ui/test_staging_page.py",
- "source_location": "L150",
- "id": "ui_test_staging_page_rationale_150",
+ "source_location": "L161",
+ "id": "ui_test_staging_page_rationale_161",
"community": 41,
"norm_label": "only a fully-``synced`` run rollup is clearable."
},
@@ -7495,8 +7531,8 @@
"label": "When NiceGUI isn't importable the renderer returns a debug dict. This is th",
"file_type": "rationale",
"source_file": "tests/unit/ui/test_staging_page.py",
- "source_location": "L175",
- "id": "ui_test_staging_page_rationale_175",
+ "source_location": "L186",
+ "id": "ui_test_staging_page_rationale_186",
"community": 41,
"norm_label": "when nicegui isn't importable the renderer returns a debug dict. this is th"
},
@@ -7504,8 +7540,8 @@
"label": "An empty dock state initializes without errors.",
"file_type": "rationale",
"source_file": "tests/unit/ui/test_staging_page.py",
- "source_location": "L192",
- "id": "ui_test_staging_page_rationale_192",
+ "source_location": "L203",
+ "id": "ui_test_staging_page_rationale_203",
"community": 41,
"norm_label": "an empty dock state initializes without errors."
},
@@ -7515,7 +7551,7 @@
"source_file": "tests/unit/ui/test_notifications.py",
"source_location": "L1",
"id": "tests_unit_ui_test_notifications_py",
- "community": 59,
+ "community": 102,
"norm_label": "test_notifications.py"
},
{
@@ -7524,7 +7560,7 @@
"source_file": "tests/unit/ui/test_notifications.py",
"source_location": "L25",
"id": "ui_test_notifications_reset_state",
- "community": 59,
+ "community": 102,
"norm_label": "_reset_state()"
},
{
@@ -7533,7 +7569,7 @@
"source_file": "tests/unit/ui/test_notifications.py",
"source_location": "L33",
"id": "ui_test_notifications_test_notify_success_uses_positive_type",
- "community": 59,
+ "community": 102,
"norm_label": "test_notify_success_uses_positive_type()"
},
{
@@ -7542,7 +7578,7 @@
"source_file": "tests/unit/ui/test_notifications.py",
"source_location": "L45",
"id": "ui_test_notifications_test_notify_info_default_timeout",
- "community": 59,
+ "community": 102,
"norm_label": "test_notify_info_default_timeout()"
},
{
@@ -7551,7 +7587,7 @@
"source_file": "tests/unit/ui/test_notifications.py",
"source_location": "L54",
"id": "ui_test_notifications_test_notify_warning_extended_timeout",
- "community": 59,
+ "community": 102,
"norm_label": "test_notify_warning_extended_timeout()"
},
{
@@ -7560,7 +7596,7 @@
"source_file": "tests/unit/ui/test_notifications.py",
"source_location": "L63",
"id": "ui_test_notifications_test_notify_error_extended_timeout",
- "community": 59,
+ "community": 102,
"norm_label": "test_notify_error_extended_timeout()"
},
{
@@ -7569,7 +7605,7 @@
"source_file": "tests/unit/ui/test_notifications.py",
"source_location": "L72",
"id": "ui_test_notifications_test_notify_with_action_extends_to_12_seconds",
- "community": 59,
+ "community": 352,
"norm_label": "test_notify_with_action_extends_to_12_seconds()"
},
{
@@ -7578,7 +7614,7 @@
"source_file": "tests/unit/ui/test_notifications.py",
"source_location": "L85",
"id": "ui_test_notifications_test_show_banner_rejects_unknown_id",
- "community": 59,
+ "community": 102,
"norm_label": "test_show_banner_rejects_unknown_id()"
},
{
@@ -7587,7 +7623,7 @@
"source_file": "tests/unit/ui/test_notifications.py",
"source_location": "L97",
"id": "ui_test_notifications_test_show_banner_records_active",
- "community": 59,
+ "community": 102,
"norm_label": "test_show_banner_records_active()"
},
{
@@ -7596,7 +7632,7 @@
"source_file": "tests/unit/ui/test_notifications.py",
"source_location": "L111",
"id": "ui_test_notifications_test_clear_banner_removes_record",
- "community": 59,
+ "community": 102,
"norm_label": "test_clear_banner_removes_record()"
},
{
@@ -7605,7 +7641,7 @@
"source_file": "tests/unit/ui/test_notifications.py",
"source_location": "L124",
"id": "ui_test_notifications_test_banner_overflow_count_when_exceeding_two",
- "community": 59,
+ "community": 102,
"norm_label": "test_banner_overflow_count_when_exceeding_two()"
},
{
@@ -7614,7 +7650,7 @@
"source_file": "tests/unit/ui/test_notifications.py",
"source_location": "L148",
"id": "ui_test_notifications_test_field_errors_round_trip",
- "community": 59,
+ "community": 102,
"norm_label": "test_field_errors_round_trip()"
},
{
@@ -7623,7 +7659,7 @@
"source_file": "tests/unit/ui/test_notifications.py",
"source_location": "L157",
"id": "ui_test_notifications_test_form_errors_round_trip",
- "community": 59,
+ "community": 102,
"norm_label": "test_form_errors_round_trip()"
},
{
@@ -7632,7 +7668,7 @@
"source_file": "tests/unit/ui/test_notifications.py",
"source_location": "L166",
"id": "ui_test_notifications_test_banner_id_closed_set_matches_spec",
- "community": 59,
+ "community": 102,
"norm_label": "test_banner_id_closed_set_matches_spec()"
},
{
@@ -7641,7 +7677,7 @@
"source_file": "tests/unit/ui/test_notifications.py",
"source_location": "L178",
"id": "ui_test_notifications_test_severity_closed_set_matches_spec",
- "community": 59,
+ "community": 102,
"norm_label": "test_severity_closed_set_matches_spec()"
},
{
@@ -7650,7 +7686,7 @@
"source_file": "tests/unit/ui/test_notifications.py",
"source_location": "L189",
"id": "ui_test_notifications_test_container_id_closed_set_matches_spec",
- "community": 59,
+ "community": 102,
"norm_label": "test_container_id_closed_set_matches_spec()"
},
{
@@ -7659,7 +7695,7 @@
"source_file": "tests/unit/ui/test_notifications.py",
"source_location": "L199",
"id": "ui_test_notifications_test_action_spec_is_frozen",
- "community": 59,
+ "community": 352,
"norm_label": "test_action_spec_is_frozen()"
},
{
@@ -7668,7 +7704,7 @@
"source_file": "tests/unit/ui/test_notifications.py",
"source_location": "L1",
"id": "ui_test_notifications_rationale_1",
- "community": 59,
+ "community": 102,
"norm_label": "unit tests for :mod:`exlab_wizard.ui.notifications`. the helpers all delegate t"
},
{
@@ -7677,7 +7713,7 @@
"source_file": "tests/unit/ui/test_notifications.py",
"source_location": "L26",
"id": "ui_test_notifications_rationale_26",
- "community": 59,
+ "community": 102,
"norm_label": "clear in-memory banner / inline state between tests."
},
{
@@ -7686,7 +7722,7 @@
"source_file": "tests/unit/ui/test_notifications.py",
"source_location": "L34",
"id": "ui_test_notifications_rationale_34",
- "community": 59,
+ "community": 102,
"norm_label": "``notify_success`` calls ``ui.notify(... type=\"positive\")``."
},
{
@@ -7695,7 +7731,7 @@
"source_file": "tests/unit/ui/test_notifications.py",
"source_location": "L46",
"id": "ui_test_notifications_rationale_46",
- "community": 59,
+ "community": 102,
"norm_label": "``notify_info`` uses the 4 s default."
},
{
@@ -7704,7 +7740,7 @@
"source_file": "tests/unit/ui/test_notifications.py",
"source_location": "L55",
"id": "ui_test_notifications_rationale_55",
- "community": 59,
+ "community": 102,
"norm_label": "``notify_warning`` uses the 8 s default."
},
{
@@ -7713,7 +7749,7 @@
"source_file": "tests/unit/ui/test_notifications.py",
"source_location": "L64",
"id": "ui_test_notifications_rationale_64",
- "community": 59,
+ "community": 102,
"norm_label": "``notify_error`` uses the 8 s default."
},
{
@@ -7722,7 +7758,7 @@
"source_file": "tests/unit/ui/test_notifications.py",
"source_location": "L73",
"id": "ui_test_notifications_rationale_73",
- "community": 59,
+ "community": 352,
"norm_label": "when an action is attached, the timeout extends to 12 s."
},
{
@@ -7731,7 +7767,7 @@
"source_file": "tests/unit/ui/test_notifications.py",
"source_location": "L86",
"id": "ui_test_notifications_rationale_86",
- "community": 59,
+ "community": 102,
"norm_label": "an out-of-set banner id raises ``valueerror``."
},
{
@@ -7740,7 +7776,7 @@
"source_file": "tests/unit/ui/test_notifications.py",
"source_location": "L98",
"id": "ui_test_notifications_rationale_98",
- "community": 59,
+ "community": 102,
"norm_label": "``show_banner`` records the banner under the right container."
},
{
@@ -7749,7 +7785,7 @@
"source_file": "tests/unit/ui/test_notifications.py",
"source_location": "L112",
"id": "ui_test_notifications_rationale_112",
- "community": 59,
+ "community": 102,
"norm_label": "``clear_banner`` removes the active record."
},
{
@@ -7758,7 +7794,7 @@
"source_file": "tests/unit/ui/test_notifications.py",
"source_location": "L125",
"id": "ui_test_notifications_rationale_125",
- "community": 59,
+ "community": 102,
"norm_label": "frontend \u00a72.2.3: max 2 banners; 3rd collapses into a count."
},
{
@@ -7767,7 +7803,7 @@
"source_file": "tests/unit/ui/test_notifications.py",
"source_location": "L149",
"id": "ui_test_notifications_rationale_149",
- "community": 59,
+ "community": 102,
"norm_label": "inline field errors round-trip through register / get / clear."
},
{
@@ -7776,7 +7812,7 @@
"source_file": "tests/unit/ui/test_notifications.py",
"source_location": "L158",
"id": "ui_test_notifications_rationale_158",
- "community": 59,
+ "community": 102,
"norm_label": "inline form errors round-trip through register / get / clear."
},
{
@@ -7785,7 +7821,7 @@
"source_file": "tests/unit/ui/test_notifications.py",
"source_location": "L167",
"id": "ui_test_notifications_rationale_167",
- "community": 59,
+ "community": 102,
"norm_label": "frontend \u00a72.2.3: exactly five canonical banner ids."
},
{
@@ -7794,7 +7830,7 @@
"source_file": "tests/unit/ui/test_notifications.py",
"source_location": "L179",
"id": "ui_test_notifications_rationale_179",
- "community": 59,
+ "community": 102,
"norm_label": "severity matches design.md alerts table."
},
{
@@ -7803,7 +7839,7 @@
"source_file": "tests/unit/ui/test_notifications.py",
"source_location": "L190",
"id": "ui_test_notifications_rationale_190",
- "community": 59,
+ "community": 102,
"norm_label": "containerid enumerates the three banner placement scopes."
},
{
@@ -7812,16 +7848,205 @@
"source_file": "tests/unit/ui/test_notifications.py",
"source_location": "L200",
"id": "ui_test_notifications_rationale_200",
- "community": 59,
+ "community": 352,
"norm_label": "``actionspec`` is immutable so callbacks can't be swapped post-hoc."
},
+ {
+ "label": "test_status_bar_segment.py",
+ "file_type": "code",
+ "source_file": "tests/unit/ui/test_status_bar_segment.py",
+ "source_location": "L1",
+ "id": "tests_unit_ui_test_status_bar_segment_py",
+ "community": 52,
+ "norm_label": "test_status_bar_segment.py"
+ },
+ {
+ "label": "test_footer_segments_all_clear_default_normal()",
+ "file_type": "code",
+ "source_file": "tests/unit/ui/test_status_bar_segment.py",
+ "source_location": "L19",
+ "id": "ui_test_status_bar_segment_test_footer_segments_all_clear_default_normal",
+ "community": 52,
+ "norm_label": "test_footer_segments_all_clear_default_normal()"
+ },
+ {
+ "label": "test_footer_validator_warns_on_hard_findings()",
+ "file_type": "code",
+ "source_file": "tests/unit/ui/test_status_bar_segment.py",
+ "source_location": "L32",
+ "id": "ui_test_status_bar_segment_test_footer_validator_warns_on_hard_findings",
+ "community": 52,
+ "norm_label": "test_footer_validator_warns_on_hard_findings()"
+ },
+ {
+ "label": "test_footer_lims_danger_when_unreachable()",
+ "file_type": "code",
+ "source_file": "tests/unit/ui/test_status_bar_segment.py",
+ "source_location": "L42",
+ "id": "ui_test_status_bar_segment_test_footer_lims_danger_when_unreachable",
+ "community": 52,
+ "norm_label": "test_footer_lims_danger_when_unreachable()"
+ },
+ {
+ "label": "test_footer_staging_warns_when_pending()",
+ "file_type": "code",
+ "source_file": "tests/unit/ui/test_status_bar_segment.py",
+ "source_location": "L50",
+ "id": "ui_test_status_bar_segment_test_footer_staging_warns_when_pending",
+ "community": 52,
+ "norm_label": "test_footer_staging_warns_when_pending()"
+ },
+ {
+ "label": "test_footer_segments_defaults_are_safe()",
+ "file_type": "code",
+ "source_file": "tests/unit/ui/test_status_bar_segment.py",
+ "source_location": "L59",
+ "id": "ui_test_status_bar_segment_test_footer_segments_defaults_are_safe",
+ "community": 52,
+ "norm_label": "test_footer_segments_defaults_are_safe()"
+ },
+ {
+ "label": "Unit tests for the footer status-bar segment derivation (Phase 5). The :func:`d",
+ "file_type": "rationale",
+ "source_file": "tests/unit/ui/test_status_bar_segment.py",
+ "source_location": "L1",
+ "id": "ui_test_status_bar_segment_rationale_1",
+ "community": 52,
+ "norm_label": "unit tests for the footer status-bar segment derivation (phase 5). the :func:`d"
+ },
+ {
+ "label": "No findings, LIMS reachable, nothing staged -> every segment normal.",
+ "file_type": "rationale",
+ "source_file": "tests/unit/ui/test_status_bar_segment.py",
+ "source_location": "L20",
+ "id": "ui_test_status_bar_segment_rationale_20",
+ "community": 52,
+ "norm_label": "no findings, lims reachable, nothing staged -> every segment normal."
+ },
+ {
+ "label": "A hard-tier finding flips Validator to WARNING (Frontend \u00a73.5.5).",
+ "file_type": "rationale",
+ "source_file": "tests/unit/ui/test_status_bar_segment.py",
+ "source_location": "L33",
+ "id": "ui_test_status_bar_segment_rationale_33",
+ "community": 52,
+ "norm_label": "a hard-tier finding flips validator to warning (frontend \u00a73.5.5)."
+ },
+ {
+ "label": "An unreachable LIMS endpoint flips LIMS to DANGER.",
+ "file_type": "rationale",
+ "source_file": "tests/unit/ui/test_status_bar_segment.py",
+ "source_location": "L43",
+ "id": "ui_test_status_bar_segment_rationale_43",
+ "community": 52,
+ "norm_label": "an unreachable lims endpoint flips lims to danger."
+ },
+ {
+ "label": "Runs pending clearance flip Staging to WARNING.",
+ "file_type": "rationale",
+ "source_file": "tests/unit/ui/test_status_bar_segment.py",
+ "source_location": "L51",
+ "id": "ui_test_status_bar_segment_rationale_51",
+ "community": 52,
+ "norm_label": "runs pending clearance flip staging to warning."
+ },
+ {
+ "label": "Called with no args (a half-wired backend) every segment is normal.",
+ "file_type": "rationale",
+ "source_file": "tests/unit/ui/test_status_bar_segment.py",
+ "source_location": "L60",
+ "id": "ui_test_status_bar_segment_rationale_60",
+ "community": 52,
+ "norm_label": "called with no args (a half-wired backend) every segment is normal."
+ },
+ {
+ "label": "test_empty_state.py",
+ "file_type": "code",
+ "source_file": "tests/unit/ui/test_empty_state.py",
+ "source_location": "L1",
+ "id": "tests_unit_ui_test_empty_state_py",
+ "community": 288,
+ "norm_label": "test_empty_state.py"
+ },
+ {
+ "label": "_walk()",
+ "file_type": "code",
+ "source_file": "tests/unit/ui/test_empty_state.py",
+ "source_location": "L15",
+ "id": "ui_test_empty_state_walk",
+ "community": 288,
+ "norm_label": "_walk()"
+ },
+ {
+ "label": "_by_testid()",
+ "file_type": "code",
+ "source_file": "tests/unit/ui/test_empty_state.py",
+ "source_location": "L22",
+ "id": "ui_test_empty_state_by_testid",
+ "community": 288,
+ "norm_label": "_by_testid()"
+ },
+ {
+ "label": "_texts()",
+ "file_type": "code",
+ "source_file": "tests/unit/ui/test_empty_state.py",
+ "source_location": "L26",
+ "id": "ui_test_empty_state_texts",
+ "community": 288,
+ "norm_label": "_texts()"
+ },
+ {
+ "label": "test_empty_state_carries_testid_and_message()",
+ "file_type": "code",
+ "source_file": "tests/unit/ui/test_empty_state.py",
+ "source_location": "L30",
+ "id": "ui_test_empty_state_test_empty_state_carries_testid_and_message",
+ "community": 288,
+ "norm_label": "test_empty_state_carries_testid_and_message()"
+ },
+ {
+ "label": "test_empty_state_renders_the_icon()",
+ "file_type": "code",
+ "source_file": "tests/unit/ui/test_empty_state.py",
+ "source_location": "L42",
+ "id": "ui_test_empty_state_test_empty_state_renders_the_icon",
+ "community": 288,
+ "norm_label": "test_empty_state_renders_the_icon()"
+ },
+ {
+ "label": "Unit tests for the shared empty-state placeholder (Phase 5). The helper renders",
+ "file_type": "rationale",
+ "source_file": "tests/unit/ui/test_empty_state.py",
+ "source_location": "L1",
+ "id": "ui_test_empty_state_rationale_1",
+ "community": 288,
+ "norm_label": "unit tests for the shared empty-state placeholder (phase 5). the helper renders"
+ },
+ {
+ "label": "The placeholder keeps the caller's testid (once) and shows the hint.",
+ "file_type": "rationale",
+ "source_file": "tests/unit/ui/test_empty_state.py",
+ "source_location": "L31",
+ "id": "ui_test_empty_state_rationale_31",
+ "community": 288,
+ "norm_label": "the placeholder keeps the caller's testid (once) and shows the hint."
+ },
+ {
+ "label": "The icon name reaches the rendered icon element.",
+ "file_type": "rationale",
+ "source_file": "tests/unit/ui/test_empty_state.py",
+ "source_location": "L43",
+ "id": "ui_test_empty_state_rationale_43",
+ "community": 288,
+ "norm_label": "the icon name reaches the rendered icon element."
+ },
{
"label": "test_sync_status_icon.py",
"file_type": "code",
"source_file": "tests/unit/ui/test_sync_status_icon.py",
"source_location": "L1",
"id": "tests_unit_ui_test_sync_status_icon_py",
- "community": 143,
+ "community": 205,
"norm_label": "test_sync_status_icon.py"
},
{
@@ -7830,7 +8055,7 @@
"source_file": "tests/unit/ui/test_sync_status_icon.py",
"source_location": "L11",
"id": "ui_test_sync_status_icon_test_strict_default_still_raises_on_unknown",
- "community": 143,
+ "community": 205,
"norm_label": "test_strict_default_still_raises_on_unknown()"
},
{
@@ -7839,7 +8064,7 @@
"source_file": "tests/unit/ui/test_sync_status_icon.py",
"source_location": "L17",
"id": "ui_test_sync_status_icon_test_strict_explicit_raises_on_unknown",
- "community": 143,
+ "community": 205,
"norm_label": "test_strict_explicit_raises_on_unknown()"
},
{
@@ -7848,7 +8073,7 @@
"source_file": "tests/unit/ui/test_sync_status_icon.py",
"source_location": "L22",
"id": "ui_test_sync_status_icon_test_tolerant_mode_returns_neutral_for_unknown",
- "community": 143,
+ "community": 205,
"norm_label": "test_tolerant_mode_returns_neutral_for_unknown()"
},
{
@@ -7857,7 +8082,7 @@
"source_file": "tests/unit/ui/test_sync_status_icon.py",
"source_location": "L32",
"id": "ui_test_sync_status_icon_test_tolerant_mode_handles_none",
- "community": 143,
+ "community": 205,
"norm_label": "test_tolerant_mode_handles_none()"
},
{
@@ -7866,7 +8091,7 @@
"source_file": "tests/unit/ui/test_sync_status_icon.py",
"source_location": "L40",
"id": "ui_test_sync_status_icon_test_tolerant_mode_still_returns_real_props_for_known",
- "community": 143,
+ "community": 205,
"norm_label": "test_tolerant_mode_still_returns_real_props_for_known()"
},
{
@@ -7875,7 +8100,7 @@
"source_file": "tests/unit/ui/test_sync_status_icon.py",
"source_location": "L47",
"id": "ui_test_sync_status_icon_test_neutral_and_normal_props_share_key_shape",
- "community": 143,
+ "community": 205,
"norm_label": "test_neutral_and_normal_props_share_key_shape()"
},
{
@@ -7884,7 +8109,7 @@
"source_file": "tests/unit/ui/test_sync_status_icon.py",
"source_location": "L1",
"id": "ui_test_sync_status_icon_rationale_1",
- "community": 143,
+ "community": 205,
"norm_label": "unit tests for sync_status_icon tolerant mode (redesign \u00a74.5, oq-5)."
},
{
@@ -7893,7 +8118,7 @@
"source_file": "tests/unit/ui/test_sync_status_icon.py",
"source_location": "L12",
"id": "ui_test_sync_status_icon_rationale_12",
- "community": 143,
+ "community": 205,
"norm_label": "the original contract is preserved: strict (default) raises."
},
{
@@ -7902,7 +8127,7 @@
"source_file": "tests/unit/ui/test_sync_status_icon.py",
"source_location": "L23",
"id": "ui_test_sync_status_icon_rationale_23",
- "community": 143,
+ "community": 205,
"norm_label": "strict=false yields neutral props (muted dash) instead of raising."
},
{
@@ -7911,7 +8136,7 @@
"source_file": "tests/unit/ui/test_sync_status_icon.py",
"source_location": "L33",
"id": "ui_test_sync_status_icon_rationale_33",
- "community": 143,
+ "community": 205,
"norm_label": "strict=false accepts none (optional per-file / per-folder status)."
},
{
@@ -7920,7 +8145,7 @@
"source_file": "tests/unit/ui/test_sync_status_icon.py",
"source_location": "L41",
"id": "ui_test_sync_status_icon_rationale_41",
- "community": 143,
+ "community": 205,
"norm_label": "a recognised status is unaffected by strict=false."
},
{
@@ -7929,7 +8154,7 @@
"source_file": "tests/unit/ui/test_sync_status_icon.py",
"source_location": "L48",
"id": "ui_test_sync_status_icon_rationale_48",
- "community": 143,
+ "community": 205,
"norm_label": "both return paths expose the same keys so callers treat them alike."
},
{
@@ -7938,7 +8163,7 @@
"source_file": "tests/unit/ui/test_templates_page.py",
"source_location": "L1",
"id": "tests_unit_ui_test_templates_page_py",
- "community": 120,
+ "community": 129,
"norm_label": "test_templates_page.py"
},
{
@@ -7947,7 +8172,7 @@
"source_file": "tests/unit/ui/test_templates_page.py",
"source_location": "L35",
"id": "ui_test_templates_page_test_create_template_scaffolds_dir_with_manifest_and_content",
- "community": 120,
+ "community": 129,
"norm_label": "test_create_template_scaffolds_dir_with_manifest_and_content()"
},
{
@@ -7956,7 +8181,7 @@
"source_file": "tests/unit/ui/test_templates_page.py",
"source_location": "L50",
"id": "ui_test_templates_page_test_create_template_strips_whitespace_from_name",
- "community": 120,
+ "community": 129,
"norm_label": "test_create_template_strips_whitespace_from_name()"
},
{
@@ -7965,7 +8190,7 @@
"source_file": "tests/unit/ui/test_templates_page.py",
"source_location": "L55",
"id": "ui_test_templates_page_test_create_template_writes_description_into_manifest",
- "community": 120,
+ "community": 129,
"norm_label": "test_create_template_writes_description_into_manifest()"
},
{
@@ -7974,7 +8199,7 @@
"source_file": "tests/unit/ui/test_templates_page.py",
"source_location": "L69",
"id": "ui_test_templates_page_test_create_run_template_records_run_scope",
- "community": 120,
+ "community": 129,
"norm_label": "test_create_run_template_records_run_scope()"
},
{
@@ -7983,7 +8208,7 @@
"source_file": "tests/unit/ui/test_templates_page.py",
"source_location": "L81",
"id": "ui_test_templates_page_test_create_project_template_omits_run_scope_key",
- "community": 120,
+ "community": 129,
"norm_label": "test_create_project_template_omits_run_scope_key()"
},
{
@@ -7992,7 +8217,7 @@
"source_file": "tests/unit/ui/test_templates_page.py",
"source_location": "L92",
"id": "ui_test_templates_page_test_create_template_rejects_empty_name",
- "community": 120,
+ "community": 129,
"norm_label": "test_create_template_rejects_empty_name()"
},
{
@@ -8001,7 +8226,7 @@
"source_file": "tests/unit/ui/test_templates_page.py",
"source_location": "L97",
"id": "ui_test_templates_page_test_create_template_rejects_unknown_type",
- "community": 120,
+ "community": 129,
"norm_label": "test_create_template_rejects_unknown_type()"
},
{
@@ -8010,7 +8235,7 @@
"source_file": "tests/unit/ui/test_templates_page.py",
"source_location": "L102",
"id": "ui_test_templates_page_test_create_run_template_requires_run_scope",
- "community": 120,
+ "community": 129,
"norm_label": "test_create_run_template_requires_run_scope()"
},
{
@@ -8019,7 +8244,7 @@
"source_file": "tests/unit/ui/test_templates_page.py",
"source_location": "L107",
"id": "ui_test_templates_page_test_create_run_template_rejects_invalid_run_scope",
- "community": 120,
+ "community": 129,
"norm_label": "test_create_run_template_rejects_invalid_run_scope()"
},
{
@@ -8028,7 +8253,7 @@
"source_file": "tests/unit/ui/test_templates_page.py",
"source_location": "L112",
"id": "ui_test_templates_page_test_create_template_rejects_duplicate_name",
- "community": 120,
+ "community": 129,
"norm_label": "test_create_template_rejects_duplicate_name()"
},
{
@@ -8037,7 +8262,7 @@
"source_file": "tests/unit/ui/test_templates_page.py",
"source_location": "L123",
"id": "ui_test_templates_page_test_scaffolded_project_template_resolves_with_engine",
- "community": 120,
+ "community": 129,
"norm_label": "test_scaffolded_project_template_resolves_with_engine()"
},
{
@@ -8046,7 +8271,7 @@
"source_file": "tests/unit/ui/test_templates_page.py",
"source_location": "L139",
"id": "ui_test_templates_page_test_scaffolded_run_template_resolves_with_engine",
- "community": 120,
+ "community": 129,
"norm_label": "test_scaffolded_run_template_resolves_with_engine()"
},
{
@@ -8055,7 +8280,7 @@
"source_file": "tests/unit/ui/test_templates_page.py",
"source_location": "L156",
"id": "ui_test_templates_page_test_list_templates_returns_empty_for_missing_dir",
- "community": 120,
+ "community": 129,
"norm_label": "test_list_templates_returns_empty_for_missing_dir()"
},
{
@@ -8064,7 +8289,7 @@
"source_file": "tests/unit/ui/test_templates_page.py",
"source_location": "L160",
"id": "ui_test_templates_page_test_list_templates_returns_empty_for_dir_with_no_templates",
- "community": 120,
+ "community": 129,
"norm_label": "test_list_templates_returns_empty_for_dir_with_no_templates()"
},
{
@@ -8073,7 +8298,7 @@
"source_file": "tests/unit/ui/test_templates_page.py",
"source_location": "L166",
"id": "ui_test_templates_page_test_list_templates_summarizes_each_template",
- "community": 120,
+ "community": 129,
"norm_label": "test_list_templates_summarizes_each_template()"
},
{
@@ -8082,7 +8307,7 @@
"source_file": "tests/unit/ui/test_templates_page.py",
"source_location": "L189",
"id": "ui_test_templates_page_test_list_templates_is_sorted",
- "community": 120,
+ "community": 129,
"norm_label": "test_list_templates_is_sorted()"
},
{
@@ -8091,7 +8316,7 @@
"source_file": "tests/unit/ui/test_templates_page.py",
"source_location": "L199",
"id": "ui_test_templates_page_test_list_templates_skips_dirs_without_manifest",
- "community": 120,
+ "community": 129,
"norm_label": "test_list_templates_skips_dirs_without_manifest()"
},
{
@@ -8100,7 +8325,7 @@
"source_file": "tests/unit/ui/test_templates_page.py",
"source_location": "L209",
"id": "ui_test_templates_page_test_list_templates_filters_by_template_type",
- "community": 120,
+ "community": 129,
"norm_label": "test_list_templates_filters_by_template_type()"
},
{
@@ -8109,7 +8334,7 @@
"source_file": "tests/unit/ui/test_templates_page.py",
"source_location": "L225",
"id": "ui_test_templates_page_test_list_templates_skips_malformed_manifest",
- "community": 120,
+ "community": 129,
"norm_label": "test_list_templates_skips_malformed_manifest()"
},
{
@@ -8118,7 +8343,7 @@
"source_file": "tests/unit/ui/test_templates_page.py",
"source_location": "L237",
"id": "ui_test_templates_page_test_list_templates_skips_non_mapping_manifest",
- "community": 120,
+ "community": 129,
"norm_label": "test_list_templates_skips_non_mapping_manifest()"
},
{
@@ -8127,7 +8352,7 @@
"source_file": "tests/unit/ui/test_templates_page.py",
"source_location": "L1",
"id": "ui_test_templates_page_rationale_1",
- "community": 120,
+ "community": 129,
"norm_label": "tests for the template-manager page helpers. ``render_template_manager`` render"
},
{
@@ -8136,7 +8361,7 @@
"source_file": "tests/unit/ui/test_keyboard.py",
"source_location": "L1",
"id": "tests_unit_ui_test_keyboard_py",
- "community": 275,
+ "community": 279,
"norm_label": "test_keyboard.py"
},
{
@@ -8145,7 +8370,7 @@
"source_file": "tests/unit/ui/test_keyboard.py",
"source_location": "L26",
"id": "ui_test_keyboard_test_all_documented_shortcuts_in_registry",
- "community": 355,
+ "community": 356,
"norm_label": "test_all_documented_shortcuts_in_registry()"
},
{
@@ -8154,7 +8379,7 @@
"source_file": "tests/unit/ui/test_keyboard.py",
"source_location": "L43",
"id": "ui_test_keyboard_test_new_project_combo_macos_and_other",
- "community": 155,
+ "community": 165,
"norm_label": "test_new_project_combo_macos_and_other()"
},
{
@@ -8163,7 +8388,7 @@
"source_file": "tests/unit/ui/test_keyboard.py",
"source_location": "L51",
"id": "ui_test_keyboard_test_new_run_combo_macos_and_other",
- "community": 155,
+ "community": 165,
"norm_label": "test_new_run_combo_macos_and_other()"
},
{
@@ -8172,7 +8397,7 @@
"source_file": "tests/unit/ui/test_keyboard.py",
"source_location": "L59",
"id": "ui_test_keyboard_test_new_test_run_combo_macos_and_other",
- "community": 155,
+ "community": 165,
"norm_label": "test_new_test_run_combo_macos_and_other()"
},
{
@@ -8181,7 +8406,7 @@
"source_file": "tests/unit/ui/test_keyboard.py",
"source_location": "L67",
"id": "ui_test_keyboard_test_open_settings_uses_comma_key",
- "community": 155,
+ "community": 165,
"norm_label": "test_open_settings_uses_comma_key()"
},
{
@@ -8190,7 +8415,7 @@
"source_file": "tests/unit/ui/test_keyboard.py",
"source_location": "L75",
"id": "ui_test_keyboard_test_refresh_tree_combo",
- "community": 275,
+ "community": 279,
"norm_label": "test_refresh_tree_combo()"
},
{
@@ -8199,7 +8424,7 @@
"source_file": "tests/unit/ui/test_keyboard.py",
"source_location": "L83",
"id": "ui_test_keyboard_test_open_problems_combo",
- "community": 155,
+ "community": 165,
"norm_label": "test_open_problems_combo()"
},
{
@@ -8208,7 +8433,7 @@
"source_file": "tests/unit/ui/test_keyboard.py",
"source_location": "L91",
"id": "ui_test_keyboard_test_focus_tree_search_is_unmodified_slash",
- "community": 155,
+ "community": 165,
"norm_label": "test_focus_tree_search_is_unmodified_slash()"
},
{
@@ -8217,7 +8442,7 @@
"source_file": "tests/unit/ui/test_keyboard.py",
"source_location": "L99",
"id": "ui_test_keyboard_test_wizard_next_uses_enter_with_modifier",
- "community": 155,
+ "community": 165,
"norm_label": "test_wizard_next_uses_enter_with_modifier()"
},
{
@@ -8226,7 +8451,7 @@
"source_file": "tests/unit/ui/test_keyboard.py",
"source_location": "L107",
"id": "ui_test_keyboard_test_wizard_cancel_uses_escape",
- "community": 155,
+ "community": 165,
"norm_label": "test_wizard_cancel_uses_escape()"
},
{
@@ -8235,7 +8460,7 @@
"source_file": "tests/unit/ui/test_keyboard.py",
"source_location": "L115",
"id": "ui_test_keyboard_test_combo_for_current_os_returns_other_on_linux",
- "community": 354,
+ "community": 357,
"norm_label": "test_combo_for_current_os_returns_other_on_linux()"
},
{
@@ -8244,7 +8469,7 @@
"source_file": "tests/unit/ui/test_keyboard.py",
"source_location": "L123",
"id": "ui_test_keyboard_test_combo_for_current_os_returns_macos_on_darwin",
- "community": 354,
+ "community": 357,
"norm_label": "test_combo_for_current_os_returns_macos_on_darwin()"
},
{
@@ -8253,7 +8478,7 @@
"source_file": "tests/unit/ui/test_keyboard.py",
"source_location": "L131",
"id": "ui_test_keyboard_test_resolve_finds_known_combo_on_linux",
- "community": 275,
+ "community": 279,
"norm_label": "test_resolve_finds_known_combo_on_linux()"
},
{
@@ -8262,7 +8487,7 @@
"source_file": "tests/unit/ui/test_keyboard.py",
"source_location": "L139",
"id": "ui_test_keyboard_test_resolve_returns_none_for_unknown_combo",
- "community": 275,
+ "community": 279,
"norm_label": "test_resolve_returns_none_for_unknown_combo()"
},
{
@@ -8271,7 +8496,7 @@
"source_file": "tests/unit/ui/test_keyboard.py",
"source_location": "L145",
"id": "ui_test_keyboard_test_get_binding_raises_for_unknown",
- "community": 155,
+ "community": 165,
"norm_label": "test_get_binding_raises_for_unknown()"
},
{
@@ -8280,7 +8505,7 @@
"source_file": "tests/unit/ui/test_keyboard.py",
"source_location": "L155",
"id": "ui_test_keyboard_test_registry_register_and_dispatch",
- "community": 253,
+ "community": 257,
"norm_label": "test_registry_register_and_dispatch()"
},
{
@@ -8289,7 +8514,7 @@
"source_file": "tests/unit/ui/test_keyboard.py",
"source_location": "L165",
"id": "ui_test_keyboard_test_registry_dispatch_returns_false_when_unbound",
- "community": 253,
+ "community": 257,
"norm_label": "test_registry_dispatch_returns_false_when_unbound()"
},
{
@@ -8298,7 +8523,7 @@
"source_file": "tests/unit/ui/test_keyboard.py",
"source_location": "L172",
"id": "ui_test_keyboard_test_registry_double_register_raises",
- "community": 253,
+ "community": 257,
"norm_label": "test_registry_double_register_raises()"
},
{
@@ -8307,7 +8532,7 @@
"source_file": "tests/unit/ui/test_keyboard.py",
"source_location": "L181",
"id": "ui_test_keyboard_test_keycombo_matches_returns_true_for_same_modifiers",
- "community": 275,
+ "community": 279,
"norm_label": "test_keycombo_matches_returns_true_for_same_modifiers()"
},
{
@@ -8316,7 +8541,7 @@
"source_file": "tests/unit/ui/test_keyboard.py",
"source_location": "L189",
"id": "ui_test_keyboard_test_descriptions_match_spec",
- "community": 355,
+ "community": 356,
"norm_label": "test_descriptions_match_spec()"
},
{
@@ -8325,7 +8550,7 @@
"source_file": "tests/unit/ui/test_keyboard.py",
"source_location": "L1",
"id": "ui_test_keyboard_rationale_1",
- "community": 275,
+ "community": 279,
"norm_label": "unit tests for :mod:`exlab_wizard.ui.keyboard`. the registry is intentionally s"
},
{
@@ -8334,7 +8559,7 @@
"source_file": "tests/unit/ui/test_keyboard.py",
"source_location": "L27",
"id": "ui_test_keyboard_rationale_27",
- "community": 355,
+ "community": 356,
"norm_label": "every frontend \u00a73.7 row has a shortcutbinding."
},
{
@@ -8343,7 +8568,7 @@
"source_file": "tests/unit/ui/test_keyboard.py",
"source_location": "L44",
"id": "ui_test_keyboard_rationale_44",
- "community": 155,
+ "community": 165,
"norm_label": "``cmd+n`` on macos, ``ctrl+n`` elsewhere."
},
{
@@ -8352,7 +8577,7 @@
"source_file": "tests/unit/ui/test_keyboard.py",
"source_location": "L52",
"id": "ui_test_keyboard_rationale_52",
- "community": 155,
+ "community": 165,
"norm_label": "``cmd+shift+n`` / ``ctrl+shift+n``."
},
{
@@ -8361,7 +8586,7 @@
"source_file": "tests/unit/ui/test_keyboard.py",
"source_location": "L60",
"id": "ui_test_keyboard_rationale_60",
- "community": 155,
+ "community": 165,
"norm_label": "``cmd+shift+t`` / ``ctrl+shift+t``."
},
{
@@ -8370,7 +8595,7 @@
"source_file": "tests/unit/ui/test_keyboard.py",
"source_location": "L68",
"id": "ui_test_keyboard_rationale_68",
- "community": 155,
+ "community": 165,
"norm_label": "``cmd+,`` / ``ctrl+,``."
},
{
@@ -8379,7 +8604,7 @@
"source_file": "tests/unit/ui/test_keyboard.py",
"source_location": "L76",
"id": "ui_test_keyboard_rationale_76",
- "community": 275,
+ "community": 279,
"norm_label": "``cmd+r`` / ``ctrl+r``."
},
{
@@ -8388,7 +8613,7 @@
"source_file": "tests/unit/ui/test_keyboard.py",
"source_location": "L84",
"id": "ui_test_keyboard_rationale_84",
- "community": 155,
+ "community": 165,
"norm_label": "``cmd+shift+p`` / ``ctrl+shift+p``."
},
{
@@ -8397,7 +8622,7 @@
"source_file": "tests/unit/ui/test_keyboard.py",
"source_location": "L92",
"id": "ui_test_keyboard_rationale_92",
- "community": 155,
+ "community": 165,
"norm_label": "``/`` focuses the tree search box."
},
{
@@ -8406,7 +8631,7 @@
"source_file": "tests/unit/ui/test_keyboard.py",
"source_location": "L100",
"id": "ui_test_keyboard_rationale_100",
- "community": 155,
+ "community": 165,
"norm_label": "``cmd+enter`` / ``ctrl+enter`` advances the wizard."
},
{
@@ -8415,7 +8640,7 @@
"source_file": "tests/unit/ui/test_keyboard.py",
"source_location": "L108",
"id": "ui_test_keyboard_rationale_108",
- "community": 155,
+ "community": 165,
"norm_label": "esc cancels the wizard."
},
{
@@ -8424,7 +8649,7 @@
"source_file": "tests/unit/ui/test_keyboard.py",
"source_location": "L116",
"id": "ui_test_keyboard_rationale_116",
- "community": 354,
+ "community": 357,
"norm_label": "on non-darwin we return ``other``."
},
{
@@ -8433,7 +8658,7 @@
"source_file": "tests/unit/ui/test_keyboard.py",
"source_location": "L124",
"id": "ui_test_keyboard_rationale_124",
- "community": 354,
+ "community": 357,
"norm_label": "on darwin we return ``macos``."
},
{
@@ -8442,7 +8667,7 @@
"source_file": "tests/unit/ui/test_keyboard.py",
"source_location": "L132",
"id": "ui_test_keyboard_rationale_132",
- "community": 275,
+ "community": 279,
"norm_label": "resolver returns the right shortcut id on non-darwin."
},
{
@@ -8451,7 +8676,7 @@
"source_file": "tests/unit/ui/test_keyboard.py",
"source_location": "L140",
"id": "ui_test_keyboard_rationale_140",
- "community": 275,
+ "community": 279,
"norm_label": "unknown combos resolve to ``none``."
},
{
@@ -8460,7 +8685,7 @@
"source_file": "tests/unit/ui/test_keyboard.py",
"source_location": "L146",
"id": "ui_test_keyboard_rationale_146",
- "community": 155,
+ "community": 165,
"norm_label": "``get_binding`` raises ``keyerror`` for an unknown shortcut id."
},
{
@@ -8469,7 +8694,7 @@
"source_file": "tests/unit/ui/test_keyboard.py",
"source_location": "L156",
"id": "ui_test_keyboard_rationale_156",
- "community": 253,
+ "community": 257,
"norm_label": "``shortcutregistry`` dispatches the registered handler exactly once."
},
{
@@ -8478,7 +8703,7 @@
"source_file": "tests/unit/ui/test_keyboard.py",
"source_location": "L166",
"id": "ui_test_keyboard_rationale_166",
- "community": 253,
+ "community": 257,
"norm_label": "dispatching an unbound shortcut returns ``false`` and runs no handler."
},
{
@@ -8487,7 +8712,7 @@
"source_file": "tests/unit/ui/test_keyboard.py",
"source_location": "L173",
"id": "ui_test_keyboard_rationale_173",
- "community": 253,
+ "community": 257,
"norm_label": "two handlers per shortcut is forbidden."
},
{
@@ -8496,7 +8721,7 @@
"source_file": "tests/unit/ui/test_keyboard.py",
"source_location": "L182",
"id": "ui_test_keyboard_rationale_182",
- "community": 275,
+ "community": 279,
"norm_label": "``keycombo.matches`` is exact-match across modifiers and key."
},
{
@@ -8505,7 +8730,7 @@
"source_file": "tests/unit/ui/test_keyboard.py",
"source_location": "L190",
"id": "ui_test_keyboard_rationale_190",
- "community": 355,
+ "community": 356,
"norm_label": "each binding has a non-empty description (frontend \u00a73.7)."
},
{
@@ -8514,7 +8739,7 @@
"source_file": "tests/unit/ui/test_dynamic_form.py",
"source_location": "L1",
"id": "tests_unit_ui_test_dynamic_form_py",
- "community": 197,
+ "community": 194,
"norm_label": "test_dynamic_form.py"
},
{
@@ -8523,7 +8748,7 @@
"source_file": "tests/unit/ui/test_dynamic_form.py",
"source_location": "L32",
"id": "ui_test_dynamic_form_test_template_questions_skips_underscore_keys",
- "community": 197,
+ "community": 194,
"norm_label": "test_template_questions_skips_underscore_keys()"
},
{
@@ -8532,7 +8757,7 @@
"source_file": "tests/unit/ui/test_dynamic_form.py",
"source_location": "L41",
"id": "ui_test_dynamic_form_test_template_questions_long_form_types",
- "community": 197,
+ "community": 194,
"norm_label": "test_template_questions_long_form_types()"
},
{
@@ -8541,7 +8766,7 @@
"source_file": "tests/unit/ui/test_dynamic_form.py",
"source_location": "L59",
"id": "ui_test_dynamic_form_test_template_questions_choice_from_list_and_dict",
- "community": 197,
+ "community": 194,
"norm_label": "test_template_questions_choice_from_list_and_dict()"
},
{
@@ -8550,7 +8775,7 @@
"source_file": "tests/unit/ui/test_dynamic_form.py",
"source_location": "L72",
"id": "ui_test_dynamic_form_test_template_questions_short_form_infers_kind",
- "community": 197,
+ "community": 194,
"norm_label": "test_template_questions_short_form_infers_kind()"
},
{
@@ -8559,7 +8784,7 @@
"source_file": "tests/unit/ui/test_dynamic_form.py",
"source_location": "L93",
"id": "ui_test_dynamic_form_test_render_question_field_seeds_default_into_answers",
- "community": 255,
+ "community": 259,
"norm_label": "test_render_question_field_seeds_default_into_answers()"
},
{
@@ -8568,7 +8793,7 @@
"source_file": "tests/unit/ui/test_dynamic_form.py",
"source_location": "L103",
"id": "ui_test_dynamic_form_test_render_question_field_preserves_existing_answer",
- "community": 255,
+ "community": 259,
"norm_label": "test_render_question_field_preserves_existing_answer()"
},
{
@@ -8577,7 +8802,7 @@
"source_file": "tests/unit/ui/test_dynamic_form.py",
"source_location": "L118",
"id": "ui_test_dynamic_form_equipment_kwargs",
- "community": 197,
+ "community": 194,
"norm_label": "_equipment_kwargs()"
},
{
@@ -8586,7 +8811,7 @@
"source_file": "tests/unit/ui/test_dynamic_form.py",
"source_location": "L130",
"id": "ui_test_dynamic_form_test_build_equipment_nas_has_no_transport",
- "community": 197,
+ "community": 194,
"norm_label": "test_build_equipment_nas_has_no_transport()"
},
{
@@ -8595,7 +8820,7 @@
"source_file": "tests/unit/ui/test_dynamic_form.py",
"source_location": "L139",
"id": "ui_test_dynamic_form_test_build_equipment_stage_has_no_per_equipment_transport",
- "community": 197,
+ "community": 194,
"norm_label": "test_build_equipment_stage_has_no_per_equipment_transport()"
},
{
@@ -8604,7 +8829,7 @@
"source_file": "tests/unit/ui/test_dynamic_form.py",
"source_location": "L150",
"id": "ui_test_dynamic_form_test_build_equipment_rejects_bad_id",
- "community": 197,
+ "community": 194,
"norm_label": "test_build_equipment_rejects_bad_id()"
},
{
@@ -8613,7 +8838,7 @@
"source_file": "tests/unit/ui/test_dynamic_form.py",
"source_location": "L1",
"id": "ui_test_dynamic_form_rationale_1",
- "community": 197,
+ "community": 194,
"norm_label": "unit tests for the frontend-polish helpers. covers the pure logic behind the th"
},
{
@@ -8622,7 +8847,7 @@
"source_file": "tests/unit/ui/test_file_list.py",
"source_location": "L1",
"id": "tests_unit_ui_test_file_list_py",
- "community": 169,
+ "community": 139,
"norm_label": "test_file_list.py"
},
{
@@ -8631,7 +8856,7 @@
"source_file": "tests/unit/ui/test_file_list.py",
"source_location": "L20",
"id": "ui_test_file_list_walk",
- "community": 211,
+ "community": 147,
"norm_label": "_walk()"
},
{
@@ -8640,7 +8865,7 @@
"source_file": "tests/unit/ui/test_file_list.py",
"source_location": "L33",
"id": "ui_test_file_list_rows",
- "community": 211,
+ "community": 147,
"norm_label": "_rows()"
},
{
@@ -8649,7 +8874,7 @@
"source_file": "tests/unit/ui/test_file_list.py",
"source_location": "L38",
"id": "ui_test_file_list_row_by_path",
- "community": 211,
+ "community": 147,
"norm_label": "_row_by_path()"
},
{
@@ -8658,7 +8883,7 @@
"source_file": "tests/unit/ui/test_file_list.py",
"source_location": "L42",
"id": "ui_test_file_list_click",
- "community": 377,
+ "community": 147,
"norm_label": "_click()"
},
{
@@ -8667,7 +8892,7 @@
"source_file": "tests/unit/ui/test_file_list.py",
"source_location": "L51",
"id": "ui_test_file_list_entry",
- "community": 169,
+ "community": 139,
"norm_label": "_entry()"
},
{
@@ -8676,7 +8901,7 @@
"source_file": "tests/unit/ui/test_file_list.py",
"source_location": "L64",
"id": "ui_test_file_list_test_diff_detects_additions",
- "community": 169,
+ "community": 139,
"norm_label": "test_diff_detects_additions()"
},
{
@@ -8685,7 +8910,7 @@
"source_file": "tests/unit/ui/test_file_list.py",
"source_location": "L74",
"id": "ui_test_file_list_test_diff_detects_removals",
- "community": 169,
+ "community": 139,
"norm_label": "test_diff_detects_removals()"
},
{
@@ -8694,7 +8919,7 @@
"source_file": "tests/unit/ui/test_file_list.py",
"source_location": "L84",
"id": "ui_test_file_list_test_diff_detects_size_change_as_modification",
- "community": 169,
+ "community": 139,
"norm_label": "test_diff_detects_size_change_as_modification()"
},
{
@@ -8703,7 +8928,7 @@
"source_file": "tests/unit/ui/test_file_list.py",
"source_location": "L94",
"id": "ui_test_file_list_test_diff_detects_sync_status_change_as_modification",
- "community": 169,
+ "community": 139,
"norm_label": "test_diff_detects_sync_status_change_as_modification()"
},
{
@@ -8712,7 +8937,7 @@
"source_file": "tests/unit/ui/test_file_list.py",
"source_location": "L102",
"id": "ui_test_file_list_test_diff_unchanged_is_empty",
- "community": 169,
+ "community": 139,
"norm_label": "test_diff_unchanged_is_empty()"
},
{
@@ -8721,7 +8946,7 @@
"source_file": "tests/unit/ui/test_file_list.py",
"source_location": "L115",
"id": "ui_test_file_list_test_file_list_entry_defaults_keep_local_and_tombstone_false",
- "community": 378,
+ "community": 139,
"norm_label": "test_file_list_entry_defaults_keep_local_and_tombstone_false()"
},
{
@@ -8730,7 +8955,7 @@
"source_file": "tests/unit/ui/test_file_list.py",
"source_location": "L122",
"id": "ui_test_file_list_test_diff_detects_keep_local_change_as_modification",
- "community": 379,
+ "community": 201,
"norm_label": "test_diff_detects_keep_local_change_as_modification()"
},
{
@@ -8739,7 +8964,7 @@
"source_file": "tests/unit/ui/test_file_list.py",
"source_location": "L130",
"id": "ui_test_file_list_test_diff_detects_tombstone_change_as_modification",
- "community": 381,
+ "community": 201,
"norm_label": "test_diff_detects_tombstone_change_as_modification()"
},
{
@@ -8748,7 +8973,7 @@
"source_file": "tests/unit/ui/test_file_list.py",
"source_location": "L138",
"id": "ui_test_file_list_test_keep_local_action_constant_is_distinct",
- "community": 380,
+ "community": 372,
"norm_label": "test_keep_local_action_constant_is_distinct()"
},
{
@@ -8757,7 +8982,7 @@
"source_file": "tests/unit/ui/test_file_list.py",
"source_location": "L143",
"id": "ui_test_file_list_test_render_file_list_keep_local_menu_and_tombstone",
- "community": 376,
+ "community": 373,
"norm_label": "test_render_file_list_keep_local_menu_and_tombstone()"
},
{
@@ -8766,7 +8991,7 @@
"source_file": "tests/unit/ui/test_file_list.py",
"source_location": "L193",
"id": "ui_test_file_list_test_row_bg_selected_wins_over_new",
- "community": 169,
+ "community": 139,
"norm_label": "test_row_bg_selected_wins_over_new()"
},
{
@@ -8775,7 +9000,7 @@
"source_file": "tests/unit/ui/test_file_list.py",
"source_location": "L200",
"id": "ui_test_file_list_test_row_bg_new_wins_over_tombstone_and_zebra",
- "community": 169,
+ "community": 139,
"norm_label": "test_row_bg_new_wins_over_tombstone_and_zebra()"
},
{
@@ -8784,7 +9009,7 @@
"source_file": "tests/unit/ui/test_file_list.py",
"source_location": "L212",
"id": "ui_test_file_list_test_row_bg_tombstone_suppresses_zebra_keeps_dim",
- "community": 169,
+ "community": 139,
"norm_label": "test_row_bg_tombstone_suppresses_zebra_keeps_dim()"
},
{
@@ -8793,7 +9018,7 @@
"source_file": "tests/unit/ui/test_file_list.py",
"source_location": "L224",
"id": "ui_test_file_list_test_row_bg_zebra_on_odd_index_only",
- "community": 169,
+ "community": 139,
"norm_label": "test_row_bg_zebra_on_odd_index_only()"
},
{
@@ -8802,7 +9027,7 @@
"source_file": "tests/unit/ui/test_file_list.py",
"source_location": "L231",
"id": "ui_test_file_list_test_row_bg_zebra_parity_is_index_based",
- "community": 169,
+ "community": 139,
"norm_label": "test_row_bg_zebra_parity_is_index_based()"
},
{
@@ -8811,7 +9036,7 @@
"source_file": "tests/unit/ui/test_file_list.py",
"source_location": "L236",
"id": "ui_test_file_list_test_row_bg_selected_tombstone_keeps_both_treatments",
- "community": 169,
+ "community": 139,
"norm_label": "test_row_bg_selected_tombstone_keeps_both_treatments()"
},
{
@@ -8820,7 +9045,7 @@
"source_file": "tests/unit/ui/test_file_list.py",
"source_location": "L244",
"id": "ui_test_file_list_test_row_bg_plain_even_row_is_empty",
- "community": 169,
+ "community": 139,
"norm_label": "test_row_bg_plain_even_row_is_empty()"
},
{
@@ -8829,7 +9054,7 @@
"source_file": "tests/unit/ui/test_file_list.py",
"source_location": "L253",
"id": "ui_test_file_list_selection_state",
- "community": 211,
+ "community": 147,
"norm_label": "_selection_state()"
},
{
@@ -8838,7 +9063,7 @@
"source_file": "tests/unit/ui/test_file_list.py",
"source_location": "L271",
"id": "ui_test_file_list_test_render_marks_selected_row_only",
- "community": 211,
+ "community": 147,
"norm_label": "test_render_marks_selected_row_only()"
},
{
@@ -8847,7 +9072,7 @@
"source_file": "tests/unit/ui/test_file_list.py",
"source_location": "L284",
"id": "ui_test_file_list_test_render_tombstone_row_is_dimmed_and_marked",
- "community": 211,
+ "community": 147,
"norm_label": "test_render_tombstone_row_is_dimmed_and_marked()"
},
{
@@ -8856,7 +9081,7 @@
"source_file": "tests/unit/ui/test_file_list.py",
"source_location": "L293",
"id": "ui_test_file_list_test_on_select_fires_for_file_and_folder",
- "community": 377,
+ "community": 147,
"norm_label": "test_on_select_fires_for_file_and_folder()"
},
{
@@ -8865,7 +9090,7 @@
"source_file": "tests/unit/ui/test_file_list.py",
"source_location": "L306",
"id": "ui_test_file_list_test_no_click_listener_when_on_select_absent",
- "community": 211,
+ "community": 147,
"norm_label": "test_no_click_listener_when_on_select_absent()"
},
{
@@ -8874,7 +9099,7 @@
"source_file": "tests/unit/ui/test_file_list.py",
"source_location": "L1",
"id": "ui_test_file_list_rationale_1",
- "community": 169,
+ "community": 139,
"norm_label": "unit tests for ``ui/components/file_list``. redesign \u00a74.3, \u00a75."
},
{
@@ -8883,7 +9108,7 @@
"source_file": "tests/unit/ui/test_file_list.py",
"source_location": "L21",
"id": "ui_test_file_list_rationale_21",
- "community": 211,
+ "community": 147,
"norm_label": "yield ``element`` and every descendant across all its slots. nicegui render"
},
{
@@ -8892,7 +9117,7 @@
"source_file": "tests/unit/ui/test_file_list.py",
"source_location": "L34",
"id": "ui_test_file_list_rationale_34",
- "community": 211,
+ "community": 147,
"norm_label": "return the rendered ``file-list-row`` elements under ``container``."
},
{
@@ -8901,7 +9126,7 @@
"source_file": "tests/unit/ui/test_file_list.py",
"source_location": "L43",
"id": "ui_test_file_list_rationale_43",
- "community": 377,
+ "community": 147,
"norm_label": "invoke ``element``'s registered click handler (simulates a single-click)."
},
{
@@ -8910,7 +9135,7 @@
"source_file": "tests/unit/ui/test_file_list.py",
"source_location": "L116",
"id": "ui_test_file_list_rationale_116",
- "community": 378,
+ "community": 139,
"norm_label": "a bare entry defaults ``keep_local`` and ``tombstone`` to false."
},
{
@@ -8919,7 +9144,7 @@
"source_file": "tests/unit/ui/test_file_list.py",
"source_location": "L123",
"id": "ui_test_file_list_rationale_123",
- "community": 379,
+ "community": 201,
"norm_label": "flipping ``keep_local`` is a modification (drives a re-render)."
},
{
@@ -8928,7 +9153,7 @@
"source_file": "tests/unit/ui/test_file_list.py",
"source_location": "L131",
"id": "ui_test_file_list_rationale_131",
- "community": 381,
+ "community": 201,
"norm_label": "a file transitioning to a tombstone is a modification."
},
{
@@ -8937,7 +9162,7 @@
"source_file": "tests/unit/ui/test_file_list.py",
"source_location": "L139",
"id": "ui_test_file_list_rationale_139",
- "community": 380,
+ "community": 372,
"norm_label": "``file_context_keep_local`` is a distinct discriminator value."
},
{
@@ -8946,7 +9171,7 @@
"source_file": "tests/unit/ui/test_file_list.py",
"source_location": "L144",
"id": "ui_test_file_list_rationale_144",
- "community": 376,
+ "community": 373,
"norm_label": "the renderer wires the keep-local menu item and tombstone row. exercises th"
},
{
@@ -8955,7 +9180,7 @@
"source_file": "tests/unit/ui/test_file_list.py",
"source_location": "L272",
"id": "ui_test_file_list_rationale_272",
- "community": 211,
+ "community": 147,
"norm_label": "the row whose path matches ``selected_path`` carries the selected fill."
},
{
@@ -8964,7 +9189,7 @@
"source_file": "tests/unit/ui/test_file_list.py",
"source_location": "L285",
"id": "ui_test_file_list_rationale_285",
- "community": 211,
+ "community": 147,
"norm_label": "a tombstone row carries the data-tombstone attr + dim/italic decoration."
},
{
@@ -8973,7 +9198,7 @@
"source_file": "tests/unit/ui/test_file_list.py",
"source_location": "L294",
"id": "ui_test_file_list_rationale_294",
- "community": 377,
+ "community": 147,
"norm_label": "single-click selection fires ``on_select`` for files and folders."
},
{
@@ -8982,7 +9207,7 @@
"source_file": "tests/unit/ui/test_file_list.py",
"source_location": "L307",
"id": "ui_test_file_list_rationale_307",
- "community": 211,
+ "community": 147,
"norm_label": "selection is opt-in: with no ``on_select`` the rows wire no click handler."
},
{
@@ -8991,133 +9216,151 @@
"source_file": "tests/unit/ui/test_theme.py",
"source_location": "L1",
"id": "tests_unit_ui_test_theme_py",
- "community": 117,
+ "community": 70,
"norm_label": "test_theme.py"
},
{
- "label": "test_root_css_contains_primary_palette()",
+ "label": "test_root_css_includes_compact_density_rule()",
"file_type": "code",
"source_file": "tests/unit/ui/test_theme.py",
"source_location": "L13",
+ "id": "ui_test_theme_test_root_css_includes_compact_density_rule",
+ "community": 70,
+ "norm_label": "test_root_css_includes_compact_density_rule()"
+ },
+ {
+ "label": "test_root_css_includes_tree_selection_rule()",
+ "file_type": "code",
+ "source_file": "tests/unit/ui/test_theme.py",
+ "source_location": "L22",
+ "id": "ui_test_theme_test_root_css_includes_tree_selection_rule",
+ "community": 70,
+ "norm_label": "test_root_css_includes_tree_selection_rule()"
+ },
+ {
+ "label": "test_root_css_contains_primary_palette()",
+ "file_type": "code",
+ "source_file": "tests/unit/ui/test_theme.py",
+ "source_location": "L32",
"id": "ui_test_theme_test_root_css_contains_primary_palette",
- "community": 117,
+ "community": 70,
"norm_label": "test_root_css_contains_primary_palette()"
},
{
"label": "test_root_css_contains_okabe_ito_palette()",
"file_type": "code",
"source_file": "tests/unit/ui/test_theme.py",
- "source_location": "L28",
+ "source_location": "L47",
"id": "ui_test_theme_test_root_css_contains_okabe_ito_palette",
- "community": 117,
+ "community": 70,
"norm_label": "test_root_css_contains_okabe_ito_palette()"
},
{
"label": "test_root_css_contains_ui_refresh_surface_tokens()",
"file_type": "code",
"source_file": "tests/unit/ui/test_theme.py",
- "source_location": "L43",
+ "source_location": "L62",
"id": "ui_test_theme_test_root_css_contains_ui_refresh_surface_tokens",
- "community": 117,
+ "community": 70,
"norm_label": "test_root_css_contains_ui_refresh_surface_tokens()"
},
{
"label": "test_root_css_emits_previously_undefined_referenced_vars()",
"file_type": "code",
"source_file": "tests/unit/ui/test_theme.py",
- "source_location": "L56",
+ "source_location": "L75",
"id": "ui_test_theme_test_root_css_emits_previously_undefined_referenced_vars",
- "community": 117,
+ "community": 70,
"norm_label": "test_root_css_emits_previously_undefined_referenced_vars()"
},
{
"label": "test_root_css_contains_semantic_aliases()",
"file_type": "code",
"source_file": "tests/unit/ui/test_theme.py",
- "source_location": "L95",
+ "source_location": "L114",
"id": "ui_test_theme_test_root_css_contains_semantic_aliases",
- "community": 117,
+ "community": 70,
"norm_label": "test_root_css_contains_semantic_aliases()"
},
{
"label": "test_root_css_contains_typography_tokens()",
"file_type": "code",
"source_file": "tests/unit/ui/test_theme.py",
- "source_location": "L103",
+ "source_location": "L122",
"id": "ui_test_theme_test_root_css_contains_typography_tokens",
- "community": 117,
+ "community": 70,
"norm_label": "test_root_css_contains_typography_tokens()"
},
{
"label": "test_root_css_contains_spacing_scale()",
"file_type": "code",
"source_file": "tests/unit/ui/test_theme.py",
- "source_location": "L111",
+ "source_location": "L130",
"id": "ui_test_theme_test_root_css_contains_spacing_scale",
- "community": 117,
+ "community": 70,
"norm_label": "test_root_css_contains_spacing_scale()"
},
{
"label": "test_root_css_contains_radius_tokens()",
"file_type": "code",
"source_file": "tests/unit/ui/test_theme.py",
- "source_location": "L117",
+ "source_location": "L136",
"id": "ui_test_theme_test_root_css_contains_radius_tokens",
- "community": 117,
+ "community": 70,
"norm_label": "test_root_css_contains_radius_tokens()"
},
{
"label": "test_root_css_contains_shadow_tokens()",
"file_type": "code",
"source_file": "tests/unit/ui/test_theme.py",
- "source_location": "L124",
+ "source_location": "L143",
"id": "ui_test_theme_test_root_css_contains_shadow_tokens",
- "community": 117,
+ "community": 70,
"norm_label": "test_root_css_contains_shadow_tokens()"
},
{
"label": "test_root_css_navy_tinted_shadows()",
"file_type": "code",
"source_file": "tests/unit/ui/test_theme.py",
- "source_location": "L133",
+ "source_location": "L152",
"id": "ui_test_theme_test_root_css_navy_tinted_shadows",
- "community": 117,
+ "community": 70,
"norm_label": "test_root_css_navy_tinted_shadows()"
},
{
"label": "test_root_css_motion_tokens()",
"file_type": "code",
"source_file": "tests/unit/ui/test_theme.py",
- "source_location": "L140",
+ "source_location": "L159",
"id": "ui_test_theme_test_root_css_motion_tokens",
- "community": 117,
+ "community": 70,
"norm_label": "test_root_css_motion_tokens()"
},
{
"label": "test_root_css_starts_with_root_block()",
"file_type": "code",
"source_file": "tests/unit/ui/test_theme.py",
- "source_location": "L146",
+ "source_location": "L165",
"id": "ui_test_theme_test_root_css_starts_with_root_block",
- "community": 117,
+ "community": 70,
"norm_label": "test_root_css_starts_with_root_block()"
},
{
"label": "test_root_css_includes_body_resets()",
"file_type": "code",
"source_file": "tests/unit/ui/test_theme.py",
- "source_location": "L153",
+ "source_location": "L172",
"id": "ui_test_theme_test_root_css_includes_body_resets",
- "community": 117,
+ "community": 70,
"norm_label": "test_root_css_includes_body_resets()"
},
{
"label": "test_resolve_assets_dir_points_at_repo_assets_in_source_layout()",
"file_type": "code",
"source_file": "tests/unit/ui/test_theme.py",
- "source_location": "L162",
+ "source_location": "L181",
"id": "ui_test_theme_test_resolve_assets_dir_points_at_repo_assets_in_source_layout",
- "community": 117,
+ "community": 70,
"norm_label": "test_resolve_assets_dir_points_at_repo_assets_in_source_layout()"
},
{
@@ -9126,61 +9369,79 @@
"source_file": "tests/unit/ui/test_theme.py",
"source_location": "L1",
"id": "ui_test_theme_rationale_1",
- "community": 117,
+ "community": 70,
"norm_label": "unit tests for :mod:`exlab_wizard.ui.theme`. the theme module renders the ``:ro"
},
+ {
+ "label": "Phase 5 / \u00a74.8: the compact-density rule scopes file-row padding to the .exl",
+ "file_type": "rationale",
+ "source_file": "tests/unit/ui/test_theme.py",
+ "source_location": "L14",
+ "id": "ui_test_theme_rationale_14",
+ "community": 70,
+ "norm_label": "phase 5 / \u00a74.8: the compact-density rule scopes file-row padding to the .exl"
+ },
+ {
+ "label": "Phase 5 / OQ-6: the selected tree node gets the same fill + accent bar as a",
+ "file_type": "rationale",
+ "source_file": "tests/unit/ui/test_theme.py",
+ "source_location": "L23",
+ "id": "ui_test_theme_rationale_23",
+ "community": 70,
+ "norm_label": "phase 5 / oq-6: the selected tree node gets the same fill + accent bar as a"
+ },
{
"label": "The main-window refresh tokens are emitted into the :root block.",
"file_type": "rationale",
"source_file": "tests/unit/ui/test_theme.py",
- "source_location": "L44",
- "id": "ui_test_theme_rationale_44",
- "community": 117,
+ "source_location": "L63",
+ "id": "ui_test_theme_rationale_63",
+ "community": 70,
"norm_label": "the main-window refresh tokens are emitted into the :root block."
},
{
"label": "Regression guard: every var(--\u2026) referenced by a UI component is emitted. T",
"file_type": "rationale",
"source_file": "tests/unit/ui/test_theme.py",
- "source_location": "L57",
- "id": "ui_test_theme_rationale_57",
- "community": 117,
+ "source_location": "L76",
+ "id": "ui_test_theme_rationale_76",
+ "community": 70,
"norm_label": "regression guard: every var(--...) referenced by a ui component is emitted. t"
},
{
"label": "All shadows are navy-tinted (DESIGN.md \u00a704).",
"file_type": "rationale",
"source_file": "tests/unit/ui/test_theme.py",
- "source_location": "L134",
- "id": "ui_test_theme_rationale_134",
- "community": 117,
+ "source_location": "L153",
+ "id": "ui_test_theme_rationale_153",
+ "community": 70,
"norm_label": "all shadows are navy-tinted (design.md \u00a704)."
},
{
"label": "The block opens with ``:root {`` per DESIGN.md \u00a707.",
"file_type": "rationale",
"source_file": "tests/unit/ui/test_theme.py",
- "source_location": "L147",
- "id": "ui_test_theme_rationale_147",
- "community": 117,
+ "source_location": "L166",
+ "id": "ui_test_theme_rationale_166",
+ "community": 70,
"norm_label": "the block opens with ``:root {`` per design.md \u00a707."
},
{
"label": "A body / heading / mono reset block follows the ``:root {}``.",
"file_type": "rationale",
"source_file": "tests/unit/ui/test_theme.py",
- "source_location": "L154",
- "id": "ui_test_theme_rationale_154",
- "community": 117,
+ "source_location": "L173",
+ "id": "ui_test_theme_rationale_173",
+ "community": 70,
"norm_label": "a body / heading / mono reset block follows the ``:root {}``."
},
{
"label": "In source layout, the resolver returns ``/assets/``.",
"file_type": "rationale",
"source_file": "tests/unit/ui/test_theme.py",
- "source_location": "L163",
- "id": "ui_test_theme_rationale_163",
- "community": 117,
+ "source_location": "L182",
+ "id": "ui_test_theme_rationale_182",
+ "community": 70,
"norm_label": "in source layout, the resolver returns ``/assets/``."
},
{
@@ -9189,7 +9450,7 @@
"source_file": "tests/unit/ui/test_settings_nas_remote.py",
"source_location": "L1",
"id": "tests_unit_ui_test_settings_nas_remote_py",
- "community": 31,
+ "community": 32,
"norm_label": "test_settings_nas_remote.py"
},
{
@@ -9198,7 +9459,7 @@
"source_file": "tests/unit/ui/test_settings_nas_remote.py",
"source_location": "L36",
"id": "ui_test_settings_nas_remote_nas_equipment",
- "community": 31,
+ "community": 32,
"norm_label": "_nas_equipment()"
},
{
@@ -9207,7 +9468,7 @@
"source_file": "tests/unit/ui/test_settings_nas_remote.py",
"source_location": "L47",
"id": "ui_test_settings_nas_remote_stage_equipment",
- "community": 31,
+ "community": 32,
"norm_label": "_stage_equipment()"
},
{
@@ -9216,7 +9477,7 @@
"source_file": "tests/unit/ui/test_settings_nas_remote.py",
"source_location": "L59",
"id": "ui_test_settings_nas_remote_config_with",
- "community": 31,
+ "community": 32,
"norm_label": "_config_with()"
},
{
@@ -9225,7 +9486,7 @@
"source_file": "tests/unit/ui/test_settings_nas_remote.py",
"source_location": "L73",
"id": "ui_test_settings_nas_remote_testids",
- "community": 31,
+ "community": 32,
"norm_label": "_testids()"
},
{
@@ -9234,7 +9495,7 @@
"source_file": "tests/unit/ui/test_settings_nas_remote.py",
"source_location": "L81",
"id": "ui_test_settings_nas_remote_section_body",
- "community": 31,
+ "community": 32,
"norm_label": "_section_body()"
},
{
@@ -9243,7 +9504,7 @@
"source_file": "tests/unit/ui/test_settings_nas_remote.py",
"source_location": "L90",
"id": "ui_test_settings_nas_remote_section_testids",
- "community": 31,
+ "community": 32,
"norm_label": "_section_testids()"
},
{
@@ -9252,7 +9513,7 @@
"source_file": "tests/unit/ui/test_settings_nas_remote.py",
"source_location": "L95",
"id": "ui_test_settings_nas_remote_text_of",
- "community": 31,
+ "community": 32,
"norm_label": "_text_of()"
},
{
@@ -9261,7 +9522,7 @@
"source_file": "tests/unit/ui/test_settings_nas_remote.py",
"source_location": "L114",
"id": "ui_test_settings_nas_remote_find",
- "community": 31,
+ "community": 32,
"norm_label": "_find()"
},
{
@@ -9270,7 +9531,7 @@
"source_file": "tests/unit/ui/test_settings_nas_remote.py",
"source_location": "L121",
"id": "ui_test_settings_nas_remote_find_all",
- "community": 31,
+ "community": 32,
"norm_label": "_find_all()"
},
{
@@ -9279,7 +9540,7 @@
"source_file": "tests/unit/ui/test_settings_nas_remote.py",
"source_location": "L129",
"id": "ui_test_settings_nas_remote_click_handler",
- "community": 31,
+ "community": 32,
"norm_label": "_click_handler()"
},
{
@@ -9288,7 +9549,7 @@
"source_file": "tests/unit/ui/test_settings_nas_remote.py",
"source_location": "L148",
"id": "ui_test_settings_nas_remote_click",
- "community": 31,
+ "community": 32,
"norm_label": "_click()"
},
{
@@ -9297,7 +9558,7 @@
"source_file": "tests/unit/ui/test_settings_nas_remote.py",
"source_location": "L154",
"id": "ui_test_settings_nas_remote_draft_of",
- "community": 31,
+ "community": 32,
"norm_label": "_draft_of()"
},
{
@@ -9306,7 +9567,7 @@
"source_file": "tests/unit/ui/test_settings_nas_remote.py",
"source_location": "L166",
"id": "ui_test_settings_nas_remote_test_sections_omit_nas_remote_without_nas_equipment",
- "community": 31,
+ "community": 32,
"norm_label": "test_sections_omit_nas_remote_without_nas_equipment()"
},
{
@@ -9315,7 +9576,7 @@
"source_file": "tests/unit/ui/test_settings_nas_remote.py",
"source_location": "L174",
"id": "ui_test_settings_nas_remote_test_sections_insert_nas_remote_after_equipment",
- "community": 31,
+ "community": 32,
"norm_label": "test_sections_insert_nas_remote_after_equipment()"
},
{
@@ -9324,7 +9585,7 @@
"source_file": "tests/unit/ui/test_settings_nas_remote.py",
"source_location": "L188",
"id": "ui_test_settings_nas_remote_test_section_renders_configured_remote_and_base_root",
- "community": 31,
+ "community": 32,
"norm_label": "test_section_renders_configured_remote_and_base_root()"
},
{
@@ -9333,7 +9594,7 @@
"source_file": "tests/unit/ui/test_settings_nas_remote.py",
"source_location": "L204",
"id": "ui_test_settings_nas_remote_test_section_has_no_password_input",
- "community": 31,
+ "community": 32,
"norm_label": "test_section_has_no_password_input()"
},
{
@@ -9342,7 +9603,7 @@
"source_file": "tests/unit/ui/test_settings_nas_remote.py",
"source_location": "L220",
"id": "ui_test_settings_nas_remote_test_section_has_test_connection_control",
- "community": 31,
+ "community": 32,
"norm_label": "test_section_has_test_connection_control()"
},
{
@@ -9351,7 +9612,7 @@
"source_file": "tests/unit/ui/test_settings_nas_remote.py",
"source_location": "L232",
"id": "ui_test_settings_nas_remote_test_status_badge_found_when_remote_available",
- "community": 31,
+ "community": 32,
"norm_label": "test_status_badge_found_when_remote_available()"
},
{
@@ -9360,7 +9621,7 @@
"source_file": "tests/unit/ui/test_settings_nas_remote.py",
"source_location": "L245",
"id": "ui_test_settings_nas_remote_test_status_badge_not_found_when_remote_absent",
- "community": 31,
+ "community": 32,
"norm_label": "test_status_badge_not_found_when_remote_absent()"
},
{
@@ -9369,7 +9630,7 @@
"source_file": "tests/unit/ui/test_settings_nas_remote.py",
"source_location": "L259",
"id": "ui_test_settings_nas_remote_test_nav_entry_present_when_nas_equipment_exists",
- "community": 31,
+ "community": 32,
"norm_label": "test_nav_entry_present_when_nas_equipment_exists()"
},
{
@@ -9378,7 +9639,7 @@
"source_file": "tests/unit/ui/test_settings_nas_remote.py",
"source_location": "L270",
"id": "ui_test_settings_nas_remote_test_nav_entry_absent_for_stage_only_config",
- "community": 31,
+ "community": 32,
"norm_label": "test_nav_entry_absent_for_stage_only_config()"
},
{
@@ -9387,7 +9648,7 @@
"source_file": "tests/unit/ui/test_settings_nas_remote.py",
"source_location": "L285",
"id": "ui_test_settings_nas_remote_test_test_connection_handler_invokes_callback_and_renders_panel",
- "community": 31,
+ "community": 32,
"norm_label": "test_test_connection_handler_invokes_callback_and_renders_panel()"
},
{
@@ -9396,7 +9657,7 @@
"source_file": "tests/unit/ui/test_settings_nas_remote.py",
"source_location": "L312",
"id": "ui_test_settings_nas_remote_test_test_connection_handler_awaits_coroutine_result",
- "community": 31,
+ "community": 32,
"norm_label": "test_test_connection_handler_awaits_coroutine_result()"
},
{
@@ -9405,7 +9666,7 @@
"source_file": "tests/unit/ui/test_settings_nas_remote.py",
"source_location": "L340",
"id": "ui_test_settings_nas_remote_test_test_connection_handler_no_op_without_callback",
- "community": 31,
+ "community": 32,
"norm_label": "test_test_connection_handler_no_op_without_callback()"
},
{
@@ -9414,7 +9675,7 @@
"source_file": "tests/unit/ui/test_settings_nas_remote.py",
"source_location": "L360",
"id": "ui_test_settings_nas_remote_test_save_emits_validated_config",
- "community": 31,
+ "community": 32,
"norm_label": "test_save_emits_validated_config()"
},
{
@@ -9423,7 +9684,7 @@
"source_file": "tests/unit/ui/test_settings_nas_remote.py",
"source_location": "L372",
"id": "ui_test_settings_nas_remote_test_save_is_noop_when_no_handler_wired",
- "community": 31,
+ "community": 32,
"norm_label": "test_save_is_noop_when_no_handler_wired()"
},
{
@@ -9432,7 +9693,7 @@
"source_file": "tests/unit/ui/test_settings_nas_remote.py",
"source_location": "L382",
"id": "ui_test_settings_nas_remote_test_save_swallows_validation_error_and_does_not_emit",
- "community": 31,
+ "community": 32,
"norm_label": "test_save_swallows_validation_error_and_does_not_emit()"
},
{
@@ -9441,7 +9702,7 @@
"source_file": "tests/unit/ui/test_settings_nas_remote.py",
"source_location": "L403",
"id": "ui_test_settings_nas_remote_test_discard_invokes_handler_with_state",
- "community": 31,
+ "community": 32,
"norm_label": "test_discard_invokes_handler_with_state()"
},
{
@@ -9450,7 +9711,7 @@
"source_file": "tests/unit/ui/test_settings_nas_remote.py",
"source_location": "L421",
"id": "ui_test_settings_nas_remote_test_nav_click_selects_section_and_invokes_callback",
- "community": 31,
+ "community": 32,
"norm_label": "test_nav_click_selects_section_and_invokes_callback()"
},
{
@@ -9459,7 +9720,7 @@
"source_file": "tests/unit/ui/test_settings_nas_remote.py",
"source_location": "L435",
"id": "ui_test_settings_nas_remote_test_nav_click_without_callback_does_not_raise",
- "community": 31,
+ "community": 32,
"norm_label": "test_nav_click_without_callback_does_not_raise()"
},
{
@@ -9468,7 +9729,7 @@
"source_file": "tests/unit/ui/test_settings_nas_remote.py",
"source_location": "L451",
"id": "ui_test_settings_nas_remote_test_equipment_add_appends_row",
- "community": 31,
+ "community": 32,
"norm_label": "test_equipment_add_appends_row()"
},
{
@@ -9477,7 +9738,7 @@
"source_file": "tests/unit/ui/test_settings_nas_remote.py",
"source_location": "L471",
"id": "ui_test_settings_nas_remote_test_equipment_add_rejects_duplicate_id",
- "community": 31,
+ "community": 32,
"norm_label": "test_equipment_add_rejects_duplicate_id()"
},
{
@@ -9486,7 +9747,7 @@
"source_file": "tests/unit/ui/test_settings_nas_remote.py",
"source_location": "L488",
"id": "ui_test_settings_nas_remote_test_equipment_add_rejects_invalid_id",
- "community": 31,
+ "community": 32,
"norm_label": "test_equipment_add_rejects_invalid_id()"
},
{
@@ -9495,7 +9756,7 @@
"source_file": "tests/unit/ui/test_settings_nas_remote.py",
"source_location": "L511",
"id": "ui_test_settings_nas_remote_test_scan_ext_chip_remove_drops_entry",
- "community": 31,
+ "community": 32,
"norm_label": "test_scan_ext_chip_remove_drops_entry()"
},
{
@@ -9504,7 +9765,7 @@
"source_file": "tests/unit/ui/test_settings_nas_remote.py",
"source_location": "L525",
"id": "ui_test_settings_nas_remote_test_scan_ext_chip_reset_restores_defaults",
- "community": 31,
+ "community": 32,
"norm_label": "test_scan_ext_chip_reset_restores_defaults()"
},
{
@@ -9513,7 +9774,7 @@
"source_file": "tests/unit/ui/test_settings_nas_remote.py",
"source_location": "L541",
"id": "ui_test_settings_nas_remote_test_scan_ext_chip_add_validates_leading_dot",
- "community": 31,
+ "community": 32,
"norm_label": "test_scan_ext_chip_add_validates_leading_dot()"
},
{
@@ -9522,7 +9783,7 @@
"source_file": "tests/unit/ui/test_settings_nas_remote.py",
"source_location": "L571",
"id": "ui_test_settings_nas_remote_test_operators_chip_add_appends_value",
- "community": 31,
+ "community": 32,
"norm_label": "test_operators_chip_add_appends_value()"
},
{
@@ -9549,7 +9810,7 @@
"source_file": "tests/unit/ui/test_settings_nas_remote.py",
"source_location": "L602",
"id": "ui_test_settings_nas_remote_fire_change",
- "community": 31,
+ "community": 32,
"norm_label": "_fire_change()"
},
{
@@ -9558,7 +9819,7 @@
"source_file": "tests/unit/ui/test_settings_nas_remote.py",
"source_location": "L607",
"id": "ui_test_settings_nas_remote_test_autostart_toggle_invokes_setter",
- "community": 31,
+ "community": 32,
"norm_label": "test_autostart_toggle_invokes_setter()"
},
{
@@ -9567,7 +9828,7 @@
"source_file": "tests/unit/ui/test_settings_nas_remote.py",
"source_location": "L620",
"id": "ui_test_settings_nas_remote_test_autostart_toggle_reverts_when_setter_disagrees",
- "community": 31,
+ "community": 32,
"norm_label": "test_autostart_toggle_reverts_when_setter_disagrees()"
},
{
@@ -9576,7 +9837,7 @@
"source_file": "tests/unit/ui/test_settings_nas_remote.py",
"source_location": "L641",
"id": "ui_test_settings_nas_remote_test_autostart_disabled_when_no_setter_wired",
- "community": 31,
+ "community": 32,
"norm_label": "test_autostart_disabled_when_no_setter_wired()"
},
{
@@ -9585,7 +9846,7 @@
"source_file": "tests/unit/ui/test_settings_nas_remote.py",
"source_location": "L654",
"id": "ui_test_settings_nas_remote_test_quit_disabled_when_no_handler_wired",
- "community": 31,
+ "community": 32,
"norm_label": "test_quit_disabled_when_no_handler_wired()"
},
{
@@ -9594,7 +9855,7 @@
"source_file": "tests/unit/ui/test_settings_nas_remote.py",
"source_location": "L664",
"id": "ui_test_settings_nas_remote_test_quit_confirm_dialog_runs_callback",
- "community": 31,
+ "community": 32,
"norm_label": "test_quit_confirm_dialog_runs_callback()"
},
{
@@ -9603,7 +9864,7 @@
"source_file": "tests/unit/ui/test_settings_nas_remote.py",
"source_location": "L691",
"id": "ui_test_settings_nas_remote_test_render_returns_payload_dict_when_nicegui_unavailable",
- "community": 31,
+ "community": 32,
"norm_label": "test_render_returns_payload_dict_when_nicegui_unavailable()"
},
{
@@ -9612,7 +9873,7 @@
"source_file": "tests/unit/ui/test_settings_nas_remote.py",
"source_location": "L1",
"id": "ui_test_settings_nas_remote_rationale_1",
- "community": 31,
+ "community": 32,
"norm_label": "tests for the settings nas-remote section (rclone.conf migration). the section"
},
{
@@ -9621,7 +9882,7 @@
"source_file": "tests/unit/ui/test_settings_nas_remote.py",
"source_location": "L82",
"id": "ui_test_settings_nas_remote_rationale_82",
- "community": 31,
+ "community": 32,
"norm_label": "return the rendered body container for ``section`` (or the page)."
},
{
@@ -9630,7 +9891,7 @@
"source_file": "tests/unit/ui/test_settings_nas_remote.py",
"source_location": "L91",
"id": "ui_test_settings_nas_remote_rationale_91",
- "community": 31,
+ "community": 32,
"norm_label": "testids confined to one section body (the whole page renders all)."
},
{
@@ -9639,7 +9900,7 @@
"source_file": "tests/unit/ui/test_settings_nas_remote.py",
"source_location": "L130",
"id": "ui_test_settings_nas_remote_rationale_130",
- "community": 31,
+ "community": 32,
"norm_label": "return the user callback registered for ``event_type`` on a widget. ``on_cl"
},
{
@@ -9648,7 +9909,7 @@
"source_file": "tests/unit/ui/test_settings_nas_remote.py",
"source_location": "L155",
"id": "ui_test_settings_nas_remote_rationale_155",
- "community": 31,
+ "community": 32,
"norm_label": "pull the in-progress draft out of the save handler's closure."
},
{
@@ -9657,7 +9918,7 @@
"source_file": "tests/unit/ui/test_breadcrumb.py",
"source_location": "L1",
"id": "tests_unit_ui_test_breadcrumb_py",
- "community": 227,
+ "community": 223,
"norm_label": "test_breadcrumb.py"
},
{
@@ -9666,7 +9927,7 @@
"source_file": "tests/unit/ui/test_breadcrumb.py",
"source_location": "L11",
"id": "ui_test_breadcrumb_test_segments_from_none_returns_empty",
- "community": 227,
+ "community": 223,
"norm_label": "test_segments_from_none_returns_empty()"
},
{
@@ -9675,7 +9936,7 @@
"source_file": "tests/unit/ui/test_breadcrumb.py",
"source_location": "L15",
"id": "ui_test_breadcrumb_test_segments_from_empty_returns_empty",
- "community": 227,
+ "community": 223,
"norm_label": "test_segments_from_empty_returns_empty()"
},
{
@@ -9684,7 +9945,7 @@
"source_file": "tests/unit/ui/test_breadcrumb.py",
"source_location": "L19",
"id": "ui_test_breadcrumb_test_segments_for_run_node",
- "community": 227,
+ "community": 223,
"norm_label": "test_segments_for_run_node()"
},
{
@@ -9693,7 +9954,7 @@
"source_file": "tests/unit/ui/test_breadcrumb.py",
"source_location": "L32",
"id": "ui_test_breadcrumb_test_segments_strip_empty_components",
- "community": 227,
+ "community": 223,
"norm_label": "test_segments_strip_empty_components()"
},
{
@@ -9702,7 +9963,7 @@
"source_file": "tests/unit/ui/test_breadcrumb.py",
"source_location": "L1",
"id": "ui_test_breadcrumb_rationale_1",
- "community": 227,
+ "community": 223,
"norm_label": "unit tests for ``ui/components/breadcrumb``. redesign \u00a74.7 / decision 7a."
},
{
@@ -9711,7 +9972,7 @@
"source_file": "tests/unit/ui/test_breadcrumb.py",
"source_location": "L33",
"id": "ui_test_breadcrumb_rationale_33",
- "community": 227,
+ "community": 223,
"norm_label": "a double-slash or trailing slash doesn't produce empty segments."
},
{
@@ -9720,7 +9981,7 @@
"source_file": "tests/unit/ui/test_sync_rollup.py",
"source_location": "L1",
"id": "tests_unit_ui_test_sync_rollup_py",
- "community": 178,
+ "community": 183,
"norm_label": "test_sync_rollup.py"
},
{
@@ -9729,7 +9990,7 @@
"source_file": "tests/unit/ui/test_sync_rollup.py",
"source_location": "L15",
"id": "ui_test_sync_rollup_test_empty_input_returns_none",
- "community": 178,
+ "community": 183,
"norm_label": "test_empty_input_returns_none()"
},
{
@@ -9738,7 +9999,7 @@
"source_file": "tests/unit/ui/test_sync_rollup.py",
"source_location": "L19",
"id": "ui_test_sync_rollup_test_all_none_returns_none",
- "community": 178,
+ "community": 183,
"norm_label": "test_all_none_returns_none()"
},
{
@@ -9747,7 +10008,7 @@
"source_file": "tests/unit/ui/test_sync_rollup.py",
"source_location": "L23",
"id": "ui_test_sync_rollup_test_unknown_values_ignored",
- "community": 178,
+ "community": 183,
"norm_label": "test_unknown_values_ignored()"
},
{
@@ -9756,7 +10017,7 @@
"source_file": "tests/unit/ui/test_sync_rollup.py",
"source_location": "L27",
"id": "ui_test_sync_rollup_test_single_status_rolls_up_to_itself",
- "community": 178,
+ "community": 183,
"norm_label": "test_single_status_rolls_up_to_itself()"
},
{
@@ -9765,7 +10026,7 @@
"source_file": "tests/unit/ui/test_sync_rollup.py",
"source_location": "L31",
"id": "ui_test_sync_rollup_test_failed_dominates_everything",
- "community": 178,
+ "community": 183,
"norm_label": "test_failed_dominates_everything()"
},
{
@@ -9774,7 +10035,7 @@
"source_file": "tests/unit/ui/test_sync_rollup.py",
"source_location": "L35",
"id": "ui_test_sync_rollup_test_blocked_beats_pending_synced_cleaned",
- "community": 178,
+ "community": 183,
"norm_label": "test_blocked_beats_pending_synced_cleaned()"
},
{
@@ -9783,7 +10044,7 @@
"source_file": "tests/unit/ui/test_sync_rollup.py",
"source_location": "L39",
"id": "ui_test_sync_rollup_test_pending_beats_synced_and_cleaned",
- "community": 178,
+ "community": 183,
"norm_label": "test_pending_beats_synced_and_cleaned()"
},
{
@@ -9792,7 +10053,7 @@
"source_file": "tests/unit/ui/test_sync_rollup.py",
"source_location": "L43",
"id": "ui_test_sync_rollup_test_synced_beats_cleaned",
- "community": 178,
+ "community": 183,
"norm_label": "test_synced_beats_cleaned()"
},
{
@@ -9801,7 +10062,7 @@
"source_file": "tests/unit/ui/test_sync_rollup.py",
"source_location": "L47",
"id": "ui_test_sync_rollup_test_cleaned_is_lowest",
- "community": 178,
+ "community": 183,
"norm_label": "test_cleaned_is_lowest()"
},
{
@@ -9810,7 +10071,7 @@
"source_file": "tests/unit/ui/test_sync_rollup.py",
"source_location": "L51",
"id": "ui_test_sync_rollup_test_none_and_unknown_excluded_but_known_survives",
- "community": 178,
+ "community": 183,
"norm_label": "test_none_and_unknown_excluded_but_known_survives()"
},
{
@@ -9819,7 +10080,7 @@
"source_file": "tests/unit/ui/test_sync_rollup.py",
"source_location": "L55",
"id": "ui_test_sync_rollup_test_full_severity_order",
- "community": 178,
+ "community": 183,
"norm_label": "test_full_severity_order()"
},
{
@@ -9828,7 +10089,7 @@
"source_file": "tests/unit/ui/test_sync_rollup.py",
"source_location": "L63",
"id": "ui_test_sync_rollup_test_accepts_syncstatus_enum_members_directly",
- "community": 178,
+ "community": 183,
"norm_label": "test_accepts_syncstatus_enum_members_directly()"
},
{
@@ -9837,7 +10098,7 @@
"source_file": "tests/unit/ui/test_sync_rollup.py",
"source_location": "L1",
"id": "ui_test_sync_rollup_rationale_1",
- "community": 178,
+ "community": 183,
"norm_label": "unit tests for the folder-level sync-status rollup (redesign \u00a74.6)."
},
{
@@ -9846,7 +10107,7 @@
"source_file": "tests/unit/ui/test_sync_rollup.py",
"source_location": "L56",
"id": "ui_test_sync_rollup_rationale_56",
- "community": 178,
+ "community": 183,
"norm_label": "failed > blocked > pending > synced > cleaned: each prefix's rollup is its f"
},
{
@@ -9855,7 +10116,7 @@
"source_file": "tests/unit/ui/test_sync_rollup.py",
"source_location": "L64",
"id": "ui_test_sync_rollup_rationale_64",
- "community": 178,
+ "community": 183,
"norm_label": "syncstatus is a strenum, so passing members (not .value strings) works. gua"
},
{
@@ -9864,7 +10125,7 @@
"source_file": "tests/unit/ui/test_factories_smoke.py",
"source_location": "L1",
"id": "tests_unit_ui_test_factories_smoke_py",
- "community": 43,
+ "community": 66,
"norm_label": "test_factories_smoke.py"
},
{
@@ -9873,7 +10134,7 @@
"source_file": "tests/unit/ui/test_factories_smoke.py",
"source_location": "L50",
"id": "ui_test_factories_smoke_slot",
- "community": 43,
+ "community": 66,
"norm_label": "_slot()"
},
{
@@ -9882,7 +10143,7 @@
"source_file": "tests/unit/ui/test_factories_smoke.py",
"source_location": "L56",
"id": "ui_test_factories_smoke_test_smoke_mode_badge_renders_in_slot",
- "community": 43,
+ "community": 66,
"norm_label": "test_smoke_mode_badge_renders_in_slot()"
},
{
@@ -9891,7 +10152,7 @@
"source_file": "tests/unit/ui/test_factories_smoke.py",
"source_location": "L65",
"id": "ui_test_factories_smoke_test_smoke_test_run_badge_renders",
- "community": 43,
+ "community": 66,
"norm_label": "test_smoke_test_run_badge_renders()"
},
{
@@ -9900,7 +10161,7 @@
"source_file": "tests/unit/ui/test_factories_smoke.py",
"source_location": "L71",
"id": "ui_test_factories_smoke_test_smoke_override_badge_renders_with_callback",
- "community": 43,
+ "community": 66,
"norm_label": "test_smoke_override_badge_renders_with_callback()"
},
{
@@ -9909,7 +10170,7 @@
"source_file": "tests/unit/ui/test_factories_smoke.py",
"source_location": "L81",
"id": "ui_test_factories_smoke_test_smoke_sync_status_icon_renders_each_state",
- "community": 43,
+ "community": 66,
"norm_label": "test_smoke_sync_status_icon_renders_each_state()"
},
{
@@ -9918,7 +10179,7 @@
"source_file": "tests/unit/ui/test_factories_smoke.py",
"source_location": "L97",
"id": "ui_test_factories_smoke_test_smoke_session_progress_renders",
- "community": 43,
+ "community": 66,
"norm_label": "test_smoke_session_progress_renders()"
},
{
@@ -9927,7 +10188,7 @@
"source_file": "tests/unit/ui/test_factories_smoke.py",
"source_location": "L112",
"id": "ui_test_factories_smoke_test_smoke_credential_field_renders_each_state",
- "community": 43,
+ "community": 66,
"norm_label": "test_smoke_credential_field_renders_each_state()"
},
{
@@ -9936,7 +10197,7 @@
"source_file": "tests/unit/ui/test_factories_smoke.py",
"source_location": "L128",
"id": "ui_test_factories_smoke_credential_testids",
- "community": 43,
+ "community": 66,
"norm_label": "_credential_testids()"
},
{
@@ -9945,7 +10206,7 @@
"source_file": "tests/unit/ui/test_factories_smoke.py",
"source_location": "L138",
"id": "ui_test_factories_smoke_test_credential_field_editing_state_renders_a_password_input",
- "community": 43,
+ "community": 66,
"norm_label": "test_credential_field_editing_state_renders_a_password_input()"
},
{
@@ -9954,7 +10215,7 @@
"source_file": "tests/unit/ui/test_factories_smoke.py",
"source_location": "L160",
"id": "ui_test_factories_smoke_test_credential_field_not_set_state_renders_set_button_without_input",
- "community": 43,
+ "community": 66,
"norm_label": "test_credential_field_not_set_state_renders_set_button_without_input()"
},
{
@@ -9963,7 +10224,7 @@
"source_file": "tests/unit/ui/test_factories_smoke.py",
"source_location": "L174",
"id": "ui_test_factories_smoke_test_credential_field_set_state_renders_replace_and_clear_buttons",
- "community": 43,
+ "community": 66,
"norm_label": "test_credential_field_set_state_renders_replace_and_clear_buttons()"
},
{
@@ -9972,7 +10233,7 @@
"source_file": "tests/unit/ui/test_factories_smoke.py",
"source_location": "L188",
"id": "ui_test_factories_smoke_test_smoke_test_connection_panel_renders",
- "community": 43,
+ "community": 66,
"norm_label": "test_smoke_test_connection_panel_renders()"
},
{
@@ -9981,7 +10242,7 @@
"source_file": "tests/unit/ui/test_factories_smoke.py",
"source_location": "L204",
"id": "ui_test_factories_smoke_test_smoke_filter_chips_renders",
- "community": 43,
+ "community": 66,
"norm_label": "test_smoke_filter_chips_renders()"
},
{
@@ -9990,7 +10251,7 @@
"source_file": "tests/unit/ui/test_factories_smoke.py",
"source_location": "L214",
"id": "ui_test_factories_smoke_test_smoke_status_bar_segment_renders",
- "community": 43,
+ "community": 66,
"norm_label": "test_smoke_status_bar_segment_renders()"
},
{
@@ -9999,7 +10260,7 @@
"source_file": "tests/unit/ui/test_factories_smoke.py",
"source_location": "L233",
"id": "ui_test_factories_smoke_test_smoke_banner_stack_renders_with_active_banners",
- "community": 43,
+ "community": 353,
"norm_label": "test_smoke_banner_stack_renders_with_active_banners()"
},
{
@@ -10008,7 +10269,7 @@
"source_file": "tests/unit/ui/test_factories_smoke.py",
"source_location": "L247",
"id": "ui_test_factories_smoke_test_smoke_operations_modal_renders",
- "community": 43,
+ "community": 66,
"norm_label": "test_smoke_operations_modal_renders()"
},
{
@@ -10017,7 +10278,7 @@
"source_file": "tests/unit/ui/test_factories_smoke.py",
"source_location": "L277",
"id": "ui_test_factories_smoke_test_smoke_bandwidth_schedule_editor_renders",
- "community": 43,
+ "community": 66,
"norm_label": "test_smoke_bandwidth_schedule_editor_renders()"
},
{
@@ -10026,7 +10287,7 @@
"source_file": "tests/unit/ui/test_factories_smoke.py",
"source_location": "L301",
"id": "ui_test_factories_smoke_test_smoke_validation_summary_renders",
- "community": 43,
+ "community": 66,
"norm_label": "test_smoke_validation_summary_renders()"
},
{
@@ -10035,7 +10296,7 @@
"source_file": "tests/unit/ui/test_factories_smoke.py",
"source_location": "L326",
"id": "ui_test_factories_smoke_test_smoke_tree_renders",
- "community": 43,
+ "community": 66,
"norm_label": "test_smoke_tree_renders()"
},
{
@@ -10044,7 +10305,7 @@
"source_file": "tests/unit/ui/test_factories_smoke.py",
"source_location": "L348",
"id": "ui_test_factories_smoke_test_smoke_welcome_page_renders",
- "community": 43,
+ "community": 66,
"norm_label": "test_smoke_welcome_page_renders()"
},
{
@@ -10053,7 +10314,7 @@
"source_file": "tests/unit/ui/test_factories_smoke.py",
"source_location": "L356",
"id": "ui_test_factories_smoke_test_smoke_file_explorer_page_renders_setup_complete",
- "community": 43,
+ "community": 66,
"norm_label": "test_smoke_file_explorer_page_renders_setup_complete()"
},
{
@@ -10062,7 +10323,7 @@
"source_file": "tests/unit/ui/test_factories_smoke.py",
"source_location": "L373",
"id": "ui_test_factories_smoke_test_smoke_file_explorer_page_renders_setup_incomplete",
- "community": 43,
+ "community": 353,
"norm_label": "test_smoke_file_explorer_page_renders_setup_incomplete()"
},
{
@@ -10071,7 +10332,7 @@
"source_file": "tests/unit/ui/test_factories_smoke.py",
"source_location": "L389",
"id": "ui_test_factories_smoke_test_smoke_wizard_project_renders",
- "community": 43,
+ "community": 66,
"norm_label": "test_smoke_wizard_project_renders()"
},
{
@@ -10080,7 +10341,7 @@
"source_file": "tests/unit/ui/test_factories_smoke.py",
"source_location": "L397",
"id": "ui_test_factories_smoke_test_smoke_wizard_run_renders_test_mode",
- "community": 43,
+ "community": 66,
"norm_label": "test_smoke_wizard_run_renders_test_mode()"
},
{
@@ -10089,7 +10350,7 @@
"source_file": "tests/unit/ui/test_factories_smoke.py",
"source_location": "L405",
"id": "ui_test_factories_smoke_test_smoke_wizard_run_renders_experimental_mode",
- "community": 43,
+ "community": 66,
"norm_label": "test_smoke_wizard_run_renders_experimental_mode()"
},
{
@@ -10098,7 +10359,7 @@
"source_file": "tests/unit/ui/test_factories_smoke.py",
"source_location": "L413",
"id": "ui_test_factories_smoke_test_smoke_settings_page_renders",
- "community": 43,
+ "community": 66,
"norm_label": "test_smoke_settings_page_renders()"
},
{
@@ -10107,7 +10368,7 @@
"source_file": "tests/unit/ui/test_factories_smoke.py",
"source_location": "L422",
"id": "ui_test_factories_smoke_test_smoke_settings_page_each_section_renders",
- "community": 43,
+ "community": 66,
"norm_label": "test_smoke_settings_page_each_section_renders()"
},
{
@@ -10116,7 +10377,7 @@
"source_file": "tests/unit/ui/test_factories_smoke.py",
"source_location": "L432",
"id": "ui_test_factories_smoke_test_smoke_settings_page_setup_incomplete_auto_selects_first",
- "community": 43,
+ "community": 66,
"norm_label": "test_smoke_settings_page_setup_incomplete_auto_selects_first()"
},
{
@@ -10125,7 +10386,7 @@
"source_file": "tests/unit/ui/test_factories_smoke.py",
"source_location": "L446",
"id": "ui_test_factories_smoke_test_settings_lims_section_renders_credential_field_with_e2e_hooks",
- "community": 43,
+ "community": 66,
"norm_label": "test_settings_lims_section_renders_credential_field_with_e2e_hooks()"
},
{
@@ -10134,7 +10395,7 @@
"source_file": "tests/unit/ui/test_factories_smoke.py",
"source_location": "L461",
"id": "ui_test_factories_smoke_test_settings_lims_section_credential_field_opens_set_when_password_present",
- "community": 43,
+ "community": 66,
"norm_label": "test_settings_lims_section_credential_field_opens_set_when_password_present()"
},
{
@@ -10143,7 +10404,7 @@
"source_file": "tests/unit/ui/test_factories_smoke.py",
"source_location": "L475",
"id": "ui_test_factories_smoke_test_smoke_problems_page_renders",
- "community": 43,
+ "community": 66,
"norm_label": "test_smoke_problems_page_renders()"
},
{
@@ -10152,7 +10413,7 @@
"source_file": "tests/unit/ui/test_factories_smoke.py",
"source_location": "L507",
"id": "ui_test_factories_smoke_test_smoke_problems_page_renders_empty_state",
- "community": 43,
+ "community": 66,
"norm_label": "test_smoke_problems_page_renders_empty_state()"
},
{
@@ -10161,7 +10422,7 @@
"source_file": "tests/unit/ui/test_factories_smoke.py",
"source_location": "L520",
"id": "ui_test_factories_smoke_test_smoke_register_theme_returns_css",
- "community": 43,
+ "community": 66,
"norm_label": "test_smoke_register_theme_returns_css()"
},
{
@@ -10170,7 +10431,7 @@
"source_file": "tests/unit/ui/test_factories_smoke.py",
"source_location": "L525",
"id": "ui_test_factories_smoke_test_smoke_bind_global_shortcuts_does_not_raise",
- "community": 43,
+ "community": 66,
"norm_label": "test_smoke_bind_global_shortcuts_does_not_raise()"
},
{
@@ -10179,7 +10440,7 @@
"source_file": "tests/unit/ui/test_factories_smoke.py",
"source_location": "L1",
"id": "ui_test_factories_smoke_rationale_1",
- "community": 43,
+ "community": 66,
"norm_label": "smoke tests that invoke the nicegui factory functions. the factory functions cr"
},
{
@@ -10188,7 +10449,7 @@
"source_file": "tests/unit/ui/test_factories_smoke.py",
"source_location": "L51",
"id": "ui_test_factories_smoke_rationale_51",
- "community": 43,
+ "community": 66,
"norm_label": "return a nicegui slot we can use as a parent for factory calls."
},
{
@@ -10197,7 +10458,7 @@
"source_file": "tests/unit/ui/test_factories_smoke.py",
"source_location": "L129",
"id": "ui_test_factories_smoke_rationale_129",
- "community": 43,
+ "community": 66,
"norm_label": "collect every ``data-testid`` in an element's subtree."
},
{
@@ -10206,7 +10467,7 @@
"source_file": "tests/unit/ui/test_factories_smoke.py",
"source_location": "L139",
"id": "ui_test_factories_smoke_rationale_139",
- "community": 43,
+ "community": 66,
"norm_label": "regression: the editing state must expose an inline password input."
},
{
@@ -10215,7 +10476,7 @@
"source_file": "tests/unit/ui/test_factories_smoke.py",
"source_location": "L447",
"id": "ui_test_factories_smoke_rationale_447",
- "community": 43,
+ "community": 66,
"norm_label": "the lims section must expose the password credential row."
},
{
@@ -10224,7 +10485,7 @@
"source_file": "tests/unit/ui/test_design.py",
"source_location": "L1",
"id": "tests_unit_ui_test_design_py",
- "community": 328,
+ "community": 301,
"norm_label": "test_design.py"
},
{
@@ -10233,7 +10494,7 @@
"source_file": "tests/unit/ui/test_design.py",
"source_location": "L14",
"id": "ui_test_design_test_primary_palette_matches_designmd",
- "community": 328,
+ "community": 301,
"norm_label": "test_primary_palette_matches_designmd()"
},
{
@@ -10242,7 +10503,7 @@
"source_file": "tests/unit/ui/test_design.py",
"source_location": "L29",
"id": "ui_test_design_test_ui_refresh_surface_tokens_match_designmd",
- "community": 391,
+ "community": 301,
"norm_label": "test_ui_refresh_surface_tokens_match_designmd()"
},
{
@@ -10251,7 +10512,7 @@
"source_file": "tests/unit/ui/test_design.py",
"source_location": "L48",
"id": "ui_test_design_test_okabe_ito_palette_matches_designmd",
- "community": 391,
+ "community": 301,
"norm_label": "test_okabe_ito_palette_matches_designmd()"
},
{
@@ -10260,7 +10521,7 @@
"source_file": "tests/unit/ui/test_design.py",
"source_location": "L61",
"id": "ui_test_design_test_semantic_aliases_are_okabe_ito",
- "community": 421,
+ "community": 462,
"norm_label": "test_semantic_aliases_are_okabe_ito()"
},
{
@@ -10269,7 +10530,7 @@
"source_file": "tests/unit/ui/test_design.py",
"source_location": "L70",
"id": "ui_test_design_test_warning_token_is_oi_orange",
- "community": 430,
+ "community": 468,
"norm_label": "test_warning_token_is_oi_orange()"
},
{
@@ -10278,7 +10539,7 @@
"source_file": "tests/unit/ui/test_design.py",
"source_location": "L76",
"id": "ui_test_design_test_typography_uses_frontend_override",
- "community": 328,
+ "community": 470,
"norm_label": "test_typography_uses_frontend_override()"
},
{
@@ -10287,7 +10548,7 @@
"source_file": "tests/unit/ui/test_design.py",
"source_location": "L86",
"id": "ui_test_design_test_type_scale_matches_designmd",
- "community": 426,
+ "community": 458,
"norm_label": "test_type_scale_matches_designmd()"
},
{
@@ -10296,7 +10557,7 @@
"source_file": "tests/unit/ui/test_design.py",
"source_location": "L100",
"id": "ui_test_design_test_spacing_scale_4px_grid",
- "community": 422,
+ "community": 465,
"norm_label": "test_spacing_scale_4px_grid()"
},
{
@@ -10305,7 +10566,7 @@
"source_file": "tests/unit/ui/test_design.py",
"source_location": "L117",
"id": "ui_test_design_test_radius_tokens_match_designmd",
- "community": 431,
+ "community": 463,
"norm_label": "test_radius_tokens_match_designmd()"
},
{
@@ -10314,7 +10575,7 @@
"source_file": "tests/unit/ui/test_design.py",
"source_location": "L126",
"id": "ui_test_design_test_shadows_are_navy_tinted",
- "community": 428,
+ "community": 461,
"norm_label": "test_shadows_are_navy_tinted()"
},
{
@@ -10323,7 +10584,7 @@
"source_file": "tests/unit/ui/test_design.py",
"source_location": "L133",
"id": "ui_test_design_test_motion_tokens_match_designmd",
- "community": 420,
+ "community": 459,
"norm_label": "test_motion_tokens_match_designmd()"
},
{
@@ -10332,7 +10593,7 @@
"source_file": "tests/unit/ui/test_design.py",
"source_location": "L140",
"id": "ui_test_design_test_okabe_ito_series_order_is_fixed",
- "community": 424,
+ "community": 457,
"norm_label": "test_okabe_ito_series_order_is_fixed()"
},
{
@@ -10341,7 +10602,7 @@
"source_file": "tests/unit/ui/test_design.py",
"source_location": "L154",
"id": "ui_test_design_test_vermilion_is_last_in_series",
- "community": 423,
+ "community": 460,
"norm_label": "test_vermilion_is_last_in_series()"
},
{
@@ -10350,7 +10611,7 @@
"source_file": "tests/unit/ui/test_design.py",
"source_location": "L160",
"id": "ui_test_design_test_no_blue_collision_in_series_first_six",
- "community": 425,
+ "community": 466,
"norm_label": "test_no_blue_collision_in_series_first_six()"
},
{
@@ -10359,7 +10620,7 @@
"source_file": "tests/unit/ui/test_design.py",
"source_location": "L171",
"id": "ui_test_design_test_badge_text_variants_are_wcag_aa",
- "community": 432,
+ "community": 464,
"norm_label": "test_badge_text_variants_are_wcag_aa()"
},
{
@@ -10368,7 +10629,7 @@
"source_file": "tests/unit/ui/test_design.py",
"source_location": "L183",
"id": "ui_test_design_test_alert_text_variants_match_designmd",
- "community": 429,
+ "community": 469,
"norm_label": "test_alert_text_variants_match_designmd()"
},
{
@@ -10377,7 +10638,7 @@
"source_file": "tests/unit/ui/test_design.py",
"source_location": "L194",
"id": "ui_test_design_test_yellow_is_present_but_only_for_fills",
- "community": 427,
+ "community": 467,
"norm_label": "test_yellow_is_present_but_only_for_fills()"
},
{
@@ -10386,7 +10647,7 @@
"source_file": "tests/unit/ui/test_design.py",
"source_location": "L1",
"id": "ui_test_design_rationale_1",
- "community": 328,
+ "community": 301,
"norm_label": "token-equality tests for :mod:`exlab_wizard.ui.design`. the tests assert each c"
},
{
@@ -10395,7 +10656,7 @@
"source_file": "tests/unit/ui/test_design.py",
"source_location": "L15",
"id": "ui_test_design_rationale_15",
- "community": 328,
+ "community": 301,
"norm_label": "primary palette hexes are verbatim from design.md \u00a701."
},
{
@@ -10404,7 +10665,7 @@
"source_file": "tests/unit/ui/test_design.py",
"source_location": "L30",
"id": "ui_test_design_rationale_30",
- "community": 391,
+ "community": 301,
"norm_label": "main-window refresh surface tokens (design.md \u00a702 ui chrome palette). sever"
},
{
@@ -10413,7 +10674,7 @@
"source_file": "tests/unit/ui/test_design.py",
"source_location": "L49",
"id": "ui_test_design_rationale_49",
- "community": 391,
+ "community": 301,
"norm_label": "okabe-ito hexes are verbatim from design.md \u00a701."
},
{
@@ -10422,7 +10683,7 @@
"source_file": "tests/unit/ui/test_design.py",
"source_location": "L62",
"id": "ui_test_design_rationale_62",
- "community": 421,
+ "community": 462,
"norm_label": "semantic tokens alias the okabe-ito palette per design.md \u00a701."
},
{
@@ -10431,7 +10692,7 @@
"source_file": "tests/unit/ui/test_design.py",
"source_location": "L71",
"id": "ui_test_design_rationale_71",
- "community": 430,
+ "community": 468,
"norm_label": "frontend \u00a72.1.4: warning is canonically ``--oi-orange``."
},
{
@@ -10440,7 +10701,7 @@
"source_file": "tests/unit/ui/test_design.py",
"source_location": "L77",
"id": "ui_test_design_rationale_77",
- "community": 328,
+ "community": 470,
"norm_label": "frontend \u00a72.1.3 overrides dm sans / dm mono with ibm plex / system mono."
},
{
@@ -10449,7 +10710,7 @@
"source_file": "tests/unit/ui/test_design.py",
"source_location": "L87",
"id": "ui_test_design_rationale_87",
- "community": 426,
+ "community": 458,
"norm_label": "type scale tokens are verbatim from design.md \u00a702."
},
{
@@ -10458,7 +10719,7 @@
"source_file": "tests/unit/ui/test_design.py",
"source_location": "L101",
"id": "ui_test_design_rationale_101",
- "community": 422,
+ "community": 465,
"norm_label": "spacing tokens follow the 4px grid (design.md \u00a703)."
},
{
@@ -10467,7 +10728,7 @@
"source_file": "tests/unit/ui/test_design.py",
"source_location": "L118",
"id": "ui_test_design_rationale_118",
- "community": 431,
+ "community": 463,
"norm_label": "border radius tokens (design.md \u00a704)."
},
{
@@ -10476,7 +10737,7 @@
"source_file": "tests/unit/ui/test_design.py",
"source_location": "L127",
"id": "ui_test_design_rationale_127",
- "community": 428,
+ "community": 461,
"norm_label": "all shadow definitions use ``rgba(0,54,96,...)`` (design.md \u00a704)."
},
{
@@ -10485,7 +10746,7 @@
"source_file": "tests/unit/ui/test_design.py",
"source_location": "L134",
"id": "ui_test_design_rationale_134",
- "community": 420,
+ "community": 459,
"norm_label": "motion tokens (design.md \u00a707)."
},
{
@@ -10494,7 +10755,7 @@
"source_file": "tests/unit/ui/test_design.py",
"source_location": "L141",
"id": "ui_test_design_rationale_141",
- "community": 424,
+ "community": 457,
"norm_label": "series order is fixed (design.md absolute constraint)."
},
{
@@ -10503,7 +10764,7 @@
"source_file": "tests/unit/ui/test_design.py",
"source_location": "L155",
"id": "ui_test_design_rationale_155",
- "community": 423,
+ "community": 460,
"norm_label": "vermilion is reserved for the error / alert series (design.md \u00a706)."
},
{
@@ -10512,7 +10773,7 @@
"source_file": "tests/unit/ui/test_design.py",
"source_location": "L161",
"id": "ui_test_design_rationale_161",
- "community": 425,
+ "community": 466,
"norm_label": "frontend rules (design.md): series 5 is oi_blue but only after 4 prior series."
},
{
@@ -10521,7 +10782,7 @@
"source_file": "tests/unit/ui/test_design.py",
"source_location": "L172",
"id": "ui_test_design_rationale_172",
- "community": 432,
+ "community": 464,
"norm_label": "badge text variants are the documented darkened hexes (design.md \u00a705)."
},
{
@@ -10530,7 +10791,7 @@
"source_file": "tests/unit/ui/test_design.py",
"source_location": "L184",
"id": "ui_test_design_rationale_184",
- "community": 429,
+ "community": 469,
"norm_label": "alert text variants are the documented hexes (design.md \u00a705)."
},
{
@@ -10539,7 +10800,7 @@
"source_file": "tests/unit/ui/test_design.py",
"source_location": "L195",
"id": "ui_test_design_rationale_195",
- "community": 427,
+ "community": 467,
"norm_label": "``#f0e442`` is exposed as a token but never used for chrome. the chip strip"
},
{
@@ -10548,7 +10809,7 @@
"source_file": "tests/unit/ui/test_travelling_badge.py",
"source_location": "L1",
"id": "tests_unit_ui_test_travelling_badge_py",
- "community": 138,
+ "community": 143,
"norm_label": "test_travelling_badge.py"
},
{
@@ -10557,7 +10818,7 @@
"source_file": "tests/unit/ui/test_travelling_badge.py",
"source_location": "L17",
"id": "ui_test_travelling_badge_hard",
- "community": 138,
+ "community": 143,
"norm_label": "_hard()"
},
{
@@ -10566,7 +10827,7 @@
"source_file": "tests/unit/ui/test_travelling_badge.py",
"source_location": "L21",
"id": "ui_test_travelling_badge_soft",
- "community": 138,
+ "community": 143,
"norm_label": "_soft()"
},
{
@@ -10575,7 +10836,7 @@
"source_file": "tests/unit/ui/test_travelling_badge.py",
"source_location": "L25",
"id": "ui_test_travelling_badge_test_badge_on_root_when_all_collapsed",
- "community": 138,
+ "community": 143,
"norm_label": "test_badge_on_root_when_all_collapsed()"
},
{
@@ -10584,7 +10845,7 @@
"source_file": "tests/unit/ui/test_travelling_badge.py",
"source_location": "L34",
"id": "ui_test_travelling_badge_test_badge_travels_inward_as_nodes_expand",
- "community": 138,
+ "community": 143,
"norm_label": "test_badge_travels_inward_as_nodes_expand()"
},
{
@@ -10593,7 +10854,7 @@
"source_file": "tests/unit/ui/test_travelling_badge.py",
"source_location": "L41",
"id": "ui_test_travelling_badge_test_badge_lands_on_leaf_when_fully_expanded",
- "community": 138,
+ "community": 143,
"norm_label": "test_badge_lands_on_leaf_when_fully_expanded()"
},
{
@@ -10602,7 +10863,7 @@
"source_file": "tests/unit/ui/test_travelling_badge.py",
"source_location": "L52",
"id": "ui_test_travelling_badge_test_red_beats_amber_when_aggregated_on_same_node",
- "community": 138,
+ "community": 143,
"norm_label": "test_red_beats_amber_when_aggregated_on_same_node()"
},
{
@@ -10611,7 +10872,7 @@
"source_file": "tests/unit/ui/test_travelling_badge.py",
"source_location": "L62",
"id": "ui_test_travelling_badge_test_amber_only_when_no_hard_findings",
- "community": 138,
+ "community": 143,
"norm_label": "test_amber_only_when_no_hard_findings()"
},
{
@@ -10620,7 +10881,7 @@
"source_file": "tests/unit/ui/test_travelling_badge.py",
"source_location": "L68",
"id": "ui_test_travelling_badge_test_two_equipment_get_independent_badges",
- "community": 138,
+ "community": 143,
"norm_label": "test_two_equipment_get_independent_badges()"
},
{
@@ -10629,7 +10890,7 @@
"source_file": "tests/unit/ui/test_travelling_badge.py",
"source_location": "L1",
"id": "ui_test_travelling_badge_rationale_1",
- "community": 138,
+ "community": 143,
"norm_label": "unit tests for the travelling problem-badge pure function. gui/orchestrator red"
},
{
@@ -10638,7 +10899,7 @@
"source_file": "tests/unit/ui/test_travelling_badge.py",
"source_location": "L26",
"id": "ui_test_travelling_badge_rationale_26",
- "community": 138,
+ "community": 143,
"norm_label": "all collapsed: the badge lives on the shallowest collapsed ancestor \u2014 the ro"
},
{
@@ -10647,7 +10908,7 @@
"source_file": "tests/unit/ui/test_travelling_badge.py",
"source_location": "L35",
"id": "ui_test_travelling_badge_rationale_35",
- "community": 138,
+ "community": 143,
"norm_label": "expanding the equipment node moves the badge to the project."
},
{
@@ -10656,7 +10917,7 @@
"source_file": "tests/unit/ui/test_wizard_project_page.py",
"source_location": "L1",
"id": "tests_unit_ui_test_wizard_project_page_py",
- "community": 95,
+ "community": 100,
"norm_label": "test_wizard_project_page.py"
},
{
@@ -10665,7 +10926,7 @@
"source_file": "tests/unit/ui/test_wizard_project_page.py",
"source_location": "L30",
"id": "ui_test_wizard_project_page_test_can_advance_equipment_step_requires_selection",
- "community": 95,
+ "community": 100,
"norm_label": "test_can_advance_equipment_step_requires_selection()"
},
{
@@ -10674,7 +10935,7 @@
"source_file": "tests/unit/ui/test_wizard_project_page.py",
"source_location": "L37",
"id": "ui_test_wizard_project_page_test_can_advance_variables_step_always_true",
- "community": 95,
+ "community": 100,
"norm_label": "test_can_advance_variables_step_always_true()"
},
{
@@ -10683,7 +10944,7 @@
"source_file": "tests/unit/ui/test_wizard_project_page.py",
"source_location": "L45",
"id": "ui_test_wizard_project_page_test_can_advance_confirm_step_always_true",
- "community": 95,
+ "community": 100,
"norm_label": "test_can_advance_confirm_step_always_true()"
},
{
@@ -10692,7 +10953,7 @@
"source_file": "tests/unit/ui/test_wizard_project_page.py",
"source_location": "L49",
"id": "ui_test_wizard_project_page_test_can_advance_default_step_is_lims_project",
- "community": 95,
+ "community": 100,
"norm_label": "test_can_advance_default_step_is_lims_project()"
},
{
@@ -10701,7 +10962,7 @@
"source_file": "tests/unit/ui/test_wizard_project_page.py",
"source_location": "L58",
"id": "ui_test_wizard_project_page_test_can_advance_readme_blocks_on_partial_core_fields",
- "community": 95,
+ "community": 100,
"norm_label": "test_can_advance_readme_blocks_on_partial_core_fields()"
},
{
@@ -10710,7 +10971,7 @@
"source_file": "tests/unit/ui/test_wizard_project_page.py",
"source_location": "L71",
"id": "ui_test_wizard_project_page_test_disk_space_message_none_when_unknown",
- "community": 95,
+ "community": 100,
"norm_label": "test_disk_space_message_none_when_unknown()"
},
{
@@ -10719,7 +10980,7 @@
"source_file": "tests/unit/ui/test_wizard_project_page.py",
"source_location": "L76",
"id": "ui_test_wizard_project_page_test_disk_space_message_none_when_ample",
- "community": 95,
+ "community": 100,
"norm_label": "test_disk_space_message_none_when_ample()"
},
{
@@ -10728,7 +10989,7 @@
"source_file": "tests/unit/ui/test_wizard_project_page.py",
"source_location": "L81",
"id": "ui_test_wizard_project_page_test_disk_space_message_present_just_below_threshold",
- "community": 95,
+ "community": 100,
"norm_label": "test_disk_space_message_present_just_below_threshold()"
},
{
@@ -10737,7 +10998,7 @@
"source_file": "tests/unit/ui/test_wizard_project_page.py",
"source_location": "L92",
"id": "ui_test_wizard_project_page_test_state_lims_project_name_defaults_empty_and_is_settable",
- "community": 95,
+ "community": 100,
"norm_label": "test_state_lims_project_name_defaults_empty_and_is_settable()"
},
{
@@ -10746,7 +11007,7 @@
"source_file": "tests/unit/ui/test_wizard_project_page.py",
"source_location": "L104",
"id": "ui_test_wizard_project_page_test_render_project_wizard_with_choices_does_not_raise",
- "community": 95,
+ "community": 100,
"norm_label": "test_render_project_wizard_with_choices_does_not_raise()"
},
{
@@ -10755,7 +11016,7 @@
"source_file": "tests/unit/ui/test_wizard_project_page.py",
"source_location": "L114",
"id": "ui_test_wizard_project_page_test_render_project_wizard_with_empty_choices_does_not_raise",
- "community": 95,
+ "community": 100,
"norm_label": "test_render_project_wizard_with_empty_choices_does_not_raise()"
},
{
@@ -10764,7 +11025,7 @@
"source_file": "tests/unit/ui/test_wizard_project_page.py",
"source_location": "L123",
"id": "ui_test_wizard_project_page_test_render_project_wizard_defaults_state_when_omitted",
- "community": 95,
+ "community": 100,
"norm_label": "test_render_project_wizard_defaults_state_when_omitted()"
},
{
@@ -10773,7 +11034,7 @@
"source_file": "tests/unit/ui/test_wizard_project_page.py",
"source_location": "L128",
"id": "ui_test_wizard_project_page_test_wizard_project_step_titles_cover_every_step",
- "community": 95,
+ "community": 100,
"norm_label": "test_wizard_project_step_titles_cover_every_step()"
},
{
@@ -10782,7 +11043,7 @@
"source_file": "tests/unit/ui/test_wizard_project_page.py",
"source_location": "L1",
"id": "ui_test_wizard_project_page_rationale_1",
- "community": 95,
+ "community": 100,
"norm_label": "tests for the new project wizard helpers (gaps not covered by test_pages). ``te"
},
{
@@ -10791,7 +11052,7 @@
"source_file": "tests/unit/ui/test_folder_feed.py",
"source_location": "L1",
"id": "tests_unit_ui_test_folder_feed_py",
- "community": 91,
+ "community": 97,
"norm_label": "test_folder_feed.py"
},
{
@@ -10800,7 +11061,7 @@
"source_file": "tests/unit/ui/test_folder_feed.py",
"source_location": "L18",
"id": "ui_test_folder_feed_test_folder_feed_start_then_stop_calls_fetch_at_least_once",
- "community": 91,
+ "community": 97,
"norm_label": "test_folder_feed_start_then_stop_calls_fetch_at_least_once()"
},
{
@@ -10809,7 +11070,7 @@
"source_file": "tests/unit/ui/test_folder_feed.py",
"source_location": "L34",
"id": "ui_test_folder_feed_test_folder_feed_switching_paths_stops_previous",
- "community": 91,
+ "community": 97,
"norm_label": "test_folder_feed_switching_paths_stops_previous()"
},
{
@@ -10818,7 +11079,7 @@
"source_file": "tests/unit/ui/test_folder_feed.py",
"source_location": "L53",
"id": "ui_test_folder_feed_test_folder_feed_pause_skips_fetch",
- "community": 91,
+ "community": 97,
"norm_label": "test_folder_feed_pause_skips_fetch()"
},
{
@@ -10827,7 +11088,7 @@
"source_file": "tests/unit/ui/test_folder_feed.py",
"source_location": "L73",
"id": "ui_test_folder_feed_test_refresh_coordinator_coalesces_within_window",
- "community": 91,
+ "community": 97,
"norm_label": "test_refresh_coordinator_coalesces_within_window()"
},
{
@@ -10836,7 +11097,7 @@
"source_file": "tests/unit/ui/test_folder_feed.py",
"source_location": "L1",
"id": "ui_test_folder_feed_rationale_1",
- "community": 91,
+ "community": 97,
"norm_label": "unit tests for the folder-feed + refresh-coordinator client modules. gui/orches"
},
{
@@ -10845,7 +11106,7 @@
"source_file": "tests/unit/lims/test_catalogue.py",
"source_location": "L1",
"id": "tests_unit_lims_test_catalogue_py",
- "community": 158,
+ "community": 137,
"norm_label": "test_catalogue.py"
},
{
@@ -10854,7 +11115,7 @@
"source_file": "tests/unit/lims/test_catalogue.py",
"source_location": "L14",
"id": "lims_test_catalogue_make_catalogue",
- "community": 158,
+ "community": 137,
"norm_label": "_make_catalogue()"
},
{
@@ -10863,7 +11124,7 @@
"source_file": "tests/unit/lims/test_catalogue.py",
"source_location": "L36",
"id": "lims_test_catalogue_test_round_trip_via_write_then_read",
- "community": 158,
+ "community": 137,
"norm_label": "test_round_trip_via_write_then_read()"
},
{
@@ -10872,7 +11133,7 @@
"source_file": "tests/unit/lims/test_catalogue.py",
"source_location": "L48",
"id": "lims_test_catalogue_test_read_missing_file_raises",
- "community": 158,
+ "community": 137,
"norm_label": "test_read_missing_file_raises()"
},
{
@@ -10881,7 +11142,7 @@
"source_file": "tests/unit/lims/test_catalogue.py",
"source_location": "L53",
"id": "lims_test_catalogue_test_read_invalid_json_raises",
- "community": 158,
+ "community": 137,
"norm_label": "test_read_invalid_json_raises()"
},
{
@@ -10890,7 +11151,7 @@
"source_file": "tests/unit/lims/test_catalogue.py",
"source_location": "L60",
"id": "lims_test_catalogue_test_read_non_object_raises",
- "community": 158,
+ "community": 137,
"norm_label": "test_read_non_object_raises()"
},
{
@@ -10899,7 +11160,7 @@
"source_file": "tests/unit/lims/test_catalogue.py",
"source_location": "L67",
"id": "lims_test_catalogue_test_schema_version_mismatch_treated_as_absent",
- "community": 158,
+ "community": 137,
"norm_label": "test_schema_version_mismatch_treated_as_absent()"
},
{
@@ -10908,7 +11169,7 @@
"source_file": "tests/unit/lims/test_catalogue.py",
"source_location": "L85",
"id": "lims_test_catalogue_test_endpoint_mismatch_raises",
- "community": 158,
+ "community": 137,
"norm_label": "test_endpoint_mismatch_raises()"
},
{
@@ -10917,7 +11178,7 @@
"source_file": "tests/unit/lims/test_catalogue.py",
"source_location": "L93",
"id": "lims_test_catalogue_test_write_creates_parent_directory",
- "community": 158,
+ "community": 137,
"norm_label": "test_write_creates_parent_directory()"
},
{
@@ -10926,7 +11187,7 @@
"source_file": "tests/unit/lims/test_catalogue.py",
"source_location": "L100",
"id": "lims_test_catalogue_test_write_atomic_replaces_previous_file",
- "community": 158,
+ "community": 137,
"norm_label": "test_write_atomic_replaces_previous_file()"
},
{
@@ -10935,7 +11196,7 @@
"source_file": "tests/unit/lims/test_catalogue.py",
"source_location": "L121",
"id": "lims_test_catalogue_test_read_handles_missing_projects_array",
- "community": 158,
+ "community": 137,
"norm_label": "test_read_handles_missing_projects_array()"
},
{
@@ -10944,7 +11205,7 @@
"source_file": "tests/unit/lims/test_catalogue.py",
"source_location": "L1",
"id": "lims_test_catalogue_rationale_1",
- "community": 158,
+ "community": 137,
"norm_label": "tests for the offline lims-project catalogue i/o. backend spec \u00a77.2.9."
},
{
@@ -10953,7 +11214,7 @@
"source_file": "tests/unit/lims/test_keyring_store.py",
"source_location": "L1",
"id": "tests_unit_lims_test_keyring_store_py",
- "community": 24,
+ "community": 26,
"norm_label": "test_keyring_store.py"
},
{
@@ -10962,7 +11223,7 @@
"source_file": "tests/unit/lims/test_keyring_store.py",
"source_location": "L25",
"id": "lims_test_keyring_store_inmemorykeyring",
- "community": 24,
+ "community": 26,
"norm_label": "_inmemorykeyring"
},
{
@@ -10971,7 +11232,7 @@
"source_file": "tests/unit/lims/test_keyring_store.py",
"source_location": "L30",
"id": "lims_test_keyring_store_inmemorykeyring_init",
- "community": 24,
+ "community": 26,
"norm_label": ".__init__()"
},
{
@@ -10980,7 +11241,7 @@
"source_file": "tests/unit/lims/test_keyring_store.py",
"source_location": "L33",
"id": "lims_test_keyring_store_inmemorykeyring_get_password",
- "community": 24,
+ "community": 26,
"norm_label": ".get_password()"
},
{
@@ -10989,7 +11250,7 @@
"source_file": "tests/unit/lims/test_keyring_store.py",
"source_location": "L36",
"id": "lims_test_keyring_store_inmemorykeyring_set_password",
- "community": 24,
+ "community": 26,
"norm_label": ".set_password()"
},
{
@@ -10998,7 +11259,7 @@
"source_file": "tests/unit/lims/test_keyring_store.py",
"source_location": "L39",
"id": "lims_test_keyring_store_inmemorykeyring_delete_password",
- "community": 24,
+ "community": 26,
"norm_label": ".delete_password()"
},
{
@@ -11007,7 +11268,7 @@
"source_file": "tests/unit/lims/test_keyring_store.py",
"source_location": "L45",
"id": "lims_test_keyring_store_brokenkeyring",
- "community": 24,
+ "community": 26,
"norm_label": "_brokenkeyring"
},
{
@@ -11016,7 +11277,7 @@
"source_file": "tests/unit/lims/test_keyring_store.py",
"source_location": "L50",
"id": "lims_test_keyring_store_brokenkeyring_get_password",
- "community": 24,
+ "community": 26,
"norm_label": ".get_password()"
},
{
@@ -11025,7 +11286,7 @@
"source_file": "tests/unit/lims/test_keyring_store.py",
"source_location": "L53",
"id": "lims_test_keyring_store_brokenkeyring_set_password",
- "community": 24,
+ "community": 26,
"norm_label": ".set_password()"
},
{
@@ -11034,7 +11295,7 @@
"source_file": "tests/unit/lims/test_keyring_store.py",
"source_location": "L56",
"id": "lims_test_keyring_store_brokenkeyring_delete_password",
- "community": 24,
+ "community": 26,
"norm_label": ".delete_password()"
},
{
@@ -11043,7 +11304,7 @@
"source_file": "tests/unit/lims/test_keyring_store.py",
"source_location": "L61",
"id": "lims_test_keyring_store_swap_keyring",
- "community": 24,
+ "community": 26,
"norm_label": "_swap_keyring()"
},
{
@@ -11052,7 +11313,7 @@
"source_file": "tests/unit/lims/test_keyring_store.py",
"source_location": "L70",
"id": "lims_test_keyring_store_test_set_get_delete_via_os_keyring",
- "community": 24,
+ "community": 26,
"norm_label": "test_set_get_delete_via_os_keyring()"
},
{
@@ -11061,7 +11322,7 @@
"source_file": "tests/unit/lims/test_keyring_store.py",
"source_location": "L79",
"id": "lims_test_keyring_store_test_get_returns_none_for_missing",
- "community": 24,
+ "community": 26,
"norm_label": "test_get_returns_none_for_missing()"
},
{
@@ -11070,7 +11331,7 @@
"source_file": "tests/unit/lims/test_keyring_store.py",
"source_location": "L85",
"id": "lims_test_keyring_store_test_delete_missing_is_silent",
- "community": 24,
+ "community": 26,
"norm_label": "test_delete_missing_is_silent()"
},
{
@@ -11079,7 +11340,7 @@
"source_file": "tests/unit/lims/test_keyring_store.py",
"source_location": "L93",
"id": "lims_test_keyring_store_test_is_keyring_available_true",
- "community": 24,
+ "community": 26,
"norm_label": "test_is_keyring_available_true()"
},
{
@@ -11088,7 +11349,7 @@
"source_file": "tests/unit/lims/test_keyring_store.py",
"source_location": "L99",
"id": "lims_test_keyring_store_test_is_keyring_available_false_on_broken_backend",
- "community": 24,
+ "community": 26,
"norm_label": "test_is_keyring_available_false_on_broken_backend()"
},
{
@@ -11097,7 +11358,7 @@
"source_file": "tests/unit/lims/test_keyring_store.py",
"source_location": "L105",
"id": "lims_test_keyring_store_test_fallback_round_trip",
- "community": 24,
+ "community": 26,
"norm_label": "test_fallback_round_trip()"
},
{
@@ -11106,7 +11367,7 @@
"source_file": "tests/unit/lims/test_keyring_store.py",
"source_location": "L122",
"id": "lims_test_keyring_store_test_fallback_delete",
- "community": 24,
+ "community": 26,
"norm_label": "test_fallback_delete()"
},
{
@@ -11115,7 +11376,7 @@
"source_file": "tests/unit/lims/test_keyring_store.py",
"source_location": "L138",
"id": "lims_test_keyring_store_test_fallback_wrong_passphrase_raises",
- "community": 24,
+ "community": 26,
"norm_label": "test_fallback_wrong_passphrase_raises()"
},
{
@@ -11124,7 +11385,7 @@
"source_file": "tests/unit/lims/test_keyring_store.py",
"source_location": "L155",
"id": "lims_test_keyring_store_test_fallback_no_passphrase_raises",
- "community": 24,
+ "community": 26,
"norm_label": "test_fallback_no_passphrase_raises()"
},
{
@@ -11133,7 +11394,7 @@
"source_file": "tests/unit/lims/test_keyring_store.py",
"source_location": "L162",
"id": "lims_test_keyring_store_test_fallback_empty_passphrase_raises",
- "community": 24,
+ "community": 26,
"norm_label": "test_fallback_empty_passphrase_raises()"
},
{
@@ -11142,7 +11403,7 @@
"source_file": "tests/unit/lims/test_keyring_store.py",
"source_location": "L169",
"id": "lims_test_keyring_store_test_fallback_file_format_integrity",
- "community": 24,
+ "community": 26,
"norm_label": "test_fallback_file_format_integrity()"
},
{
@@ -11151,7 +11412,7 @@
"source_file": "tests/unit/lims/test_keyring_store.py",
"source_location": "L185",
"id": "lims_test_keyring_store_test_fallback_corrupt_file_raises",
- "community": 24,
+ "community": 26,
"norm_label": "test_fallback_corrupt_file_raises()"
},
{
@@ -11160,7 +11421,7 @@
"source_file": "tests/unit/lims/test_keyring_store.py",
"source_location": "L198",
"id": "lims_test_keyring_store_test_fallback_unsupported_version_raises",
- "community": 24,
+ "community": 26,
"norm_label": "test_fallback_unsupported_version_raises()"
},
{
@@ -11169,7 +11430,7 @@
"source_file": "tests/unit/lims/test_keyring_store.py",
"source_location": "L212",
"id": "lims_test_keyring_store_test_fallback_missing_fields_raises",
- "community": 24,
+ "community": 26,
"norm_label": "test_fallback_missing_fields_raises()"
},
{
@@ -11178,7 +11439,7 @@
"source_file": "tests/unit/lims/test_keyring_store.py",
"source_location": "L224",
"id": "lims_test_keyring_store_test_fallback_set_then_overwrite",
- "community": 24,
+ "community": 26,
"norm_label": "test_fallback_set_then_overwrite()"
},
{
@@ -11187,7 +11448,7 @@
"source_file": "tests/unit/lims/test_keyring_store.py",
"source_location": "L236",
"id": "lims_test_keyring_store_test_keyring_set_failure_falls_back",
- "community": 24,
+ "community": 26,
"norm_label": "test_keyring_set_failure_falls_back()"
},
{
@@ -11196,7 +11457,7 @@
"source_file": "tests/unit/lims/test_keyring_store.py",
"source_location": "L249",
"id": "lims_test_keyring_store_test_is_keyring_available_false_on_unexpected_exception",
- "community": 24,
+ "community": 26,
"norm_label": "test_is_keyring_available_false_on_unexpected_exception()"
},
{
@@ -11205,7 +11466,7 @@
"source_file": "tests/unit/lims/test_keyring_store.py",
"source_location": "L269",
"id": "lims_test_keyring_store_test_fallback_get_when_no_secrets_file",
- "community": 24,
+ "community": 26,
"norm_label": "test_fallback_get_when_no_secrets_file()"
},
{
@@ -11214,7 +11475,7 @@
"source_file": "tests/unit/lims/test_keyring_store.py",
"source_location": "L281",
"id": "lims_test_keyring_store_test_fallback_delete_when_no_file",
- "community": 24,
+ "community": 26,
"norm_label": "test_fallback_delete_when_no_file()"
},
{
@@ -11223,7 +11484,7 @@
"source_file": "tests/unit/lims/test_keyring_store.py",
"source_location": "L292",
"id": "lims_test_keyring_store_test_fallback_delete_when_username_absent",
- "community": 24,
+ "community": 26,
"norm_label": "test_fallback_delete_when_username_absent()"
},
{
@@ -11232,7 +11493,7 @@
"source_file": "tests/unit/lims/test_keyring_store.py",
"source_location": "L306",
"id": "lims_test_keyring_store_test_load_fallback_unreadable_path_raises",
- "community": 24,
+ "community": 26,
"norm_label": "test_load_fallback_unreadable_path_raises()"
},
{
@@ -11241,7 +11502,7 @@
"source_file": "tests/unit/lims/test_keyring_store.py",
"source_location": "L324",
"id": "lims_test_keyring_store_test_fallback_plaintext_must_be_object",
- "community": 24,
+ "community": 26,
"norm_label": "test_fallback_plaintext_must_be_object()"
},
{
@@ -11250,7 +11511,7 @@
"source_file": "tests/unit/lims/test_keyring_store.py",
"source_location": "L360",
"id": "lims_test_keyring_store_test_envelope_must_be_object",
- "community": 24,
+ "community": 26,
"norm_label": "test_envelope_must_be_object()"
},
{
@@ -11259,7 +11520,7 @@
"source_file": "tests/unit/lims/test_keyring_store.py",
"source_location": "L373",
"id": "lims_test_keyring_store_test_get_consults_fallback_when_keyring_missing",
- "community": 24,
+ "community": 26,
"norm_label": "test_get_consults_fallback_when_keyring_missing()"
},
{
@@ -11268,7 +11529,7 @@
"source_file": "tests/unit/lims/test_keyring_store.py",
"source_location": "L1",
"id": "lims_test_keyring_store_rationale_1",
- "community": 24,
+ "community": 26,
"norm_label": "tests for :class:`exlab_wizard.lims.keyring_store.keyringstore`. the os-keyring"
},
{
@@ -11277,7 +11538,7 @@
"source_file": "tests/unit/lims/test_keyring_store.py",
"source_location": "L26",
"id": "lims_test_keyring_store_rationale_26",
- "community": 24,
+ "community": 26,
"norm_label": "trivial in-memory keyring backend used to drive the os-keyring path."
},
{
@@ -11286,7 +11547,7 @@
"source_file": "tests/unit/lims/test_keyring_store.py",
"source_location": "L46",
"id": "lims_test_keyring_store_rationale_46",
- "community": 24,
+ "community": 26,
"norm_label": "keyring backend that raises on every operation."
},
{
@@ -11295,7 +11556,7 @@
"source_file": "tests/unit/lims/test_keyring_store.py",
"source_location": "L106",
"id": "lims_test_keyring_store_rationale_106",
- "community": 24,
+ "community": 26,
"norm_label": "set + get via the encrypted fallback (no os keyring)."
},
{
@@ -11304,7 +11565,7 @@
"source_file": "tests/unit/lims/test_keyring_store.py",
"source_location": "L170",
"id": "lims_test_keyring_store_rationale_170",
- "community": 24,
+ "community": 26,
"norm_label": "the fallback file is a json envelope with version, salt, ciphertext."
},
{
@@ -11313,7 +11574,7 @@
"source_file": "tests/unit/lims/test_keyring_store.py",
"source_location": "L225",
"id": "lims_test_keyring_store_rationale_225",
- "community": 24,
+ "community": 26,
"norm_label": "a second ``set_password`` overwrites the prior secret."
},
{
@@ -11322,7 +11583,7 @@
"source_file": "tests/unit/lims/test_keyring_store.py",
"source_location": "L237",
"id": "lims_test_keyring_store_rationale_237",
- "community": 24,
+ "community": 26,
"norm_label": "when the os keyring set fails, the encrypted-at-rest write is used and a sub"
},
{
@@ -11331,7 +11592,7 @@
"source_file": "tests/unit/lims/test_keyring_store.py",
"source_location": "L250",
"id": "lims_test_keyring_store_rationale_250",
- "community": 24,
+ "community": 26,
"norm_label": "a backend raising a non-keyringerror is also treated as unavailable."
},
{
@@ -11340,7 +11601,7 @@
"source_file": "tests/unit/lims/test_keyring_store.py",
"source_location": "L270",
"id": "lims_test_keyring_store_rationale_270",
- "community": 24,
+ "community": 26,
"norm_label": "``get_password`` returns none (not error) when keyring is broken and the fal"
},
{
@@ -11349,7 +11610,7 @@
"source_file": "tests/unit/lims/test_keyring_store.py",
"source_location": "L282",
"id": "lims_test_keyring_store_rationale_282",
- "community": 24,
+ "community": 26,
"norm_label": "deleting against a broken keyring with no fallback file is silent."
},
{
@@ -11358,7 +11619,7 @@
"source_file": "tests/unit/lims/test_keyring_store.py",
"source_location": "L293",
"id": "lims_test_keyring_store_rationale_293",
- "community": 24,
+ "community": 26,
"norm_label": "deleting a missing username in the fallback file is silent."
},
{
@@ -11367,7 +11628,7 @@
"source_file": "tests/unit/lims/test_keyring_store.py",
"source_location": "L307",
"id": "lims_test_keyring_store_rationale_307",
- "community": 24,
+ "community": 26,
"norm_label": "an oserror during fallback read surfaces as keyringunavailableerror."
},
{
@@ -11376,7 +11637,7 @@
"source_file": "tests/unit/lims/test_keyring_store.py",
"source_location": "L325",
"id": "lims_test_keyring_store_rationale_325",
- "community": 24,
+ "community": 26,
"norm_label": "if the decrypted plaintext is a non-object json value, the read raises."
},
{
@@ -11385,7 +11646,7 @@
"source_file": "tests/unit/lims/test_keyring_store.py",
"source_location": "L361",
"id": "lims_test_keyring_store_rationale_361",
- "community": 24,
+ "community": 26,
"norm_label": "a json list at the envelope layer is rejected as malformed."
},
{
@@ -11394,7 +11655,7 @@
"source_file": "tests/unit/lims/test_keyring_store.py",
"source_location": "L374",
"id": "lims_test_keyring_store_rationale_374",
- "community": 24,
+ "community": 26,
"norm_label": "if the os keyring returns none but the fallback file exists, the fallback is"
},
{
@@ -11403,7 +11664,7 @@
"source_file": "tests/unit/lims/__init__.py",
"source_location": "L1",
"id": "tests_unit_lims_init_py",
- "community": 433,
+ "community": 471,
"norm_label": "__init__.py"
},
{
@@ -11412,7 +11673,7 @@
"source_file": "src/exlab_wizard/lims/__init__.py",
"source_location": "L1",
"id": "lims_init_rationale_1",
- "community": 433,
+ "community": 471,
"norm_label": "lims integration package. backend spec \u00a77.2 + \u00a77.4. public surface: - :class:`"
},
{
@@ -11421,7 +11682,7 @@
"source_file": "tests/unit/lims/test_client.py",
"source_location": "L1",
"id": "tests_unit_lims_test_client_py",
- "community": 121,
+ "community": 127,
"norm_label": "test_client.py"
},
{
@@ -11430,7 +11691,7 @@
"source_file": "tests/unit/lims/test_client.py",
"source_location": "L22",
"id": "lims_test_client_make_client",
- "community": 121,
+ "community": 127,
"norm_label": "_make_client()"
},
{
@@ -11439,7 +11700,7 @@
"source_file": "tests/unit/lims/test_client.py",
"source_location": "L35",
"id": "lims_test_client_test_login_happy_path",
- "community": 121,
+ "community": 127,
"norm_label": "test_login_happy_path()"
},
{
@@ -11448,7 +11709,7 @@
"source_file": "tests/unit/lims/test_client.py",
"source_location": "L48",
"id": "lims_test_client_test_login_uses_explicit_password_over_provider",
- "community": 121,
+ "community": 127,
"norm_label": "test_login_uses_explicit_password_over_provider()"
},
{
@@ -11457,7 +11718,7 @@
"source_file": "tests/unit/lims/test_client.py",
"source_location": "L59",
"id": "lims_test_client_test_login_wrong_password_raises",
- "community": 121,
+ "community": 127,
"norm_label": "test_login_wrong_password_raises()"
},
{
@@ -11466,7 +11727,7 @@
"source_file": "tests/unit/lims/test_client.py",
"source_location": "L69",
"id": "lims_test_client_test_login_with_no_password_raises_config_error",
- "community": 121,
+ "community": 127,
"norm_label": "test_login_with_no_password_raises_config_error()"
},
{
@@ -11475,7 +11736,7 @@
"source_file": "tests/unit/lims/test_client.py",
"source_location": "L79",
"id": "lims_test_client_test_list_projects_returns_typed_rows",
- "community": 121,
+ "community": 127,
"norm_label": "test_list_projects_returns_typed_rows()"
},
{
@@ -11484,7 +11745,7 @@
"source_file": "tests/unit/lims/test_client.py",
"source_location": "L93",
"id": "lims_test_client_test_list_projects_status_filter",
- "community": 121,
+ "community": 127,
"norm_label": "test_list_projects_status_filter()"
},
{
@@ -11493,7 +11754,7 @@
"source_file": "tests/unit/lims/test_client.py",
"source_location": "L122",
"id": "lims_test_client_test_get_project_by_uid",
- "community": 121,
+ "community": 127,
"norm_label": "test_get_project_by_uid()"
},
{
@@ -11502,7 +11763,7 @@
"source_file": "tests/unit/lims/test_client.py",
"source_location": "L134",
"id": "lims_test_client_test_get_project_by_short_id",
- "community": 121,
+ "community": 127,
"norm_label": "test_get_project_by_short_id()"
},
{
@@ -11511,7 +11772,7 @@
"source_file": "tests/unit/lims/test_client.py",
"source_location": "L146",
"id": "lims_test_client_test_get_project_404_returns_none",
- "community": 121,
+ "community": 127,
"norm_label": "test_get_project_404_returns_none()"
},
{
@@ -11520,7 +11781,7 @@
"source_file": "tests/unit/lims/test_client.py",
"source_location": "L157",
"id": "lims_test_client_test_get_me",
- "community": 121,
+ "community": 127,
"norm_label": "test_get_me()"
},
{
@@ -11529,7 +11790,7 @@
"source_file": "tests/unit/lims/test_client.py",
"source_location": "L169",
"id": "lims_test_client_test_health_check_ok",
- "community": 121,
+ "community": 127,
"norm_label": "test_health_check_ok()"
},
{
@@ -11538,7 +11799,7 @@
"source_file": "tests/unit/lims/test_client.py",
"source_location": "L182",
"id": "lims_test_client_test_health_check_failure_returns_status",
- "community": 121,
+ "community": 127,
"norm_label": "test_health_check_failure_returns_status()"
},
{
@@ -11547,7 +11808,7 @@
"source_file": "tests/unit/lims/test_client.py",
"source_location": "L197",
"id": "lims_test_client_test_relogin_after_401",
- "community": 121,
+ "community": 127,
"norm_label": "test_relogin_after_401()"
},
{
@@ -11556,7 +11817,7 @@
"source_file": "tests/unit/lims/test_client.py",
"source_location": "L213",
"id": "lims_test_client_test_health_check_returns_non200_status",
- "community": 121,
+ "community": 127,
"norm_label": "test_health_check_returns_non200_status()"
},
{
@@ -11565,7 +11826,7 @@
"source_file": "tests/unit/lims/test_client.py",
"source_location": "L243",
"id": "lims_test_client_test_endpoint_strips_trailing_slash",
- "community": 84,
+ "community": 98,
"norm_label": "test_endpoint_strips_trailing_slash()"
},
{
@@ -11574,7 +11835,7 @@
"source_file": "tests/unit/lims/test_client.py",
"source_location": "L1",
"id": "lims_test_client_rationale_1",
- "community": 121,
+ "community": 127,
"norm_label": "tests for :class:`exlab_wizard.lims.client.limsclient`. each test wires the cli"
},
{
@@ -11583,7 +11844,7 @@
"source_file": "tests/unit/lims/test_client.py",
"source_location": "L183",
"id": "lims_test_client_rationale_183",
- "community": 121,
+ "community": 127,
"norm_label": "``health_check`` must not raise. per backend spec \u00a77.2.3."
},
{
@@ -11592,7 +11853,7 @@
"source_file": "tests/unit/lims/test_client.py",
"source_location": "L198",
"id": "lims_test_client_rationale_198",
- "community": 121,
+ "community": 127,
"norm_label": "when the lims invalidates the cookie mid-flight, the client transparently re"
},
{
@@ -11601,7 +11862,7 @@
"source_file": "tests/unit/lims/test_client.py",
"source_location": "L214",
"id": "lims_test_client_rationale_214",
- "community": 121,
+ "community": 127,
"norm_label": "when the lims returns a non-2xx status, ``health_check`` returns ``ok=false`"
},
{
@@ -11610,7 +11871,7 @@
"source_file": "tests/unit/lims/test_cache.py",
"source_location": "L1",
"id": "tests_unit_lims_test_cache_py",
- "community": 122,
+ "community": 128,
"norm_label": "test_cache.py"
},
{
@@ -11619,7 +11880,7 @@
"source_file": "tests/unit/lims/test_cache.py",
"source_location": "L19",
"id": "lims_test_cache_project",
- "community": 122,
+ "community": 128,
"norm_label": "_project()"
},
{
@@ -11628,7 +11889,7 @@
"source_file": "tests/unit/lims/test_cache.py",
"source_location": "L39",
"id": "lims_test_cache_test_init_creates_table_idempotent",
- "community": 122,
+ "community": 128,
"norm_label": "test_init_creates_table_idempotent()"
},
{
@@ -11637,7 +11898,7 @@
"source_file": "tests/unit/lims/test_cache.py",
"source_location": "L47",
"id": "lims_test_cache_test_upsert_many_then_list",
- "community": 122,
+ "community": 128,
"norm_label": "test_upsert_many_then_list()"
},
{
@@ -11646,7 +11907,7 @@
"source_file": "tests/unit/lims/test_cache.py",
"source_location": "L59",
"id": "lims_test_cache_test_upsert_many_empty_is_noop",
- "community": 122,
+ "community": 128,
"norm_label": "test_upsert_many_empty_is_noop()"
},
{
@@ -11655,7 +11916,7 @@
"source_file": "tests/unit/lims/test_cache.py",
"source_location": "L70",
"id": "lims_test_cache_test_upsert_updates_existing_row",
- "community": 122,
+ "community": 128,
"norm_label": "test_upsert_updates_existing_row()"
},
{
@@ -11664,7 +11925,7 @@
"source_file": "tests/unit/lims/test_cache.py",
"source_location": "L95",
"id": "lims_test_cache_test_get_project_by_uid_or_short_id",
- "community": 122,
+ "community": 128,
"norm_label": "test_get_project_by_uid_or_short_id()"
},
{
@@ -11673,7 +11934,7 @@
"source_file": "tests/unit/lims/test_cache.py",
"source_location": "L108",
"id": "lims_test_cache_test_get_project_missing_returns_none",
- "community": 122,
+ "community": 128,
"norm_label": "test_get_project_missing_returns_none()"
},
{
@@ -11682,7 +11943,7 @@
"source_file": "tests/unit/lims/test_cache.py",
"source_location": "L118",
"id": "lims_test_cache_test_list_projects_status_filter",
- "community": 122,
+ "community": 128,
"norm_label": "test_list_projects_status_filter()"
},
{
@@ -11691,7 +11952,7 @@
"source_file": "tests/unit/lims/test_cache.py",
"source_location": "L135",
"id": "lims_test_cache_test_is_fresh_true_when_within_ttl",
- "community": 122,
+ "community": 128,
"norm_label": "test_is_fresh_true_when_within_ttl()"
},
{
@@ -11700,7 +11961,7 @@
"source_file": "tests/unit/lims/test_cache.py",
"source_location": "L145",
"id": "lims_test_cache_test_is_fresh_false_when_stale",
- "community": 122,
+ "community": 128,
"norm_label": "test_is_fresh_false_when_stale()"
},
{
@@ -11709,7 +11970,7 @@
"source_file": "tests/unit/lims/test_cache.py",
"source_location": "L156",
"id": "lims_test_cache_test_is_fresh_false_when_empty",
- "community": 122,
+ "community": 128,
"norm_label": "test_is_fresh_false_when_empty()"
},
{
@@ -11718,7 +11979,7 @@
"source_file": "tests/unit/lims/test_cache.py",
"source_location": "L165",
"id": "lims_test_cache_test_is_fresh_handles_zulu_suffix",
- "community": 122,
+ "community": 128,
"norm_label": "test_is_fresh_handles_zulu_suffix()"
},
{
@@ -11727,7 +11988,7 @@
"source_file": "tests/unit/lims/test_cache.py",
"source_location": "L179",
"id": "lims_test_cache_test_is_fresh_ignores_invalid_timestamp",
- "community": 122,
+ "community": 128,
"norm_label": "test_is_fresh_ignores_invalid_timestamp()"
},
{
@@ -11736,7 +11997,7 @@
"source_file": "tests/unit/lims/test_cache.py",
"source_location": "L192",
"id": "lims_test_cache_test_endpoint_isolates_rows",
- "community": 122,
+ "community": 128,
"norm_label": "test_endpoint_isolates_rows()"
},
{
@@ -11745,7 +12006,7 @@
"source_file": "tests/unit/lims/test_cache.py",
"source_location": "L206",
"id": "lims_test_cache_test_require_conn_before_init_raises",
- "community": 122,
+ "community": 128,
"norm_label": "test_require_conn_before_init_raises()"
},
{
@@ -11754,7 +12015,7 @@
"source_file": "tests/unit/lims/test_cache.py",
"source_location": "L212",
"id": "lims_test_cache_test_close_is_idempotent",
- "community": 122,
+ "community": 128,
"norm_label": "test_close_is_idempotent()"
},
{
@@ -11763,7 +12024,7 @@
"source_file": "tests/unit/lims/test_cache.py",
"source_location": "L220",
"id": "lims_test_cache_test_is_fresh_handles_naive_timestamp",
- "community": 122,
+ "community": 128,
"norm_label": "test_is_fresh_handles_naive_timestamp()"
},
{
@@ -11772,7 +12033,7 @@
"source_file": "tests/unit/lims/test_cache.py",
"source_location": "L1",
"id": "lims_test_cache_rationale_1",
- "community": 122,
+ "community": 128,
"norm_label": "tests for :class:`exlab_wizard.lims.cache.limscache`. the cache is the \u00a77.2.4 s"
},
{
@@ -11781,7 +12042,7 @@
"source_file": "tests/unit/lims/test_cache.py",
"source_location": "L221",
"id": "lims_test_cache_rationale_221",
- "community": 122,
+ "community": 128,
"norm_label": "a naive iso timestamp (no offset) is treated as utc by the cache."
},
{
@@ -11790,7 +12051,7 @@
"source_file": "tests/unit/validator/test_engine_creation.py",
"source_location": "L1",
"id": "tests_unit_validator_test_engine_creation_py",
- "community": 32,
+ "community": 36,
"norm_label": "test_engine_creation.py"
},
{
@@ -11799,7 +12060,7 @@
"source_file": "tests/unit/validator/test_engine_creation.py",
"source_location": "L38",
"id": "validator_test_engine_creation_clean_input",
- "community": 32,
+ "community": 36,
"norm_label": "_clean_input()"
},
{
@@ -11808,7 +12069,7 @@
"source_file": "tests/unit/validator/test_engine_creation.py",
"source_location": "L85",
"id": "validator_test_engine_creation_test_split_path_segments_posix_path",
- "community": 32,
+ "community": 36,
"norm_label": "test_split_path_segments_posix_path()"
},
{
@@ -11817,7 +12078,7 @@
"source_file": "tests/unit/validator/test_engine_creation.py",
"source_location": "L90",
"id": "validator_test_engine_creation_test_split_path_segments_windows_path",
- "community": 32,
+ "community": 36,
"norm_label": "test_split_path_segments_windows_path()"
},
{
@@ -11826,7 +12087,7 @@
"source_file": "tests/unit/validator/test_engine_creation.py",
"source_location": "L96",
"id": "validator_test_engine_creation_test_split_path_segments_empty_string",
- "community": 32,
+ "community": 36,
"norm_label": "test_split_path_segments_empty_string()"
},
{
@@ -11835,7 +12096,7 @@
"source_file": "tests/unit/validator/test_engine_creation.py",
"source_location": "L100",
"id": "validator_test_engine_creation_test_split_path_segments_drops_trailing_slash",
- "community": 32,
+ "community": 36,
"norm_label": "test_split_path_segments_drops_trailing_slash()"
},
{
@@ -11844,7 +12105,7 @@
"source_file": "tests/unit/validator/test_engine_creation.py",
"source_location": "L110",
"id": "validator_test_engine_creation_test_validator_default_config_uses_spec_defaults",
- "community": 32,
+ "community": 36,
"norm_label": "test_validator_default_config_uses_spec_defaults()"
},
{
@@ -11853,7 +12114,7 @@
"source_file": "tests/unit/validator/test_engine_creation.py",
"source_location": "L119",
"id": "validator_test_engine_creation_test_validator_accepts_explicit_config",
- "community": 133,
+ "community": 211,
"norm_label": "test_validator_accepts_explicit_config()"
},
{
@@ -11862,7 +12123,7 @@
"source_file": "tests/unit/validator/test_engine_creation.py",
"source_location": "L131",
"id": "validator_test_engine_creation_test_clean_input_returns_empty_list",
- "community": 32,
+ "community": 36,
"norm_label": "test_clean_input_returns_empty_list()"
},
{
@@ -11871,7 +12132,7 @@
"source_file": "tests/unit/validator/test_engine_creation.py",
"source_location": "L136",
"id": "validator_test_engine_creation_test_clean_input_with_test_run_returns_empty_list",
- "community": 32,
+ "community": 36,
"norm_label": "test_clean_input_with_test_run_returns_empty_list()"
},
{
@@ -11880,7 +12141,7 @@
"source_file": "tests/unit/validator/test_engine_creation.py",
"source_location": "L152",
"id": "validator_test_engine_creation_test_unresolved_placeholder_in_path_segment_triggers_finding",
- "community": 32,
+ "community": 36,
"norm_label": "test_unresolved_placeholder_in_path_segment_triggers_finding()"
},
{
@@ -11889,7 +12150,7 @@
"source_file": "tests/unit/validator/test_engine_creation.py",
"source_location": "L167",
"id": "validator_test_engine_creation_test_unresolved_placeholder_in_file_name_triggers_finding",
- "community": 32,
+ "community": 36,
"norm_label": "test_unresolved_placeholder_in_file_name_triggers_finding()"
},
{
@@ -11898,7 +12159,7 @@
"source_file": "tests/unit/validator/test_engine_creation.py",
"source_location": "L183",
"id": "validator_test_engine_creation_test_leftover_jinja_marker_in_file_content_triggers_finding",
- "community": 32,
+ "community": 36,
"norm_label": "test_leftover_jinja_marker_in_file_content_triggers_finding()"
},
{
@@ -11907,7 +12168,7 @@
"source_file": "tests/unit/validator/test_engine_creation.py",
"source_location": "L195",
"id": "validator_test_engine_creation_test_illegal_filesystem_character_in_file_name_triggers_finding",
- "community": 32,
+ "community": 36,
"norm_label": "test_illegal_filesystem_character_in_file_name_triggers_finding()"
},
{
@@ -11916,7 +12177,7 @@
"source_file": "tests/unit/validator/test_engine_creation.py",
"source_location": "L211",
"id": "validator_test_engine_creation_test_reserved_filesystem_name_triggers_finding",
- "community": 32,
+ "community": 36,
"norm_label": "test_reserved_filesystem_name_triggers_finding()"
},
{
@@ -11925,7 +12186,7 @@
"source_file": "tests/unit/validator/test_engine_creation.py",
"source_location": "L225",
"id": "validator_test_engine_creation_test_run_leaf_with_test_run_kind_triggers_mode_prefix_mismatch",
- "community": 32,
+ "community": 36,
"norm_label": "test_run_leaf_with_test_run_kind_triggers_mode_prefix_mismatch()"
},
{
@@ -11934,7 +12195,7 @@
"source_file": "tests/unit/validator/test_engine_creation.py",
"source_location": "L238",
"id": "validator_test_engine_creation_test_test_run_leaf_with_experimental_run_kind_triggers_mode_prefix_mismatch",
- "community": 32,
+ "community": 36,
"norm_label": "test_test_run_leaf_with_experimental_run_kind_triggers_mode_prefix_mismatch()"
},
{
@@ -11943,7 +12204,7 @@
"source_file": "tests/unit/validator/test_engine_creation.py",
"source_location": "L254",
"id": "validator_test_engine_creation_test_missing_required_field_triggers_soft_tier_finding",
- "community": 32,
+ "community": 36,
"norm_label": "test_missing_required_field_triggers_soft_tier_finding()"
},
{
@@ -11952,7 +12213,7 @@
"source_file": "tests/unit/validator/test_engine_creation.py",
"source_location": "L272",
"id": "validator_test_engine_creation_test_required_field_present_does_not_trigger_finding",
- "community": 32,
+ "community": 36,
"norm_label": "test_required_field_present_does_not_trigger_finding()"
},
{
@@ -11961,7 +12222,7 @@
"source_file": "tests/unit/validator/test_engine_creation.py",
"source_location": "L288",
"id": "validator_test_engine_creation_test_malformed_yaml_front_matter_triggers_soft_tier_finding",
- "community": 32,
+ "community": 36,
"norm_label": "test_malformed_yaml_front_matter_triggers_soft_tier_finding()"
},
{
@@ -11970,7 +12231,7 @@
"source_file": "tests/unit/validator/test_engine_creation.py",
"source_location": "L304",
"id": "validator_test_engine_creation_test_no_readme_md_skips_front_matter_rule",
- "community": 32,
+ "community": 36,
"norm_label": "test_no_readme_md_skips_front_matter_rule()"
},
{
@@ -11979,7 +12240,7 @@
"source_file": "tests/unit/validator/test_engine_creation.py",
"source_location": "L320",
"id": "validator_test_engine_creation_test_multiple_findings_aggregate_in_one_call",
- "community": 32,
+ "community": 36,
"norm_label": "test_multiple_findings_aggregate_in_one_call()"
},
{
@@ -11988,7 +12249,7 @@
"source_file": "tests/unit/validator/test_engine_creation.py",
"source_location": "L342",
"id": "validator_test_engine_creation_test_findings_are_sorted_with_hard_tier_first",
- "community": 32,
+ "community": 36,
"norm_label": "test_findings_are_sorted_with_hard_tier_first()"
},
{
@@ -11997,7 +12258,7 @@
"source_file": "tests/unit/validator/test_engine_creation.py",
"source_location": "L366",
"id": "validator_test_engine_creation_test_findings_sorted_lexicographically_within_same_tier",
- "community": 32,
+ "community": 36,
"norm_label": "test_findings_sorted_lexicographically_within_same_tier()"
},
{
@@ -12006,7 +12267,7 @@
"source_file": "tests/unit/validator/test_engine_creation.py",
"source_location": "L386",
"id": "validator_test_engine_creation_test_findings_carry_run_path_from_proposed_path",
- "community": 32,
+ "community": 36,
"norm_label": "test_findings_carry_run_path_from_proposed_path()"
},
{
@@ -12015,7 +12276,7 @@
"source_file": "tests/unit/validator/test_engine_creation.py",
"source_location": "L395",
"id": "validator_test_engine_creation_test_findings_default_audit_flags_to_false",
- "community": 32,
+ "community": 36,
"norm_label": "test_findings_default_audit_flags_to_false()"
},
{
@@ -12024,7 +12285,7 @@
"source_file": "tests/unit/validator/test_engine_creation.py",
"source_location": "L408",
"id": "validator_test_engine_creation_test_findings_are_finding_instances",
- "community": 32,
+ "community": 36,
"norm_label": "test_findings_are_finding_instances()"
},
{
@@ -12033,7 +12294,7 @@
"source_file": "tests/unit/validator/test_engine_creation.py",
"source_location": "L424",
"id": "validator_test_engine_creation_test_creation_validation_input_is_frozen",
- "community": 32,
+ "community": 36,
"norm_label": "test_creation_validation_input_is_frozen()"
},
{
@@ -12042,7 +12303,7 @@
"source_file": "tests/unit/validator/test_engine_creation.py",
"source_location": "L431",
"id": "validator_test_engine_creation_test_creation_validation_input_defaults",
- "community": 517,
+ "community": 53,
"norm_label": "test_creation_validation_input_defaults()"
},
{
@@ -12051,7 +12312,7 @@
"source_file": "tests/unit/validator/test_engine_creation.py",
"source_location": "L1",
"id": "validator_test_engine_creation_rationale_1",
- "community": 32,
+ "community": 36,
"norm_label": "unit tests for ``exlab_wizard.validator.engine`` -- creation-time mode. the eng"
},
{
@@ -12060,7 +12321,7 @@
"source_file": "tests/unit/validator/test_engine_creation.py",
"source_location": "L39",
"id": "validator_test_engine_creation_rationale_39",
- "community": 32,
+ "community": 36,
"norm_label": "a creation-time input that should produce zero findings. the proposed path"
},
{
@@ -12069,7 +12330,7 @@
"source_file": "tests/unit/validator/test_engine_creation.py",
"source_location": "L111",
"id": "validator_test_engine_creation_rationale_111",
- "community": 32,
+ "community": 36,
"norm_label": "default validatorconfig matches the \u00a79 documented defaults."
},
{
@@ -12078,7 +12339,7 @@
"source_file": "tests/unit/validator/test_engine_creation.py",
"source_location": "L137",
"id": "validator_test_engine_creation_rationale_137",
- "community": 32,
+ "community": 36,
"norm_label": "test-mode input with testruns/ parent and testrun_ leaf passes."
},
{
@@ -12087,7 +12348,7 @@
"source_file": "tests/unit/validator/test_engine_creation.py",
"source_location": "L153",
"id": "validator_test_engine_creation_rationale_153",
- "community": 32,
+ "community": 36,
"norm_label": "an angle-bracket identifier in a path segment fires \u00a78.1.1."
},
{
@@ -12096,7 +12357,7 @@
"source_file": "tests/unit/validator/test_engine_creation.py",
"source_location": "L196",
"id": "validator_test_engine_creation_rationale_196",
- "community": 32,
+ "community": 36,
"norm_label": "a windows-illegal char in a file name fires \u00a78.1.2."
},
{
@@ -12105,7 +12366,7 @@
"source_file": "tests/unit/validator/test_engine_creation.py",
"source_location": "L212",
"id": "validator_test_engine_creation_rationale_212",
- "community": 32,
+ "community": 36,
"norm_label": "a windows-reserved file base name (con, nul, ...) fires \u00a78.1.2."
},
{
@@ -12114,7 +12375,7 @@
"source_file": "tests/unit/validator/test_engine_creation.py",
"source_location": "L226",
"id": "validator_test_engine_creation_rationale_226",
- "community": 32,
+ "community": 36,
"norm_label": "a ``run_`` leaf paired with ``run_kind='test'`` fires \u00a78.1.3."
},
{
@@ -12123,7 +12384,7 @@
"source_file": "tests/unit/validator/test_engine_creation.py",
"source_location": "L239",
"id": "validator_test_engine_creation_rationale_239",
- "community": 32,
+ "community": 36,
"norm_label": "a ``testrun_`` leaf with ``run_kind='experimental'`` fires \u00a78.1.3."
},
{
@@ -12132,7 +12393,7 @@
"source_file": "tests/unit/validator/test_engine_creation.py",
"source_location": "L255",
"id": "validator_test_engine_creation_rationale_255",
- "community": 32,
+ "community": 36,
"norm_label": "a required field absent from readme_fields fires \u00a78.1.5."
},
{
@@ -12141,7 +12402,7 @@
"source_file": "tests/unit/validator/test_engine_creation.py",
"source_location": "L273",
"id": "validator_test_engine_creation_rationale_273",
- "community": 32,
+ "community": 36,
"norm_label": "when the required field is present in readme_fields, no finding."
},
{
@@ -12150,7 +12411,7 @@
"source_file": "tests/unit/validator/test_engine_creation.py",
"source_location": "L289",
"id": "validator_test_engine_creation_rationale_289",
- "community": 32,
+ "community": 36,
"norm_label": "an unterminated front-matter block fires \u00a78.1.1's malformed soft rule."
},
{
@@ -12159,7 +12420,7 @@
"source_file": "tests/unit/validator/test_engine_creation.py",
"source_location": "L305",
"id": "validator_test_engine_creation_rationale_305",
- "community": 32,
+ "community": 36,
"norm_label": "front-matter rule does not run if readme.md is absent from inputs."
},
{
@@ -12168,7 +12429,7 @@
"source_file": "tests/unit/validator/test_engine_creation.py",
"source_location": "L321",
"id": "validator_test_engine_creation_rationale_321",
- "community": 32,
+ "community": 36,
"norm_label": "a single bundle that trips multiple rules surfaces all findings."
},
{
@@ -12177,7 +12438,7 @@
"source_file": "tests/unit/validator/test_engine_creation.py",
"source_location": "L343",
"id": "validator_test_engine_creation_rationale_343",
- "community": 32,
+ "community": 36,
"norm_label": "the output is sorted with hard-tier findings before soft."
},
{
@@ -12186,7 +12447,7 @@
"source_file": "tests/unit/validator/test_engine_creation.py",
"source_location": "L367",
"id": "validator_test_engine_creation_rationale_367",
- "community": 32,
+ "community": 36,
"norm_label": "within one tier, findings sort by (rule, offending_path)."
},
{
@@ -12195,7 +12456,7 @@
"source_file": "tests/unit/validator/test_engine_creation.py",
"source_location": "L387",
"id": "validator_test_engine_creation_rationale_387",
- "community": 32,
+ "community": 36,
"norm_label": "engine stamps run_path on every finding from the input."
},
{
@@ -12204,7 +12465,7 @@
"source_file": "tests/unit/validator/test_engine_creation.py",
"source_location": "L396",
"id": "validator_test_engine_creation_rationale_396",
- "community": 32,
+ "community": 36,
"norm_label": "audit-only flags default to false at creation time."
},
{
@@ -12213,7 +12474,7 @@
"source_file": "tests/unit/validator/test_engine_creation.py",
"source_location": "L409",
"id": "validator_test_engine_creation_rationale_409",
- "community": 32,
+ "community": 36,
"norm_label": "the engine returns :class:`finding` instances (not dicts)."
},
{
@@ -12222,7 +12483,7 @@
"source_file": "tests/unit/validator/test_engine_creation.py",
"source_location": "L425",
"id": "validator_test_engine_creation_rationale_425",
- "community": 32,
+ "community": 36,
"norm_label": "the input bundle is a frozen dataclass for determinism."
},
{
@@ -12231,7 +12492,7 @@
"source_file": "tests/unit/validator/test_engine_creation.py",
"source_location": "L432",
"id": "validator_test_engine_creation_rationale_432",
- "community": 517,
+ "community": 53,
"norm_label": "every field except proposed_path is optional with a safe default."
},
{
@@ -12240,7 +12501,7 @@
"source_file": "tests/unit/validator/test_engine_reconfigure.py",
"source_location": "L1",
"id": "tests_unit_validator_test_engine_reconfigure_py",
- "community": 133,
+ "community": 211,
"norm_label": "test_engine_reconfigure.py"
},
{
@@ -12249,7 +12510,7 @@
"source_file": "tests/unit/validator/test_engine_reconfigure.py",
"source_location": "L16",
"id": "validator_test_engine_reconfigure_test_reconfigure_refreshes_scan_limits_and_roots",
- "community": 133,
+ "community": 211,
"norm_label": "test_reconfigure_refreshes_scan_limits_and_roots()"
},
{
@@ -12258,7 +12519,7 @@
"source_file": "tests/unit/validator/test_engine_reconfigure.py",
"source_location": "L35",
"id": "validator_test_engine_reconfigure_test_reconfigure_defaults_to_empty_roots",
- "community": 133,
+ "community": 211,
"norm_label": "test_reconfigure_defaults_to_empty_roots()"
},
{
@@ -12267,7 +12528,7 @@
"source_file": "tests/unit/validator/test_engine_reconfigure.py",
"source_location": "L1",
"id": "validator_test_engine_reconfigure_rationale_1",
- "community": 133,
+ "community": 211,
"norm_label": "unit tests for ``validator.reconfigure`` (live config reload). the settings dia"
},
{
@@ -12276,7 +12537,7 @@
"source_file": "tests/unit/validator/test_findings.py",
"source_location": "L1",
"id": "tests_unit_validator_test_findings_py",
- "community": 92,
+ "community": 91,
"norm_label": "test_findings.py"
},
{
@@ -12285,7 +12546,7 @@
"source_file": "tests/unit/validator/test_findings.py",
"source_location": "L23",
"id": "validator_test_findings_make_finding",
- "community": 92,
+ "community": 91,
"norm_label": "_make_finding()"
},
{
@@ -12294,7 +12555,7 @@
"source_file": "tests/unit/validator/test_findings.py",
"source_location": "L45",
"id": "validator_test_findings_test_finding_instantiation_with_all_fields",
- "community": 92,
+ "community": 91,
"norm_label": "test_finding_instantiation_with_all_fields()"
},
{
@@ -12303,7 +12564,7 @@
"source_file": "tests/unit/validator/test_findings.py",
"source_location": "L58",
"id": "validator_test_findings_test_finding_minimum_required_fields",
- "community": 92,
+ "community": 91,
"norm_label": "test_finding_minimum_required_fields()"
},
{
@@ -12312,7 +12573,7 @@
"source_file": "tests/unit/validator/test_findings.py",
"source_location": "L74",
"id": "validator_test_findings_test_finding_is_frozen",
- "community": 92,
+ "community": 91,
"norm_label": "test_finding_is_frozen()"
},
{
@@ -12321,7 +12582,7 @@
"source_file": "tests/unit/validator/test_findings.py",
"source_location": "L86",
"id": "validator_test_findings_test_to_dict_contains_all_spec_keys",
- "community": 92,
+ "community": 91,
"norm_label": "test_to_dict_contains_all_spec_keys()"
},
{
@@ -12330,7 +12591,7 @@
"source_file": "tests/unit/validator/test_findings.py",
"source_location": "L103",
"id": "validator_test_findings_test_to_dict_values_match_field_values",
- "community": 92,
+ "community": 91,
"norm_label": "test_to_dict_values_match_field_values()"
},
{
@@ -12339,7 +12600,7 @@
"source_file": "tests/unit/validator/test_findings.py",
"source_location": "L113",
"id": "validator_test_findings_test_to_dict_from_dict_round_trip_identity",
- "community": 92,
+ "community": 91,
"norm_label": "test_to_dict_from_dict_round_trip_identity()"
},
{
@@ -12348,7 +12609,7 @@
"source_file": "tests/unit/validator/test_findings.py",
"source_location": "L119",
"id": "validator_test_findings_test_from_dict_accepts_minimal_payload",
- "community": 92,
+ "community": 91,
"norm_label": "test_from_dict_accepts_minimal_payload()"
},
{
@@ -12357,7 +12618,7 @@
"source_file": "tests/unit/validator/test_findings.py",
"source_location": "L135",
"id": "validator_test_findings_test_from_dict_ignores_unknown_keys",
- "community": 92,
+ "community": 91,
"norm_label": "test_from_dict_ignores_unknown_keys()"
},
{
@@ -12366,7 +12627,7 @@
"source_file": "tests/unit/validator/test_findings.py",
"source_location": "L149",
"id": "validator_test_findings_test_to_dict_preserves_none_matched_token",
- "community": 92,
+ "community": 91,
"norm_label": "test_to_dict_preserves_none_matched_token()"
},
{
@@ -12375,7 +12636,7 @@
"source_file": "tests/unit/validator/test_findings.py",
"source_location": "L169",
"id": "validator_test_findings_test_finding_is_hashable",
- "community": 92,
+ "community": 91,
"norm_label": "test_finding_is_hashable()"
},
{
@@ -12384,7 +12645,7 @@
"source_file": "tests/unit/validator/test_findings.py",
"source_location": "L176",
"id": "validator_test_findings_test_findings_in_set_dedupe_by_value",
- "community": 92,
+ "community": 91,
"norm_label": "test_findings_in_set_dedupe_by_value()"
},
{
@@ -12393,7 +12654,7 @@
"source_file": "tests/unit/validator/test_findings.py",
"source_location": "L184",
"id": "validator_test_findings_test_findings_in_set_distinguish_by_value",
- "community": 92,
+ "community": 91,
"norm_label": "test_findings_in_set_distinguish_by_value()"
},
{
@@ -12402,7 +12663,7 @@
"source_file": "tests/unit/validator/test_findings.py",
"source_location": "L198",
"id": "validator_test_findings_test_findings_can_be_sorted_by_to_dict_key",
- "community": 92,
+ "community": 91,
"norm_label": "test_findings_can_be_sorted_by_to_dict_key()"
},
{
@@ -12411,7 +12672,7 @@
"source_file": "tests/unit/validator/test_findings.py",
"source_location": "L206",
"id": "validator_test_findings_test_findings_sort_by_tier_then_rule_then_path",
- "community": 92,
+ "community": 91,
"norm_label": "test_findings_sort_by_tier_then_rule_then_path()"
},
{
@@ -12420,7 +12681,7 @@
"source_file": "tests/unit/validator/test_findings.py",
"source_location": "L224",
"id": "validator_test_findings_test_equality_with_same_field_values",
- "community": 92,
+ "community": 91,
"norm_label": "test_equality_with_same_field_values()"
},
{
@@ -12429,7 +12690,7 @@
"source_file": "tests/unit/validator/test_findings.py",
"source_location": "L230",
"id": "validator_test_findings_test_inequality_when_one_field_differs",
- "community": 92,
+ "community": 91,
"norm_label": "test_inequality_when_one_field_differs()"
},
{
@@ -12438,7 +12699,7 @@
"source_file": "tests/unit/validator/test_findings.py",
"source_location": "L236",
"id": "validator_test_findings_test_finding_equality_is_not_identity",
- "community": 92,
+ "community": 91,
"norm_label": "test_finding_equality_is_not_identity()"
},
{
@@ -12447,7 +12708,7 @@
"source_file": "tests/unit/validator/test_findings.py",
"source_location": "L243",
"id": "validator_test_findings_test_audit_mode_flags_round_trip",
- "community": 92,
+ "community": 91,
"norm_label": "test_audit_mode_flags_round_trip()"
},
{
@@ -12456,7 +12717,7 @@
"source_file": "tests/unit/validator/test_findings.py",
"source_location": "L1",
"id": "validator_test_findings_rationale_1",
- "community": 92,
+ "community": 91,
"norm_label": "unit tests for ``exlab_wizard.validator.findings``. the :class:`finding` datacl"
},
{
@@ -12465,7 +12726,7 @@
"source_file": "tests/unit/validator/test_findings.py",
"source_location": "L24",
"id": "validator_test_findings_rationale_24",
- "community": 92,
+ "community": 91,
"norm_label": "return a canonical finding matching the \u00a711.8 example payload."
},
{
@@ -12474,7 +12735,7 @@
"source_file": "tests/unit/validator/test_findings.py",
"source_location": "L59",
"id": "validator_test_findings_rationale_59",
- "community": 92,
+ "community": 91,
"norm_label": "the five non-default fields are required; the rest default."
},
{
@@ -12483,7 +12744,7 @@
"source_file": "tests/unit/validator/test_findings.py",
"source_location": "L75",
"id": "validator_test_findings_rationale_75",
- "community": 92,
+ "community": 91,
"norm_label": "findings are frozen so they can be hashed / put in sets."
},
{
@@ -12492,7 +12753,7 @@
"source_file": "tests/unit/validator/test_findings.py",
"source_location": "L120",
"id": "validator_test_findings_rationale_120",
- "community": 92,
+ "community": 91,
"norm_label": "optional fields default if missing from the payload."
},
{
@@ -12501,7 +12762,7 @@
"source_file": "tests/unit/validator/test_findings.py",
"source_location": "L136",
"id": "validator_test_findings_rationale_136",
- "community": 92,
+ "community": 91,
"norm_label": "unknown keys in a future-minor payload are not lethal."
},
{
@@ -12510,7 +12771,7 @@
"source_file": "tests/unit/validator/test_findings.py",
"source_location": "L150",
"id": "validator_test_findings_rationale_150",
- "community": 92,
+ "community": 91,
"norm_label": "``matched_token`` of ``none`` survives the round-trip as ``none``."
},
{
@@ -12519,7 +12780,7 @@
"source_file": "tests/unit/validator/test_findings.py",
"source_location": "L177",
"id": "validator_test_findings_rationale_177",
- "community": 92,
+ "community": 91,
"norm_label": "two findings with identical field values collapse in a set."
},
{
@@ -12528,7 +12789,7 @@
"source_file": "tests/unit/validator/test_findings.py",
"source_location": "L185",
"id": "validator_test_findings_rationale_185",
- "community": 92,
+ "community": 91,
"norm_label": "different field values produce distinct set entries."
},
{
@@ -12537,7 +12798,7 @@
"source_file": "tests/unit/validator/test_findings.py",
"source_location": "L199",
"id": "validator_test_findings_rationale_199",
- "community": 92,
+ "community": 91,
"norm_label": "findings sort lexicographically when keyed by their dict shape."
},
{
@@ -12546,7 +12807,7 @@
"source_file": "tests/unit/validator/test_findings.py",
"source_location": "L207",
"id": "validator_test_findings_rationale_207",
- "community": 92,
+ "community": 91,
"norm_label": "the expected three-key sort produces hard-first ordering."
},
{
@@ -12555,7 +12816,7 @@
"source_file": "tests/unit/validator/test_findings.py",
"source_location": "L244",
"id": "validator_test_findings_rationale_244",
- "community": 92,
+ "community": 91,
"norm_label": "the audit-mode-only flags (synced_under_prior_policy / override_active) surv"
},
{
@@ -12564,7 +12825,7 @@
"source_file": "tests/unit/validator/__init__.py",
"source_location": "L1",
"id": "tests_unit_validator_init_py",
- "community": 434,
+ "community": 472,
"norm_label": "__init__.py"
},
{
@@ -12573,7 +12834,7 @@
"source_file": "src/exlab_wizard/validator/__init__.py",
"source_location": "L1",
"id": "validator_init_rationale_1",
- "community": 434,
+ "community": 472,
"norm_label": "validator engine package. backend spec \u00a78."
},
{
@@ -12582,7 +12843,7 @@
"source_file": "tests/unit/validator/test_rules.py",
"source_location": "L1",
"id": "tests_unit_validator_test_rules_py",
- "community": 159,
+ "community": 148,
"norm_label": "test_rules.py"
},
{
@@ -12591,7 +12852,7 @@
"source_file": "tests/unit/validator/test_rules.py",
"source_location": "L37",
"id": "validator_test_rules_test_angle_bracket_token_in_segment_fires",
- "community": 159,
+ "community": 148,
"norm_label": "test_angle_bracket_token_in_segment_fires()"
},
{
@@ -12600,7 +12861,7 @@
"source_file": "tests/unit/validator/test_rules.py",
"source_location": "L64",
"id": "validator_test_rules_test_non_token_angle_brackets_pass",
- "community": 159,
+ "community": 148,
"norm_label": "test_non_token_angle_brackets_pass()"
},
{
@@ -12609,7 +12870,7 @@
"source_file": "tests/unit/validator/test_rules.py",
"source_location": "L75",
"id": "validator_test_rules_test_jinja_var_marker_in_filename_fires",
- "community": 159,
+ "community": 148,
"norm_label": "test_jinja_var_marker_in_filename_fires()"
},
{
@@ -12618,7 +12879,7 @@
"source_file": "tests/unit/validator/test_rules.py",
"source_location": "L88",
"id": "validator_test_rules_test_jinja_block_marker_in_content_fires",
- "community": 159,
+ "community": 148,
"norm_label": "test_jinja_block_marker_in_content_fires()"
},
{
@@ -12627,7 +12888,7 @@
"source_file": "tests/unit/validator/test_rules.py",
"source_location": "L101",
"id": "validator_test_rules_test_unresolved_placeholder_in_content_fires",
- "community": 159,
+ "community": 148,
"norm_label": "test_unresolved_placeholder_in_content_fires()"
},
{
@@ -12636,7 +12897,7 @@
"source_file": "tests/unit/validator/test_rules.py",
"source_location": "L110",
"id": "validator_test_rules_test_no_findings_on_clean_inputs",
- "community": 159,
+ "community": 148,
"norm_label": "test_no_findings_on_clean_inputs()"
},
{
@@ -12645,7 +12906,7 @@
"source_file": "tests/unit/validator/test_rules.py",
"source_location": "L119",
"id": "validator_test_rules_test_large_text_file_skipped_from_content_scan",
- "community": 159,
+ "community": 148,
"norm_label": "test_large_text_file_skipped_from_content_scan()"
},
{
@@ -12654,7 +12915,7 @@
"source_file": "tests/unit/validator/test_rules.py",
"source_location": "L131",
"id": "validator_test_rules_test_under_size_cap_content_is_scanned",
- "community": 159,
+ "community": 148,
"norm_label": "test_under_size_cap_content_is_scanned()"
},
{
@@ -12663,7 +12924,7 @@
"source_file": "tests/unit/validator/test_rules.py",
"source_location": "L142",
"id": "validator_test_rules_test_multiple_matches_in_same_input_each_yield_finding",
- "community": 159,
+ "community": 148,
"norm_label": "test_multiple_matches_in_same_input_each_yield_finding()"
},
{
@@ -12672,7 +12933,7 @@
"source_file": "tests/unit/validator/test_rules.py",
"source_location": "L152",
"id": "validator_test_rules_test_empty_file_contents_dict_is_path_only_scan",
- "community": 159,
+ "community": 148,
"norm_label": "test_empty_file_contents_dict_is_path_only_scan()"
},
{
@@ -12681,7 +12942,7 @@
"source_file": "tests/unit/validator/test_rules.py",
"source_location": "L180",
"id": "validator_test_rules_test_windows_illegal_char_in_segment_fires",
- "community": 228,
+ "community": 148,
"norm_label": "test_windows_illegal_char_in_segment_fires()"
},
{
@@ -12690,7 +12951,7 @@
"source_file": "tests/unit/validator/test_rules.py",
"source_location": "L191",
"id": "validator_test_rules_test_nul_byte_in_name_fires",
- "community": 228,
+ "community": 148,
"norm_label": "test_nul_byte_in_name_fires()"
},
{
@@ -12699,7 +12960,7 @@
"source_file": "tests/unit/validator/test_rules.py",
"source_location": "L200",
"id": "validator_test_rules_test_low_ascii_control_char_fires",
- "community": 228,
+ "community": 148,
"norm_label": "test_low_ascii_control_char_fires()"
},
{
@@ -12708,7 +12969,7 @@
"source_file": "tests/unit/validator/test_rules.py",
"source_location": "L210",
"id": "validator_test_rules_test_trailing_dot_fires",
- "community": 228,
+ "community": 148,
"norm_label": "test_trailing_dot_fires()"
},
{
@@ -12717,7 +12978,7 @@
"source_file": "tests/unit/validator/test_rules.py",
"source_location": "L218",
"id": "validator_test_rules_test_trailing_space_fires",
- "community": 228,
+ "community": 148,
"norm_label": "test_trailing_space_fires()"
},
{
@@ -12726,7 +12987,7 @@
"source_file": "tests/unit/validator/test_rules.py",
"source_location": "L237",
"id": "validator_test_rules_test_normal_names_pass",
- "community": 228,
+ "community": 148,
"norm_label": "test_normal_names_pass()"
},
{
@@ -12735,7 +12996,7 @@
"source_file": "tests/unit/validator/test_rules.py",
"source_location": "L245",
"id": "validator_test_rules_test_findings_have_hard_tier",
- "community": 228,
+ "community": 148,
"norm_label": "test_findings_have_hard_tier()"
},
{
@@ -12744,7 +13005,7 @@
"source_file": "tests/unit/validator/test_rules.py",
"source_location": "L276",
"id": "validator_test_rules_test_reserved_name_fires",
- "community": 399,
+ "community": 236,
"norm_label": "test_reserved_name_fires()"
},
{
@@ -12753,7 +13014,7 @@
"source_file": "tests/unit/validator/test_rules.py",
"source_location": "L297",
"id": "validator_test_rules_test_non_reserved_name_passes",
- "community": 399,
+ "community": 236,
"norm_label": "test_non_reserved_name_passes()"
},
{
@@ -12762,7 +13023,7 @@
"source_file": "tests/unit/validator/test_rules.py",
"source_location": "L320",
"id": "validator_test_rules_test_unsafe_project_name_fires",
- "community": 400,
+ "community": 236,
"norm_label": "test_unsafe_project_name_fires()"
},
{
@@ -12771,7 +13032,7 @@
"source_file": "tests/unit/validator/test_rules.py",
"source_location": "L340",
"id": "validator_test_rules_test_safe_project_name_passes",
- "community": 400,
+ "community": 236,
"norm_label": "test_safe_project_name_passes()"
},
{
@@ -12780,7 +13041,7 @@
"source_file": "tests/unit/validator/test_rules.py",
"source_location": "L349",
"id": "validator_test_rules_test_experimental_with_run_prefix_under_runs_parent_passes",
- "community": 258,
+ "community": 252,
"norm_label": "test_experimental_with_run_prefix_under_runs_parent_passes()"
},
{
@@ -12789,7 +13050,7 @@
"source_file": "tests/unit/validator/test_rules.py",
"source_location": "L359",
"id": "validator_test_rules_test_experimental_with_run_prefix_at_project_level_fires",
- "community": 258,
+ "community": 252,
"norm_label": "test_experimental_with_run_prefix_at_project_level_fires()"
},
{
@@ -12798,7 +13059,7 @@
"source_file": "tests/unit/validator/test_rules.py",
"source_location": "L372",
"id": "validator_test_rules_test_experimental_with_test_run_prefix_fires",
- "community": 258,
+ "community": 252,
"norm_label": "test_experimental_with_test_run_prefix_fires()"
},
{
@@ -12807,7 +13068,7 @@
"source_file": "tests/unit/validator/test_rules.py",
"source_location": "L382",
"id": "validator_test_rules_test_experimental_under_test_runs_parent_fires",
- "community": 258,
+ "community": 252,
"norm_label": "test_experimental_under_test_runs_parent_fires()"
},
{
@@ -12816,7 +13077,7 @@
"source_file": "tests/unit/validator/test_rules.py",
"source_location": "L391",
"id": "validator_test_rules_test_test_with_test_run_prefix_under_test_runs_passes",
- "community": 258,
+ "community": 252,
"norm_label": "test_test_with_test_run_prefix_under_test_runs_passes()"
},
{
@@ -12825,7 +13086,7 @@
"source_file": "tests/unit/validator/test_rules.py",
"source_location": "L400",
"id": "validator_test_rules_test_test_with_run_prefix_fires",
- "community": 258,
+ "community": 252,
"norm_label": "test_test_with_run_prefix_fires()"
},
{
@@ -12834,7 +13095,7 @@
"source_file": "tests/unit/validator/test_rules.py",
"source_location": "L409",
"id": "validator_test_rules_test_test_with_test_run_prefix_but_wrong_parent_fires",
- "community": 258,
+ "community": 252,
"norm_label": "test_test_with_test_run_prefix_but_wrong_parent_fires()"
},
{
@@ -12843,7 +13104,7 @@
"source_file": "tests/unit/validator/test_rules.py",
"source_location": "L418",
"id": "validator_test_rules_test_run_kind_none_returns_no_findings",
- "community": 258,
+ "community": 252,
"norm_label": "test_run_kind_none_returns_no_findings()"
},
{
@@ -12852,7 +13113,7 @@
"source_file": "tests/unit/validator/test_rules.py",
"source_location": "L432",
"id": "validator_test_rules_test_project_without_creation_json_fires",
- "community": 332,
+ "community": 329,
"norm_label": "test_project_without_creation_json_fires()"
},
{
@@ -12861,7 +13122,7 @@
"source_file": "tests/unit/validator/test_rules.py",
"source_location": "L439",
"id": "validator_test_rules_test_run_without_creation_json_fires",
- "community": 332,
+ "community": 329,
"norm_label": "test_run_without_creation_json_fires()"
},
{
@@ -12870,7 +13131,7 @@
"source_file": "tests/unit/validator/test_rules.py",
"source_location": "L445",
"id": "validator_test_rules_test_equipment_without_creation_json_does_not_fire",
- "community": 332,
+ "community": 329,
"norm_label": "test_equipment_without_creation_json_does_not_fire()"
},
{
@@ -12879,7 +13140,7 @@
"source_file": "tests/unit/validator/test_rules.py",
"source_location": "L450",
"id": "validator_test_rules_test_project_with_creation_json_passes",
- "community": 332,
+ "community": 329,
"norm_label": "test_project_with_creation_json_passes()"
},
{
@@ -12888,7 +13149,7 @@
"source_file": "tests/unit/validator/test_rules.py",
"source_location": "L455",
"id": "validator_test_rules_test_run_with_creation_json_passes",
- "community": 332,
+ "community": 329,
"norm_label": "test_run_with_creation_json_passes()"
},
{
@@ -12951,7 +13212,7 @@
"source_file": "tests/unit/validator/test_rules.py",
"source_location": "L541",
"id": "validator_test_rules_test_well_formed_front_matter_passes",
- "community": 159,
+ "community": 302,
"norm_label": "test_well_formed_front_matter_passes()"
},
{
@@ -12960,7 +13221,7 @@
"source_file": "tests/unit/validator/test_rules.py",
"source_location": "L546",
"id": "validator_test_rules_test_unterminated_front_matter_fires",
- "community": 159,
+ "community": 302,
"norm_label": "test_unterminated_front_matter_fires()"
},
{
@@ -12969,7 +13230,7 @@
"source_file": "tests/unit/validator/test_rules.py",
"source_location": "L554",
"id": "validator_test_rules_test_malformed_yaml_in_block_fires",
- "community": 159,
+ "community": 302,
"norm_label": "test_malformed_yaml_in_block_fires()"
},
{
@@ -12978,7 +13239,7 @@
"source_file": "tests/unit/validator/test_rules.py",
"source_location": "L562",
"id": "validator_test_rules_test_no_front_matter_passes",
- "community": 159,
+ "community": 302,
"norm_label": "test_no_front_matter_passes()"
},
{
@@ -12987,7 +13248,7 @@
"source_file": "tests/unit/validator/test_rules.py",
"source_location": "L567",
"id": "validator_test_rules_test_empty_content_passes",
- "community": 159,
+ "community": 302,
"norm_label": "test_empty_content_passes()"
},
{
@@ -12996,7 +13257,7 @@
"source_file": "tests/unit/validator/test_rules.py",
"source_location": "L571",
"id": "validator_test_rules_test_front_matter_with_nested_yaml_passes",
- "community": 159,
+ "community": 302,
"norm_label": "test_front_matter_with_nested_yaml_passes()"
},
{
@@ -13005,7 +13266,7 @@
"source_file": "tests/unit/validator/test_rules.py",
"source_location": "L1",
"id": "validator_test_rules_rationale_1",
- "community": 159,
+ "community": 148,
"norm_label": "tests for ``exlab_wizard.validator.rules``. backend spec \u00a78.1. covers each \u00a78.1"
},
{
@@ -13014,7 +13275,7 @@
"source_file": "tests/unit/validator/test_rules.py",
"source_location": "L350",
"id": "validator_test_rules_rationale_350",
- "community": 258,
+ "community": 252,
"norm_label": "redesign \u00a73.4: experimental run leaf parented by ``runs`` is valid."
},
{
@@ -13023,7 +13284,7 @@
"source_file": "tests/unit/validator/test_rules.py",
"source_location": "L360",
"id": "validator_test_rules_rationale_360",
- "community": 258,
+ "community": 252,
"norm_label": "redesign \u00a73.4: a misplaced ``run_*`` directly under the project (not under `"
},
{
@@ -13032,7 +13293,7 @@
"source_file": "tests/unit/validator/test_engine_audit.py",
"source_location": "L1",
"id": "tests_unit_validator_test_engine_audit_py",
- "community": 104,
+ "community": 119,
"norm_label": "test_engine_audit.py"
},
{
@@ -13041,7 +13302,7 @@
"source_file": "tests/unit/validator/test_engine_audit.py",
"source_location": "L46",
"id": "validator_test_engine_audit_build_creation_json_dict",
- "community": 89,
+ "community": 93,
"norm_label": "_build_creation_json_dict()"
},
{
@@ -13050,7 +13311,7 @@
"source_file": "tests/unit/validator/test_engine_audit.py",
"source_location": "L87",
"id": "validator_test_engine_audit_write_creation_json",
- "community": 89,
+ "community": 93,
"norm_label": "_write_creation_json()"
},
{
@@ -13059,7 +13320,7 @@
"source_file": "tests/unit/validator/test_engine_audit.py",
"source_location": "L96",
"id": "validator_test_engine_audit_make_clean_tree",
- "community": 88,
+ "community": 92,
"norm_label": "_make_clean_tree()"
},
{
@@ -13068,7 +13329,7 @@
"source_file": "tests/unit/validator/test_engine_audit.py",
"source_location": "L140",
"id": "validator_test_engine_audit_make_validator",
- "community": 88,
+ "community": 92,
"norm_label": "_make_validator()"
},
{
@@ -13077,7 +13338,7 @@
"source_file": "tests/unit/validator/test_engine_audit.py",
"source_location": "L164",
"id": "validator_test_engine_audit_by_rule",
- "community": 187,
+ "community": 206,
"norm_label": "_by_rule()"
},
{
@@ -13086,7 +13347,7 @@
"source_file": "tests/unit/validator/test_engine_audit.py",
"source_location": "L173",
"id": "validator_test_engine_audit_test_audit_clean_tree_returns_empty_list",
- "community": 88,
+ "community": 92,
"norm_label": "test_audit_clean_tree_returns_empty_list()"
},
{
@@ -13095,7 +13356,7 @@
"source_file": "tests/unit/validator/test_engine_audit.py",
"source_location": "L181",
"id": "validator_test_engine_audit_test_audit_project_missing_creation_json_returns_orphan",
- "community": 187,
+ "community": 206,
"norm_label": "test_audit_project_missing_creation_json_returns_orphan()"
},
{
@@ -13104,7 +13365,7 @@
"source_file": "tests/unit/validator/test_engine_audit.py",
"source_location": "L202",
"id": "validator_test_engine_audit_test_audit_run_missing_creation_json_returns_orphan",
- "community": 187,
+ "community": 206,
"norm_label": "test_audit_run_missing_creation_json_returns_orphan()"
},
{
@@ -13113,7 +13374,7 @@
"source_file": "tests/unit/validator/test_engine_audit.py",
"source_location": "L219",
"id": "validator_test_engine_audit_test_audit_unsafe_project_name_returns_soft_finding",
- "community": 506,
+ "community": 206,
"norm_label": "test_audit_unsafe_project_name_returns_soft_finding()"
},
{
@@ -13122,7 +13383,7 @@
"source_file": "tests/unit/validator/test_engine_audit.py",
"source_location": "L238",
"id": "validator_test_engine_audit_test_audit_clean_project_name_has_no_unsafe_finding",
- "community": 187,
+ "community": 206,
"norm_label": "test_audit_clean_project_name_has_no_unsafe_finding()"
},
{
@@ -13131,7 +13392,7 @@
"source_file": "tests/unit/validator/test_engine_audit.py",
"source_location": "L246",
"id": "validator_test_engine_audit_test_audit_mode_prefix_mismatch_run_with_test_kind",
- "community": 187,
+ "community": 93,
"norm_label": "test_audit_mode_prefix_mismatch_run_with_test_kind()"
},
{
@@ -13140,7 +13401,7 @@
"source_file": "tests/unit/validator/test_engine_audit.py",
"source_location": "L268",
"id": "validator_test_engine_audit_test_audit_unresolved_placeholder_in_directory_name",
- "community": 89,
+ "community": 206,
"norm_label": "test_audit_unresolved_placeholder_in_directory_name()"
},
{
@@ -13149,7 +13410,7 @@
"source_file": "tests/unit/validator/test_engine_audit.py",
"source_location": "L291",
"id": "validator_test_engine_audit_test_audit_override_active_flag_set_when_problem_class_overridden",
- "community": 187,
+ "community": 206,
"norm_label": "test_audit_override_active_flag_set_when_problem_class_overridden()"
},
{
@@ -13158,7 +13419,7 @@
"source_file": "tests/unit/validator/test_engine_audit.py",
"source_location": "L324",
"id": "validator_test_engine_audit_test_audit_synced_under_prior_policy_flag_for_hard_finding_on_synced_run",
- "community": 187,
+ "community": 525,
"norm_label": "test_audit_synced_under_prior_policy_flag_for_hard_finding_on_synced_run()"
},
{
@@ -13167,7 +13428,7 @@
"source_file": "tests/unit/validator/test_engine_audit.py",
"source_location": "L348",
"id": "validator_test_engine_audit_test_audit_synced_under_prior_policy_flag_for_hard_finding_on_cleaned_run",
- "community": 187,
+ "community": 526,
"norm_label": "test_audit_synced_under_prior_policy_flag_for_hard_finding_on_cleaned_run()"
},
{
@@ -13176,7 +13437,7 @@
"source_file": "tests/unit/validator/test_engine_audit.py",
"source_location": "L374",
"id": "validator_test_engine_audit_test_audit_respects_content_scan_max_mib_cap",
- "community": 88,
+ "community": 92,
"norm_label": "test_audit_respects_content_scan_max_mib_cap()"
},
{
@@ -13185,7 +13446,7 @@
"source_file": "tests/unit/validator/test_engine_audit.py",
"source_location": "L398",
"id": "validator_test_engine_audit_test_audit_respects_extensions_allowlist",
- "community": 88,
+ "community": 92,
"norm_label": "test_audit_respects_extensions_allowlist()"
},
{
@@ -13194,7 +13455,7 @@
"source_file": "tests/unit/validator/test_engine_audit.py",
"source_location": "L417",
"id": "validator_test_engine_audit_test_audit_detects_binary_files_via_null_byte_sniff",
- "community": 88,
+ "community": 92,
"norm_label": "test_audit_detects_binary_files_via_null_byte_sniff()"
},
{
@@ -13203,7 +13464,7 @@
"source_file": "tests/unit/validator/test_engine_audit.py",
"source_location": "L436",
"id": "validator_test_engine_audit_test_audit_scans_text_file_content_when_within_limits",
- "community": 88,
+ "community": 92,
"norm_label": "test_audit_scans_text_file_content_when_within_limits()"
},
{
@@ -13212,7 +13473,7 @@
"source_file": "tests/unit/validator/test_engine_audit.py",
"source_location": "L452",
"id": "validator_test_engine_audit_test_audit_findings_are_sorted_by_tier_then_rule_then_offending_path",
- "community": 89,
+ "community": 93,
"norm_label": "test_audit_findings_are_sorted_by_tier_then_rule_then_offending_path()"
},
{
@@ -13221,7 +13482,7 @@
"source_file": "tests/unit/validator/test_engine_audit.py",
"source_location": "L474",
"id": "validator_test_engine_audit_test_query_problems_is_alias_for_audit",
- "community": 88,
+ "community": 92,
"norm_label": "test_query_problems_is_alias_for_audit()"
},
{
@@ -13230,7 +13491,7 @@
"source_file": "tests/unit/validator/test_engine_audit.py",
"source_location": "L487",
"id": "validator_test_engine_audit_test_audit_scope_equipment_id_resolves_to_configured_root",
- "community": 89,
+ "community": 93,
"norm_label": "test_audit_scope_equipment_id_resolves_to_configured_root()"
},
{
@@ -13239,7 +13500,7 @@
"source_file": "tests/unit/validator/test_engine_audit.py",
"source_location": "L524",
"id": "validator_test_engine_audit_test_audit_scope_project_path_walks_one_subtree",
- "community": 89,
+ "community": 93,
"norm_label": "test_audit_scope_project_path_walks_one_subtree()"
},
{
@@ -13248,7 +13509,7 @@
"source_file": "tests/unit/validator/test_engine_audit.py",
"source_location": "L549",
"id": "validator_test_engine_audit_test_audit_scope_all_walks_every_configured_equipment",
- "community": 89,
+ "community": 93,
"norm_label": "test_audit_scope_all_walks_every_configured_equipment()"
},
{
@@ -13257,7 +13518,7 @@
"source_file": "tests/unit/validator/test_engine_audit.py",
"source_location": "L584",
"id": "validator_test_engine_audit_test_audit_scope_unknown_equipment_id_returns_empty",
- "community": 104,
+ "community": 119,
"norm_label": "test_audit_scope_unknown_equipment_id_returns_empty()"
},
{
@@ -13266,7 +13527,7 @@
"source_file": "tests/unit/validator/test_engine_audit.py",
"source_location": "L591",
"id": "validator_test_engine_audit_test_audit_skips_cache_directory_contents",
- "community": 88,
+ "community": 92,
"norm_label": "test_audit_skips_cache_directory_contents()"
},
{
@@ -13275,7 +13536,7 @@
"source_file": "tests/unit/validator/test_engine_audit.py",
"source_location": "L607",
"id": "validator_test_engine_audit_test_audit_revoked_override_does_not_set_override_active",
- "community": 187,
+ "community": 206,
"norm_label": "test_audit_revoked_override_does_not_set_override_active()"
},
{
@@ -13284,7 +13545,7 @@
"source_file": "tests/unit/validator/test_engine_audit.py",
"source_location": "L644",
"id": "validator_test_engine_audit_test_audit_unresolved_placeholder_in_file_name",
- "community": 88,
+ "community": 92,
"norm_label": "test_audit_unresolved_placeholder_in_file_name()"
},
{
@@ -13293,7 +13554,7 @@
"source_file": "tests/unit/validator/test_engine_audit.py",
"source_location": "L660",
"id": "validator_test_engine_audit_test_audit_test_run_with_experimental_kind_flagged",
- "community": 187,
+ "community": 206,
"norm_label": "test_audit_test_run_with_experimental_kind_flagged()"
},
{
@@ -13302,7 +13563,7 @@
"source_file": "tests/unit/validator/test_engine_audit.py",
"source_location": "L680",
"id": "validator_test_engine_audit_test_audit_returns_list_of_finding_dataclass_instances",
- "community": 89,
+ "community": 93,
"norm_label": "test_audit_returns_list_of_finding_dataclass_instances()"
},
{
@@ -13311,7 +13572,7 @@
"source_file": "tests/unit/validator/test_engine_audit.py",
"source_location": "L695",
"id": "validator_test_engine_audit_test_audit_includes_staging_root_when_orchestrator_on",
- "community": 89,
+ "community": 93,
"norm_label": "test_audit_includes_staging_root_when_orchestrator_on()"
},
{
@@ -13320,7 +13581,7 @@
"source_file": "tests/unit/validator/test_engine_audit.py",
"source_location": "L722",
"id": "validator_test_engine_audit_test_audit_findings_carry_full_section_11_8_shape",
- "community": 89,
+ "community": 93,
"norm_label": "test_audit_findings_carry_full_section_11_8_shape()"
},
{
@@ -13329,7 +13590,7 @@
"source_file": "tests/unit/validator/test_engine_audit.py",
"source_location": "L760",
"id": "validator_test_engine_audit_test_audit_unknown_scope_kind_raises_value_error",
- "community": 104,
+ "community": 119,
"norm_label": "test_audit_unknown_scope_kind_raises_value_error()"
},
{
@@ -13338,7 +13599,7 @@
"source_file": "tests/unit/validator/test_engine_audit.py",
"source_location": "L767",
"id": "validator_test_engine_audit_test_audit_root_does_not_exist_returns_empty",
- "community": 104,
+ "community": 119,
"norm_label": "test_audit_root_does_not_exist_returns_empty()"
},
{
@@ -13347,7 +13608,7 @@
"source_file": "tests/unit/validator/test_engine_audit.py",
"source_location": "L775",
"id": "validator_test_engine_audit_test_audit_root_is_a_file_returns_empty",
- "community": 104,
+ "community": 119,
"norm_label": "test_audit_root_is_a_file_returns_empty()"
},
{
@@ -13356,7 +13617,7 @@
"source_file": "tests/unit/validator/test_engine_audit.py",
"source_location": "L783",
"id": "validator_test_engine_audit_test_audit_handles_unreadable_directory",
- "community": 104,
+ "community": 119,
"norm_label": "test_audit_handles_unreadable_directory()"
},
{
@@ -13365,7 +13626,7 @@
"source_file": "tests/unit/validator/test_engine_audit.py",
"source_location": "L803",
"id": "validator_test_engine_audit_test_audit_other_level_subfolder_under_project",
- "community": 89,
+ "community": 93,
"norm_label": "test_audit_other_level_subfolder_under_project()"
},
{
@@ -13374,7 +13635,7 @@
"source_file": "tests/unit/validator/test_engine_audit.py",
"source_location": "L819",
"id": "validator_test_engine_audit_test_audit_other_under_test_runs_unknown_leaf",
- "community": 89,
+ "community": 93,
"norm_label": "test_audit_other_under_test_runs_unknown_leaf()"
},
{
@@ -13383,7 +13644,7 @@
"source_file": "tests/unit/validator/test_engine_audit.py",
"source_location": "L835",
"id": "validator_test_engine_audit_test_audit_deeply_nested_other_subfolder",
- "community": 88,
+ "community": 92,
"norm_label": "test_audit_deeply_nested_other_subfolder()"
},
{
@@ -13392,7 +13653,7 @@
"source_file": "tests/unit/validator/test_engine_audit.py",
"source_location": "L854",
"id": "validator_test_engine_audit_test_audit_creation_json_unreadable",
- "community": 88,
+ "community": 92,
"norm_label": "test_audit_creation_json_unreadable()"
},
{
@@ -13401,7 +13662,7 @@
"source_file": "tests/unit/validator/test_engine_audit.py",
"source_location": "L876",
"id": "validator_test_engine_audit_test_audit_creation_json_malformed_raw_decode",
- "community": 88,
+ "community": 92,
"norm_label": "test_audit_creation_json_malformed_raw_decode()"
},
{
@@ -13410,7 +13671,7 @@
"source_file": "tests/unit/validator/test_engine_audit.py",
"source_location": "L888",
"id": "validator_test_engine_audit_test_audit_creation_json_missing_required_struct_field",
- "community": 89,
+ "community": 93,
"norm_label": "test_audit_creation_json_missing_required_struct_field()"
},
{
@@ -13419,7 +13680,7 @@
"source_file": "tests/unit/validator/test_engine_audit.py",
"source_location": "L908",
"id": "validator_test_engine_audit_test_audit_readme_fields_json_decode_failure",
- "community": 88,
+ "community": 92,
"norm_label": "test_audit_readme_fields_json_decode_failure()"
},
{
@@ -13428,7 +13689,7 @@
"source_file": "tests/unit/validator/test_engine_audit.py",
"source_location": "L920",
"id": "validator_test_engine_audit_test_audit_missing_required_field_with_required_ids",
- "community": 89,
+ "community": 93,
"norm_label": "test_audit_missing_required_field_with_required_ids()"
},
{
@@ -13437,7 +13698,7 @@
"source_file": "tests/unit/validator/test_engine_audit.py",
"source_location": "L956",
"id": "validator_test_engine_audit_test_audit_missing_required_field_required_ids_not_a_list",
- "community": 89,
+ "community": 93,
"norm_label": "test_audit_missing_required_field_required_ids_not_a_list()"
},
{
@@ -13446,7 +13707,7 @@
"source_file": "tests/unit/validator/test_engine_audit.py",
"source_location": "L991",
"id": "validator_test_engine_audit_test_audit_content_scan_skips_test_runs_marker_file",
- "community": 89,
+ "community": 93,
"norm_label": "test_audit_content_scan_skips_test_runs_marker_file()"
},
{
@@ -13455,7 +13716,7 @@
"source_file": "tests/unit/validator/test_engine_audit.py",
"source_location": "L1021",
"id": "validator_test_engine_audit_test_audit_content_scan_eligibility_returns_false_on_stat_failure",
- "community": 88,
+ "community": 92,
"norm_label": "test_audit_content_scan_eligibility_returns_false_on_stat_failure()"
},
{
@@ -13464,7 +13725,7 @@
"source_file": "tests/unit/validator/test_engine_audit.py",
"source_location": "L1048",
"id": "validator_test_engine_audit_test_audit_read_text_for_scan_handles_oserror",
- "community": 88,
+ "community": 92,
"norm_label": "test_audit_read_text_for_scan_handles_oserror()"
},
{
@@ -13473,7 +13734,7 @@
"source_file": "tests/unit/validator/test_engine_audit.py",
"source_location": "L1075",
"id": "validator_test_engine_audit_test_classify_level_value_error_returns_other",
- "community": 104,
+ "community": 119,
"norm_label": "test_classify_level_value_error_returns_other()"
},
{
@@ -13482,7 +13743,7 @@
"source_file": "tests/unit/validator/test_engine_audit.py",
"source_location": "L1089",
"id": "validator_test_engine_audit_test_finding_sort_unknown_tier_sorts_after_committed_tiers",
- "community": 104,
+ "community": 119,
"norm_label": "test_finding_sort_unknown_tier_sorts_after_committed_tiers()"
},
{
@@ -13491,7 +13752,7 @@
"source_file": "tests/unit/validator/test_engine_audit.py",
"source_location": "L1113",
"id": "validator_test_engine_audit_test_level_for_orphan_returns_none_for_unmapped_levels",
- "community": 401,
+ "community": 422,
"norm_label": "test_level_for_orphan_returns_none_for_unmapped_levels()"
},
{
@@ -13500,7 +13761,7 @@
"source_file": "tests/unit/validator/test_engine_audit.py",
"source_location": "L1122",
"id": "validator_test_engine_audit_test_validator_from_config_builds_engine",
- "community": 104,
+ "community": 211,
"norm_label": "test_validator_from_config_builds_engine()"
},
{
@@ -13509,7 +13770,7 @@
"source_file": "tests/unit/validator/test_engine_audit.py",
"source_location": "L1140",
"id": "validator_test_engine_audit_test_validator_from_config_orchestrator_disabled",
- "community": 104,
+ "community": 119,
"norm_label": "test_validator_from_config_orchestrator_disabled()"
},
{
@@ -13518,7 +13779,7 @@
"source_file": "tests/unit/validator/test_engine_audit.py",
"source_location": "L1154",
"id": "validator_test_engine_audit_test_validator_from_config_no_orchestrator_attr",
- "community": 104,
+ "community": 119,
"norm_label": "test_validator_from_config_no_orchestrator_attr()"
},
{
@@ -13527,7 +13788,7 @@
"source_file": "tests/unit/validator/test_engine_audit.py",
"source_location": "L1165",
"id": "validator_test_engine_audit_test_classify_level_unrelated_dir_returns_other",
- "community": 104,
+ "community": 119,
"norm_label": "test_classify_level_unrelated_dir_returns_other()"
},
{
@@ -13536,7 +13797,7 @@
"source_file": "tests/unit/validator/test_engine_audit.py",
"source_location": "L1175",
"id": "validator_test_engine_audit_test_compute_run_path_unrelated_other_returns_input",
- "community": 104,
+ "community": 119,
"norm_label": "test_compute_run_path_unrelated_other_returns_input()"
},
{
@@ -13545,7 +13806,7 @@
"source_file": "tests/unit/validator/test_engine_audit.py",
"source_location": "L1187",
"id": "validator_test_engine_audit_test_compute_run_path_root_other_returns_root",
- "community": 104,
+ "community": 119,
"norm_label": "test_compute_run_path_root_other_returns_root()"
},
{
@@ -13554,7 +13815,7 @@
"source_file": "tests/unit/validator/test_engine_audit.py",
"source_location": "L1",
"id": "validator_test_engine_audit_rationale_1",
- "community": 104,
+ "community": 119,
"norm_label": "unit tests for ``validator.audit`` and ``validator.query_problems``. backend sp"
},
{
@@ -13563,7 +13824,7 @@
"source_file": "tests/unit/validator/test_engine_audit.py",
"source_location": "L56",
"id": "validator_test_engine_audit_rationale_56",
- "community": 89,
+ "community": 93,
"norm_label": "build the wire-form ``creation.json`` dict for a fixture tree."
},
{
@@ -13572,7 +13833,7 @@
"source_file": "tests/unit/validator/test_engine_audit.py",
"source_location": "L88",
"id": "validator_test_engine_audit_rationale_88",
- "community": 89,
+ "community": 93,
"norm_label": "write the wire-form ``creation.json`` under ``/.exlab-wizard``."
},
{
@@ -13581,7 +13842,7 @@
"source_file": "tests/unit/validator/test_engine_audit.py",
"source_location": "L106",
"id": "validator_test_engine_audit_rationale_106",
- "community": 88,
+ "community": 92,
"norm_label": "build a single-equipment / single-project / single-run clean tree. returns"
},
{
@@ -13590,7 +13851,7 @@
"source_file": "tests/unit/validator/test_engine_audit.py",
"source_location": "L148",
"id": "validator_test_engine_audit_rationale_148",
- "community": 88,
+ "community": 92,
"norm_label": "construct a :class:`validator` for tests with a single equipment root."
},
{
@@ -13599,7 +13860,7 @@
"source_file": "tests/unit/validator/test_engine_audit.py",
"source_location": "L174",
"id": "validator_test_engine_audit_rationale_174",
- "community": 88,
+ "community": 92,
"norm_label": "a well-formed equipment / project / run tree produces no findings."
},
{
@@ -13608,7 +13869,7 @@
"source_file": "tests/unit/validator/test_engine_audit.py",
"source_location": "L182",
"id": "validator_test_engine_audit_rationale_182",
- "community": 187,
+ "community": 206,
"norm_label": "a project directory with no ``creation.json`` produces one orphan finding."
},
{
@@ -13617,7 +13878,7 @@
"source_file": "tests/unit/validator/test_engine_audit.py",
"source_location": "L203",
"id": "validator_test_engine_audit_rationale_203",
- "community": 187,
+ "community": 206,
"norm_label": "a run directory with no ``creation.json`` produces one orphan finding."
},
{
@@ -13626,7 +13887,7 @@
"source_file": "tests/unit/validator/test_engine_audit.py",
"source_location": "L220",
"id": "validator_test_engine_audit_rationale_220",
- "community": 506,
+ "community": 206,
"norm_label": "a project directory whose name is not a safe path segment (\u00a73.2) produces a"
},
{
@@ -13635,7 +13896,7 @@
"source_file": "tests/unit/validator/test_engine_audit.py",
"source_location": "L239",
"id": "validator_test_engine_audit_rationale_239",
- "community": 187,
+ "community": 206,
"norm_label": "a human-readable project name (spaces and all) is a safe segment."
},
{
@@ -13644,7 +13905,7 @@
"source_file": "tests/unit/validator/test_engine_audit.py",
"source_location": "L247",
"id": "validator_test_engine_audit_rationale_247",
- "community": 187,
+ "community": 93,
"norm_label": "a ``run_*`` leaf whose creation.json says ``run_kind=\"test\"`` is flagged."
},
{
@@ -13653,7 +13914,7 @@
"source_file": "tests/unit/validator/test_engine_audit.py",
"source_location": "L269",
"id": "validator_test_engine_audit_rationale_269",
- "community": 89,
+ "community": 206,
"norm_label": "a directory name containing ```` produces a finding."
},
{
@@ -13662,7 +13923,7 @@
"source_file": "tests/unit/validator/test_engine_audit.py",
"source_location": "L294",
"id": "validator_test_engine_audit_rationale_294",
- "community": 187,
+ "community": 206,
"norm_label": "an active override with matching ``problem_class`` flips ``override_active``."
},
{
@@ -13671,7 +13932,7 @@
"source_file": "tests/unit/validator/test_engine_audit.py",
"source_location": "L327",
"id": "validator_test_engine_audit_rationale_327",
- "community": 187,
+ "community": 525,
"norm_label": "synced run + hard finding -> ``synced_under_prior_policy=true``."
},
{
@@ -13680,7 +13941,7 @@
"source_file": "tests/unit/validator/test_engine_audit.py",
"source_location": "L351",
"id": "validator_test_engine_audit_rationale_351",
- "community": 187,
+ "community": 526,
"norm_label": "cleaned run + hard finding -> ``synced_under_prior_policy=true``. a ``clean"
},
{
@@ -13689,7 +13950,7 @@
"source_file": "tests/unit/validator/test_engine_audit.py",
"source_location": "L375",
"id": "validator_test_engine_audit_rationale_375",
- "community": 88,
+ "community": 92,
"norm_label": "a large file with a placeholder is not scanned for content."
},
{
@@ -13698,7 +13959,7 @@
"source_file": "tests/unit/validator/test_engine_audit.py",
"source_location": "L399",
"id": "validator_test_engine_audit_rationale_399",
- "community": 88,
+ "community": 92,
"norm_label": "a ``.bin`` file is skipped from content scanning by the extension gate."
},
{
@@ -13707,7 +13968,7 @@
"source_file": "tests/unit/validator/test_engine_audit.py",
"source_location": "L418",
"id": "validator_test_engine_audit_rationale_418",
- "community": 88,
+ "community": 92,
"norm_label": "a ``.txt`` file with a nul byte is treated as binary and skipped."
},
{
@@ -13716,7 +13977,7 @@
"source_file": "tests/unit/validator/test_engine_audit.py",
"source_location": "L437",
"id": "validator_test_engine_audit_rationale_437",
- "community": 88,
+ "community": 92,
"norm_label": "a small ``.txt`` file inside the run directory is scanned for placeholders."
},
{
@@ -13725,7 +13986,7 @@
"source_file": "tests/unit/validator/test_engine_audit.py",
"source_location": "L455",
"id": "validator_test_engine_audit_rationale_455",
- "community": 89,
+ "community": 93,
"norm_label": "hard-tier findings come first; ties break on rule then offending_path."
},
{
@@ -13734,7 +13995,7 @@
"source_file": "tests/unit/validator/test_engine_audit.py",
"source_location": "L475",
"id": "validator_test_engine_audit_rationale_475",
- "community": 88,
+ "community": 92,
"norm_label": "``query_problems`` returns the same list as ``audit``."
},
{
@@ -13743,7 +14004,7 @@
"source_file": "tests/unit/validator/test_engine_audit.py",
"source_location": "L488",
"id": "validator_test_engine_audit_rationale_488",
- "community": 89,
+ "community": 93,
"norm_label": "``{\"kind\": \"equipment_id\", ...}`` walks only the matching subtree."
},
{
@@ -13752,7 +14013,7 @@
"source_file": "tests/unit/validator/test_engine_audit.py",
"source_location": "L525",
"id": "validator_test_engine_audit_rationale_525",
- "community": 89,
+ "community": 93,
"norm_label": "``{\"kind\": \"project_path\", ...}`` walks the supplied path only."
},
{
@@ -13761,7 +14022,7 @@
"source_file": "tests/unit/validator/test_engine_audit.py",
"source_location": "L550",
"id": "validator_test_engine_audit_rationale_550",
- "community": 89,
+ "community": 93,
"norm_label": "``{\"kind\": \"all\"}`` aggregates findings across every equipment root."
},
{
@@ -13770,7 +14031,7 @@
"source_file": "tests/unit/validator/test_engine_audit.py",
"source_location": "L585",
"id": "validator_test_engine_audit_rationale_585",
- "community": 104,
+ "community": 119,
"norm_label": "an ``equipment_id`` not in the map produces an empty result, not an error."
},
{
@@ -13779,7 +14040,7 @@
"source_file": "tests/unit/validator/test_engine_audit.py",
"source_location": "L592",
"id": "validator_test_engine_audit_rationale_592",
- "community": 88,
+ "community": 92,
"norm_label": "the walk does not apply \u00a78.1 rules to ``.exlab-wizard`` contents."
},
{
@@ -13788,7 +14049,7 @@
"source_file": "tests/unit/validator/test_engine_audit.py",
"source_location": "L608",
"id": "validator_test_engine_audit_rationale_608",
- "community": 187,
+ "community": 206,
"norm_label": "a tombstone-revoked override does not flip ``override_active``."
},
{
@@ -13797,7 +14058,7 @@
"source_file": "tests/unit/validator/test_engine_audit.py",
"source_location": "L645",
"id": "validator_test_engine_audit_rationale_645",
- "community": 88,
+ "community": 92,
"norm_label": "a file name containing ```` produces a finding."
},
{
@@ -13806,7 +14067,7 @@
"source_file": "tests/unit/validator/test_engine_audit.py",
"source_location": "L661",
"id": "validator_test_engine_audit_rationale_661",
- "community": 187,
+ "community": 206,
"norm_label": "a ``testrun_*`` leaf with ``run_kind=\"experimental\"`` triggers mismatch."
},
{
@@ -13815,7 +14076,7 @@
"source_file": "tests/unit/validator/test_engine_audit.py",
"source_location": "L681",
"id": "validator_test_engine_audit_rationale_681",
- "community": 89,
+ "community": 93,
"norm_label": "every entry in the result is a :class:`finding` instance."
},
{
@@ -13824,7 +14085,7 @@
"source_file": "tests/unit/validator/test_engine_audit.py",
"source_location": "L696",
"id": "validator_test_engine_audit_rationale_696",
- "community": 89,
+ "community": 93,
"norm_label": "``\"all\"`` scope walks the staging root when one is configured."
},
{
@@ -13833,7 +14094,7 @@
"source_file": "tests/unit/validator/test_engine_audit.py",
"source_location": "L726",
"id": "validator_test_engine_audit_rationale_726",
- "community": 89,
+ "community": 93,
"norm_label": "every finding has the documented \u00a711.8 fields populated."
},
{
@@ -13842,7 +14103,7 @@
"source_file": "tests/unit/validator/test_engine_audit.py",
"source_location": "L761",
"id": "validator_test_engine_audit_rationale_761",
- "community": 104,
+ "community": 119,
"norm_label": "an unrecognised ``scope.kind`` raises ``valueerror`` (defensive guard)."
},
{
@@ -13851,7 +14112,7 @@
"source_file": "tests/unit/validator/test_engine_audit.py",
"source_location": "L768",
"id": "validator_test_engine_audit_rationale_768",
- "community": 104,
+ "community": 119,
"norm_label": "walking a missing root produces no findings (silent skip)."
},
{
@@ -13860,7 +14121,7 @@
"source_file": "tests/unit/validator/test_engine_audit.py",
"source_location": "L776",
"id": "validator_test_engine_audit_rationale_776",
- "community": 104,
+ "community": 119,
"norm_label": "walking a root that is a regular file (not a directory) returns []."
},
{
@@ -13869,7 +14130,7 @@
"source_file": "tests/unit/validator/test_engine_audit.py",
"source_location": "L784",
"id": "validator_test_engine_audit_rationale_784",
- "community": 104,
+ "community": 119,
"norm_label": "a ``permissionerror`` from ``os.scandir`` does not crash the walk."
},
{
@@ -13878,7 +14139,7 @@
"source_file": "tests/unit/validator/test_engine_audit.py",
"source_location": "L804",
"id": "validator_test_engine_audit_rationale_804",
- "community": 89,
+ "community": 93,
"norm_label": "a project subfolder that is not a ``run_*`` / ``testruns`` is \"other\"."
},
{
@@ -13887,7 +14148,7 @@
"source_file": "tests/unit/validator/test_engine_audit.py",
"source_location": "L820",
"id": "validator_test_engine_audit_rationale_820",
- "community": 89,
+ "community": 93,
"norm_label": "a non-``testrun_`` leaf under ``testruns/`` is classified as \"other\"."
},
{
@@ -13896,7 +14157,7 @@
"source_file": "tests/unit/validator/test_engine_audit.py",
"source_location": "L836",
"id": "validator_test_engine_audit_rationale_836",
- "community": 88,
+ "community": 92,
"norm_label": "a subfolder under a run is classified as \"other\"; rules still walk into it."
},
{
@@ -13905,7 +14166,7 @@
"source_file": "tests/unit/validator/test_engine_audit.py",
"source_location": "L858",
"id": "validator_test_engine_audit_rationale_858",
- "community": 88,
+ "community": 92,
"norm_label": "a ``creation.json`` that raises ``oserror`` on read is treated as absent."
},
{
@@ -13914,7 +14175,7 @@
"source_file": "tests/unit/validator/test_engine_audit.py",
"source_location": "L877",
"id": "validator_test_engine_audit_rationale_877",
- "community": 88,
+ "community": 92,
"norm_label": "a ``creation.json`` with invalid json bytes is treated as absent."
},
{
@@ -13923,7 +14184,7 @@
"source_file": "tests/unit/validator/test_engine_audit.py",
"source_location": "L889",
"id": "validator_test_engine_audit_rationale_889",
- "community": 89,
+ "community": 93,
"norm_label": "a ``creation.json`` valid as raw dict but failing creationjson decode."
},
{
@@ -13932,7 +14193,7 @@
"source_file": "tests/unit/validator/test_engine_audit.py",
"source_location": "L909",
"id": "validator_test_engine_audit_rationale_909",
- "community": 88,
+ "community": 92,
"norm_label": "a malformed ``readme_fields.json`` is silently skipped (no crash)."
},
{
@@ -13941,7 +14202,7 @@
"source_file": "tests/unit/validator/test_engine_audit.py",
"source_location": "L921",
"id": "validator_test_engine_audit_rationale_921",
- "community": 89,
+ "community": 93,
"norm_label": "audit picks up missing required readme fields when stamped on creation.json."
},
{
@@ -13950,7 +14211,7 @@
"source_file": "tests/unit/validator/test_engine_audit.py",
"source_location": "L957",
"id": "validator_test_engine_audit_rationale_957",
- "community": 89,
+ "community": 93,
"norm_label": "``required_readme_field_ids`` that is not a list is ignored."
},
{
@@ -13959,7 +14220,7 @@
"source_file": "tests/unit/validator/test_engine_audit.py",
"source_location": "L992",
"id": "validator_test_engine_audit_rationale_992",
- "community": 89,
+ "community": 93,
"norm_label": "the ``test_runs.json`` marker file is exempt from content scanning."
},
{
@@ -13968,7 +14229,7 @@
"source_file": "tests/unit/validator/test_engine_audit.py",
"source_location": "L1025",
"id": "validator_test_engine_audit_rationale_1025",
- "community": 88,
+ "community": 92,
"norm_label": "if ``stat()`` raises oserror, the file is skipped from content scanning."
},
{
@@ -13977,7 +14238,7 @@
"source_file": "tests/unit/validator/test_engine_audit.py",
"source_location": "L1052",
"id": "validator_test_engine_audit_rationale_1052",
- "community": 88,
+ "community": 92,
"norm_label": "if ``open(rb)`` raises oserror, the file is silently skipped."
},
{
@@ -13986,7 +14247,7 @@
"source_file": "tests/unit/validator/test_engine_audit.py",
"source_location": "L1076",
"id": "validator_test_engine_audit_rationale_1076",
- "community": 104,
+ "community": 119,
"norm_label": "a directory outside the equipment root resolves to \"other\" (defensive)."
},
{
@@ -13995,7 +14256,7 @@
"source_file": "tests/unit/validator/test_engine_audit.py",
"source_location": "L1090",
"id": "validator_test_engine_audit_rationale_1090",
- "community": 104,
+ "community": 119,
"norm_label": "a finding with an unknown tier sorts after both hard and soft."
},
{
@@ -14004,7 +14265,7 @@
"source_file": "tests/unit/validator/test_engine_audit.py",
"source_location": "L1114",
"id": "validator_test_engine_audit_rationale_1114",
- "community": 401,
+ "community": 422,
"norm_label": "``_level_for_orphan`` returns none for non-project / non-run levels."
},
{
@@ -14013,7 +14274,7 @@
"source_file": "tests/unit/validator/test_engine_audit.py",
"source_location": "L1123",
"id": "validator_test_engine_audit_rationale_1123",
- "community": 104,
+ "community": 211,
"norm_label": "``validator.from_config`` projects fields out of a config-shaped object."
},
{
@@ -14022,7 +14283,7 @@
"source_file": "tests/unit/validator/test_engine_audit.py",
"source_location": "L1141",
"id": "validator_test_engine_audit_rationale_1141",
- "community": 104,
+ "community": 119,
"norm_label": "when ``orchestrator.enabled`` is false, no staging root is wired in."
},
{
@@ -14031,7 +14292,7 @@
"source_file": "tests/unit/validator/test_engine_audit.py",
"source_location": "L1155",
"id": "validator_test_engine_audit_rationale_1155",
- "community": 104,
+ "community": 119,
"norm_label": "``orchestrator`` attribute absent on the config also works (default none)."
},
{
@@ -14040,7 +14301,7 @@
"source_file": "tests/unit/validator/test_engine_audit.py",
"source_location": "L1166",
"id": "validator_test_engine_audit_rationale_1166",
- "community": 104,
+ "community": 119,
"norm_label": "``_classify_level`` returns \"other\" for dirs outside the equipment root."
},
{
@@ -14049,7 +14310,7 @@
"source_file": "tests/unit/validator/test_engine_audit.py",
"source_location": "L1176",
"id": "validator_test_engine_audit_rationale_1176",
- "community": 104,
+ "community": 119,
"norm_label": "``_compute_run_path`` returns ``str(directory)`` for unrelated paths."
},
{
@@ -14058,7 +14319,7 @@
"source_file": "tests/unit/validator/test_engine_audit.py",
"source_location": "L1188",
"id": "validator_test_engine_audit_rationale_1188",
- "community": 104,
+ "community": 119,
"norm_label": "``_compute_run_path`` for the equipment root itself with ``other``."
},
{
@@ -14067,7 +14328,7 @@
"source_file": "tests/unit/validator/test_engine_audit.py",
"source_location": "L187",
"id": "validator_test_engine_audit_rationale_187",
- "community": 104,
+ "community": 119,
"norm_label": "# note: deliberately no creation.json at the project level."
},
{
@@ -14076,7 +14337,7 @@
"source_file": "tests/unit/cache/test_log_writer.py",
"source_location": "L1",
"id": "tests_unit_cache_test_log_writer_py",
- "community": 33,
+ "community": 34,
"norm_label": "test_log_writer.py"
},
{
@@ -14085,7 +14346,7 @@
"source_file": "tests/unit/cache/test_log_writer.py",
"source_location": "L33",
"id": "cache_test_log_writer_test_format_log_line_with_all_tags_matches_spec_example",
- "community": 33,
+ "community": 34,
"norm_label": "test_format_log_line_with_all_tags_matches_spec_example()"
},
{
@@ -14094,7 +14355,7 @@
"source_file": "tests/unit/cache/test_log_writer.py",
"source_location": "L52",
"id": "cache_test_log_writer_test_format_log_line_with_run_id_includes_run_tag",
- "community": 33,
+ "community": 34,
"norm_label": "test_format_log_line_with_run_id_includes_run_tag()"
},
{
@@ -14103,7 +14364,7 @@
"source_file": "tests/unit/cache/test_log_writer.py",
"source_location": "L70",
"id": "cache_test_log_writer_test_format_log_line_omits_unset_tags",
- "community": 33,
+ "community": 34,
"norm_label": "test_format_log_line_omits_unset_tags()"
},
{
@@ -14112,7 +14373,7 @@
"source_file": "tests/unit/cache/test_log_writer.py",
"source_location": "L86",
"id": "cache_test_log_writer_test_format_log_line_partial_tags_skipped_individually",
- "community": 33,
+ "community": 34,
"norm_label": "test_format_log_line_partial_tags_skipped_individually()"
},
{
@@ -14121,7 +14382,7 @@
"source_file": "tests/unit/cache/test_log_writer.py",
"source_location": "L102",
"id": "cache_test_log_writer_test_format_log_line_level_is_padded_to_five_chars",
- "community": 33,
+ "community": 34,
"norm_label": "test_format_log_line_level_is_padded_to_five_chars()"
},
{
@@ -14130,7 +14391,7 @@
"source_file": "tests/unit/cache/test_log_writer.py",
"source_location": "L115",
"id": "cache_test_log_writer_test_format_log_line_timestamp_is_zero_padded_iso_with_z",
- "community": 33,
+ "community": 34,
"norm_label": "test_format_log_line_timestamp_is_zero_padded_iso_with_z()"
},
{
@@ -14139,7 +14400,7 @@
"source_file": "tests/unit/cache/test_log_writer.py",
"source_location": "L123",
"id": "cache_test_log_writer_test_format_log_line_naive_datetime_treated_as_utc",
- "community": 33,
+ "community": 34,
"norm_label": "test_format_log_line_naive_datetime_treated_as_utc()"
},
{
@@ -14148,7 +14409,7 @@
"source_file": "tests/unit/cache/test_log_writer.py",
"source_location": "L130",
"id": "cache_test_log_writer_test_format_log_line_aware_non_utc_datetime_converts_to_utc",
- "community": 33,
+ "community": 34,
"norm_label": "test_format_log_line_aware_non_utc_datetime_converts_to_utc()"
},
{
@@ -14157,7 +14418,7 @@
"source_file": "tests/unit/cache/test_log_writer.py",
"source_location": "L142",
"id": "cache_test_log_writer_test_format_log_line_short_message_unchanged",
- "community": 33,
+ "community": 34,
"norm_label": "test_format_log_line_short_message_unchanged()"
},
{
@@ -14166,7 +14427,7 @@
"source_file": "tests/unit/cache/test_log_writer.py",
"source_location": "L152",
"id": "cache_test_log_writer_test_format_log_line_truncates_long_messages_with_marker",
- "community": 33,
+ "community": 34,
"norm_label": "test_format_log_line_truncates_long_messages_with_marker()"
},
{
@@ -14175,7 +14436,7 @@
"source_file": "tests/unit/cache/test_log_writer.py",
"source_location": "L165",
"id": "cache_test_log_writer_test_format_log_line_truncation_preserves_prefix_and_tags",
- "community": 33,
+ "community": 34,
"norm_label": "test_format_log_line_truncation_preserves_prefix_and_tags()"
},
{
@@ -14184,7 +14445,7 @@
"source_file": "tests/unit/cache/test_log_writer.py",
"source_location": "L179",
"id": "cache_test_log_writer_test_format_log_line_truncation_at_exact_boundary",
- "community": 33,
+ "community": 34,
"norm_label": "test_format_log_line_truncation_at_exact_boundary()"
},
{
@@ -14193,7 +14454,7 @@
"source_file": "tests/unit/cache/test_log_writer.py",
"source_location": "L199",
"id": "cache_test_log_writer_test_append_log_line_creates_parent_cache_dir",
- "community": 33,
+ "community": 34,
"norm_label": "test_append_log_line_creates_parent_cache_dir()"
},
{
@@ -14202,7 +14463,7 @@
"source_file": "tests/unit/cache/test_log_writer.py",
"source_location": "L208",
"id": "cache_test_log_writer_test_append_log_line_writes_single_line_with_newline",
- "community": 33,
+ "community": 34,
"norm_label": "test_append_log_line_writes_single_line_with_newline()"
},
{
@@ -14211,7 +14472,7 @@
"source_file": "tests/unit/cache/test_log_writer.py",
"source_location": "L215",
"id": "cache_test_log_writer_test_append_log_line_appends_to_existing_file",
- "community": 33,
+ "community": 34,
"norm_label": "test_append_log_line_appends_to_existing_file()"
},
{
@@ -14220,7 +14481,7 @@
"source_file": "tests/unit/cache/test_log_writer.py",
"source_location": "L225",
"id": "cache_test_log_writer_test_append_log_line_concurrent_writes_do_not_interleave",
- "community": 33,
+ "community": 34,
"norm_label": "test_append_log_line_concurrent_writes_do_not_interleave()"
},
{
@@ -14229,7 +14490,7 @@
"source_file": "tests/unit/cache/test_log_writer.py",
"source_location": "L255",
"id": "cache_test_log_writer_test_append_log_line_idempotent_directory_creation",
- "community": 33,
+ "community": 34,
"norm_label": "test_append_log_line_idempotent_directory_creation()"
},
{
@@ -14238,7 +14499,7 @@
"source_file": "tests/unit/cache/test_log_writer.py",
"source_location": "L268",
"id": "cache_test_log_writer_test_format_log_line_truncation_prefix_alone_too_big_emits_marker_only",
- "community": 33,
+ "community": 34,
"norm_label": "test_format_log_line_truncation_prefix_alone_too_big_emits_marker_only()"
},
{
@@ -14247,7 +14508,7 @@
"source_file": "tests/unit/cache/test_log_writer.py",
"source_location": "L286",
"id": "cache_test_log_writer_test_format_log_line_truncation_prefix_alone_exhausts_budget",
- "community": 33,
+ "community": 34,
"norm_label": "test_format_log_line_truncation_prefix_alone_exhausts_budget()"
},
{
@@ -14256,7 +14517,7 @@
"source_file": "tests/unit/cache/test_log_writer.py",
"source_location": "L1",
"id": "cache_test_log_writer_rationale_1",
- "community": 33,
+ "community": 34,
"norm_label": "unit tests for ``exlab_wizard.cache.log_writer``. the line shape is committed b"
},
{
@@ -14265,7 +14526,7 @@
"source_file": "tests/unit/cache/test_log_writer.py",
"source_location": "L34",
"id": "cache_test_log_writer_rationale_34",
- "community": 33,
+ "community": 34,
"norm_label": "the rendered line must match the \u00a711.5 example shape verbatim."
},
{
@@ -14274,7 +14535,7 @@
"source_file": "tests/unit/cache/test_log_writer.py",
"source_location": "L53",
"id": "cache_test_log_writer_rationale_53",
- "community": 33,
+ "community": 34,
"norm_label": "when ``run_id`` is set the ``[run:..]`` tag appears after ``[kind:..]``."
},
{
@@ -14283,7 +14544,7 @@
"source_file": "tests/unit/cache/test_log_writer.py",
"source_location": "L71",
"id": "cache_test_log_writer_rationale_71",
- "community": 33,
+ "community": 34,
"norm_label": "tags whose argument is ``none`` are absent from the output entirely."
},
{
@@ -14292,7 +14553,7 @@
"source_file": "tests/unit/cache/test_log_writer.py",
"source_location": "L87",
"id": "cache_test_log_writer_rationale_87",
- "community": 33,
+ "community": 34,
"norm_label": "only the tags whose values are supplied appear; others are skipped."
},
{
@@ -14301,7 +14562,7 @@
"source_file": "tests/unit/cache/test_log_writer.py",
"source_location": "L103",
"id": "cache_test_log_writer_rationale_103",
- "community": 33,
+ "community": 34,
"norm_label": "levels shorter than 5 chars are padded with trailing spaces."
},
{
@@ -14310,7 +14571,7 @@
"source_file": "tests/unit/cache/test_log_writer.py",
"source_location": "L116",
"id": "cache_test_log_writer_rationale_116",
- "community": 33,
+ "community": 34,
"norm_label": "single-digit fields render as ``04`` etc. and end in ``z``."
},
{
@@ -14319,7 +14580,7 @@
"source_file": "tests/unit/cache/test_log_writer.py",
"source_location": "L124",
"id": "cache_test_log_writer_rationale_124",
- "community": 33,
+ "community": 34,
"norm_label": "a naive datetime is assumed already-utc and rendered with ``z``."
},
{
@@ -14328,7 +14589,7 @@
"source_file": "tests/unit/cache/test_log_writer.py",
"source_location": "L131",
"id": "cache_test_log_writer_rationale_131",
- "community": 33,
+ "community": 34,
"norm_label": "aware datetimes in non-utc zones are converted to utc before rendering."
},
{
@@ -14337,7 +14598,7 @@
"source_file": "tests/unit/cache/test_log_writer.py",
"source_location": "L143",
"id": "cache_test_log_writer_rationale_143",
- "community": 33,
+ "community": 34,
"norm_label": "lines well under the cap are returned without a truncation marker."
},
{
@@ -14346,7 +14607,7 @@
"source_file": "tests/unit/cache/test_log_writer.py",
"source_location": "L153",
"id": "cache_test_log_writer_rationale_153",
- "community": 33,
+ "community": 34,
"norm_label": "a message that pushes the line past log_line_max_bytes is truncated."
},
{
@@ -14355,7 +14616,7 @@
"source_file": "tests/unit/cache/test_log_writer.py",
"source_location": "L166",
"id": "cache_test_log_writer_rationale_166",
- "community": 33,
+ "community": 34,
"norm_label": "truncation trims the message body, never the prefix or tags."
},
{
@@ -14364,7 +14625,7 @@
"source_file": "tests/unit/cache/test_log_writer.py",
"source_location": "L180",
"id": "cache_test_log_writer_rationale_180",
- "community": 33,
+ "community": 34,
"norm_label": "a line whose utf-8 length equals log_line_max_bytes is not truncated."
},
{
@@ -14373,7 +14634,7 @@
"source_file": "tests/unit/cache/test_log_writer.py",
"source_location": "L200",
"id": "cache_test_log_writer_rationale_200",
- "community": 33,
+ "community": 34,
"norm_label": "parent ``.exlab-wizard`` directory is created if missing."
},
{
@@ -14382,7 +14643,7 @@
"source_file": "tests/unit/cache/test_log_writer.py",
"source_location": "L216",
"id": "cache_test_log_writer_rationale_216",
- "community": 33,
+ "community": 34,
"norm_label": "multi-write: each call appends after prior content."
},
{
@@ -14391,7 +14652,7 @@
"source_file": "tests/unit/cache/test_log_writer.py",
"source_location": "L226",
"id": "cache_test_log_writer_rationale_226",
- "community": 33,
+ "community": 34,
"norm_label": "n concurrent threads each writing one short line must produce n intact lines"
},
{
@@ -14400,7 +14661,7 @@
"source_file": "tests/unit/cache/test_log_writer.py",
"source_location": "L256",
"id": "cache_test_log_writer_rationale_256",
- "community": 33,
+ "community": 34,
"norm_label": "calling append twice does not fail even though the dir already exists."
},
{
@@ -14409,7 +14670,7 @@
"source_file": "tests/unit/cache/test_log_writer.py",
"source_location": "L271",
"id": "cache_test_log_writer_rationale_271",
- "community": 33,
+ "community": 34,
"norm_label": "when the cap is so small that even the truncation marker alone exceeds it, t"
},
{
@@ -14418,7 +14679,7 @@
"source_file": "tests/unit/cache/test_log_writer.py",
"source_location": "L289",
"id": "cache_test_log_writer_rationale_289",
- "community": 33,
+ "community": 34,
"norm_label": "when the prefix itself is longer than the budget but smaller than the cap (i"
},
{
@@ -14427,7 +14688,7 @@
"source_file": "tests/unit/cache/test_creation_writer.py",
"source_location": "L1",
"id": "tests_unit_cache_test_creation_writer_py",
- "community": 72,
+ "community": 83,
"norm_label": "test_creation_writer.py"
},
{
@@ -14436,7 +14697,7 @@
"source_file": "tests/unit/cache/test_creation_writer.py",
"source_location": "L48",
"id": "cache_test_creation_writer_build_minimal_payload",
- "community": 72,
+ "community": 83,
"norm_label": "_build_minimal_payload()"
},
{
@@ -14445,7 +14706,7 @@
"source_file": "tests/unit/cache/test_creation_writer.py",
"source_location": "L74",
"id": "cache_test_creation_writer_writer",
- "community": 72,
+ "community": 83,
"norm_label": "writer()"
},
{
@@ -14454,7 +14715,7 @@
"source_file": "tests/unit/cache/test_creation_writer.py",
"source_location": "L79",
"id": "cache_test_creation_writer_creation_path",
- "community": 72,
+ "community": 83,
"norm_label": "creation_path()"
},
{
@@ -14463,7 +14724,7 @@
"source_file": "tests/unit/cache/test_creation_writer.py",
"source_location": "L89",
"id": "cache_test_creation_writer_test_write_creation_emits_valid_current_version_file",
- "community": 72,
+ "community": 83,
"norm_label": "test_write_creation_emits_valid_current_version_file()"
},
{
@@ -14472,7 +14733,7 @@
"source_file": "tests/unit/cache/test_creation_writer.py",
"source_location": "L101",
"id": "cache_test_creation_writer_test_write_creation_pins_schema_version_to_writer_default",
- "community": 72,
+ "community": 83,
"norm_label": "test_write_creation_pins_schema_version_to_writer_default()"
},
{
@@ -14481,7 +14742,7 @@
"source_file": "tests/unit/cache/test_creation_writer.py",
"source_location": "L117",
"id": "cache_test_creation_writer_test_update_creation_atomic_mutates_target_field",
- "community": 72,
+ "community": 83,
"norm_label": "test_update_creation_atomic_mutates_target_field()"
},
{
@@ -14490,7 +14751,7 @@
"source_file": "tests/unit/cache/test_creation_writer.py",
"source_location": "L133",
"id": "cache_test_creation_writer_test_update_creation_atomic_preserves_unknown_top_level_fields",
- "community": 72,
+ "community": 83,
"norm_label": "test_update_creation_atomic_preserves_unknown_top_level_fields()"
},
{
@@ -14499,7 +14760,7 @@
"source_file": "tests/unit/cache/test_creation_writer.py",
"source_location": "L152",
"id": "cache_test_creation_writer_test_update_creation_atomic_appends_validation_override",
- "community": 72,
+ "community": 83,
"norm_label": "test_update_creation_atomic_appends_validation_override()"
},
{
@@ -14508,7 +14769,7 @@
"source_file": "tests/unit/cache/test_creation_writer.py",
"source_location": "L178",
"id": "cache_test_creation_writer_test_update_creation_atomic_serializes_concurrent_calls",
- "community": 72,
+ "community": 83,
"norm_label": "test_update_creation_atomic_serializes_concurrent_calls()"
},
{
@@ -14517,7 +14778,7 @@
"source_file": "tests/unit/cache/test_creation_writer.py",
"source_location": "L219",
"id": "cache_test_creation_writer_test_read_creation_snapshot_returns_typed_struct",
- "community": 72,
+ "community": 83,
"norm_label": "test_read_creation_snapshot_returns_typed_struct()"
},
{
@@ -14526,7 +14787,7 @@
"source_file": "tests/unit/cache/test_creation_writer.py",
"source_location": "L229",
"id": "cache_test_creation_writer_test_read_creation_snapshot_supports_concurrent_readers",
- "community": 72,
+ "community": 83,
"norm_label": "test_read_creation_snapshot_supports_concurrent_readers()"
},
{
@@ -14535,7 +14796,7 @@
"source_file": "tests/unit/cache/test_creation_writer.py",
"source_location": "L247",
"id": "cache_test_creation_writer_test_reading_2_0_file_raises_schema_major_mismatch",
- "community": 72,
+ "community": 83,
"norm_label": "test_reading_2_0_file_raises_schema_major_mismatch()"
},
{
@@ -14544,7 +14805,7 @@
"source_file": "tests/unit/cache/test_creation_writer.py",
"source_location": "L260",
"id": "cache_test_creation_writer_test_reading_malformed_schema_version_raises_schema_major_mismatch",
- "community": 72,
+ "community": 83,
"norm_label": "test_reading_malformed_schema_version_raises_schema_major_mismatch()"
},
{
@@ -14553,7 +14814,7 @@
"source_file": "tests/unit/cache/test_creation_writer.py",
"source_location": "L273",
"id": "cache_test_creation_writer_test_reading_1_0_file_applies_documented_defaults",
- "community": 72,
+ "community": 83,
"norm_label": "test_reading_1_0_file_applies_documented_defaults()"
},
{
@@ -14562,7 +14823,7 @@
"source_file": "tests/unit/cache/test_creation_writer.py",
"source_location": "L312",
"id": "cache_test_creation_writer_test_reading_1_7_file_backfills_lims_project_subfields",
- "community": 72,
+ "community": 83,
"norm_label": "test_reading_1_7_file_backfills_lims_project_subfields()"
},
{
@@ -14571,7 +14832,7 @@
"source_file": "tests/unit/cache/test_creation_writer.py",
"source_location": "L345",
"id": "cache_test_creation_writer_test_writer_bumps_schema_version_on_mutation_of_old_minor",
- "community": 72,
+ "community": 83,
"norm_label": "test_writer_bumps_schema_version_on_mutation_of_old_minor()"
},
{
@@ -14580,7 +14841,7 @@
"source_file": "tests/unit/cache/test_creation_writer.py",
"source_location": "L382",
"id": "cache_test_creation_writer_test_writing_always_emits_current_schema_version",
- "community": 72,
+ "community": 83,
"norm_label": "test_writing_always_emits_current_schema_version()"
},
{
@@ -14589,7 +14850,7 @@
"source_file": "tests/unit/cache/test_creation_writer.py",
"source_location": "L397",
"id": "cache_test_creation_writer_test_select_active_overrides_returns_empty_for_empty_input",
- "community": 128,
+ "community": 152,
"norm_label": "test_select_active_overrides_returns_empty_for_empty_input()"
},
{
@@ -14598,7 +14859,7 @@
"source_file": "tests/unit/cache/test_creation_writer.py",
"source_location": "L401",
"id": "cache_test_creation_writer_test_select_active_overrides_keeps_unrevoked_unexpired_entries",
- "community": 128,
+ "community": 152,
"norm_label": "test_select_active_overrides_keeps_unrevoked_unexpired_entries()"
},
{
@@ -14607,7 +14868,7 @@
"source_file": "tests/unit/cache/test_creation_writer.py",
"source_location": "L418",
"id": "cache_test_creation_writer_test_select_active_overrides_drops_revoked_entry",
- "community": 128,
+ "community": 152,
"norm_label": "test_select_active_overrides_drops_revoked_entry()"
},
{
@@ -14616,7 +14877,7 @@
"source_file": "tests/unit/cache/test_creation_writer.py",
"source_location": "L443",
"id": "cache_test_creation_writer_test_select_active_overrides_drops_expired_entry",
- "community": 128,
+ "community": 152,
"norm_label": "test_select_active_overrides_drops_expired_entry()"
},
{
@@ -14625,7 +14886,7 @@
"source_file": "tests/unit/cache/test_creation_writer.py",
"source_location": "L473",
"id": "cache_test_creation_writer_test_select_active_overrides_uses_explicit_now_for_determinism",
- "community": 128,
+ "community": 152,
"norm_label": "test_select_active_overrides_uses_explicit_now_for_determinism()"
},
{
@@ -14634,7 +14895,7 @@
"source_file": "tests/unit/cache/test_creation_writer.py",
"source_location": "L493",
"id": "cache_test_creation_writer_test_select_active_overrides_ignores_tombstone_for_unknown_id",
- "community": 128,
+ "community": 152,
"norm_label": "test_select_active_overrides_ignores_tombstone_for_unknown_id()"
},
{
@@ -14643,7 +14904,7 @@
"source_file": "tests/unit/cache/test_creation_writer.py",
"source_location": "L519",
"id": "cache_test_creation_writer_test_select_active_overrides_treats_malformed_expires_at_as_expired",
- "community": 128,
+ "community": 152,
"norm_label": "test_select_active_overrides_treats_malformed_expires_at_as_expired()"
},
{
@@ -14652,7 +14913,7 @@
"source_file": "tests/unit/cache/test_creation_writer.py",
"source_location": "L539",
"id": "cache_test_creation_writer_test_round_trip_preserves_plugins_applied_with_isolation",
- "community": 72,
+ "community": 83,
"norm_label": "test_round_trip_preserves_plugins_applied_with_isolation()"
},
{
@@ -14661,7 +14922,7 @@
"source_file": "tests/unit/cache/test_creation_writer.py",
"source_location": "L566",
"id": "cache_test_creation_writer_test_reading_file_with_missing_required_field_raises_validation_error",
- "community": 72,
+ "community": 83,
"norm_label": "test_reading_file_with_missing_required_field_raises_validation_error()"
},
{
@@ -14670,7 +14931,7 @@
"source_file": "tests/unit/cache/test_creation_writer.py",
"source_location": "L579",
"id": "cache_test_creation_writer_test_select_active_overrides_skips_tombstone_with_null_revokes_target",
- "community": 128,
+ "community": 152,
"norm_label": "test_select_active_overrides_skips_tombstone_with_null_revokes_target()"
},
{
@@ -14679,7 +14940,7 @@
"source_file": "tests/unit/cache/test_creation_writer.py",
"source_location": "L609",
"id": "cache_test_creation_writer_test_select_active_overrides_naive_expires_at_is_treated_as_utc",
- "community": 128,
+ "community": 152,
"norm_label": "test_select_active_overrides_naive_expires_at_is_treated_as_utc()"
},
{
@@ -14688,7 +14949,7 @@
"source_file": "tests/unit/cache/test_creation_writer.py",
"source_location": "L629",
"id": "cache_test_creation_writer_test_reading_file_missing_schema_version_raises_schema_major_mismatch",
- "community": 72,
+ "community": 83,
"norm_label": "test_reading_file_missing_schema_version_raises_schema_major_mismatch()"
},
{
@@ -14697,7 +14958,7 @@
"source_file": "tests/unit/cache/test_creation_writer.py",
"source_location": "L640",
"id": "cache_test_creation_writer_test_update_creation_atomic_backfills_missing_override_id",
- "community": 72,
+ "community": 83,
"norm_label": "test_update_creation_atomic_backfills_missing_override_id()"
},
{
@@ -14706,7 +14967,7 @@
"source_file": "tests/unit/cache/test_creation_writer.py",
"source_location": "L1",
"id": "cache_test_creation_writer_rationale_1",
- "community": 72,
+ "community": 83,
"norm_label": "tests for the atomic ``creation.json`` writer in ``exlab_wizard.cache.creation_w"
},
{
@@ -14715,7 +14976,7 @@
"source_file": "tests/unit/cache/test_creation_writer.py",
"source_location": "L104",
"id": "cache_test_creation_writer_rationale_104",
- "community": 72,
+ "community": 83,
"norm_label": "even if the caller hands us an old version, the writer pins to current."
},
{
@@ -14724,7 +14985,7 @@
"source_file": "tests/unit/cache/test_creation_writer.py",
"source_location": "L136",
"id": "cache_test_creation_writer_rationale_136",
- "community": 72,
+ "community": 83,
"norm_label": "forward-compat: a v0.7 writer must not drop fields a v0.8 writer added."
},
{
@@ -14733,7 +14994,7 @@
"source_file": "tests/unit/cache/test_creation_writer.py",
"source_location": "L181",
"id": "cache_test_creation_writer_rationale_181",
- "community": 72,
+ "community": 83,
"norm_label": "two simultaneous mutators on the same path must serialize. this is a small-"
},
{
@@ -14742,7 +15003,7 @@
"source_file": "tests/unit/cache/test_creation_writer.py",
"source_location": "L232",
"id": "cache_test_creation_writer_rationale_232",
- "community": 72,
+ "community": 83,
"norm_label": "multiple lock_sh readers must not block each other."
},
{
@@ -14751,7 +15012,7 @@
"source_file": "tests/unit/cache/test_creation_writer.py",
"source_location": "L263",
"id": "cache_test_creation_writer_rationale_263",
- "community": 72,
+ "community": 83,
"norm_label": "a non-major.minor string must surface as the same structured error rather th"
},
{
@@ -14760,7 +15021,7 @@
"source_file": "tests/unit/cache/test_creation_writer.py",
"source_location": "L276",
"id": "cache_test_creation_writer_rationale_276",
- "community": 72,
+ "community": 83,
"norm_label": "spec \u00a711.3 history: a 1.0 file predates ``run_kind``, ``validation_overrides"
},
{
@@ -14769,7 +15030,7 @@
"source_file": "tests/unit/cache/test_creation_writer.py",
"source_location": "L315",
"id": "cache_test_creation_writer_rationale_315",
- "community": 72,
+ "community": 83,
"norm_label": "1.7 -> 1.8 added ``lims_project.source`` and ``lims_project.cache_freshness_"
},
{
@@ -14778,7 +15039,7 @@
"source_file": "tests/unit/cache/test_creation_writer.py",
"source_location": "L348",
"id": "cache_test_creation_writer_rationale_348",
- "community": 72,
+ "community": 83,
"norm_label": "spec \u00a711.9.3 rule 3: on mutation, an older-minor file is rewritten at the wr"
},
{
@@ -14787,7 +15048,7 @@
"source_file": "tests/unit/cache/test_creation_writer.py",
"source_location": "L385",
"id": "cache_test_creation_writer_rationale_385",
- "community": 72,
+ "community": 83,
"norm_label": "spec \u00a711.9.3 rule 1: a writer at version r always writes r for new files."
},
{
@@ -14796,7 +15057,7 @@
"source_file": "tests/unit/cache/test_creation_writer.py",
"source_location": "L474",
"id": "cache_test_creation_writer_rationale_474",
- "community": 128,
+ "community": 152,
"norm_label": "the matching algorithm uses ``now=`` for deterministic tests; the same fixtu"
},
{
@@ -14805,7 +15066,7 @@
"source_file": "tests/unit/cache/test_creation_writer.py",
"source_location": "L494",
"id": "cache_test_creation_writer_rationale_494",
- "community": 128,
+ "community": 152,
"norm_label": "spec \u00a711.3: orphan tombstones are logged warn but have no effect."
},
{
@@ -14814,7 +15075,7 @@
"source_file": "tests/unit/cache/test_creation_writer.py",
"source_location": "L520",
"id": "cache_test_creation_writer_rationale_520",
- "community": 128,
+ "community": 152,
"norm_label": "fail-safe: a malformed ``expires_at`` re-engages the gate."
},
{
@@ -14823,7 +15084,7 @@
"source_file": "tests/unit/cache/test_creation_writer.py",
"source_location": "L580",
"id": "cache_test_creation_writer_rationale_580",
- "community": 128,
+ "community": 152,
"norm_label": "a tombstone with no ``revokes`` key is silently skipped (no-op). spec \u00a711.3"
},
{
@@ -14832,7 +15093,7 @@
"source_file": "tests/unit/cache/test_creation_writer.py",
"source_location": "L610",
"id": "cache_test_creation_writer_rationale_610",
- "community": 128,
+ "community": 152,
"norm_label": "``_is_future``'s naive-datetime branch attaches utc and compares against ``n"
},
{
@@ -14841,7 +15102,7 @@
"source_file": "tests/unit/cache/test_creation_writer.py",
"source_location": "L632",
"id": "cache_test_creation_writer_rationale_632",
- "community": 72,
+ "community": 83,
"norm_label": "a file without a ``schema_version`` field is treated as a major mismatch --"
},
{
@@ -14850,7 +15111,7 @@
"source_file": "tests/unit/cache/test_creation_writer.py",
"source_location": "L643",
"id": "cache_test_creation_writer_rationale_643",
- "community": 72,
+ "community": 83,
"norm_label": "pre-1.6 files may carry override entries without an ``id``. the migration he"
},
{
@@ -14859,7 +15120,7 @@
"source_file": "tests/unit/cache/__init__.py",
"source_location": "L1",
"id": "tests_unit_cache_init_py",
- "community": 93,
+ "community": 6,
"norm_label": "__init__.py"
},
{
@@ -14868,7 +15129,7 @@
"source_file": "src/exlab_wizard/cache/__init__.py",
"source_location": "L1",
"id": "cache_init_rationale_1",
- "community": 93,
+ "community": 6,
"norm_label": "cache package. backend spec \u00a711."
},
{
@@ -14877,7 +15138,7 @@
"source_file": "tests/unit/cache/test_equipment.py",
"source_location": "L1",
"id": "tests_unit_cache_test_equipment_py",
- "community": 46,
+ "community": 57,
"norm_label": "test_equipment.py"
},
{
@@ -14886,7 +15147,7 @@
"source_file": "tests/unit/cache/test_equipment.py",
"source_location": "L35",
"id": "cache_test_equipment_make_equipment_payload",
- "community": 46,
+ "community": 57,
"norm_label": "_make_equipment_payload()"
},
{
@@ -14895,7 +15156,7 @@
"source_file": "tests/unit/cache/test_equipment.py",
"source_location": "L62",
"id": "cache_test_equipment_make_test_runs_payload",
- "community": 46,
+ "community": 57,
"norm_label": "_make_test_runs_payload()"
},
{
@@ -14904,7 +15165,7 @@
"source_file": "tests/unit/cache/test_equipment.py",
"source_location": "L83",
"id": "cache_test_equipment_test_write_equipment_produces_valid_v1_file",
- "community": 46,
+ "community": 57,
"norm_label": "test_write_equipment_produces_valid_v1_file()"
},
{
@@ -14913,7 +15174,7 @@
"source_file": "tests/unit/cache/test_equipment.py",
"source_location": "L104",
"id": "cache_test_equipment_test_write_equipment_creates_parent_cache_dir",
- "community": 46,
+ "community": 57,
"norm_label": "test_write_equipment_creates_parent_cache_dir()"
},
{
@@ -14922,7 +15183,7 @@
"source_file": "tests/unit/cache/test_equipment.py",
"source_location": "L114",
"id": "cache_test_equipment_test_write_equipment_preserves_first_seen_at_on_rewrite",
- "community": 46,
+ "community": 57,
"norm_label": "test_write_equipment_preserves_first_seen_at_on_rewrite()"
},
{
@@ -14931,7 +15192,7 @@
"source_file": "tests/unit/cache/test_equipment.py",
"source_location": "L131",
"id": "cache_test_equipment_test_write_equipment_updates_last_modified_at_on_rewrite",
- "community": 46,
+ "community": 57,
"norm_label": "test_write_equipment_updates_last_modified_at_on_rewrite()"
},
{
@@ -14940,7 +15201,7 @@
"source_file": "tests/unit/cache/test_equipment.py",
"source_location": "L146",
"id": "cache_test_equipment_test_read_equipment_round_trips",
- "community": 46,
+ "community": 57,
"norm_label": "test_read_equipment_round_trips()"
},
{
@@ -14949,7 +15210,7 @@
"source_file": "tests/unit/cache/test_equipment.py",
"source_location": "L163",
"id": "cache_test_equipment_test_read_equipment_raises_when_file_missing",
- "community": 46,
+ "community": 57,
"norm_label": "test_read_equipment_raises_when_file_missing()"
},
{
@@ -14958,7 +15219,7 @@
"source_file": "tests/unit/cache/test_equipment.py",
"source_location": "L171",
"id": "cache_test_equipment_test_write_equipment_corrupt_existing_file_recovers",
- "community": 46,
+ "community": 57,
"norm_label": "test_write_equipment_corrupt_existing_file_recovers()"
},
{
@@ -14967,7 +15228,7 @@
"source_file": "tests/unit/cache/test_equipment.py",
"source_location": "L193",
"id": "cache_test_equipment_test_write_test_runs_marker_creates_v1_file",
- "community": 46,
+ "community": 57,
"norm_label": "test_write_test_runs_marker_creates_v1_file()"
},
{
@@ -14976,7 +15237,7 @@
"source_file": "tests/unit/cache/test_equipment.py",
"source_location": "L206",
"id": "cache_test_equipment_test_write_test_runs_marker_creates_parent_dir",
- "community": 46,
+ "community": 57,
"norm_label": "test_write_test_runs_marker_creates_parent_dir()"
},
{
@@ -14985,7 +15246,7 @@
"source_file": "tests/unit/cache/test_equipment.py",
"source_location": "L215",
"id": "cache_test_equipment_test_write_test_runs_marker_is_idempotent",
- "community": 46,
+ "community": 57,
"norm_label": "test_write_test_runs_marker_is_idempotent()"
},
{
@@ -14994,7 +15255,7 @@
"source_file": "tests/unit/cache/test_equipment.py",
"source_location": "L239",
"id": "cache_test_equipment_test_write_test_runs_marker_concurrent_first_writes_safe",
- "community": 46,
+ "community": 57,
"norm_label": "test_write_test_runs_marker_concurrent_first_writes_safe()"
},
{
@@ -15003,7 +15264,7 @@
"source_file": "tests/unit/cache/test_equipment.py",
"source_location": "L266",
"id": "cache_test_equipment_test_read_test_runs_marker_round_trips",
- "community": 46,
+ "community": 57,
"norm_label": "test_read_test_runs_marker_round_trips()"
},
{
@@ -15012,7 +15273,7 @@
"source_file": "tests/unit/cache/test_equipment.py",
"source_location": "L282",
"id": "cache_test_equipment_test_require_schema_major_raises_on_none_version",
- "community": 66,
+ "community": 117,
"norm_label": "test_require_schema_major_raises_on_none_version()"
},
{
@@ -15021,7 +15282,7 @@
"source_file": "tests/unit/cache/test_equipment.py",
"source_location": "L291",
"id": "cache_test_equipment_test_require_schema_major_raises_on_empty_version",
- "community": 66,
+ "community": 117,
"norm_label": "test_require_schema_major_raises_on_empty_version()"
},
{
@@ -15030,7 +15291,7 @@
"source_file": "tests/unit/cache/test_equipment.py",
"source_location": "L300",
"id": "cache_test_equipment_test_require_schema_major_raises_on_garbage_version",
- "community": 66,
+ "community": 117,
"norm_label": "test_require_schema_major_raises_on_garbage_version()"
},
{
@@ -15039,7 +15300,7 @@
"source_file": "tests/unit/cache/test_equipment.py",
"source_location": "L309",
"id": "cache_test_equipment_test_require_schema_major_passes_on_same_major",
- "community": 66,
+ "community": 117,
"norm_label": "test_require_schema_major_passes_on_same_major()"
},
{
@@ -15048,7 +15309,7 @@
"source_file": "tests/unit/cache/test_equipment.py",
"source_location": "L319",
"id": "cache_test_equipment_test_read_equipment_skips_check_for_malformed_json",
- "community": 46,
+ "community": 57,
"norm_label": "test_read_equipment_skips_check_for_malformed_json()"
},
{
@@ -15057,7 +15318,7 @@
"source_file": "tests/unit/cache/test_equipment.py",
"source_location": "L332",
"id": "cache_test_equipment_test_read_equipment_skips_check_when_schema_version_missing",
- "community": 46,
+ "community": 57,
"norm_label": "test_read_equipment_skips_check_when_schema_version_missing()"
},
{
@@ -15066,7 +15327,7 @@
"source_file": "tests/unit/cache/test_equipment.py",
"source_location": "L1",
"id": "cache_test_equipment_rationale_1",
- "community": 46,
+ "community": 57,
"norm_label": "unit tests for ``exlab_wizard.cache.equipment``. the schemas come from ``exlab_"
},
{
@@ -15075,7 +15336,7 @@
"source_file": "tests/unit/cache/test_equipment.py",
"source_location": "L44",
"id": "cache_test_equipment_rationale_44",
- "community": 46,
+ "community": 57,
"norm_label": "build a :class:`equipmentjson` payload for tests. timestamps are stamped by"
},
{
@@ -15084,7 +15345,7 @@
"source_file": "tests/unit/cache/test_equipment.py",
"source_location": "L84",
"id": "cache_test_equipment_rationale_84",
- "community": 46,
+ "community": 57,
"norm_label": "first write produces a parseable v1.0 file with both timestamps stamped."
},
{
@@ -15093,7 +15354,7 @@
"source_file": "tests/unit/cache/test_equipment.py",
"source_location": "L105",
"id": "cache_test_equipment_rationale_105",
- "community": 46,
+ "community": 57,
"norm_label": "parent ``.exlab-wizard`` is auto-created if missing."
},
{
@@ -15102,7 +15363,7 @@
"source_file": "tests/unit/cache/test_equipment.py",
"source_location": "L115",
"id": "cache_test_equipment_rationale_115",
- "community": 46,
+ "community": 57,
"norm_label": "re-writing an existing file keeps the original ``first_seen_at``."
},
{
@@ -15111,7 +15372,7 @@
"source_file": "tests/unit/cache/test_equipment.py",
"source_location": "L132",
"id": "cache_test_equipment_rationale_132",
- "community": 46,
+ "community": 57,
"norm_label": "``last_modified_at`` advances on every write; ``first_seen_at`` is frozen."
},
{
@@ -15120,7 +15381,7 @@
"source_file": "tests/unit/cache/test_equipment.py",
"source_location": "L147",
"id": "cache_test_equipment_rationale_147",
- "community": 46,
+ "community": 57,
"norm_label": "a round-trip write \u2192 read returns an equivalent payload."
},
{
@@ -15129,7 +15390,7 @@
"source_file": "tests/unit/cache/test_equipment.py",
"source_location": "L172",
"id": "cache_test_equipment_rationale_172",
- "community": 46,
+ "community": 57,
"norm_label": "a corrupt existing file is rewritten cleanly; first_seen_at is fresh. the \u00a7"
},
{
@@ -15138,7 +15399,7 @@
"source_file": "tests/unit/cache/test_equipment.py",
"source_location": "L216",
"id": "cache_test_equipment_rationale_216",
- "community": 46,
+ "community": 57,
"norm_label": "second write is a no-op even when the input payload differs. per \u00a711.4.2: s"
},
{
@@ -15147,7 +15408,7 @@
"source_file": "tests/unit/cache/test_equipment.py",
"source_location": "L240",
"id": "cache_test_equipment_rationale_240",
- "community": 46,
+ "community": 57,
"norm_label": "concurrent first-time writes do not corrupt the file. two coroutines race t"
},
{
@@ -15156,7 +15417,7 @@
"source_file": "tests/unit/cache/test_equipment.py",
"source_location": "L267",
"id": "cache_test_equipment_rationale_267",
- "community": 46,
+ "community": 57,
"norm_label": "round-trip: write -> read returns an equivalent payload."
},
{
@@ -15165,7 +15426,7 @@
"source_file": "tests/unit/cache/test_equipment.py",
"source_location": "L283",
"id": "cache_test_equipment_rationale_283",
- "community": 66,
+ "community": 117,
"norm_label": "an absent or ``none`` ``schema_version`` is a major-mismatch case."
},
{
@@ -15174,7 +15435,7 @@
"source_file": "tests/unit/cache/test_equipment.py",
"source_location": "L292",
"id": "cache_test_equipment_rationale_292",
- "community": 66,
+ "community": 117,
"norm_label": "empty string is treated like ``none`` (no parseable major)."
},
{
@@ -15183,7 +15444,7 @@
"source_file": "tests/unit/cache/test_equipment.py",
"source_location": "L301",
"id": "cache_test_equipment_rationale_301",
- "community": 66,
+ "community": 117,
"norm_label": "a non-``major.minor`` string is treated as a major-mismatch case."
},
{
@@ -15192,7 +15453,7 @@
"source_file": "tests/unit/cache/test_equipment.py",
"source_location": "L310",
"id": "cache_test_equipment_rationale_310",
- "community": 66,
+ "community": 117,
"norm_label": "same major (different minor) is allowed."
},
{
@@ -15201,7 +15462,7 @@
"source_file": "tests/unit/cache/test_equipment.py",
"source_location": "L320",
"id": "cache_test_equipment_rationale_320",
- "community": 46,
+ "community": 57,
"norm_label": "the ``_check_schema_major_from_bytes`` helper silently ignores malformed jso"
},
{
@@ -15210,7 +15471,7 @@
"source_file": "tests/unit/cache/test_equipment.py",
"source_location": "L335",
"id": "cache_test_equipment_rationale_335",
- "community": 46,
+ "community": 57,
"norm_label": "a file with no ``schema_version`` falls through to the typed decoder (which"
},
{
@@ -15219,7 +15480,7 @@
"source_file": "tests/unit/cache/test_sync_state_writer.py",
"source_location": "L1",
"id": "tests_unit_cache_test_sync_state_writer_py",
- "community": 5,
+ "community": 6,
"norm_label": "test_sync_state_writer.py"
},
{
@@ -15228,7 +15489,7 @@
"source_file": "tests/unit/cache/test_sync_state_writer.py",
"source_location": "L25",
"id": "cache_test_sync_state_writer_state_path",
- "community": 5,
+ "community": 6,
"norm_label": "_state_path()"
},
{
@@ -15237,7 +15498,7 @@
"source_file": "tests/unit/cache/test_sync_state_writer.py",
"source_location": "L34",
"id": "cache_test_sync_state_writer_test_read_when_absent_returns_empty_state",
- "community": 5,
+ "community": 6,
"norm_label": "test_read_when_absent_returns_empty_state()"
},
{
@@ -15246,7 +15507,7 @@
"source_file": "tests/unit/cache/test_sync_state_writer.py",
"source_location": "L52",
"id": "cache_test_sync_state_writer_test_upsert_file_creates_a_record",
- "community": 5,
+ "community": 6,
"norm_label": "test_upsert_file_creates_a_record()"
},
{
@@ -15255,7 +15516,7 @@
"source_file": "tests/unit/cache/test_sync_state_writer.py",
"source_location": "L72",
"id": "cache_test_sync_state_writer_test_upsert_file_updates_existing_record",
- "community": 5,
+ "community": 6,
"norm_label": "test_upsert_file_updates_existing_record()"
},
{
@@ -15264,7 +15525,7 @@
"source_file": "tests/unit/cache/test_sync_state_writer.py",
"source_location": "L90",
"id": "cache_test_sync_state_writer_test_upsert_file_preserves_keep_local",
- "community": 5,
+ "community": 6,
"norm_label": "test_upsert_file_preserves_keep_local()"
},
{
@@ -15273,7 +15534,7 @@
"source_file": "tests/unit/cache/test_sync_state_writer.py",
"source_location": "L112",
"id": "cache_test_sync_state_writer_test_set_keep_local_creates_record_if_absent",
- "community": 5,
+ "community": 6,
"norm_label": "test_set_keep_local_creates_record_if_absent()"
},
{
@@ -15282,7 +15543,7 @@
"source_file": "tests/unit/cache/test_sync_state_writer.py",
"source_location": "L123",
"id": "cache_test_sync_state_writer_test_set_keep_local_toggles_and_preserves_sync_fields",
- "community": 5,
+ "community": 6,
"norm_label": "test_set_keep_local_toggles_and_preserves_sync_fields()"
},
{
@@ -15291,7 +15552,7 @@
"source_file": "tests/unit/cache/test_sync_state_writer.py",
"source_location": "L148",
"id": "cache_test_sync_state_writer_test_mark_cleared_sets_cleared_at",
- "community": 5,
+ "community": 6,
"norm_label": "test_mark_cleared_sets_cleared_at()"
},
{
@@ -15300,7 +15561,7 @@
"source_file": "tests/unit/cache/test_sync_state_writer.py",
"source_location": "L163",
"id": "cache_test_sync_state_writer_test_mark_cleared_on_absent_file_creates_state",
- "community": 5,
+ "community": 6,
"norm_label": "test_mark_cleared_on_absent_file_creates_state()"
},
{
@@ -15309,7 +15570,7 @@
"source_file": "tests/unit/cache/test_sync_state_writer.py",
"source_location": "L172",
"id": "cache_test_sync_state_writer_test_mutators_create_missing_exlab_wizard_dir",
- "community": 5,
+ "community": 6,
"norm_label": "test_mutators_create_missing_exlab_wizard_dir()"
},
{
@@ -15318,7 +15579,7 @@
"source_file": "tests/unit/cache/test_sync_state_writer.py",
"source_location": "L203",
"id": "cache_test_sync_state_writer_test_rollup_state_syncing_when_empty",
- "community": 5,
+ "community": 6,
"norm_label": "test_rollup_state_syncing_when_empty()"
},
{
@@ -15327,7 +15588,7 @@
"source_file": "tests/unit/cache/test_sync_state_writer.py",
"source_location": "L208",
"id": "cache_test_sync_state_writer_test_rollup_state_syncing_when_some_unverified",
- "community": 229,
+ "community": 6,
"norm_label": "test_rollup_state_syncing_when_some_unverified()"
},
{
@@ -15336,7 +15597,7 @@
"source_file": "tests/unit/cache/test_sync_state_writer.py",
"source_location": "L219",
"id": "cache_test_sync_state_writer_test_rollup_state_synced_when_all_verified",
- "community": 229,
+ "community": 6,
"norm_label": "test_rollup_state_synced_when_all_verified()"
},
{
@@ -15345,7 +15606,7 @@
"source_file": "tests/unit/cache/test_sync_state_writer.py",
"source_location": "L230",
"id": "cache_test_sync_state_writer_test_rollup_state_cleared_takes_precedence_over_unverified",
- "community": 229,
+ "community": 6,
"norm_label": "test_rollup_state_cleared_takes_precedence_over_unverified()"
},
{
@@ -15354,7 +15615,7 @@
"source_file": "tests/unit/cache/test_sync_state_writer.py",
"source_location": "L244",
"id": "cache_test_sync_state_writer_test_sync_state_json_round_trips_through_msgspec",
- "community": 229,
+ "community": 6,
"norm_label": "test_sync_state_json_round_trips_through_msgspec()"
},
{
@@ -15363,7 +15624,7 @@
"source_file": "tests/unit/cache/test_sync_state_writer.py",
"source_location": "L272",
"id": "cache_test_sync_state_writer_test_read_raises_on_schema_major_mismatch",
- "community": 5,
+ "community": 6,
"norm_label": "test_read_raises_on_schema_major_mismatch()"
},
{
@@ -15372,7 +15633,7 @@
"source_file": "tests/unit/cache/test_sync_state_writer.py",
"source_location": "L302",
"id": "cache_test_sync_state_writer_test_concurrent_upserts_on_distinct_files_both_survive",
- "community": 5,
+ "community": 6,
"norm_label": "test_concurrent_upserts_on_distinct_files_both_survive()"
},
{
@@ -15381,7 +15642,7 @@
"source_file": "tests/unit/cache/test_sync_state_writer.py",
"source_location": "L1",
"id": "cache_test_sync_state_writer_rationale_1",
- "community": 5,
+ "community": 6,
"norm_label": "unit tests for ``exlab_wizard.cache.sync_state_writer``. covers the operator-fr"
},
{
@@ -15390,7 +15651,7 @@
"source_file": "tests/unit/cache/test_sync_state_writer.py",
"source_location": "L173",
"id": "cache_test_sync_state_writer_rationale_173",
- "community": 5,
+ "community": 6,
"norm_label": "each blocking mutator mkdir's the run's ``.exlab-wizard/`` cache dir. s2 ro"
},
{
@@ -15399,7 +15660,7 @@
"source_file": "tests/unit/cache/test_sync_state_writer.py",
"source_location": "L273",
"id": "cache_test_sync_state_writer_rationale_273",
- "community": 5,
+ "community": 6,
"norm_label": "a file at a different schema major than the writer is rejected. the writer"
},
{
@@ -15408,7 +15669,7 @@
"source_file": "tests/unit/cache/test_sync_state_writer.py",
"source_location": "L303",
"id": "cache_test_sync_state_writer_rationale_303",
- "community": 5,
+ "community": 6,
"norm_label": "two concurrent ``upsert_file`` calls on the same run, distinct paths. the `"
},
{
@@ -15417,7 +15678,7 @@
"source_file": "tests/unit/config/test_loader.py",
"source_location": "L1",
"id": "tests_unit_config_test_loader_py",
- "community": 13,
+ "community": 174,
"norm_label": "test_loader.py"
},
{
@@ -15426,7 +15687,7 @@
"source_file": "tests/unit/config/test_loader.py",
"source_location": "L46",
"id": "config_test_loader_test_load_config_complete_yaml",
- "community": 13,
+ "community": 174,
"norm_label": "test_load_config_complete_yaml()"
},
{
@@ -15435,7 +15696,7 @@
"source_file": "tests/unit/config/test_loader.py",
"source_location": "L84",
"id": "config_test_loader_test_load_config_missing_file_raises",
- "community": 13,
+ "community": 174,
"norm_label": "test_load_config_missing_file_raises()"
},
{
@@ -15444,7 +15705,7 @@
"source_file": "tests/unit/config/test_loader.py",
"source_location": "L92",
"id": "config_test_loader_test_load_config_invalid_yaml_raises",
- "community": 13,
+ "community": 174,
"norm_label": "test_load_config_invalid_yaml_raises()"
},
{
@@ -15453,7 +15714,7 @@
"source_file": "tests/unit/config/test_loader.py",
"source_location": "L101",
"id": "config_test_loader_test_load_config_top_level_not_mapping_raises",
- "community": 13,
+ "community": 174,
"norm_label": "test_load_config_top_level_not_mapping_raises()"
},
{
@@ -15462,7 +15723,7 @@
"source_file": "tests/unit/config/test_loader.py",
"source_location": "L109",
"id": "config_test_loader_test_load_config_validation_error_raises_config_error",
- "community": 13,
+ "community": 174,
"norm_label": "test_load_config_validation_error_raises_config_error()"
},
{
@@ -15471,7 +15732,7 @@
"source_file": "tests/unit/config/test_loader.py",
"source_location": "L124",
"id": "config_test_loader_test_load_config_from_text_empty_returns_empty_config",
- "community": 13,
+ "community": 108,
"norm_label": "test_load_config_from_text_empty_returns_empty_config()"
},
{
@@ -15480,7 +15741,7 @@
"source_file": "tests/unit/config/test_loader.py",
"source_location": "L133",
"id": "config_test_loader_test_load_config_unreadable_path_raises_config_error",
- "community": 13,
+ "community": 174,
"norm_label": "test_load_config_unreadable_path_raises_config_error()"
},
{
@@ -15489,7 +15750,7 @@
"source_file": "tests/unit/config/test_loader.py",
"source_location": "L155",
"id": "config_test_loader_test_save_config_atomic",
- "community": 13,
+ "community": 174,
"norm_label": "test_save_config_atomic()"
},
{
@@ -15498,7 +15759,7 @@
"source_file": "tests/unit/config/test_loader.py",
"source_location": "L167",
"id": "config_test_loader_test_save_config_preserves_comments_round_trip",
- "community": 13,
+ "community": 174,
"norm_label": "test_save_config_preserves_comments_round_trip()"
},
{
@@ -15507,7 +15768,7 @@
"source_file": "tests/unit/config/test_loader.py",
"source_location": "L181",
"id": "config_test_loader_test_save_config_preserves_key_order",
- "community": 13,
+ "community": 174,
"norm_label": "test_save_config_preserves_key_order()"
},
{
@@ -15516,7 +15777,7 @@
"source_file": "tests/unit/config/test_loader.py",
"source_location": "L197",
"id": "config_test_loader_test_save_config_creates_parent_dirs",
- "community": 13,
+ "community": 174,
"norm_label": "test_save_config_creates_parent_dirs()"
},
{
@@ -15525,7 +15786,7 @@
"source_file": "tests/unit/config/test_loader.py",
"source_location": "L207",
"id": "config_test_loader_test_save_config_without_original_text_writes_fresh",
- "community": 13,
+ "community": 174,
"norm_label": "test_save_config_without_original_text_writes_fresh()"
},
{
@@ -15534,7 +15795,7 @@
"source_file": "tests/unit/config/test_loader.py",
"source_location": "L226",
"id": "config_test_loader_test_dump_config_round_trip",
- "community": 13,
+ "community": 268,
"norm_label": "test_dump_config_round_trip()"
},
{
@@ -15543,7 +15804,7 @@
"source_file": "tests/unit/config/test_loader.py",
"source_location": "L282",
"id": "config_test_loader_test_test_mode_unset_leaves_equipment_ids_unchanged",
- "community": 13,
+ "community": 108,
"norm_label": "test_test_mode_unset_leaves_equipment_ids_unchanged()"
},
{
@@ -15552,7 +15813,7 @@
"source_file": "tests/unit/config/test_loader.py",
"source_location": "L289",
"id": "config_test_loader_test_test_mode_enabled_prefixes_every_equipment_id",
- "community": 13,
+ "community": 108,
"norm_label": "test_test_mode_enabled_prefixes_every_equipment_id()"
},
{
@@ -15561,7 +15822,7 @@
"source_file": "tests/unit/config/test_loader.py",
"source_location": "L302",
"id": "config_test_loader_test_test_mode_is_idempotent_on_already_prefixed_ids",
- "community": 13,
+ "community": 108,
"norm_label": "test_test_mode_is_idempotent_on_already_prefixed_ids()"
},
{
@@ -15570,7 +15831,7 @@
"source_file": "tests/unit/config/test_loader.py",
"source_location": "L324",
"id": "config_test_loader_test_test_mode_preserves_unique_id_invariant",
- "community": 13,
+ "community": 108,
"norm_label": "test_test_mode_preserves_unique_id_invariant()"
},
{
@@ -15579,7 +15840,7 @@
"source_file": "tests/unit/config/test_loader.py",
"source_location": "L340",
"id": "config_test_loader_test_test_mode_truthy_values_trigger_prefix",
- "community": 13,
+ "community": 108,
"norm_label": "test_test_mode_truthy_values_trigger_prefix()"
},
{
@@ -15588,7 +15849,7 @@
"source_file": "tests/unit/config/test_loader.py",
"source_location": "L352",
"id": "config_test_loader_test_test_mode_falsy_values_do_not_trigger_prefix",
- "community": 13,
+ "community": 108,
"norm_label": "test_test_mode_falsy_values_do_not_trigger_prefix()"
},
{
@@ -15597,7 +15858,7 @@
"source_file": "tests/unit/config/test_loader.py",
"source_location": "L361",
"id": "config_test_loader_test_test_mode_unset_via_delenv_does_not_trigger_prefix",
- "community": 13,
+ "community": 108,
"norm_label": "test_test_mode_unset_via_delenv_does_not_trigger_prefix()"
},
{
@@ -15606,7 +15867,7 @@
"source_file": "tests/unit/config/test_loader.py",
"source_location": "L370",
"id": "config_test_loader_test_apply_test_mode_prefix_helper_is_a_pure_function",
- "community": 13,
+ "community": 108,
"norm_label": "test_apply_test_mode_prefix_helper_is_a_pure_function()"
},
{
@@ -15615,7 +15876,7 @@
"source_file": "tests/unit/config/test_loader.py",
"source_location": "L389",
"id": "config_test_loader_test_loader_round_trips_nas_block",
- "community": 13,
+ "community": 174,
"norm_label": "test_loader_round_trips_nas_block()"
},
{
@@ -15624,7 +15885,7 @@
"source_file": "tests/unit/config/test_loader.py",
"source_location": "L412",
"id": "config_test_loader_test_load_config_uses_ruamel_round_trip",
- "community": 13,
+ "community": 174,
"norm_label": "test_load_config_uses_ruamel_round_trip()"
},
{
@@ -15633,7 +15894,7 @@
"source_file": "tests/unit/config/test_loader.py",
"source_location": "L1",
"id": "config_test_loader_rationale_1",
- "community": 13,
+ "community": 174,
"norm_label": "tests for ``exlab_wizard.config.loader``. backend spec \u00a79. the loader is the si"
},
{
@@ -15642,7 +15903,7 @@
"source_file": "tests/unit/config/test_loader.py",
"source_location": "L283",
"id": "config_test_loader_rationale_283",
- "community": 13,
+ "community": 108,
"norm_label": "the default code path is a no-op: no env var, no rewrite."
},
{
@@ -15651,7 +15912,7 @@
"source_file": "tests/unit/config/test_loader.py",
"source_location": "L290",
"id": "config_test_loader_rationale_290",
- "community": 13,
+ "community": 108,
"norm_label": "a truthy env value rewrites every id with the canonical prefix."
},
{
@@ -15660,7 +15921,7 @@
"source_file": "tests/unit/config/test_loader.py",
"source_location": "L305",
"id": "config_test_loader_rationale_305",
- "community": 13,
+ "community": 108,
"norm_label": "an already-``test_``-prefixed id must not be re-prefixed."
},
{
@@ -15669,7 +15930,7 @@
"source_file": "tests/unit/config/test_loader.py",
"source_location": "L325",
"id": "config_test_loader_rationale_325",
- "community": 13,
+ "community": 108,
"norm_label": "the transformed config still passes config.model_validate."
},
{
@@ -15678,7 +15939,7 @@
"source_file": "tests/unit/config/test_loader.py",
"source_location": "L343",
"id": "config_test_loader_rationale_343",
- "community": 13,
+ "community": 108,
"norm_label": "every accepted spelling flips the loader on (case-insensitive)."
},
{
@@ -15687,7 +15948,7 @@
"source_file": "tests/unit/config/test_loader.py",
"source_location": "L355",
"id": "config_test_loader_rationale_355",
- "community": 13,
+ "community": 108,
"norm_label": "falsy / unrecognized values leave the loaded config untouched."
},
{
@@ -15696,7 +15957,7 @@
"source_file": "tests/unit/config/test_loader.py",
"source_location": "L364",
"id": "config_test_loader_rationale_364",
- "community": 13,
+ "community": 108,
"norm_label": "an absent env var (not just empty) leaves the config untouched."
},
{
@@ -15705,7 +15966,7 @@
"source_file": "tests/unit/config/test_loader.py",
"source_location": "L373",
"id": "config_test_loader_rationale_373",
- "community": 13,
+ "community": 108,
"norm_label": "``apply_test_mode_prefix`` itself ignores the env var. the env-var check is"
},
{
@@ -15714,7 +15975,7 @@
"source_file": "tests/unit/config/__init__.py",
"source_location": "L1",
"id": "tests_unit_config_init_py",
- "community": 435,
+ "community": 474,
"norm_label": "__init__.py"
},
{
@@ -15723,7 +15984,7 @@
"source_file": "src/exlab_wizard/config/__init__.py",
"source_location": "L1",
"id": "config_init_rationale_1",
- "community": 435,
+ "community": 474,
"norm_label": "config package. backend spec \u00a79."
},
{
@@ -15732,7 +15993,7 @@
"source_file": "tests/unit/config/test_models.py",
"source_location": "L1",
"id": "tests_unit_config_test_models_py",
- "community": 6,
+ "community": 4,
"norm_label": "test_models.py"
},
{
@@ -15741,7 +16002,7 @@
"source_file": "tests/unit/config/test_models.py",
"source_location": "L46",
"id": "config_test_models_equipment_dict",
- "community": 6,
+ "community": 4,
"norm_label": "_equipment_dict()"
},
{
@@ -15750,7 +16011,7 @@
"source_file": "tests/unit/config/test_models.py",
"source_location": "L59",
"id": "config_test_models_full_config_dict",
- "community": 112,
+ "community": 212,
"norm_label": "_full_config_dict()"
},
{
@@ -15759,7 +16020,7 @@
"source_file": "tests/unit/config/test_models.py",
"source_location": "L172",
"id": "config_test_models_test_paths_config_defaults_are_empty_strings",
- "community": 6,
+ "community": 4,
"norm_label": "test_paths_config_defaults_are_empty_strings()"
},
{
@@ -15768,7 +16029,7 @@
"source_file": "tests/unit/config/test_models.py",
"source_location": "L179",
"id": "config_test_models_test_paths_config_rejects_unknown_keys",
- "community": 6,
+ "community": 4,
"norm_label": "test_paths_config_rejects_unknown_keys()"
},
{
@@ -15777,7 +16038,7 @@
"source_file": "tests/unit/config/test_models.py",
"source_location": "L189",
"id": "config_test_models_test_lims_config_defaults",
- "community": 6,
+ "community": 4,
"norm_label": "test_lims_config_defaults()"
},
{
@@ -15786,7 +16047,7 @@
"source_file": "tests/unit/config/test_models.py",
"source_location": "L197",
"id": "config_test_models_test_lims_config_rejects_negative_cache_ttl_hours",
- "community": 6,
+ "community": 4,
"norm_label": "test_lims_config_rejects_negative_cache_ttl_hours()"
},
{
@@ -15795,7 +16056,7 @@
"source_file": "tests/unit/config/test_models.py",
"source_location": "L202",
"id": "config_test_models_test_lims_config_zero_cache_ttl_is_allowed",
- "community": 6,
+ "community": 4,
"norm_label": "test_lims_config_zero_cache_ttl_is_allowed()"
},
{
@@ -15804,7 +16065,7 @@
"source_file": "tests/unit/config/test_models.py",
"source_location": "L213",
"id": "config_test_models_test_readme_default_field_minimal_string_field",
- "community": 166,
+ "community": 4,
"norm_label": "test_readme_default_field_minimal_string_field()"
},
{
@@ -15813,7 +16074,7 @@
"source_file": "tests/unit/config/test_models.py",
"source_location": "L220",
"id": "config_test_models_test_readme_default_field_id_must_match_template_question_id_pattern",
- "community": 166,
+ "community": 4,
"norm_label": "test_readme_default_field_id_must_match_template_question_id_pattern()"
},
{
@@ -15822,7 +16083,7 @@
"source_file": "tests/unit/config/test_models.py",
"source_location": "L225",
"id": "config_test_models_test_readme_default_field_id_rejects_leading_digit",
- "community": 166,
+ "community": 4,
"norm_label": "test_readme_default_field_id_rejects_leading_digit()"
},
{
@@ -15831,7 +16092,7 @@
"source_file": "tests/unit/config/test_models.py",
"source_location": "L230",
"id": "config_test_models_test_readme_default_field_label_must_be_non_empty",
- "community": 166,
+ "community": 4,
"norm_label": "test_readme_default_field_label_must_be_non_empty()"
},
{
@@ -15840,7 +16101,7 @@
"source_file": "tests/unit/config/test_models.py",
"source_location": "L235",
"id": "config_test_models_test_readme_default_field_rejects_unknown_type",
- "community": 166,
+ "community": 4,
"norm_label": "test_readme_default_field_rejects_unknown_type()"
},
{
@@ -15849,7 +16110,7 @@
"source_file": "tests/unit/config/test_models.py",
"source_location": "L240",
"id": "config_test_models_test_readme_choice_field_requires_options",
- "community": 166,
+ "community": 4,
"norm_label": "test_readme_choice_field_requires_options()"
},
{
@@ -15858,7 +16119,7 @@
"source_file": "tests/unit/config/test_models.py",
"source_location": "L246",
"id": "config_test_models_test_readme_choice_field_rejects_empty_options_list",
- "community": 166,
+ "community": 4,
"norm_label": "test_readme_choice_field_rejects_empty_options_list()"
},
{
@@ -15867,7 +16128,7 @@
"source_file": "tests/unit/config/test_models.py",
"source_location": "L251",
"id": "config_test_models_test_readme_choice_field_accepts_non_empty_options",
- "community": 166,
+ "community": 4,
"norm_label": "test_readme_choice_field_accepts_non_empty_options()"
},
{
@@ -15876,7 +16137,7 @@
"source_file": "tests/unit/config/test_models.py",
"source_location": "L256",
"id": "config_test_models_test_readme_non_choice_field_does_not_require_options",
- "community": 166,
+ "community": 4,
"norm_label": "test_readme_non_choice_field_does_not_require_options()"
},
{
@@ -15885,7 +16146,7 @@
"source_file": "tests/unit/config/test_models.py",
"source_location": "L268",
"id": "config_test_models_test_readme_config_default_is_empty_list",
- "community": 79,
+ "community": 38,
"norm_label": "test_readme_config_default_is_empty_list()"
},
{
@@ -15894,7 +16155,7 @@
"source_file": "tests/unit/config/test_models.py",
"source_location": "L278",
"id": "config_test_models_test_bandwidth_window_happy_path",
- "community": 6,
+ "community": 4,
"norm_label": "test_bandwidth_window_happy_path()"
},
{
@@ -15903,7 +16164,7 @@
"source_file": "tests/unit/config/test_models.py",
"source_location": "L285",
"id": "config_test_models_test_bandwidth_window_rejects_empty_days_list",
- "community": 6,
+ "community": 4,
"norm_label": "test_bandwidth_window_rejects_empty_days_list()"
},
{
@@ -15912,7 +16173,7 @@
"source_file": "tests/unit/config/test_models.py",
"source_location": "L290",
"id": "config_test_models_test_bandwidth_window_rejects_invalid_day",
- "community": 6,
+ "community": 4,
"norm_label": "test_bandwidth_window_rejects_invalid_day()"
},
{
@@ -15921,7 +16182,7 @@
"source_file": "tests/unit/config/test_models.py",
"source_location": "L295",
"id": "config_test_models_test_bandwidth_window_from_must_be_before_to",
- "community": 6,
+ "community": 4,
"norm_label": "test_bandwidth_window_from_must_be_before_to()"
},
{
@@ -15930,7 +16191,7 @@
"source_file": "tests/unit/config/test_models.py",
"source_location": "L300",
"id": "config_test_models_test_bandwidth_window_equal_from_and_to_is_invalid",
- "community": 6,
+ "community": 4,
"norm_label": "test_bandwidth_window_equal_from_and_to_is_invalid()"
},
{
@@ -15939,7 +16200,7 @@
"source_file": "tests/unit/config/test_models.py",
"source_location": "L306",
"id": "config_test_models_test_bandwidth_window_rejects_non_hhmm_time",
- "community": 6,
+ "community": 4,
"norm_label": "test_bandwidth_window_rejects_non_hhmm_time()"
},
{
@@ -15948,7 +16209,7 @@
"source_file": "tests/unit/config/test_models.py",
"source_location": "L311",
"id": "config_test_models_test_bandwidth_window_rejects_invalid_hour",
- "community": 6,
+ "community": 4,
"norm_label": "test_bandwidth_window_rejects_invalid_hour()"
},
{
@@ -15957,7 +16218,7 @@
"source_file": "tests/unit/config/test_models.py",
"source_location": "L316",
"id": "config_test_models_test_bandwidth_window_rejects_invalid_minute",
- "community": 6,
+ "community": 4,
"norm_label": "test_bandwidth_window_rejects_invalid_minute()"
},
{
@@ -15966,7 +16227,7 @@
"source_file": "tests/unit/config/test_models.py",
"source_location": "L326",
"id": "config_test_models_test_bandwidth_config_defaults",
- "community": 6,
+ "community": 4,
"norm_label": "test_bandwidth_config_defaults()"
},
{
@@ -15975,7 +16236,7 @@
"source_file": "tests/unit/config/test_models.py",
"source_location": "L332",
"id": "config_test_models_test_bandwidth_config_rejects_zero_upload_mbps",
- "community": 6,
+ "community": 4,
"norm_label": "test_bandwidth_config_rejects_zero_upload_mbps()"
},
{
@@ -15984,7 +16245,7 @@
"source_file": "tests/unit/config/test_models.py",
"source_location": "L337",
"id": "config_test_models_test_bandwidth_config_rejects_negative_upload_mbps",
- "community": 6,
+ "community": 4,
"norm_label": "test_bandwidth_config_rejects_negative_upload_mbps()"
},
{
@@ -15993,7 +16254,7 @@
"source_file": "tests/unit/config/test_models.py",
"source_location": "L342",
"id": "config_test_models_test_bandwidth_config_accepts_positive_upload_mbps",
- "community": 6,
+ "community": 4,
"norm_label": "test_bandwidth_config_accepts_positive_upload_mbps()"
},
{
@@ -16002,7 +16263,7 @@
"source_file": "tests/unit/config/test_models.py",
"source_location": "L352",
"id": "config_test_models_test_equipment_id_regex_accepts_canonical_form",
- "community": 6,
+ "community": 4,
"norm_label": "test_equipment_id_regex_accepts_canonical_form()"
},
{
@@ -16011,7 +16272,7 @@
"source_file": "tests/unit/config/test_models.py",
"source_location": "L357",
"id": "config_test_models_test_equipment_id_rejects_lowercase",
- "community": 6,
+ "community": 4,
"norm_label": "test_equipment_id_rejects_lowercase()"
},
{
@@ -16020,7 +16281,7 @@
"source_file": "tests/unit/config/test_models.py",
"source_location": "L362",
"id": "config_test_models_test_equipment_id_rejects_hyphen",
- "community": 6,
+ "community": 4,
"norm_label": "test_equipment_id_rejects_hyphen()"
},
{
@@ -16029,7 +16290,7 @@
"source_file": "tests/unit/config/test_models.py",
"source_location": "L367",
"id": "config_test_models_test_equipment_id_rejects_leading_digit",
- "community": 6,
+ "community": 4,
"norm_label": "test_equipment_id_rejects_leading_digit()"
},
{
@@ -16038,7 +16299,7 @@
"source_file": "tests/unit/config/test_models.py",
"source_location": "L372",
"id": "config_test_models_test_equipment_id_rejects_too_long",
- "community": 6,
+ "community": 4,
"norm_label": "test_equipment_id_rejects_too_long()"
},
{
@@ -16047,7 +16308,7 @@
"source_file": "tests/unit/config/test_models.py",
"source_location": "L378",
"id": "config_test_models_test_equipment_id_accepts_max_length",
- "community": 6,
+ "community": 4,
"norm_label": "test_equipment_id_accepts_max_length()"
},
{
@@ -16056,7 +16317,7 @@
"source_file": "tests/unit/config/test_models.py",
"source_location": "L384",
"id": "config_test_models_test_equipment_config_rejects_removed_completeness_fields",
- "community": 6,
+ "community": 4,
"norm_label": "test_equipment_config_rejects_removed_completeness_fields()"
},
{
@@ -16065,7 +16326,7 @@
"source_file": "tests/unit/config/test_models.py",
"source_location": "L395",
"id": "config_test_models_test_equipment_label_must_be_non_empty",
- "community": 6,
+ "community": 4,
"norm_label": "test_equipment_label_must_be_non_empty()"
},
{
@@ -16074,7 +16335,7 @@
"source_file": "tests/unit/config/test_models.py",
"source_location": "L402",
"id": "config_test_models_test_equipment_local_root_must_be_non_empty",
- "community": 6,
+ "community": 4,
"norm_label": "test_equipment_local_root_must_be_non_empty()"
},
{
@@ -16083,7 +16344,7 @@
"source_file": "tests/unit/config/test_models.py",
"source_location": "L409",
"id": "config_test_models_test_equipment_nas_root_must_be_non_empty",
- "community": 6,
+ "community": 4,
"norm_label": "test_equipment_nas_root_must_be_non_empty()"
},
{
@@ -16092,7 +16353,7 @@
"source_file": "tests/unit/config/test_models.py",
"source_location": "L416",
"id": "config_test_models_test_equipment_rejects_removed_orchestrator_staging_transport",
- "community": 6,
+ "community": 4,
"norm_label": "test_equipment_rejects_removed_orchestrator_staging_transport()"
},
{
@@ -16101,7 +16362,7 @@
"source_file": "tests/unit/config/test_models.py",
"source_location": "L435",
"id": "config_test_models_test_sync_mode_defaults_to_nas_when_absent",
- "community": 6,
+ "community": 4,
"norm_label": "test_sync_mode_defaults_to_nas_when_absent()"
},
{
@@ -16110,7 +16371,7 @@
"source_file": "tests/unit/config/test_models.py",
"source_location": "L440",
"id": "config_test_models_test_nas_mode_equipment_needs_no_transport_block",
- "community": 6,
+ "community": 4,
"norm_label": "test_nas_mode_equipment_needs_no_transport_block()"
},
{
@@ -16119,7 +16380,7 @@
"source_file": "tests/unit/config/test_models.py",
"source_location": "L456",
"id": "config_test_models_test_nas_mode_equipment_rejects_stray_transport_block",
- "community": 6,
+ "community": 4,
"norm_label": "test_nas_mode_equipment_rejects_stray_transport_block()"
},
{
@@ -16128,7 +16389,7 @@
"source_file": "tests/unit/config/test_models.py",
"source_location": "L471",
"id": "config_test_models_test_sync_mode_stage_needs_no_per_equipment_block",
- "community": 6,
+ "community": 4,
"norm_label": "test_sync_mode_stage_needs_no_per_equipment_block()"
},
{
@@ -16137,7 +16398,7 @@
"source_file": "tests/unit/config/test_models.py",
"source_location": "L481",
"id": "config_test_models_test_sync_mode_stage_rejects_stray_transport_block",
- "community": 6,
+ "community": 4,
"norm_label": "test_sync_mode_stage_rejects_stray_transport_block()"
},
{
@@ -16146,7 +16407,7 @@
"source_file": "tests/unit/config/test_models.py",
"source_location": "L491",
"id": "config_test_models_test_sync_mode_serializes_to_string",
- "community": 6,
+ "community": 4,
"norm_label": "test_sync_mode_serializes_to_string()"
},
{
@@ -16155,7 +16416,7 @@
"source_file": "tests/unit/config/test_models.py",
"source_location": "L499",
"id": "config_test_models_test_sync_mode_rejects_unknown_value",
- "community": 6,
+ "community": 4,
"norm_label": "test_sync_mode_rejects_unknown_value()"
},
{
@@ -16164,7 +16425,7 @@
"source_file": "tests/unit/config/test_models.py",
"source_location": "L506",
"id": "config_test_models_test_sync_mode_stage_round_trip_via_dict",
- "community": 6,
+ "community": 4,
"norm_label": "test_sync_mode_stage_round_trip_via_dict()"
},
{
@@ -16173,7 +16434,7 @@
"source_file": "tests/unit/config/test_models.py",
"source_location": "L522",
"id": "config_test_models_test_nas_cleanup_defaults",
- "community": 351,
+ "community": 37,
"norm_label": "test_nas_cleanup_defaults()"
},
{
@@ -16182,7 +16443,7 @@
"source_file": "tests/unit/config/test_models.py",
"source_location": "L530",
"id": "config_test_models_test_nas_cleanup_min_verify_passes_at_least_one",
- "community": 351,
+ "community": 37,
"norm_label": "test_nas_cleanup_min_verify_passes_at_least_one()"
},
{
@@ -16191,7 +16452,7 @@
"source_file": "tests/unit/config/test_models.py",
"source_location": "L535",
"id": "config_test_models_test_nas_cleanup_min_age_hours_non_negative",
- "community": 351,
+ "community": 37,
"norm_label": "test_nas_cleanup_min_age_hours_non_negative()"
},
{
@@ -16200,7 +16461,7 @@
"source_file": "tests/unit/config/test_models.py",
"source_location": "L545",
"id": "config_test_models_test_logging_level_normalized_to_uppercase",
- "community": 271,
+ "community": 19,
"norm_label": "test_logging_level_normalized_to_uppercase()"
},
{
@@ -16209,7 +16470,7 @@
"source_file": "tests/unit/config/test_models.py",
"source_location": "L550",
"id": "config_test_models_test_logging_level_rejects_unknown",
- "community": 271,
+ "community": 19,
"norm_label": "test_logging_level_rejects_unknown()"
},
{
@@ -16218,7 +16479,7 @@
"source_file": "tests/unit/config/test_models.py",
"source_location": "L555",
"id": "config_test_models_test_logging_level_accepts_all_canonical_values",
- "community": 271,
+ "community": 19,
"norm_label": "test_logging_level_accepts_all_canonical_values()"
},
{
@@ -16227,7 +16488,7 @@
"source_file": "tests/unit/config/test_models.py",
"source_location": "L561",
"id": "config_test_models_test_logging_level_strips_whitespace_and_normalizes",
- "community": 271,
+ "community": 19,
"norm_label": "test_logging_level_strips_whitespace_and_normalizes()"
},
{
@@ -16236,7 +16497,7 @@
"source_file": "tests/unit/config/test_models.py",
"source_location": "L566",
"id": "config_test_models_test_logging_level_rejects_non_string",
- "community": 6,
+ "community": 4,
"norm_label": "test_logging_level_rejects_non_string()"
},
{
@@ -16245,7 +16506,7 @@
"source_file": "tests/unit/config/test_models.py",
"source_location": "L576",
"id": "config_test_models_test_logging_level_rejects_non_string_directly",
- "community": 271,
+ "community": 19,
"norm_label": "test_logging_level_rejects_non_string_directly()"
},
{
@@ -16254,7 +16515,7 @@
"source_file": "tests/unit/config/test_models.py",
"source_location": "L584",
"id": "config_test_models_test_logging_central_log_max_mb_at_least_one",
- "community": 271,
+ "community": 19,
"norm_label": "test_logging_central_log_max_mb_at_least_one()"
},
{
@@ -16263,7 +16524,7 @@
"source_file": "tests/unit/config/test_models.py",
"source_location": "L589",
"id": "config_test_models_test_logging_central_log_keep_at_least_one",
- "community": 271,
+ "community": 19,
"norm_label": "test_logging_central_log_keep_at_least_one()"
},
{
@@ -16272,7 +16533,7 @@
"source_file": "tests/unit/config/test_models.py",
"source_location": "L599",
"id": "config_test_models_test_operators_config_defaults_to_empty_allowlist",
- "community": 370,
+ "community": 38,
"norm_label": "test_operators_config_defaults_to_empty_allowlist()"
},
{
@@ -16281,7 +16542,7 @@
"source_file": "tests/unit/config/test_models.py",
"source_location": "L604",
"id": "config_test_models_test_operators_config_accepts_arbitrary_strings",
- "community": 370,
+ "community": 38,
"norm_label": "test_operators_config_accepts_arbitrary_strings()"
},
{
@@ -16290,7 +16551,7 @@
"source_file": "tests/unit/config/test_models.py",
"source_location": "L614",
"id": "config_test_models_test_validator_config_defaults",
- "community": 133,
+ "community": 211,
"norm_label": "test_validator_config_defaults()"
},
{
@@ -16299,7 +16560,7 @@
"source_file": "tests/unit/config/test_models.py",
"source_location": "L621",
"id": "config_test_models_test_validator_content_scan_max_mib_at_least_one",
- "community": 133,
+ "community": 211,
"norm_label": "test_validator_content_scan_max_mib_at_least_one()"
},
{
@@ -16308,7 +16569,7 @@
"source_file": "tests/unit/config/test_models.py",
"source_location": "L626",
"id": "config_test_models_test_validator_extensions_must_start_with_dot",
- "community": 133,
+ "community": 211,
"norm_label": "test_validator_extensions_must_start_with_dot()"
},
{
@@ -16317,7 +16578,7 @@
"source_file": "tests/unit/config/test_models.py",
"source_location": "L631",
"id": "config_test_models_test_validator_extensions_rejects_dotless_among_others",
- "community": 133,
+ "community": 211,
"norm_label": "test_validator_extensions_rejects_dotless_among_others()"
},
{
@@ -16326,7 +16587,7 @@
"source_file": "tests/unit/config/test_models.py",
"source_location": "L641",
"id": "config_test_models_test_plugins_config_default_allow_network_false",
- "community": 79,
+ "community": 423,
"norm_label": "test_plugins_config_default_allow_network_false()"
},
{
@@ -16335,7 +16596,7 @@
"source_file": "tests/unit/config/test_models.py",
"source_location": "L651",
"id": "config_test_models_test_sync_config_defaults",
- "community": 166,
+ "community": 292,
"norm_label": "test_sync_config_defaults()"
},
{
@@ -16344,7 +16605,7 @@
"source_file": "tests/unit/config/test_models.py",
"source_location": "L660",
"id": "config_test_models_test_sync_config_retry_attempts_non_negative",
- "community": 166,
+ "community": 292,
"norm_label": "test_sync_config_retry_attempts_non_negative()"
},
{
@@ -16353,7 +16614,7 @@
"source_file": "tests/unit/config/test_models.py",
"source_location": "L665",
"id": "config_test_models_test_sync_config_quiescence_minutes_at_least_one",
- "community": 166,
+ "community": 292,
"norm_label": "test_sync_config_quiescence_minutes_at_least_one()"
},
{
@@ -16362,7 +16623,7 @@
"source_file": "tests/unit/config/test_models.py",
"source_location": "L670",
"id": "config_test_models_test_sync_config_poll_interval_seconds_at_least_one",
- "community": 166,
+ "community": 292,
"norm_label": "test_sync_config_poll_interval_seconds_at_least_one()"
},
{
@@ -16371,7 +16632,7 @@
"source_file": "tests/unit/config/test_models.py",
"source_location": "L675",
"id": "config_test_models_test_sync_config_accepts_custom_quiescence_settings",
- "community": 166,
+ "community": 292,
"norm_label": "test_sync_config_accepts_custom_quiescence_settings()"
},
{
@@ -16380,7 +16641,7 @@
"source_file": "tests/unit/config/test_models.py",
"source_location": "L686",
"id": "config_test_models_test_sync_config_ignore_globs_default_is_independent_per_instance",
- "community": 166,
+ "community": 292,
"norm_label": "test_sync_config_ignore_globs_default_is_independent_per_instance()"
},
{
@@ -16389,7 +16650,7 @@
"source_file": "tests/unit/config/test_models.py",
"source_location": "L699",
"id": "config_test_models_test_orchestrator_staging_cleanup_defaults",
- "community": 6,
+ "community": 13,
"norm_label": "test_orchestrator_staging_cleanup_defaults()"
},
{
@@ -16398,7 +16659,7 @@
"source_file": "tests/unit/config/test_models.py",
"source_location": "L705",
"id": "config_test_models_test_orchestrator_staging_cleanup_scheduled_requires_positive_hours",
- "community": 6,
+ "community": 13,
"norm_label": "test_orchestrator_staging_cleanup_scheduled_requires_positive_hours()"
},
{
@@ -16407,7 +16668,7 @@
"source_file": "tests/unit/config/test_models.py",
"source_location": "L711",
"id": "config_test_models_test_orchestrator_staging_cleanup_rejects_unknown_mode",
- "community": 6,
+ "community": 13,
"norm_label": "test_orchestrator_staging_cleanup_rejects_unknown_mode()"
},
{
@@ -16416,7 +16677,7 @@
"source_file": "tests/unit/config/test_models.py",
"source_location": "L721",
"id": "config_test_models_test_orchestrator_config_defaults",
- "community": 437,
+ "community": 493,
"norm_label": "test_orchestrator_config_defaults()"
},
{
@@ -16425,7 +16686,7 @@
"source_file": "tests/unit/config/test_models.py",
"source_location": "L733",
"id": "config_test_models_test_orchestrator_config_staging_remote_validates_with_perf_defaults",
- "community": 6,
+ "community": 4,
"norm_label": "test_orchestrator_config_staging_remote_validates_with_perf_defaults()"
},
{
@@ -16434,7 +16695,7 @@
"source_file": "tests/unit/config/test_models.py",
"source_location": "L744",
"id": "config_test_models_test_stage_mode_equipment_validates_without_staging_block",
- "community": 507,
+ "community": 4,
"norm_label": "test_stage_mode_equipment_validates_without_staging_block()"
},
{
@@ -16443,7 +16704,7 @@
"source_file": "tests/unit/config/test_models.py",
"source_location": "L762",
"id": "config_test_models_test_config_fully_default_is_valid",
- "community": 6,
+ "community": 4,
"norm_label": "test_config_fully_default_is_valid()"
},
{
@@ -16452,7 +16713,7 @@
"source_file": "tests/unit/config/test_models.py",
"source_location": "L772",
"id": "config_test_models_test_unique_equipment_ids_required",
- "community": 6,
+ "community": 4,
"norm_label": "test_unique_equipment_ids_required()"
},
{
@@ -16461,7 +16722,7 @@
"source_file": "tests/unit/config/test_models.py",
"source_location": "L784",
"id": "config_test_models_test_distinct_equipment_ids_accepted",
- "community": 112,
+ "community": 212,
"norm_label": "test_distinct_equipment_ids_accepted()"
},
{
@@ -16470,7 +16731,7 @@
"source_file": "tests/unit/config/test_models.py",
"source_location": "L795",
"id": "config_test_models_test_orchestrator_legacy_enabled_field_rejected",
- "community": 436,
+ "community": 492,
"norm_label": "test_orchestrator_legacy_enabled_field_rejected()"
},
{
@@ -16479,7 +16740,7 @@
"source_file": "tests/unit/config/test_models.py",
"source_location": "L811",
"id": "config_test_models_test_orchestrator_label_and_staging_root_load_independently",
- "community": 438,
+ "community": 494,
"norm_label": "test_orchestrator_label_and_staging_root_load_independently()"
},
{
@@ -16488,7 +16749,7 @@
"source_file": "tests/unit/config/test_models.py",
"source_location": "L826",
"id": "config_test_models_test_orchestrator_with_both_fields_is_valid",
- "community": 6,
+ "community": 4,
"norm_label": "test_orchestrator_with_both_fields_is_valid()"
},
{
@@ -16497,7 +16758,7 @@
"source_file": "tests/unit/config/test_models.py",
"source_location": "L840",
"id": "config_test_models_test_config_rejects_unknown_top_level_key",
- "community": 6,
+ "community": 4,
"norm_label": "test_config_rejects_unknown_top_level_key()"
},
{
@@ -16506,7 +16767,7 @@
"source_file": "tests/unit/config/test_models.py",
"source_location": "L850",
"id": "config_test_models_test_full_config_round_trip_via_dict",
- "community": 112,
+ "community": 212,
"norm_label": "test_full_config_round_trip_via_dict()"
},
{
@@ -16515,7 +16776,7 @@
"source_file": "tests/unit/config/test_models.py",
"source_location": "L871",
"id": "config_test_models_test_round_trip_preserves_bandwidth_alias_for_from",
- "community": 112,
+ "community": 212,
"norm_label": "test_round_trip_preserves_bandwidth_alias_for_from()"
},
{
@@ -16524,7 +16785,7 @@
"source_file": "tests/unit/config/test_models.py",
"source_location": "L885",
"id": "config_test_models_test_config_with_equipment_appended_seeds_from_none",
- "community": 250,
+ "community": 261,
"norm_label": "test_config_with_equipment_appended_seeds_from_none()"
},
{
@@ -16533,7 +16794,7 @@
"source_file": "tests/unit/config/test_models.py",
"source_location": "L893",
"id": "config_test_models_test_config_with_equipment_appended_preserves_existing_state",
- "community": 250,
+ "community": 261,
"norm_label": "test_config_with_equipment_appended_preserves_existing_state()"
},
{
@@ -16542,7 +16803,7 @@
"source_file": "tests/unit/config/test_models.py",
"source_location": "L905",
"id": "config_test_models_test_config_with_equipment_appended_rejects_duplicate_id",
- "community": 250,
+ "community": 261,
"norm_label": "test_config_with_equipment_appended_rejects_duplicate_id()"
},
{
@@ -16551,7 +16812,7 @@
"source_file": "tests/unit/config/test_models.py",
"source_location": "L919",
"id": "config_test_models_test_nas_config_defaults",
- "community": 6,
+ "community": 4,
"norm_label": "test_nas_config_defaults()"
},
{
@@ -16560,7 +16821,7 @@
"source_file": "tests/unit/config/test_models.py",
"source_location": "L930",
"id": "config_test_models_test_nas_config_rejects_nonpositive_perf",
- "community": 6,
+ "community": 4,
"norm_label": "test_nas_config_rejects_nonpositive_perf()"
},
{
@@ -16569,7 +16830,7 @@
"source_file": "tests/unit/config/test_models.py",
"source_location": "L937",
"id": "config_test_models_test_config_has_default_nas_block",
- "community": 6,
+ "community": 4,
"norm_label": "test_config_has_default_nas_block()"
},
{
@@ -16578,7 +16839,7 @@
"source_file": "tests/unit/config/test_models.py",
"source_location": "L1",
"id": "config_test_models_rationale_1",
- "community": 6,
+ "community": 4,
"norm_label": "unit tests for ``exlab_wizard.config.models``. pydantic models that mirror ``co"
},
{
@@ -16587,7 +16848,7 @@
"source_file": "tests/unit/config/test_models.py",
"source_location": "L50",
"id": "config_test_models_rationale_50",
- "community": 6,
+ "community": 4,
"norm_label": "build a valid equipmentconfig dict with sensible defaults."
},
{
@@ -16596,7 +16857,7 @@
"source_file": "tests/unit/config/test_models.py",
"source_location": "L60",
"id": "config_test_models_rationale_60",
- "community": 112,
+ "community": 212,
"norm_label": "full config dict mirroring the \u00a79 example. used by round-trip tests."
},
{
@@ -16605,7 +16866,7 @@
"source_file": "tests/unit/config/test_models.py",
"source_location": "L385",
"id": "config_test_models_rationale_385",
- "community": 6,
+ "community": 4,
"norm_label": "the operator-free quiescence redesign drops the per-equipment completeness-s"
},
{
@@ -16614,7 +16875,7 @@
"source_file": "tests/unit/config/test_models.py",
"source_location": "L417",
"id": "config_test_models_rationale_417",
- "community": 6,
+ "community": 4,
"norm_label": "rclone.conf migration (phase 8): the per-equipment staging-transport block i"
},
{
@@ -16623,7 +16884,7 @@
"source_file": "tests/unit/config/test_models.py",
"source_location": "L441",
"id": "config_test_models_rationale_441",
- "community": 6,
+ "community": 4,
"norm_label": "rclone.conf migration: nas-mode carries no per-equipment connection. the ``"
},
{
@@ -16632,7 +16893,7 @@
"source_file": "tests/unit/config/test_models.py",
"source_location": "L457",
"id": "config_test_models_rationale_457",
- "community": 6,
+ "community": 4,
"norm_label": "rclone.conf migration: a stray ``transport`` key is now forbidden."
},
{
@@ -16641,7 +16902,7 @@
"source_file": "tests/unit/config/test_models.py",
"source_location": "L472",
"id": "config_test_models_rationale_472",
- "community": 6,
+ "community": 4,
"norm_label": "rclone.conf migration (phase 8): stage-mode no longer requires (or accepts)"
},
{
@@ -16650,7 +16911,7 @@
"source_file": "tests/unit/config/test_models.py",
"source_location": "L507",
"id": "config_test_models_rationale_507",
- "community": 6,
+ "community": 4,
"norm_label": "build a stage-mode equipmentconfig from a dict, dump it, compare."
},
{
@@ -16659,7 +16920,7 @@
"source_file": "tests/unit/config/test_models.py",
"source_location": "L722",
"id": "config_test_models_rationale_722",
- "community": 437,
+ "community": 493,
"norm_label": "redesign \u00a73.1: the ``enabled`` toggle is removed; ``label`` and ``staging_ro"
},
{
@@ -16668,7 +16929,7 @@
"source_file": "tests/unit/config/test_models.py",
"source_location": "L734",
"id": "config_test_models_rationale_734",
- "community": 6,
+ "community": 4,
"norm_label": "rclone.conf migration (phase 8): the orchestrator stage hop is a named rclon"
},
{
@@ -16677,7 +16938,7 @@
"source_file": "tests/unit/config/test_models.py",
"source_location": "L745",
"id": "config_test_models_rationale_745",
- "community": 507,
+ "community": 4,
"norm_label": "rclone.conf migration (phase 8): a stage-mode equipment validates with only"
},
{
@@ -16686,7 +16947,7 @@
"source_file": "tests/unit/config/test_models.py",
"source_location": "L796",
"id": "config_test_models_rationale_796",
- "community": 436,
+ "community": 492,
"norm_label": "redesign \u00a73.1: the ``enabled`` toggle is removed; old configs that carry it"
},
{
@@ -16695,7 +16956,7 @@
"source_file": "tests/unit/config/test_models.py",
"source_location": "L812",
"id": "config_test_models_rationale_812",
- "community": 438,
+ "community": 494,
"norm_label": "they can be empty at load time (the setup-incomplete gate trips, not the pyd"
},
{
@@ -16704,7 +16965,7 @@
"source_file": "tests/unit/config/test_models.py",
"source_location": "L851",
"id": "config_test_models_rationale_851",
- "community": 112,
+ "community": 212,
"norm_label": "build a config from a \u00a79-shaped dict, dump it, and compare. ``model_dump()`"
},
{
@@ -16713,7 +16974,7 @@
"source_file": "tests/unit/config/test_models.py",
"source_location": "L886",
"id": "config_test_models_rationale_886",
- "community": 250,
+ "community": 261,
"norm_label": "a ``none`` config (fresh install) yields a default config + the device."
},
{
@@ -16722,7 +16983,7 @@
"source_file": "tests/unit/config/test_models.py",
"source_location": "L894",
"id": "config_test_models_rationale_894",
- "community": 250,
+ "community": 261,
"norm_label": "appending keeps prior equipment and other config sections, unmutated."
},
{
@@ -16731,7 +16992,7 @@
"source_file": "tests/unit/config/test_models.py",
"source_location": "L906",
"id": "config_test_models_rationale_906",
- "community": 250,
+ "community": 261,
"norm_label": "a device whose id already exists raises configerror, not a silent merge."
},
{
@@ -16740,7 +17001,7 @@
"source_file": "tests/unit/plugins/test_registry.py",
"source_location": "L1",
"id": "tests_unit_plugins_test_registry_py",
- "community": 4,
+ "community": 7,
"norm_label": "test_registry.py"
},
{
@@ -16749,7 +17010,7 @@
"source_file": "tests/unit/plugins/test_registry.py",
"source_location": "L35",
"id": "plugins_test_registry_write_plugin",
- "community": 4,
+ "community": 7,
"norm_label": "_write_plugin()"
},
{
@@ -16758,7 +17019,7 @@
"source_file": "tests/unit/plugins/test_registry.py",
"source_location": "L89",
"id": "plugins_test_registry_test_loads_a_valid_plugin",
- "community": 4,
+ "community": 7,
"norm_label": "test_loads_a_valid_plugin()"
},
{
@@ -16767,7 +17028,7 @@
"source_file": "tests/unit/plugins/test_registry.py",
"source_location": "L106",
"id": "plugins_test_registry_test_loaded_record_carries_isolation_block",
- "community": 4,
+ "community": 7,
"norm_label": "test_loaded_record_carries_isolation_block()"
},
{
@@ -16776,7 +17037,7 @@
"source_file": "tests/unit/plugins/test_registry.py",
"source_location": "L118",
"id": "plugins_test_registry_test_required_and_optional_variables_round_trip",
- "community": 4,
+ "community": 7,
"norm_label": "test_required_and_optional_variables_round_trip()"
},
{
@@ -16785,7 +17046,7 @@
"source_file": "tests/unit/plugins/test_registry.py",
"source_location": "L140",
"id": "plugins_test_registry_test_rejects_plugin_directory_without_manifest",
- "community": 4,
+ "community": 7,
"norm_label": "test_rejects_plugin_directory_without_manifest()"
},
{
@@ -16794,7 +17055,7 @@
"source_file": "tests/unit/plugins/test_registry.py",
"source_location": "L152",
"id": "plugins_test_registry_test_rejects_plugin_with_malformed_yaml",
- "community": 4,
+ "community": 7,
"norm_label": "test_rejects_plugin_with_malformed_yaml()"
},
{
@@ -16803,7 +17064,7 @@
"source_file": "tests/unit/plugins/test_registry.py",
"source_location": "L164",
"id": "plugins_test_registry_test_rejects_plugin_missing_required_field",
- "community": 4,
+ "community": 7,
"norm_label": "test_rejects_plugin_missing_required_field()"
},
{
@@ -16812,7 +17073,7 @@
"source_file": "tests/unit/plugins/test_registry.py",
"source_location": "L174",
"id": "plugins_test_registry_test_rejects_plugin_with_unsupported_api_version",
- "community": 4,
+ "community": 7,
"norm_label": "test_rejects_plugin_with_unsupported_api_version()"
},
{
@@ -16821,7 +17082,7 @@
"source_file": "tests/unit/plugins/test_registry.py",
"source_location": "L184",
"id": "plugins_test_registry_test_rejects_plugin_with_invalid_name",
- "community": 4,
+ "community": 7,
"norm_label": "test_rejects_plugin_with_invalid_name()"
},
{
@@ -16830,7 +17091,7 @@
"source_file": "tests/unit/plugins/test_registry.py",
"source_location": "L202",
"id": "plugins_test_registry_test_rejects_plugin_with_timeout_above_cap",
- "community": 4,
+ "community": 7,
"norm_label": "test_rejects_plugin_with_timeout_above_cap()"
},
{
@@ -16839,7 +17100,7 @@
"source_file": "tests/unit/plugins/test_registry.py",
"source_location": "L211",
"id": "plugins_test_registry_test_rejects_plugin_with_memory_above_cap",
- "community": 4,
+ "community": 7,
"norm_label": "test_rejects_plugin_with_memory_above_cap()"
},
{
@@ -16848,7 +17109,7 @@
"source_file": "tests/unit/plugins/test_registry.py",
"source_location": "L220",
"id": "plugins_test_registry_test_rejects_supported_extensions_when_not_a_list_of_strings",
- "community": 4,
+ "community": 7,
"norm_label": "test_rejects_supported_extensions_when_not_a_list_of_strings()"
},
{
@@ -16857,7 +17118,7 @@
"source_file": "tests/unit/plugins/test_registry.py",
"source_location": "L238",
"id": "plugins_test_registry_test_rejects_network_plugin_when_allow_network_false",
- "community": 4,
+ "community": 7,
"norm_label": "test_rejects_network_plugin_when_allow_network_false()"
},
{
@@ -16866,7 +17127,7 @@
"source_file": "tests/unit/plugins/test_registry.py",
"source_location": "L247",
"id": "plugins_test_registry_test_loads_network_plugin_when_allow_network_true",
- "community": 4,
+ "community": 7,
"norm_label": "test_loads_network_plugin_when_allow_network_true()"
},
{
@@ -16875,7 +17136,7 @@
"source_file": "tests/unit/plugins/test_registry.py",
"source_location": "L263",
"id": "plugins_test_registry_test_lab_dir_wins_on_name_collision",
- "community": 4,
+ "community": 7,
"norm_label": "test_lab_dir_wins_on_name_collision()"
},
{
@@ -16884,7 +17145,7 @@
"source_file": "tests/unit/plugins/test_registry.py",
"source_location": "L278",
"id": "plugins_test_registry_test_bundled_only_when_no_lab_collision",
- "community": 4,
+ "community": 7,
"norm_label": "test_bundled_only_when_no_lab_collision()"
},
{
@@ -16893,7 +17154,7 @@
"source_file": "tests/unit/plugins/test_registry.py",
"source_location": "L292",
"id": "plugins_test_registry_test_lab_only_plugins_are_loaded_too",
- "community": 4,
+ "community": 7,
"norm_label": "test_lab_only_plugins_are_loaded_too()"
},
{
@@ -16902,7 +17163,7 @@
"source_file": "tests/unit/plugins/test_registry.py",
"source_location": "L311",
"id": "plugins_test_registry_test_reload_replaces_previous_state",
- "community": 4,
+ "community": 7,
"norm_label": "test_reload_replaces_previous_state()"
},
{
@@ -16911,7 +17172,7 @@
"source_file": "tests/unit/plugins/test_registry.py",
"source_location": "L326",
"id": "plugins_test_registry_test_reload_returns_registry_report_dataclass",
- "community": 4,
+ "community": 7,
"norm_label": "test_reload_returns_registry_report_dataclass()"
},
{
@@ -16920,7 +17181,7 @@
"source_file": "tests/unit/plugins/test_registry.py",
"source_location": "L340",
"id": "plugins_test_registry_test_get_returns_none_for_unknown_plugin",
- "community": 4,
+ "community": 7,
"norm_label": "test_get_returns_none_for_unknown_plugin()"
},
{
@@ -16929,7 +17190,7 @@
"source_file": "tests/unit/plugins/test_registry.py",
"source_location": "L346",
"id": "plugins_test_registry_test_list_all_returns_records_sorted_by_name",
- "community": 4,
+ "community": 7,
"norm_label": "test_list_all_returns_records_sorted_by_name()"
},
{
@@ -16938,7 +17199,7 @@
"source_file": "tests/unit/plugins/test_registry.py",
"source_location": "L357",
"id": "plugins_test_registry_test_list_all_returns_record_instances",
- "community": 4,
+ "community": 7,
"norm_label": "test_list_all_returns_record_instances()"
},
{
@@ -16947,7 +17208,7 @@
"source_file": "tests/unit/plugins/test_registry.py",
"source_location": "L372",
"id": "plugins_test_registry_test_candidates_for_matches_by_extension",
- "community": 4,
+ "community": 7,
"norm_label": "test_candidates_for_matches_by_extension()"
},
{
@@ -16956,7 +17217,7 @@
"source_file": "tests/unit/plugins/test_registry.py",
"source_location": "L392",
"id": "plugins_test_registry_test_candidates_for_excludes_plugins_with_zero_matches",
- "community": 4,
+ "community": 7,
"norm_label": "test_candidates_for_excludes_plugins_with_zero_matches()"
},
{
@@ -16965,7 +17226,7 @@
"source_file": "tests/unit/plugins/test_registry.py",
"source_location": "L402",
"id": "plugins_test_registry_test_candidates_for_returns_pluginplan_instances",
- "community": 4,
+ "community": 7,
"norm_label": "test_candidates_for_returns_pluginplan_instances()"
},
{
@@ -16974,7 +17235,7 @@
"source_file": "tests/unit/plugins/test_registry.py",
"source_location": "L414",
"id": "plugins_test_registry_test_candidates_for_supports_multi_extension_plugin",
- "community": 4,
+ "community": 7,
"norm_label": "test_candidates_for_supports_multi_extension_plugin()"
},
{
@@ -16983,7 +17244,7 @@
"source_file": "tests/unit/plugins/test_registry.py",
"source_location": "L430",
"id": "plugins_test_registry_test_registry_with_no_dirs_loads_nothing",
- "community": 4,
+ "community": 7,
"norm_label": "test_registry_with_no_dirs_loads_nothing()"
},
{
@@ -16992,7 +17253,7 @@
"source_file": "tests/unit/plugins/test_registry.py",
"source_location": "L438",
"id": "plugins_test_registry_test_registry_skips_files_in_root",
- "community": 4,
+ "community": 7,
"norm_label": "test_registry_skips_files_in_root()"
},
{
@@ -17001,7 +17262,7 @@
"source_file": "tests/unit/plugins/test_registry.py",
"source_location": "L450",
"id": "plugins_test_registry_test_registry_handles_nonexistent_dir",
- "community": 4,
+ "community": 7,
"norm_label": "test_registry_handles_nonexistent_dir()"
},
{
@@ -17010,7 +17271,7 @@
"source_file": "tests/unit/plugins/test_registry.py",
"source_location": "L465",
"id": "plugins_test_registry_test_registry_accepts_isolation_at_cap_boundary",
- "community": 4,
+ "community": 7,
"norm_label": "test_registry_accepts_isolation_at_cap_boundary()"
},
{
@@ -17019,7 +17280,7 @@
"source_file": "tests/unit/plugins/test_registry.py",
"source_location": "L473",
"id": "plugins_test_registry_test_pluginplan_dataclass_shape",
- "community": 4,
+ "community": 7,
"norm_label": "test_pluginplan_dataclass_shape()"
},
{
@@ -17028,7 +17289,7 @@
"source_file": "tests/unit/plugins/test_registry.py",
"source_location": "L484",
"id": "plugins_test_registry_test_pluginrecord_dataclass_shape",
- "community": 4,
+ "community": 7,
"norm_label": "test_pluginrecord_dataclass_shape()"
},
{
@@ -17037,7 +17298,7 @@
"source_file": "tests/unit/plugins/test_registry.py",
"source_location": "L1",
"id": "plugins_test_registry_rationale_1",
- "community": 4,
+ "community": 7,
"norm_label": "tests for ``exlab_wizard.plugins.registry`` -- manifest-driven discovery. pin t"
},
{
@@ -17046,7 +17307,7 @@
"source_file": "tests/unit/plugins/test_registry.py",
"source_location": "L50",
"id": "plugins_test_registry_rationale_50",
- "community": 4,
+ "community": 7,
"norm_label": "write a minimal plugin scaffold and return the plugin directory."
},
{
@@ -17055,7 +17316,7 @@
"source_file": "tests/unit/plugins/test_registry.py",
"source_location": "L439",
"id": "plugins_test_registry_rationale_439",
- "community": 4,
+ "community": 7,
"norm_label": "a non-directory entry inside the plugin root must be ignored, not crashed on."
},
{
@@ -17064,7 +17325,7 @@
"source_file": "tests/unit/plugins/test_registry.py",
"source_location": "L451",
"id": "plugins_test_registry_rationale_451",
- "community": 4,
+ "community": 7,
"norm_label": "a configured plugin root that doesn't exist is treated as empty (no crash)."
},
{
@@ -17073,7 +17334,7 @@
"source_file": "tests/unit/plugins/test_registry.py",
"source_location": "L474",
"id": "plugins_test_registry_rationale_474",
- "community": 4,
+ "community": 7,
"norm_label": "pluginplan exposes ``record`` and ``matching_files`` as named attributes."
},
{
@@ -17082,7 +17343,7 @@
"source_file": "tests/unit/plugins/__init__.py",
"source_location": "L1",
"id": "tests_unit_plugins_init_py",
- "community": 371,
+ "community": 374,
"norm_label": "__init__.py"
},
{
@@ -17091,7 +17352,7 @@
"source_file": "src/exlab_wizard/plugins/__init__.py",
"source_location": "L1",
"id": "plugins_init_rationale_1",
- "community": 371,
+ "community": 374,
"norm_label": "plugins package. backend spec \u00a76. re-exports the public plugin contract surface"
},
{
@@ -17100,7 +17361,7 @@
"source_file": "tests/unit/plugins/test_base.py",
"source_location": "L1",
"id": "tests_unit_plugins_test_base_py",
- "community": 85,
+ "community": 149,
"norm_label": "test_base.py"
},
{
@@ -17109,7 +17370,7 @@
"source_file": "tests/unit/plugins/test_base.py",
"source_location": "L34",
"id": "plugins_test_base_minimalplugin",
- "community": 85,
+ "community": 149,
"norm_label": "_minimalplugin"
},
{
@@ -17118,7 +17379,7 @@
"source_file": "",
"source_location": "",
"id": "plugin",
- "community": 85,
+ "community": 277,
"norm_label": "plugin"
},
{
@@ -17127,7 +17388,7 @@
"source_file": "tests/unit/plugins/test_base.py",
"source_location": "L42",
"id": "plugins_test_base_minimalplugin_can_handle",
- "community": 85,
+ "community": 149,
"norm_label": ".can_handle()"
},
{
@@ -17136,7 +17397,7 @@
"source_file": "tests/unit/plugins/test_base.py",
"source_location": "L45",
"id": "plugins_test_base_minimalplugin_transform",
- "community": 85,
+ "community": 149,
"norm_label": ".transform()"
},
{
@@ -17145,7 +17406,7 @@
"source_file": "tests/unit/plugins/test_base.py",
"source_location": "L49",
"id": "plugins_test_base_make_ctx",
- "community": 85,
+ "community": 149,
"norm_label": "_make_ctx()"
},
{
@@ -17154,7 +17415,7 @@
"source_file": "tests/unit/plugins/test_base.py",
"source_location": "L71",
"id": "plugins_test_base_test_plugin_abc_cannot_be_instantiated_directly",
- "community": 85,
+ "community": 277,
"norm_label": "test_plugin_abc_cannot_be_instantiated_directly()"
},
{
@@ -17163,7 +17424,7 @@
"source_file": "tests/unit/plugins/test_base.py",
"source_location": "L76",
"id": "plugins_test_base_test_plugin_subclass_missing_can_handle_is_abstract",
- "community": 85,
+ "community": 149,
"norm_label": "test_plugin_subclass_missing_can_handle_is_abstract()"
},
{
@@ -17172,7 +17433,7 @@
"source_file": "tests/unit/plugins/test_base.py",
"source_location": "L89",
"id": "plugins_test_base_test_plugin_subclass_missing_transform_is_abstract",
- "community": 85,
+ "community": 149,
"norm_label": "test_plugin_subclass_missing_transform_is_abstract()"
},
{
@@ -17181,7 +17442,7 @@
"source_file": "tests/unit/plugins/test_base.py",
"source_location": "L102",
"id": "plugins_test_base_test_minimal_plugin_can_be_instantiated",
- "community": 85,
+ "community": 149,
"norm_label": "test_minimal_plugin_can_be_instantiated()"
},
{
@@ -17190,7 +17451,7 @@
"source_file": "tests/unit/plugins/test_base.py",
"source_location": "L113",
"id": "plugins_test_base_test_default_validate_variables_returns_empty_when_no_required",
- "community": 85,
+ "community": 149,
"norm_label": "test_default_validate_variables_returns_empty_when_no_required()"
},
{
@@ -17199,7 +17460,7 @@
"source_file": "tests/unit/plugins/test_base.py",
"source_location": "L118",
"id": "plugins_test_base_test_default_validate_variables_reports_missing_required",
- "community": 85,
+ "community": 149,
"norm_label": "test_default_validate_variables_reports_missing_required()"
},
{
@@ -17208,7 +17469,7 @@
"source_file": "tests/unit/plugins/test_base.py",
"source_location": "L128",
"id": "plugins_test_base_test_default_validate_variables_reports_empty_string_as_missing",
- "community": 85,
+ "community": 530,
"norm_label": "test_default_validate_variables_reports_empty_string_as_missing()"
},
{
@@ -17217,7 +17478,7 @@
"source_file": "tests/unit/plugins/test_base.py",
"source_location": "L140",
"id": "plugins_test_base_test_default_validate_variables_lists_all_missing",
- "community": 85,
+ "community": 149,
"norm_label": "test_default_validate_variables_lists_all_missing()"
},
{
@@ -17226,7 +17487,7 @@
"source_file": "tests/unit/plugins/test_base.py",
"source_location": "L154",
"id": "plugins_test_base_test_pre_transform_all_default_is_noop",
- "community": 85,
+ "community": 149,
"norm_label": "test_pre_transform_all_default_is_noop()"
},
{
@@ -17235,7 +17496,7 @@
"source_file": "tests/unit/plugins/test_base.py",
"source_location": "L160",
"id": "plugins_test_base_test_post_transform_all_default_is_noop",
- "community": 85,
+ "community": 149,
"norm_label": "test_post_transform_all_default_is_noop()"
},
{
@@ -17244,7 +17505,7 @@
"source_file": "tests/unit/plugins/test_base.py",
"source_location": "L166",
"id": "plugins_test_base_test_on_plugin_failure_default_is_noop",
- "community": 85,
+ "community": 149,
"norm_label": "test_on_plugin_failure_default_is_noop()"
},
{
@@ -17253,7 +17514,7 @@
"source_file": "tests/unit/plugins/test_base.py",
"source_location": "L173",
"id": "plugins_test_base_test_describe_changes_default_returns_single_modify_change",
- "community": 85,
+ "community": 149,
"norm_label": "test_describe_changes_default_returns_single_modify_change()"
},
{
@@ -17262,7 +17523,7 @@
"source_file": "tests/unit/plugins/test_base.py",
"source_location": "L189",
"id": "plugins_test_base_test_filechange_is_frozen_dataclass",
- "community": 58,
+ "community": 330,
"norm_label": "test_filechange_is_frozen_dataclass()"
},
{
@@ -17271,7 +17532,7 @@
"source_file": "tests/unit/plugins/test_base.py",
"source_location": "L195",
"id": "plugins_test_base_test_filechange_default_detail_is_empty_dict",
- "community": 58,
+ "community": 330,
"norm_label": "test_filechange_default_detail_is_empty_dict()"
},
{
@@ -17280,7 +17541,7 @@
"source_file": "tests/unit/plugins/test_base.py",
"source_location": "L200",
"id": "plugins_test_base_test_filechange_accepts_detail_payload",
- "community": 58,
+ "community": 330,
"norm_label": "test_filechange_accepts_detail_payload()"
},
{
@@ -17289,7 +17550,7 @@
"source_file": "tests/unit/plugins/test_base.py",
"source_location": "L215",
"id": "plugins_test_base_test_plugincontext_is_frozen_dataclass",
- "community": 85,
+ "community": 149,
"norm_label": "test_plugincontext_is_frozen_dataclass()"
},
{
@@ -17298,7 +17559,7 @@
"source_file": "tests/unit/plugins/test_base.py",
"source_location": "L221",
"id": "plugins_test_base_test_plugincontext_carries_full_session_metadata",
- "community": 85,
+ "community": 149,
"norm_label": "test_plugincontext_carries_full_session_metadata()"
},
{
@@ -17307,7 +17568,7 @@
"source_file": "tests/unit/plugins/test_base.py",
"source_location": "L244",
"id": "plugins_test_base_test_pluginerror_reexport_is_canonical_class",
- "community": 85,
+ "community": 529,
"norm_label": "test_pluginerror_reexport_is_canonical_class()"
},
{
@@ -17316,7 +17577,7 @@
"source_file": "tests/unit/plugins/test_base.py",
"source_location": "L249",
"id": "plugins_test_base_test_plugininputrequired_reexport_is_canonical_class",
- "community": 85,
+ "community": 149,
"norm_label": "test_plugininputrequired_reexport_is_canonical_class()"
},
{
@@ -17325,7 +17586,7 @@
"source_file": "tests/unit/plugins/test_base.py",
"source_location": "L253",
"id": "plugins_test_base_test_plugininputrequired_carries_fields_and_reason",
- "community": 85,
+ "community": 15,
"norm_label": "test_plugininputrequired_carries_fields_and_reason()"
},
{
@@ -17334,7 +17595,7 @@
"source_file": "tests/unit/plugins/test_base.py",
"source_location": "L266",
"id": "plugins_test_base_test_plugin_api_version_defaults_to_one",
- "community": 85,
+ "community": 531,
"norm_label": "test_plugin_api_version_defaults_to_one()"
},
{
@@ -17343,7 +17604,7 @@
"source_file": "tests/unit/plugins/test_base.py",
"source_location": "L271",
"id": "plugins_test_base_test_plugin_required_variables_default_is_empty_list",
- "community": 85,
+ "community": 149,
"norm_label": "test_plugin_required_variables_default_is_empty_list()"
},
{
@@ -17352,7 +17613,7 @@
"source_file": "tests/unit/plugins/test_base.py",
"source_location": "L275",
"id": "plugins_test_base_test_plugin_optional_variables_default_is_empty_list",
- "community": 85,
+ "community": 149,
"norm_label": "test_plugin_optional_variables_default_is_empty_list()"
},
{
@@ -17361,7 +17622,7 @@
"source_file": "tests/unit/plugins/test_base.py",
"source_location": "L1",
"id": "plugins_test_base_rationale_1",
- "community": 85,
+ "community": 149,
"norm_label": "tests for ``exlab_wizard.plugins.base`` -- the plugin contract base class. pin"
},
{
@@ -17370,7 +17631,7 @@
"source_file": "tests/unit/plugins/test_base.py",
"source_location": "L35",
"id": "plugins_test_base_rationale_35",
- "community": 85,
+ "community": 149,
"norm_label": "concrete subclass with only the two abstract methods implemented."
},
{
@@ -17379,7 +17640,7 @@
"source_file": "tests/unit/plugins/test_base.py",
"source_location": "L103",
"id": "plugins_test_base_rationale_103",
- "community": 85,
+ "community": 149,
"norm_label": "a subclass with both abstract methods implemented is instantiable."
},
{
@@ -17388,7 +17649,7 @@
"source_file": "tests/unit/plugins/test_base.py",
"source_location": "L129",
"id": "plugins_test_base_rationale_129",
- "community": 85,
+ "community": 530,
"norm_label": "an empty string is treated as a missing value (per spec: 'missing or empty')."
},
{
@@ -17397,7 +17658,7 @@
"source_file": "tests/unit/plugins/test_base.py",
"source_location": "L245",
"id": "plugins_test_base_rationale_245",
- "community": 85,
+ "community": 529,
"norm_label": "the plugins package re-exports the same class object as ``errors``."
},
{
@@ -17406,7 +17667,7 @@
"source_file": "tests/unit/plugins/test_base.py",
"source_location": "L254",
"id": "plugins_test_base_rationale_254",
- "community": 85,
+ "community": 15,
"norm_label": "plugininputrequired stores both the field list and the operator-readable reason."
},
{
@@ -17415,7 +17676,7 @@
"source_file": "tests/unit/plugins/test_base.py",
"source_location": "L267",
"id": "plugins_test_base_rationale_267",
- "community": 85,
+ "community": 531,
"norm_label": "the class-level api_version default matches the host's current version."
},
{
@@ -17424,7 +17685,7 @@
"source_file": "tests/unit/plugins/test_logger.py",
"source_location": "L1",
"id": "tests_unit_plugins_test_logger_py",
- "community": 44,
+ "community": 20,
"norm_label": "test_logger.py"
},
{
@@ -17433,7 +17694,7 @@
"source_file": "tests/unit/plugins/test_logger.py",
"source_location": "L33",
"id": "plugins_test_logger_test_host_plugin_logger_forwards_info_to_stdlib_logger",
- "community": 44,
+ "community": 20,
"norm_label": "test_host_plugin_logger_forwards_info_to_stdlib_logger()"
},
{
@@ -17442,7 +17703,7 @@
"source_file": "tests/unit/plugins/test_logger.py",
"source_location": "L44",
"id": "plugins_test_logger_test_host_plugin_logger_forwards_debug",
- "community": 44,
+ "community": 20,
"norm_label": "test_host_plugin_logger_forwards_debug()"
},
{
@@ -17451,7 +17712,7 @@
"source_file": "tests/unit/plugins/test_logger.py",
"source_location": "L51",
"id": "plugins_test_logger_test_host_plugin_logger_forwards_warning",
- "community": 44,
+ "community": 20,
"norm_label": "test_host_plugin_logger_forwards_warning()"
},
{
@@ -17460,7 +17721,7 @@
"source_file": "tests/unit/plugins/test_logger.py",
"source_location": "L58",
"id": "plugins_test_logger_test_host_plugin_logger_forwards_error",
- "community": 44,
+ "community": 20,
"norm_label": "test_host_plugin_logger_forwards_error()"
},
{
@@ -17469,7 +17730,7 @@
"source_file": "tests/unit/plugins/test_logger.py",
"source_location": "L65",
"id": "plugins_test_logger_test_host_plugin_logger_passes_structured_fields_via_extra",
- "community": 44,
+ "community": 20,
"norm_label": "test_host_plugin_logger_passes_structured_fields_via_extra()"
},
{
@@ -17478,7 +17739,7 @@
"source_file": "tests/unit/plugins/test_logger.py",
"source_location": "L77",
"id": "plugins_test_logger_test_host_plugin_logger_uses_default_logger_name_when_unspecified",
- "community": 44,
+ "community": 20,
"norm_label": "test_host_plugin_logger_uses_default_logger_name_when_unspecified()"
},
{
@@ -17487,7 +17748,7 @@
"source_file": "tests/unit/plugins/test_logger.py",
"source_location": "L94",
"id": "plugins_test_logger_test_worker_plugin_logger_emits_json_frame_to_stream",
- "community": 44,
+ "community": 20,
"norm_label": "test_worker_plugin_logger_emits_json_frame_to_stream()"
},
{
@@ -17496,7 +17757,7 @@
"source_file": "tests/unit/plugins/test_logger.py",
"source_location": "L106",
"id": "plugins_test_logger_test_worker_plugin_logger_each_level_emits_correct_level_string",
- "community": 44,
+ "community": 20,
"norm_label": "test_worker_plugin_logger_each_level_emits_correct_level_string()"
},
{
@@ -17505,7 +17766,7 @@
"source_file": "tests/unit/plugins/test_logger.py",
"source_location": "L119",
"id": "plugins_test_logger_test_worker_plugin_logger_emits_one_frame_per_call",
- "community": 44,
+ "community": 20,
"norm_label": "test_worker_plugin_logger_emits_one_frame_per_call()"
},
{
@@ -17514,7 +17775,7 @@
"source_file": "tests/unit/plugins/test_logger.py",
"source_location": "L129",
"id": "plugins_test_logger_test_worker_plugin_logger_emits_empty_context_when_no_fields",
- "community": 44,
+ "community": 20,
"norm_label": "test_worker_plugin_logger_emits_empty_context_when_no_fields()"
},
{
@@ -17523,7 +17784,7 @@
"source_file": "tests/unit/plugins/test_logger.py",
"source_location": "L137",
"id": "plugins_test_logger_test_worker_plugin_logger_default_stream_is_stderr",
- "community": 44,
+ "community": 20,
"norm_label": "test_worker_plugin_logger_default_stream_is_stderr()"
},
{
@@ -17532,7 +17793,7 @@
"source_file": "tests/unit/plugins/test_logger.py",
"source_location": "L153",
"id": "plugins_test_logger_test_plugin_log_frame_fields_are_pinned",
- "community": 44,
+ "community": 20,
"norm_label": "test_plugin_log_frame_fields_are_pinned()"
},
{
@@ -17541,7 +17802,7 @@
"source_file": "tests/unit/plugins/test_logger.py",
"source_location": "L160",
"id": "plugins_test_logger_test_plugin_log_frame_default_context_is_empty_dict",
- "community": 44,
+ "community": 20,
"norm_label": "test_plugin_log_frame_default_context_is_empty_dict()"
},
{
@@ -17550,7 +17811,7 @@
"source_file": "tests/unit/plugins/test_logger.py",
"source_location": "L1",
"id": "plugins_test_logger_rationale_1",
- "community": 44,
+ "community": 20,
"norm_label": "tests for ``exlab_wizard.plugins.logger`` -- structured plugin log shim. pin bo"
},
{
@@ -17559,7 +17820,7 @@
"source_file": "tests/unit/plugins/test_logger.py",
"source_location": "L68",
"id": "plugins_test_logger_rationale_68",
- "community": 44,
+ "community": 20,
"norm_label": "structured ``**fields`` arrive on the logrecord as ``record.context``."
},
{
@@ -17568,7 +17829,7 @@
"source_file": "tests/unit/plugins/test_logger.py",
"source_location": "L80",
"id": "plugins_test_logger_rationale_80",
- "community": 44,
+ "community": 20,
"norm_label": "construction without ``name`` falls back to ``exlab_wizard.plugins``."
},
{
@@ -17577,7 +17838,7 @@
"source_file": "tests/unit/plugins/test_logger.py",
"source_location": "L138",
"id": "plugins_test_logger_rationale_138",
- "community": 44,
+ "community": 20,
"norm_label": "without an explicit stream, the worker writes to ``sys.stderr``."
},
{
@@ -17586,7 +17847,7 @@
"source_file": "tests/unit/constants/test_schema_versions.py",
"source_location": "L1",
"id": "tests_unit_constants_test_schema_versions_py",
- "community": 264,
+ "community": 269,
"norm_label": "test_schema_versions.py"
},
{
@@ -17595,7 +17856,7 @@
"source_file": "tests/unit/constants/test_schema_versions.py",
"source_location": "L13",
"id": "constants_test_schema_versions_test_creation_json_version_is_pinned",
- "community": 264,
+ "community": 269,
"norm_label": "test_creation_json_version_is_pinned()"
},
{
@@ -17604,7 +17865,7 @@
"source_file": "tests/unit/constants/test_schema_versions.py",
"source_location": "L18",
"id": "constants_test_schema_versions_test_readme_fields_json_version_is_pinned",
- "community": 264,
+ "community": 269,
"norm_label": "test_readme_fields_json_version_is_pinned()"
},
{
@@ -17613,7 +17874,7 @@
"source_file": "tests/unit/constants/test_schema_versions.py",
"source_location": "L23",
"id": "constants_test_schema_versions_test_sync_state_json_version_is_pinned",
- "community": 264,
+ "community": 269,
"norm_label": "test_sync_state_json_version_is_pinned()"
},
{
@@ -17622,7 +17883,7 @@
"source_file": "tests/unit/constants/test_schema_versions.py",
"source_location": "L28",
"id": "constants_test_schema_versions_test_equipment_json_version_is_pinned",
- "community": 264,
+ "community": 269,
"norm_label": "test_equipment_json_version_is_pinned()"
},
{
@@ -17631,7 +17892,7 @@
"source_file": "tests/unit/constants/test_schema_versions.py",
"source_location": "L33",
"id": "constants_test_schema_versions_test_test_runs_json_version_is_pinned",
- "community": 264,
+ "community": 269,
"norm_label": "test_test_runs_json_version_is_pinned()"
},
{
@@ -17640,7 +17901,7 @@
"source_file": "tests/unit/constants/test_schema_versions.py",
"source_location": "L38",
"id": "constants_test_schema_versions_test_offline_catalogue_version_is_pinned",
- "community": 264,
+ "community": 269,
"norm_label": "test_offline_catalogue_version_is_pinned()"
},
{
@@ -17649,7 +17910,7 @@
"source_file": "tests/unit/constants/test_schema_versions.py",
"source_location": "L43",
"id": "constants_test_schema_versions_test_readme_front_matter_schema_version_is_pinned",
- "community": 264,
+ "community": 269,
"norm_label": "test_readme_front_matter_schema_version_is_pinned()"
},
{
@@ -17658,7 +17919,7 @@
"source_file": "tests/unit/constants/test_schema_versions.py",
"source_location": "L48",
"id": "constants_test_schema_versions_test_all_schema_versions_are_strings",
- "community": 264,
+ "community": 269,
"norm_label": "test_all_schema_versions_are_strings()"
},
{
@@ -17667,7 +17928,7 @@
"source_file": "tests/unit/constants/test_schema_versions.py",
"source_location": "L63",
"id": "constants_test_schema_versions_test_schema_versions_re_exported_from_package",
- "community": 264,
+ "community": 269,
"norm_label": "test_schema_versions_re_exported_from_package()"
},
{
@@ -17676,7 +17937,7 @@
"source_file": "tests/unit/constants/test_schema_versions.py",
"source_location": "L1",
"id": "constants_test_schema_versions_rationale_1",
- "community": 264,
+ "community": 269,
"norm_label": "verify the literal values pinned in ``schema_versions``. each schema-version co"
},
{
@@ -17685,7 +17946,7 @@
"source_file": "tests/unit/constants/test_patterns.py",
"source_location": "L1",
"id": "tests_unit_constants_test_patterns_py",
- "community": 50,
+ "community": 62,
"norm_label": "test_patterns.py"
},
{
@@ -17694,7 +17955,7 @@
"source_file": "tests/unit/constants/test_patterns.py",
"source_location": "L19",
"id": "constants_test_patterns_test_equipment_id_regex_literal",
- "community": 50,
+ "community": 62,
"norm_label": "test_equipment_id_regex_literal()"
},
{
@@ -17703,7 +17964,7 @@
"source_file": "tests/unit/constants/test_patterns.py",
"source_location": "L23",
"id": "constants_test_patterns_test_equipment_id_pattern_is_compiled",
- "community": 50,
+ "community": 62,
"norm_label": "test_equipment_id_pattern_is_compiled()"
},
{
@@ -17712,7 +17973,7 @@
"source_file": "tests/unit/constants/test_patterns.py",
"source_location": "L28",
"id": "constants_test_patterns_test_equipment_id_pattern_accepts_valid_ids",
- "community": 50,
+ "community": 62,
"norm_label": "test_equipment_id_pattern_accepts_valid_ids()"
},
{
@@ -17721,7 +17982,7 @@
"source_file": "tests/unit/constants/test_patterns.py",
"source_location": "L41",
"id": "constants_test_patterns_test_equipment_id_pattern_rejects_invalid_ids",
- "community": 50,
+ "community": 62,
"norm_label": "test_equipment_id_pattern_rejects_invalid_ids()"
},
{
@@ -17730,7 +17991,7 @@
"source_file": "tests/unit/constants/test_patterns.py",
"source_location": "L56",
"id": "constants_test_patterns_test_equipment_id_max_length",
- "community": 50,
+ "community": 62,
"norm_label": "test_equipment_id_max_length()"
},
{
@@ -17739,7 +18000,7 @@
"source_file": "tests/unit/constants/test_patterns.py",
"source_location": "L66",
"id": "constants_test_patterns_test_placeholder_angle_bracket_regex_literal",
- "community": 50,
+ "community": 62,
"norm_label": "test_placeholder_angle_bracket_regex_literal()"
},
{
@@ -17748,7 +18009,7 @@
"source_file": "tests/unit/constants/test_patterns.py",
"source_location": "L70",
"id": "constants_test_patterns_test_placeholder_angle_bracket_pattern_finds_tokens",
- "community": 50,
+ "community": 62,
"norm_label": "test_placeholder_angle_bracket_pattern_finds_tokens()"
},
{
@@ -17757,7 +18018,7 @@
"source_file": "tests/unit/constants/test_patterns.py",
"source_location": "L76",
"id": "constants_test_patterns_test_placeholder_angle_bracket_pattern_ignores_non_tokens",
- "community": 50,
+ "community": 62,
"norm_label": "test_placeholder_angle_bracket_pattern_ignores_non_tokens()"
},
{
@@ -17766,7 +18027,7 @@
"source_file": "tests/unit/constants/test_patterns.py",
"source_location": "L83",
"id": "constants_test_patterns_test_placeholder_jinja_var_regex_literal",
- "community": 50,
+ "community": 62,
"norm_label": "test_placeholder_jinja_var_regex_literal()"
},
{
@@ -17775,7 +18036,7 @@
"source_file": "tests/unit/constants/test_patterns.py",
"source_location": "L87",
"id": "constants_test_patterns_test_placeholder_jinja_var_pattern_finds_markers",
- "community": 50,
+ "community": 62,
"norm_label": "test_placeholder_jinja_var_pattern_finds_markers()"
},
{
@@ -17784,7 +18045,7 @@
"source_file": "tests/unit/constants/test_patterns.py",
"source_location": "L93",
"id": "constants_test_patterns_test_placeholder_jinja_var_pattern_ignores_plain_text",
- "community": 50,
+ "community": 62,
"norm_label": "test_placeholder_jinja_var_pattern_ignores_plain_text()"
},
{
@@ -17793,7 +18054,7 @@
"source_file": "tests/unit/constants/test_patterns.py",
"source_location": "L98",
"id": "constants_test_patterns_test_placeholder_jinja_block_regex_literal",
- "community": 50,
+ "community": 62,
"norm_label": "test_placeholder_jinja_block_regex_literal()"
},
{
@@ -17802,7 +18063,7 @@
"source_file": "tests/unit/constants/test_patterns.py",
"source_location": "L102",
"id": "constants_test_patterns_test_placeholder_jinja_block_pattern_finds_blocks",
- "community": 50,
+ "community": 62,
"norm_label": "test_placeholder_jinja_block_pattern_finds_blocks()"
},
{
@@ -17811,7 +18072,7 @@
"source_file": "tests/unit/constants/test_patterns.py",
"source_location": "L108",
"id": "constants_test_patterns_test_placeholder_jinja_block_pattern_ignores_unrelated_content",
- "community": 50,
+ "community": 62,
"norm_label": "test_placeholder_jinja_block_pattern_ignores_unrelated_content()"
},
{
@@ -17820,7 +18081,7 @@
"source_file": "tests/unit/constants/test_patterns.py",
"source_location": "L117",
"id": "constants_test_patterns_test_project_short_id_regex_literal",
- "community": 50,
+ "community": 62,
"norm_label": "test_project_short_id_regex_literal()"
},
{
@@ -17829,7 +18090,7 @@
"source_file": "tests/unit/constants/test_patterns.py",
"source_location": "L121",
"id": "constants_test_patterns_test_project_short_id_pattern_accepts",
- "community": 50,
+ "community": 62,
"norm_label": "test_project_short_id_pattern_accepts()"
},
{
@@ -17838,7 +18099,7 @@
"source_file": "tests/unit/constants/test_patterns.py",
"source_location": "L126",
"id": "constants_test_patterns_test_project_short_id_pattern_rejects",
- "community": 50,
+ "community": 62,
"norm_label": "test_project_short_id_pattern_rejects()"
},
{
@@ -17847,7 +18108,7 @@
"source_file": "tests/unit/constants/test_patterns.py",
"source_location": "L137",
"id": "constants_test_patterns_test_template_question_id_regex_literal",
- "community": 50,
+ "community": 62,
"norm_label": "test_template_question_id_regex_literal()"
},
{
@@ -17856,7 +18117,7 @@
"source_file": "tests/unit/constants/test_patterns.py",
"source_location": "L141",
"id": "constants_test_patterns_test_template_question_id_pattern_accepts",
- "community": 50,
+ "community": 62,
"norm_label": "test_template_question_id_pattern_accepts()"
},
{
@@ -17865,7 +18126,7 @@
"source_file": "tests/unit/constants/test_patterns.py",
"source_location": "L146",
"id": "constants_test_patterns_test_template_question_id_pattern_rejects",
- "community": 50,
+ "community": 62,
"norm_label": "test_template_question_id_pattern_rejects()"
},
{
@@ -17874,7 +18135,7 @@
"source_file": "tests/unit/constants/test_patterns.py",
"source_location": "L156",
"id": "constants_test_patterns_test_plugin_name_regex_literal",
- "community": 50,
+ "community": 62,
"norm_label": "test_plugin_name_regex_literal()"
},
{
@@ -17883,7 +18144,7 @@
"source_file": "tests/unit/constants/test_patterns.py",
"source_location": "L160",
"id": "constants_test_patterns_test_plugin_name_pattern_accepts",
- "community": 50,
+ "community": 62,
"norm_label": "test_plugin_name_pattern_accepts()"
},
{
@@ -17892,7 +18153,7 @@
"source_file": "tests/unit/constants/test_patterns.py",
"source_location": "L165",
"id": "constants_test_patterns_test_plugin_name_pattern_rejects",
- "community": 50,
+ "community": 62,
"norm_label": "test_plugin_name_pattern_rejects()"
},
{
@@ -17901,7 +18162,7 @@
"source_file": "tests/unit/constants/test_patterns.py",
"source_location": "L175",
"id": "constants_test_patterns_test_run_date_strftime_literal",
- "community": 50,
+ "community": 62,
"norm_label": "test_run_date_strftime_literal()"
},
{
@@ -17910,7 +18171,7 @@
"source_file": "tests/unit/constants/test_patterns.py",
"source_location": "L181",
"id": "constants_test_patterns_test_run_date_strftime_round_trip",
- "community": 50,
+ "community": 62,
"norm_label": "test_run_date_strftime_round_trip()"
},
{
@@ -17919,7 +18180,7 @@
"source_file": "tests/unit/constants/test_patterns.py",
"source_location": "L193",
"id": "constants_test_patterns_test_run_dir_prefix_literal",
- "community": 50,
+ "community": 62,
"norm_label": "test_run_dir_prefix_literal()"
},
{
@@ -17928,7 +18189,7 @@
"source_file": "tests/unit/constants/test_patterns.py",
"source_location": "L197",
"id": "constants_test_patterns_test_test_run_dir_prefix_literal",
- "community": 50,
+ "community": 62,
"norm_label": "test_test_run_dir_prefix_literal()"
},
{
@@ -17937,7 +18198,7 @@
"source_file": "tests/unit/constants/test_patterns.py",
"source_location": "L201",
"id": "constants_test_patterns_test_test_runs_dir_name_literal",
- "community": 50,
+ "community": 62,
"norm_label": "test_test_runs_dir_name_literal()"
},
{
@@ -17946,7 +18207,7 @@
"source_file": "tests/unit/constants/test_patterns.py",
"source_location": "L210",
"id": "constants_test_patterns_test_windows_reserved_names_membership",
- "community": 50,
+ "community": 62,
"norm_label": "test_windows_reserved_names_membership()"
},
{
@@ -17955,7 +18216,7 @@
"source_file": "tests/unit/constants/test_patterns.py",
"source_location": "L220",
"id": "constants_test_patterns_test_windows_reserved_names_is_frozenset",
- "community": 50,
+ "community": 62,
"norm_label": "test_windows_reserved_names_is_frozenset()"
},
{
@@ -17964,7 +18225,7 @@
"source_file": "tests/unit/constants/test_patterns.py",
"source_location": "L224",
"id": "constants_test_patterns_test_windows_reserved_names_size",
- "community": 50,
+ "community": 62,
"norm_label": "test_windows_reserved_names_size()"
},
{
@@ -17973,7 +18234,7 @@
"source_file": "tests/unit/constants/test_patterns.py",
"source_location": "L229",
"id": "constants_test_patterns_test_windows_reserved_names_are_uppercase",
- "community": 50,
+ "community": 62,
"norm_label": "test_windows_reserved_names_are_uppercase()"
},
{
@@ -17982,7 +18243,7 @@
"source_file": "tests/unit/constants/test_patterns.py",
"source_location": "L236",
"id": "constants_test_patterns_test_windows_reserved_names_case_insensitive_check",
- "community": 50,
+ "community": 62,
"norm_label": "test_windows_reserved_names_case_insensitive_check()"
},
{
@@ -17991,7 +18252,7 @@
"source_file": "tests/unit/constants/test_patterns.py",
"source_location": "L248",
"id": "constants_test_patterns_test_windows_illegal_chars_literal",
- "community": 50,
+ "community": 62,
"norm_label": "test_windows_illegal_chars_literal()"
},
{
@@ -18000,7 +18261,7 @@
"source_file": "tests/unit/constants/test_patterns.py",
"source_location": "L253",
"id": "constants_test_patterns_test_windows_illegal_chars_membership",
- "community": 50,
+ "community": 62,
"norm_label": "test_windows_illegal_chars_membership()"
},
{
@@ -18009,7 +18270,7 @@
"source_file": "tests/unit/constants/test_patterns.py",
"source_location": "L258",
"id": "constants_test_patterns_test_windows_illegal_chars_excludes_safe",
- "community": 50,
+ "community": 62,
"norm_label": "test_windows_illegal_chars_excludes_safe()"
},
{
@@ -18018,7 +18279,7 @@
"source_file": "tests/unit/constants/test_patterns.py",
"source_location": "L268",
"id": "constants_test_patterns_test_patterns_re_exported_from_package",
- "community": 50,
+ "community": 62,
"norm_label": "test_patterns_re_exported_from_package()"
},
{
@@ -18027,7 +18288,7 @@
"source_file": "tests/unit/constants/test_patterns.py",
"source_location": "L1",
"id": "constants_test_patterns_rationale_1",
- "community": 50,
+ "community": 62,
"norm_label": "verify the regex literals plus filename-rule constants. each regex is exercised"
},
{
@@ -18036,7 +18297,7 @@
"source_file": "tests/unit/constants/__init__.py",
"source_location": "L1",
"id": "tests_unit_constants_init_py",
- "community": 439,
+ "community": 475,
"norm_label": "__init__.py"
},
{
@@ -18045,7 +18306,7 @@
"source_file": "src/exlab_wizard/constants/__init__.py",
"source_location": "L1",
"id": "constants_init_rationale_1",
- "community": 439,
+ "community": 475,
"norm_label": "public re-exports for the ``exlab_wizard.constants`` package. callers should im"
},
{
@@ -18054,7 +18315,7 @@
"source_file": "tests/unit/constants/test_enum_literal_alignment.py",
"source_location": "L1",
"id": "tests_unit_constants_test_enum_literal_alignment_py",
- "community": 440,
+ "community": 476,
"norm_label": "test_enum_literal_alignment.py"
},
{
@@ -18063,7 +18324,7 @@
"source_file": "tests/unit/constants/test_enum_literal_alignment.py",
"source_location": "L63",
"id": "constants_test_enum_literal_alignment_test_enum_values_match_expected_literal_set",
- "community": 440,
+ "community": 476,
"norm_label": "test_enum_values_match_expected_literal_set()"
},
{
@@ -18072,7 +18333,7 @@
"source_file": "tests/unit/constants/test_enum_literal_alignment.py",
"source_location": "L1",
"id": "constants_test_enum_literal_alignment_rationale_1",
- "community": 440,
+ "community": 476,
"norm_label": "assert that ``strenum`` value sets match their sibling ``literal`` aliases. per"
},
{
@@ -18081,7 +18342,7 @@
"source_file": "tests/unit/constants/test_enums.py",
"source_location": "L1",
"id": "tests_unit_constants_test_enums_py",
- "community": 63,
+ "community": 73,
"norm_label": "test_enums.py"
},
{
@@ -18090,7 +18351,7 @@
"source_file": "tests/unit/constants/test_enums.py",
"source_location": "L15",
"id": "constants_test_enums_test_run_kind_values",
- "community": 63,
+ "community": 73,
"norm_label": "test_run_kind_values()"
},
{
@@ -18099,7 +18360,7 @@
"source_file": "tests/unit/constants/test_enums.py",
"source_location": "L23",
"id": "constants_test_enums_test_run_kind_is_str",
- "community": 63,
+ "community": 73,
"norm_label": "test_run_kind_is_str()"
},
{
@@ -18108,7 +18369,7 @@
"source_file": "tests/unit/constants/test_enums.py",
"source_location": "L30",
"id": "constants_test_enums_test_sync_status_values",
- "community": 63,
+ "community": 73,
"norm_label": "test_sync_status_values()"
},
{
@@ -18117,7 +18378,7 @@
"source_file": "tests/unit/constants/test_enums.py",
"source_location": "L47",
"id": "constants_test_enums_test_tier_values",
- "community": 63,
+ "community": 73,
"norm_label": "test_tier_values()"
},
{
@@ -18126,7 +18387,7 @@
"source_file": "tests/unit/constants/test_enums.py",
"source_location": "L55",
"id": "constants_test_enums_test_problem_class_values",
- "community": 63,
+ "community": 73,
"norm_label": "test_problem_class_values()"
},
{
@@ -18135,7 +18396,7 @@
"source_file": "tests/unit/constants/test_enums.py",
"source_location": "L80",
"id": "constants_test_enums_test_finding_kind_values",
- "community": 63,
+ "community": 73,
"norm_label": "test_finding_kind_values()"
},
{
@@ -18144,7 +18405,7 @@
"source_file": "tests/unit/constants/test_enums.py",
"source_location": "L93",
"id": "constants_test_enums_test_template_type_values",
- "community": 63,
+ "community": 73,
"norm_label": "test_template_type_values()"
},
{
@@ -18153,7 +18414,7 @@
"source_file": "tests/unit/constants/test_enums.py",
"source_location": "L102",
"id": "constants_test_enums_test_run_scope_values",
- "community": 63,
+ "community": 73,
"norm_label": "test_run_scope_values()"
},
{
@@ -18162,7 +18423,7 @@
"source_file": "tests/unit/constants/test_enums.py",
"source_location": "L111",
"id": "constants_test_enums_test_lims_project_status_values_pascal_case",
- "community": 63,
+ "community": 73,
"norm_label": "test_lims_project_status_values_pascal_case()"
},
{
@@ -18171,7 +18432,7 @@
"source_file": "tests/unit/constants/test_enums.py",
"source_location": "L126",
"id": "constants_test_enums_test_lims_project_source_values",
- "community": 63,
+ "community": 73,
"norm_label": "test_lims_project_source_values()"
},
{
@@ -18180,7 +18441,7 @@
"source_file": "tests/unit/constants/test_enums.py",
"source_location": "L139",
"id": "constants_test_enums_test_ingest_state_enum_is_removed",
- "community": 63,
+ "community": 73,
"norm_label": "test_ingest_state_enum_is_removed()"
},
{
@@ -18189,7 +18450,7 @@
"source_file": "tests/unit/constants/test_enums.py",
"source_location": "L145",
"id": "constants_test_enums_test_run_sync_state_values",
- "community": 63,
+ "community": 73,
"norm_label": "test_run_sync_state_values()"
},
{
@@ -18198,7 +18459,7 @@
"source_file": "tests/unit/constants/test_enums.py",
"source_location": "L151",
"id": "constants_test_enums_test_setup_state_values",
- "community": 63,
+ "community": 73,
"norm_label": "test_setup_state_values()"
},
{
@@ -18207,7 +18468,7 @@
"source_file": "tests/unit/constants/test_enums.py",
"source_location": "L173",
"id": "constants_test_enums_test_nas_remote_setup_members_exist",
- "community": 63,
+ "community": 73,
"norm_label": "test_nas_remote_setup_members_exist()"
},
{
@@ -18216,7 +18477,7 @@
"source_file": "tests/unit/constants/test_enums.py",
"source_location": "L180",
"id": "constants_test_enums_test_transport_type_enum_removed",
- "community": 63,
+ "community": 73,
"norm_label": "test_transport_type_enum_removed()"
},
{
@@ -18225,7 +18486,7 @@
"source_file": "tests/unit/constants/test_enums.py",
"source_location": "L186",
"id": "constants_test_enums_test_completeness_signal_enum_removed",
- "community": 63,
+ "community": 73,
"norm_label": "test_completeness_signal_enum_removed()"
},
{
@@ -18234,7 +18495,7 @@
"source_file": "tests/unit/constants/test_enums.py",
"source_location": "L191",
"id": "constants_test_enums_test_staging_cleanup_mode_values",
- "community": 63,
+ "community": 73,
"norm_label": "test_staging_cleanup_mode_values()"
},
{
@@ -18243,7 +18504,7 @@
"source_file": "tests/unit/constants/test_enums.py",
"source_location": "L199",
"id": "constants_test_enums_test_plugin_status_values",
- "community": 63,
+ "community": 73,
"norm_label": "test_plugin_status_values()"
},
{
@@ -18252,7 +18513,7 @@
"source_file": "tests/unit/constants/test_enums.py",
"source_location": "L216",
"id": "constants_test_enums_test_creation_level_values",
- "community": 63,
+ "community": 73,
"norm_label": "test_creation_level_values()"
},
{
@@ -18261,7 +18522,7 @@
"source_file": "tests/unit/constants/test_enums.py",
"source_location": "L224",
"id": "constants_test_enums_test_field_type_values",
- "community": 63,
+ "community": 73,
"norm_label": "test_field_type_values()"
},
{
@@ -18270,7 +18531,7 @@
"source_file": "tests/unit/constants/test_enums.py",
"source_location": "L235",
"id": "constants_test_enums_test_bandwidth_day_values",
- "community": 63,
+ "community": 73,
"norm_label": "test_bandwidth_day_values()"
},
{
@@ -18279,7 +18540,7 @@
"source_file": "tests/unit/constants/test_enums.py",
"source_location": "L243",
"id": "constants_test_enums_test_session_kind_values",
- "community": 63,
+ "community": 73,
"norm_label": "test_session_kind_values()"
},
{
@@ -18288,7 +18549,7 @@
"source_file": "tests/unit/constants/test_enums.py",
"source_location": "L251",
"id": "constants_test_enums_test_next_action_values",
- "community": 63,
+ "community": 73,
"norm_label": "test_next_action_values()"
},
{
@@ -18297,7 +18558,7 @@
"source_file": "tests/unit/constants/test_enums.py",
"source_location": "L259",
"id": "constants_test_enums_test_audit_scope_kind_values",
- "community": 63,
+ "community": 73,
"norm_label": "test_audit_scope_kind_values()"
},
{
@@ -18306,7 +18567,7 @@
"source_file": "tests/unit/constants/test_enums.py",
"source_location": "L268",
"id": "constants_test_enums_test_directory_level_values",
- "community": 63,
+ "community": 73,
"norm_label": "test_directory_level_values()"
},
{
@@ -18315,7 +18576,7 @@
"source_file": "tests/unit/constants/test_enums.py",
"source_location": "L276",
"id": "constants_test_enums_test_platform_values",
- "community": 63,
+ "community": 73,
"norm_label": "test_platform_values()"
},
{
@@ -18324,7 +18585,7 @@
"source_file": "tests/unit/constants/test_enums.py",
"source_location": "L284",
"id": "constants_test_enums_test_setup_next_action_values",
- "community": 63,
+ "community": 73,
"norm_label": "test_setup_next_action_values()"
},
{
@@ -18333,7 +18594,7 @@
"source_file": "tests/unit/constants/test_enums.py",
"source_location": "L292",
"id": "constants_test_enums_test_sync_handle_state_values",
- "community": 63,
+ "community": 73,
"norm_label": "test_sync_handle_state_values()"
},
{
@@ -18342,7 +18603,7 @@
"source_file": "tests/unit/constants/test_enums.py",
"source_location": "L300",
"id": "constants_test_enums_test_plugin_source_root_values",
- "community": 63,
+ "community": 73,
"norm_label": "test_plugin_source_root_values()"
},
{
@@ -18351,7 +18612,7 @@
"source_file": "tests/unit/constants/test_enums.py",
"source_location": "L308",
"id": "constants_test_enums_test_tree_project_status_values",
- "community": 63,
+ "community": 73,
"norm_label": "test_tree_project_status_values()"
},
{
@@ -18360,7 +18621,7 @@
"source_file": "tests/unit/constants/test_enums.py",
"source_location": "L316",
"id": "constants_test_enums_test_enums_re_exported_from_package",
- "community": 63,
+ "community": 73,
"norm_label": "test_enums_re_exported_from_package()"
},
{
@@ -18369,7 +18630,7 @@
"source_file": "tests/unit/constants/test_enums.py",
"source_location": "L1",
"id": "constants_test_enums_rationale_1",
- "community": 63,
+ "community": 73,
"norm_label": "verify the ``strenum`` value strings match the design spec verbatim. these enum"
},
{
@@ -18378,7 +18639,7 @@
"source_file": "tests/unit/constants/test_keyring.py",
"source_location": "L1",
"id": "tests_unit_constants_test_keyring_py",
- "community": 283,
+ "community": 289,
"norm_label": "test_keyring.py"
},
{
@@ -18387,7 +18648,7 @@
"source_file": "tests/unit/constants/test_keyring.py",
"source_location": "L13",
"id": "constants_test_keyring_test_keyring_service_literal",
- "community": 283,
+ "community": 289,
"norm_label": "test_keyring_service_literal()"
},
{
@@ -18396,7 +18657,7 @@
"source_file": "tests/unit/constants/test_keyring.py",
"source_location": "L18",
"id": "constants_test_keyring_test_keyring_username_lims_literal",
- "community": 283,
+ "community": 289,
"norm_label": "test_keyring_username_lims_literal()"
},
{
@@ -18405,7 +18666,7 @@
"source_file": "tests/unit/constants/test_keyring.py",
"source_location": "L23",
"id": "constants_test_keyring_test_nas_keyring_username_removed",
- "community": 283,
+ "community": 289,
"norm_label": "test_nas_keyring_username_removed()"
},
{
@@ -18414,7 +18675,7 @@
"source_file": "tests/unit/constants/test_keyring.py",
"source_location": "L31",
"id": "constants_test_keyring_test_keyring_re_exported_from_package",
- "community": 283,
+ "community": 289,
"norm_label": "test_keyring_re_exported_from_package()"
},
{
@@ -18423,7 +18684,7 @@
"source_file": "tests/unit/constants/test_keyring.py",
"source_location": "L1",
"id": "constants_test_keyring_rationale_1",
- "community": 283,
+ "community": 289,
"norm_label": "verify the keyring service / username conventions. these literals are committed"
},
{
@@ -18432,7 +18693,7 @@
"source_file": "tests/unit/constants/test_limits.py",
"source_location": "L1",
"id": "tests_unit_constants_test_limits_py",
- "community": 118,
+ "community": 126,
"norm_label": "test_limits.py"
},
{
@@ -18441,7 +18702,7 @@
"source_file": "tests/unit/constants/test_limits.py",
"source_location": "L12",
"id": "constants_test_limits_test_plugin_timeout_max_seconds",
- "community": 118,
+ "community": 126,
"norm_label": "test_plugin_timeout_max_seconds()"
},
{
@@ -18450,7 +18711,7 @@
"source_file": "tests/unit/constants/test_limits.py",
"source_location": "L17",
"id": "constants_test_limits_test_plugin_memory_max_mb",
- "community": 118,
+ "community": 126,
"norm_label": "test_plugin_memory_max_mb()"
},
{
@@ -18459,7 +18720,7 @@
"source_file": "tests/unit/constants/test_limits.py",
"source_location": "L22",
"id": "constants_test_limits_test_plugin_validation_cpu_seconds",
- "community": 118,
+ "community": 126,
"norm_label": "test_plugin_validation_cpu_seconds()"
},
{
@@ -18468,7 +18729,7 @@
"source_file": "tests/unit/constants/test_limits.py",
"source_location": "L27",
"id": "constants_test_limits_test_plugin_validation_memory_mb",
- "community": 118,
+ "community": 126,
"norm_label": "test_plugin_validation_memory_mb()"
},
{
@@ -18477,7 +18738,7 @@
"source_file": "tests/unit/constants/test_limits.py",
"source_location": "L32",
"id": "constants_test_limits_test_plugin_validation_wall_seconds",
- "community": 118,
+ "community": 126,
"norm_label": "test_plugin_validation_wall_seconds()"
},
{
@@ -18486,7 +18747,7 @@
"source_file": "tests/unit/constants/test_limits.py",
"source_location": "L37",
"id": "constants_test_limits_test_plugin_rlimit_nofile",
- "community": 118,
+ "community": 126,
"norm_label": "test_plugin_rlimit_nofile()"
},
{
@@ -18495,7 +18756,7 @@
"source_file": "tests/unit/constants/test_limits.py",
"source_location": "L42",
"id": "constants_test_limits_test_plugin_ipc_frame_cap_bytes_is_one_mib",
- "community": 118,
+ "community": 126,
"norm_label": "test_plugin_ipc_frame_cap_bytes_is_one_mib()"
},
{
@@ -18504,7 +18765,7 @@
"source_file": "tests/unit/constants/test_limits.py",
"source_location": "L48",
"id": "constants_test_limits_test_plugin_api_version",
- "community": 118,
+ "community": 126,
"norm_label": "test_plugin_api_version()"
},
{
@@ -18513,7 +18774,7 @@
"source_file": "tests/unit/constants/test_limits.py",
"source_location": "L54",
"id": "constants_test_limits_test_plugin_supported_api_versions",
- "community": 118,
+ "community": 126,
"norm_label": "test_plugin_supported_api_versions()"
},
{
@@ -18522,7 +18783,7 @@
"source_file": "tests/unit/constants/test_limits.py",
"source_location": "L62",
"id": "constants_test_limits_test_plugin_forbidden_path_prefixes",
- "community": 118,
+ "community": 126,
"norm_label": "test_plugin_forbidden_path_prefixes()"
},
{
@@ -18531,7 +18792,7 @@
"source_file": "tests/unit/constants/test_limits.py",
"source_location": "L72",
"id": "constants_test_limits_test_label_max_length",
- "community": 118,
+ "community": 126,
"norm_label": "test_label_max_length()"
},
{
@@ -18540,7 +18801,7 @@
"source_file": "tests/unit/constants/test_limits.py",
"source_location": "L77",
"id": "constants_test_limits_test_objective_max_length",
- "community": 118,
+ "community": 126,
"norm_label": "test_objective_max_length()"
},
{
@@ -18549,7 +18810,7 @@
"source_file": "tests/unit/constants/test_limits.py",
"source_location": "L82",
"id": "constants_test_limits_test_validator_binary_detect_bytes",
- "community": 118,
+ "community": 126,
"norm_label": "test_validator_binary_detect_bytes()"
},
{
@@ -18558,7 +18819,7 @@
"source_file": "tests/unit/constants/test_limits.py",
"source_location": "L87",
"id": "constants_test_limits_test_log_line_max_bytes",
- "community": 118,
+ "community": 126,
"norm_label": "test_log_line_max_bytes()"
},
{
@@ -18567,7 +18828,7 @@
"source_file": "tests/unit/constants/test_limits.py",
"source_location": "L92",
"id": "constants_test_limits_test_session_gc_after_seconds",
- "community": 118,
+ "community": 126,
"norm_label": "test_session_gc_after_seconds()"
},
{
@@ -18576,7 +18837,7 @@
"source_file": "tests/unit/constants/test_limits.py",
"source_location": "L97",
"id": "constants_test_limits_test_audit_refresh_seconds",
- "community": 118,
+ "community": 126,
"norm_label": "test_audit_refresh_seconds()"
},
{
@@ -18585,7 +18846,7 @@
"source_file": "tests/unit/constants/test_limits.py",
"source_location": "L102",
"id": "constants_test_limits_test_quit_drain_timeout_seconds",
- "community": 118,
+ "community": 126,
"norm_label": "test_quit_drain_timeout_seconds()"
},
{
@@ -18594,7 +18855,7 @@
"source_file": "tests/unit/constants/test_limits.py",
"source_location": "L107",
"id": "constants_test_limits_test_sigterm_drain_timeout_seconds",
- "community": 118,
+ "community": 126,
"norm_label": "test_sigterm_drain_timeout_seconds()"
},
{
@@ -18603,7 +18864,7 @@
"source_file": "tests/unit/constants/test_limits.py",
"source_location": "L112",
"id": "constants_test_limits_test_tray_status_refresh_seconds",
- "community": 118,
+ "community": 126,
"norm_label": "test_tray_status_refresh_seconds()"
},
{
@@ -18612,7 +18873,7 @@
"source_file": "tests/unit/constants/test_limits.py",
"source_location": "L117",
"id": "constants_test_limits_test_worker_timeout_grace_seconds",
- "community": 118,
+ "community": 126,
"norm_label": "test_worker_timeout_grace_seconds()"
},
{
@@ -18621,7 +18882,7 @@
"source_file": "tests/unit/constants/test_limits.py",
"source_location": "L122",
"id": "constants_test_limits_test_window_default_size",
- "community": 118,
+ "community": 126,
"norm_label": "test_window_default_size()"
},
{
@@ -18630,7 +18891,7 @@
"source_file": "tests/unit/constants/test_limits.py",
"source_location": "L128",
"id": "constants_test_limits_test_notification_coalesce_seconds",
- "community": 118,
+ "community": 126,
"norm_label": "test_notification_coalesce_seconds()"
},
{
@@ -18639,7 +18900,7 @@
"source_file": "tests/unit/constants/test_limits.py",
"source_location": "L133",
"id": "constants_test_limits_test_disk_space_preflight_mib",
- "community": 118,
+ "community": 126,
"norm_label": "test_disk_space_preflight_mib()"
},
{
@@ -18648,7 +18909,7 @@
"source_file": "tests/unit/constants/test_limits.py",
"source_location": "L138",
"id": "constants_test_limits_test_limits_re_exported_from_package",
- "community": 118,
+ "community": 126,
"norm_label": "test_limits_re_exported_from_package()"
},
{
@@ -18657,7 +18918,7 @@
"source_file": "tests/unit/constants/test_limits.py",
"source_location": "L1",
"id": "constants_test_limits_rationale_1",
- "community": 118,
+ "community": 126,
"norm_label": "verify the numeric limits and policy ceilings. each value here is hard-coded pe"
},
{
@@ -18666,7 +18927,7 @@
"source_file": "tests/unit/constants/test_filenames.py",
"source_location": "L1",
"id": "tests_unit_constants_test_filenames_py",
- "community": 173,
+ "community": 184,
"norm_label": "test_filenames.py"
},
{
@@ -18675,7 +18936,7 @@
"source_file": "tests/unit/constants/test_filenames.py",
"source_location": "L12",
"id": "constants_test_filenames_test_cache_dir_name",
- "community": 173,
+ "community": 184,
"norm_label": "test_cache_dir_name()"
},
{
@@ -18684,7 +18945,7 @@
"source_file": "tests/unit/constants/test_filenames.py",
"source_location": "L17",
"id": "constants_test_filenames_test_creation_json_name",
- "community": 173,
+ "community": 184,
"norm_label": "test_creation_json_name()"
},
{
@@ -18693,7 +18954,7 @@
"source_file": "tests/unit/constants/test_filenames.py",
"source_location": "L22",
"id": "constants_test_filenames_test_readme_fields_json_name",
- "community": 173,
+ "community": 184,
"norm_label": "test_readme_fields_json_name()"
},
{
@@ -18702,7 +18963,7 @@
"source_file": "tests/unit/constants/test_filenames.py",
"source_location": "L27",
"id": "constants_test_filenames_test_equipment_json_name",
- "community": 173,
+ "community": 184,
"norm_label": "test_equipment_json_name()"
},
{
@@ -18711,7 +18972,7 @@
"source_file": "tests/unit/constants/test_filenames.py",
"source_location": "L32",
"id": "constants_test_filenames_test_sync_state_filename",
- "community": 173,
+ "community": 184,
"norm_label": "test_sync_state_filename()"
},
{
@@ -18720,7 +18981,7 @@
"source_file": "tests/unit/constants/test_filenames.py",
"source_location": "L37",
"id": "constants_test_filenames_test_test_runs_json_name",
- "community": 173,
+ "community": 184,
"norm_label": "test_test_runs_json_name()"
},
{
@@ -18729,7 +18990,7 @@
"source_file": "tests/unit/constants/test_filenames.py",
"source_location": "L42",
"id": "constants_test_filenames_test_answers_file_name",
- "community": 173,
+ "community": 184,
"norm_label": "test_answers_file_name()"
},
{
@@ -18738,7 +18999,7 @@
"source_file": "tests/unit/constants/test_filenames.py",
"source_location": "L47",
"id": "constants_test_filenames_test_log_file_template",
- "community": 173,
+ "community": 184,
"norm_label": "test_log_file_template()"
},
{
@@ -18747,7 +19008,7 @@
"source_file": "tests/unit/constants/test_filenames.py",
"source_location": "L52",
"id": "constants_test_filenames_test_log_file_template_formats",
- "community": 173,
+ "community": 184,
"norm_label": "test_log_file_template_formats()"
},
{
@@ -18756,7 +19017,7 @@
"source_file": "tests/unit/constants/test_filenames.py",
"source_location": "L58",
"id": "constants_test_filenames_test_readme_file_name",
- "community": 173,
+ "community": 184,
"norm_label": "test_readme_file_name()"
},
{
@@ -18765,7 +19026,7 @@
"source_file": "tests/unit/constants/test_filenames.py",
"source_location": "L63",
"id": "constants_test_filenames_test_copier_manifest_name",
- "community": 173,
+ "community": 184,
"norm_label": "test_copier_manifest_name()"
},
{
@@ -18774,7 +19035,7 @@
"source_file": "tests/unit/constants/test_filenames.py",
"source_location": "L68",
"id": "constants_test_filenames_test_plugin_manifest_name",
- "community": 173,
+ "community": 184,
"norm_label": "test_plugin_manifest_name()"
},
{
@@ -18783,7 +19044,7 @@
"source_file": "tests/unit/constants/test_filenames.py",
"source_location": "L73",
"id": "constants_test_filenames_test_server_state_file",
- "community": 173,
+ "community": 184,
"norm_label": "test_server_state_file()"
},
{
@@ -18792,7 +19053,7 @@
"source_file": "tests/unit/constants/test_filenames.py",
"source_location": "L78",
"id": "constants_test_filenames_test_lims_cache_db_name",
- "community": 173,
+ "community": 184,
"norm_label": "test_lims_cache_db_name()"
},
{
@@ -18801,7 +19062,7 @@
"source_file": "tests/unit/constants/test_filenames.py",
"source_location": "L83",
"id": "constants_test_filenames_test_sync_queue_db_name",
- "community": 173,
+ "community": 184,
"norm_label": "test_sync_queue_db_name()"
},
{
@@ -18810,7 +19071,7 @@
"source_file": "tests/unit/constants/test_filenames.py",
"source_location": "L88",
"id": "constants_test_filenames_test_central_log_file",
- "community": 173,
+ "community": 184,
"norm_label": "test_central_log_file()"
},
{
@@ -18819,7 +19080,7 @@
"source_file": "tests/unit/constants/test_filenames.py",
"source_location": "L93",
"id": "constants_test_filenames_test_secrets_file",
- "community": 173,
+ "community": 184,
"norm_label": "test_secrets_file()"
},
{
@@ -18828,7 +19089,7 @@
"source_file": "tests/unit/constants/test_filenames.py",
"source_location": "L98",
"id": "constants_test_filenames_test_filenames_re_exported_from_package",
- "community": 173,
+ "community": 184,
"norm_label": "test_filenames_re_exported_from_package()"
},
{
@@ -18837,7 +19098,7 @@
"source_file": "tests/unit/constants/test_filenames.py",
"source_location": "L1",
"id": "constants_test_filenames_rationale_1",
- "community": 173,
+ "community": 184,
"norm_label": "verify the canonical filename constants. these literals appear in directory lay"
},
{
@@ -18846,7 +19107,7 @@
"source_file": "tests/unit/io/test_yaml_files.py",
"source_location": "L1",
"id": "tests_unit_io_test_yaml_files_py",
- "community": 4,
+ "community": 7,
"norm_label": "test_yaml_files.py"
},
{
@@ -18855,7 +19116,7 @@
"source_file": "tests/unit/io/test_yaml_files.py",
"source_location": "L13",
"id": "io_test_yaml_files_test_load_yaml_manifest_returns_dict",
- "community": 4,
+ "community": 7,
"norm_label": "test_load_yaml_manifest_returns_dict()"
},
{
@@ -18864,7 +19125,7 @@
"source_file": "tests/unit/io/test_yaml_files.py",
"source_location": "L19",
"id": "io_test_yaml_files_test_load_yaml_manifest_empty_file_returns_empty_dict",
- "community": 4,
+ "community": 7,
"norm_label": "test_load_yaml_manifest_empty_file_returns_empty_dict()"
},
{
@@ -18873,7 +19134,7 @@
"source_file": "tests/unit/io/test_yaml_files.py",
"source_location": "L25",
"id": "io_test_yaml_files_test_load_yaml_manifest_non_dict_returns_empty_dict",
- "community": 4,
+ "community": 7,
"norm_label": "test_load_yaml_manifest_non_dict_returns_empty_dict()"
},
{
@@ -18882,7 +19143,7 @@
"source_file": "tests/unit/io/test_yaml_files.py",
"source_location": "L32",
"id": "io_test_yaml_files_test_load_yaml_manifest_propagates_yaml_error",
- "community": 4,
+ "community": 7,
"norm_label": "test_load_yaml_manifest_propagates_yaml_error()"
},
{
@@ -18891,7 +19152,7 @@
"source_file": "tests/unit/io/test_yaml_files.py",
"source_location": "L39",
"id": "io_test_yaml_files_test_load_yaml_manifest_missing_file_raises",
- "community": 4,
+ "community": 7,
"norm_label": "test_load_yaml_manifest_missing_file_raises()"
},
{
@@ -18900,7 +19161,7 @@
"source_file": "tests/unit/io/test_yaml_files.py",
"source_location": "L1",
"id": "io_test_yaml_files_rationale_1",
- "community": 4,
+ "community": 7,
"norm_label": "tests for ``exlab_wizard.io.yaml_files``."
},
{
@@ -18909,7 +19170,7 @@
"source_file": "tests/unit/io/test_yaml_files.py",
"source_location": "L26",
"id": "io_test_yaml_files_rationale_26",
- "community": 4,
+ "community": 7,
"norm_label": "a yaml file with a top-level scalar/list is not a manifest."
},
{
@@ -18918,7 +19179,7 @@
"source_file": "tests/unit/io/test_atomic_write.py",
"source_location": "L1",
"id": "tests_unit_io_test_atomic_write_py",
- "community": 259,
+ "community": 262,
"norm_label": "test_atomic_write.py"
},
{
@@ -18927,7 +19188,7 @@
"source_file": "tests/unit/io/test_atomic_write.py",
"source_location": "L13",
"id": "io_test_atomic_write_test_atomic_write_creates_file",
- "community": 259,
+ "community": 262,
"norm_label": "test_atomic_write_creates_file()"
},
{
@@ -18936,7 +19197,7 @@
"source_file": "tests/unit/io/test_atomic_write.py",
"source_location": "L19",
"id": "io_test_atomic_write_test_atomic_write_overwrites_existing",
- "community": 259,
+ "community": 262,
"norm_label": "test_atomic_write_overwrites_existing()"
},
{
@@ -18945,7 +19206,7 @@
"source_file": "tests/unit/io/test_atomic_write.py",
"source_location": "L26",
"id": "io_test_atomic_write_test_atomic_write_leaves_no_temp_file_on_success",
- "community": 259,
+ "community": 262,
"norm_label": "test_atomic_write_leaves_no_temp_file_on_success()"
},
{
@@ -18954,7 +19215,7 @@
"source_file": "tests/unit/io/test_atomic_write.py",
"source_location": "L33",
"id": "io_test_atomic_write_test_atomic_write_cleans_up_temp_on_replace_failure",
- "community": 259,
+ "community": 262,
"norm_label": "test_atomic_write_cleans_up_temp_on_replace_failure()"
},
{
@@ -18963,7 +19224,7 @@
"source_file": "tests/unit/io/test_atomic_write.py",
"source_location": "L48",
"id": "io_test_atomic_write_test_atomic_write_skip_fsync",
- "community": 259,
+ "community": 262,
"norm_label": "test_atomic_write_skip_fsync()"
},
{
@@ -18972,7 +19233,7 @@
"source_file": "tests/unit/io/test_atomic_write.py",
"source_location": "L56",
"id": "io_test_atomic_write_test_atomic_write_calls_fsync_by_default",
- "community": 259,
+ "community": 262,
"norm_label": "test_atomic_write_calls_fsync_by_default()"
},
{
@@ -18981,7 +19242,7 @@
"source_file": "tests/unit/io/test_atomic_write.py",
"source_location": "L1",
"id": "io_test_atomic_write_rationale_1",
- "community": 259,
+ "community": 262,
"norm_label": "tests for ``exlab_wizard.io.atomic_write``."
},
{
@@ -18990,7 +19251,7 @@
"source_file": "tests/unit/io/__init__.py",
"source_location": "L1",
"id": "tests_unit_io_init_py",
- "community": 530,
+ "community": 554,
"norm_label": "__init__.py"
},
{
@@ -18999,7 +19260,7 @@
"source_file": "tests/unit/io/test_json_files.py",
"source_location": "L1",
"id": "tests_unit_io_test_json_files_py",
- "community": 66,
+ "community": 117,
"norm_label": "test_json_files.py"
},
{
@@ -19008,7 +19269,7 @@
"source_file": "tests/unit/io/test_json_files.py",
"source_location": "L18",
"id": "io_test_json_files_dummy",
- "community": 66,
+ "community": 117,
"norm_label": "_dummy"
},
{
@@ -19017,7 +19278,7 @@
"source_file": "tests/unit/io/test_json_files.py",
"source_location": "L23",
"id": "io_test_json_files_test_require_schema_major_accepts_matching_major",
- "community": 66,
+ "community": 117,
"norm_label": "test_require_schema_major_accepts_matching_major()"
},
{
@@ -19026,7 +19287,7 @@
"source_file": "tests/unit/io/test_json_files.py",
"source_location": "L27",
"id": "io_test_json_files_test_require_schema_major_rejects_different_major",
- "community": 66,
+ "community": 117,
"norm_label": "test_require_schema_major_rejects_different_major()"
},
{
@@ -19035,7 +19296,7 @@
"source_file": "tests/unit/io/test_json_files.py",
"source_location": "L34",
"id": "io_test_json_files_test_require_schema_major_rejects_empty",
- "community": 66,
+ "community": 117,
"norm_label": "test_require_schema_major_rejects_empty()"
},
{
@@ -19044,7 +19305,7 @@
"source_file": "tests/unit/io/test_json_files.py",
"source_location": "L39",
"id": "io_test_json_files_test_require_schema_major_rejects_none",
- "community": 66,
+ "community": 117,
"norm_label": "test_require_schema_major_rejects_none()"
},
{
@@ -19053,7 +19314,7 @@
"source_file": "tests/unit/io/test_json_files.py",
"source_location": "L44",
"id": "io_test_json_files_test_require_schema_major_rejects_unparseable",
- "community": 66,
+ "community": 117,
"norm_label": "test_require_schema_major_rejects_unparseable()"
},
{
@@ -19062,7 +19323,7 @@
"source_file": "tests/unit/io/test_json_files.py",
"source_location": "L49",
"id": "io_test_json_files_test_read_msgspec_json_decodes_to_struct",
- "community": 66,
+ "community": 231,
"norm_label": "test_read_msgspec_json_decodes_to_struct()"
},
{
@@ -19071,7 +19332,7 @@
"source_file": "tests/unit/io/test_json_files.py",
"source_location": "L57",
"id": "io_test_json_files_test_read_msgspec_json_with_matching_major",
- "community": 66,
+ "community": 231,
"norm_label": "test_read_msgspec_json_with_matching_major()"
},
{
@@ -19080,7 +19341,7 @@
"source_file": "tests/unit/io/test_json_files.py",
"source_location": "L64",
"id": "io_test_json_files_test_read_msgspec_json_rejects_wrong_major",
- "community": 66,
+ "community": 231,
"norm_label": "test_read_msgspec_json_rejects_wrong_major()"
},
{
@@ -19089,7 +19350,7 @@
"source_file": "tests/unit/io/test_json_files.py",
"source_location": "L71",
"id": "io_test_json_files_test_read_msgspec_json_passes_through_malformed",
- "community": 66,
+ "community": 231,
"norm_label": "test_read_msgspec_json_passes_through_malformed()"
},
{
@@ -19098,7 +19359,7 @@
"source_file": "tests/unit/io/test_json_files.py",
"source_location": "L79",
"id": "io_test_json_files_test_read_msgspec_json_raw_returns_dict",
- "community": 66,
+ "community": 117,
"norm_label": "test_read_msgspec_json_raw_returns_dict()"
},
{
@@ -19107,7 +19368,7 @@
"source_file": "tests/unit/io/test_json_files.py",
"source_location": "L86",
"id": "io_test_json_files_test_read_msgspec_json_raw_with_matching_major",
- "community": 66,
+ "community": 117,
"norm_label": "test_read_msgspec_json_raw_with_matching_major()"
},
{
@@ -19116,7 +19377,7 @@
"source_file": "tests/unit/io/test_json_files.py",
"source_location": "L93",
"id": "io_test_json_files_test_read_msgspec_json_raw_rejects_wrong_major",
- "community": 66,
+ "community": 117,
"norm_label": "test_read_msgspec_json_raw_rejects_wrong_major()"
},
{
@@ -19125,7 +19386,7 @@
"source_file": "tests/unit/io/test_json_files.py",
"source_location": "L100",
"id": "io_test_json_files_test_read_msgspec_json_raw_skips_check_when_version_missing",
- "community": 66,
+ "community": 117,
"norm_label": "test_read_msgspec_json_raw_skips_check_when_version_missing()"
},
{
@@ -19134,7 +19395,7 @@
"source_file": "tests/unit/io/test_json_files.py",
"source_location": "L1",
"id": "io_test_json_files_rationale_1",
- "community": 66,
+ "community": 117,
"norm_label": "tests for ``exlab_wizard.io.json_files``."
},
{
@@ -19143,7 +19404,7 @@
"source_file": "tests/unit/io/test_json_files.py",
"source_location": "L72",
"id": "io_test_json_files_rationale_72",
- "community": 66,
+ "community": 231,
"norm_label": "malformed json should surface from msgspec, not the major-check."
},
{
@@ -19152,7 +19413,7 @@
"source_file": "tests/unit/io/test_json_files.py",
"source_location": "L103",
"id": "io_test_json_files_rationale_103",
- "community": 66,
+ "community": 117,
"norm_label": "a dict without schema_version must not be rejected (the typed decoder downst"
},
{
@@ -19161,7 +19422,7 @@
"source_file": "tests/unit/template/__init__.py",
"source_location": "L1",
"id": "tests_unit_template_init_py",
- "community": 441,
+ "community": 477,
"norm_label": "__init__.py"
},
{
@@ -19170,7 +19431,7 @@
"source_file": "src/exlab_wizard/template/__init__.py",
"source_location": "L1",
"id": "template_init_rationale_1",
- "community": 441,
+ "community": 477,
"norm_label": "template (copier) package. backend spec \u00a75."
},
{
@@ -19179,7 +19440,7 @@
"source_file": "tests/unit/template/test_copier_driver.py",
"source_location": "L1",
"id": "tests_unit_template_test_copier_driver_py",
- "community": 61,
+ "community": 49,
"norm_label": "test_copier_driver.py"
},
{
@@ -19188,7 +19449,7 @@
"source_file": "tests/unit/template/test_copier_driver.py",
"source_location": "L59",
"id": "template_test_copier_driver_test_core_readme_field_ids_pins_the_three_core_fields",
- "community": 61,
+ "community": 49,
"norm_label": "test_core_readme_field_ids_pins_the_three_core_fields()"
},
{
@@ -19197,7 +19458,7 @@
"source_file": "tests/unit/template/test_copier_driver.py",
"source_location": "L70",
"id": "template_test_copier_driver_test_resolve_project_basic_returns_resolved_template",
- "community": 61,
+ "community": 49,
"norm_label": "test_resolve_project_basic_returns_resolved_template()"
},
{
@@ -19206,7 +19467,7 @@
"source_file": "tests/unit/template/test_copier_driver.py",
"source_location": "L90",
"id": "template_test_copier_driver_test_resolve_run_basic_experimental_sets_run_scope_experimental",
- "community": 61,
+ "community": 49,
"norm_label": "test_resolve_run_basic_experimental_sets_run_scope_experimental()"
},
{
@@ -19215,7 +19476,7 @@
"source_file": "tests/unit/template/test_copier_driver.py",
"source_location": "L100",
"id": "template_test_copier_driver_test_resolve_run_basic_test_sets_run_scope_test",
- "community": 61,
+ "community": 49,
"norm_label": "test_resolve_run_basic_test_sets_run_scope_test()"
},
{
@@ -19224,7 +19485,7 @@
"source_file": "tests/unit/template/test_copier_driver.py",
"source_location": "L108",
"id": "template_test_copier_driver_test_resolve_run_basic_both_sets_run_scope_both",
- "community": 61,
+ "community": 49,
"norm_label": "test_resolve_run_basic_both_sets_run_scope_both()"
},
{
@@ -19233,7 +19494,7 @@
"source_file": "tests/unit/template/test_copier_driver.py",
"source_location": "L121",
"id": "template_test_copier_driver_test_resolve_missing_version_raises_template_load_error_mentioning_field",
- "community": 61,
+ "community": 49,
"norm_label": "test_resolve_missing_version_raises_template_load_error_mentioning_field()"
},
{
@@ -19242,7 +19503,7 @@
"source_file": "tests/unit/template/test_copier_driver.py",
"source_location": "L130",
"id": "template_test_copier_driver_test_resolve_redeclares_core_raises_core_field_redeclared_naming_offender",
- "community": 61,
+ "community": 49,
"norm_label": "test_resolve_redeclares_core_raises_core_field_redeclared_naming_offender()"
},
{
@@ -19251,7 +19512,7 @@
"source_file": "tests/unit/template/test_copier_driver.py",
"source_location": "L138",
"id": "template_test_copier_driver_test_resolve_redeclares_core_is_also_caught_as_template_load_error",
- "community": 61,
+ "community": 49,
"norm_label": "test_resolve_redeclares_core_is_also_caught_as_template_load_error()"
},
{
@@ -19260,7 +19521,7 @@
"source_file": "tests/unit/template/test_copier_driver.py",
"source_location": "L146",
"id": "template_test_copier_driver_test_resolve_missing_copier_yml_raises_template_load_error",
- "community": 61,
+ "community": 49,
"norm_label": "test_resolve_missing_copier_yml_raises_template_load_error()"
},
{
@@ -19269,7 +19530,7 @@
"source_file": "tests/unit/template/test_copier_driver.py",
"source_location": "L156",
"id": "template_test_copier_driver_test_resolve_scope_mismatch_raises_template_load_error",
- "community": 61,
+ "community": 49,
"norm_label": "test_resolve_scope_mismatch_raises_template_load_error()"
},
{
@@ -19278,7 +19539,7 @@
"source_file": "tests/unit/template/test_copier_driver.py",
"source_location": "L165",
"id": "template_test_copier_driver_test_resolve_run_template_missing_run_scope_raises",
- "community": 61,
+ "community": 49,
"norm_label": "test_resolve_run_template_missing_run_scope_raises()"
},
{
@@ -19287,7 +19548,7 @@
"source_file": "tests/unit/template/test_copier_driver.py",
"source_location": "L179",
"id": "template_test_copier_driver_test_resolve_run_template_invalid_run_scope_raises",
- "community": 61,
+ "community": 49,
"norm_label": "test_resolve_run_template_invalid_run_scope_raises()"
},
{
@@ -19296,7 +19557,7 @@
"source_file": "tests/unit/template/test_copier_driver.py",
"source_location": "L198",
"id": "template_test_copier_driver_test_resolve_with_tasks_does_not_raise",
- "community": 61,
+ "community": 49,
"norm_label": "test_resolve_with_tasks_does_not_raise()"
},
{
@@ -19305,7 +19566,7 @@
"source_file": "tests/unit/template/test_copier_driver.py",
"source_location": "L208",
"id": "template_test_copier_driver_test_resolve_with_tasks_emits_warning_log",
- "community": 61,
+ "community": 49,
"norm_label": "test_resolve_with_tasks_emits_warning_log()"
},
{
@@ -19314,7 +19575,7 @@
"source_file": "tests/unit/template/test_copier_driver.py",
"source_location": "L227",
"id": "template_test_copier_driver_test_render_project_basic_writes_readme",
- "community": 61,
+ "community": 49,
"norm_label": "test_render_project_basic_writes_readme()"
},
{
@@ -19323,7 +19584,7 @@
"source_file": "tests/unit/template/test_copier_driver.py",
"source_location": "L245",
"id": "template_test_copier_driver_test_render_project_basic_files_written_lists_the_readme",
- "community": 61,
+ "community": 49,
"norm_label": "test_render_project_basic_files_written_lists_the_readme()"
},
{
@@ -19332,7 +19593,7 @@
"source_file": "tests/unit/template/test_copier_driver.py",
"source_location": "L263",
"id": "template_test_copier_driver_test_render_with_tasks_silently_ignores_tasks_and_writes_file",
- "community": 61,
+ "community": 49,
"norm_label": "test_render_with_tasks_silently_ignores_tasks_and_writes_file()"
},
{
@@ -19341,7 +19602,7 @@
"source_file": "tests/unit/template/test_copier_driver.py",
"source_location": "L288",
"id": "template_test_copier_driver_test_render_into_dst_with_conflicting_files_raises",
- "community": 61,
+ "community": 49,
"norm_label": "test_render_into_dst_with_conflicting_files_raises()"
},
{
@@ -19350,7 +19611,7 @@
"source_file": "tests/unit/template/test_copier_driver.py",
"source_location": "L322",
"id": "template_test_copier_driver_test_render_calls_copier_run_copy_with_spec_kwargs",
- "community": 61,
+ "community": 49,
"norm_label": "test_render_calls_copier_run_copy_with_spec_kwargs()"
},
{
@@ -19359,7 +19620,7 @@
"source_file": "tests/unit/template/test_copier_driver.py",
"source_location": "L350",
"id": "template_test_copier_driver_test_resolve_unreadable_copier_yml_raises_template_load_error",
- "community": 61,
+ "community": 49,
"norm_label": "test_resolve_unreadable_copier_yml_raises_template_load_error()"
},
{
@@ -19368,7 +19629,7 @@
"source_file": "tests/unit/template/test_copier_driver.py",
"source_location": "L371",
"id": "template_test_copier_driver_test_resolve_malformed_yaml_raises_template_load_error",
- "community": 61,
+ "community": 49,
"norm_label": "test_resolve_malformed_yaml_raises_template_load_error()"
},
{
@@ -19377,7 +19638,7 @@
"source_file": "tests/unit/template/test_copier_driver.py",
"source_location": "L387",
"id": "template_test_copier_driver_test_resolve_empty_copier_yml_treats_manifest_as_empty_and_rejects_missing_type",
- "community": 61,
+ "community": 49,
"norm_label": "test_resolve_empty_copier_yml_treats_manifest_as_empty_and_rejects_missing_type()"
},
{
@@ -19386,7 +19647,7 @@
"source_file": "tests/unit/template/test_copier_driver.py",
"source_location": "L403",
"id": "template_test_copier_driver_test_resolve_non_mapping_yaml_raises_template_load_error",
- "community": 61,
+ "community": 49,
"norm_label": "test_resolve_non_mapping_yaml_raises_template_load_error()"
},
{
@@ -19395,7 +19656,7 @@
"source_file": "tests/unit/template/test_copier_driver.py",
"source_location": "L421",
"id": "template_test_copier_driver_test_resolve_missing_exlab_type_raises_template_load_error",
- "community": 61,
+ "community": 49,
"norm_label": "test_resolve_missing_exlab_type_raises_template_load_error()"
},
{
@@ -19404,7 +19665,7 @@
"source_file": "tests/unit/template/test_copier_driver.py",
"source_location": "L436",
"id": "template_test_copier_driver_test_resolve_invalid_exlab_type_value_raises_template_load_error",
- "community": 61,
+ "community": 49,
"norm_label": "test_resolve_invalid_exlab_type_value_raises_template_load_error()"
},
{
@@ -19413,7 +19674,7 @@
"source_file": "tests/unit/template/test_copier_driver.py",
"source_location": "L461",
"id": "template_test_copier_driver_test_resolve_readme_fields_with_non_core_entries_passes_through",
- "community": 61,
+ "community": 49,
"norm_label": "test_resolve_readme_fields_with_non_core_entries_passes_through()"
},
{
@@ -19422,7 +19683,7 @@
"source_file": "tests/unit/template/test_copier_driver.py",
"source_location": "L488",
"id": "template_test_copier_driver_test_resolve_readme_block_not_a_mapping_yields_empty_extra_fields",
- "community": 61,
+ "community": 49,
"norm_label": "test_resolve_readme_block_not_a_mapping_yields_empty_extra_fields()"
},
{
@@ -19431,7 +19692,7 @@
"source_file": "tests/unit/template/test_copier_driver.py",
"source_location": "L505",
"id": "template_test_copier_driver_test_resolve_readme_fields_not_a_list_yields_empty_extra_fields",
- "community": 61,
+ "community": 49,
"norm_label": "test_resolve_readme_fields_not_a_list_yields_empty_extra_fields()"
},
{
@@ -19440,7 +19701,7 @@
"source_file": "tests/unit/template/test_copier_driver.py",
"source_location": "L532",
"id": "template_test_copier_driver_test_resolve_non_string_description_falls_back_to_empty",
- "community": 61,
+ "community": 49,
"norm_label": "test_resolve_non_string_description_falls_back_to_empty()"
},
{
@@ -19449,7 +19710,7 @@
"source_file": "tests/unit/template/test_copier_driver.py",
"source_location": "L548",
"id": "template_test_copier_driver_test_resolve_plugin_order_preserved",
- "community": 61,
+ "community": 49,
"norm_label": "test_resolve_plugin_order_preserved()"
},
{
@@ -19458,7 +19719,7 @@
"source_file": "tests/unit/template/test_copier_driver.py",
"source_location": "L567",
"id": "template_test_copier_driver_test_resolve_non_list_plugin_order_falls_back_to_empty",
- "community": 61,
+ "community": 49,
"norm_label": "test_resolve_non_list_plugin_order_falls_back_to_empty()"
},
{
@@ -19467,7 +19728,7 @@
"source_file": "tests/unit/template/test_copier_driver.py",
"source_location": "L587",
"id": "template_test_copier_driver_test_render_snapshots_existing_regular_file_at_dst",
- "community": 61,
+ "community": 49,
"norm_label": "test_render_snapshots_existing_regular_file_at_dst()"
},
{
@@ -19476,7 +19737,7 @@
"source_file": "tests/unit/template/test_copier_driver.py",
"source_location": "L1",
"id": "template_test_copier_driver_rationale_1",
- "community": 61,
+ "community": 49,
"norm_label": "unit tests for ``exlab_wizard.template.copier_driver``. these tests pin the \u00a74."
},
{
@@ -19485,7 +19746,7 @@
"source_file": "tests/unit/utils/test_time.py",
"source_location": "L1",
"id": "tests_unit_utils_test_time_py",
- "community": 123,
+ "community": 134,
"norm_label": "test_time.py"
},
{
@@ -19494,7 +19755,7 @@
"source_file": "tests/unit/utils/test_time.py",
"source_location": "L20",
"id": "utils_test_time_test_utc_now_iso_format",
- "community": 123,
+ "community": 134,
"norm_label": "test_utc_now_iso_format()"
},
{
@@ -19503,7 +19764,7 @@
"source_file": "tests/unit/utils/test_time.py",
"source_location": "L25",
"id": "utils_test_time_test_dt_to_iso_naive_assumed_utc",
- "community": 123,
+ "community": 134,
"norm_label": "test_dt_to_iso_naive_assumed_utc()"
},
{
@@ -19512,7 +19773,7 @@
"source_file": "tests/unit/utils/test_time.py",
"source_location": "L30",
"id": "utils_test_time_test_dt_to_iso_utc_aware",
- "community": 123,
+ "community": 134,
"norm_label": "test_dt_to_iso_utc_aware()"
},
{
@@ -19521,7 +19782,7 @@
"source_file": "tests/unit/utils/test_time.py",
"source_location": "L35",
"id": "utils_test_time_test_dt_to_iso_non_utc_zone_converts",
- "community": 123,
+ "community": 134,
"norm_label": "test_dt_to_iso_non_utc_zone_converts()"
},
{
@@ -19530,7 +19791,7 @@
"source_file": "tests/unit/utils/test_time.py",
"source_location": "L42",
"id": "utils_test_time_test_parse_utc_iso_z_form",
- "community": 123,
+ "community": 134,
"norm_label": "test_parse_utc_iso_z_form()"
},
{
@@ -19539,7 +19800,7 @@
"source_file": "tests/unit/utils/test_time.py",
"source_location": "L47",
"id": "utils_test_time_test_parse_utc_iso_offset_form",
- "community": 123,
+ "community": 134,
"norm_label": "test_parse_utc_iso_offset_form()"
},
{
@@ -19548,7 +19809,7 @@
"source_file": "tests/unit/utils/test_time.py",
"source_location": "L52",
"id": "utils_test_time_test_parse_utc_iso_naive_input_tagged_utc",
- "community": 123,
+ "community": 134,
"norm_label": "test_parse_utc_iso_naive_input_tagged_utc()"
},
{
@@ -19557,7 +19818,7 @@
"source_file": "tests/unit/utils/test_time.py",
"source_location": "L57",
"id": "utils_test_time_test_parse_utc_iso_round_trip_with_now",
- "community": 123,
+ "community": 134,
"norm_label": "test_parse_utc_iso_round_trip_with_now()"
},
{
@@ -19566,7 +19827,7 @@
"source_file": "tests/unit/utils/test_time.py",
"source_location": "L63",
"id": "utils_test_time_test_parse_utc_iso_raises_on_garbage",
- "community": 123,
+ "community": 134,
"norm_label": "test_parse_utc_iso_raises_on_garbage()"
},
{
@@ -19575,7 +19836,7 @@
"source_file": "tests/unit/utils/test_time.py",
"source_location": "L68",
"id": "utils_test_time_test_parse_utc_iso_or_none_handles_none",
- "community": 123,
+ "community": 134,
"norm_label": "test_parse_utc_iso_or_none_handles_none()"
},
{
@@ -19584,7 +19845,7 @@
"source_file": "tests/unit/utils/test_time.py",
"source_location": "L72",
"id": "utils_test_time_test_parse_utc_iso_or_none_handles_empty",
- "community": 123,
+ "community": 134,
"norm_label": "test_parse_utc_iso_or_none_handles_empty()"
},
{
@@ -19593,7 +19854,7 @@
"source_file": "tests/unit/utils/test_time.py",
"source_location": "L76",
"id": "utils_test_time_test_parse_utc_iso_or_none_handles_malformed",
- "community": 123,
+ "community": 134,
"norm_label": "test_parse_utc_iso_or_none_handles_malformed()"
},
{
@@ -19602,7 +19863,7 @@
"source_file": "tests/unit/utils/test_time.py",
"source_location": "L80",
"id": "utils_test_time_test_parse_utc_iso_or_none_returns_datetime_for_valid",
- "community": 123,
+ "community": 134,
"norm_label": "test_parse_utc_iso_or_none_returns_datetime_for_valid()"
},
{
@@ -19611,7 +19872,7 @@
"source_file": "tests/unit/utils/test_time.py",
"source_location": "L1",
"id": "utils_test_time_rationale_1",
- "community": 123,
+ "community": 134,
"norm_label": "tests for ``exlab_wizard.utils.time``."
},
{
@@ -19620,7 +19881,7 @@
"source_file": "tests/unit/utils/__init__.py",
"source_location": "L1",
"id": "tests_unit_utils_init_py",
- "community": 531,
+ "community": 555,
"norm_label": "__init__.py"
},
{
@@ -19629,7 +19890,7 @@
"source_file": "tests/unit/utils/test_state.py",
"source_location": "L1",
"id": "tests_unit_utils_test_state_py",
- "community": 22,
+ "community": 24,
"norm_label": "test_state.py"
},
{
@@ -19638,7 +19899,7 @@
"source_file": "tests/unit/utils/test_state.py",
"source_location": "L12",
"id": "utils_test_state_state",
- "community": 22,
+ "community": 24,
"norm_label": "_state"
},
{
@@ -19647,7 +19908,7 @@
"source_file": "",
"source_location": "",
"id": "strenum",
- "community": 19,
+ "community": 29,
"norm_label": "strenum"
},
{
@@ -19656,7 +19917,7 @@
"source_file": "tests/unit/utils/test_state.py",
"source_location": "L25",
"id": "utils_test_state_test_allowed_transition_returns_none",
- "community": 22,
+ "community": 24,
"norm_label": "test_allowed_transition_returns_none()"
},
{
@@ -19665,7 +19926,7 @@
"source_file": "tests/unit/utils/test_state.py",
"source_location": "L29",
"id": "utils_test_state_test_disallowed_transition_raises",
- "community": 22,
+ "community": 24,
"norm_label": "test_disallowed_transition_raises()"
},
{
@@ -19674,7 +19935,7 @@
"source_file": "tests/unit/utils/test_state.py",
"source_location": "L34",
"id": "utils_test_state_test_terminal_transition_raises",
- "community": 22,
+ "community": 24,
"norm_label": "test_terminal_transition_raises()"
},
{
@@ -19683,7 +19944,7 @@
"source_file": "tests/unit/utils/test_state.py",
"source_location": "L39",
"id": "utils_test_state_test_unknown_source_raises",
- "community": 22,
+ "community": 24,
"norm_label": "test_unknown_source_raises()"
},
{
@@ -19692,7 +19953,7 @@
"source_file": "tests/unit/utils/test_state.py",
"source_location": "L1",
"id": "utils_test_state_rationale_1",
- "community": 22,
+ "community": 24,
"norm_label": "tests for ``exlab_wizard.utils.state``."
},
{
@@ -19701,7 +19962,7 @@
"source_file": "tests/unit/tray/test_storage_secret.py",
"source_location": "L1",
"id": "tests_unit_tray_test_storage_secret_py",
- "community": 260,
+ "community": 263,
"norm_label": "test_storage_secret.py"
},
{
@@ -19710,7 +19971,7 @@
"source_file": "tests/unit/tray/test_storage_secret.py",
"source_location": "L23",
"id": "tray_test_storage_secret_test_generates_secret_on_first_call",
- "community": 260,
+ "community": 263,
"norm_label": "test_generates_secret_on_first_call()"
},
{
@@ -19719,7 +19980,7 @@
"source_file": "tests/unit/tray/test_storage_secret.py",
"source_location": "L31",
"id": "tray_test_storage_secret_test_idempotent_across_calls",
- "community": 260,
+ "community": 263,
"norm_label": "test_idempotent_across_calls()"
},
{
@@ -19728,7 +19989,7 @@
"source_file": "tests/unit/tray/test_storage_secret.py",
"source_location": "L38",
"id": "tray_test_storage_secret_test_secret_file_mode_is_0600",
- "community": 260,
+ "community": 263,
"norm_label": "test_secret_file_mode_is_0600()"
},
{
@@ -19737,7 +19998,7 @@
"source_file": "tests/unit/tray/test_storage_secret.py",
"source_location": "L45",
"id": "tray_test_storage_secret_test_regenerates_on_empty_file",
- "community": 260,
+ "community": 263,
"norm_label": "test_regenerates_on_empty_file()"
},
{
@@ -19746,7 +20007,7 @@
"source_file": "tests/unit/tray/test_storage_secret.py",
"source_location": "L53",
"id": "tray_test_storage_secret_test_regenerates_on_whitespace_only_file",
- "community": 260,
+ "community": 263,
"norm_label": "test_regenerates_on_whitespace_only_file()"
},
{
@@ -19755,7 +20016,7 @@
"source_file": "tests/unit/tray/test_storage_secret.py",
"source_location": "L61",
"id": "tray_test_storage_secret_test_creates_state_dir_if_missing",
- "community": 260,
+ "community": 263,
"norm_label": "test_creates_state_dir_if_missing()"
},
{
@@ -19764,7 +20025,7 @@
"source_file": "tests/unit/tray/test_storage_secret.py",
"source_location": "L1",
"id": "tray_test_storage_secret_rationale_1",
- "community": 260,
+ "community": 263,
"norm_label": "tests for ``exlab_wizard.tray.storage_secret``. the secret backs nicegui's star"
},
{
@@ -19773,7 +20034,7 @@
"source_file": "tests/unit/tray/test_dependencies.py",
"source_location": "L1",
"id": "tests_unit_tray_test_dependencies_py",
- "community": 48,
+ "community": 43,
"norm_label": "test_dependencies.py"
},
{
@@ -19782,7 +20043,7 @@
"source_file": "tests/unit/tray/test_dependencies.py",
"source_location": "L39",
"id": "tray_test_dependencies_inmemorykeyring",
- "community": 48,
+ "community": 43,
"norm_label": "_inmemorykeyring"
},
{
@@ -19791,7 +20052,7 @@
"source_file": "tests/unit/tray/test_dependencies.py",
"source_location": "L44",
"id": "tray_test_dependencies_inmemorykeyring_init",
- "community": 48,
+ "community": 43,
"norm_label": ".__init__()"
},
{
@@ -19800,7 +20061,7 @@
"source_file": "tests/unit/tray/test_dependencies.py",
"source_location": "L47",
"id": "tray_test_dependencies_inmemorykeyring_get_password",
- "community": 48,
+ "community": 43,
"norm_label": ".get_password()"
},
{
@@ -19809,7 +20070,7 @@
"source_file": "tests/unit/tray/test_dependencies.py",
"source_location": "L50",
"id": "tray_test_dependencies_inmemorykeyring_set_password",
- "community": 48,
+ "community": 43,
"norm_label": ".set_password()"
},
{
@@ -19818,7 +20079,7 @@
"source_file": "tests/unit/tray/test_dependencies.py",
"source_location": "L53",
"id": "tray_test_dependencies_inmemorykeyring_delete_password",
- "community": 48,
+ "community": 43,
"norm_label": ".delete_password()"
},
{
@@ -19827,7 +20088,7 @@
"source_file": "tests/unit/tray/test_dependencies.py",
"source_location": "L58",
"id": "tray_test_dependencies_swap_keyring",
- "community": 48,
+ "community": 43,
"norm_label": "_swap_keyring()"
},
{
@@ -19836,7 +20097,7 @@
"source_file": "tests/unit/tray/test_dependencies.py",
"source_location": "L67",
"id": "tray_test_dependencies_test_build_production_dependencies_exposes_keyring_store",
- "community": 14,
+ "community": 22,
"norm_label": "test_build_production_dependencies_exposes_keyring_store()"
},
{
@@ -19854,7 +20115,7 @@
"source_file": "tests/unit/tray/test_dependencies.py",
"source_location": "L108",
"id": "tray_test_dependencies_test_check_keyring_present_true_when_lims_password_stored",
- "community": 48,
+ "community": 43,
"norm_label": "test_check_keyring_present_true_when_lims_password_stored()"
},
{
@@ -19863,7 +20124,7 @@
"source_file": "tests/unit/tray/test_dependencies.py",
"source_location": "L125",
"id": "tray_test_dependencies_test_lims_client_password_provider_reads_keyring_under_lims_username",
- "community": 48,
+ "community": 43,
"norm_label": "test_lims_client_password_provider_reads_keyring_under_lims_username()"
},
{
@@ -19872,7 +20133,7 @@
"source_file": "tests/unit/tray/test_dependencies.py",
"source_location": "L147",
"id": "tray_test_dependencies_nas_config_with_two_equipment",
- "community": 48,
+ "community": 43,
"norm_label": "_nas_config_with_two_equipment()"
},
{
@@ -19881,7 +20142,7 @@
"source_file": "tests/unit/tray/test_dependencies.py",
"source_location": "L170",
"id": "tray_test_dependencies_nas_config_with_remote",
- "community": 48,
+ "community": 43,
"norm_label": "_nas_config_with_remote()"
},
{
@@ -19908,7 +20169,7 @@
"source_file": "tests/unit/tray/test_dependencies.py",
"source_location": "L185",
"id": "tray_test_dependencies_test_make_equipment_probe_targets_nas_remote_not_keyring",
- "community": 48,
+ "community": 43,
"norm_label": "test_make_equipment_probe_targets_nas_remote_not_keyring()"
},
{
@@ -19917,7 +20178,7 @@
"source_file": "tests/unit/tray/test_dependencies.py",
"source_location": "L217",
"id": "tray_test_dependencies_test_make_equipment_probe_short_circuits_without_remote",
- "community": 48,
+ "community": 43,
"norm_label": "test_make_equipment_probe_short_circuits_without_remote()"
},
{
@@ -19926,7 +20187,7 @@
"source_file": "tests/unit/tray/test_dependencies.py",
"source_location": "L231",
"id": "tray_test_dependencies_test_make_equipment_probe_surfaces_about_failure",
- "community": 48,
+ "community": 43,
"norm_label": "test_make_equipment_probe_surfaces_about_failure()"
},
{
@@ -19935,7 +20196,7 @@
"source_file": "tests/unit/tray/test_dependencies.py",
"source_location": "L258",
"id": "tray_test_dependencies_test_nas_remote_available_reflects_listremotes",
- "community": 48,
+ "community": 43,
"norm_label": "test_nas_remote_available_reflects_listremotes()"
},
{
@@ -19944,7 +20205,7 @@
"source_file": "tests/unit/tray/test_dependencies.py",
"source_location": "L1",
"id": "tray_test_dependencies_rationale_1",
- "community": 48,
+ "community": 43,
"norm_label": "tests for the production dependency factory's keyring wiring. ``build_productio"
},
{
@@ -19953,7 +20214,7 @@
"source_file": "tests/unit/tray/test_dependencies.py",
"source_location": "L40",
"id": "tray_test_dependencies_rationale_40",
- "community": 48,
+ "community": 43,
"norm_label": "trivial in-memory keyring backend, mirroring the keyring-store tests."
},
{
@@ -19962,7 +20223,7 @@
"source_file": "tests/unit/tray/test_dependencies.py",
"source_location": "L68",
"id": "tray_test_dependencies_rationale_68",
- "community": 14,
+ "community": 22,
"norm_label": "the settings gui persists the lims password through deps.keyring_store."
},
{
@@ -19980,7 +20241,7 @@
"source_file": "tests/unit/tray/test_dependencies.py",
"source_location": "L109",
"id": "tray_test_dependencies_rationale_109",
- "community": 48,
+ "community": 43,
"norm_label": "the probe must look up the password under keyring_username_lims. regression"
},
{
@@ -19989,7 +20250,7 @@
"source_file": "tests/unit/tray/test_dependencies.py",
"source_location": "L128",
"id": "tray_test_dependencies_rationale_128",
- "community": 48,
+ "community": 43,
"norm_label": "the lims client's keyring provider resolves the stored password."
},
{
@@ -19998,7 +20259,7 @@
"source_file": "tests/unit/tray/test_dependencies.py",
"source_location": "L148",
"id": "tray_test_dependencies_rationale_148",
- "community": 48,
+ "community": 43,
"norm_label": "build a two-equipment nas-mode config for the nas-presence tests."
},
{
@@ -20007,7 +20268,7 @@
"source_file": "tests/unit/tray/test_dependencies.py",
"source_location": "L171",
"id": "tray_test_dependencies_rationale_171",
- "community": 48,
+ "community": 43,
"norm_label": "``_nas_config_with_two_equipment`` plus a configured ``nas:`` block."
},
{
@@ -20016,7 +20277,7 @@
"source_file": "tests/unit/tray/test_dependencies.py",
"source_location": "L188",
"id": "tray_test_dependencies_rationale_188",
- "community": 48,
+ "community": 43,
"norm_label": "the probe must call ``rclone about :`` and ignore the keyring."
},
{
@@ -20025,7 +20286,7 @@
"source_file": "tests/unit/tray/test_dependencies.py",
"source_location": "L218",
"id": "tray_test_dependencies_rationale_218",
- "community": 48,
+ "community": 43,
"norm_label": "no configured ``nas.remote`` must not spawn rclone."
},
{
@@ -20034,7 +20295,7 @@
"source_file": "tests/unit/tray/test_dependencies.py",
"source_location": "L234",
"id": "tray_test_dependencies_rationale_234",
- "community": 48,
+ "community": 43,
"norm_label": "a failing ``rclone about`` surfaces as ``ok=false`` with the reason."
},
{
@@ -20043,7 +20304,7 @@
"source_file": "tests/unit/tray/test_dependencies.py",
"source_location": "L261",
"id": "tray_test_dependencies_rationale_261",
- "community": 48,
+ "community": 43,
"norm_label": "boot-time hydration drives ``deps.nas_remote_available`` from listremotes."
},
{
@@ -20052,7 +20313,7 @@
"source_file": "tests/unit/tray/test_icon.py",
"source_location": "L1",
"id": "tests_unit_tray_test_icon_py",
- "community": 99,
+ "community": 103,
"norm_label": "test_icon.py"
},
{
@@ -20061,7 +20322,7 @@
"source_file": "tests/unit/tray/test_icon.py",
"source_location": "L18",
"id": "tray_test_icon_fakemenu",
- "community": 99,
+ "community": 103,
"norm_label": "_fakemenu"
},
{
@@ -20070,7 +20331,7 @@
"source_file": "tests/unit/tray/test_icon.py",
"source_location": "L21",
"id": "tray_test_icon_fakemenu_init",
- "community": 99,
+ "community": 103,
"norm_label": ".__init__()"
},
{
@@ -20079,7 +20340,7 @@
"source_file": "tests/unit/tray/test_icon.py",
"source_location": "L25",
"id": "tray_test_icon_fakemenuitem",
- "community": 99,
+ "community": 103,
"norm_label": "_fakemenuitem"
},
{
@@ -20088,7 +20349,7 @@
"source_file": "tests/unit/tray/test_icon.py",
"source_location": "L26",
"id": "tray_test_icon_fakemenuitem_init",
- "community": 99,
+ "community": 103,
"norm_label": ".__init__()"
},
{
@@ -20097,7 +20358,7 @@
"source_file": "tests/unit/tray/test_icon.py",
"source_location": "L40",
"id": "tray_test_icon_fakeicon",
- "community": 99,
+ "community": 103,
"norm_label": "_fakeicon"
},
{
@@ -20106,7 +20367,7 @@
"source_file": "tests/unit/tray/test_icon.py",
"source_location": "L41",
"id": "tray_test_icon_fakeicon_init",
- "community": 99,
+ "community": 103,
"norm_label": ".__init__()"
},
{
@@ -20115,7 +20376,7 @@
"source_file": "tests/unit/tray/test_icon.py",
"source_location": "L48",
"id": "tray_test_icon_fakepystray",
- "community": 99,
+ "community": 103,
"norm_label": "_fakepystray"
},
{
@@ -20124,7 +20385,7 @@
"source_file": "tests/unit/tray/test_icon.py",
"source_location": "L54",
"id": "tray_test_icon_test_build_icon_returns_icon_object",
- "community": 99,
+ "community": 103,
"norm_label": "test_build_icon_returns_icon_object()"
},
{
@@ -20133,7 +20394,7 @@
"source_file": "tests/unit/tray/test_icon.py",
"source_location": "L71",
"id": "tray_test_icon_test_open_menu_item_invokes_callback",
- "community": 99,
+ "community": 103,
"norm_label": "test_open_menu_item_invokes_callback()"
},
{
@@ -20142,7 +20403,7 @@
"source_file": "tests/unit/tray/test_icon.py",
"source_location": "L85",
"id": "tray_test_icon_test_quit_menu_item_invokes_callback",
- "community": 99,
+ "community": 103,
"norm_label": "test_quit_menu_item_invokes_callback()"
},
{
@@ -20151,7 +20412,7 @@
"source_file": "tests/unit/tray/test_icon.py",
"source_location": "L99",
"id": "tray_test_icon_test_status_label_callable",
- "community": 99,
+ "community": 103,
"norm_label": "test_status_label_callable()"
},
{
@@ -20160,7 +20421,7 @@
"source_file": "tests/unit/tray/test_icon.py",
"source_location": "L112",
"id": "tray_test_icon_test_callback_exception_is_swallowed",
- "community": 99,
+ "community": 103,
"norm_label": "test_callback_exception_is_swallowed()"
},
{
@@ -20169,7 +20430,7 @@
"source_file": "tests/unit/tray/test_icon.py",
"source_location": "L127",
"id": "tray_test_icon_test_default_icon_image_returns_pillow_image",
- "community": 99,
+ "community": 103,
"norm_label": "test_default_icon_image_returns_pillow_image()"
},
{
@@ -20178,7 +20439,7 @@
"source_file": "tests/unit/tray/test_icon.py",
"source_location": "L133",
"id": "tray_test_icon_test_lazy_pystray_import",
- "community": 99,
+ "community": 103,
"norm_label": "test_lazy_pystray_import()"
},
{
@@ -20187,7 +20448,7 @@
"source_file": "tests/unit/tray/test_icon.py",
"source_location": "L148",
"id": "tray_test_icon_test_separator_present",
- "community": 99,
+ "community": 103,
"norm_label": "test_separator_present()"
},
{
@@ -20196,7 +20457,7 @@
"source_file": "tests/unit/tray/test_icon.py",
"source_location": "L158",
"id": "tray_test_icon_test_import_pystray_returns_module",
- "community": 99,
+ "community": 103,
"norm_label": "test_import_pystray_returns_module()"
},
{
@@ -20205,7 +20466,7 @@
"source_file": "tests/unit/tray/test_icon.py",
"source_location": "L1",
"id": "tray_test_icon_rationale_1",
- "community": 99,
+ "community": 103,
"norm_label": "tests for :mod:`exlab_wizard.tray.icon`. backend spec \u00a74.3.2."
},
{
@@ -20214,7 +20475,7 @@
"source_file": "tests/unit/tray/test_icon.py",
"source_location": "L134",
"id": "tray_test_icon_rationale_134",
- "community": 99,
+ "community": 103,
"norm_label": "when ``pystray_module`` is omitted the lazy import path is taken."
},
{
@@ -20223,7 +20484,7 @@
"source_file": "tests/unit/tray/test_icon.py",
"source_location": "L159",
"id": "tray_test_icon_rationale_159",
- "community": 99,
+ "community": 103,
"norm_label": "the lazy-import helper imports pystray when called."
},
{
@@ -20232,7 +20493,7 @@
"source_file": "tests/unit/tray/test_live_reload.py",
"source_location": "L1",
"id": "tests_unit_tray_test_live_reload_py",
- "community": 97,
+ "community": 101,
"norm_label": "test_live_reload.py"
},
{
@@ -20241,7 +20502,7 @@
"source_file": "tests/unit/tray/test_live_reload.py",
"source_location": "L38",
"id": "tray_test_live_reload_stub_configure_logging",
- "community": 97,
+ "community": 101,
"norm_label": "_stub_configure_logging()"
},
{
@@ -20250,7 +20511,7 @@
"source_file": "tests/unit/tray/test_live_reload.py",
"source_location": "L52",
"id": "tray_test_live_reload_equipment",
- "community": 97,
+ "community": 101,
"norm_label": "_equipment()"
},
{
@@ -20259,7 +20520,7 @@
"source_file": "tests/unit/tray/test_live_reload.py",
"source_location": "L61",
"id": "tray_test_live_reload_config",
- "community": 97,
+ "community": 101,
"norm_label": "_config()"
},
{
@@ -20268,7 +20529,7 @@
"source_file": "tests/unit/tray/test_live_reload.py",
"source_location": "L77",
"id": "tray_test_live_reload_recordingcomponent",
- "community": 134,
+ "community": 0,
"norm_label": "_recordingcomponent"
},
{
@@ -20277,7 +20538,7 @@
"source_file": "tests/unit/tray/test_live_reload.py",
"source_location": "L80",
"id": "tray_test_live_reload_recordingcomponent_init",
- "community": 134,
+ "community": 0,
"norm_label": ".__init__()"
},
{
@@ -20286,7 +20547,7 @@
"source_file": "tests/unit/tray/test_live_reload.py",
"source_location": "L84",
"id": "tray_test_live_reload_recordingcomponent_apply_config",
- "community": 134,
+ "community": 0,
"norm_label": ".apply_config()"
},
{
@@ -20322,7 +20583,7 @@
"source_file": "tests/unit/tray/test_live_reload.py",
"source_location": "L97",
"id": "tray_test_live_reload_asyncstub",
- "community": 134,
+ "community": 0,
"norm_label": "_asyncstub"
},
{
@@ -20331,7 +20592,7 @@
"source_file": "tests/unit/tray/test_live_reload.py",
"source_location": "L100",
"id": "tray_test_live_reload_asyncstub_init",
- "community": 134,
+ "community": 0,
"norm_label": ".__init__()"
},
{
@@ -20340,7 +20601,7 @@
"source_file": "tests/unit/tray/test_live_reload.py",
"source_location": "L107",
"id": "tray_test_live_reload_asyncstub_start",
- "community": 134,
+ "community": 0,
"norm_label": ".start()"
},
{
@@ -20349,7 +20610,7 @@
"source_file": "tests/unit/tray/test_live_reload.py",
"source_location": "L111",
"id": "tray_test_live_reload_running_deps",
- "community": 97,
+ "community": 101,
"norm_label": "_running_deps()"
},
{
@@ -20358,7 +20619,7 @@
"source_file": "tests/unit/tray/test_live_reload.py",
"source_location": "L127",
"id": "tray_test_live_reload_test_reconfigures_existing_components_in_place",
- "community": 97,
+ "community": 101,
"norm_label": "test_reconfigures_existing_components_in_place()"
},
{
@@ -20367,7 +20628,7 @@
"source_file": "tests/unit/tray/test_live_reload.py",
"source_location": "L141",
"id": "tray_test_live_reload_test_skips_logging_reconfigure_when_unchanged",
- "community": 97,
+ "community": 101,
"norm_label": "test_skips_logging_reconfigure_when_unchanged()"
},
{
@@ -20376,7 +20637,7 @@
"source_file": "tests/unit/tray/test_live_reload.py",
"source_location": "L147",
"id": "tray_test_live_reload_test_component_failure_is_isolated",
- "community": 97,
+ "community": 101,
"norm_label": "test_component_failure_is_isolated()"
},
{
@@ -20385,7 +20646,7 @@
"source_file": "tests/unit/tray/test_live_reload.py",
"source_location": "L173",
"id": "tray_test_live_reload_test_rebuilds_lims_only_on_endpoint_change",
- "community": 97,
+ "community": 101,
"norm_label": "test_rebuilds_lims_only_on_endpoint_change()"
},
{
@@ -20394,7 +20655,7 @@
"source_file": "tests/unit/tray/test_live_reload.py",
"source_location": "L192",
"id": "tray_test_live_reload_test_rebuilds_plugin_host_only_on_dir_change",
- "community": 97,
+ "community": 101,
"norm_label": "test_rebuilds_plugin_host_only_on_dir_change()"
},
{
@@ -20403,7 +20664,7 @@
"source_file": "tests/unit/tray/test_live_reload.py",
"source_location": "L217",
"id": "tray_test_live_reload_test_builds_and_starts_components_on_fresh_install",
- "community": 97,
+ "community": 101,
"norm_label": "test_builds_and_starts_components_on_fresh_install()"
},
{
@@ -20412,7 +20673,7 @@
"source_file": "tests/unit/tray/test_live_reload.py",
"source_location": "L1",
"id": "tray_test_live_reload_rationale_1",
- "community": 97,
+ "community": 101,
"norm_label": "tests for the live config-reload coordinator (no tray relaunch). ``exlab_wizard"
},
{
@@ -20421,7 +20682,7 @@
"source_file": "tests/unit/tray/test_live_reload.py",
"source_location": "L39",
"id": "tray_test_live_reload_rationale_39",
- "community": 97,
+ "community": 101,
"norm_label": "stub the real logging reconfigure so tests don't churn global handlers. ret"
},
{
@@ -20430,7 +20691,7 @@
"source_file": "tests/unit/tray/test_live_reload.py",
"source_location": "L78",
"id": "tray_test_live_reload_rationale_78",
- "community": 134,
+ "community": 0,
"norm_label": "stub controller / nas_sync / poller recording ``apply_config`` calls."
},
{
@@ -20439,7 +20700,7 @@
"source_file": "tests/unit/tray/test_live_reload.py",
"source_location": "L98",
"id": "tray_test_live_reload_rationale_98",
- "community": 134,
+ "community": 0,
"norm_label": "fresh-built nas_sync / poller stub with async init / start."
},
{
@@ -20448,7 +20709,7 @@
"source_file": "tests/unit/tray/test_live_reload.py",
"source_location": "L112",
"id": "tray_test_live_reload_rationale_112",
- "community": 97,
+ "community": 101,
"norm_label": "build a deps bundle whose config-dependent components already exist."
},
{
@@ -20457,7 +20718,7 @@
"source_file": "tests/unit/tray/test_live_reload.py",
"source_location": "L148",
"id": "tray_test_live_reload_rationale_148",
- "community": 97,
+ "community": 101,
"norm_label": "one component raising must not abort the rest, and config still lands."
},
{
@@ -20466,7 +20727,7 @@
"source_file": "tests/unit/tray/test_live_reload.py",
"source_location": "L220",
"id": "tray_test_live_reload_rationale_220",
- "community": 97,
+ "community": 101,
"norm_label": "on a first save the absent components are built and their async bring-up is"
},
{
@@ -20475,7 +20736,7 @@
"source_file": "tests/unit/tray/__init__.py",
"source_location": "L1",
"id": "tests_unit_tray_init_py",
- "community": 442,
+ "community": 478,
"norm_label": "__init__.py"
},
{
@@ -20484,7 +20745,7 @@
"source_file": "src/exlab_wizard/tray/__init__.py",
"source_location": "L1",
"id": "tray_init_rationale_1",
- "community": 442,
+ "community": 478,
"norm_label": "tray application package. backend spec \u00a74.3.2. public api: * :class:`autostart"
},
{
@@ -20493,7 +20754,7 @@
"source_file": "tests/unit/tray/test_status.py",
"source_location": "L1",
"id": "tests_unit_tray_test_status_py",
- "community": 40,
+ "community": 47,
"norm_label": "test_status.py"
},
{
@@ -20502,7 +20763,7 @@
"source_file": "tests/unit/tray/test_status.py",
"source_location": "L17",
"id": "tray_test_status_stubstore",
- "community": 40,
+ "community": 47,
"norm_label": "_stubstore"
},
{
@@ -20511,7 +20772,7 @@
"source_file": "tests/unit/tray/test_status.py",
"source_location": "L18",
"id": "tray_test_status_stubstore_init",
- "community": 40,
+ "community": 47,
"norm_label": ".__init__()"
},
{
@@ -20520,7 +20781,7 @@
"source_file": "tests/unit/tray/test_status.py",
"source_location": "L23",
"id": "tray_test_status_stubsync",
- "community": 40,
+ "community": 47,
"norm_label": "_stubsync"
},
{
@@ -20529,7 +20790,7 @@
"source_file": "tests/unit/tray/test_status.py",
"source_location": "L24",
"id": "tray_test_status_stubsync_init",
- "community": 40,
+ "community": 47,
"norm_label": ".__init__()"
},
{
@@ -20538,7 +20799,7 @@
"source_file": "tests/unit/tray/test_status.py",
"source_location": "L28",
"id": "tray_test_status_test_format_status_idle",
- "community": 40,
+ "community": 47,
"norm_label": "test_format_status_idle()"
},
{
@@ -20547,7 +20808,7 @@
"source_file": "tests/unit/tray/test_status.py",
"source_location": "L33",
"id": "tray_test_status_test_format_status_sync_jobs",
- "community": 40,
+ "community": 47,
"norm_label": "test_format_status_sync_jobs()"
},
{
@@ -20556,7 +20817,7 @@
"source_file": "tests/unit/tray/test_status.py",
"source_location": "L38",
"id": "tray_test_status_test_format_status_single_job_uses_singular",
- "community": 40,
+ "community": 47,
"norm_label": "test_format_status_single_job_uses_singular()"
},
{
@@ -20565,7 +20826,7 @@
"source_file": "tests/unit/tray/test_status.py",
"source_location": "L43",
"id": "tray_test_status_test_format_status_input_required_singular",
- "community": 40,
+ "community": 47,
"norm_label": "test_format_status_input_required_singular()"
},
{
@@ -20574,7 +20835,7 @@
"source_file": "tests/unit/tray/test_status.py",
"source_location": "L48",
"id": "tray_test_status_test_format_status_input_required_plural",
- "community": 40,
+ "community": 47,
"norm_label": "test_format_status_input_required_plural()"
},
{
@@ -20583,7 +20844,7 @@
"source_file": "tests/unit/tray/test_status.py",
"source_location": "L53",
"id": "tray_test_status_test_format_status_combines_sync_and_input_required",
- "community": 40,
+ "community": 47,
"norm_label": "test_format_status_combines_sync_and_input_required()"
},
{
@@ -20592,7 +20853,7 @@
"source_file": "tests/unit/tray/test_status.py",
"source_location": "L58",
"id": "tray_test_status_test_snapshot_status_with_none_components",
- "community": 40,
+ "community": 47,
"norm_label": "test_snapshot_status_with_none_components()"
},
{
@@ -20601,7 +20862,7 @@
"source_file": "tests/unit/tray/test_status.py",
"source_location": "L65",
"id": "tray_test_status_test_snapshot_status_reads_components",
- "community": 40,
+ "community": 47,
"norm_label": "test_snapshot_status_reads_components()"
},
{
@@ -20610,7 +20871,7 @@
"source_file": "tests/unit/tray/test_status.py",
"source_location": "L75",
"id": "tray_test_status_test_snapshot_status_callable_attributes",
- "community": 40,
+ "community": 47,
"norm_label": "test_snapshot_status_callable_attributes()"
},
{
@@ -20619,7 +20880,7 @@
"source_file": "tests/unit/tray/test_status.py",
"source_location": "L84",
"id": "tray_test_status_test_ticker_invokes_callback_on_first_tick",
- "community": 40,
+ "community": 47,
"norm_label": "test_ticker_invokes_callback_on_first_tick()"
},
{
@@ -20628,7 +20889,7 @@
"source_file": "tests/unit/tray/test_status.py",
"source_location": "L97",
"id": "tray_test_status_test_ticker_does_not_invoke_callback_when_label_unchanged",
- "community": 40,
+ "community": 47,
"norm_label": "test_ticker_does_not_invoke_callback_when_label_unchanged()"
},
{
@@ -20637,7 +20898,7 @@
"source_file": "tests/unit/tray/test_status.py",
"source_location": "L109",
"id": "tray_test_status_test_ticker_start_and_stop_idempotent",
- "community": 40,
+ "community": 47,
"norm_label": "test_ticker_start_and_stop_idempotent()"
},
{
@@ -20646,7 +20907,7 @@
"source_file": "tests/unit/tray/test_status.py",
"source_location": "L117",
"id": "tray_test_status_test_ticker_callback_exception_is_swallowed",
- "community": 40,
+ "community": 47,
"norm_label": "test_ticker_callback_exception_is_swallowed()"
},
{
@@ -20655,7 +20916,7 @@
"source_file": "tests/unit/tray/test_status.py",
"source_location": "L127",
"id": "tray_test_status_test_ticker_thread_runs",
- "community": 40,
+ "community": 47,
"norm_label": "test_ticker_thread_runs()"
},
{
@@ -20664,7 +20925,7 @@
"source_file": "tests/unit/tray/test_status.py",
"source_location": "L149",
"id": "tray_test_status_test_default_refresh_matches_spec",
- "community": 40,
+ "community": 47,
"norm_label": "test_default_refresh_matches_spec()"
},
{
@@ -20673,7 +20934,7 @@
"source_file": "tests/unit/tray/test_status.py",
"source_location": "L154",
"id": "tray_test_status_test_safe_int_handles_callable_that_raises",
- "community": 40,
+ "community": 47,
"norm_label": "test_safe_int_handles_callable_that_raises()"
},
{
@@ -20682,7 +20943,7 @@
"source_file": "tests/unit/tray/test_status.py",
"source_location": "L164",
"id": "tray_test_status_test_safe_int_handles_non_numeric",
- "community": 40,
+ "community": 47,
"norm_label": "test_safe_int_handles_non_numeric()"
},
{
@@ -20691,7 +20952,7 @@
"source_file": "tests/unit/tray/test_status.py",
"source_location": "L1",
"id": "tray_test_status_rationale_1",
- "community": 40,
+ "community": 47,
"norm_label": "tests for :mod:`exlab_wizard.tray.status`. backend spec \u00a74.3.2."
},
{
@@ -20700,7 +20961,7 @@
"source_file": "tests/unit/tray/test_status.py",
"source_location": "L128",
"id": "tray_test_status_rationale_128",
- "community": 40,
+ "community": 47,
"norm_label": "drive the ticker thread for a short window and confirm callback fires."
},
{
@@ -20709,7 +20970,7 @@
"source_file": "tests/unit/tray/test_server_runner.py",
"source_location": "L1",
"id": "tests_unit_tray_test_server_runner_py",
- "community": 206,
+ "community": 27,
"norm_label": "test_server_runner.py"
},
{
@@ -20718,7 +20979,7 @@
"source_file": "tests/unit/tray/test_server_runner.py",
"source_location": "L21",
"id": "tray_test_server_runner_fakeuvicornserver",
- "community": 206,
+ "community": 27,
"norm_label": "_fakeuvicornserver"
},
{
@@ -20727,7 +20988,7 @@
"source_file": "tests/unit/tray/test_server_runner.py",
"source_location": "L24",
"id": "tray_test_server_runner_fakeuvicornserver_init",
- "community": 206,
+ "community": 27,
"norm_label": ".__init__()"
},
{
@@ -20736,7 +20997,7 @@
"source_file": "tests/unit/tray/test_server_runner.py",
"source_location": "L30",
"id": "tray_test_server_runner_fakeuvicornserver_run",
- "community": 206,
+ "community": 27,
"norm_label": ".run()"
},
{
@@ -20745,7 +21006,7 @@
"source_file": "tests/unit/tray/test_server_runner.py",
"source_location": "L44",
"id": "tray_test_server_runner_make_runner",
- "community": 206,
+ "community": 27,
"norm_label": "_make_runner()"
},
{
@@ -20754,7 +21015,7 @@
"source_file": "tests/unit/tray/test_server_runner.py",
"source_location": "L60",
"id": "tray_test_server_runner_test_pick_free_port_returns_bindable_port",
- "community": 74,
+ "community": 27,
"norm_label": "test_pick_free_port_returns_bindable_port()"
},
{
@@ -20763,7 +21024,7 @@
"source_file": "tests/unit/tray/test_server_runner.py",
"source_location": "L72",
"id": "tray_test_server_runner_test_start_writes_server_json_atomically",
- "community": 206,
+ "community": 27,
"norm_label": "test_start_writes_server_json_atomically()"
},
{
@@ -20772,7 +21033,7 @@
"source_file": "tests/unit/tray/test_server_runner.py",
"source_location": "L89",
"id": "tray_test_server_runner_test_stop_deletes_state_file",
- "community": 206,
+ "community": 27,
"norm_label": "test_stop_deletes_state_file()"
},
{
@@ -20781,7 +21042,7 @@
"source_file": "tests/unit/tray/test_server_runner.py",
"source_location": "L98",
"id": "tray_test_server_runner_test_double_start_raises",
- "community": 206,
+ "community": 27,
"norm_label": "test_double_start_raises()"
},
{
@@ -20790,7 +21051,7 @@
"source_file": "tests/unit/tray/test_server_runner.py",
"source_location": "L108",
"id": "tray_test_server_runner_test_port_property_before_start_raises",
- "community": 206,
+ "community": 27,
"norm_label": "test_port_property_before_start_raises()"
},
{
@@ -20799,7 +21060,7 @@
"source_file": "tests/unit/tray/test_server_runner.py",
"source_location": "L114",
"id": "tray_test_server_runner_test_port_property_after_start",
- "community": 206,
+ "community": 27,
"norm_label": "test_port_property_after_start()"
},
{
@@ -20808,7 +21069,7 @@
"source_file": "tests/unit/tray/test_server_runner.py",
"source_location": "L123",
"id": "tray_test_server_runner_test_state_file_property_returns_expected_path",
- "community": 206,
+ "community": 27,
"norm_label": "test_state_file_property_returns_expected_path()"
},
{
@@ -20817,7 +21078,7 @@
"source_file": "tests/unit/tray/test_server_runner.py",
"source_location": "L128",
"id": "tray_test_server_runner_test_stop_is_idempotent",
- "community": 206,
+ "community": 27,
"norm_label": "test_stop_is_idempotent()"
},
{
@@ -20826,7 +21087,7 @@
"source_file": "tests/unit/tray/test_server_runner.py",
"source_location": "L135",
"id": "tray_test_server_runner_test_start_creates_state_dir_if_missing",
- "community": 206,
+ "community": 27,
"norm_label": "test_start_creates_state_dir_if_missing()"
},
{
@@ -20835,7 +21096,7 @@
"source_file": "tests/unit/tray/test_server_runner.py",
"source_location": "L145",
"id": "tray_test_server_runner_test_is_running_tracks_thread_lifecycle",
- "community": 206,
+ "community": 27,
"norm_label": "test_is_running_tracks_thread_lifecycle()"
},
{
@@ -20844,7 +21105,7 @@
"source_file": "tests/unit/tray/test_server_runner.py",
"source_location": "L157",
"id": "tray_test_server_runner_test_real_uvicorn_resolves_lazily",
- "community": 74,
+ "community": 27,
"norm_label": "test_real_uvicorn_resolves_lazily()"
},
{
@@ -20853,7 +21114,7 @@
"source_file": "tests/unit/tray/test_server_runner.py",
"source_location": "L170",
"id": "tray_test_server_runner_test_delete_state_file_handles_missing",
- "community": 74,
+ "community": 27,
"norm_label": "test_delete_state_file_handles_missing()"
},
{
@@ -20862,7 +21123,7 @@
"source_file": "tests/unit/tray/test_server_runner.py",
"source_location": "L176",
"id": "tray_test_server_runner_test_stop_handles_attribute_error_on_should_exit",
- "community": 206,
+ "community": 27,
"norm_label": "test_stop_handles_attribute_error_on_should_exit()"
},
{
@@ -20871,7 +21132,7 @@
"source_file": "tests/unit/tray/test_server_runner.py",
"source_location": "L1",
"id": "tray_test_server_runner_rationale_1",
- "community": 206,
+ "community": 27,
"norm_label": "tests for :mod:`exlab_wizard.tray.server_runner`. backend spec \u00a74.3.2."
},
{
@@ -20880,7 +21141,7 @@
"source_file": "tests/unit/tray/test_server_runner.py",
"source_location": "L22",
"id": "tray_test_server_runner_rationale_22",
- "community": 206,
+ "community": 27,
"norm_label": "fake :class:`uvicorn.server` that runs a tiny event loop."
},
{
@@ -20889,7 +21150,7 @@
"source_file": "tests/unit/tray/test_server_runner.py",
"source_location": "L158",
"id": "tray_test_server_runner_rationale_158",
- "community": 74,
+ "community": 27,
"norm_label": "the real ``_build_uvicorn`` defers the uvicorn import. we can call ``_build"
},
{
@@ -20898,7 +21159,7 @@
"source_file": "tests/unit/tray/test_server_runner.py",
"source_location": "L177",
"id": "tray_test_server_runner_rationale_177",
- "community": 206,
+ "community": 27,
"norm_label": "a custom server object missing ``should_exit`` is tolerated."
},
{
@@ -20907,7 +21168,7 @@
"source_file": "tests/unit/tray/test_notifications.py",
"source_location": "L1",
"id": "tests_unit_tray_test_notifications_py",
- "community": 36,
+ "community": 44,
"norm_label": "test_notifications.py"
},
{
@@ -20916,7 +21177,7 @@
"source_file": "tests/unit/tray/test_notifications.py",
"source_location": "L19",
"id": "tray_test_notifications_test_notify_calls_injected_callable",
- "community": 36,
+ "community": 44,
"norm_label": "test_notify_calls_injected_callable()"
},
{
@@ -20925,7 +21186,7 @@
"source_file": "tests/unit/tray/test_notifications.py",
"source_location": "L29",
"id": "tray_test_notifications_test_notify_swallows_notifier_exceptions",
- "community": 36,
+ "community": 44,
"norm_label": "test_notify_swallows_notifier_exceptions()"
},
{
@@ -20934,7 +21195,7 @@
"source_file": "tests/unit/tray/test_notifications.py",
"source_location": "L37",
"id": "tray_test_notifications_test_bus_emits_after_coalescing_window",
- "community": 36,
+ "community": 44,
"norm_label": "test_bus_emits_after_coalescing_window()"
},
{
@@ -20943,7 +21204,7 @@
"source_file": "tests/unit/tray/test_notifications.py",
"source_location": "L63",
"id": "tray_test_notifications_test_bus_suppresses_when_window_foregrounded",
- "community": 36,
+ "community": 44,
"norm_label": "test_bus_suppresses_when_window_foregrounded()"
},
{
@@ -20952,7 +21213,7 @@
"source_file": "tests/unit/tray/test_notifications.py",
"source_location": "L74",
"id": "tray_test_notifications_test_bus_separate_kinds_separate_buckets",
- "community": 36,
+ "community": 44,
"norm_label": "test_bus_separate_kinds_separate_buckets()"
},
{
@@ -20961,7 +21222,7 @@
"source_file": "tests/unit/tray/test_notifications.py",
"source_location": "L89",
"id": "tray_test_notifications_test_bus_cancel_all_drops_pending",
- "community": 36,
+ "community": 44,
"norm_label": "test_bus_cancel_all_drops_pending()"
},
{
@@ -20970,7 +21231,7 @@
"source_file": "tests/unit/tray/test_notifications.py",
"source_location": "L102",
"id": "tray_test_notifications_test_bus_emits_singleton_message_unchanged",
- "community": 36,
+ "community": 44,
"norm_label": "test_bus_emits_singleton_message_unchanged()"
},
{
@@ -20979,7 +21240,7 @@
"source_file": "tests/unit/tray/test_notifications.py",
"source_location": "L114",
"id": "tray_test_notifications_test_coalescing_window_constant_matches_spec",
- "community": 36,
+ "community": 44,
"norm_label": "test_coalescing_window_constant_matches_spec()"
},
{
@@ -20988,7 +21249,7 @@
"source_file": "tests/unit/tray/test_notifications.py",
"source_location": "L118",
"id": "tray_test_notifications_test_coalesced_message_plugin_input_required_plural",
- "community": 36,
+ "community": 44,
"norm_label": "test_coalesced_message_plugin_input_required_plural()"
},
{
@@ -20997,7 +21258,7 @@
"source_file": "tests/unit/tray/test_notifications.py",
"source_location": "L122",
"id": "tray_test_notifications_test_coalesced_message_plugin_input_required_singular",
- "community": 36,
+ "community": 44,
"norm_label": "test_coalesced_message_plugin_input_required_singular()"
},
{
@@ -21006,7 +21267,7 @@
"source_file": "tests/unit/tray/test_notifications.py",
"source_location": "L126",
"id": "tray_test_notifications_test_coalesced_message_sync_failed_plural",
- "community": 36,
+ "community": 44,
"norm_label": "test_coalesced_message_sync_failed_plural()"
},
{
@@ -21015,7 +21276,7 @@
"source_file": "tests/unit/tray/test_notifications.py",
"source_location": "L130",
"id": "tray_test_notifications_test_coalesced_message_sync_failed_singular",
- "community": 36,
+ "community": 44,
"norm_label": "test_coalesced_message_sync_failed_singular()"
},
{
@@ -21024,7 +21285,7 @@
"source_file": "tests/unit/tray/test_notifications.py",
"source_location": "L134",
"id": "tray_test_notifications_test_coalesced_message_unknown_kind",
- "community": 36,
+ "community": 44,
"norm_label": "test_coalesced_message_unknown_kind()"
},
{
@@ -21033,7 +21294,7 @@
"source_file": "tests/unit/tray/test_notifications.py",
"source_location": "L138",
"id": "tray_test_notifications_test_bus_timer_fires_after_window",
- "community": 36,
+ "community": 44,
"norm_label": "test_bus_timer_fires_after_window()"
},
{
@@ -21042,7 +21303,7 @@
"source_file": "tests/unit/tray/test_notifications.py",
"source_location": "L153",
"id": "tray_test_notifications_test_default_notifier_returns_callable",
- "community": 36,
+ "community": 44,
"norm_label": "test_default_notifier_returns_callable()"
},
{
@@ -21051,7 +21312,7 @@
"source_file": "tests/unit/tray/test_notifications.py",
"source_location": "L161",
"id": "tray_test_notifications_test_noop_notifier_swallows_arbitrary_kwargs",
- "community": 36,
+ "community": 44,
"norm_label": "test_noop_notifier_swallows_arbitrary_kwargs()"
},
{
@@ -21060,7 +21321,7 @@
"source_file": "tests/unit/tray/test_notifications.py",
"source_location": "L168",
"id": "tray_test_notifications_test_notify_uses_default_notifier_when_none",
- "community": 36,
+ "community": 44,
"norm_label": "test_notify_uses_default_notifier_when_none()"
},
{
@@ -21069,7 +21330,7 @@
"source_file": "tests/unit/tray/test_notifications.py",
"source_location": "L180",
"id": "tray_test_notifications_test_flush_with_already_drained_bucket",
- "community": 36,
+ "community": 44,
"norm_label": "test_flush_with_already_drained_bucket()"
},
{
@@ -21078,7 +21339,7 @@
"source_file": "tests/unit/tray/test_notifications.py",
"source_location": "L1",
"id": "tray_test_notifications_rationale_1",
- "community": 36,
+ "community": 44,
"norm_label": "tests for :mod:`exlab_wizard.tray.notifications`. backend spec \u00a715.7.3."
},
{
@@ -21087,7 +21348,7 @@
"source_file": "tests/unit/tray/test_notifications.py",
"source_location": "L139",
"id": "tray_test_notifications_rationale_139",
- "community": 36,
+ "community": 44,
"norm_label": "drive the real timer with a tiny window."
},
{
@@ -21096,7 +21357,7 @@
"source_file": "tests/unit/tray/test_notifications.py",
"source_location": "L154",
"id": "tray_test_notifications_rationale_154",
- "community": 36,
+ "community": 44,
"norm_label": "the default notifier resolves either to plyer or to the noop fallback."
},
{
@@ -21105,7 +21366,7 @@
"source_file": "tests/unit/tray/test_notifications.py",
"source_location": "L162",
"id": "tray_test_notifications_rationale_162",
- "community": 36,
+ "community": 44,
"norm_label": "fallback notifier is keyword-tolerant."
},
{
@@ -21114,7 +21375,7 @@
"source_file": "tests/unit/tray/test_notifications.py",
"source_location": "L181",
"id": "tray_test_notifications_rationale_181",
- "community": 36,
+ "community": 44,
"norm_label": "``_flush`` is safe when the bucket has already been popped (race)."
},
{
@@ -21123,7 +21384,7 @@
"source_file": "tests/unit/tray/test_quit_coordinator.py",
"source_location": "L1",
"id": "tests_unit_tray_test_quit_coordinator_py",
- "community": 47,
+ "community": 58,
"norm_label": "test_quit_coordinator.py"
},
{
@@ -21132,7 +21393,7 @@
"source_file": "tests/unit/tray/test_quit_coordinator.py",
"source_location": "L17",
"id": "tray_test_quit_coordinator_stubserver",
- "community": 47,
+ "community": 58,
"norm_label": "_stubserver"
},
{
@@ -21141,7 +21402,7 @@
"source_file": "tests/unit/tray/test_quit_coordinator.py",
"source_location": "L18",
"id": "tray_test_quit_coordinator_stubserver_init",
- "community": 47,
+ "community": 58,
"norm_label": ".__init__()"
},
{
@@ -21150,7 +21411,7 @@
"source_file": "tests/unit/tray/test_quit_coordinator.py",
"source_location": "L21",
"id": "tray_test_quit_coordinator_stubserver_stop",
- "community": 47,
+ "community": 58,
"norm_label": ".stop()"
},
{
@@ -21159,7 +21420,7 @@
"source_file": "tests/unit/tray/test_quit_coordinator.py",
"source_location": "L25",
"id": "tray_test_quit_coordinator_stubwindow",
- "community": 47,
+ "community": 58,
"norm_label": "_stubwindow"
},
{
@@ -21168,7 +21429,7 @@
"source_file": "tests/unit/tray/test_quit_coordinator.py",
"source_location": "L26",
"id": "tray_test_quit_coordinator_stubwindow_init",
- "community": 47,
+ "community": 58,
"norm_label": ".__init__()"
},
{
@@ -21177,7 +21438,7 @@
"source_file": "tests/unit/tray/test_quit_coordinator.py",
"source_location": "L29",
"id": "tray_test_quit_coordinator_stubwindow_close",
- "community": 47,
+ "community": 58,
"norm_label": ".close()"
},
{
@@ -21186,7 +21447,7 @@
"source_file": "tests/unit/tray/test_quit_coordinator.py",
"source_location": "L33",
"id": "tray_test_quit_coordinator_counted",
- "community": 47,
+ "community": 58,
"norm_label": "_counted"
},
{
@@ -21195,7 +21456,7 @@
"source_file": "tests/unit/tray/test_quit_coordinator.py",
"source_location": "L34",
"id": "tray_test_quit_coordinator_counted_init",
- "community": 47,
+ "community": 58,
"norm_label": ".__init__()"
},
{
@@ -21204,7 +21465,7 @@
"source_file": "tests/unit/tray/test_quit_coordinator.py",
"source_location": "L38",
"id": "tray_test_quit_coordinator_make_coordinator",
- "community": 47,
+ "community": 58,
"norm_label": "_make_coordinator()"
},
{
@@ -21213,7 +21474,7 @@
"source_file": "tests/unit/tray/test_quit_coordinator.py",
"source_location": "L64",
"id": "tray_test_quit_coordinator_test_idle_predicate_short_circuits",
- "community": 47,
+ "community": 58,
"norm_label": "test_idle_predicate_short_circuits()"
},
{
@@ -21222,7 +21483,7 @@
"source_file": "tests/unit/tray/test_quit_coordinator.py",
"source_location": "L72",
"id": "tray_test_quit_coordinator_test_busy_predicate_times_out_and_force_quits",
- "community": 47,
+ "community": 58,
"norm_label": "test_busy_predicate_times_out_and_force_quits()"
},
{
@@ -21231,7 +21492,7 @@
"source_file": "tests/unit/tray/test_quit_coordinator.py",
"source_location": "L91",
"id": "tray_test_quit_coordinator_test_busy_predicate_wait_resets_timer",
- "community": 47,
+ "community": 58,
"norm_label": "test_busy_predicate_wait_resets_timer()"
},
{
@@ -21240,7 +21501,7 @@
"source_file": "tests/unit/tray/test_quit_coordinator.py",
"source_location": "L111",
"id": "tray_test_quit_coordinator_test_sigterm_uses_short_timeout",
- "community": 47,
+ "community": 58,
"norm_label": "test_sigterm_uses_short_timeout()"
},
{
@@ -21249,7 +21510,7 @@
"source_file": "tests/unit/tray/test_quit_coordinator.py",
"source_location": "L137",
"id": "tray_test_quit_coordinator_test_quit_handles_missing_window_launcher",
- "community": 47,
+ "community": 58,
"norm_label": "test_quit_handles_missing_window_launcher()"
},
{
@@ -21258,7 +21519,7 @@
"source_file": "tests/unit/tray/test_quit_coordinator.py",
"source_location": "L152",
"id": "tray_test_quit_coordinator_test_safe_count_handles_callable_attribute",
- "community": 47,
+ "community": 58,
"norm_label": "test_safe_count_handles_callable_attribute()"
},
{
@@ -21267,7 +21528,7 @@
"source_file": "tests/unit/tray/test_quit_coordinator.py",
"source_location": "L158",
"id": "tray_test_quit_coordinator_test_safe_count_handles_callable_that_raises",
- "community": 47,
+ "community": 58,
"norm_label": "test_safe_count_handles_callable_that_raises()"
},
{
@@ -21276,7 +21537,7 @@
"source_file": "tests/unit/tray/test_quit_coordinator.py",
"source_location": "L168",
"id": "tray_test_quit_coordinator_test_safe_count_handles_none_obj",
- "community": 47,
+ "community": 58,
"norm_label": "test_safe_count_handles_none_obj()"
},
{
@@ -21285,7 +21546,7 @@
"source_file": "tests/unit/tray/test_quit_coordinator.py",
"source_location": "L172",
"id": "tray_test_quit_coordinator_test_safe_count_handles_non_numeric",
- "community": 47,
+ "community": 58,
"norm_label": "test_safe_count_handles_non_numeric()"
},
{
@@ -21294,7 +21555,7 @@
"source_file": "tests/unit/tray/test_quit_coordinator.py",
"source_location": "L179",
"id": "tray_test_quit_coordinator_test_force_quit_prompt_exception_defaults_to_force",
- "community": 47,
+ "community": 58,
"norm_label": "test_force_quit_prompt_exception_defaults_to_force()"
},
{
@@ -21303,7 +21564,7 @@
"source_file": "tests/unit/tray/test_quit_coordinator.py",
"source_location": "L192",
"id": "tray_test_quit_coordinator_test_default_timeout_constants_match_spec",
- "community": 47,
+ "community": 58,
"norm_label": "test_default_timeout_constants_match_spec()"
},
{
@@ -21312,7 +21573,7 @@
"source_file": "tests/unit/tray/test_quit_coordinator.py",
"source_location": "L199",
"id": "tray_test_quit_coordinator_test_idle_predicate_returns_true_immediately",
- "community": 47,
+ "community": 58,
"norm_label": "test_idle_predicate_returns_true_immediately()"
},
{
@@ -21321,7 +21582,7 @@
"source_file": "tests/unit/tray/test_quit_coordinator.py",
"source_location": "L208",
"id": "tray_test_quit_coordinator_test_predicate_eventually_becomes_true",
- "community": 47,
+ "community": 58,
"norm_label": "test_predicate_eventually_becomes_true()"
},
{
@@ -21330,7 +21591,7 @@
"source_file": "tests/unit/tray/test_quit_coordinator.py",
"source_location": "L1",
"id": "tray_test_quit_coordinator_rationale_1",
- "community": 47,
+ "community": 58,
"norm_label": "tests for :mod:`exlab_wizard.tray.quit_coordinator`. backend spec \u00a74.3.2."
},
{
@@ -21339,7 +21600,7 @@
"source_file": "tests/unit/tray/test_quit_coordinator.py",
"source_location": "L209",
"id": "tray_test_quit_coordinator_rationale_209",
- "community": 47,
+ "community": 58,
"norm_label": "wait loop returns true when the predicate flips mid-wait."
},
{
@@ -21348,7 +21609,7 @@
"source_file": "tests/unit/tray/test_window_launcher.py",
"source_location": "L1",
"id": "tests_unit_tray_test_window_launcher_py",
- "community": 86,
+ "community": 88,
"norm_label": "test_window_launcher.py"
},
{
@@ -21357,7 +21618,7 @@
"source_file": "tests/unit/tray/test_window_launcher.py",
"source_location": "L18",
"id": "tray_test_window_launcher_python_window_argv",
- "community": 86,
+ "community": 88,
"norm_label": "_python_window_argv()"
},
{
@@ -21366,7 +21627,7 @@
"source_file": "tests/unit/tray/test_window_launcher.py",
"source_location": "L29",
"id": "tray_test_window_launcher_test_open_spawns_subprocess",
- "community": 86,
+ "community": 88,
"norm_label": "test_open_spawns_subprocess()"
},
{
@@ -21375,7 +21636,7 @@
"source_file": "tests/unit/tray/test_window_launcher.py",
"source_location": "L42",
"id": "tray_test_window_launcher_test_close_terminates_subprocess",
- "community": 86,
+ "community": 88,
"norm_label": "test_close_terminates_subprocess()"
},
{
@@ -21384,7 +21645,7 @@
"source_file": "tests/unit/tray/test_window_launcher.py",
"source_location": "L53",
"id": "tray_test_window_launcher_test_close_is_idempotent",
- "community": 86,
+ "community": 88,
"norm_label": "test_close_is_idempotent()"
},
{
@@ -21393,7 +21654,7 @@
"source_file": "tests/unit/tray/test_window_launcher.py",
"source_location": "L60",
"id": "tray_test_window_launcher_test_open_focuses_existing",
- "community": 86,
+ "community": 88,
"norm_label": "test_open_focuses_existing()"
},
{
@@ -21402,7 +21663,7 @@
"source_file": "tests/unit/tray/test_window_launcher.py",
"source_location": "L71",
"id": "tray_test_window_launcher_test_resolve_window_executable_prefers_env_var",
- "community": 86,
+ "community": 88,
"norm_label": "test_resolve_window_executable_prefers_env_var()"
},
{
@@ -21411,7 +21672,7 @@
"source_file": "tests/unit/tray/test_window_launcher.py",
"source_location": "L76",
"id": "tray_test_window_launcher_test_resolve_window_executable_uses_path",
- "community": 86,
+ "community": 88,
"norm_label": "test_resolve_window_executable_uses_path()"
},
{
@@ -21420,7 +21681,7 @@
"source_file": "tests/unit/tray/test_window_launcher.py",
"source_location": "L85",
"id": "tray_test_window_launcher_test_resolve_window_executable_falls_back_to_module",
- "community": 86,
+ "community": 88,
"norm_label": "test_resolve_window_executable_falls_back_to_module()"
},
{
@@ -21429,7 +21690,7 @@
"source_file": "tests/unit/tray/test_window_launcher.py",
"source_location": "L95",
"id": "tray_test_window_launcher_test_window_executable_override",
- "community": 86,
+ "community": 88,
"norm_label": "test_window_executable_override()"
},
{
@@ -21438,7 +21699,7 @@
"source_file": "tests/unit/tray/test_window_launcher.py",
"source_location": "L103",
"id": "tray_test_window_launcher_test_argv_falls_through_resolve_helper",
- "community": 86,
+ "community": 88,
"norm_label": "test_argv_falls_through_resolve_helper()"
},
{
@@ -21447,7 +21708,7 @@
"source_file": "tests/unit/tray/test_window_launcher.py",
"source_location": "L113",
"id": "tray_test_window_launcher_test_pid_is_none_before_open",
- "community": 86,
+ "community": 88,
"norm_label": "test_pid_is_none_before_open()"
},
{
@@ -21456,7 +21717,7 @@
"source_file": "tests/unit/tray/test_window_launcher.py",
"source_location": "L119",
"id": "tray_test_window_launcher_test_close_kills_unresponsive_process",
- "community": 86,
+ "community": 88,
"norm_label": "test_close_kills_unresponsive_process()"
},
{
@@ -21465,7 +21726,7 @@
"source_file": "tests/unit/tray/test_window_launcher.py",
"source_location": "L1",
"id": "tray_test_window_launcher_rationale_1",
- "community": 86,
+ "community": 88,
"norm_label": "tests for :mod:`exlab_wizard.tray.window_launcher`. backend spec \u00a74.3.2."
},
{
@@ -21474,7 +21735,7 @@
"source_file": "tests/unit/tray/test_window_launcher.py",
"source_location": "L19",
"id": "tray_test_window_launcher_rationale_19",
- "community": 86,
+ "community": 88,
"norm_label": "return an argv that runs a tiny window stand-in (a sleep)."
},
{
@@ -21483,7 +21744,7 @@
"source_file": "tests/unit/tray/test_window_launcher.py",
"source_location": "L104",
"id": "tray_test_window_launcher_rationale_104",
- "community": 86,
+ "community": 88,
"norm_label": "default constructor with no override delegates to the resolver."
},
{
@@ -21492,7 +21753,7 @@
"source_file": "tests/unit/tray/test_autostart.py",
"source_location": "L1",
"id": "tests_unit_tray_test_autostart_py",
- "community": 73,
+ "community": 72,
"norm_label": "test_autostart.py"
},
{
@@ -21501,7 +21762,7 @@
"source_file": "tests/unit/tray/test_autostart.py",
"source_location": "L24",
"id": "tray_test_autostart_test_macos_register_writes_plist",
- "community": 73,
+ "community": 72,
"norm_label": "test_macos_register_writes_plist()"
},
{
@@ -21510,7 +21771,7 @@
"source_file": "tests/unit/tray/test_autostart.py",
"source_location": "L40",
"id": "tray_test_autostart_test_macos_unregister_removes_plist",
- "community": 73,
+ "community": 72,
"norm_label": "test_macos_unregister_removes_plist()"
},
{
@@ -21519,7 +21780,7 @@
"source_file": "tests/unit/tray/test_autostart.py",
"source_location": "L51",
"id": "tray_test_autostart_test_macos_register_is_idempotent",
- "community": 73,
+ "community": 72,
"norm_label": "test_macos_register_is_idempotent()"
},
{
@@ -21528,7 +21789,7 @@
"source_file": "tests/unit/tray/test_autostart.py",
"source_location": "L63",
"id": "tray_test_autostart_test_linux_register_writes_systemd_and_desktop",
- "community": 73,
+ "community": 72,
"norm_label": "test_linux_register_writes_systemd_and_desktop()"
},
{
@@ -21537,7 +21798,7 @@
"source_file": "tests/unit/tray/test_autostart.py",
"source_location": "L80",
"id": "tray_test_autostart_test_linux_unregister_removes_both_files",
- "community": 73,
+ "community": 72,
"norm_label": "test_linux_unregister_removes_both_files()"
},
{
@@ -21546,7 +21807,7 @@
"source_file": "tests/unit/tray/test_autostart.py",
"source_location": "L87",
"id": "tray_test_autostart_test_linux_is_registered_when_only_desktop_present",
- "community": 73,
+ "community": 72,
"norm_label": "test_linux_is_registered_when_only_desktop_present()"
},
{
@@ -21555,7 +21816,7 @@
"source_file": "tests/unit/tray/test_autostart.py",
"source_location": "L100",
"id": "tray_test_autostart_fakekey",
- "community": 73,
+ "community": 271,
"norm_label": "_fakekey"
},
{
@@ -21564,7 +21825,7 @@
"source_file": "tests/unit/tray/test_autostart.py",
"source_location": "L101",
"id": "tray_test_autostart_fakekey_init",
- "community": 73,
+ "community": 271,
"norm_label": ".__init__()"
},
{
@@ -21573,7 +21834,7 @@
"source_file": "tests/unit/tray/test_autostart.py",
"source_location": "L105",
"id": "tray_test_autostart_fakekey_enter",
- "community": 73,
+ "community": 271,
"norm_label": ".__enter__()"
},
{
@@ -21582,7 +21843,7 @@
"source_file": "tests/unit/tray/test_autostart.py",
"source_location": "L108",
"id": "tray_test_autostart_fakekey_exit",
- "community": 73,
+ "community": 271,
"norm_label": ".__exit__()"
},
{
@@ -21591,7 +21852,7 @@
"source_file": "tests/unit/tray/test_autostart.py",
"source_location": "L112",
"id": "tray_test_autostart_fakewinreg",
- "community": 73,
+ "community": 271,
"norm_label": "_fakewinreg"
},
{
@@ -21600,7 +21861,7 @@
"source_file": "tests/unit/tray/test_autostart.py",
"source_location": "L118",
"id": "tray_test_autostart_fakewinreg_init",
- "community": 73,
+ "community": 271,
"norm_label": ".__init__()"
},
{
@@ -21609,7 +21870,7 @@
"source_file": "tests/unit/tray/test_autostart.py",
"source_location": "L122",
"id": "tray_test_autostart_fakewinreg_openkey",
- "community": 73,
+ "community": 271,
"norm_label": ".openkey()"
},
{
@@ -21618,7 +21879,7 @@
"source_file": "tests/unit/tray/test_autostart.py",
"source_location": "L133",
"id": "tray_test_autostart_fakewinreg_setvalueex",
- "community": 73,
+ "community": 271,
"norm_label": ".setvalueex()"
},
{
@@ -21627,7 +21888,7 @@
"source_file": "tests/unit/tray/test_autostart.py",
"source_location": "L145",
"id": "tray_test_autostart_fakewinreg_queryvalueex",
- "community": 73,
+ "community": 271,
"norm_label": ".queryvalueex()"
},
{
@@ -21636,7 +21897,7 @@
"source_file": "tests/unit/tray/test_autostart.py",
"source_location": "L150",
"id": "tray_test_autostart_fakewinreg_deletevalue",
- "community": 73,
+ "community": 271,
"norm_label": ".deletevalue()"
},
{
@@ -21645,7 +21906,7 @@
"source_file": "tests/unit/tray/test_autostart.py",
"source_location": "L155",
"id": "tray_test_autostart_fake_winreg",
- "community": 73,
+ "community": 271,
"norm_label": "fake_winreg()"
},
{
@@ -21654,7 +21915,7 @@
"source_file": "tests/unit/tray/test_autostart.py",
"source_location": "L161",
"id": "tray_test_autostart_test_windows_register_sets_run_value",
- "community": 73,
+ "community": 72,
"norm_label": "test_windows_register_sets_run_value()"
},
{
@@ -21663,7 +21924,7 @@
"source_file": "tests/unit/tray/test_autostart.py",
"source_location": "L173",
"id": "tray_test_autostart_test_windows_unregister_deletes_run_value",
- "community": 73,
+ "community": 72,
"norm_label": "test_windows_unregister_deletes_run_value()"
},
{
@@ -21672,7 +21933,7 @@
"source_file": "tests/unit/tray/test_autostart.py",
"source_location": "L185",
"id": "tray_test_autostart_test_windows_unregister_when_value_missing_is_safe",
- "community": 73,
+ "community": 72,
"norm_label": "test_windows_unregister_when_value_missing_is_safe()"
},
{
@@ -21681,7 +21942,7 @@
"source_file": "tests/unit/tray/test_autostart.py",
"source_location": "L193",
"id": "tray_test_autostart_test_windows_open_key_handles_filenotfound_on_query",
- "community": 73,
+ "community": 72,
"norm_label": "test_windows_open_key_handles_filenotfound_on_query()"
},
{
@@ -21690,7 +21951,7 @@
"source_file": "tests/unit/tray/test_autostart.py",
"source_location": "L211",
"id": "tray_test_autostart_test_silently_unlink_tolerates_missing",
- "community": 101,
+ "community": 213,
"norm_label": "test_silently_unlink_tolerates_missing()"
},
{
@@ -21699,7 +21960,7 @@
"source_file": "tests/unit/tray/test_autostart.py",
"source_location": "L223",
"id": "tray_test_autostart_test_env_var_root_overrides_constructor",
- "community": 73,
+ "community": 72,
"norm_label": "test_env_var_root_overrides_constructor()"
},
{
@@ -21708,7 +21969,7 @@
"source_file": "tests/unit/tray/test_autostart.py",
"source_location": "L238",
"id": "tray_test_autostart_test_executable_path_property",
- "community": 73,
+ "community": 72,
"norm_label": "test_executable_path_property()"
},
{
@@ -21717,7 +21978,7 @@
"source_file": "tests/unit/tray/test_autostart.py",
"source_location": "L244",
"id": "tray_test_autostart_test_default_executable_falls_back_to_sys_executable",
- "community": 73,
+ "community": 72,
"norm_label": "test_default_executable_falls_back_to_sys_executable()"
},
{
@@ -21726,7 +21987,7 @@
"source_file": "tests/unit/tray/test_autostart.py",
"source_location": "L250",
"id": "tray_test_autostart_test_detect_platform_returns_known_value",
- "community": 73,
+ "community": 213,
"norm_label": "test_detect_platform_returns_known_value()"
},
{
@@ -21735,7 +21996,7 @@
"source_file": "tests/unit/tray/test_autostart.py",
"source_location": "L255",
"id": "tray_test_autostart_test_detect_platform_dispatch",
- "community": 73,
+ "community": 213,
"norm_label": "test_detect_platform_dispatch()"
},
{
@@ -21744,7 +22005,7 @@
"source_file": "tests/unit/tray/test_autostart.py",
"source_location": "L1",
"id": "tray_test_autostart_rationale_1",
- "community": 73,
+ "community": 72,
"norm_label": "tests for :mod:`exlab_wizard.tray.autostart`. backend spec \u00a715.7."
},
{
@@ -21753,7 +22014,7 @@
"source_file": "tests/unit/tray/test_autostart.py",
"source_location": "L196",
"id": "tray_test_autostart_rationale_196",
- "community": 73,
+ "community": 72,
"norm_label": "when ``openkey`` raises filenotfounderror, ``is_registered`` returns false."
},
{
@@ -21762,7 +22023,7 @@
"source_file": "tests/unit/tray/test_autostart.py",
"source_location": "L212",
"id": "tray_test_autostart_rationale_212",
- "community": 101,
+ "community": 213,
"norm_label": "internal helper tolerates a missing path without raising."
},
{
@@ -21771,7 +22032,7 @@
"source_file": "tests/unit/tray/test_main.py",
"source_location": "L1",
"id": "tests_unit_tray_test_main_py",
- "community": 20,
+ "community": 9,
"norm_label": "test_main.py"
},
{
@@ -21780,7 +22041,7 @@
"source_file": "tests/unit/tray/test_main.py",
"source_location": "L15",
"id": "tray_test_main_stubserverrunner",
- "community": 20,
+ "community": 9,
"norm_label": "_stubserverrunner"
},
{
@@ -21789,7 +22050,7 @@
"source_file": "tests/unit/tray/test_main.py",
"source_location": "L16",
"id": "tray_test_main_stubserverrunner_init",
- "community": 20,
+ "community": 9,
"norm_label": ".__init__()"
},
{
@@ -21798,7 +22059,7 @@
"source_file": "tests/unit/tray/test_main.py",
"source_location": "L22",
"id": "tray_test_main_stubserverrunner_start",
- "community": 20,
+ "community": 9,
"norm_label": ".start()"
},
{
@@ -21807,7 +22068,7 @@
"source_file": "tests/unit/tray/test_main.py",
"source_location": "L26",
"id": "tray_test_main_stubserverrunner_stop",
- "community": 20,
+ "community": 9,
"norm_label": ".stop()"
},
{
@@ -21816,7 +22077,7 @@
"source_file": "tests/unit/tray/test_main.py",
"source_location": "L30",
"id": "tray_test_main_stubwindowlauncher",
- "community": 20,
+ "community": 9,
"norm_label": "_stubwindowlauncher"
},
{
@@ -21825,7 +22086,7 @@
"source_file": "tests/unit/tray/test_main.py",
"source_location": "L31",
"id": "tray_test_main_stubwindowlauncher_init",
- "community": 20,
+ "community": 9,
"norm_label": ".__init__()"
},
{
@@ -21834,7 +22095,7 @@
"source_file": "tests/unit/tray/test_main.py",
"source_location": "L35",
"id": "tray_test_main_stubwindowlauncher_open",
- "community": 20,
+ "community": 9,
"norm_label": ".open()"
},
{
@@ -21843,7 +22104,7 @@
"source_file": "tests/unit/tray/test_main.py",
"source_location": "L38",
"id": "tray_test_main_stubwindowlauncher_close",
- "community": 20,
+ "community": 9,
"norm_label": ".close()"
},
{
@@ -21852,7 +22113,7 @@
"source_file": "tests/unit/tray/test_main.py",
"source_location": "L42",
"id": "tray_test_main_stubquitcoordinator",
- "community": 20,
+ "community": 9,
"norm_label": "_stubquitcoordinator"
},
{
@@ -21861,7 +22122,7 @@
"source_file": "tests/unit/tray/test_main.py",
"source_location": "L43",
"id": "tray_test_main_stubquitcoordinator_init",
- "community": 20,
+ "community": 9,
"norm_label": ".__init__()"
},
{
@@ -21870,7 +22131,7 @@
"source_file": "tests/unit/tray/test_main.py",
"source_location": "L46",
"id": "tray_test_main_stubquitcoordinator_quit",
- "community": 20,
+ "community": 9,
"norm_label": ".quit()"
},
{
@@ -21879,7 +22140,7 @@
"source_file": "tests/unit/tray/test_main.py",
"source_location": "L51",
"id": "tray_test_main_stubstatusticker",
- "community": 20,
+ "community": 9,
"norm_label": "_stubstatusticker"
},
{
@@ -21888,7 +22149,7 @@
"source_file": "tests/unit/tray/test_main.py",
"source_location": "L52",
"id": "tray_test_main_stubstatusticker_init",
- "community": 20,
+ "community": 9,
"norm_label": ".__init__()"
},
{
@@ -21897,7 +22158,7 @@
"source_file": "tests/unit/tray/test_main.py",
"source_location": "L57",
"id": "tray_test_main_stubstatusticker_start",
- "community": 20,
+ "community": 9,
"norm_label": ".start()"
},
{
@@ -21906,7 +22167,7 @@
"source_file": "tests/unit/tray/test_main.py",
"source_location": "L60",
"id": "tray_test_main_stubstatusticker_stop",
- "community": 20,
+ "community": 9,
"norm_label": ".stop()"
},
{
@@ -21915,7 +22176,7 @@
"source_file": "tests/unit/tray/test_main.py",
"source_location": "L63",
"id": "tray_test_main_stubstatusticker_tick_once",
- "community": 20,
+ "community": 9,
"norm_label": ".tick_once()"
},
{
@@ -21924,7 +22185,7 @@
"source_file": "tests/unit/tray/test_main.py",
"source_location": "L68",
"id": "tray_test_main_stubbus",
- "community": 20,
+ "community": 9,
"norm_label": "_stubbus"
},
{
@@ -21933,7 +22194,7 @@
"source_file": "tests/unit/tray/test_main.py",
"source_location": "L69",
"id": "tray_test_main_stubbus_init",
- "community": 20,
+ "community": 9,
"norm_label": ".__init__()"
},
{
@@ -21942,7 +22203,7 @@
"source_file": "tests/unit/tray/test_main.py",
"source_location": "L72",
"id": "tray_test_main_stubbus_cancel_all",
- "community": 20,
+ "community": 9,
"norm_label": ".cancel_all()"
},
{
@@ -21951,7 +22212,7 @@
"source_file": "tests/unit/tray/test_main.py",
"source_location": "L76",
"id": "tray_test_main_stubautostart",
- "community": 20,
+ "community": 9,
"norm_label": "_stubautostart"
},
{
@@ -21960,7 +22221,7 @@
"source_file": "tests/unit/tray/test_main.py",
"source_location": "L80",
"id": "tray_test_main_make_tray",
- "community": 20,
+ "community": 9,
"norm_label": "_make_tray()"
},
{
@@ -21969,7 +22230,7 @@
"source_file": "tests/unit/tray/test_main.py",
"source_location": "L91",
"id": "tray_test_main_test_start_server_calls_runner",
- "community": 20,
+ "community": 9,
"norm_label": "test_start_server_calls_runner()"
},
{
@@ -21978,7 +22239,7 @@
"source_file": "tests/unit/tray/test_main.py",
"source_location": "L98",
"id": "tray_test_main_test_open_window_delegates",
- "community": 20,
+ "community": 9,
"norm_label": "test_open_window_delegates()"
},
{
@@ -21987,7 +22248,7 @@
"source_file": "tests/unit/tray/test_main.py",
"source_location": "L104",
"id": "tray_test_main_test_request_quit_runs_coordinator",
- "community": 20,
+ "community": 9,
"norm_label": "test_request_quit_runs_coordinator()"
},
{
@@ -21996,7 +22257,7 @@
"source_file": "tests/unit/tray/test_main.py",
"source_location": "L110",
"id": "tray_test_main_test_request_quit_calls_icon_stop_when_set",
- "community": 20,
+ "community": 9,
"norm_label": "test_request_quit_calls_icon_stop_when_set()"
},
{
@@ -22005,7 +22266,7 @@
"source_file": "tests/unit/tray/test_main.py",
"source_location": "L118",
"id": "tray_test_main_test_request_quit_handles_icon_stop_error",
- "community": 20,
+ "community": 9,
"norm_label": "test_request_quit_handles_icon_stop_error()"
},
{
@@ -22014,7 +22275,7 @@
"source_file": "tests/unit/tray/test_main.py",
"source_location": "L126",
"id": "tray_test_main_test_shutdown_tears_components_down",
- "community": 20,
+ "community": 9,
"norm_label": "test_shutdown_tears_components_down()"
},
{
@@ -22023,7 +22284,7 @@
"source_file": "tests/unit/tray/test_main.py",
"source_location": "L135",
"id": "tray_test_main_test_run_wires_icon_and_invokes_run_loop",
- "community": 20,
+ "community": 9,
"norm_label": "test_run_wires_icon_and_invokes_run_loop()"
},
{
@@ -22032,7 +22293,7 @@
"source_file": "tests/unit/tray/test_main.py",
"source_location": "L166",
"id": "tray_test_main_test_build_default_components",
- "community": 114,
+ "community": 110,
"norm_label": "test_build_default_components()"
},
{
@@ -22041,7 +22302,7 @@
"source_file": "tests/unit/tray/test_main.py",
"source_location": "L178",
"id": "tray_test_main_test_main_uses_run_helper",
- "community": 20,
+ "community": 9,
"norm_label": "test_main_uses_run_helper()"
},
{
@@ -22050,7 +22311,7 @@
"source_file": "tests/unit/tray/test_main.py",
"source_location": "L201",
"id": "tray_test_main_test_main_handles_keyboard_interrupt",
- "community": 20,
+ "community": 9,
"norm_label": "test_main_handles_keyboard_interrupt()"
},
{
@@ -22059,7 +22320,7 @@
"source_file": "tests/unit/tray/test_main.py",
"source_location": "L218",
"id": "tray_test_main_test_run_returns_one_on_icon_failure",
- "community": 20,
+ "community": 9,
"norm_label": "test_run_returns_one_on_icon_failure()"
},
{
@@ -22068,7 +22329,7 @@
"source_file": "tests/unit/tray/test_main.py",
"source_location": "L232",
"id": "tray_test_main_test_request_quit_uses_running_loop_when_present",
- "community": 20,
+ "community": 9,
"norm_label": "test_request_quit_uses_running_loop_when_present()"
},
{
@@ -22077,7 +22338,7 @@
"source_file": "tests/unit/tray/test_main.py",
"source_location": "L269",
"id": "tray_test_main_test_build_default_app",
- "community": 20,
+ "community": 9,
"norm_label": "test_build_default_app()"
},
{
@@ -22086,7 +22347,7 @@
"source_file": "tests/unit/tray/test_main.py",
"source_location": "L302",
"id": "tray_test_main_test_build_default_components_falls_back_to_default_app",
- "community": 20,
+ "community": 9,
"norm_label": "test_build_default_components_falls_back_to_default_app()"
},
{
@@ -22095,7 +22356,7 @@
"source_file": "tests/unit/tray/test_main.py",
"source_location": "L314",
"id": "tray_test_main_test_parse_argv_defaults_no_smoke",
- "community": 218,
+ "community": 9,
"norm_label": "test_parse_argv_defaults_no_smoke()"
},
{
@@ -22104,7 +22365,7 @@
"source_file": "tests/unit/tray/test_main.py",
"source_location": "L323",
"id": "tray_test_main_test_parse_argv_smoke_flag",
- "community": 218,
+ "community": 9,
"norm_label": "test_parse_argv_smoke_flag()"
},
{
@@ -22113,7 +22374,7 @@
"source_file": "tests/unit/tray/test_main.py",
"source_location": "L331",
"id": "tray_test_main_test_parse_argv_no_autostart_prompt_silently_accepted",
- "community": 218,
+ "community": 9,
"norm_label": "test_parse_argv_no_autostart_prompt_silently_accepted()"
},
{
@@ -22122,7 +22383,7 @@
"source_file": "tests/unit/tray/test_main.py",
"source_location": "L339",
"id": "tray_test_main_test_run_smoke_starts_server_and_stops_on_signal",
- "community": 20,
+ "community": 9,
"norm_label": "test_run_smoke_starts_server_and_stops_on_signal()"
},
{
@@ -22131,7 +22392,7 @@
"source_file": "tests/unit/tray/test_main.py",
"source_location": "L376",
"id": "tray_test_main_test_main_smoke_dispatches_to_run_smoke",
- "community": 20,
+ "community": 9,
"norm_label": "test_main_smoke_dispatches_to_run_smoke()"
},
{
@@ -22140,7 +22401,7 @@
"source_file": "tests/unit/tray/test_main.py",
"source_location": "L397",
"id": "tray_test_main_test_parse_argv_version_flag",
- "community": 218,
+ "community": 9,
"norm_label": "test_parse_argv_version_flag()"
},
{
@@ -22149,7 +22410,7 @@
"source_file": "tests/unit/tray/test_main.py",
"source_location": "L405",
"id": "tray_test_main_test_main_version_prints_version_and_exits_zero",
- "community": 20,
+ "community": 9,
"norm_label": "test_main_version_prints_version_and_exits_zero()"
},
{
@@ -22158,7 +22419,7 @@
"source_file": "tests/unit/tray/test_main.py",
"source_location": "L423",
"id": "tray_test_main_test_parse_argv_defaults_no_test_flags",
- "community": 218,
+ "community": 9,
"norm_label": "test_parse_argv_defaults_no_test_flags()"
},
{
@@ -22167,7 +22428,7 @@
"source_file": "tests/unit/tray/test_main.py",
"source_location": "L432",
"id": "tray_test_main_test_parse_argv_test_flag",
- "community": 218,
+ "community": 9,
"norm_label": "test_parse_argv_test_flag()"
},
{
@@ -22176,7 +22437,7 @@
"source_file": "tests/unit/tray/test_main.py",
"source_location": "L440",
"id": "tray_test_main_test_parse_argv_test_with_samples",
- "community": 218,
+ "community": 9,
"norm_label": "test_parse_argv_test_with_samples()"
},
{
@@ -22185,7 +22446,7 @@
"source_file": "tests/unit/tray/test_main.py",
"source_location": "L448",
"id": "tray_test_main_test_parse_argv_samples_without_test_errors",
- "community": 218,
+ "community": 9,
"norm_label": "test_parse_argv_samples_without_test_errors()"
},
{
@@ -22194,7 +22455,7 @@
"source_file": "tests/unit/tray/test_main.py",
"source_location": "L462",
"id": "tray_test_main_test_mode_env",
- "community": 20,
+ "community": 9,
"norm_label": "test_mode_env()"
},
{
@@ -22203,7 +22464,7 @@
"source_file": "tests/unit/tray/test_main.py",
"source_location": "L487",
"id": "tray_test_main_test_main_test_flag_sets_env_and_bootstraps_config",
- "community": 13,
+ "community": 9,
"norm_label": "test_main_test_flag_sets_env_and_bootstraps_config()"
},
{
@@ -22212,7 +22473,7 @@
"source_file": "tests/unit/tray/test_main.py",
"source_location": "L524",
"id": "tray_test_main_test_main_test_does_not_overwrite_existing_config",
- "community": 20,
+ "community": 9,
"norm_label": "test_main_test_does_not_overwrite_existing_config()"
},
{
@@ -22221,16 +22482,25 @@
"source_file": "tests/unit/tray/test_main.py",
"source_location": "L539",
"id": "tray_test_main_test_main_test_with_samples_adds_equipment",
- "community": 13,
+ "community": 9,
"norm_label": "test_main_test_with_samples_adds_equipment()"
},
+ {
+ "label": "test_main_test_with_samples_repeat_boot_is_noop()",
+ "file_type": "code",
+ "source_file": "tests/unit/tray/test_main.py",
+ "source_location": "L562",
+ "id": "tray_test_main_test_main_test_with_samples_repeat_boot_is_noop",
+ "community": 9,
+ "norm_label": "test_main_test_with_samples_repeat_boot_is_noop()"
+ },
{
"label": "test_main_without_test_does_not_set_env()",
"file_type": "code",
"source_file": "tests/unit/tray/test_main.py",
- "source_location": "L555",
+ "source_location": "L579",
"id": "tray_test_main_test_main_without_test_does_not_set_env",
- "community": 20,
+ "community": 9,
"norm_label": "test_main_without_test_does_not_set_env()"
},
{
@@ -22239,7 +22509,7 @@
"source_file": "tests/unit/tray/test_main.py",
"source_location": "L1",
"id": "tray_test_main_rationale_1",
- "community": 20,
+ "community": 9,
"norm_label": "tests for :mod:`exlab_wizard.tray.main`. backend spec \u00a74.3.2."
},
{
@@ -22248,7 +22518,7 @@
"source_file": "tests/unit/tray/test_main.py",
"source_location": "L179",
"id": "tray_test_main_rationale_179",
- "community": 20,
+ "community": 9,
"norm_label": "``main()`` builds default components and calls :meth:`trayapp.run`."
},
{
@@ -22257,7 +22527,7 @@
"source_file": "tests/unit/tray/test_main.py",
"source_location": "L235",
"id": "tray_test_main_rationale_235",
- "community": 20,
+ "community": 9,
"norm_label": "``asyncio.run`` raises runtimeerror when a loop is running. the tray's ``re"
},
{
@@ -22266,7 +22536,7 @@
"source_file": "tests/unit/tray/test_main.py",
"source_location": "L270",
"id": "tray_test_main_rationale_270",
- "community": 20,
+ "community": 9,
"norm_label": "``_build_default_app`` builds deps, calls ``create_app``, mounts nicegui."
},
{
@@ -22275,7 +22545,7 @@
"source_file": "tests/unit/tray/test_main.py",
"source_location": "L305",
"id": "tray_test_main_rationale_305",
- "community": 20,
+ "community": 9,
"norm_label": "when ``app`` is none, the helper calls ``_build_default_app``."
},
{
@@ -22284,7 +22554,7 @@
"source_file": "tests/unit/tray/test_main.py",
"source_location": "L315",
"id": "tray_test_main_rationale_315",
- "community": 218,
+ "community": 9,
"norm_label": "no flags -> ``smoke`` is false, ``no_autostart_prompt`` is false."
},
{
@@ -22293,7 +22563,7 @@
"source_file": "tests/unit/tray/test_main.py",
"source_location": "L324",
"id": "tray_test_main_rationale_324",
- "community": 218,
+ "community": 9,
"norm_label": "``--smoke`` sets the smoke flag."
},
{
@@ -22302,7 +22572,7 @@
"source_file": "tests/unit/tray/test_main.py",
"source_location": "L332",
"id": "tray_test_main_rationale_332",
- "community": 218,
+ "community": 9,
"norm_label": "``--no-autostart-prompt`` is silently accepted (reserved)."
},
{
@@ -22311,7 +22581,7 @@
"source_file": "tests/unit/tray/test_main.py",
"source_location": "L342",
"id": "tray_test_main_rationale_342",
- "community": 20,
+ "community": 9,
"norm_label": "``_run_smoke`` boots the server, blocks on a stop event, and stops cleanly."
},
{
@@ -22320,7 +22590,7 @@
"source_file": "tests/unit/tray/test_main.py",
"source_location": "L379",
"id": "tray_test_main_rationale_379",
- "community": 20,
+ "community": 9,
"norm_label": "``main([\"--smoke\"])`` calls ``_run_smoke`` instead of the icon loop."
},
{
@@ -22329,7 +22599,7 @@
"source_file": "tests/unit/tray/test_main.py",
"source_location": "L398",
"id": "tray_test_main_rationale_398",
- "community": 218,
+ "community": 9,
"norm_label": "``--version`` sets the version flag."
},
{
@@ -22338,7 +22608,7 @@
"source_file": "tests/unit/tray/test_main.py",
"source_location": "L408",
"id": "tray_test_main_rationale_408",
- "community": 20,
+ "community": 9,
"norm_label": "``main([\"--version\"])`` prints the package version and returns 0."
},
{
@@ -22347,7 +22617,7 @@
"source_file": "tests/unit/tray/test_main.py",
"source_location": "L424",
"id": "tray_test_main_rationale_424",
- "community": 218,
+ "community": 9,
"norm_label": "no flags -> both test-mode flags are false."
},
{
@@ -22356,7 +22626,7 @@
"source_file": "tests/unit/tray/test_main.py",
"source_location": "L451",
"id": "tray_test_main_rationale_451",
- "community": 218,
+ "community": 9,
"norm_label": "``--add-test-samples`` alone must be rejected via parser.error (exit 2)."
},
{
@@ -22365,7 +22635,7 @@
"source_file": "tests/unit/tray/test_main.py",
"source_location": "L463",
"id": "tray_test_main_rationale_463",
- "community": 20,
+ "community": 9,
"norm_label": "sandbox ``main([\"--test\", ...])`` into ``tmp_path``. redirects ``path.home("
},
{
@@ -22374,7 +22644,7 @@
"source_file": "tests/unit/tray/test_main.py",
"source_location": "L488",
"id": "tray_test_main_rationale_488",
- "community": 13,
+ "community": 9,
"norm_label": "``main([\"--test\"])`` sets exlab_wizard_test_mode=1 and writes a starter config."
},
{
@@ -22383,16 +22653,25 @@
"source_file": "tests/unit/tray/test_main.py",
"source_location": "L525",
"id": "tray_test_main_rationale_525",
- "community": 20,
+ "community": 9,
"norm_label": "re-running ``--test`` must preserve any edits the user made in-session."
},
+ {
+ "label": "A second ``--test --add-test-samples`` boot must neither re-seed nor wipe.",
+ "file_type": "rationale",
+ "source_file": "tests/unit/tray/test_main.py",
+ "source_location": "L563",
+ "id": "tray_test_main_rationale_563",
+ "community": 9,
+ "norm_label": "a second ``--test --add-test-samples`` boot must neither re-seed nor wipe."
+ },
{
"label": "Sanity: running without --test leaves the env var unset and writes no test confi",
"file_type": "rationale",
"source_file": "tests/unit/tray/test_main.py",
- "source_location": "L556",
- "id": "tray_test_main_rationale_556",
- "community": 20,
+ "source_location": "L580",
+ "id": "tray_test_main_rationale_580",
+ "community": 9,
"norm_label": "sanity: running without --test leaves the env var unset and writes no test confi"
},
{
@@ -22401,7 +22680,7 @@
"source_file": "tests/unit/readme/test_generator.py",
"source_location": "L1",
"id": "tests_unit_readme_test_generator_py",
- "community": 35,
+ "community": 48,
"norm_label": "test_generator.py"
},
{
@@ -22410,7 +22689,7 @@
"source_file": "tests/unit/readme/test_generator.py",
"source_location": "L57",
"id": "readme_test_generator_system_fields",
- "community": 35,
+ "community": 48,
"norm_label": "_system_fields()"
},
{
@@ -22419,7 +22698,7 @@
"source_file": "tests/unit/readme/test_generator.py",
"source_location": "L73",
"id": "readme_test_generator_ctx",
- "community": 35,
+ "community": 48,
"norm_label": "_ctx()"
},
{
@@ -22428,7 +22707,7 @@
"source_file": "tests/unit/readme/test_generator.py",
"source_location": "L99",
"id": "readme_test_generator_generator",
- "community": 96,
+ "community": 224,
"norm_label": "generator()"
},
{
@@ -22437,7 +22716,7 @@
"source_file": "tests/unit/readme/test_generator.py",
"source_location": "L109",
"id": "readme_test_generator_test_generate_writes_both_files",
- "community": 35,
+ "community": 48,
"norm_label": "test_generate_writes_both_files()"
},
{
@@ -22446,7 +22725,7 @@
"source_file": "tests/unit/readme/test_generator.py",
"source_location": "L118",
"id": "readme_test_generator_test_readme_starts_with_yaml_front_matter",
- "community": 35,
+ "community": 48,
"norm_label": "test_readme_starts_with_yaml_front_matter()"
},
{
@@ -22455,7 +22734,7 @@
"source_file": "tests/unit/readme/test_generator.py",
"source_location": "L135",
"id": "readme_test_generator_test_readme_body_includes_label_and_objective",
- "community": 35,
+ "community": 48,
"norm_label": "test_readme_body_includes_label_and_objective()"
},
{
@@ -22464,7 +22743,7 @@
"source_file": "tests/unit/readme/test_generator.py",
"source_location": "L148",
"id": "readme_test_generator_test_readme_fields_json_round_trips",
- "community": 35,
+ "community": 48,
"norm_label": "test_readme_fields_json_round_trips()"
},
{
@@ -22473,7 +22752,7 @@
"source_file": "tests/unit/readme/test_generator.py",
"source_location": "L192",
"id": "readme_test_generator_test_empty_core_field_rejected",
- "community": 35,
+ "community": 48,
"norm_label": "test_empty_core_field_rejected()"
},
{
@@ -22482,7 +22761,7 @@
"source_file": "tests/unit/readme/test_generator.py",
"source_location": "L201",
"id": "readme_test_generator_test_label_over_max_length_rejected",
- "community": 35,
+ "community": 48,
"norm_label": "test_label_over_max_length_rejected()"
},
{
@@ -22491,7 +22770,7 @@
"source_file": "tests/unit/readme/test_generator.py",
"source_location": "L208",
"id": "readme_test_generator_test_objective_over_max_length_rejected",
- "community": 35,
+ "community": 48,
"norm_label": "test_objective_over_max_length_rejected()"
},
{
@@ -22500,7 +22779,7 @@
"source_file": "tests/unit/readme/test_generator.py",
"source_location": "L222",
"id": "readme_test_generator_test_required_template_field_missing_raises",
- "community": 35,
+ "community": 48,
"norm_label": "test_required_template_field_missing_raises()"
},
{
@@ -22509,7 +22788,7 @@
"source_file": "tests/unit/readme/test_generator.py",
"source_location": "L231",
"id": "readme_test_generator_test_required_config_field_missing_raises",
- "community": 35,
+ "community": 48,
"norm_label": "test_required_config_field_missing_raises()"
},
{
@@ -22518,7 +22797,7 @@
"source_file": "tests/unit/readme/test_generator.py",
"source_location": "L247",
"id": "readme_test_generator_test_duplicate_field_id_across_layers_raises",
- "community": 35,
+ "community": 48,
"norm_label": "test_duplicate_field_id_across_layers_raises()"
},
{
@@ -22527,7 +22806,7 @@
"source_file": "tests/unit/readme/test_generator.py",
"source_location": "L263",
"id": "readme_test_generator_test_custom_field_label_collides_with_template_id",
- "community": 35,
+ "community": 48,
"norm_label": "test_custom_field_label_collides_with_template_id()"
},
{
@@ -22536,7 +22815,7 @@
"source_file": "tests/unit/readme/test_generator.py",
"source_location": "L281",
"id": "readme_test_generator_test_core_field_redeclared_in_template_raises",
- "community": 35,
+ "community": 48,
"norm_label": "test_core_field_redeclared_in_template_raises()"
},
{
@@ -22545,7 +22824,7 @@
"source_file": "tests/unit/readme/test_generator.py",
"source_location": "L290",
"id": "readme_test_generator_test_core_field_redeclared_in_config_raises",
- "community": 35,
+ "community": 48,
"norm_label": "test_core_field_redeclared_in_config_raises()"
},
{
@@ -22554,7 +22833,7 @@
"source_file": "tests/unit/readme/test_generator.py",
"source_location": "L304",
"id": "readme_test_generator_test_project_level_system_run_is_none",
- "community": 35,
+ "community": 48,
"norm_label": "test_project_level_system_run_is_none()"
},
{
@@ -22563,7 +22842,7 @@
"source_file": "tests/unit/readme/test_generator.py",
"source_location": "L313",
"id": "readme_test_generator_test_run_level_experimental_run_name",
- "community": 35,
+ "community": 48,
"norm_label": "test_run_level_experimental_run_name()"
},
{
@@ -22572,7 +22851,7 @@
"source_file": "tests/unit/readme/test_generator.py",
"source_location": "L322",
"id": "readme_test_generator_test_run_level_test_run_name",
- "community": 35,
+ "community": 48,
"norm_label": "test_run_level_test_run_name()"
},
{
@@ -22581,7 +22860,7 @@
"source_file": "tests/unit/readme/test_generator.py",
"source_location": "L336",
"id": "readme_test_generator_test_string_type_accepts_string_rejects_int",
- "community": 35,
+ "community": 48,
"norm_label": "test_string_type_accepts_string_rejects_int()"
},
{
@@ -22590,7 +22869,7 @@
"source_file": "tests/unit/readme/test_generator.py",
"source_location": "L354",
"id": "readme_test_generator_test_text_type_accepts_multiline_rejects_list",
- "community": 35,
+ "community": 48,
"norm_label": "test_text_type_accepts_multiline_rejects_list()"
},
{
@@ -22599,7 +22878,7 @@
"source_file": "tests/unit/readme/test_generator.py",
"source_location": "L370",
"id": "readme_test_generator_test_choice_type_accepts_listed_rejects_other",
- "community": 35,
+ "community": 48,
"norm_label": "test_choice_type_accepts_listed_rejects_other()"
},
{
@@ -22608,7 +22887,7 @@
"source_file": "tests/unit/readme/test_generator.py",
"source_location": "L386",
"id": "readme_test_generator_test_choice_without_options_raises",
- "community": 35,
+ "community": 48,
"norm_label": "test_choice_without_options_raises()"
},
{
@@ -22617,7 +22896,7 @@
"source_file": "tests/unit/readme/test_generator.py",
"source_location": "L396",
"id": "readme_test_generator_test_date_type_accepts_iso8601_rejects_garbage",
- "community": 35,
+ "community": 48,
"norm_label": "test_date_type_accepts_iso8601_rejects_garbage()"
},
{
@@ -22626,7 +22905,7 @@
"source_file": "tests/unit/readme/test_generator.py",
"source_location": "L419",
"id": "readme_test_generator_test_date_type_rejects_non_string",
- "community": 35,
+ "community": 48,
"norm_label": "test_date_type_rejects_non_string()"
},
{
@@ -22635,7 +22914,7 @@
"source_file": "tests/unit/readme/test_generator.py",
"source_location": "L429",
"id": "readme_test_generator_test_boolean_type_accepts_bool_rejects_string",
- "community": 35,
+ "community": 48,
"norm_label": "test_boolean_type_accepts_bool_rejects_string()"
},
{
@@ -22644,7 +22923,7 @@
"source_file": "tests/unit/readme/test_generator.py",
"source_location": "L449",
"id": "readme_test_generator_test_unknown_field_type_raises",
- "community": 35,
+ "community": 48,
"norm_label": "test_unknown_field_type_raises()"
},
{
@@ -22653,7 +22932,7 @@
"source_file": "tests/unit/readme/test_generator.py",
"source_location": "L459",
"id": "readme_test_generator_test_choice_type_rejects_non_string_value",
- "community": 35,
+ "community": 48,
"norm_label": "test_choice_type_rejects_non_string_value()"
},
{
@@ -22662,7 +22941,7 @@
"source_file": "tests/unit/readme/test_generator.py",
"source_location": "L476",
"id": "readme_test_generator_test_generate_is_idempotent_byte_identical",
- "community": 35,
+ "community": 48,
"norm_label": "test_generate_is_idempotent_byte_identical()"
},
{
@@ -22671,7 +22950,7 @@
"source_file": "tests/unit/readme/test_generator.py",
"source_location": "L512",
"id": "readme_test_generator_test_generated_at_uses_z_suffix",
- "community": 35,
+ "community": 48,
"norm_label": "test_generated_at_uses_z_suffix()"
},
{
@@ -22680,7 +22959,7 @@
"source_file": "tests/unit/readme/test_generator.py",
"source_location": "L520",
"id": "readme_test_generator_test_cache_dir_created_on_demand",
- "community": 35,
+ "community": 48,
"norm_label": "test_cache_dir_created_on_demand()"
},
{
@@ -22689,7 +22968,7 @@
"source_file": "tests/unit/readme/test_generator.py",
"source_location": "L529",
"id": "readme_test_generator_test_value_without_declaration_skips_typecheck",
- "community": 35,
+ "community": 48,
"norm_label": "test_value_without_declaration_skips_typecheck()"
},
{
@@ -22698,7 +22977,7 @@
"source_file": "tests/unit/readme/test_generator.py",
"source_location": "L546",
"id": "readme_test_generator_test_optional_empty_field_is_skipped",
- "community": 35,
+ "community": 48,
"norm_label": "test_optional_empty_field_is_skipped()"
},
{
@@ -22707,7 +22986,7 @@
"source_file": "tests/unit/readme/test_generator.py",
"source_location": "L556",
"id": "readme_test_generator_test_required_field_present_with_none_raises",
- "community": 35,
+ "community": 48,
"norm_label": "test_required_field_present_with_none_raises()"
},
{
@@ -22716,7 +22995,7 @@
"source_file": "tests/unit/readme/test_generator.py",
"source_location": "L569",
"id": "readme_test_generator_test_generated_at_uses_z_for_naive_datetime",
- "community": 35,
+ "community": 224,
"norm_label": "test_generated_at_uses_z_for_naive_datetime()"
},
{
@@ -22725,7 +23004,7 @@
"source_file": "tests/unit/readme/test_generator.py",
"source_location": "L1",
"id": "readme_test_generator_rationale_1",
- "community": 35,
+ "community": 48,
"norm_label": "tests for :class:`exlab_wizard.readme.generator.readmegenerator`. pins the cont"
},
{
@@ -22734,7 +23013,7 @@
"source_file": "tests/unit/readme/test_generator.py",
"source_location": "L479",
"id": "readme_test_generator_rationale_479",
- "community": 35,
+ "community": 48,
"norm_label": "calling generate twice with the same context produces identical bytes."
},
{
@@ -22743,7 +23022,7 @@
"source_file": "tests/unit/readme/test_generator.py",
"source_location": "L532",
"id": "readme_test_generator_rationale_532",
- "community": 35,
+ "community": 48,
"norm_label": "a value whose id has no declaration is permitted (controller-side merge)."
},
{
@@ -22752,7 +23031,7 @@
"source_file": "tests/unit/readme/test_generator.py",
"source_location": "L547",
"id": "readme_test_generator_rationale_547",
- "community": 35,
+ "community": 48,
"norm_label": "an optional field with an empty value passes; type check is skipped."
},
{
@@ -22761,7 +23040,7 @@
"source_file": "tests/unit/readme/test_generator.py",
"source_location": "L559",
"id": "readme_test_generator_rationale_559",
- "community": 35,
+ "community": 48,
"norm_label": "``none`` is treated as absent for required fields."
},
{
@@ -22770,7 +23049,7 @@
"source_file": "tests/unit/readme/test_generator.py",
"source_location": "L572",
"id": "readme_test_generator_rationale_572",
- "community": 35,
+ "community": 224,
"norm_label": "naive datetimes are treated as already-utc (no timezone gymnastics)."
},
{
@@ -22779,7 +23058,7 @@
"source_file": "tests/unit/readme/__init__.py",
"source_location": "L1",
"id": "tests_unit_readme_init_py",
- "community": 443,
+ "community": 479,
"norm_label": "__init__.py"
},
{
@@ -22788,16 +23067,196 @@
"source_file": "src/exlab_wizard/readme/__init__.py",
"source_location": "L1",
"id": "readme_init_rationale_1",
- "community": 443,
+ "community": 479,
"norm_label": "readme generation package. backend spec \u00a710."
},
+ {
+ "label": "test_metadata_assembly.py",
+ "file_type": "code",
+ "source_file": "tests/unit/controller/test_metadata_assembly.py",
+ "source_location": "L1",
+ "id": "tests_unit_controller_test_metadata_assembly_py",
+ "community": 25,
+ "norm_label": "test_metadata_assembly.py"
+ },
+ {
+ "label": "_config()",
+ "file_type": "code",
+ "source_file": "tests/unit/controller/test_metadata_assembly.py",
+ "source_location": "L72",
+ "id": "controller_test_metadata_assembly_config",
+ "community": 25,
+ "norm_label": "_config()"
+ },
+ {
+ "label": "_template_desc()",
+ "file_type": "code",
+ "source_file": "tests/unit/controller/test_metadata_assembly.py",
+ "source_location": "L92",
+ "id": "controller_test_metadata_assembly_template_desc",
+ "community": 25,
+ "norm_label": "_template_desc()"
+ },
+ {
+ "label": "_sample_type_default()",
+ "file_type": "code",
+ "source_file": "tests/unit/controller/test_metadata_assembly.py",
+ "source_location": "L103",
+ "id": "controller_test_metadata_assembly_sample_type_default",
+ "community": 25,
+ "norm_label": "_sample_type_default()"
+ },
+ {
+ "label": "test_build_readme_context_partitions_readme_extra()",
+ "file_type": "code",
+ "source_file": "tests/unit/controller/test_metadata_assembly.py",
+ "source_location": "L119",
+ "id": "controller_test_metadata_assembly_test_build_readme_context_partitions_readme_extra",
+ "community": 25,
+ "norm_label": "test_build_readme_context_partitions_readme_extra()"
+ },
+ {
+ "label": "test_build_readme_context_system_and_level_for_run()",
+ "file_type": "code",
+ "source_file": "tests/unit/controller/test_metadata_assembly.py",
+ "source_location": "L155",
+ "id": "controller_test_metadata_assembly_test_build_readme_context_system_and_level_for_run",
+ "community": 25,
+ "norm_label": "test_build_readme_context_system_and_level_for_run()"
+ },
+ {
+ "label": "test_build_readme_context_unknown_equipment_blank_label()",
+ "file_type": "code",
+ "source_file": "tests/unit/controller/test_metadata_assembly.py",
+ "source_location": "L186",
+ "id": "controller_test_metadata_assembly_test_build_readme_context_unknown_equipment_blank_label",
+ "community": 25,
+ "norm_label": "test_build_readme_context_unknown_equipment_blank_label()"
+ },
+ {
+ "label": "_lims_block()",
+ "file_type": "code",
+ "source_file": "tests/unit/controller/test_metadata_assembly.py",
+ "source_location": "L212",
+ "id": "controller_test_metadata_assembly_lims_block",
+ "community": 25,
+ "norm_label": "_lims_block()"
+ },
+ {
+ "label": "test_build_creation_json_all_blocks_populated()",
+ "file_type": "code",
+ "source_file": "tests/unit/controller/test_metadata_assembly.py",
+ "source_location": "L221",
+ "id": "controller_test_metadata_assembly_test_build_creation_json_all_blocks_populated",
+ "community": 25,
+ "norm_label": "test_build_creation_json_all_blocks_populated()"
+ },
+ {
+ "label": "test_build_creation_json_sync_status_override()",
+ "file_type": "code",
+ "source_file": "tests/unit/controller/test_metadata_assembly.py",
+ "source_location": "L270",
+ "id": "controller_test_metadata_assembly_test_build_creation_json_sync_status_override",
+ "community": 25,
+ "norm_label": "test_build_creation_json_sync_status_override()"
+ },
+ {
+ "label": "test_build_creation_json_blank_nas_when_root_empty()",
+ "file_type": "code",
+ "source_file": "tests/unit/controller/test_metadata_assembly.py",
+ "source_location": "L291",
+ "id": "controller_test_metadata_assembly_test_build_creation_json_blank_nas_when_root_empty",
+ "community": 25,
+ "norm_label": "test_build_creation_json_blank_nas_when_root_empty()"
+ },
+ {
+ "label": "_controller()",
+ "file_type": "code",
+ "source_file": "tests/unit/controller/test_metadata_assembly.py",
+ "source_location": "L315",
+ "id": "controller_test_metadata_assembly_controller",
+ "community": 25,
+ "norm_label": "_controller()"
+ },
+ {
+ "label": "_project_request()",
+ "file_type": "code",
+ "source_file": "tests/unit/controller/test_metadata_assembly.py",
+ "source_location": "L329",
+ "id": "controller_test_metadata_assembly_project_request",
+ "community": 25,
+ "norm_label": "_project_request()"
+ },
+ {
+ "label": "_resolved_desc_from()",
+ "file_type": "code",
+ "source_file": "tests/unit/controller/test_metadata_assembly.py",
+ "source_location": "L347",
+ "id": "controller_test_metadata_assembly_resolved_desc_from",
+ "community": 25,
+ "norm_label": "_resolved_desc_from()"
+ },
+ {
+ "label": "_normalize_ctx()",
+ "file_type": "code",
+ "source_file": "tests/unit/controller/test_metadata_assembly.py",
+ "source_location": "L358",
+ "id": "controller_test_metadata_assembly_normalize_ctx",
+ "community": 25,
+ "norm_label": "_normalize_ctx()"
+ },
+ {
+ "label": "test_parity_build_readme_context()",
+ "file_type": "code",
+ "source_file": "tests/unit/controller/test_metadata_assembly.py",
+ "source_location": "L365",
+ "id": "controller_test_metadata_assembly_test_parity_build_readme_context",
+ "community": 25,
+ "norm_label": "test_parity_build_readme_context()"
+ },
+ {
+ "label": "test_parity_build_creation_json()",
+ "file_type": "code",
+ "source_file": "tests/unit/controller/test_metadata_assembly.py",
+ "source_location": "L396",
+ "id": "controller_test_metadata_assembly_test_parity_build_creation_json",
+ "community": 25,
+ "norm_label": "test_parity_build_creation_json()"
+ },
+ {
+ "label": "Unit + parity tests for ``controller/metadata_assembly``. The two helpers ``bui",
+ "file_type": "rationale",
+ "source_file": "tests/unit/controller/test_metadata_assembly.py",
+ "source_location": "L1",
+ "id": "controller_test_metadata_assembly_rationale_1",
+ "community": 25,
+ "norm_label": "unit + parity tests for ``controller/metadata_assembly``. the two helpers ``bui"
+ },
+ {
+ "label": "``readme_extra`` keys split across template / config / custom layers, and co",
+ "file_type": "rationale",
+ "source_file": "tests/unit/controller/test_metadata_assembly.py",
+ "source_location": "L120",
+ "id": "controller_test_metadata_assembly_rationale_120",
+ "community": 25,
+ "norm_label": "``readme_extra`` keys split across template / config / custom layers, and co"
+ },
+ {
+ "label": "Replace the injected, environment-dependent system fields with fixtures so t",
+ "file_type": "rationale",
+ "source_file": "tests/unit/controller/test_metadata_assembly.py",
+ "source_location": "L359",
+ "id": "controller_test_metadata_assembly_rationale_359",
+ "community": 25,
+ "norm_label": "replace the injected, environment-dependent system fields with fixtures so t"
+ },
{
"label": "test_creation_apply_config.py",
"file_type": "code",
"source_file": "tests/unit/controller/test_creation_apply_config.py",
"source_location": "L1",
"id": "tests_unit_controller_test_creation_apply_config_py",
- "community": 26,
+ "community": 23,
"norm_label": "test_creation_apply_config.py"
},
{
@@ -22806,7 +23265,7 @@
"source_file": "tests/unit/controller/test_creation_apply_config.py",
"source_location": "L16",
"id": "controller_test_creation_apply_config_controller",
- "community": 26,
+ "community": 23,
"norm_label": "_controller()"
},
{
@@ -22815,7 +23274,7 @@
"source_file": "tests/unit/controller/test_creation_apply_config.py",
"source_location": "L29",
"id": "controller_test_creation_apply_config_test_apply_config_swaps_config",
- "community": 26,
+ "community": 23,
"norm_label": "test_apply_config_swaps_config()"
},
{
@@ -22824,7 +23283,7 @@
"source_file": "tests/unit/controller/test_creation_apply_config.py",
"source_location": "L39",
"id": "controller_test_creation_apply_config_test_apply_config_reinjects_plugin_host_only_when_given",
- "community": 26,
+ "community": 23,
"norm_label": "test_apply_config_reinjects_plugin_host_only_when_given()"
},
{
@@ -22833,7 +23292,7 @@
"source_file": "tests/unit/controller/test_creation_apply_config.py",
"source_location": "L1",
"id": "controller_test_creation_apply_config_rationale_1",
- "community": 26,
+ "community": 23,
"norm_label": "unit tests for ``creationcontroller.apply_config`` (live config reload). the co"
},
{
@@ -22842,7 +23301,7 @@
"source_file": "tests/unit/controller/test_state_machine.py",
"source_location": "L1",
"id": "tests_unit_controller_test_state_machine_py",
- "community": 22,
+ "community": 24,
"norm_label": "test_state_machine.py"
},
{
@@ -22851,7 +23310,7 @@
"source_file": "tests/unit/controller/test_state_machine.py",
"source_location": "L25",
"id": "controller_test_state_machine_test_state_to_phase_pending_returns_none",
- "community": 22,
+ "community": 24,
"norm_label": "test_state_to_phase_pending_returns_none()"
},
{
@@ -22860,7 +23319,7 @@
"source_file": "tests/unit/controller/test_state_machine.py",
"source_location": "L29",
"id": "controller_test_state_machine_test_state_to_phase_validating_returns_validating_inputs",
- "community": 22,
+ "community": 24,
"norm_label": "test_state_to_phase_validating_returns_validating_inputs()"
},
{
@@ -22869,7 +23328,7 @@
"source_file": "tests/unit/controller/test_state_machine.py",
"source_location": "L33",
"id": "controller_test_state_machine_test_state_to_phase_rendering_returns_rendering_template",
- "community": 22,
+ "community": 24,
"norm_label": "test_state_to_phase_rendering_returns_rendering_template()"
},
{
@@ -22878,7 +23337,7 @@
"source_file": "tests/unit/controller/test_state_machine.py",
"source_location": "L37",
"id": "controller_test_state_machine_test_state_to_phase_plugin_pass_returns_running_plugins",
- "community": 22,
+ "community": 24,
"norm_label": "test_state_to_phase_plugin_pass_returns_running_plugins()"
},
{
@@ -22887,7 +23346,7 @@
"source_file": "tests/unit/controller/test_state_machine.py",
"source_location": "L41",
"id": "controller_test_state_machine_test_state_to_phase_input_required_returns_input_required",
- "community": 22,
+ "community": 24,
"norm_label": "test_state_to_phase_input_required_returns_input_required()"
},
{
@@ -22896,7 +23355,7 @@
"source_file": "tests/unit/controller/test_state_machine.py",
"source_location": "L45",
"id": "controller_test_state_machine_test_state_to_phase_cache_write_returns_writing_cache",
- "community": 22,
+ "community": 24,
"norm_label": "test_state_to_phase_cache_write_returns_writing_cache()"
},
{
@@ -22905,7 +23364,7 @@
"source_file": "tests/unit/controller/test_state_machine.py",
"source_location": "L49",
"id": "controller_test_state_machine_test_state_to_phase_post_validate_returns_validating_post_creation",
- "community": 22,
+ "community": 24,
"norm_label": "test_state_to_phase_post_validate_returns_validating_post_creation()"
},
{
@@ -22914,7 +23373,7 @@
"source_file": "tests/unit/controller/test_state_machine.py",
"source_location": "L53",
"id": "controller_test_state_machine_test_state_to_phase_sync_queued_returns_queueing_nas_sync",
- "community": 22,
+ "community": 24,
"norm_label": "test_state_to_phase_sync_queued_returns_queueing_nas_sync()"
},
{
@@ -22923,7 +23382,7 @@
"source_file": "tests/unit/controller/test_state_machine.py",
"source_location": "L57",
"id": "controller_test_state_machine_test_state_to_phase_done_returns_done",
- "community": 22,
+ "community": 24,
"norm_label": "test_state_to_phase_done_returns_done()"
},
{
@@ -22932,7 +23391,7 @@
"source_file": "tests/unit/controller/test_state_machine.py",
"source_location": "L61",
"id": "controller_test_state_machine_test_state_to_phase_failed_returns_none",
- "community": 22,
+ "community": 24,
"norm_label": "test_state_to_phase_failed_returns_none()"
},
{
@@ -22941,7 +23400,7 @@
"source_file": "tests/unit/controller/test_state_machine.py",
"source_location": "L65",
"id": "controller_test_state_machine_test_state_to_phase_aborted_returns_none",
- "community": 22,
+ "community": 24,
"norm_label": "test_state_to_phase_aborted_returns_none()"
},
{
@@ -22950,7 +23409,7 @@
"source_file": "tests/unit/controller/test_state_machine.py",
"source_location": "L69",
"id": "controller_test_state_machine_test_state_to_phase_covers_every_state",
- "community": 22,
+ "community": 24,
"norm_label": "test_state_to_phase_covers_every_state()"
},
{
@@ -22959,7 +23418,7 @@
"source_file": "tests/unit/controller/test_state_machine.py",
"source_location": "L82",
"id": "controller_test_state_machine_test_pending_transitions_to_validating",
- "community": 22,
+ "community": 24,
"norm_label": "test_pending_transitions_to_validating()"
},
{
@@ -22968,7 +23427,7 @@
"source_file": "tests/unit/controller/test_state_machine.py",
"source_location": "L86",
"id": "controller_test_state_machine_test_validating_transitions_to_rendering",
- "community": 22,
+ "community": 24,
"norm_label": "test_validating_transitions_to_rendering()"
},
{
@@ -22977,7 +23436,7 @@
"source_file": "tests/unit/controller/test_state_machine.py",
"source_location": "L90",
"id": "controller_test_state_machine_test_rendering_transitions_to_plugin_pass",
- "community": 22,
+ "community": 24,
"norm_label": "test_rendering_transitions_to_plugin_pass()"
},
{
@@ -22986,7 +23445,7 @@
"source_file": "tests/unit/controller/test_state_machine.py",
"source_location": "L94",
"id": "controller_test_state_machine_test_plugin_pass_transitions_to_input_required_and_cache_write",
- "community": 22,
+ "community": 24,
"norm_label": "test_plugin_pass_transitions_to_input_required_and_cache_write()"
},
{
@@ -22995,7 +23454,7 @@
"source_file": "tests/unit/controller/test_state_machine.py",
"source_location": "L100",
"id": "controller_test_state_machine_test_input_required_transitions_back_to_plugin_pass",
- "community": 22,
+ "community": 24,
"norm_label": "test_input_required_transitions_back_to_plugin_pass()"
},
{
@@ -23004,7 +23463,7 @@
"source_file": "tests/unit/controller/test_state_machine.py",
"source_location": "L104",
"id": "controller_test_state_machine_test_cache_write_transitions_to_post_validate",
- "community": 22,
+ "community": 24,
"norm_label": "test_cache_write_transitions_to_post_validate()"
},
{
@@ -23013,7 +23472,7 @@
"source_file": "tests/unit/controller/test_state_machine.py",
"source_location": "L108",
"id": "controller_test_state_machine_test_post_validate_transitions_to_sync_queued",
- "community": 22,
+ "community": 24,
"norm_label": "test_post_validate_transitions_to_sync_queued()"
},
{
@@ -23022,7 +23481,7 @@
"source_file": "tests/unit/controller/test_state_machine.py",
"source_location": "L112",
"id": "controller_test_state_machine_test_sync_queued_transitions_to_done",
- "community": 22,
+ "community": 24,
"norm_label": "test_sync_queued_transitions_to_done()"
},
{
@@ -23031,7 +23490,7 @@
"source_file": "tests/unit/controller/test_state_machine.py",
"source_location": "L134",
"id": "controller_test_state_machine_test_fail_allowed_from_every_non_terminal_state",
- "community": 22,
+ "community": 24,
"norm_label": "test_fail_allowed_from_every_non_terminal_state()"
},
{
@@ -23040,7 +23499,7 @@
"source_file": "tests/unit/controller/test_state_machine.py",
"source_location": "L151",
"id": "controller_test_state_machine_test_aborted_allowed_from_every_non_terminal_state",
- "community": 22,
+ "community": 24,
"norm_label": "test_aborted_allowed_from_every_non_terminal_state()"
},
{
@@ -23049,7 +23508,7 @@
"source_file": "tests/unit/controller/test_state_machine.py",
"source_location": "L160",
"id": "controller_test_state_machine_test_done_is_terminal",
- "community": 22,
+ "community": 24,
"norm_label": "test_done_is_terminal()"
},
{
@@ -23058,7 +23517,7 @@
"source_file": "tests/unit/controller/test_state_machine.py",
"source_location": "L164",
"id": "controller_test_state_machine_test_failed_is_terminal",
- "community": 22,
+ "community": 24,
"norm_label": "test_failed_is_terminal()"
},
{
@@ -23067,7 +23526,7 @@
"source_file": "tests/unit/controller/test_state_machine.py",
"source_location": "L168",
"id": "controller_test_state_machine_test_aborted_is_terminal",
- "community": 22,
+ "community": 24,
"norm_label": "test_aborted_is_terminal()"
},
{
@@ -23076,7 +23535,7 @@
"source_file": "tests/unit/controller/test_state_machine.py",
"source_location": "L177",
"id": "controller_test_state_machine_test_assert_transition_allows_legal_forward_edge",
- "community": 22,
+ "community": 24,
"norm_label": "test_assert_transition_allows_legal_forward_edge()"
},
{
@@ -23085,7 +23544,7 @@
"source_file": "tests/unit/controller/test_state_machine.py",
"source_location": "L183",
"id": "controller_test_state_machine_test_assert_transition_allows_cancel_from_any_non_terminal",
- "community": 22,
+ "community": 24,
"norm_label": "test_assert_transition_allows_cancel_from_any_non_terminal()"
},
{
@@ -23094,7 +23553,7 @@
"source_file": "tests/unit/controller/test_state_machine.py",
"source_location": "L188",
"id": "controller_test_state_machine_test_assert_transition_rejects_skipping_a_state",
- "community": 22,
+ "community": 24,
"norm_label": "test_assert_transition_rejects_skipping_a_state()"
},
{
@@ -23103,7 +23562,7 @@
"source_file": "tests/unit/controller/test_state_machine.py",
"source_location": "L193",
"id": "controller_test_state_machine_test_assert_transition_rejects_terminal_to_anything",
- "community": 22,
+ "community": 24,
"norm_label": "test_assert_transition_rejects_terminal_to_anything()"
},
{
@@ -23112,7 +23571,7 @@
"source_file": "tests/unit/controller/test_state_machine.py",
"source_location": "L198",
"id": "controller_test_state_machine_test_assert_transition_rejects_done_back_to_pipeline",
- "community": 22,
+ "community": 24,
"norm_label": "test_assert_transition_rejects_done_back_to_pipeline()"
},
{
@@ -23121,7 +23580,7 @@
"source_file": "tests/unit/controller/test_state_machine.py",
"source_location": "L203",
"id": "controller_test_state_machine_test_assert_transition_rejects_backwards_through_pipeline",
- "community": 22,
+ "community": 24,
"norm_label": "test_assert_transition_rejects_backwards_through_pipeline()"
},
{
@@ -23130,7 +23589,7 @@
"source_file": "tests/unit/controller/test_state_machine.py",
"source_location": "L213",
"id": "controller_test_state_machine_test_session_state_values_match_lowercase_names",
- "community": 22,
+ "community": 24,
"norm_label": "test_session_state_values_match_lowercase_names()"
},
{
@@ -23139,7 +23598,7 @@
"source_file": "tests/unit/controller/test_state_machine.py",
"source_location": "L218",
"id": "controller_test_state_machine_test_phase_values_use_spec_strings",
- "community": 22,
+ "community": 24,
"norm_label": "test_phase_values_use_spec_strings()"
},
{
@@ -23148,7 +23607,7 @@
"source_file": "tests/unit/controller/test_state_machine.py",
"source_location": "L229",
"id": "controller_test_state_machine_test_valid_transitions_keys_cover_every_session_state",
- "community": 22,
+ "community": 24,
"norm_label": "test_valid_transitions_keys_cover_every_session_state()"
},
{
@@ -23157,7 +23616,7 @@
"source_file": "tests/unit/controller/test_state_machine.py",
"source_location": "L233",
"id": "controller_test_state_machine_test_assert_transition_rejects_unknown_source_state",
- "community": 22,
+ "community": 24,
"norm_label": "test_assert_transition_rejects_unknown_source_state()"
},
{
@@ -23166,7 +23625,7 @@
"source_file": "tests/unit/controller/test_state_machine.py",
"source_location": "L1",
"id": "controller_test_state_machine_rationale_1",
- "community": 22,
+ "community": 24,
"norm_label": "tests for ``exlab_wizard.controller.state_machine``. the state machine is the c"
},
{
@@ -23175,7 +23634,7 @@
"source_file": "tests/unit/controller/test_state_machine.py",
"source_location": "L70",
"id": "controller_test_state_machine_rationale_70",
- "community": 22,
+ "community": 24,
"norm_label": "every ``sessionstate`` value must have an explicit mapping entry."
},
{
@@ -23184,7 +23643,7 @@
"source_file": "tests/unit/controller/test_state_machine.py",
"source_location": "L234",
"id": "controller_test_state_machine_rationale_234",
- "community": 22,
+ "community": 24,
"norm_label": "the guard rejects a state not present in ``valid_transitions``. we can't ea"
},
{
@@ -23193,7 +23652,7 @@
"source_file": "tests/unit/controller/__init__.py",
"source_location": "L1",
"id": "tests_unit_controller_init_py",
- "community": 392,
+ "community": 400,
"norm_label": "__init__.py"
},
{
@@ -23202,7 +23661,7 @@
"source_file": "src/exlab_wizard/controller/__init__.py",
"source_location": "L1",
"id": "controller_init_rationale_1",
- "community": 392,
+ "community": 400,
"norm_label": "controller package. backend spec \u00a74.4.1, \u00a74.7, \u00a74.7.1, \u00a74.8. re-exports the pub"
},
{
@@ -23211,7 +23670,7 @@
"source_file": "tests/unit/controller/test_session_store.py",
"source_location": "L1",
"id": "tests_unit_controller_test_session_store_py",
- "community": 10,
+ "community": 18,
"norm_label": "test_session_store.py"
},
{
@@ -23220,7 +23679,7 @@
"source_file": "tests/unit/controller/test_session_store.py",
"source_location": "L36",
"id": "controller_test_session_store_test_open_returns_fresh_pending_session",
- "community": 10,
+ "community": 18,
"norm_label": "test_open_returns_fresh_pending_session()"
},
{
@@ -23229,7 +23688,7 @@
"source_file": "tests/unit/controller/test_session_store.py",
"source_location": "L46",
"id": "controller_test_session_store_test_open_assigns_uuid4_session_id",
- "community": 10,
+ "community": 18,
"norm_label": "test_open_assigns_uuid4_session_id()"
},
{
@@ -23238,7 +23697,7 @@
"source_file": "tests/unit/controller/test_session_store.py",
"source_location": "L54",
"id": "controller_test_session_store_test_open_two_sessions_get_distinct_ids",
- "community": 10,
+ "community": 18,
"norm_label": "test_open_two_sessions_get_distinct_ids()"
},
{
@@ -23247,7 +23706,7 @@
"source_file": "tests/unit/controller/test_session_store.py",
"source_location": "L61",
"id": "controller_test_session_store_test_open_sets_created_at_and_last_heartbeat_to_now",
- "community": 10,
+ "community": 18,
"norm_label": "test_open_sets_created_at_and_last_heartbeat_to_now()"
},
{
@@ -23256,7 +23715,7 @@
"source_file": "tests/unit/controller/test_session_store.py",
"source_location": "L75",
"id": "controller_test_session_store_test_get_returns_none_for_unknown_session_id",
- "community": 10,
+ "community": 18,
"norm_label": "test_get_returns_none_for_unknown_session_id()"
},
{
@@ -23265,7 +23724,7 @@
"source_file": "tests/unit/controller/test_session_store.py",
"source_location": "L80",
"id": "controller_test_session_store_test_get_returns_session_after_open",
- "community": 10,
+ "community": 18,
"norm_label": "test_get_returns_session_after_open()"
},
{
@@ -23274,7 +23733,7 @@
"source_file": "tests/unit/controller/test_session_store.py",
"source_location": "L87",
"id": "controller_test_session_store_test_iter_sorted_returns_pairs_oldest_created_first",
- "community": 10,
+ "community": 18,
"norm_label": "test_iter_sorted_returns_pairs_oldest_created_first()"
},
{
@@ -23283,7 +23742,7 @@
"source_file": "tests/unit/controller/test_session_store.py",
"source_location": "L98",
"id": "controller_test_session_store_test_gc_publishes_terminal_frame_to_live_subscriber",
- "community": 10,
+ "community": 18,
"norm_label": "test_gc_publishes_terminal_frame_to_live_subscriber()"
},
{
@@ -23292,7 +23751,7 @@
"source_file": "tests/unit/controller/test_session_store.py",
"source_location": "L120",
"id": "controller_test_session_store_test_project_identifier_prefers_short_id_then_falls_back_to_project_name",
- "community": 10,
+ "community": 18,
"norm_label": "test_project_identifier_prefers_short_id_then_falls_back_to_project_name()"
},
{
@@ -23301,7 +23760,7 @@
"source_file": "tests/unit/controller/test_session_store.py",
"source_location": "L136",
"id": "controller_test_session_store_test_transition_updates_state_and_phase_together",
- "community": 10,
+ "community": 18,
"norm_label": "test_transition_updates_state_and_phase_together()"
},
{
@@ -23310,7 +23769,7 @@
"source_file": "tests/unit/controller/test_session_store.py",
"source_location": "L144",
"id": "controller_test_session_store_test_transition_to_input_required_sets_next_action_awaiting_input",
- "community": 10,
+ "community": 18,
"norm_label": "test_transition_to_input_required_sets_next_action_awaiting_input()"
},
{
@@ -23319,7 +23778,7 @@
"source_file": "tests/unit/controller/test_session_store.py",
"source_location": "L154",
"id": "controller_test_session_store_test_transition_back_to_plugin_pass_clears_next_action",
- "community": 10,
+ "community": 18,
"norm_label": "test_transition_back_to_plugin_pass_clears_next_action()"
},
{
@@ -23328,7 +23787,7 @@
"source_file": "tests/unit/controller/test_session_store.py",
"source_location": "L169",
"id": "controller_test_session_store_test_transition_rejects_unknown_session_id",
- "community": 10,
+ "community": 18,
"norm_label": "test_transition_rejects_unknown_session_id()"
},
{
@@ -23337,7 +23796,7 @@
"source_file": "tests/unit/controller/test_session_store.py",
"source_location": "L175",
"id": "controller_test_session_store_test_transition_rejects_illegal_state_transition",
- "community": 10,
+ "community": 18,
"norm_label": "test_transition_rejects_illegal_state_transition()"
},
{
@@ -23346,7 +23805,7 @@
"source_file": "tests/unit/controller/test_session_store.py",
"source_location": "L187",
"id": "controller_test_session_store_test_attach_event_queue_wires_queue_to_session",
- "community": 10,
+ "community": 18,
"norm_label": "test_attach_event_queue_wires_queue_to_session()"
},
{
@@ -23355,7 +23814,7 @@
"source_file": "tests/unit/controller/test_session_store.py",
"source_location": "L195",
"id": "controller_test_session_store_test_attach_event_queue_rejects_unknown_session_id",
- "community": 10,
+ "community": 18,
"norm_label": "test_attach_event_queue_rejects_unknown_session_id()"
},
{
@@ -23364,7 +23823,7 @@
"source_file": "tests/unit/controller/test_session_store.py",
"source_location": "L207",
"id": "controller_test_session_store_test_heartbeat_updates_last_heartbeat",
- "community": 10,
+ "community": 18,
"norm_label": "test_heartbeat_updates_last_heartbeat()"
},
{
@@ -23373,7 +23832,7 @@
"source_file": "tests/unit/controller/test_session_store.py",
"source_location": "L217",
"id": "controller_test_session_store_test_heartbeat_is_noop_for_unknown_session",
- "community": 10,
+ "community": 18,
"norm_label": "test_heartbeat_is_noop_for_unknown_session()"
},
{
@@ -23382,7 +23841,7 @@
"source_file": "tests/unit/controller/test_session_store.py",
"source_location": "L228",
"id": "controller_test_session_store_test_abandoned_older_than_returns_only_input_required_sessions",
- "community": 10,
+ "community": 18,
"norm_label": "test_abandoned_older_than_returns_only_input_required_sessions()"
},
{
@@ -23391,7 +23850,7 @@
"source_file": "tests/unit/controller/test_session_store.py",
"source_location": "L250",
"id": "controller_test_session_store_test_abandoned_older_than_skips_recent_input_required_sessions",
- "community": 10,
+ "community": 18,
"norm_label": "test_abandoned_older_than_skips_recent_input_required_sessions()"
},
{
@@ -23400,7 +23859,7 @@
"source_file": "tests/unit/controller/test_session_store.py",
"source_location": "L265",
"id": "controller_test_session_store_test_abandoned_older_than_returns_empty_when_no_sessions_exist",
- "community": 10,
+ "community": 18,
"norm_label": "test_abandoned_older_than_returns_empty_when_no_sessions_exist()"
},
{
@@ -23409,7 +23868,7 @@
"source_file": "tests/unit/controller/test_session_store.py",
"source_location": "L275",
"id": "controller_test_session_store_test_close_stores_outcome_for_done_session",
- "community": 10,
+ "community": 18,
"norm_label": "test_close_stores_outcome_for_done_session()"
},
{
@@ -23418,7 +23877,7 @@
"source_file": "tests/unit/controller/test_session_store.py",
"source_location": "L294",
"id": "controller_test_session_store_test_close_stores_outcome_in_error_for_failed_session",
- "community": 10,
+ "community": 18,
"norm_label": "test_close_stores_outcome_in_error_for_failed_session()"
},
{
@@ -23427,7 +23886,7 @@
"source_file": "tests/unit/controller/test_session_store.py",
"source_location": "L304",
"id": "controller_test_session_store_test_close_is_noop_for_unknown_session",
- "community": 10,
+ "community": 18,
"norm_label": "test_close_is_noop_for_unknown_session()"
},
{
@@ -23436,7 +23895,7 @@
"source_file": "tests/unit/controller/test_session_store.py",
"source_location": "L315",
"id": "controller_test_session_store_test_gc_loop_closes_abandoned_input_required_session",
- "community": 10,
+ "community": 18,
"norm_label": "test_gc_loop_closes_abandoned_input_required_session()"
},
{
@@ -23445,7 +23904,7 @@
"source_file": "tests/unit/controller/test_session_store.py",
"source_location": "L339",
"id": "controller_test_session_store_test_gc_loop_periodically_runs_and_can_be_cancelled",
- "community": 10,
+ "community": 18,
"norm_label": "test_gc_loop_periodically_runs_and_can_be_cancelled()"
},
{
@@ -23454,7 +23913,7 @@
"source_file": "tests/unit/controller/test_session_store.py",
"source_location": "L350",
"id": "controller_test_session_store_test_gc_loop_skips_non_input_required_sessions",
- "community": 10,
+ "community": 18,
"norm_label": "test_gc_loop_skips_non_input_required_sessions()"
},
{
@@ -23463,7 +23922,7 @@
"source_file": "tests/unit/controller/test_session_store.py",
"source_location": "L366",
"id": "controller_test_session_store_test_session_is_terminal_for_terminal_states",
- "community": 9,
+ "community": 10,
"norm_label": "test_session_is_terminal_for_terminal_states()"
},
{
@@ -23472,7 +23931,7 @@
"source_file": "tests/unit/controller/test_session_store.py",
"source_location": "L382",
"id": "controller_test_session_store_test_session_is_terminal_false_for_non_terminal_states",
- "community": 9,
+ "community": 10,
"norm_label": "test_session_is_terminal_false_for_non_terminal_states()"
},
{
@@ -23481,7 +23940,7 @@
"source_file": "tests/unit/controller/test_session_store.py",
"source_location": "L1",
"id": "controller_test_session_store_rationale_1",
- "community": 10,
+ "community": 18,
"norm_label": "tests for ``exlab_wizard.controller.session_store``. the session store is the i"
},
{
@@ -23490,7 +23949,7 @@
"source_file": "tests/unit/controller/test_session_store.py",
"source_location": "L99",
"id": "controller_test_session_store_rationale_99",
- "community": 10,
+ "community": 18,
"norm_label": "an abandoned-session gc pass must wake a live ``subscribe()`` consumer. the"
},
{
@@ -23499,7 +23958,7 @@
"source_file": "tests/unit/controller/test_session_store.py",
"source_location": "L316",
"id": "controller_test_session_store_rationale_316",
- "community": 10,
+ "community": 18,
"norm_label": "the gc pass moves abandoned ``input_required`` sessions to ``aborted``."
},
{
@@ -23508,7 +23967,7 @@
"source_file": "tests/unit/controller/test_session_store.py",
"source_location": "L340",
"id": "controller_test_session_store_rationale_340",
- "community": 10,
+ "community": 18,
"norm_label": "the ``gc_loop`` runs forever until cancelled."
},
{
@@ -23517,133 +23976,637 @@
"source_file": "tests/unit/controller/test_session_store.py",
"source_location": "L351",
"id": "controller_test_session_store_rationale_351",
- "community": 10,
+ "community": 18,
"norm_label": "even with a stale heartbeat, only input_required sessions are gc'd."
},
{
- "label": "test_pywebview_app.py",
+ "label": "test_generator.py",
"file_type": "code",
- "source_file": "tests/unit/window/test_pywebview_app.py",
+ "source_file": "tests/unit/sample_data/test_generator.py",
"source_location": "L1",
- "id": "tests_unit_window_test_pywebview_app_py",
- "community": 11,
- "norm_label": "test_pywebview_app.py"
+ "id": "tests_unit_sample_data_test_generator_py",
+ "community": 109,
+ "norm_label": "test_generator.py"
},
{
- "label": "_hs()",
+ "label": "sandbox()",
"file_type": "code",
- "source_file": "tests/unit/window/test_pywebview_app.py",
- "source_location": "L20",
- "id": "window_test_pywebview_app_hs",
- "community": 11,
- "norm_label": "_hs()"
+ "source_file": "tests/unit/sample_data/test_generator.py",
+ "source_location": "L48",
+ "id": "sample_data_test_generator_sandbox",
+ "community": 0,
+ "norm_label": "sandbox()"
},
{
- "label": "test_build_window_url_uses_loopback()",
+ "label": "_read_creation()",
"file_type": "code",
- "source_file": "tests/unit/window/test_pywebview_app.py",
- "source_location": "L24",
- "id": "window_test_pywebview_app_test_build_window_url_uses_loopback",
- "community": 11,
- "norm_label": "test_build_window_url_uses_loopback()"
+ "source_file": "tests/unit/sample_data/test_generator.py",
+ "source_location": "L69",
+ "id": "sample_data_test_generator_read_creation",
+ "community": 109,
+ "norm_label": "_read_creation()"
},
{
- "label": "test_is_debug_enabled_default()",
+ "label": "_read_readme_fields()",
"file_type": "code",
- "source_file": "tests/unit/window/test_pywebview_app.py",
- "source_location": "L28",
- "id": "window_test_pywebview_app_test_is_debug_enabled_default",
- "community": 11,
- "norm_label": "test_is_debug_enabled_default()"
+ "source_file": "tests/unit/sample_data/test_generator.py",
+ "source_location": "L74",
+ "id": "sample_data_test_generator_read_readme_fields",
+ "community": 109,
+ "norm_label": "_read_readme_fields()"
},
{
- "label": "test_is_debug_enabled_truthy()",
+ "label": "_read_front_matter()",
"file_type": "code",
- "source_file": "tests/unit/window/test_pywebview_app.py",
- "source_location": "L34",
- "id": "window_test_pywebview_app_test_is_debug_enabled_truthy",
- "community": 11,
- "norm_label": "test_is_debug_enabled_truthy()"
+ "source_file": "tests/unit/sample_data/test_generator.py",
+ "source_location": "L79",
+ "id": "sample_data_test_generator_read_front_matter",
+ "community": 109,
+ "norm_label": "_read_front_matter()"
},
{
- "label": "test_is_debug_enabled_falsy()",
+ "label": "_read_label()",
"file_type": "code",
- "source_file": "tests/unit/window/test_pywebview_app.py",
- "source_location": "L40",
- "id": "window_test_pywebview_app_test_is_debug_enabled_falsy",
- "community": 11,
- "norm_label": "test_is_debug_enabled_falsy()"
+ "source_file": "tests/unit/sample_data/test_generator.py",
+ "source_location": "L86",
+ "id": "sample_data_test_generator_read_label",
+ "community": 109,
+ "norm_label": "_read_label()"
},
{
- "label": "test_run_window_calls_create_and_start()",
+ "label": "_project_dirs()",
"file_type": "code",
- "source_file": "tests/unit/window/test_pywebview_app.py",
- "source_location": "L45",
- "id": "window_test_pywebview_app_test_run_window_calls_create_and_start",
- "community": 11,
- "norm_label": "test_run_window_calls_create_and_start()"
+ "source_file": "tests/unit/sample_data/test_generator.py",
+ "source_location": "L91",
+ "id": "sample_data_test_generator_project_dirs",
+ "community": 109,
+ "norm_label": "_project_dirs()"
},
{
- "label": "test_run_window_passes_debug_when_env_var_set()",
+ "label": "_run_dirs()",
"file_type": "code",
- "source_file": "tests/unit/window/test_pywebview_app.py",
- "source_location": "L64",
- "id": "window_test_pywebview_app_test_run_window_passes_debug_when_env_var_set",
- "community": 11,
- "norm_label": "test_run_window_passes_debug_when_env_var_set()"
+ "source_file": "tests/unit/sample_data/test_generator.py",
+ "source_location": "L107",
+ "id": "sample_data_test_generator_run_dirs",
+ "community": 109,
+ "norm_label": "_run_dirs()"
},
{
- "label": "test_run_window_with_only_create_window_uses_default_start()",
+ "label": "test_full_tree_exists()",
"file_type": "code",
- "source_file": "tests/unit/window/test_pywebview_app.py",
- "source_location": "L77",
- "id": "window_test_pywebview_app_test_run_window_with_only_create_window_uses_default_start",
- "community": 11,
- "norm_label": "test_run_window_with_only_create_window_uses_default_start()"
+ "source_file": "tests/unit/sample_data/test_generator.py",
+ "source_location": "L121",
+ "id": "sample_data_test_generator_test_full_tree_exists",
+ "community": 109,
+ "norm_label": "test_full_tree_exists()"
},
{
- "label": "test_window_title_constant()",
+ "label": "test_every_folder_has_metadata()",
"file_type": "code",
- "source_file": "tests/unit/window/test_pywebview_app.py",
- "source_location": "L97",
- "id": "window_test_pywebview_app_test_window_title_constant",
- "community": 11,
- "norm_label": "test_window_title_constant()"
+ "source_file": "tests/unit/sample_data/test_generator.py",
+ "source_location": "L146",
+ "id": "sample_data_test_generator_test_every_folder_has_metadata",
+ "community": 109,
+ "norm_label": "test_every_folder_has_metadata()"
},
{
- "label": "test_import_webview_returns_module()",
+ "label": "test_test_runs_marker_present_for_test_projects()",
"file_type": "code",
- "source_file": "tests/unit/window/test_pywebview_app.py",
- "source_location": "L101",
- "id": "window_test_pywebview_app_test_import_webview_returns_module",
- "community": 11,
- "norm_label": "test_import_webview_returns_module()"
+ "source_file": "tests/unit/sample_data/test_generator.py",
+ "source_location": "L176",
+ "id": "sample_data_test_generator_test_test_runs_marker_present_for_test_projects",
+ "community": 109,
+ "norm_label": "test_test_runs_marker_present_for_test_projects()"
},
{
- "label": "Tests for :mod:`exlab_wizard.window.pywebview_app`. Backend Spec \u00a715.3.2.",
- "file_type": "rationale",
- "source_file": "tests/unit/window/test_pywebview_app.py",
- "source_location": "L1",
- "id": "window_test_pywebview_app_rationale_1",
- "community": 11,
- "norm_label": "tests for :mod:`exlab_wizard.window.pywebview_app`. backend spec \u00a715.3.2."
+ "label": "test_sync_status_spread()",
+ "file_type": "code",
+ "source_file": "tests/unit/sample_data/test_generator.py",
+ "source_location": "L198",
+ "id": "sample_data_test_generator_test_sync_status_spread",
+ "community": 109,
+ "norm_label": "test_sync_status_spread()"
},
{
- "label": "When ``start`` is omitted the lazy import path is taken.",
- "file_type": "rationale",
- "source_file": "tests/unit/window/test_pywebview_app.py",
- "source_location": "L80",
- "id": "window_test_pywebview_app_rationale_80",
- "community": 11,
- "norm_label": "when ``start`` is omitted the lazy import path is taken."
- },
+ "label": "test_each_run_sync_status_matches_sample()",
+ "file_type": "code",
+ "source_file": "tests/unit/sample_data/test_generator.py",
+ "source_location": "L216",
+ "id": "sample_data_test_generator_test_each_run_sync_status_matches_sample",
+ "community": 109,
+ "norm_label": "test_each_run_sync_status_matches_sample()"
+ },
+ {
+ "label": "test_default_payload_pair()",
+ "file_type": "code",
+ "source_file": "tests/unit/sample_data/test_generator.py",
+ "source_location": "L240",
+ "id": "sample_data_test_generator_test_default_payload_pair",
+ "community": 109,
+ "norm_label": "test_default_payload_pair()"
+ },
+ {
+ "label": "test_blocked_run_carries_trigger_file()",
+ "file_type": "code",
+ "source_file": "tests/unit/sample_data/test_generator.py",
+ "source_location": "L256",
+ "id": "sample_data_test_generator_test_blocked_run_carries_trigger_file",
+ "community": 109,
+ "norm_label": "test_blocked_run_carries_trigger_file()"
+ },
+ {
+ "label": "test_readme_field_layering()",
+ "file_type": "code",
+ "source_file": "tests/unit/sample_data/test_generator.py",
+ "source_location": "L284",
+ "id": "sample_data_test_generator_test_readme_field_layering",
+ "community": 109,
+ "norm_label": "test_readme_field_layering()"
+ },
+ {
+ "label": "test_seeded_config_default_is_present_and_optional()",
+ "file_type": "code",
+ "source_file": "tests/unit/sample_data/test_generator.py",
+ "source_location": "L307",
+ "id": "sample_data_test_generator_test_seeded_config_default_is_present_and_optional",
+ "community": 109,
+ "norm_label": "test_seeded_config_default_is_present_and_optional()"
+ },
+ {
+ "label": "_snapshot()",
+ "file_type": "code",
+ "source_file": "tests/unit/sample_data/test_generator.py",
+ "source_location": "L325",
+ "id": "sample_data_test_generator_snapshot",
+ "community": 473,
+ "norm_label": "_snapshot()"
+ },
+ {
+ "label": "test_determinism()",
+ "file_type": "code",
+ "source_file": "tests/unit/sample_data/test_generator.py",
+ "source_location": "L339",
+ "id": "sample_data_test_generator_test_determinism",
+ "community": 473,
+ "norm_label": "test_determinism()"
+ },
+ {
+ "label": "test_equipment_json_normalized_is_deterministic()",
+ "file_type": "code",
+ "source_file": "tests/unit/sample_data/test_generator.py",
+ "source_location": "L354",
+ "id": "sample_data_test_generator_test_equipment_json_normalized_is_deterministic",
+ "community": 528,
+ "norm_label": "test_equipment_json_normalized_is_deterministic()"
+ },
+ {
+ "label": "test_wipe_refuses_when_test_mode_unset()",
+ "file_type": "code",
+ "source_file": "tests/unit/sample_data/test_generator.py",
+ "source_location": "L383",
+ "id": "sample_data_test_generator_test_wipe_refuses_when_test_mode_unset",
+ "community": 109,
+ "norm_label": "test_wipe_refuses_when_test_mode_unset()"
+ },
+ {
+ "label": "test_wipe_refuses_when_app_name_not_test()",
+ "file_type": "code",
+ "source_file": "tests/unit/sample_data/test_generator.py",
+ "source_location": "L389",
+ "id": "sample_data_test_generator_test_wipe_refuses_when_app_name_not_test",
+ "community": 109,
+ "norm_label": "test_wipe_refuses_when_app_name_not_test()"
+ },
+ {
+ "label": "test_wipe_refuses_when_target_escapes_sandbox()",
+ "file_type": "code",
+ "source_file": "tests/unit/sample_data/test_generator.py",
+ "source_location": "L399",
+ "id": "sample_data_test_generator_test_wipe_refuses_when_target_escapes_sandbox",
+ "community": 174,
+ "norm_label": "test_wipe_refuses_when_target_escapes_sandbox()"
+ },
+ {
+ "label": "test_wipe_refuses_symlinked_target_escaping_sandbox()",
+ "file_type": "code",
+ "source_file": "tests/unit/sample_data/test_generator.py",
+ "source_location": "L419",
+ "id": "sample_data_test_generator_test_wipe_refuses_symlinked_target_escaping_sandbox",
+ "community": 109,
+ "norm_label": "test_wipe_refuses_symlinked_target_escaping_sandbox()"
+ },
+ {
+ "label": "test_seeded_equipment_roots_are_base_paths()",
+ "file_type": "code",
+ "source_file": "tests/unit/sample_data/test_generator.py",
+ "source_location": "L444",
+ "id": "sample_data_test_generator_test_seeded_equipment_roots_are_base_paths",
+ "community": 109,
+ "norm_label": "test_seeded_equipment_roots_are_base_paths()"
+ },
+ {
+ "label": "test_no_wipe_is_idempotent_and_nondestructive()",
+ "file_type": "code",
+ "source_file": "tests/unit/sample_data/test_generator.py",
+ "source_location": "L472",
+ "id": "sample_data_test_generator_test_no_wipe_is_idempotent_and_nondestructive",
+ "community": 109,
+ "norm_label": "test_no_wipe_is_idempotent_and_nondestructive()"
+ },
+ {
+ "label": "test_generator_class_is_constructable()",
+ "file_type": "code",
+ "source_file": "tests/unit/sample_data/test_generator.py",
+ "source_location": "L487",
+ "id": "sample_data_test_generator_test_generator_class_is_constructable",
+ "community": 174,
+ "norm_label": "test_generator_class_is_constructable()"
+ },
+ {
+ "label": "End-to-end tests for the sample-data generator (design spec \u00a76/\u00a77/\u00a79). These dr",
+ "file_type": "rationale",
+ "source_file": "tests/unit/sample_data/test_generator.py",
+ "source_location": "L1",
+ "id": "sample_data_test_generator_rationale_1",
+ "community": 109,
+ "norm_label": "end-to-end tests for the sample-data generator (design spec \u00a76/\u00a77/\u00a79). these dr"
+ },
+ {
+ "label": "Build a ``-test`` sandbox with a starter config; return ``config_path``. Se",
+ "file_type": "rationale",
+ "source_file": "tests/unit/sample_data/test_generator.py",
+ "source_location": "L49",
+ "id": "sample_data_test_generator_rationale_49",
+ "community": 0,
+ "norm_label": "build a ``-test`` sandbox with a starter config; return ``config_path``. se"
+ },
+ {
+ "label": "Return the README ``core_fields.label`` for a project/run folder.",
+ "file_type": "rationale",
+ "source_file": "tests/unit/sample_data/test_generator.py",
+ "source_location": "L87",
+ "id": "sample_data_test_generator_rationale_87",
+ "community": 109,
+ "norm_label": "return the readme ``core_fields.label`` for a project/run folder."
+ },
+ {
+ "label": "Return every ``/`` directory under ``local_root``. Excludes th",
+ "file_type": "rationale",
+ "source_file": "tests/unit/sample_data/test_generator.py",
+ "source_location": "L92",
+ "id": "sample_data_test_generator_rationale_92",
+ "community": 109,
+ "norm_label": "return every ``/`` directory under ``local_root``. excludes th"
+ },
+ {
+ "label": "Map relpath -> bytes for README/creation.json/payload (no equipment.json).",
+ "file_type": "rationale",
+ "source_file": "tests/unit/sample_data/test_generator.py",
+ "source_location": "L326",
+ "id": "sample_data_test_generator_rationale_326",
+ "community": 473,
+ "norm_label": "map relpath -> bytes for readme/creation.json/payload (no equipment.json)."
+ },
+ {
+ "label": "equipment.json differs only in the two writer-stamped timestamps.",
+ "file_type": "rationale",
+ "source_file": "tests/unit/sample_data/test_generator.py",
+ "source_location": "L355",
+ "id": "sample_data_test_generator_rationale_355",
+ "community": 528,
+ "norm_label": "equipment.json differs only in the two writer-stamped timestamps."
+ },
+ {
+ "label": "A seeded equipment dir replaced by a symlink out of the sandbox is refused.",
+ "file_type": "rationale",
+ "source_file": "tests/unit/sample_data/test_generator.py",
+ "source_location": "L420",
+ "id": "sample_data_test_generator_rationale_420",
+ "community": 109,
+ "norm_label": "a seeded equipment dir replaced by a symlink out of the sandbox is refused."
+ },
+ {
+ "label": "Seeded ``EquipmentConfig.local_root``/``nas_root`` are BASE roots. Consumer",
+ "file_type": "rationale",
+ "source_file": "tests/unit/sample_data/test_generator.py",
+ "source_location": "L445",
+ "id": "sample_data_test_generator_rationale_445",
+ "community": 109,
+ "norm_label": "seeded ``equipmentconfig.local_root``/``nas_root`` are base roots. consumer"
+ },
+ {
+ "label": "``wipe=False`` seeds, and a re-seed without wipe does not delete the tree.",
+ "file_type": "rationale",
+ "source_file": "tests/unit/sample_data/test_generator.py",
+ "source_location": "L473",
+ "id": "sample_data_test_generator_rationale_473",
+ "community": 109,
+ "norm_label": "``wipe=false`` seeds, and a re-seed without wipe does not delete the tree."
+ },
+ {
+ "label": "test_spec.py",
+ "file_type": "code",
+ "source_file": "tests/unit/sample_data/test_spec.py",
+ "source_location": "L1",
+ "id": "tests_unit_sample_data_test_spec_py",
+ "community": 78,
+ "norm_label": "test_spec.py"
+ },
+ {
+ "label": "_project()",
+ "file_type": "code",
+ "source_file": "tests/unit/sample_data/test_spec.py",
+ "source_location": "L23",
+ "id": "sample_data_test_spec_project",
+ "community": 78,
+ "norm_label": "_project()"
+ },
+ {
+ "label": "test_samples_top_level_shape()",
+ "file_type": "code",
+ "source_file": "tests/unit/sample_data/test_spec.py",
+ "source_location": "L27",
+ "id": "sample_data_test_spec_test_samples_top_level_shape",
+ "community": 78,
+ "norm_label": "test_samples_top_level_shape()"
+ },
+ {
+ "label": "test_testrig_has_one_project_three_runs()",
+ "file_type": "code",
+ "source_file": "tests/unit/sample_data/test_spec.py",
+ "source_location": "L34",
+ "id": "sample_data_test_spec_test_testrig_has_one_project_three_runs",
+ "community": 78,
+ "norm_label": "test_testrig_has_one_project_three_runs()"
+ },
+ {
+ "label": "test_altrig_has_two_projects_two_runs_each()",
+ "file_type": "code",
+ "source_file": "tests/unit/sample_data/test_spec.py",
+ "source_location": "L41",
+ "id": "sample_data_test_spec_test_altrig_has_two_projects_two_runs_each",
+ "community": 78,
+ "norm_label": "test_altrig_has_two_projects_two_runs_each()"
+ },
+ {
+ "label": "test_total_run_count_is_seven()",
+ "file_type": "code",
+ "source_file": "tests/unit/sample_data/test_spec.py",
+ "source_location": "L49",
+ "id": "sample_data_test_spec_test_total_run_count_is_seven",
+ "community": 78,
+ "norm_label": "test_total_run_count_is_seven()"
+ },
+ {
+ "label": "test_malformed_short_id_raises_validation_error()",
+ "file_type": "code",
+ "source_file": "tests/unit/sample_data/test_spec.py",
+ "source_location": "L54",
+ "id": "sample_data_test_spec_test_malformed_short_id_raises_validation_error",
+ "community": 78,
+ "norm_label": "test_malformed_short_id_raises_validation_error()"
+ },
+ {
+ "label": "test_malformed_equipment_id_raises_validation_error()",
+ "file_type": "code",
+ "source_file": "tests/unit/sample_data/test_spec.py",
+ "source_location": "L73",
+ "id": "sample_data_test_spec_test_malformed_equipment_id_raises_validation_error",
+ "community": 78,
+ "norm_label": "test_malformed_equipment_id_raises_validation_error()"
+ },
+ {
+ "label": "test_malformed_project_name_raises_validation_error()",
+ "file_type": "code",
+ "source_file": "tests/unit/sample_data/test_spec.py",
+ "source_location": "L98",
+ "id": "sample_data_test_spec_test_malformed_project_name_raises_validation_error",
+ "community": 78,
+ "norm_label": "test_malformed_project_name_raises_validation_error()"
+ },
+ {
+ "label": "test_unknown_key_rejected_extra_forbid()",
+ "file_type": "code",
+ "source_file": "tests/unit/sample_data/test_spec.py",
+ "source_location": "L119",
+ "id": "sample_data_test_spec_test_unknown_key_rejected_extra_forbid",
+ "community": 78,
+ "norm_label": "test_unknown_key_rejected_extra_forbid()"
+ },
+ {
+ "label": "test_samplefile_rejects_escaping_relpath()",
+ "file_type": "code",
+ "source_file": "tests/unit/sample_data/test_spec.py",
+ "source_location": "L131",
+ "id": "sample_data_test_spec_test_samplefile_rejects_escaping_relpath",
+ "community": 78,
+ "norm_label": "test_samplefile_rejects_escaping_relpath()"
+ },
+ {
+ "label": "test_samplefile_accepts_nested_relative_path()",
+ "file_type": "code",
+ "source_file": "tests/unit/sample_data/test_spec.py",
+ "source_location": "L137",
+ "id": "sample_data_test_spec_test_samplefile_accepts_nested_relative_path",
+ "community": 78,
+ "norm_label": "test_samplefile_accepts_nested_relative_path()"
+ },
+ {
+ "label": "test_sync_status_spread_covers_required_states()",
+ "file_type": "code",
+ "source_file": "tests/unit/sample_data/test_spec.py",
+ "source_location": "L141",
+ "id": "sample_data_test_spec_test_sync_status_spread_covers_required_states",
+ "community": 78,
+ "norm_label": "test_sync_status_spread_covers_required_states()"
+ },
+ {
+ "label": "test_proj_0003_blocked_run_carries_trigger_file()",
+ "file_type": "code",
+ "source_file": "tests/unit/sample_data/test_spec.py",
+ "source_location": "L151",
+ "id": "sample_data_test_spec_test_proj_0003_blocked_run_carries_trigger_file",
+ "community": 78,
+ "norm_label": "test_proj_0003_blocked_run_carries_trigger_file()"
+ },
+ {
+ "label": "test_proj_0002_calibration_a_has_readme_extra_fields()",
+ "file_type": "code",
+ "source_file": "tests/unit/sample_data/test_spec.py",
+ "source_location": "L162",
+ "id": "sample_data_test_spec_test_proj_0002_calibration_a_has_readme_extra_fields",
+ "community": 78,
+ "norm_label": "test_proj_0002_calibration_a_has_readme_extra_fields()"
+ },
+ {
+ "label": "Tests for the declarative ``SAMPLES`` list and its Pydantic models (\u00a74). These",
+ "file_type": "rationale",
+ "source_file": "tests/unit/sample_data/test_spec.py",
+ "source_location": "L1",
+ "id": "sample_data_test_spec_rationale_1",
+ "community": 78,
+ "norm_label": "tests for the declarative ``samples`` list and its pydantic models (\u00a74). these"
+ },
+ {
+ "label": "Two equipment entries, keyed TESTRIG then ALTRIG.",
+ "file_type": "rationale",
+ "source_file": "tests/unit/sample_data/test_spec.py",
+ "source_location": "L28",
+ "id": "sample_data_test_spec_rationale_28",
+ "community": 78,
+ "norm_label": "two equipment entries, keyed testrig then altrig."
+ },
+ {
+ "label": "``relpath`` must stay under the run dir -- no absolute or ``..`` paths.",
+ "file_type": "rationale",
+ "source_file": "tests/unit/sample_data/test_spec.py",
+ "source_location": "L132",
+ "id": "sample_data_test_spec_rationale_132",
+ "community": 78,
+ "norm_label": "``relpath`` must stay under the run dir -- no absolute or ``..`` paths."
+ },
+ {
+ "label": "__init__.py",
+ "file_type": "code",
+ "source_file": "tests/unit/sample_data/__init__.py",
+ "source_location": "L1",
+ "id": "tests_unit_sample_data_init_py",
+ "community": 480,
+ "norm_label": "__init__.py"
+ },
+ {
+ "label": "Declarative sample-data fixtures for the ``-test`` sandbox. This package owns t",
+ "file_type": "rationale",
+ "source_file": "src/exlab_wizard/sample_data/__init__.py",
+ "source_location": "L1",
+ "id": "sample_data_init_rationale_1",
+ "community": 480,
+ "norm_label": "declarative sample-data fixtures for the ``-test`` sandbox. this package owns t"
+ },
+ {
+ "label": "test_pywebview_app.py",
+ "file_type": "code",
+ "source_file": "tests/unit/window/test_pywebview_app.py",
+ "source_location": "L1",
+ "id": "tests_unit_window_test_pywebview_app_py",
+ "community": 17,
+ "norm_label": "test_pywebview_app.py"
+ },
+ {
+ "label": "_hs()",
+ "file_type": "code",
+ "source_file": "tests/unit/window/test_pywebview_app.py",
+ "source_location": "L20",
+ "id": "window_test_pywebview_app_hs",
+ "community": 17,
+ "norm_label": "_hs()"
+ },
+ {
+ "label": "test_build_window_url_uses_loopback()",
+ "file_type": "code",
+ "source_file": "tests/unit/window/test_pywebview_app.py",
+ "source_location": "L24",
+ "id": "window_test_pywebview_app_test_build_window_url_uses_loopback",
+ "community": 17,
+ "norm_label": "test_build_window_url_uses_loopback()"
+ },
+ {
+ "label": "test_is_debug_enabled_default()",
+ "file_type": "code",
+ "source_file": "tests/unit/window/test_pywebview_app.py",
+ "source_location": "L28",
+ "id": "window_test_pywebview_app_test_is_debug_enabled_default",
+ "community": 17,
+ "norm_label": "test_is_debug_enabled_default()"
+ },
+ {
+ "label": "test_is_debug_enabled_truthy()",
+ "file_type": "code",
+ "source_file": "tests/unit/window/test_pywebview_app.py",
+ "source_location": "L34",
+ "id": "window_test_pywebview_app_test_is_debug_enabled_truthy",
+ "community": 17,
+ "norm_label": "test_is_debug_enabled_truthy()"
+ },
+ {
+ "label": "test_is_debug_enabled_falsy()",
+ "file_type": "code",
+ "source_file": "tests/unit/window/test_pywebview_app.py",
+ "source_location": "L40",
+ "id": "window_test_pywebview_app_test_is_debug_enabled_falsy",
+ "community": 17,
+ "norm_label": "test_is_debug_enabled_falsy()"
+ },
+ {
+ "label": "test_run_window_calls_create_and_start()",
+ "file_type": "code",
+ "source_file": "tests/unit/window/test_pywebview_app.py",
+ "source_location": "L45",
+ "id": "window_test_pywebview_app_test_run_window_calls_create_and_start",
+ "community": 17,
+ "norm_label": "test_run_window_calls_create_and_start()"
+ },
+ {
+ "label": "test_run_window_passes_debug_when_env_var_set()",
+ "file_type": "code",
+ "source_file": "tests/unit/window/test_pywebview_app.py",
+ "source_location": "L64",
+ "id": "window_test_pywebview_app_test_run_window_passes_debug_when_env_var_set",
+ "community": 17,
+ "norm_label": "test_run_window_passes_debug_when_env_var_set()"
+ },
+ {
+ "label": "test_run_window_with_only_create_window_uses_default_start()",
+ "file_type": "code",
+ "source_file": "tests/unit/window/test_pywebview_app.py",
+ "source_location": "L77",
+ "id": "window_test_pywebview_app_test_run_window_with_only_create_window_uses_default_start",
+ "community": 17,
+ "norm_label": "test_run_window_with_only_create_window_uses_default_start()"
+ },
+ {
+ "label": "test_window_title_constant()",
+ "file_type": "code",
+ "source_file": "tests/unit/window/test_pywebview_app.py",
+ "source_location": "L97",
+ "id": "window_test_pywebview_app_test_window_title_constant",
+ "community": 17,
+ "norm_label": "test_window_title_constant()"
+ },
+ {
+ "label": "test_import_webview_returns_module()",
+ "file_type": "code",
+ "source_file": "tests/unit/window/test_pywebview_app.py",
+ "source_location": "L101",
+ "id": "window_test_pywebview_app_test_import_webview_returns_module",
+ "community": 17,
+ "norm_label": "test_import_webview_returns_module()"
+ },
+ {
+ "label": "Tests for :mod:`exlab_wizard.window.pywebview_app`. Backend Spec \u00a715.3.2.",
+ "file_type": "rationale",
+ "source_file": "tests/unit/window/test_pywebview_app.py",
+ "source_location": "L1",
+ "id": "window_test_pywebview_app_rationale_1",
+ "community": 17,
+ "norm_label": "tests for :mod:`exlab_wizard.window.pywebview_app`. backend spec \u00a715.3.2."
+ },
+ {
+ "label": "When ``start`` is omitted the lazy import path is taken.",
+ "file_type": "rationale",
+ "source_file": "tests/unit/window/test_pywebview_app.py",
+ "source_location": "L80",
+ "id": "window_test_pywebview_app_rationale_80",
+ "community": 17,
+ "norm_label": "when ``start`` is omitted the lazy import path is taken."
+ },
{
"label": "The lazy-import helper imports ``webview`` when called.",
"file_type": "rationale",
"source_file": "tests/unit/window/test_pywebview_app.py",
"source_location": "L102",
"id": "window_test_pywebview_app_rationale_102",
- "community": 11,
+ "community": 17,
"norm_label": "the lazy-import helper imports ``webview`` when called."
},
{
@@ -23652,7 +24615,7 @@
"source_file": "tests/unit/window/__init__.py",
"source_location": "L1",
"id": "tests_unit_window_init_py",
- "community": 444,
+ "community": 481,
"norm_label": "__init__.py"
},
{
@@ -23661,7 +24624,7 @@
"source_file": "src/exlab_wizard/window/__init__.py",
"source_location": "L1",
"id": "window_init_rationale_1",
- "community": 444,
+ "community": 481,
"norm_label": "window application package. backend spec \u00a74.3.2. public api: * :func:`run_wind"
},
{
@@ -23670,7 +24633,7 @@
"source_file": "tests/unit/window/test_main.py",
"source_location": "L1",
"id": "tests_unit_window_test_main_py",
- "community": 11,
+ "community": 17,
"norm_label": "test_main.py"
},
{
@@ -23679,7 +24642,7 @@
"source_file": "tests/unit/window/test_main.py",
"source_location": "L24",
"id": "window_test_main_write_server_json",
- "community": 11,
+ "community": 17,
"norm_label": "_write_server_json()"
},
{
@@ -23688,7 +24651,7 @@
"source_file": "tests/unit/window/test_main.py",
"source_location": "L36",
"id": "window_test_main_test_read_server_handshake_returns_none_when_missing",
- "community": 11,
+ "community": 17,
"norm_label": "test_read_server_handshake_returns_none_when_missing()"
},
{
@@ -23697,7 +24660,7 @@
"source_file": "tests/unit/window/test_main.py",
"source_location": "L40",
"id": "window_test_main_test_read_server_handshake_returns_handshake",
- "community": 11,
+ "community": 17,
"norm_label": "test_read_server_handshake_returns_handshake()"
},
{
@@ -23706,7 +24669,7 @@
"source_file": "tests/unit/window/test_main.py",
"source_location": "L48",
"id": "window_test_main_test_read_server_handshake_returns_none_on_invalid_json",
- "community": 11,
+ "community": 17,
"norm_label": "test_read_server_handshake_returns_none_on_invalid_json()"
},
{
@@ -23715,7 +24678,7 @@
"source_file": "tests/unit/window/test_main.py",
"source_location": "L53",
"id": "window_test_main_test_read_server_handshake_returns_none_on_missing_keys",
- "community": 11,
+ "community": 17,
"norm_label": "test_read_server_handshake_returns_none_on_missing_keys()"
},
{
@@ -23724,7 +24687,7 @@
"source_file": "tests/unit/window/test_main.py",
"source_location": "L58",
"id": "window_test_main_test_main_returns_stale_when_no_state_file",
- "community": 11,
+ "community": 17,
"norm_label": "test_main_returns_stale_when_no_state_file()"
},
{
@@ -23733,7 +24696,7 @@
"source_file": "tests/unit/window/test_main.py",
"source_location": "L67",
"id": "window_test_main_test_main_returns_stale_on_dead_pid",
- "community": 11,
+ "community": 17,
"norm_label": "test_main_returns_stale_on_dead_pid()"
},
{
@@ -23742,7 +24705,7 @@
"source_file": "tests/unit/window/test_main.py",
"source_location": "L75",
"id": "window_test_main_test_main_hands_off_with_live_state",
- "community": 11,
+ "community": 17,
"norm_label": "test_main_hands_off_with_live_state()"
},
{
@@ -23751,7 +24714,7 @@
"source_file": "tests/unit/window/test_main.py",
"source_location": "L89",
"id": "window_test_main_test_is_pid_alive_for_self",
- "community": 11,
+ "community": 17,
"norm_label": "test_is_pid_alive_for_self()"
},
{
@@ -23760,7 +24723,7 @@
"source_file": "tests/unit/window/test_main.py",
"source_location": "L93",
"id": "window_test_main_test_is_pid_alive_rejects_zero",
- "community": 11,
+ "community": 17,
"norm_label": "test_is_pid_alive_rejects_zero()"
},
{
@@ -23769,7 +24732,7 @@
"source_file": "tests/unit/window/test_main.py",
"source_location": "L98",
"id": "window_test_main_test_is_pid_alive_for_dead_pid",
- "community": 11,
+ "community": 17,
"norm_label": "test_is_pid_alive_for_dead_pid()"
},
{
@@ -23778,7 +24741,7 @@
"source_file": "tests/unit/window/test_main.py",
"source_location": "L103",
"id": "window_test_main_test_is_pid_alive_falls_through_to_default",
- "community": 11,
+ "community": 17,
"norm_label": "test_is_pid_alive_falls_through_to_default()"
},
{
@@ -23787,7 +24750,7 @@
"source_file": "tests/unit/window/test_main.py",
"source_location": "L117",
"id": "window_test_main_test_default_state_dir_is_used",
- "community": 11,
+ "community": 17,
"norm_label": "test_default_state_dir_is_used()"
},
{
@@ -23796,7 +24759,7 @@
"source_file": "tests/unit/window/test_main.py",
"source_location": "L123",
"id": "window_test_main_test_default_handoff_invokes_run_window",
- "community": 11,
+ "community": 17,
"norm_label": "test_default_handoff_invokes_run_window()"
},
{
@@ -23805,7 +24768,7 @@
"source_file": "tests/unit/window/test_main.py",
"source_location": "L139",
"id": "window_test_main_test_argv_is_ignored",
- "community": 11,
+ "community": 17,
"norm_label": "test_argv_is_ignored()"
},
{
@@ -23814,7 +24777,7 @@
"source_file": "tests/unit/window/test_main.py",
"source_location": "L145",
"id": "window_test_main_test_server_handshake_round_trip",
- "community": 11,
+ "community": 17,
"norm_label": "test_server_handshake_round_trip()"
},
{
@@ -23823,7 +24786,7 @@
"source_file": "tests/unit/window/test_main.py",
"source_location": "L152",
"id": "window_test_main_test_posix_is_pid_alive_handles_permission",
- "community": 11,
+ "community": 17,
"norm_label": "test_posix_is_pid_alive_handles_permission()"
},
{
@@ -23832,7 +24795,7 @@
"source_file": "tests/unit/window/test_main.py",
"source_location": "L163",
"id": "window_test_main_test_posix_is_pid_alive_handles_dead_pid",
- "community": 11,
+ "community": 17,
"norm_label": "test_posix_is_pid_alive_handles_dead_pid()"
},
{
@@ -23841,7 +24804,7 @@
"source_file": "tests/unit/window/test_main.py",
"source_location": "L173",
"id": "window_test_main_test_is_pid_alive_dispatches_to_windows",
- "community": 11,
+ "community": 17,
"norm_label": "test_is_pid_alive_dispatches_to_windows()"
},
{
@@ -23850,7 +24813,7 @@
"source_file": "tests/unit/window/test_main.py",
"source_location": "L1",
"id": "window_test_main_rationale_1",
- "community": 11,
+ "community": 17,
"norm_label": "tests for :mod:`exlab_wizard.window.main`. backend spec \u00a715.3.2."
},
{
@@ -23859,7 +24822,7 @@
"source_file": "tests/unit/window/test_main.py",
"source_location": "L104",
"id": "window_test_main_rationale_104",
- "community": 11,
+ "community": 17,
"norm_label": "default ``pid_alive`` lookup uses ``is_pid_alive``."
},
{
@@ -23868,7 +24831,7 @@
"source_file": "tests/unit/window/test_main.py",
"source_location": "L153",
"id": "window_test_main_rationale_153",
- "community": 11,
+ "community": 17,
"norm_label": "a foreign-uid live pid counts as alive."
},
{
@@ -23877,7 +24840,7 @@
"source_file": "tests/unit/window/test_main.py",
"source_location": "L174",
"id": "window_test_main_rationale_174",
- "community": 11,
+ "community": 17,
"norm_label": "when sys.platform is 'win32' the windows implementation runs."
},
{
@@ -23886,7 +24849,7 @@
"source_file": "tests/unit/api/test_setup.py",
"source_location": "L1",
"id": "tests_unit_api_test_setup_py",
- "community": 1,
+ "community": 95,
"norm_label": "test_setup.py"
},
{
@@ -23895,7 +24858,7 @@
"source_file": "tests/unit/api/test_setup.py",
"source_location": "L28",
"id": "api_test_setup_ready_config",
- "community": 1,
+ "community": 95,
"norm_label": "_ready_config()"
},
{
@@ -23913,7 +24876,7 @@
"source_file": "tests/unit/api/test_setup.py",
"source_location": "L71",
"id": "api_test_setup_test_compute_setup_state_returns_ready_for_complete_config",
- "community": 1,
+ "community": 95,
"norm_label": "test_compute_setup_state_returns_ready_for_complete_config()"
},
{
@@ -23922,7 +24885,7 @@
"source_file": "tests/unit/api/test_setup.py",
"source_location": "L76",
"id": "api_test_setup_test_compute_setup_state_no_config",
- "community": 1,
+ "community": 95,
"norm_label": "test_compute_setup_state_no_config()"
},
{
@@ -23931,7 +24894,7 @@
"source_file": "tests/unit/api/test_setup.py",
"source_location": "L81",
"id": "api_test_setup_test_is_creation_blocked_treats_lims_unreachable_as_soft",
- "community": 7,
+ "community": 331,
"norm_label": "test_is_creation_blocked_treats_lims_unreachable_as_soft()"
},
{
@@ -23940,7 +24903,7 @@
"source_file": "tests/unit/api/test_setup.py",
"source_location": "L91",
"id": "api_test_setup_test_compute_setup_state_returns_incomplete_no_nas_remote",
- "community": 1,
+ "community": 95,
"norm_label": "test_compute_setup_state_returns_incomplete_no_nas_remote()"
},
{
@@ -23949,7 +24912,7 @@
"source_file": "tests/unit/api/test_setup.py",
"source_location": "L101",
"id": "api_test_setup_test_get_setup_status_reports_configure_rclone_remote",
- "community": 1,
+ "community": 95,
"norm_label": "test_get_setup_status_reports_configure_rclone_remote()"
},
{
@@ -23958,7 +24921,7 @@
"source_file": "tests/unit/api/test_setup.py",
"source_location": "L118",
"id": "api_test_setup_test_setup_state_gate_returns_503_in_incomplete_states",
- "community": 1,
+ "community": 95,
"norm_label": "test_setup_state_gate_returns_503_in_incomplete_states()"
},
{
@@ -23967,7 +24930,7 @@
"source_file": "tests/unit/api/test_setup.py",
"source_location": "L182",
"id": "api_test_setup_test_setup_state_gate_lims_unreachable_does_not_block",
- "community": 1,
+ "community": 95,
"norm_label": "test_setup_state_gate_lims_unreachable_does_not_block()"
},
{
@@ -23976,7 +24939,7 @@
"source_file": "tests/unit/api/test_setup.py",
"source_location": "L200",
"id": "api_test_setup_test_setup_state_gate_no_op_without_dependencies",
- "community": 1,
+ "community": 95,
"norm_label": "test_setup_state_gate_no_op_without_dependencies()"
},
{
@@ -23985,7 +24948,7 @@
"source_file": "tests/unit/api/test_setup.py",
"source_location": "L213",
"id": "api_test_setup_test_get_setup_status_ready",
- "community": 1,
+ "community": 95,
"norm_label": "test_get_setup_status_ready()"
},
{
@@ -23994,7 +24957,7 @@
"source_file": "tests/unit/api/test_setup.py",
"source_location": "L225",
"id": "api_test_setup_test_get_setup_status_incomplete_paths",
- "community": 1,
+ "community": 95,
"norm_label": "test_get_setup_status_incomplete_paths()"
},
{
@@ -24003,7 +24966,7 @@
"source_file": "tests/unit/api/test_setup.py",
"source_location": "L238",
"id": "api_test_setup_test_post_test_lims_invokes_probe",
- "community": 1,
+ "community": 95,
"norm_label": "test_post_test_lims_invokes_probe()"
},
{
@@ -24012,7 +24975,7 @@
"source_file": "tests/unit/api/test_setup.py",
"source_location": "L250",
"id": "api_test_setup_test_post_test_lims_probe_raises_returns_reason",
- "community": 1,
+ "community": 95,
"norm_label": "test_post_test_lims_probe_raises_returns_reason()"
},
{
@@ -24021,7 +24984,7 @@
"source_file": "tests/unit/api/test_setup.py",
"source_location": "L263",
"id": "api_test_setup_test_post_test_lims_without_probe_reports_not_wired",
- "community": 1,
+ "community": 95,
"norm_label": "test_post_test_lims_without_probe_reports_not_wired()"
},
{
@@ -24030,7 +24993,7 @@
"source_file": "tests/unit/api/test_setup.py",
"source_location": "L271",
"id": "api_test_setup_test_post_test_equipment_requires_equipment_id",
- "community": 1,
+ "community": 95,
"norm_label": "test_post_test_equipment_requires_equipment_id()"
},
{
@@ -24039,7 +25002,7 @@
"source_file": "tests/unit/api/test_setup.py",
"source_location": "L284",
"id": "api_test_setup_test_post_test_equipment_with_explicit_equipment_id",
- "community": 1,
+ "community": 95,
"norm_label": "test_post_test_equipment_with_explicit_equipment_id()"
},
{
@@ -24048,7 +25011,7 @@
"source_file": "tests/unit/api/test_setup.py",
"source_location": "L300",
"id": "api_test_setup_test_post_test_equipment_unknown_id_returns_404",
- "community": 1,
+ "community": 95,
"norm_label": "test_post_test_equipment_unknown_id_returns_404()"
},
{
@@ -24057,7 +25020,7 @@
"source_file": "tests/unit/api/test_setup.py",
"source_location": "L312",
"id": "api_test_setup_test_post_autostart_calls_toggle",
- "community": 1,
+ "community": 95,
"norm_label": "test_post_autostart_calls_toggle()"
},
{
@@ -24066,7 +25029,7 @@
"source_file": "tests/unit/api/test_setup.py",
"source_location": "L330",
"id": "api_test_setup_test_post_autostart_without_toggle_echoes_state",
- "community": 1,
+ "community": 95,
"norm_label": "test_post_autostart_without_toggle_echoes_state()"
},
{
@@ -24075,7 +25038,7 @@
"source_file": "tests/unit/api/test_setup.py",
"source_location": "L1",
"id": "api_test_setup_rationale_1",
- "community": 1,
+ "community": 95,
"norm_label": "unit tests for ``exlab_wizard.api.setup`` (gate + endpoints)."
},
{
@@ -24093,7 +25056,7 @@
"source_file": "tests/unit/api/test_setup.py",
"source_location": "L92",
"id": "api_test_setup_rationale_92",
- "community": 1,
+ "community": 95,
"norm_label": "nas sync in use but the configured remote is absent from rclone.conf gates."
},
{
@@ -24102,7 +25065,7 @@
"source_file": "tests/unit/api/test_setup.py",
"source_location": "L102",
"id": "api_test_setup_rationale_102",
- "community": 1,
+ "community": 95,
"norm_label": "when the nas remote is unavailable the status surfaces the rclone next-action."
},
{
@@ -24111,7 +25074,7 @@
"source_file": "tests/unit/api/test_setup.py",
"source_location": "L119",
"id": "api_test_setup_rationale_119",
- "community": 1,
+ "community": 95,
"norm_label": "each non-soft incomplete_* state returns a 503 with the right code."
},
{
@@ -24120,7 +25083,7 @@
"source_file": "tests/unit/api/test_errors.py",
"source_location": "L1",
"id": "tests_unit_api_test_errors_py",
- "community": 30,
+ "community": 31,
"norm_label": "test_errors.py"
},
{
@@ -24129,7 +25092,7 @@
"source_file": "tests/unit/api/test_errors.py",
"source_location": "L33",
"id": "api_test_errors_bare_request",
- "community": 30,
+ "community": 31,
"norm_label": "_bare_request()"
},
{
@@ -24138,7 +25101,7 @@
"source_file": "tests/unit/api/test_errors.py",
"source_location": "L45",
"id": "api_test_errors_test_build_envelope_includes_required_fields",
- "community": 30,
+ "community": 31,
"norm_label": "test_build_envelope_includes_required_fields()"
},
{
@@ -24147,7 +25110,7 @@
"source_file": "tests/unit/api/test_errors.py",
"source_location": "L64",
"id": "api_test_errors_test_build_envelope_drops_optional_fields_when_absent",
- "community": 30,
+ "community": 31,
"norm_label": "test_build_envelope_drops_optional_fields_when_absent()"
},
{
@@ -24156,7 +25119,7 @@
"source_file": "tests/unit/api/test_errors.py",
"source_location": "L70",
"id": "api_test_errors_test_unknown_code_falls_back_to_internal_error",
- "community": 30,
+ "community": 31,
"norm_label": "test_unknown_code_falls_back_to_internal_error()"
},
{
@@ -24165,7 +25128,7 @@
"source_file": "tests/unit/api/test_errors.py",
"source_location": "L75",
"id": "api_test_errors_test_extract_trace_id_uses_header_when_present",
- "community": 30,
+ "community": 31,
"norm_label": "test_extract_trace_id_uses_header_when_present()"
},
{
@@ -24174,7 +25137,7 @@
"source_file": "tests/unit/api/test_errors.py",
"source_location": "L87",
"id": "api_test_errors_test_extract_trace_id_generates_when_missing",
- "community": 30,
+ "community": 31,
"norm_label": "test_extract_trace_id_generates_when_missing()"
},
{
@@ -24183,7 +25146,7 @@
"source_file": "tests/unit/api/test_errors.py",
"source_location": "L93",
"id": "api_test_errors_test_error_response_sets_trace_id_header",
- "community": 30,
+ "community": 31,
"norm_label": "test_error_response_sets_trace_id_header()"
},
{
@@ -24192,7 +25155,7 @@
"source_file": "tests/unit/api/test_errors.py",
"source_location": "L105",
"id": "api_test_errors_test_required_codes_are_registered",
- "community": 30,
+ "community": 31,
"norm_label": "test_required_codes_are_registered()"
},
{
@@ -24201,7 +25164,7 @@
"source_file": "tests/unit/api/test_errors.py",
"source_location": "L129",
"id": "api_test_errors_test_register_exception_handlers_catches_exlab_validation",
- "community": 30,
+ "community": 31,
"norm_label": "test_register_exception_handlers_catches_exlab_validation()"
},
{
@@ -24210,7 +25173,7 @@
"source_file": "tests/unit/api/test_errors.py",
"source_location": "L147",
"id": "api_test_errors_pydanticbody",
- "community": 23,
+ "community": 15,
"norm_label": "_pydanticbody"
},
{
@@ -24219,7 +25182,7 @@
"source_file": "",
"source_location": "",
"id": "basemodel",
- "community": 7,
+ "community": 0,
"norm_label": "basemodel"
},
{
@@ -24228,7 +25191,7 @@
"source_file": "tests/unit/api/test_errors.py",
"source_location": "L154",
"id": "api_test_errors_test_register_exception_handlers_catches_pydantic_validation",
- "community": 30,
+ "community": 31,
"norm_label": "test_register_exception_handlers_catches_pydantic_validation()"
},
{
@@ -24237,7 +25200,7 @@
"source_file": "tests/unit/api/test_errors.py",
"source_location": "L170",
"id": "api_test_errors_test_register_exception_handlers_catches_keyring_error",
- "community": 30,
+ "community": 31,
"norm_label": "test_register_exception_handlers_catches_keyring_error()"
},
{
@@ -24246,7 +25209,7 @@
"source_file": "tests/unit/api/test_errors.py",
"source_location": "L184",
"id": "api_test_errors_test_register_exception_handlers_catches_schema_major_mismatch",
- "community": 30,
+ "community": 31,
"norm_label": "test_register_exception_handlers_catches_schema_major_mismatch()"
},
{
@@ -24255,7 +25218,7 @@
"source_file": "tests/unit/api/test_errors.py",
"source_location": "L199",
"id": "api_test_errors_test_register_exception_handlers_catches_setup_incomplete",
- "community": 30,
+ "community": 31,
"norm_label": "test_register_exception_handlers_catches_setup_incomplete()"
},
{
@@ -24264,7 +25227,7 @@
"source_file": "tests/unit/api/test_errors.py",
"source_location": "L217",
"id": "api_test_errors_test_register_exception_handlers_catches_config_error",
- "community": 30,
+ "community": 31,
"norm_label": "test_register_exception_handlers_catches_config_error()"
},
{
@@ -24273,7 +25236,7 @@
"source_file": "tests/unit/api/test_errors.py",
"source_location": "L231",
"id": "api_test_errors_test_register_exception_handlers_catches_template_load_error",
- "community": 30,
+ "community": 31,
"norm_label": "test_register_exception_handlers_catches_template_load_error()"
},
{
@@ -24282,7 +25245,7 @@
"source_file": "tests/unit/api/test_errors.py",
"source_location": "L245",
"id": "api_test_errors_test_register_exception_handlers_catches_template_core_field_redeclared",
- "community": 30,
+ "community": 31,
"norm_label": "test_register_exception_handlers_catches_template_core_field_redeclared()"
},
{
@@ -24291,7 +25254,7 @@
"source_file": "tests/unit/api/test_errors.py",
"source_location": "L259",
"id": "api_test_errors_test_generic_handler_returns_internal_error",
- "community": 30,
+ "community": 31,
"norm_label": "test_generic_handler_returns_internal_error()"
},
{
@@ -24300,7 +25263,7 @@
"source_file": "tests/unit/api/test_errors.py",
"source_location": "L1",
"id": "api_test_errors_rationale_1",
- "community": 30,
+ "community": 31,
"norm_label": "unit tests for the ``exlab_wizard.api.errors`` envelope helpers."
},
{
@@ -24309,7 +25272,7 @@
"source_file": "tests/unit/api/test_errors.py",
"source_location": "L34",
"id": "api_test_errors_rationale_34",
- "community": 30,
+ "community": 31,
"norm_label": "build a minimal starlette request for handler tests."
},
{
@@ -24318,7 +25281,7 @@
"source_file": "tests/unit/api/test_errors.py",
"source_location": "L106",
"id": "api_test_errors_rationale_106",
- "community": 30,
+ "community": 31,
"norm_label": "every code in \u00a74.6.3's table must be in :data:`error_codes`."
},
{
@@ -24327,7 +25290,7 @@
"source_file": "tests/unit/api/test_errors.py",
"source_location": "L148",
"id": "api_test_errors_rationale_148",
- "community": 23,
+ "community": 15,
"norm_label": "module-level body class so fastapi treats ``body: _pydanticbody`` as a json"
},
{
@@ -24336,7 +25299,7 @@
"source_file": "tests/unit/api/test_config_router.py",
"source_location": "L1",
"id": "tests_unit_api_test_config_router_py",
- "community": 1,
+ "community": 94,
"norm_label": "test_config_router.py"
},
{
@@ -24345,7 +25308,7 @@
"source_file": "tests/unit/api/test_config_router.py",
"source_location": "L19",
"id": "api_test_config_router_empty_config",
- "community": 1,
+ "community": 94,
"norm_label": "_empty_config()"
},
{
@@ -24354,7 +25317,7 @@
"source_file": "tests/unit/api/test_config_router.py",
"source_location": "L23",
"id": "api_test_config_router_ready_config",
- "community": 1,
+ "community": 0,
"norm_label": "_ready_config()"
},
{
@@ -24363,7 +25326,7 @@
"source_file": "tests/unit/api/test_config_router.py",
"source_location": "L39",
"id": "api_test_config_router_test_get_config_returns_loaded_config",
- "community": 1,
+ "community": 94,
"norm_label": "test_get_config_returns_loaded_config()"
},
{
@@ -24372,7 +25335,7 @@
"source_file": "tests/unit/api/test_config_router.py",
"source_location": "L50",
"id": "api_test_config_router_test_get_config_returns_default_when_none",
- "community": 1,
+ "community": 94,
"norm_label": "test_get_config_returns_default_when_none()"
},
{
@@ -24381,7 +25344,7 @@
"source_file": "tests/unit/api/test_config_router.py",
"source_location": "L60",
"id": "api_test_config_router_test_put_config_persists_and_reevaluates_state",
- "community": 1,
+ "community": 94,
"norm_label": "test_put_config_persists_and_reevaluates_state()"
},
{
@@ -24390,7 +25353,7 @@
"source_file": "tests/unit/api/test_config_router.py",
"source_location": "L87",
"id": "api_test_config_router_test_put_config_invalid_body_returns_422",
- "community": 1,
+ "community": 94,
"norm_label": "test_put_config_invalid_body_returns_422()"
},
{
@@ -24399,7 +25362,7 @@
"source_file": "tests/unit/api/test_config_router.py",
"source_location": "L103",
"id": "api_test_config_router_test_append_equipment_persists_and_re_evaluates_state",
- "community": 1,
+ "community": 94,
"norm_label": "test_append_equipment_persists_and_re_evaluates_state()"
},
{
@@ -24408,7 +25371,7 @@
"source_file": "tests/unit/api/test_config_router.py",
"source_location": "L128",
"id": "api_test_config_router_test_append_equipment_rejects_duplicate_id",
- "community": 1,
+ "community": 94,
"norm_label": "test_append_equipment_rejects_duplicate_id()"
},
{
@@ -24417,7 +25380,7 @@
"source_file": "tests/unit/api/test_config_router.py",
"source_location": "L1",
"id": "api_test_config_router_rationale_1",
- "community": 1,
+ "community": 94,
"norm_label": "unit tests for the ``/config`` router."
},
{
@@ -24426,7 +25389,7 @@
"source_file": "tests/unit/api/test_operations.py",
"source_location": "L1",
"id": "tests_unit_api_test_operations_py",
- "community": 284,
+ "community": 278,
"norm_label": "test_operations.py"
},
{
@@ -24435,7 +25398,7 @@
"source_file": "tests/unit/api/test_operations.py",
"source_location": "L23",
"id": "api_test_operations_ready_config",
- "community": 284,
+ "community": 278,
"norm_label": "_ready_config()"
},
{
@@ -24444,7 +25407,7 @@
"source_file": "tests/unit/api/test_operations.py",
"source_location": "L40",
"id": "api_test_operations_stubcontroller",
- "community": 284,
+ "community": 278,
"norm_label": "_stubcontroller"
},
{
@@ -24453,7 +25416,7 @@
"source_file": "tests/unit/api/test_operations.py",
"source_location": "L41",
"id": "api_test_operations_stubcontroller_init",
- "community": 10,
+ "community": 278,
"norm_label": ".__init__()"
},
{
@@ -24462,7 +25425,7 @@
"source_file": "tests/unit/api/test_operations.py",
"source_location": "L45",
"id": "api_test_operations_make_project_request",
- "community": 284,
+ "community": 278,
"norm_label": "_make_project_request()"
},
{
@@ -24471,7 +25434,7 @@
"source_file": "tests/unit/api/test_operations.py",
"source_location": "L62",
"id": "api_test_operations_test_get_operations_lists_in_flight_sessions",
- "community": 284,
+ "community": 278,
"norm_label": "test_get_operations_lists_in_flight_sessions()"
},
{
@@ -24480,7 +25443,7 @@
"source_file": "tests/unit/api/test_operations.py",
"source_location": "L79",
"id": "api_test_operations_test_get_operations_excludes_done_and_aborted",
- "community": 284,
+ "community": 278,
"norm_label": "test_get_operations_excludes_done_and_aborted()"
},
{
@@ -24489,7 +25452,7 @@
"source_file": "tests/unit/api/test_operations.py",
"source_location": "L99",
"id": "api_test_operations_test_get_operations_emits_plugin_name_when_input_required",
- "community": 284,
+ "community": 278,
"norm_label": "test_get_operations_emits_plugin_name_when_input_required()"
},
{
@@ -24498,7 +25461,7 @@
"source_file": "tests/unit/api/test_operations.py",
"source_location": "L116",
"id": "api_test_operations_test_get_operations_503_when_controller_missing",
- "community": 284,
+ "community": 278,
"norm_label": "test_get_operations_503_when_controller_missing()"
},
{
@@ -24507,7 +25470,7 @@
"source_file": "tests/unit/api/test_operations.py",
"source_location": "L1",
"id": "api_test_operations_rationale_1",
- "community": 284,
+ "community": 278,
"norm_label": "unit tests for the ``/operations`` router."
},
{
@@ -24516,7 +25479,7 @@
"source_file": "tests/unit/api/test_sessions.py",
"source_location": "L1",
"id": "tests_unit_api_test_sessions_py",
- "community": 129,
+ "community": 135,
"norm_label": "test_sessions.py"
},
{
@@ -24525,7 +25488,7 @@
"source_file": "tests/unit/api/test_sessions.py",
"source_location": "L28",
"id": "api_test_sessions_ready_config",
- "community": 129,
+ "community": 135,
"norm_label": "_ready_config()"
},
{
@@ -24534,7 +25497,7 @@
"source_file": "tests/unit/api/test_sessions.py",
"source_location": "L47",
"id": "api_test_sessions_stubcontroller",
- "community": 129,
+ "community": 135,
"norm_label": "_stubcontroller"
},
{
@@ -24543,7 +25506,7 @@
"source_file": "tests/unit/api/test_sessions.py",
"source_location": "L50",
"id": "api_test_sessions_stubcontroller_init",
- "community": 129,
+ "community": 135,
"norm_label": ".__init__()"
},
{
@@ -24552,7 +25515,7 @@
"source_file": "tests/unit/api/test_sessions.py",
"source_location": "L56",
"id": "api_test_sessions_stubcontroller_create_project",
- "community": 9,
+ "community": 10,
"norm_label": ".create_project()"
},
{
@@ -24561,7 +25524,7 @@
"source_file": "tests/unit/api/test_sessions.py",
"source_location": "L68",
"id": "api_test_sessions_stubcontroller_create_run",
- "community": 9,
+ "community": 10,
"norm_label": ".create_run()"
},
{
@@ -24570,7 +25533,7 @@
"source_file": "tests/unit/api/test_sessions.py",
"source_location": "L80",
"id": "api_test_sessions_stubcontroller_status",
- "community": 129,
+ "community": 135,
"norm_label": ".status()"
},
{
@@ -24579,7 +25542,7 @@
"source_file": "tests/unit/api/test_sessions.py",
"source_location": "L91",
"id": "api_test_sessions_stubcontroller_resume",
- "community": 129,
+ "community": 135,
"norm_label": ".resume()"
},
{
@@ -24588,7 +25551,7 @@
"source_file": "tests/unit/api/test_sessions.py",
"source_location": "L95",
"id": "api_test_sessions_stubcontroller_cancel",
- "community": 129,
+ "community": 135,
"norm_label": ".cancel()"
},
{
@@ -24597,7 +25560,7 @@
"source_file": "tests/unit/api/test_sessions.py",
"source_location": "L102",
"id": "api_test_sessions_stubcontroller_subscribe",
- "community": 129,
+ "community": 135,
"norm_label": ".subscribe()"
},
{
@@ -24606,7 +25569,7 @@
"source_file": "tests/unit/api/test_sessions.py",
"source_location": "L115",
"id": "api_test_sessions_test_create_session_project",
- "community": 129,
+ "community": 135,
"norm_label": "test_create_session_project()"
},
{
@@ -24615,7 +25578,7 @@
"source_file": "tests/unit/api/test_sessions.py",
"source_location": "L144",
"id": "api_test_sessions_test_create_session_run",
- "community": 129,
+ "community": 135,
"norm_label": "test_create_session_run()"
},
{
@@ -24624,7 +25587,7 @@
"source_file": "tests/unit/api/test_sessions.py",
"source_location": "L168",
"id": "api_test_sessions_test_get_session_returns_snapshot",
- "community": 129,
+ "community": 135,
"norm_label": "test_get_session_returns_snapshot()"
},
{
@@ -24633,7 +25596,7 @@
"source_file": "tests/unit/api/test_sessions.py",
"source_location": "L193",
"id": "api_test_sessions_test_get_session_404_for_unknown",
- "community": 129,
+ "community": 135,
"norm_label": "test_get_session_404_for_unknown()"
},
{
@@ -24642,7 +25605,7 @@
"source_file": "tests/unit/api/test_sessions.py",
"source_location": "L204",
"id": "api_test_sessions_test_post_resume_invokes_controller",
- "community": 129,
+ "community": 135,
"norm_label": "test_post_resume_invokes_controller()"
},
{
@@ -24651,7 +25614,7 @@
"source_file": "tests/unit/api/test_sessions.py",
"source_location": "L223",
"id": "api_test_sessions_test_post_cancel_invokes_controller",
- "community": 129,
+ "community": 135,
"norm_label": "test_post_cancel_invokes_controller()"
},
{
@@ -24660,7 +25623,7 @@
"source_file": "tests/unit/api/test_sessions.py",
"source_location": "L238",
"id": "api_test_sessions_test_post_cancel_404_for_unknown",
- "community": 129,
+ "community": 135,
"norm_label": "test_post_cancel_404_for_unknown()"
},
{
@@ -24669,7 +25632,7 @@
"source_file": "tests/unit/api/test_sessions.py",
"source_location": "L247",
"id": "api_test_sessions_test_post_resume_409_for_terminal_session",
- "community": 129,
+ "community": 135,
"norm_label": "test_post_resume_409_for_terminal_session()"
},
{
@@ -24678,7 +25641,7 @@
"source_file": "tests/unit/api/test_sessions.py",
"source_location": "L262",
"id": "api_test_sessions_test_websocket_streams_session_events",
- "community": 129,
+ "community": 135,
"norm_label": "test_websocket_streams_session_events()"
},
{
@@ -24687,7 +25650,7 @@
"source_file": "tests/unit/api/test_sessions.py",
"source_location": "L283",
"id": "api_test_sessions_test_websocket_unknown_session_closes",
- "community": 129,
+ "community": 135,
"norm_label": "test_websocket_unknown_session_closes()"
},
{
@@ -24696,7 +25659,7 @@
"source_file": "tests/unit/api/test_sessions.py",
"source_location": "L295",
"id": "api_test_sessions_make_request",
- "community": 129,
+ "community": 135,
"norm_label": "_make_request()"
},
{
@@ -24705,7 +25668,7 @@
"source_file": "tests/unit/api/test_sessions.py",
"source_location": "L312",
"id": "api_test_sessions_test_create_session_validation_error_returns_422",
- "community": 129,
+ "community": 135,
"norm_label": "test_create_session_validation_error_returns_422()"
},
{
@@ -24714,7 +25677,7 @@
"source_file": "tests/unit/api/test_sessions.py",
"source_location": "L1",
"id": "api_test_sessions_rationale_1",
- "community": 129,
+ "community": 135,
"norm_label": "unit tests for the ``/sessions`` router."
},
{
@@ -24723,7 +25686,7 @@
"source_file": "tests/unit/api/test_sessions.py",
"source_location": "L48",
"id": "api_test_sessions_rationale_48",
- "community": 129,
+ "community": 135,
"norm_label": "minimal in-memory controller for routing tests."
},
{
@@ -24732,7 +25695,7 @@
"source_file": "tests/unit/api/test_sessions.py",
"source_location": "L313",
"id": "api_test_sessions_rationale_313",
- "community": 129,
+ "community": 135,
"norm_label": "posting without ``kind`` discriminator must 422."
},
{
@@ -24741,7 +25704,7 @@
"source_file": "tests/unit/api/__init__.py",
"source_location": "L1",
"id": "tests_unit_api_init_py",
- "community": 393,
+ "community": 401,
"norm_label": "__init__.py"
},
{
@@ -24750,7 +25713,7 @@
"source_file": "src/exlab_wizard/api/__init__.py",
"source_location": "L1",
"id": "api_init_rationale_1",
- "community": 393,
+ "community": 401,
"norm_label": "http api package. backend spec \u00a74. public re-exports so callers (the launcher,"
},
{
@@ -24759,7 +25722,7 @@
"source_file": "tests/unit/api/test_browse.py",
"source_location": "L1",
"id": "tests_unit_api_test_browse_py",
- "community": 1,
+ "community": 12,
"norm_label": "test_browse.py"
},
{
@@ -24768,7 +25731,7 @@
"source_file": "tests/unit/api/test_browse.py",
"source_location": "L37",
"id": "api_test_browse_config_with_local_root",
- "community": 1,
+ "community": 12,
"norm_label": "_config_with_local_root()"
},
{
@@ -24777,7 +25740,7 @@
"source_file": "tests/unit/api/test_browse.py",
"source_location": "L58",
"id": "api_test_browse_write_creation_json",
- "community": 1,
+ "community": 12,
"norm_label": "_write_creation_json()"
},
{
@@ -24786,7 +25749,7 @@
"source_file": "tests/unit/api/test_browse.py",
"source_location": "L80",
"id": "api_test_browse_test_get_tree_lists_equipment_and_projects",
- "community": 1,
+ "community": 12,
"norm_label": "test_get_tree_lists_equipment_and_projects()"
},
{
@@ -24795,7 +25758,7 @@
"source_file": "tests/unit/api/test_browse.py",
"source_location": "L111",
"id": "api_test_browse_test_get_tree_returns_empty_when_no_equipment",
- "community": 1,
+ "community": 94,
"norm_label": "test_get_tree_returns_empty_when_no_equipment()"
},
{
@@ -24804,7 +25767,7 @@
"source_file": "tests/unit/api/test_browse.py",
"source_location": "L129",
"id": "api_test_browse_test_get_run_returns_detail",
- "community": 1,
+ "community": 12,
"norm_label": "test_get_run_returns_detail()"
},
{
@@ -24813,7 +25776,7 @@
"source_file": "tests/unit/api/test_browse.py",
"source_location": "L148",
"id": "api_test_browse_test_get_run_404_when_creation_missing",
- "community": 1,
+ "community": 12,
"norm_label": "test_get_run_404_when_creation_missing()"
},
{
@@ -24822,7 +25785,7 @@
"source_file": "tests/unit/api/test_browse.py",
"source_location": "L161",
"id": "api_test_browse_test_get_tree_skips_unknown_dirs",
- "community": 1,
+ "community": 12,
"norm_label": "test_get_tree_skips_unknown_dirs()"
},
{
@@ -24831,7 +25794,7 @@
"source_file": "tests/unit/api/test_browse.py",
"source_location": "L179",
"id": "api_test_browse_test_get_tree_includes_test_runs",
- "community": 1,
+ "community": 12,
"norm_label": "test_get_tree_includes_test_runs()"
},
{
@@ -24840,7 +25803,7 @@
"source_file": "tests/unit/api/test_browse.py",
"source_location": "L199",
"id": "api_test_browse_test_get_run_returns_422_when_creation_json_malformed",
- "community": 1,
+ "community": 12,
"norm_label": "test_get_run_returns_422_when_creation_json_malformed()"
},
{
@@ -24849,7 +25812,7 @@
"source_file": "tests/unit/api/test_browse.py",
"source_location": "L220",
"id": "api_test_browse_test_get_run_returns_none_readme_when_absent",
- "community": 1,
+ "community": 12,
"norm_label": "test_get_run_returns_none_readme_when_absent()"
},
{
@@ -24858,7 +25821,7 @@
"source_file": "tests/unit/api/test_browse.py",
"source_location": "L239",
"id": "api_test_browse_test_get_folder_returns_immediate_contents",
- "community": 1,
+ "community": 12,
"norm_label": "test_get_folder_returns_immediate_contents()"
},
{
@@ -24867,7 +25830,7 @@
"source_file": "tests/unit/api/test_browse.py",
"source_location": "L260",
"id": "api_test_browse_test_get_folder_404_on_vanished_path",
- "community": 1,
+ "community": 12,
"norm_label": "test_get_folder_404_on_vanished_path()"
},
{
@@ -24876,7 +25839,7 @@
"source_file": "tests/unit/api/test_browse.py",
"source_location": "L269",
"id": "api_test_browse_test_get_tree_includes_sync_mode_on_equipment",
- "community": 1,
+ "community": 12,
"norm_label": "test_get_tree_includes_sync_mode_on_equipment()"
},
{
@@ -24885,7 +25848,7 @@
"source_file": "tests/unit/api/test_browse.py",
"source_location": "L281",
"id": "api_test_browse_test_get_folder_rejects_path_outside_configured_roots",
- "community": 1,
+ "community": 12,
"norm_label": "test_get_folder_rejects_path_outside_configured_roots()"
},
{
@@ -24903,7 +25866,7 @@
"source_file": "tests/unit/api/test_browse.py",
"source_location": "L306",
"id": "api_test_browse_stubjobrow_init",
- "community": 174,
+ "community": 3,
"norm_label": ".__init__()"
},
{
@@ -24939,7 +25902,7 @@
"source_file": "tests/unit/api/test_browse.py",
"source_location": "L331",
"id": "api_test_browse_test_get_run_log_returns_queue_derived_history",
- "community": 1,
+ "community": 12,
"norm_label": "test_get_run_log_returns_queue_derived_history()"
},
{
@@ -24948,7 +25911,7 @@
"source_file": "tests/unit/api/test_browse.py",
"source_location": "L353",
"id": "api_test_browse_test_get_run_log_forwards_failure_extras_in_payload",
- "community": 1,
+ "community": 12,
"norm_label": "test_get_run_log_forwards_failure_extras_in_payload()"
},
{
@@ -24957,7 +25920,7 @@
"source_file": "tests/unit/api/test_browse.py",
"source_location": "L385",
"id": "api_test_browse_test_get_run_log_empty_history_when_no_queue_job",
- "community": 1,
+ "community": 12,
"norm_label": "test_get_run_log_empty_history_when_no_queue_job()"
},
{
@@ -24966,7 +25929,7 @@
"source_file": "tests/unit/api/test_browse.py",
"source_location": "L402",
"id": "api_test_browse_test_get_run_log_404_when_run_missing",
- "community": 1,
+ "community": 12,
"norm_label": "test_get_run_log_404_when_run_missing()"
},
{
@@ -24975,7 +25938,7 @@
"source_file": "tests/unit/api/test_browse.py",
"source_location": "L417",
"id": "api_test_browse_test_build_hierarchy_dict_returns_empty_when_config_missing",
- "community": 1,
+ "community": 12,
"norm_label": "test_build_hierarchy_dict_returns_empty_when_config_missing()"
},
{
@@ -24984,7 +25947,7 @@
"source_file": "tests/unit/api/test_browse.py",
"source_location": "L423",
"id": "api_test_browse_test_build_hierarchy_dict_includes_owned_and_relay_equipment",
- "community": 1,
+ "community": 12,
"norm_label": "test_build_hierarchy_dict_includes_owned_and_relay_equipment()"
},
{
@@ -24993,7 +25956,7 @@
"source_file": "tests/unit/api/test_browse.py",
"source_location": "L458",
"id": "api_test_browse_test_scan_folder_sync_lists_immediate_contents",
- "community": 1,
+ "community": 12,
"norm_label": "test_scan_folder_sync_lists_immediate_contents()"
},
{
@@ -25002,7 +25965,7 @@
"source_file": "tests/unit/api/test_browse.py",
"source_location": "L477",
"id": "api_test_browse_test_scan_folder_sync_raises_404_for_missing_path",
- "community": 1,
+ "community": 12,
"norm_label": "test_scan_folder_sync_raises_404_for_missing_path()"
},
{
@@ -25011,7 +25974,7 @@
"source_file": "tests/unit/api/test_browse.py",
"source_location": "L498",
"id": "api_test_browse_seed_run_with_creation",
- "community": 1,
+ "community": 12,
"norm_label": "_seed_run_with_creation()"
},
{
@@ -25020,7 +25983,7 @@
"source_file": "tests/unit/api/test_browse.py",
"source_location": "L507",
"id": "api_test_browse_write_sync_state",
- "community": 1,
+ "community": 12,
"norm_label": "_write_sync_state()"
},
{
@@ -25029,7 +25992,7 @@
"source_file": "tests/unit/api/test_browse.py",
"source_location": "L529",
"id": "api_test_browse_test_per_file_status_acquiring_when_not_in_sync_state",
- "community": 1,
+ "community": 12,
"norm_label": "test_per_file_status_acquiring_when_not_in_sync_state()"
},
{
@@ -25038,7 +26001,7 @@
"source_file": "tests/unit/api/test_browse.py",
"source_location": "L542",
"id": "api_test_browse_test_per_file_status_syncing_when_unverified",
- "community": 1,
+ "community": 12,
"norm_label": "test_per_file_status_syncing_when_unverified()"
},
{
@@ -25047,7 +26010,7 @@
"source_file": "tests/unit/api/test_browse.py",
"source_location": "L556",
"id": "api_test_browse_test_per_file_status_synced_when_verified_and_on_disk",
- "community": 1,
+ "community": 12,
"norm_label": "test_per_file_status_synced_when_verified_and_on_disk()"
},
{
@@ -25056,7 +26019,7 @@
"source_file": "tests/unit/api/test_browse.py",
"source_location": "L573",
"id": "api_test_browse_test_per_file_status_on_nas_tombstone_for_cleared_run",
- "community": 1,
+ "community": 12,
"norm_label": "test_per_file_status_on_nas_tombstone_for_cleared_run()"
},
{
@@ -25065,7 +26028,7 @@
"source_file": "tests/unit/api/test_browse.py",
"source_location": "L596",
"id": "api_test_browse_test_per_file_status_keep_local_flag_carried",
- "community": 1,
+ "community": 12,
"norm_label": "test_per_file_status_keep_local_flag_carried()"
},
{
@@ -25074,7 +26037,7 @@
"source_file": "tests/unit/api/test_browse.py",
"source_location": "L620",
"id": "api_test_browse_test_build_run_node_rollup_from_sync_state",
- "community": 1,
+ "community": 12,
"norm_label": "test_build_run_node_rollup_from_sync_state()"
},
{
@@ -25083,7 +26046,7 @@
"source_file": "tests/unit/api/test_browse.py",
"source_location": "L636",
"id": "api_test_browse_test_build_run_node_rollup_cleared",
- "community": 1,
+ "community": 12,
"norm_label": "test_build_run_node_rollup_cleared()"
},
{
@@ -25092,7 +26055,7 @@
"source_file": "tests/unit/api/test_browse.py",
"source_location": "L1",
"id": "api_test_browse_rationale_1",
- "community": 1,
+ "community": 12,
"norm_label": "unit tests for the ``/tree`` and ``/run/{path}`` browse endpoints."
},
{
@@ -25101,7 +26064,7 @@
"source_file": "tests/unit/api/test_browse.py",
"source_location": "L112",
"id": "api_test_browse_rationale_112",
- "community": 1,
+ "community": 94,
"norm_label": "when config has no equipment the setup gate blocks /tree."
},
{
@@ -25110,7 +26073,7 @@
"source_file": "tests/unit/api/test_browse.py",
"source_location": "L180",
"id": "api_test_browse_rationale_180",
- "community": 1,
+ "community": 12,
"norm_label": "``testruns`` directory under a project surfaces as ``test_runs`` list."
},
{
@@ -25119,7 +26082,7 @@
"source_file": "tests/unit/api/test_browse.py",
"source_location": "L200",
"id": "api_test_browse_rationale_200",
- "community": 1,
+ "community": 12,
"norm_label": "a creation.json that is present but malformed surfaces as 422."
},
{
@@ -25128,7 +26091,7 @@
"source_file": "tests/unit/api/test_browse.py",
"source_location": "L221",
"id": "api_test_browse_rationale_221",
- "community": 1,
+ "community": 12,
"norm_label": "run with creation.json but no readme.md returns readme: null."
},
{
@@ -25137,7 +26100,7 @@
"source_file": "tests/unit/api/test_browse.py",
"source_location": "L282",
"id": "api_test_browse_rationale_282",
- "community": 1,
+ "community": 12,
"norm_label": "path-confinement guard: only the configured local_root / staging_root / temp"
},
{
@@ -25164,7 +26127,7 @@
"source_file": "tests/unit/api/test_browse.py",
"source_location": "L332",
"id": "api_test_browse_rationale_332",
- "community": 1,
+ "community": 12,
"norm_label": "a staged run's sync-queue job state is surfaced as the log."
},
{
@@ -25173,7 +26136,7 @@
"source_file": "tests/unit/api/test_browse.py",
"source_location": "L354",
"id": "api_test_browse_rationale_354",
- "community": 1,
+ "community": 12,
"norm_label": "a failed job row's ``last_error`` / ``attempts`` / ``verify_passes`` / ``nas"
},
{
@@ -25182,7 +26145,7 @@
"source_file": "tests/unit/api/test_browse.py",
"source_location": "L386",
"id": "api_test_browse_rationale_386",
- "community": 1,
+ "community": 12,
"norm_label": "a run with no sync-queue job returns an empty history + 'none' state."
},
{
@@ -25191,7 +26154,7 @@
"source_file": "tests/unit/api/test_browse.py",
"source_location": "L403",
"id": "api_test_browse_rationale_403",
- "community": 1,
+ "community": 12,
"norm_label": "a run directory that does not exist returns 404 ``session_not_found``."
},
{
@@ -25200,7 +26163,7 @@
"source_file": "tests/unit/api/test_browse.py",
"source_location": "L424",
"id": "api_test_browse_rationale_424",
- "community": 1,
+ "community": 12,
"norm_label": "the nested dict surfaces both owned and received-equipment roots with their"
},
{
@@ -25209,7 +26172,7 @@
"source_file": "tests/unit/api/test_browse.py",
"source_location": "L459",
"id": "api_test_browse_rationale_459",
- "community": 1,
+ "community": 12,
"norm_label": "``scan_folder_sync`` shares the same shape as the route handler."
},
{
@@ -25218,7 +26181,7 @@
"source_file": "tests/unit/api/test_browse.py",
"source_location": "L478",
"id": "api_test_browse_rationale_478",
- "community": 1,
+ "community": 12,
"norm_label": "a missing folder raises the same 404 httpexception the route does."
},
{
@@ -25227,7 +26190,7 @@
"source_file": "tests/unit/api/test_browse.py",
"source_location": "L499",
"id": "api_test_browse_rationale_499",
- "community": 1,
+ "community": 12,
"norm_label": "create a run dir with a creation.json so it is recognised as a run."
},
{
@@ -25236,7 +26199,7 @@
"source_file": "tests/unit/api/test_browse.py",
"source_location": "L508",
"id": "api_test_browse_rationale_508",
- "community": 1,
+ "community": 12,
"norm_label": "write a sync_state.json with the given per-file records."
},
{
@@ -25245,7 +26208,7 @@
"source_file": "tests/unit/api/test_browse.py",
"source_location": "L530",
"id": "api_test_browse_rationale_530",
- "community": 1,
+ "community": 12,
"norm_label": "a file on disk but absent from sync_state.json reads as ``acquiring``."
},
{
@@ -25254,7 +26217,7 @@
"source_file": "tests/unit/api/test_browse.py",
"source_location": "L543",
"id": "api_test_browse_rationale_543",
- "community": 1,
+ "community": 12,
"norm_label": "a recorded file with verified_at null + on disk reads as ``syncing``."
},
{
@@ -25263,7 +26226,7 @@
"source_file": "tests/unit/api/test_browse.py",
"source_location": "L557",
"id": "api_test_browse_rationale_557",
- "community": 1,
+ "community": 12,
"norm_label": "a recorded+verified file still on disk reads as ``synced``."
},
{
@@ -25272,7 +26235,7 @@
"source_file": "tests/unit/api/test_browse.py",
"source_location": "L574",
"id": "api_test_browse_rationale_574",
- "community": 1,
+ "community": 12,
"norm_label": "a cleared run lists verified-but-absent files as ``on_nas`` tombstones."
},
{
@@ -25281,7 +26244,7 @@
"source_file": "tests/unit/api/test_browse.py",
"source_location": "L597",
"id": "api_test_browse_rationale_597",
- "community": 1,
+ "community": 12,
"norm_label": "a keep_local file carries the flag alongside its sync status."
},
{
@@ -25290,7 +26253,7 @@
"source_file": "tests/unit/api/test_browse.py",
"source_location": "L621",
"id": "api_test_browse_rationale_621",
- "community": 1,
+ "community": 12,
"norm_label": "the tree run-node sync_status is the sync_state.json rollup, not creation.json."
},
{
@@ -25299,7 +26262,7 @@
"source_file": "tests/unit/api/test_browse.py",
"source_location": "L637",
"id": "api_test_browse_rationale_637",
- "community": 1,
+ "community": 12,
"norm_label": "a cleared run rolls up to ``cleared`` in the tree."
},
{
@@ -25308,7 +26271,7 @@
"source_file": "tests/unit/api/test_schemas.py",
"source_location": "L1",
"id": "tests_unit_api_test_schemas_py",
- "community": 34,
+ "community": 42,
"norm_label": "test_schemas.py"
},
{
@@ -25317,7 +26280,7 @@
"source_file": "tests/unit/api/test_schemas.py",
"source_location": "L53",
"id": "api_test_schemas_minimal_creation_json",
- "community": 34,
+ "community": 42,
"norm_label": "_minimal_creation_json()"
},
{
@@ -25326,7 +26289,7 @@
"source_file": "tests/unit/api/test_schemas.py",
"source_location": "L87",
"id": "api_test_schemas_test_creation_json_round_trips_through_msgspec",
- "community": 34,
+ "community": 42,
"norm_label": "test_creation_json_round_trips_through_msgspec()"
},
{
@@ -25335,7 +26298,7 @@
"source_file": "tests/unit/api/test_schemas.py",
"source_location": "L94",
"id": "api_test_schemas_test_creation_json_round_trip_preserves_lims_project_subfields",
- "community": 34,
+ "community": 42,
"norm_label": "test_creation_json_round_trip_preserves_lims_project_subfields()"
},
{
@@ -25344,7 +26307,7 @@
"source_file": "tests/unit/api/test_schemas.py",
"source_location": "L110",
"id": "api_test_schemas_test_creation_json_round_trip_preserves_plugins_applied_with_isolation",
- "community": 34,
+ "community": 42,
"norm_label": "test_creation_json_round_trip_preserves_plugins_applied_with_isolation()"
},
{
@@ -25353,7 +26316,7 @@
"source_file": "tests/unit/api/test_schemas.py",
"source_location": "L131",
"id": "api_test_schemas_test_creation_json_round_trip_preserves_orchestrator_block",
- "community": 34,
+ "community": 42,
"norm_label": "test_creation_json_round_trip_preserves_orchestrator_block()"
},
{
@@ -25362,7 +26325,7 @@
"source_file": "tests/unit/api/test_schemas.py",
"source_location": "L144",
"id": "api_test_schemas_test_creation_json_orchestrator_block_omitted_when_none",
- "community": 34,
+ "community": 42,
"norm_label": "test_creation_json_orchestrator_block_omitted_when_none()"
},
{
@@ -25371,7 +26334,7 @@
"source_file": "tests/unit/api/test_schemas.py",
"source_location": "L151",
"id": "api_test_schemas_test_orchestrator_block_carries_relay_discovery_field",
- "community": 34,
+ "community": 42,
"norm_label": "test_orchestrator_block_carries_relay_discovery_field()"
},
{
@@ -25380,7 +26343,7 @@
"source_file": "tests/unit/api/test_schemas.py",
"source_location": "L170",
"id": "api_test_schemas_test_orchestrator_block_relay_field_defaults_to_none",
- "community": 34,
+ "community": 42,
"norm_label": "test_orchestrator_block_relay_field_defaults_to_none()"
},
{
@@ -25389,7 +26352,7 @@
"source_file": "tests/unit/api/test_schemas.py",
"source_location": "L183",
"id": "api_test_schemas_test_creation_json_default_sync_status_is_pending",
- "community": 34,
+ "community": 42,
"norm_label": "test_creation_json_default_sync_status_is_pending()"
},
{
@@ -25398,7 +26361,7 @@
"source_file": "tests/unit/api/test_schemas.py",
"source_location": "L188",
"id": "api_test_schemas_test_creation_json_default_validation_overrides_is_empty_list",
- "community": 34,
+ "community": 42,
"norm_label": "test_creation_json_default_validation_overrides_is_empty_list()"
},
{
@@ -25407,7 +26370,7 @@
"source_file": "tests/unit/api/test_schemas.py",
"source_location": "L198",
"id": "api_test_schemas_test_creation_json_missing_required_field_raises",
- "community": 34,
+ "community": 42,
"norm_label": "test_creation_json_missing_required_field_raises()"
},
{
@@ -25416,7 +26379,7 @@
"source_file": "tests/unit/api/test_schemas.py",
"source_location": "L206",
"id": "api_test_schemas_test_creation_json_missing_lims_project_raises",
- "community": 34,
+ "community": 42,
"norm_label": "test_creation_json_missing_lims_project_raises()"
},
{
@@ -25425,7 +26388,7 @@
"source_file": "tests/unit/api/test_schemas.py",
"source_location": "L232",
"id": "api_test_schemas_test_creation_json_unknown_field_is_ignored_on_decode",
- "community": 34,
+ "community": 42,
"norm_label": "test_creation_json_unknown_field_is_ignored_on_decode()"
},
{
@@ -25434,7 +26397,7 @@
"source_file": "tests/unit/api/test_schemas.py",
"source_location": "L268",
"id": "api_test_schemas_test_override_entry_to_dict_emits_revoked_field_explicitly",
- "community": 128,
+ "community": 152,
"norm_label": "test_override_entry_to_dict_emits_revoked_field_explicitly()"
},
{
@@ -25443,7 +26406,7 @@
"source_file": "tests/unit/api/test_schemas.py",
"source_location": "L283",
"id": "api_test_schemas_test_tombstone_entry_to_dict_emits_revoked_field_explicitly",
- "community": 128,
+ "community": 152,
"norm_label": "test_tombstone_entry_to_dict_emits_revoked_field_explicitly()"
},
{
@@ -25452,7 +26415,7 @@
"source_file": "tests/unit/api/test_schemas.py",
"source_location": "L296",
"id": "api_test_schemas_test_parse_validation_override_entry_returns_override_for_revoked_false",
- "community": 34,
+ "community": 42,
"norm_label": "test_parse_validation_override_entry_returns_override_for_revoked_false()"
},
{
@@ -25461,7 +26424,7 @@
"source_file": "tests/unit/api/test_schemas.py",
"source_location": "L311",
"id": "api_test_schemas_test_parse_validation_override_entry_returns_tombstone_for_revoked_true",
- "community": 34,
+ "community": 42,
"norm_label": "test_parse_validation_override_entry_returns_tombstone_for_revoked_true()"
},
{
@@ -25470,7 +26433,7 @@
"source_file": "tests/unit/api/test_schemas.py",
"source_location": "L326",
"id": "api_test_schemas_test_creation_json_decodes_validation_overrides_as_list_of_dict",
- "community": 34,
+ "community": 42,
"norm_label": "test_creation_json_decodes_validation_overrides_as_list_of_dict()"
},
{
@@ -25479,7 +26442,7 @@
"source_file": "tests/unit/api/test_schemas.py",
"source_location": "L363",
"id": "api_test_schemas_test_readme_fields_json_round_trips",
- "community": 180,
+ "community": 224,
"norm_label": "test_readme_fields_json_round_trips()"
},
{
@@ -25488,7 +26451,7 @@
"source_file": "tests/unit/api/test_schemas.py",
"source_location": "L379",
"id": "api_test_schemas_test_readme_fields_json_optional_fields_default_to_empty",
- "community": 180,
+ "community": 224,
"norm_label": "test_readme_fields_json_optional_fields_default_to_empty()"
},
{
@@ -25497,7 +26460,7 @@
"source_file": "tests/unit/api/test_schemas.py",
"source_location": "L391",
"id": "api_test_schemas_test_readme_fields_json_round_trip_preserves_custom_fields",
- "community": 180,
+ "community": 224,
"norm_label": "test_readme_fields_json_round_trip_preserves_custom_fields()"
},
{
@@ -25506,7 +26469,7 @@
"source_file": "tests/unit/api/test_schemas.py",
"source_location": "L410",
"id": "api_test_schemas_test_readme_fields_json_missing_required_field_raises",
- "community": 34,
+ "community": 42,
"norm_label": "test_readme_fields_json_missing_required_field_raises()"
},
{
@@ -25515,7 +26478,7 @@
"source_file": "tests/unit/api/test_schemas.py",
"source_location": "L422",
"id": "api_test_schemas_test_equipment_json_round_trips",
- "community": 34,
+ "community": 42,
"norm_label": "test_equipment_json_round_trips()"
},
{
@@ -25524,7 +26487,7 @@
"source_file": "tests/unit/api/test_schemas.py",
"source_location": "L437",
"id": "api_test_schemas_test_equipment_json_missing_required_field_raises",
- "community": 34,
+ "community": 42,
"norm_label": "test_equipment_json_missing_required_field_raises()"
},
{
@@ -25533,7 +26496,7 @@
"source_file": "tests/unit/api/test_schemas.py",
"source_location": "L449",
"id": "api_test_schemas_test_test_runs_json_round_trips",
- "community": 34,
+ "community": 42,
"norm_label": "test_test_runs_json_round_trips()"
},
{
@@ -25542,7 +26505,7 @@
"source_file": "tests/unit/api/test_schemas.py",
"source_location": "L462",
"id": "api_test_schemas_test_test_runs_json_missing_required_field_raises",
- "community": 34,
+ "community": 42,
"norm_label": "test_test_runs_json_missing_required_field_raises()"
},
{
@@ -25551,7 +26514,7 @@
"source_file": "tests/unit/api/test_schemas.py",
"source_location": "L478",
"id": "api_test_schemas_creation_json_payload",
- "community": 34,
+ "community": 42,
"norm_label": "_creation_json_payload()"
},
{
@@ -25560,7 +26523,7 @@
"source_file": "tests/unit/api/test_schemas.py",
"source_location": "L556",
"id": "api_test_schemas_test_strenum_field_round_trip_preserves_wire_format",
- "community": 34,
+ "community": 42,
"norm_label": "test_strenum_field_round_trip_preserves_wire_format()"
},
{
@@ -25569,7 +26532,7 @@
"source_file": "tests/unit/api/test_schemas.py",
"source_location": "L601",
"id": "api_test_schemas_test_lims_project_block_source_round_trip",
- "community": 34,
+ "community": 42,
"norm_label": "test_lims_project_block_source_round_trip()"
},
{
@@ -25578,7 +26541,7 @@
"source_file": "tests/unit/api/test_schemas.py",
"source_location": "L633",
"id": "api_test_schemas_test_template_block_run_scope_round_trip",
- "community": 34,
+ "community": 42,
"norm_label": "test_template_block_run_scope_round_trip()"
},
{
@@ -25587,7 +26550,7 @@
"source_file": "tests/unit/api/test_schemas.py",
"source_location": "L659",
"id": "api_test_schemas_test_plugin_applied_status_round_trip",
- "community": 34,
+ "community": 42,
"norm_label": "test_plugin_applied_status_round_trip()"
},
{
@@ -25596,7 +26559,7 @@
"source_file": "tests/unit/api/test_schemas.py",
"source_location": "L675",
"id": "api_test_schemas_test_test_runs_json_default_run_kind_serializes_as_test",
- "community": 34,
+ "community": 42,
"norm_label": "test_test_runs_json_default_run_kind_serializes_as_test()"
},
{
@@ -25605,7 +26568,7 @@
"source_file": "tests/unit/api/test_schemas.py",
"source_location": "L692",
"id": "api_test_schemas_test_test_runs_json_explicit_run_kind_round_trips",
- "community": 34,
+ "community": 42,
"norm_label": "test_test_runs_json_explicit_run_kind_round_trips()"
},
{
@@ -25614,7 +26577,7 @@
"source_file": "tests/unit/api/test_schemas.py",
"source_location": "L706",
"id": "api_test_schemas_test_creation_json_default_sync_status_omitted_on_encode",
- "community": 34,
+ "community": 42,
"norm_label": "test_creation_json_default_sync_status_omitted_on_encode()"
},
{
@@ -25623,7 +26586,7 @@
"source_file": "tests/unit/api/test_schemas.py",
"source_location": "L716",
"id": "api_test_schemas_test_lims_project_block_default_source_omitted_on_encode",
- "community": 34,
+ "community": 42,
"norm_label": "test_lims_project_block_default_source_omitted_on_encode()"
},
{
@@ -25632,7 +26595,7 @@
"source_file": "tests/unit/api/test_schemas.py",
"source_location": "L747",
"id": "api_test_schemas_test_lims_project_status_round_trip",
- "community": 34,
+ "community": 42,
"norm_label": "test_lims_project_status_round_trip()"
},
{
@@ -25641,7 +26604,7 @@
"source_file": "tests/unit/api/test_schemas.py",
"source_location": "L1",
"id": "api_test_schemas_rationale_1",
- "community": 34,
+ "community": 42,
"norm_label": "tests for the msgspec.struct cache-file types in ``exlab_wizard.api.schemas``."
},
{
@@ -25650,7 +26613,7 @@
"source_file": "tests/unit/api/test_schemas.py",
"source_location": "L54",
"id": "api_test_schemas_rationale_54",
- "community": 34,
+ "community": 42,
"norm_label": "build a minimal valid creationjson at the current version for round-trip tests."
},
{
@@ -25659,7 +26622,7 @@
"source_file": "tests/unit/api/test_schemas.py",
"source_location": "L145",
"id": "api_test_schemas_rationale_145",
- "community": 34,
+ "community": 42,
"norm_label": "spec \u00a711.3: orchestrator is *absent* (not null) in single-equipment mode."
},
{
@@ -25668,7 +26631,7 @@
"source_file": "tests/unit/api/test_schemas.py",
"source_location": "L152",
"id": "api_test_schemas_rationale_152",
- "community": 34,
+ "community": 42,
"norm_label": "redesign \u00a73.3: pushed creation.json carries the equipment label so the orche"
},
{
@@ -25677,7 +26640,7 @@
"source_file": "tests/unit/api/test_schemas.py",
"source_location": "L171",
"id": "api_test_schemas_rationale_171",
- "community": 34,
+ "community": 42,
"norm_label": "older creation.json files (no relay field) decode cleanly."
},
{
@@ -25686,7 +26649,7 @@
"source_file": "tests/unit/api/test_schemas.py",
"source_location": "L207",
"id": "api_test_schemas_rationale_207",
- "community": 34,
+ "community": 42,
"norm_label": "``lims_project`` is required at the project- and run-levels for v1.8."
},
{
@@ -25695,7 +26658,7 @@
"source_file": "tests/unit/api/test_schemas.py",
"source_location": "L233",
"id": "api_test_schemas_rationale_233",
- "community": 34,
+ "community": 42,
"norm_label": "forbid_unknown_fields=false -- unknown fields are silently dropped at decode"
},
{
@@ -25704,7 +26667,7 @@
"source_file": "tests/unit/api/test_schemas.py",
"source_location": "L269",
"id": "api_test_schemas_rationale_269",
- "community": 128,
+ "community": 152,
"norm_label": "spec \u00a711.3: ``revoked`` is required on every entry. ``omit_defaults`` would"
},
{
@@ -25713,7 +26676,7 @@
"source_file": "tests/unit/api/test_schemas.py",
"source_location": "L479",
"id": "api_test_schemas_rationale_479",
- "community": 34,
+ "community": 42,
"norm_label": "build a minimal valid creation.json json document for round-trip tests."
},
{
@@ -25722,7 +26685,7 @@
"source_file": "tests/unit/api/test_schemas.py",
"source_location": "L563",
"id": "api_test_schemas_rationale_563",
- "community": 34,
+ "community": 42,
"norm_label": "decode an old-format json document (bare string at ``field``) into the typed"
},
{
@@ -25731,7 +26694,7 @@
"source_file": "tests/unit/api/test_schemas.py",
"source_location": "L676",
"id": "api_test_schemas_rationale_676",
- "community": 34,
+ "community": 42,
"norm_label": "the ``run_kind`` default switched from bare ``\"test\"`` to ``runkind.test``;"
},
{
@@ -25740,7 +26703,7 @@
"source_file": "tests/unit/api/test_schemas.py",
"source_location": "L707",
"id": "api_test_schemas_rationale_707",
- "community": 34,
+ "community": 42,
"norm_label": "``syncstatus.pending`` is the declared default; ``omit_defaults=true`` drops"
},
{
@@ -25749,7 +26712,7 @@
"source_file": "tests/unit/api/test_schemas.py",
"source_location": "L717",
"id": "api_test_schemas_rationale_717",
- "community": 34,
+ "community": 42,
"norm_label": "``limsprojectsource.live`` is the declared default; ``omit_defaults=true`` d"
},
{
@@ -25758,7 +26721,7 @@
"source_file": "tests/unit/api/test_health.py",
"source_location": "L1",
"id": "tests_unit_api_test_health_py",
- "community": 1,
+ "community": 136,
"norm_label": "test_health.py"
},
{
@@ -25767,7 +26730,7 @@
"source_file": "tests/unit/api/test_health.py",
"source_location": "L21",
"id": "api_test_health_ready_config",
- "community": 1,
+ "community": 136,
"norm_label": "_ready_config()"
},
{
@@ -25776,7 +26739,7 @@
"source_file": "tests/unit/api/test_health.py",
"source_location": "L38",
"id": "api_test_health_test_health_endpoint_status_ok_with_no_deps",
- "community": 1,
+ "community": 136,
"norm_label": "test_health_endpoint_status_ok_with_no_deps()"
},
{
@@ -25785,7 +26748,7 @@
"source_file": "tests/unit/api/test_health.py",
"source_location": "L50",
"id": "api_test_health_test_health_endpoint_warn_when_lims_unreachable",
- "community": 1,
+ "community": 136,
"norm_label": "test_health_endpoint_warn_when_lims_unreachable()"
},
{
@@ -25794,7 +26757,7 @@
"source_file": "tests/unit/api/test_health.py",
"source_location": "L59",
"id": "api_test_health_test_health_components_pluck_snapshots",
- "community": 1,
+ "community": 136,
"norm_label": "test_health_components_pluck_snapshots()"
},
{
@@ -25803,7 +26766,7 @@
"source_file": "tests/unit/api/test_health.py",
"source_location": "L75",
"id": "api_test_health_test_top_level_status_aggregates",
- "community": 212,
+ "community": 136,
"norm_label": "test_top_level_status_aggregates()"
},
{
@@ -25812,7 +26775,7 @@
"source_file": "tests/unit/api/test_health.py",
"source_location": "L81",
"id": "api_test_health_test_component_rollup_handles_none_deps",
- "community": 212,
+ "community": 136,
"norm_label": "test_component_rollup_handles_none_deps()"
},
{
@@ -25821,7 +26784,7 @@
"source_file": "tests/unit/api/test_health.py",
"source_location": "L86",
"id": "api_test_health_test_health_with_validator_last_audit",
- "community": 1,
+ "community": 136,
"norm_label": "test_health_with_validator_last_audit()"
},
{
@@ -25830,7 +26793,7 @@
"source_file": "tests/unit/api/test_health.py",
"source_location": "L94",
"id": "api_test_health_test_health_nas_sync_snapshot_failure_marked_warn",
- "community": 1,
+ "community": 136,
"norm_label": "test_health_nas_sync_snapshot_failure_marked_warn()"
},
{
@@ -25839,7 +26802,7 @@
"source_file": "tests/unit/api/test_health.py",
"source_location": "L1",
"id": "api_test_health_rationale_1",
- "community": 1,
+ "community": 136,
"norm_label": "unit tests for ``exlab_wizard.api.health``."
},
{
@@ -25848,7 +26811,7 @@
"source_file": "tests/unit/api/test_staging_router.py",
"source_location": "L1",
"id": "tests_unit_api_test_staging_router_py",
- "community": 5,
+ "community": 35,
"norm_label": "test_staging_router.py"
},
{
@@ -25893,7 +26856,7 @@
"source_file": "tests/unit/api/test_staging_router.py",
"source_location": "L51",
"id": "api_test_staging_router_make_config",
- "community": 5,
+ "community": 35,
"norm_label": "_make_config()"
},
{
@@ -25902,7 +26865,7 @@
"source_file": "tests/unit/api/test_staging_router.py",
"source_location": "L70",
"id": "api_test_staging_router_seed_run",
- "community": 5,
+ "community": 35,
"norm_label": "_seed_run()"
},
{
@@ -25920,7 +26883,7 @@
"source_file": "tests/unit/api/test_staging_router.py",
"source_location": "L120",
"id": "api_test_staging_router_seed_real_run",
- "community": 5,
+ "community": 35,
"norm_label": "_seed_real_run()"
},
{
@@ -25929,7 +26892,7 @@
"source_file": "tests/unit/api/test_staging_router.py",
"source_location": "L133",
"id": "api_test_staging_router_mark_synced",
- "community": 5,
+ "community": 35,
"norm_label": "_mark_synced()"
},
{
@@ -25938,7 +26901,7 @@
"source_file": "tests/unit/api/test_staging_router.py",
"source_location": "L148",
"id": "api_test_staging_router_test_get_staging_returns_empty_when_staging_root_unset",
- "community": 5,
+ "community": 35,
"norm_label": "test_get_staging_returns_empty_when_staging_root_unset()"
},
{
@@ -25947,7 +26910,7 @@
"source_file": "tests/unit/api/test_staging_router.py",
"source_location": "L158",
"id": "api_test_staging_router_test_force_sync_returns_no_503_when_run_missing",
- "community": 5,
+ "community": 35,
"norm_label": "test_force_sync_returns_no_503_when_run_missing()"
},
{
@@ -25956,7 +26919,7 @@
"source_file": "tests/unit/api/test_staging_router.py",
"source_location": "L167",
"id": "api_test_staging_router_test_clear_returns_no_503_when_run_missing",
- "community": 5,
+ "community": 35,
"norm_label": "test_clear_returns_no_503_when_run_missing()"
},
{
@@ -25965,7 +26928,7 @@
"source_file": "tests/unit/api/test_staging_router.py",
"source_location": "L181",
"id": "api_test_staging_router_test_get_staging_returns_run_rows",
- "community": 5,
+ "community": 35,
"norm_label": "test_get_staging_returns_run_rows()"
},
{
@@ -25974,7 +26937,7 @@
"source_file": "tests/unit/api/test_staging_router.py",
"source_location": "L201",
"id": "api_test_staging_router_test_get_staging_derives_current_state_from_sync_state_rollup",
- "community": 5,
+ "community": 35,
"norm_label": "test_get_staging_derives_current_state_from_sync_state_rollup()"
},
{
@@ -25983,7 +26946,7 @@
"source_file": "tests/unit/api/test_staging_router.py",
"source_location": "L212",
"id": "api_test_staging_router_test_get_staging_returns_empty_runs_for_missing_root",
- "community": 5,
+ "community": 35,
"norm_label": "test_get_staging_returns_empty_runs_for_missing_root()"
},
{
@@ -25992,7 +26955,7 @@
"source_file": "tests/unit/api/test_staging_router.py",
"source_location": "L227",
"id": "api_test_staging_router_test_force_sync_invokes_nas_sync_enqueue",
- "community": 5,
+ "community": 35,
"norm_label": "test_force_sync_invokes_nas_sync_enqueue()"
},
{
@@ -26001,7 +26964,7 @@
"source_file": "tests/unit/api/test_staging_router.py",
"source_location": "L242",
"id": "api_test_staging_router_test_force_sync_returns_503_when_nas_sync_unwired",
- "community": 5,
+ "community": 35,
"norm_label": "test_force_sync_returns_503_when_nas_sync_unwired()"
},
{
@@ -26010,7 +26973,7 @@
"source_file": "tests/unit/api/test_staging_router.py",
"source_location": "L256",
"id": "api_test_staging_router_test_clear_endpoint_deletes_synced_run",
- "community": 5,
+ "community": 35,
"norm_label": "test_clear_endpoint_deletes_synced_run()"
},
{
@@ -26019,7 +26982,7 @@
"source_file": "tests/unit/api/test_staging_router.py",
"source_location": "L277",
"id": "api_test_staging_router_test_clear_endpoint_rejects_non_synced_run",
- "community": 5,
+ "community": 35,
"norm_label": "test_clear_endpoint_rejects_non_synced_run()"
},
{
@@ -26028,7 +26991,7 @@
"source_file": "tests/unit/api/test_staging_router.py",
"source_location": "L289",
"id": "api_test_staging_router_test_clear_endpoint_idempotent_for_missing_run",
- "community": 5,
+ "community": 35,
"norm_label": "test_clear_endpoint_idempotent_for_missing_run()"
},
{
@@ -26037,7 +27000,7 @@
"source_file": "tests/unit/api/test_staging_router.py",
"source_location": "L307",
"id": "api_test_staging_router_test_clear_verified_endpoint_clears_only_synced_runs",
- "community": 5,
+ "community": 35,
"norm_label": "test_clear_verified_endpoint_clears_only_synced_runs()"
},
{
@@ -26046,7 +27009,7 @@
"source_file": "tests/unit/api/test_staging_router.py",
"source_location": "L333",
"id": "api_test_staging_router_test_clear_verified_endpoint_returns_empty_when_no_verified_runs",
- "community": 5,
+ "community": 35,
"norm_label": "test_clear_verified_endpoint_returns_empty_when_no_verified_runs()"
},
{
@@ -26055,7 +27018,7 @@
"source_file": "tests/unit/api/test_staging_router.py",
"source_location": "L344",
"id": "api_test_staging_router_test_clear_verified_endpoint_returns_503_when_config_unwired",
- "community": 1,
+ "community": 94,
"norm_label": "test_clear_verified_endpoint_returns_503_when_config_unwired()"
},
{
@@ -26064,7 +27027,7 @@
"source_file": "tests/unit/api/test_staging_router.py",
"source_location": "L359",
"id": "api_test_staging_router_test_keep_local_toggles_sync_state",
- "community": 5,
+ "community": 35,
"norm_label": "test_keep_local_toggles_sync_state()"
},
{
@@ -26073,7 +27036,7 @@
"source_file": "tests/unit/api/test_staging_router.py",
"source_location": "L382",
"id": "api_test_staging_router_test_keep_local_toggle_off_round_trips",
- "community": 5,
+ "community": 35,
"norm_label": "test_keep_local_toggle_off_round_trips()"
},
{
@@ -26082,7 +27045,7 @@
"source_file": "tests/unit/api/test_staging_router.py",
"source_location": "L400",
"id": "api_test_staging_router_test_keep_local_returns_503_when_writer_unwired",
- "community": 5,
+ "community": 35,
"norm_label": "test_keep_local_returns_503_when_writer_unwired()"
},
{
@@ -26091,7 +27054,7 @@
"source_file": "tests/unit/api/test_staging_router.py",
"source_location": "L414",
"id": "api_test_staging_router_test_keep_local_returns_503_when_config_unwired",
- "community": 1,
+ "community": 94,
"norm_label": "test_keep_local_returns_503_when_config_unwired()"
},
{
@@ -26100,7 +27063,7 @@
"source_file": "tests/unit/api/test_staging_router.py",
"source_location": "L426",
"id": "api_test_staging_router_test_keep_local_rejects_extra_body_fields",
- "community": 5,
+ "community": 35,
"norm_label": "test_keep_local_rejects_extra_body_fields()"
},
{
@@ -26109,7 +27072,7 @@
"source_file": "tests/unit/api/test_staging_router.py",
"source_location": "L440",
"id": "api_test_staging_router_test_keep_local_returns_404_for_path_outside_allowed_roots",
- "community": 5,
+ "community": 35,
"norm_label": "test_keep_local_returns_404_for_path_outside_allowed_roots()"
},
{
@@ -26118,7 +27081,7 @@
"source_file": "tests/unit/api/test_staging_router.py",
"source_location": "L461",
"id": "api_test_staging_router_test_keep_local_returns_404_when_run_has_no_creation_json",
- "community": 5,
+ "community": 35,
"norm_label": "test_keep_local_returns_404_when_run_has_no_creation_json()"
},
{
@@ -26127,7 +27090,7 @@
"source_file": "tests/unit/api/test_staging_router.py",
"source_location": "L479",
"id": "api_test_staging_router_test_keep_local_creates_sync_state_when_cache_dir_absent",
- "community": 5,
+ "community": 35,
"norm_label": "test_keep_local_creates_sync_state_when_cache_dir_absent()"
},
{
@@ -26136,7 +27099,7 @@
"source_file": "tests/unit/api/test_staging_router.py",
"source_location": "L1",
"id": "api_test_staging_router_rationale_1",
- "community": 5,
+ "community": 35,
"norm_label": "unit tests for the ``/staging`` router. backend spec \u00a713.7, \u00a713.8. the operator"
},
{
@@ -26163,7 +27126,7 @@
"source_file": "tests/unit/api/test_staging_router.py",
"source_location": "L127",
"id": "api_test_staging_router_rationale_127",
- "community": 5,
+ "community": 35,
"norm_label": "seed a run dir that carries a ``creation.json`` -- a real run."
},
{
@@ -26172,7 +27135,7 @@
"source_file": "tests/unit/api/test_staging_router.py",
"source_location": "L134",
"id": "api_test_staging_router_rationale_134",
- "community": 5,
+ "community": 35,
"norm_label": "write a fully-verified ``sync_state.json`` so the run rolls up to ``synced``."
},
{
@@ -26181,7 +27144,7 @@
"source_file": "tests/unit/api/test_staging_router.py",
"source_location": "L290",
"id": "api_test_staging_router_rationale_290",
- "community": 5,
+ "community": 35,
"norm_label": "a run with no queue job and no directory clears to zeros."
},
{
@@ -26190,7 +27153,7 @@
"source_file": "tests/unit/api/test_staging_router.py",
"source_location": "L308",
"id": "api_test_staging_router_rationale_308",
- "community": 5,
+ "community": 35,
"norm_label": "the bulk endpoint clears every fully-``synced`` run and reports paths."
},
{
@@ -26199,7 +27162,7 @@
"source_file": "tests/unit/api/test_staging_router.py",
"source_location": "L334",
"id": "api_test_staging_router_rationale_334",
- "community": 5,
+ "community": 35,
"norm_label": "no verified rows -> empty cleared_paths, no error."
},
{
@@ -26208,7 +27171,7 @@
"source_file": "tests/unit/api/test_staging_router.py",
"source_location": "L345",
"id": "api_test_staging_router_rationale_345",
- "community": 1,
+ "community": 94,
"norm_label": "a deps without a config raises the standard 503."
},
{
@@ -26217,7 +27180,7 @@
"source_file": "tests/unit/api/test_staging_router.py",
"source_location": "L360",
"id": "api_test_staging_router_rationale_360",
- "community": 5,
+ "community": 35,
"norm_label": "the endpoint flips ``keep_local`` in the run's ``sync_state.json``."
},
{
@@ -26226,7 +27189,7 @@
"source_file": "tests/unit/api/test_staging_router.py",
"source_location": "L383",
"id": "api_test_staging_router_rationale_383",
- "community": 5,
+ "community": 35,
"norm_label": "setting ``keep_local`` false after true clears the flag on disk."
},
{
@@ -26235,7 +27198,7 @@
"source_file": "tests/unit/api/test_staging_router.py",
"source_location": "L401",
"id": "api_test_staging_router_rationale_401",
- "community": 5,
+ "community": 35,
"norm_label": "a deps without a ``sync_state_writer`` raises the standard 503."
},
{
@@ -26244,7 +27207,7 @@
"source_file": "tests/unit/api/test_staging_router.py",
"source_location": "L415",
"id": "api_test_staging_router_rationale_415",
- "community": 1,
+ "community": 94,
"norm_label": "a deps without a config raises the standard 503."
},
{
@@ -26253,7 +27216,7 @@
"source_file": "tests/unit/api/test_staging_router.py",
"source_location": "L427",
"id": "api_test_staging_router_rationale_427",
- "community": 5,
+ "community": 35,
"norm_label": "the request model forbids unknown fields."
},
{
@@ -26262,7 +27225,7 @@
"source_file": "tests/unit/api/test_staging_router.py",
"source_location": "L441",
"id": "api_test_staging_router_rationale_441",
- "community": 5,
+ "community": 35,
"norm_label": "a path outside the configured roots is rejected before any write. operator-"
},
{
@@ -26271,7 +27234,7 @@
"source_file": "tests/unit/api/test_staging_router.py",
"source_location": "L462",
"id": "api_test_staging_router_rationale_462",
- "community": 5,
+ "community": 35,
"norm_label": "a dir under an allowed root but without a creation.json is not a run."
},
{
@@ -26280,7 +27243,7 @@
"source_file": "tests/unit/api/test_staging_router.py",
"source_location": "L480",
"id": "api_test_staging_router_rationale_480",
- "community": 5,
+ "community": 35,
"norm_label": "the writer mkdir's the .exlab-wizard/ dir -- a real run with only a creation"
},
{
@@ -26289,7 +27252,7 @@
"source_file": "tests/unit/api/test_events.py",
"source_location": "L1",
"id": "tests_unit_api_test_events_py",
- "community": 16,
+ "community": 64,
"norm_label": "test_events.py"
},
{
@@ -26298,7 +27261,7 @@
"source_file": "tests/unit/api/test_events.py",
"source_location": "L24",
"id": "api_test_events_test_phase_event_round_trip",
- "community": 16,
+ "community": 64,
"norm_label": "test_phase_event_round_trip()"
},
{
@@ -26307,7 +27270,7 @@
"source_file": "tests/unit/api/test_events.py",
"source_location": "L34",
"id": "api_test_events_test_progress_event_includes_kind",
- "community": 16,
+ "community": 64,
"norm_label": "test_progress_event_includes_kind()"
},
{
@@ -26316,7 +27279,7 @@
"source_file": "tests/unit/api/test_events.py",
"source_location": "L41",
"id": "api_test_events_test_input_required_event_carries_fields",
- "community": 16,
+ "community": 64,
"norm_label": "test_input_required_event_carries_fields()"
},
{
@@ -26325,7 +27288,7 @@
"source_file": "tests/unit/api/test_events.py",
"source_location": "L52",
"id": "api_test_events_test_warning_event_serializes",
- "community": 16,
+ "community": 64,
"norm_label": "test_warning_event_serializes()"
},
{
@@ -26334,7 +27297,7 @@
"source_file": "tests/unit/api/test_events.py",
"source_location": "L62",
"id": "api_test_events_test_done_event_carries_result",
- "community": 16,
+ "community": 64,
"norm_label": "test_done_event_carries_result()"
},
{
@@ -26343,7 +27306,7 @@
"source_file": "tests/unit/api/test_events.py",
"source_location": "L69",
"id": "api_test_events_test_failed_event_carries_error",
- "community": 16,
+ "community": 64,
"norm_label": "test_failed_event_carries_error()"
},
{
@@ -26352,7 +27315,7 @@
"source_file": "tests/unit/api/test_events.py",
"source_location": "L76",
"id": "api_test_events_test_snapshot_event_lists_findings",
- "community": 16,
+ "community": 64,
"norm_label": "test_snapshot_event_lists_findings()"
},
{
@@ -26361,7 +27324,7 @@
"source_file": "tests/unit/api/test_events.py",
"source_location": "L85",
"id": "api_test_events_test_delta_event_serializes_three_lists",
- "community": 16,
+ "community": 64,
"norm_label": "test_delta_event_serializes_three_lists()"
},
{
@@ -26370,7 +27333,7 @@
"source_file": "tests/unit/api/test_events.py",
"source_location": "L92",
"id": "api_test_events_test_event_from_dict_round_trips_each_kind",
- "community": 16,
+ "community": 64,
"norm_label": "test_event_from_dict_round_trips_each_kind()"
},
{
@@ -26379,7 +27342,7 @@
"source_file": "tests/unit/api/test_events.py",
"source_location": "L111",
"id": "api_test_events_test_event_from_dict_rejects_unknown_kind",
- "community": 16,
+ "community": 64,
"norm_label": "test_event_from_dict_rejects_unknown_kind()"
},
{
@@ -26388,7 +27351,7 @@
"source_file": "tests/unit/api/test_events.py",
"source_location": "L116",
"id": "api_test_events_test_event_from_dict_rejects_missing_kind",
- "community": 16,
+ "community": 64,
"norm_label": "test_event_from_dict_rejects_missing_kind()"
},
{
@@ -26397,7 +27360,7 @@
"source_file": "tests/unit/api/test_events.py",
"source_location": "L1",
"id": "api_test_events_rationale_1",
- "community": 16,
+ "community": 64,
"norm_label": "unit tests for ``exlab_wizard.api.events``."
},
{
@@ -26406,7 +27369,7 @@
"source_file": "tests/unit/api/test_problems.py",
"source_location": "L1",
"id": "tests_unit_api_test_problems_py",
- "community": 107,
+ "community": 121,
"norm_label": "test_problems.py"
},
{
@@ -26415,7 +27378,7 @@
"source_file": "tests/unit/api/test_problems.py",
"source_location": "L38",
"id": "api_test_problems_stubvalidator",
- "community": 107,
+ "community": 121,
"norm_label": "_stubvalidator"
},
{
@@ -26424,7 +27387,7 @@
"source_file": "tests/unit/api/test_problems.py",
"source_location": "L41",
"id": "api_test_problems_stubvalidator_init",
- "community": 107,
+ "community": 121,
"norm_label": ".__init__()"
},
{
@@ -26433,7 +27396,7 @@
"source_file": "tests/unit/api/test_problems.py",
"source_location": "L45",
"id": "api_test_problems_stubvalidator_query_problems",
- "community": 107,
+ "community": 121,
"norm_label": ".query_problems()"
},
{
@@ -26442,7 +27405,7 @@
"source_file": "tests/unit/api/test_problems.py",
"source_location": "L48",
"id": "api_test_problems_stubvalidator_audit",
- "community": 107,
+ "community": 121,
"norm_label": ".audit()"
},
{
@@ -26451,7 +27414,7 @@
"source_file": "tests/unit/api/test_problems.py",
"source_location": "L53",
"id": "api_test_problems_ready_config",
- "community": 107,
+ "community": 121,
"norm_label": "_ready_config()"
},
{
@@ -26460,7 +27423,7 @@
"source_file": "tests/unit/api/test_problems.py",
"source_location": "L72",
"id": "api_test_problems_findings",
- "community": 107,
+ "community": 121,
"norm_label": "_findings()"
},
{
@@ -26469,7 +27432,7 @@
"source_file": "tests/unit/api/test_problems.py",
"source_location": "L94",
"id": "api_test_problems_write_creation_json",
- "community": 107,
+ "community": 0,
"norm_label": "_write_creation_json()"
},
{
@@ -26478,7 +27441,7 @@
"source_file": "tests/unit/api/test_problems.py",
"source_location": "L116",
"id": "api_test_problems_test_list_problems_returns_findings",
- "community": 107,
+ "community": 121,
"norm_label": "test_list_problems_returns_findings()"
},
{
@@ -26487,7 +27450,7 @@
"source_file": "tests/unit/api/test_problems.py",
"source_location": "L132",
"id": "api_test_problems_test_list_problems_filters_by_severity",
- "community": 107,
+ "community": 121,
"norm_label": "test_list_problems_filters_by_severity()"
},
{
@@ -26496,7 +27459,7 @@
"source_file": "tests/unit/api/test_problems.py",
"source_location": "L144",
"id": "api_test_problems_test_list_problems_filters_by_class",
- "community": 107,
+ "community": 121,
"norm_label": "test_list_problems_filters_by_class()"
},
{
@@ -26505,7 +27468,7 @@
"source_file": "tests/unit/api/test_problems.py",
"source_location": "L156",
"id": "api_test_problems_test_list_problems_with_equipment_scope",
- "community": 107,
+ "community": 121,
"norm_label": "test_list_problems_with_equipment_scope()"
},
{
@@ -26514,7 +27477,7 @@
"source_file": "tests/unit/api/test_problems.py",
"source_location": "L167",
"id": "api_test_problems_test_list_problems_unknown_scope_returns_422",
- "community": 107,
+ "community": 121,
"norm_label": "test_list_problems_unknown_scope_returns_422()"
},
{
@@ -26523,7 +27486,7 @@
"source_file": "tests/unit/api/test_problems.py",
"source_location": "L180",
"id": "api_test_problems_test_refresh_runs_audit",
- "community": 107,
+ "community": 121,
"norm_label": "test_refresh_runs_audit()"
},
{
@@ -26532,7 +27495,7 @@
"source_file": "tests/unit/api/test_problems.py",
"source_location": "L193",
"id": "api_test_problems_test_append_override_writes_entry",
- "community": 107,
+ "community": 121,
"norm_label": "test_append_override_writes_entry()"
},
{
@@ -26541,7 +27504,7 @@
"source_file": "tests/unit/api/test_problems.py",
"source_location": "L226",
"id": "api_test_problems_test_append_override_404_when_path_absent",
- "community": 107,
+ "community": 121,
"norm_label": "test_append_override_404_when_path_absent()"
},
{
@@ -26550,7 +27513,7 @@
"source_file": "tests/unit/api/test_problems.py",
"source_location": "L244",
"id": "api_test_problems_test_problems_websocket_sends_snapshot_on_connect",
- "community": 107,
+ "community": 121,
"norm_label": "test_problems_websocket_sends_snapshot_on_connect()"
},
{
@@ -26559,7 +27522,7 @@
"source_file": "tests/unit/api/test_problems.py",
"source_location": "L265",
"id": "api_test_problems_test_problems_websocket_closes_when_no_channel",
- "community": 107,
+ "community": 121,
"norm_label": "test_problems_websocket_closes_when_no_channel()"
},
{
@@ -26568,7 +27531,7 @@
"source_file": "tests/unit/api/test_problems.py",
"source_location": "L285",
"id": "api_test_problems_test_refresh_publishes_snapshot_to_channel",
- "community": 107,
+ "community": 121,
"norm_label": "test_refresh_publishes_snapshot_to_channel()"
},
{
@@ -26577,7 +27540,7 @@
"source_file": "tests/unit/api/test_problems.py",
"source_location": "L306",
"id": "api_test_problems_test_revoke_override_writes_tombstone",
- "community": 107,
+ "community": 121,
"norm_label": "test_revoke_override_writes_tombstone()"
},
{
@@ -26586,7 +27549,7 @@
"source_file": "tests/unit/api/test_problems.py",
"source_location": "L1",
"id": "api_test_problems_rationale_1",
- "community": 107,
+ "community": 121,
"norm_label": "unit tests for the ``/problems`` router."
},
{
@@ -26595,7 +27558,7 @@
"source_file": "tests/unit/api/test_problems.py",
"source_location": "L39",
"id": "api_test_problems_rationale_39",
- "community": 107,
+ "community": 121,
"norm_label": "test double that returns a canned finding list."
},
{
@@ -26604,7 +27567,7 @@
"source_file": "tests/unit/api/test_problems.py",
"source_location": "L245",
"id": "api_test_problems_rationale_245",
- "community": 107,
+ "community": 121,
"norm_label": "connecting to /problems/events emits a snapshot frame immediately."
},
{
@@ -26613,7 +27576,7 @@
"source_file": "tests/unit/api/test_problems.py",
"source_location": "L266",
"id": "api_test_problems_rationale_266",
- "community": 107,
+ "community": 121,
"norm_label": "without an audit channel the websocket closes with 1011."
},
{
@@ -26622,7 +27585,7 @@
"source_file": "tests/unit/api/test_problems.py",
"source_location": "L286",
"id": "api_test_problems_rationale_286",
- "community": 107,
+ "community": 121,
"norm_label": "``post /problems/refresh`` invokes audit and publishes to the channel."
},
{
@@ -26631,7 +27594,7 @@
"source_file": "tests/unit/api/test_app.py",
"source_location": "L1",
"id": "tests_unit_api_test_app_py",
- "community": 51,
+ "community": 67,
"norm_label": "test_app.py"
},
{
@@ -26640,7 +27603,7 @@
"source_file": "tests/unit/api/test_app.py",
"source_location": "L21",
"id": "api_test_app_f",
- "community": 51,
+ "community": 67,
"norm_label": "_f"
},
{
@@ -26649,7 +27612,7 @@
"source_file": "tests/unit/api/test_app.py",
"source_location": "L24",
"id": "api_test_app_f_init",
- "community": 51,
+ "community": 67,
"norm_label": ".__init__()"
},
{
@@ -26658,7 +27621,7 @@
"source_file": "tests/unit/api/test_app.py",
"source_location": "L37",
"id": "api_test_app_test_diff_findings_added_removed_changed",
- "community": 51,
+ "community": 67,
"norm_label": "test_diff_findings_added_removed_changed()"
},
{
@@ -26667,7 +27630,7 @@
"source_file": "tests/unit/api/test_app.py",
"source_location": "L48",
"id": "api_test_app_test_finding_to_dict_handles_dataclass_and_dict",
- "community": 51,
+ "community": 67,
"norm_label": "test_finding_to_dict_handles_dataclass_and_dict()"
},
{
@@ -26676,7 +27639,7 @@
"source_file": "tests/unit/api/test_app.py",
"source_location": "L57",
"id": "api_test_app_test_audit_channel_publishes_snapshot_to_subscriber",
- "community": 51,
+ "community": 67,
"norm_label": "test_audit_channel_publishes_snapshot_to_subscriber()"
},
{
@@ -26685,7 +27648,7 @@
"source_file": "tests/unit/api/test_app.py",
"source_location": "L78",
"id": "api_test_app_test_audit_channel_publishes_delta",
- "community": 51,
+ "community": 67,
"norm_label": "test_audit_channel_publishes_delta()"
},
{
@@ -26694,7 +27657,7 @@
"source_file": "tests/unit/api/test_app.py",
"source_location": "L101",
"id": "api_test_app_test_audit_channel_late_subscribe_receives_latest_snapshot",
- "community": 51,
+ "community": 67,
"norm_label": "test_audit_channel_late_subscribe_receives_latest_snapshot()"
},
{
@@ -26703,7 +27666,7 @@
"source_file": "tests/unit/api/test_app.py",
"source_location": "L119",
"id": "api_test_app_test_audit_channel_close_signals_subscribers",
- "community": 51,
+ "community": 67,
"norm_label": "test_audit_channel_close_signals_subscribers()"
},
{
@@ -26712,7 +27675,7 @@
"source_file": "tests/unit/api/test_app.py",
"source_location": "L135",
"id": "api_test_app_test_create_app_uses_supplied_dependencies",
- "community": 51,
+ "community": 67,
"norm_label": "test_create_app_uses_supplied_dependencies()"
},
{
@@ -26721,7 +27684,7 @@
"source_file": "tests/unit/api/test_app.py",
"source_location": "L141",
"id": "api_test_app_test_create_app_creates_default_dependencies",
- "community": 51,
+ "community": 67,
"norm_label": "test_create_app_creates_default_dependencies()"
},
{
@@ -26730,7 +27693,7 @@
"source_file": "tests/unit/api/test_app.py",
"source_location": "L147",
"id": "api_test_app_test_create_app_attaches_audit_channel",
- "community": 51,
+ "community": 67,
"norm_label": "test_create_app_attaches_audit_channel()"
},
{
@@ -26739,7 +27702,7 @@
"source_file": "tests/unit/api/test_app.py",
"source_location": "L154",
"id": "api_test_app_test_lifespan_starts_and_stops_audit_task",
- "community": 1,
+ "community": 67,
"norm_label": "test_lifespan_starts_and_stops_audit_task()"
},
{
@@ -26748,7 +27711,7 @@
"source_file": "tests/unit/api/test_app.py",
"source_location": "L1",
"id": "api_test_app_rationale_1",
- "community": 51,
+ "community": 67,
"norm_label": "unit tests for ``exlab_wizard.api.app``: auditchannel + app factory."
},
{
@@ -26757,7 +27720,7 @@
"source_file": "tests/unit/api/test_app.py",
"source_location": "L22",
"id": "api_test_app_rationale_22",
- "community": 51,
+ "community": 67,
"norm_label": "tiny finding-shaped object for diff tests."
},
{
@@ -26766,16 +27729,97 @@
"source_file": "tests/unit/api/test_app.py",
"source_location": "L155",
"id": "api_test_app_rationale_155",
- "community": 1,
+ "community": 67,
"norm_label": "when start_audit_task=true the lifespan starts the audit task and cancels on clo"
},
+ {
+ "label": "__init__.py",
+ "file_type": "code",
+ "source_file": "tests/unit/dev/__init__.py",
+ "source_location": "L1",
+ "id": "tests_unit_dev_init_py",
+ "community": 556,
+ "norm_label": "__init__.py"
+ },
+ {
+ "label": "test_seed.py",
+ "file_type": "code",
+ "source_file": "tests/unit/dev/test_seed.py",
+ "source_location": "L1",
+ "id": "tests_unit_dev_test_seed_py",
+ "community": 16,
+ "norm_label": "test_seed.py"
+ },
+ {
+ "label": "_sandbox_under()",
+ "file_type": "code",
+ "source_file": "tests/unit/dev/test_seed.py",
+ "source_location": "L10",
+ "id": "dev_test_seed_sandbox_under",
+ "community": 16,
+ "norm_label": "_sandbox_under()"
+ },
+ {
+ "label": "test_seed_main_creates_full_tree()",
+ "file_type": "code",
+ "source_file": "tests/unit/dev/test_seed.py",
+ "source_location": "L31",
+ "id": "dev_test_seed_test_seed_main_creates_full_tree",
+ "community": 16,
+ "norm_label": "test_seed_main_creates_full_tree()"
+ },
+ {
+ "label": "test_seed_main_wipes_and_rebuilds()",
+ "file_type": "code",
+ "source_file": "tests/unit/dev/test_seed.py",
+ "source_location": "L59",
+ "id": "dev_test_seed_test_seed_main_wipes_and_rebuilds",
+ "community": 16,
+ "norm_label": "test_seed_main_wipes_and_rebuilds()"
+ },
+ {
+ "label": "Tests for the standalone dev seeder (``python -m exlab_wizard.dev.seed``).",
+ "file_type": "rationale",
+ "source_file": "tests/unit/dev/test_seed.py",
+ "source_location": "L1",
+ "id": "dev_test_seed_rationale_1",
+ "community": 16,
+ "norm_label": "tests for the standalone dev seeder (``python -m exlab_wizard.dev.seed``)."
+ },
+ {
+ "label": "Pin the sandbox under ``tmp_path`` and enable test mode. Patches ``paths.os",
+ "file_type": "rationale",
+ "source_file": "tests/unit/dev/test_seed.py",
+ "source_location": "L11",
+ "id": "dev_test_seed_rationale_11",
+ "community": 16,
+ "norm_label": "pin the sandbox under ``tmp_path`` and enable test mode. patches ``paths.os"
+ },
+ {
+ "label": "A clean sandbox (no config) is bootstrapped and fully seeded.",
+ "file_type": "rationale",
+ "source_file": "tests/unit/dev/test_seed.py",
+ "source_location": "L32",
+ "id": "dev_test_seed_rationale_32",
+ "community": 16,
+ "norm_label": "a clean sandbox (no config) is bootstrapped and fully seeded."
+ },
+ {
+ "label": "A second run wipes the seeded subtree (clearing stray files) and rebuilds.",
+ "file_type": "rationale",
+ "source_file": "tests/unit/dev/test_seed.py",
+ "source_location": "L60",
+ "id": "dev_test_seed_rationale_60",
+ "community": 16,
+ "norm_label": "a second run wipes the seeded subtree (clearing stray files) and rebuilds."
+ },
{
"label": "test_nas_client_extra.py",
"file_type": "code",
"source_file": "tests/unit/sync/test_nas_client_extra.py",
"source_location": "L1",
"id": "tests_unit_sync_test_nas_client_extra_py",
- "community": 12,
+ "community": 1,
"norm_label": "test_nas_client_extra.py"
},
{
@@ -26784,7 +27828,7 @@
"source_file": "tests/unit/sync/test_nas_client_extra.py",
"source_location": "L50",
"id": "sync_test_nas_client_extra_build_config",
- "community": 12,
+ "community": 1,
"norm_label": "_build_config()"
},
{
@@ -26802,7 +27846,7 @@
"source_file": "tests/unit/sync/test_nas_client_extra.py",
"source_location": "L91",
"id": "sync_test_nas_client_extra_populate_run",
- "community": 12,
+ "community": 1,
"norm_label": "_populate_run()"
},
{
@@ -26811,7 +27855,7 @@
"source_file": "tests/unit/sync/test_nas_client_extra.py",
"source_location": "L103",
"id": "sync_test_nas_client_extra_factory",
- "community": 12,
+ "community": 1,
"norm_label": "_factory()"
},
{
@@ -26820,7 +27864,7 @@
"source_file": "tests/unit/sync/test_nas_client_extra.py",
"source_location": "L114",
"id": "sync_test_nas_client_extra_test_hash_mismatch_first_failure_retries",
- "community": 12,
+ "community": 1,
"norm_label": "test_hash_mismatch_first_failure_retries()"
},
{
@@ -26829,7 +27873,7 @@
"source_file": "tests/unit/sync/test_nas_client_extra.py",
"source_location": "L170",
"id": "sync_test_nas_client_extra_test_hash_mismatch_second_failure_terminal",
- "community": 12,
+ "community": 1,
"norm_label": "test_hash_mismatch_second_failure_terminal()"
},
{
@@ -26838,7 +27882,7 @@
"source_file": "tests/unit/sync/test_nas_client_extra.py",
"source_location": "L208",
"id": "sync_test_nas_client_extra_test_cleanup_full_delete_when_retain_cache_false",
- "community": 12,
+ "community": 1,
"norm_label": "test_cleanup_full_delete_when_retain_cache_false()"
},
{
@@ -26847,7 +27891,7 @@
"source_file": "tests/unit/sync/test_nas_client_extra.py",
"source_location": "L245",
"id": "sync_test_nas_client_extra_test_cleanup_retain_cache_keeps_metadata",
- "community": 12,
+ "community": 1,
"norm_label": "test_cleanup_retain_cache_keeps_metadata()"
},
{
@@ -26856,7 +27900,7 @@
"source_file": "tests/unit/sync/test_nas_client_extra.py",
"source_location": "L284",
"id": "sync_test_nas_client_extra_test_cleanup_disabled_keeps_files",
- "community": 12,
+ "community": 1,
"norm_label": "test_cleanup_disabled_keeps_files()"
},
{
@@ -26865,7 +27909,7 @@
"source_file": "tests/unit/sync/test_nas_client_extra.py",
"source_location": "L323",
"id": "sync_test_nas_client_extra_test_cleanup_eligible_when_min_verify_passes_unmet",
- "community": 12,
+ "community": 1,
"norm_label": "test_cleanup_eligible_when_min_verify_passes_unmet()"
},
{
@@ -26874,7 +27918,7 @@
"source_file": "tests/unit/sync/test_nas_client_extra.py",
"source_location": "L360",
"id": "sync_test_nas_client_extra_test_cleanup_blocked_by_remote_stat",
- "community": 12,
+ "community": 1,
"norm_label": "test_cleanup_blocked_by_remote_stat()"
},
{
@@ -26883,7 +27927,7 @@
"source_file": "tests/unit/sync/test_nas_client_extra.py",
"source_location": "L403",
"id": "sync_test_nas_client_extra_client",
- "community": 222,
+ "community": 1,
"norm_label": "_client()"
},
{
@@ -26892,7 +27936,7 @@
"source_file": "tests/unit/sync/test_nas_client_extra.py",
"source_location": "L413",
"id": "sync_test_nas_client_extra_test_delete_local_skips_keep_local_files_incl_nested",
- "community": 222,
+ "community": 1,
"norm_label": "test_delete_local_skips_keep_local_files_incl_nested()"
},
{
@@ -26901,7 +27945,7 @@
"source_file": "tests/unit/sync/test_nas_client_extra.py",
"source_location": "L442",
"id": "sync_test_nas_client_extra_test_delete_local_prunes_emptied_dirs_keeps_dir_with_kept_file",
- "community": 222,
+ "community": 1,
"norm_label": "test_delete_local_prunes_emptied_dirs_keeps_dir_with_kept_file()"
},
{
@@ -26910,7 +27954,7 @@
"source_file": "tests/unit/sync/test_nas_client_extra.py",
"source_location": "L475",
"id": "sync_test_nas_client_extra_test_delete_local_does_not_descend_or_remove_directory_symlink",
- "community": 12,
+ "community": 1,
"norm_label": "test_delete_local_does_not_descend_or_remove_directory_symlink()"
},
{
@@ -26919,7 +27963,7 @@
"source_file": "tests/unit/sync/test_nas_client_extra.py",
"source_location": "L501",
"id": "sync_test_nas_client_extra_test_delete_local_keep_local_survives_retain_cache_false",
- "community": 222,
+ "community": 1,
"norm_label": "test_delete_local_keep_local_survives_retain_cache_false()"
},
{
@@ -26928,7 +27972,7 @@
"source_file": "tests/unit/sync/test_nas_client_extra.py",
"source_location": "L518",
"id": "sync_test_nas_client_extra_test_delete_local_retain_cache_false_drops_whole_run_without_keep_local",
- "community": 222,
+ "community": 1,
"norm_label": "test_delete_local_retain_cache_false_drops_whole_run_without_keep_local()"
},
{
@@ -26937,7 +27981,7 @@
"source_file": "tests/unit/sync/test_nas_client_extra.py",
"source_location": "L532",
"id": "sync_test_nas_client_extra_test_cleanup_marks_cleared_in_sync_state",
- "community": 12,
+ "community": 1,
"norm_label": "test_cleanup_marks_cleared_in_sync_state()"
},
{
@@ -26946,7 +27990,7 @@
"source_file": "tests/unit/sync/test_nas_client_extra.py",
"source_location": "L573",
"id": "sync_test_nas_client_extra_test_cleanup_keeps_keep_local_file",
- "community": 12,
+ "community": 1,
"norm_label": "test_cleanup_keeps_keep_local_file()"
},
{
@@ -26955,7 +27999,7 @@
"source_file": "tests/unit/sync/test_nas_client_extra.py",
"source_location": "L617",
"id": "sync_test_nas_client_extra_test_cleanup_deferred_when_run_only_partially_synced",
- "community": 12,
+ "community": 1,
"norm_label": "test_cleanup_deferred_when_run_only_partially_synced()"
},
{
@@ -26964,7 +28008,7 @@
"source_file": "tests/unit/sync/test_nas_client_extra.py",
"source_location": "L675",
"id": "sync_test_nas_client_extra_test_worker_marks_failed_when_local_run_vanished",
- "community": 12,
+ "community": 1,
"norm_label": "test_worker_marks_failed_when_local_run_vanished()"
},
{
@@ -26973,7 +28017,7 @@
"source_file": "tests/unit/sync/test_nas_client_extra.py",
"source_location": "L727",
"id": "sync_test_nas_client_extra_test_cleanup_runs_hash_gate_before_delete",
- "community": 12,
+ "community": 1,
"norm_label": "test_cleanup_runs_hash_gate_before_delete()"
},
{
@@ -26982,7 +28026,7 @@
"source_file": "tests/unit/sync/test_nas_client_extra.py",
"source_location": "L778",
"id": "sync_test_nas_client_extra_test_cleanup_aborts_delete_on_hash_mismatch",
- "community": 12,
+ "community": 1,
"norm_label": "test_cleanup_aborts_delete_on_hash_mismatch()"
},
{
@@ -26991,7 +28035,7 @@
"source_file": "tests/unit/sync/test_nas_client_extra.py",
"source_location": "L818",
"id": "sync_test_nas_client_extra_test_cleanup_aborts_delete_when_remote_file_vanished_at_gate",
- "community": 12,
+ "community": 1,
"norm_label": "test_cleanup_aborts_delete_when_remote_file_vanished_at_gate()"
},
{
@@ -27000,7 +28044,7 @@
"source_file": "tests/unit/sync/test_nas_client_extra.py",
"source_location": "L888",
"id": "sync_test_nas_client_extra_test_default_push_factory_uses_real_driver",
- "community": 447,
+ "community": 1,
"norm_label": "test_default_push_factory_uses_real_driver()"
},
{
@@ -27009,7 +28053,7 @@
"source_file": "tests/unit/sync/test_nas_client_extra.py",
"source_location": "L914",
"id": "sync_test_nas_client_extra_test_network_error_records_backoff_retry",
- "community": 12,
+ "community": 1,
"norm_label": "test_network_error_records_backoff_retry()"
},
{
@@ -27027,7 +28071,7 @@
"source_file": "tests/unit/sync/test_nas_client_extra.py",
"source_location": "L964",
"id": "sync_test_nas_client_extra_test_mark_synced_no_op_when_creation_missing",
- "community": 448,
+ "community": 1,
"norm_label": "test_mark_synced_no_op_when_creation_missing()"
},
{
@@ -27036,7 +28080,7 @@
"source_file": "tests/unit/sync/test_nas_client_extra.py",
"source_location": "L982",
"id": "sync_test_nas_client_extra_test_delete_local_no_op_when_path_missing",
- "community": 449,
+ "community": 1,
"norm_label": "test_delete_local_no_op_when_path_missing()"
},
{
@@ -27045,7 +28089,7 @@
"source_file": "tests/unit/sync/test_nas_client_extra.py",
"source_location": "L996",
"id": "sync_test_nas_client_extra_test_infer_equipment_id_falls_back_to_first",
- "community": 451,
+ "community": 0,
"norm_label": "test_infer_equipment_id_falls_back_to_first()"
},
{
@@ -27054,7 +28098,7 @@
"source_file": "tests/unit/sync/test_nas_client_extra.py",
"source_location": "L1027",
"id": "sync_test_nas_client_extra_test_partial_batch_credits_reconciled_files_in_sync_state",
- "community": 12,
+ "community": 1,
"norm_label": "test_partial_batch_credits_reconciled_files_in_sync_state()"
},
{
@@ -27063,7 +28107,7 @@
"source_file": "tests/unit/sync/test_nas_client_extra.py",
"source_location": "L1098",
"id": "sync_test_nas_client_extra_test_full_batch_credits_every_file_in_sync_state",
- "community": 12,
+ "community": 1,
"norm_label": "test_full_batch_credits_every_file_in_sync_state()"
},
{
@@ -27072,7 +28116,7 @@
"source_file": "tests/unit/sync/test_nas_client_extra.py",
"source_location": "L1",
"id": "sync_test_nas_client_extra_rationale_1",
- "community": 12,
+ "community": 1,
"norm_label": "extra coverage tests for ``exlab_wizard.sync.nas_client``. these hit the sub-br"
},
{
@@ -27081,7 +28125,7 @@
"source_file": "tests/unit/sync/test_nas_client_extra.py",
"source_location": "L115",
"id": "sync_test_nas_client_extra_rationale_115",
- "community": 12,
+ "community": 1,
"norm_label": "a first hash-mismatch from the transport re-queues without backoff. the fir"
},
{
@@ -27090,7 +28134,7 @@
"source_file": "tests/unit/sync/test_nas_client_extra.py",
"source_location": "L171",
"id": "sync_test_nas_client_extra_rationale_171",
- "community": 12,
+ "community": 1,
"norm_label": "a second consecutive hash-mismatch terminates failed."
},
{
@@ -27099,7 +28143,7 @@
"source_file": "tests/unit/sync/test_nas_client_extra.py",
"source_location": "L209",
"id": "sync_test_nas_client_extra_rationale_209",
- "community": 12,
+ "community": 1,
"norm_label": "``retain_cache=false`` removes the entire run directory after cleaned."
},
{
@@ -27108,7 +28152,7 @@
"source_file": "tests/unit/sync/test_nas_client_extra.py",
"source_location": "L246",
"id": "sync_test_nas_client_extra_rationale_246",
- "community": 12,
+ "community": 1,
"norm_label": "``retain_cache=true`` deletes data files but keeps ``.exlab-wizard/``."
},
{
@@ -27117,7 +28161,7 @@
"source_file": "tests/unit/sync/test_nas_client_extra.py",
"source_location": "L285",
"id": "sync_test_nas_client_extra_rationale_285",
- "community": 12,
+ "community": 1,
"norm_label": "``nas_cleanup.enabled=false`` -> job stays verified, no cleanup."
},
{
@@ -27126,7 +28170,7 @@
"source_file": "tests/unit/sync/test_nas_client_extra.py",
"source_location": "L324",
"id": "sync_test_nas_client_extra_rationale_324",
- "community": 12,
+ "community": 1,
"norm_label": "job lands in cleanup_eligible when min_verify_passes > current passes."
},
{
@@ -27135,7 +28179,7 @@
"source_file": "tests/unit/sync/test_nas_client_extra.py",
"source_location": "L361",
"id": "sync_test_nas_client_extra_rationale_361",
- "community": 12,
+ "community": 1,
"norm_label": "a failing remote_stat keeps the job in cleanup_eligible, not cleaned."
},
{
@@ -27144,7 +28188,7 @@
"source_file": "tests/unit/sync/test_nas_client_extra.py",
"source_location": "L404",
"id": "sync_test_nas_client_extra_rationale_404",
- "community": 222,
+ "community": 1,
"norm_label": "build an un-init'd client for direct ``_delete_local`` calls."
},
{
@@ -27153,7 +28197,7 @@
"source_file": "tests/unit/sync/test_nas_client_extra.py",
"source_location": "L414",
"id": "sync_test_nas_client_extra_rationale_414",
- "community": 222,
+ "community": 1,
"norm_label": "``_delete_local`` keeps ``keep_local`` files, incl. a nested one."
},
{
@@ -27162,7 +28206,7 @@
"source_file": "tests/unit/sync/test_nas_client_extra.py",
"source_location": "L443",
"id": "sync_test_nas_client_extra_rationale_443",
- "community": 222,
+ "community": 1,
"norm_label": "a directory holding only deleted files is pruned (deepest-first); a parent s"
},
{
@@ -27171,7 +28215,7 @@
"source_file": "tests/unit/sync/test_nas_client_extra.py",
"source_location": "L476",
"id": "sync_test_nas_client_extra_rationale_476",
- "community": 222,
+ "community": 1,
"norm_label": "a directory symlink inside the run is left untouched -- its target's content"
},
{
@@ -27180,7 +28224,7 @@
"source_file": "tests/unit/sync/test_nas_client_extra.py",
"source_location": "L502",
"id": "sync_test_nas_client_extra_rationale_502",
- "community": 222,
+ "community": 1,
"norm_label": "a ``keep_local`` file survives even when ``retain_cache=false``."
},
{
@@ -27189,7 +28233,7 @@
"source_file": "tests/unit/sync/test_nas_client_extra.py",
"source_location": "L521",
"id": "sync_test_nas_client_extra_rationale_521",
- "community": 222,
+ "community": 1,
"norm_label": "with ``retain_cache=false`` and no kept files the run dir is removed."
},
{
@@ -27198,7 +28242,7 @@
"source_file": "tests/unit/sync/test_nas_client_extra.py",
"source_location": "L533",
"id": "sync_test_nas_client_extra_rationale_533",
- "community": 12,
+ "community": 1,
"norm_label": "a full cleanup pass stamps ``cleared_at`` in ``sync_state.json``."
},
{
@@ -27207,7 +28251,7 @@
"source_file": "tests/unit/sync/test_nas_client_extra.py",
"source_location": "L574",
"id": "sync_test_nas_client_extra_rationale_574",
- "community": 12,
+ "community": 1,
"norm_label": "a file flagged ``keep_local`` survives the cleanup sweep."
},
{
@@ -27216,7 +28260,7 @@
"source_file": "tests/unit/sync/test_nas_client_extra.py",
"source_location": "L618",
"id": "sync_test_nas_client_extra_rationale_618",
- "community": 12,
+ "community": 1,
"norm_label": "cleanup does not run while a tracked file remains unverified. a pre-existin"
},
{
@@ -27225,7 +28269,7 @@
"source_file": "tests/unit/sync/test_nas_client_extra.py",
"source_location": "L676",
"id": "sync_test_nas_client_extra_rationale_676",
- "community": 12,
+ "community": 1,
"norm_label": "a run dir deleted between enqueue and worker pick -> failed."
},
{
@@ -27234,7 +28278,7 @@
"source_file": "tests/unit/sync/test_nas_client_extra.py",
"source_location": "L728",
"id": "sync_test_nas_client_extra_rationale_728",
- "community": 12,
+ "community": 1,
"norm_label": "the cleanup pass runs the hash-gate, and on success deletes locally. the in"
},
{
@@ -27243,7 +28287,7 @@
"source_file": "tests/unit/sync/test_nas_client_extra.py",
"source_location": "L779",
"id": "sync_test_nas_client_extra_rationale_779",
- "community": 12,
+ "community": 1,
"norm_label": "a hash-gate mismatch defers cleanup (cleanup_eligible), files survive."
},
{
@@ -27252,7 +28296,7 @@
"source_file": "tests/unit/sync/test_nas_client_extra.py",
"source_location": "L819",
"id": "sync_test_nas_client_extra_rationale_819",
- "community": 12,
+ "community": 1,
"norm_label": "a tracked file present at reconcile but gone at the cleanup gate defers cleanup."
},
{
@@ -27261,7 +28305,7 @@
"source_file": "tests/unit/sync/test_nas_client_extra.py",
"source_location": "L889",
"id": "sync_test_nas_client_extra_rationale_889",
- "community": 447,
+ "community": 1,
"norm_label": "when no factory is injected, the client builds the named-remote driver. we"
},
{
@@ -27279,7 +28323,7 @@
"source_file": "tests/unit/sync/test_nas_client_extra.py",
"source_location": "L965",
"id": "sync_test_nas_client_extra_rationale_965",
- "community": 448,
+ "community": 1,
"norm_label": "``_mark_synced`` is a no-op when ``creation.json`` doesn't exist."
},
{
@@ -27288,7 +28332,7 @@
"source_file": "tests/unit/sync/test_nas_client_extra.py",
"source_location": "L983",
"id": "sync_test_nas_client_extra_rationale_983",
- "community": 449,
+ "community": 1,
"norm_label": "``_delete_local`` is a no-op when the run directory is already gone."
},
{
@@ -27297,7 +28341,7 @@
"source_file": "tests/unit/sync/test_nas_client_extra.py",
"source_location": "L997",
"id": "sync_test_nas_client_extra_rationale_997",
- "community": 451,
+ "community": 0,
"norm_label": "if neither ``creation.paths.local`` nor ``run_path`` contains a configured e"
},
{
@@ -27306,7 +28350,7 @@
"source_file": "tests/unit/sync/test_nas_client_extra.py",
"source_location": "L1028",
"id": "sync_test_nas_client_extra_rationale_1028",
- "community": 12,
+ "community": 1,
"norm_label": "a batch where one file is absent remotely still credits the others. routine"
},
{
@@ -27315,7 +28359,7 @@
"source_file": "tests/unit/sync/test_nas_client_extra.py",
"source_location": "L1099",
"id": "sync_test_nas_client_extra_rationale_1099",
- "community": 12,
+ "community": 1,
"norm_label": "a fully-successful batch credits every verified file in sync_state.json."
},
{
@@ -27324,7 +28368,7 @@
"source_file": "tests/unit/sync/test_transports.py",
"source_location": "L1",
"id": "tests_unit_sync_test_transports_py",
- "community": 38,
+ "community": 68,
"norm_label": "test_transports.py"
},
{
@@ -27333,7 +28377,7 @@
"source_file": "tests/unit/sync/test_transports.py",
"source_location": "L34",
"id": "sync_test_transports_stub_dir",
- "community": 38,
+ "community": 495,
"norm_label": "stub_dir()"
},
{
@@ -27342,7 +28386,7 @@
"source_file": "tests/unit/sync/test_transports.py",
"source_location": "L48",
"id": "sync_test_transports_record_argv",
- "community": 38,
+ "community": 496,
"norm_label": "record_argv()"
},
{
@@ -27351,7 +28395,7 @@
"source_file": "tests/unit/sync/test_transports.py",
"source_location": "L55",
"id": "sync_test_transports_read_recorded_argvs",
- "community": 38,
+ "community": 68,
"norm_label": "_read_recorded_argvs()"
},
{
@@ -27360,7 +28404,7 @@
"source_file": "tests/unit/sync/test_transports.py",
"source_location": "L65",
"id": "sync_test_transports_test_rclone_push_success",
- "community": 38,
+ "community": 68,
"norm_label": "test_rclone_push_success()"
},
{
@@ -27369,7 +28413,7 @@
"source_file": "tests/unit/sync/test_transports.py",
"source_location": "L81",
"id": "sync_test_transports_test_rclone_push_network_error_is_retryable",
- "community": 38,
+ "community": 68,
"norm_label": "test_rclone_push_network_error_is_retryable()"
},
{
@@ -27378,7 +28422,7 @@
"source_file": "tests/unit/sync/test_transports.py",
"source_location": "L93",
"id": "sync_test_transports_test_rclone_push_auth_error_is_terminal",
- "community": 38,
+ "community": 68,
"norm_label": "test_rclone_push_auth_error_is_terminal()"
},
{
@@ -27387,7 +28431,7 @@
"source_file": "tests/unit/sync/test_transports.py",
"source_location": "L105",
"id": "sync_test_transports_test_rclone_push_hash_mismatch",
- "community": 38,
+ "community": 68,
"norm_label": "test_rclone_push_hash_mismatch()"
},
{
@@ -27396,7 +28440,7 @@
"source_file": "tests/unit/sync/test_transports.py",
"source_location": "L117",
"id": "sync_test_transports_test_rclone_push_missing_binary_raises",
- "community": 38,
+ "community": 68,
"norm_label": "test_rclone_push_missing_binary_raises()"
},
{
@@ -27405,7 +28449,7 @@
"source_file": "tests/unit/sync/test_transports.py",
"source_location": "L129",
"id": "sync_test_transports_test_rclone_argv_includes_checksum_flag",
- "community": 38,
+ "community": 68,
"norm_label": "test_rclone_argv_includes_checksum_flag()"
},
{
@@ -27414,7 +28458,7 @@
"source_file": "tests/unit/sync/test_transports.py",
"source_location": "L145",
"id": "sync_test_transports_test_rclone_argv_includes_bwlimit_when_set",
- "community": 38,
+ "community": 68,
"norm_label": "test_rclone_argv_includes_bwlimit_when_set()"
},
{
@@ -27423,7 +28467,7 @@
"source_file": "tests/unit/sync/test_transports.py",
"source_location": "L162",
"id": "sync_test_transports_test_rclone_argv_omits_bwlimit_when_none",
- "community": 38,
+ "community": 68,
"norm_label": "test_rclone_argv_omits_bwlimit_when_none()"
},
{
@@ -27432,7 +28476,7 @@
"source_file": "tests/unit/sync/test_transports.py",
"source_location": "L177",
"id": "sync_test_transports_test_rclone_argv_includes_files_from_when_set",
- "community": 38,
+ "community": 68,
"norm_label": "test_rclone_argv_includes_files_from_when_set()"
},
{
@@ -27441,7 +28485,7 @@
"source_file": "tests/unit/sync/test_transports.py",
"source_location": "L196",
"id": "sync_test_transports_test_rclone_argv_omits_files_from_when_none",
- "community": 38,
+ "community": 68,
"norm_label": "test_rclone_argv_omits_files_from_when_none()"
},
{
@@ -27450,7 +28494,7 @@
"source_file": "tests/unit/sync/test_transports.py",
"source_location": "L216",
"id": "sync_test_transports_test_about_success",
- "community": 38,
+ "community": 68,
"norm_label": "test_about_success()"
},
{
@@ -27459,7 +28503,7 @@
"source_file": "tests/unit/sync/test_transports.py",
"source_location": "L225",
"id": "sync_test_transports_test_about_auth_failure",
- "community": 38,
+ "community": 68,
"norm_label": "test_about_auth_failure()"
},
{
@@ -27468,7 +28512,7 @@
"source_file": "tests/unit/sync/test_transports.py",
"source_location": "L239",
"id": "sync_test_transports_test_parse_combined_handles_all_prefixes",
- "community": 189,
+ "community": 232,
"norm_label": "test_parse_combined_handles_all_prefixes()"
},
{
@@ -27477,7 +28521,7 @@
"source_file": "tests/unit/sync/test_transports.py",
"source_location": "L249",
"id": "sync_test_transports_test_parse_combined_empty_returns_empty_result",
- "community": 189,
+ "community": 232,
"norm_label": "test_parse_combined_empty_returns_empty_result()"
},
{
@@ -27486,7 +28530,7 @@
"source_file": "tests/unit/sync/test_transports.py",
"source_location": "L253",
"id": "sync_test_transports_test_parse_combined_tolerates_blank_lines_and_unknown_prefix",
- "community": 189,
+ "community": 232,
"norm_label": "test_parse_combined_tolerates_blank_lines_and_unknown_prefix()"
},
{
@@ -27495,7 +28539,7 @@
"source_file": "tests/unit/sync/test_transports.py",
"source_location": "L266",
"id": "sync_test_transports_test_push_argv_includes_config_and_perf",
- "community": 38,
+ "community": 68,
"norm_label": "test_push_argv_includes_config_and_perf()"
},
{
@@ -27504,7 +28548,7 @@
"source_file": "tests/unit/sync/test_transports.py",
"source_location": "L288",
"id": "sync_test_transports_test_lsjson_argv_is_recursive_readonly",
- "community": 38,
+ "community": 68,
"norm_label": "test_lsjson_argv_is_recursive_readonly()"
},
{
@@ -27513,7 +28557,7 @@
"source_file": "tests/unit/sync/test_transports.py",
"source_location": "L308",
"id": "sync_test_transports_test_lsjson_raises_transport_error_on_failure",
- "community": 38,
+ "community": 68,
"norm_label": "test_lsjson_raises_transport_error_on_failure()"
},
{
@@ -27522,7 +28566,7 @@
"source_file": "tests/unit/sync/test_transports.py",
"source_location": "L323",
"id": "sync_test_transports_test_listremotes_parses_lines",
- "community": 38,
+ "community": 68,
"norm_label": "test_listremotes_parses_lines()"
},
{
@@ -27531,7 +28575,7 @@
"source_file": "tests/unit/sync/test_transports.py",
"source_location": "L334",
"id": "sync_test_transports_test_listremotes_empty_on_failure",
- "community": 38,
+ "community": 68,
"norm_label": "test_listremotes_empty_on_failure()"
},
{
@@ -27540,7 +28584,7 @@
"source_file": "tests/unit/sync/test_transports.py",
"source_location": "L347",
"id": "sync_test_transports_test_classify_failure_unknown_when_rc_zero_and_no_markers",
- "community": 90,
+ "community": 104,
"norm_label": "test_classify_failure_unknown_when_rc_zero_and_no_markers()"
},
{
@@ -27549,7 +28593,7 @@
"source_file": "tests/unit/sync/test_transports.py",
"source_location": "L357",
"id": "sync_test_transports_test_check_missing_binary_raises",
- "community": 38,
+ "community": 68,
"norm_label": "test_check_missing_binary_raises()"
},
{
@@ -27558,7 +28602,7 @@
"source_file": "tests/unit/sync/test_transports.py",
"source_location": "L369",
"id": "sync_test_transports_test_check_auth_failure_with_no_combined_output_raises",
- "community": 38,
+ "community": 68,
"norm_label": "test_check_auth_failure_with_no_combined_output_raises()"
},
{
@@ -27567,7 +28611,7 @@
"source_file": "tests/unit/sync/test_transports.py",
"source_location": "L383",
"id": "sync_test_transports_test_check_unreadable_combined_file_is_tolerated",
- "community": 38,
+ "community": 68,
"norm_label": "test_check_unreadable_combined_file_is_tolerated()"
},
{
@@ -27576,7 +28620,7 @@
"source_file": "tests/unit/sync/test_transports.py",
"source_location": "L405",
"id": "sync_test_transports_test_about_missing_binary_returns_not_ok",
- "community": 90,
+ "community": 232,
"norm_label": "test_about_missing_binary_returns_not_ok()"
},
{
@@ -27585,7 +28629,7 @@
"source_file": "tests/unit/sync/test_transports.py",
"source_location": "L415",
"id": "sync_test_transports_test_about_malformed_json_is_ok_with_empty_info",
- "community": 38,
+ "community": 68,
"norm_label": "test_about_malformed_json_is_ok_with_empty_info()"
},
{
@@ -27594,7 +28638,7 @@
"source_file": "tests/unit/sync/test_transports.py",
"source_location": "L431",
"id": "sync_test_transports_test_lsjson_missing_binary_raises",
- "community": 38,
+ "community": 68,
"norm_label": "test_lsjson_missing_binary_raises()"
},
{
@@ -27603,7 +28647,7 @@
"source_file": "tests/unit/sync/test_transports.py",
"source_location": "L1",
"id": "sync_test_transports_rationale_1",
- "community": 38,
+ "community": 68,
"norm_label": "tests for the rclone transport driver. backend spec \u00a77.1.3, \u00a77.1.5. the driver"
},
{
@@ -27612,7 +28656,7 @@
"source_file": "tests/unit/sync/test_transports.py",
"source_location": "L35",
"id": "sync_test_transports_rationale_35",
- "community": 38,
+ "community": 495,
"norm_label": "install the rclone stub under ``tmp_path/bin`` and prepend to path."
},
{
@@ -27621,7 +28665,7 @@
"source_file": "tests/unit/sync/test_transports.py",
"source_location": "L49",
"id": "sync_test_transports_rationale_49",
- "community": 38,
+ "community": 496,
"norm_label": "tell the stub to append every invocation's argv to a log file."
},
{
@@ -27630,7 +28674,7 @@
"source_file": "tests/unit/sync/test_transports.py",
"source_location": "L56",
"id": "sync_test_transports_rationale_56",
- "community": 38,
+ "community": 68,
"norm_label": "return the recorded argv lists, in invocation order."
},
{
@@ -27639,7 +28683,7 @@
"source_file": "tests/unit/sync/test_transports.py",
"source_location": "L118",
"id": "sync_test_transports_rationale_118",
- "community": 38,
+ "community": 68,
"norm_label": "a missing binary raises :class:`transporterror`, not a retry result."
},
{
@@ -27648,7 +28692,7 @@
"source_file": "tests/unit/sync/test_transports.py",
"source_location": "L384",
"id": "sync_test_transports_rationale_384",
- "community": 38,
+ "community": 68,
"norm_label": "if the --combined tempfile cannot be read, treat it as empty output."
},
{
@@ -27657,7 +28701,7 @@
"source_file": "tests/unit/sync/test_bandwidth.py",
"source_location": "L1",
"id": "tests_unit_sync_test_bandwidth_py",
- "community": 80,
+ "community": 89,
"norm_label": "test_bandwidth.py"
},
{
@@ -27666,7 +28710,7 @@
"source_file": "tests/unit/sync/test_bandwidth.py",
"source_location": "L20",
"id": "sync_test_bandwidth_wed_at",
- "community": 80,
+ "community": 89,
"norm_label": "_wed_at()"
},
{
@@ -27675,7 +28719,7 @@
"source_file": "tests/unit/sync/test_bandwidth.py",
"source_location": "L25",
"id": "sync_test_bandwidth_test_mbps_to_kibps_uses_spec_formula",
- "community": 80,
+ "community": 89,
"norm_label": "test_mbps_to_kibps_uses_spec_formula()"
},
{
@@ -27684,7 +28728,7 @@
"source_file": "tests/unit/sync/test_bandwidth.py",
"source_location": "L31",
"id": "sync_test_bandwidth_test_mbps_to_kibps_floor_for_tiny_input",
- "community": 80,
+ "community": 89,
"norm_label": "test_mbps_to_kibps_floor_for_tiny_input()"
},
{
@@ -27693,7 +28737,7 @@
"source_file": "tests/unit/sync/test_bandwidth.py",
"source_location": "L36",
"id": "sync_test_bandwidth_test_mbps_to_kibps_zero",
- "community": 80,
+ "community": 89,
"norm_label": "test_mbps_to_kibps_zero()"
},
{
@@ -27702,7 +28746,7 @@
"source_file": "tests/unit/sync/test_bandwidth.py",
"source_location": "L41",
"id": "sync_test_bandwidth_test_day_name_to_index_covers_all_days",
- "community": 80,
+ "community": 89,
"norm_label": "test_day_name_to_index_covers_all_days()"
},
{
@@ -27711,7 +28755,7 @@
"source_file": "tests/unit/sync/test_bandwidth.py",
"source_location": "L47",
"id": "sync_test_bandwidth_test_is_window_active_inside_window",
- "community": 80,
+ "community": 89,
"norm_label": "test_is_window_active_inside_window()"
},
{
@@ -27720,7 +28764,7 @@
"source_file": "tests/unit/sync/test_bandwidth.py",
"source_location": "L52",
"id": "sync_test_bandwidth_test_is_window_active_outside_window",
- "community": 80,
+ "community": 89,
"norm_label": "test_is_window_active_outside_window()"
},
{
@@ -27729,7 +28773,7 @@
"source_file": "tests/unit/sync/test_bandwidth.py",
"source_location": "L58",
"id": "sync_test_bandwidth_test_is_window_active_wrong_weekday",
- "community": 80,
+ "community": 89,
"norm_label": "test_is_window_active_wrong_weekday()"
},
{
@@ -27738,7 +28782,7 @@
"source_file": "tests/unit/sync/test_bandwidth.py",
"source_location": "L64",
"id": "sync_test_bandwidth_test_effective_unlimited_when_upload_mbps_none",
- "community": 80,
+ "community": 89,
"norm_label": "test_effective_unlimited_when_upload_mbps_none()"
},
{
@@ -27747,7 +28791,7 @@
"source_file": "tests/unit/sync/test_bandwidth.py",
"source_location": "L69",
"id": "sync_test_bandwidth_test_effective_unlimited_when_outside_schedule",
- "community": 80,
+ "community": 89,
"norm_label": "test_effective_unlimited_when_outside_schedule()"
},
{
@@ -27756,7 +28800,7 @@
"source_file": "tests/unit/sync/test_bandwidth.py",
"source_location": "L78",
"id": "sync_test_bandwidth_test_effective_throttled_inside_schedule",
- "community": 80,
+ "community": 89,
"norm_label": "test_effective_throttled_inside_schedule()"
},
{
@@ -27765,7 +28809,7 @@
"source_file": "tests/unit/sync/test_bandwidth.py",
"source_location": "L86",
"id": "sync_test_bandwidth_test_effective_throttled_when_no_schedule",
- "community": 80,
+ "community": 89,
"norm_label": "test_effective_throttled_when_no_schedule()"
},
{
@@ -27774,7 +28818,7 @@
"source_file": "tests/unit/sync/test_bandwidth.py",
"source_location": "L92",
"id": "sync_test_bandwidth_test_effective_throttled_in_first_matching_window",
- "community": 80,
+ "community": 89,
"norm_label": "test_effective_throttled_in_first_matching_window()"
},
{
@@ -27783,7 +28827,7 @@
"source_file": "tests/unit/sync/test_bandwidth.py",
"source_location": "L1",
"id": "sync_test_bandwidth_rationale_1",
- "community": 80,
+ "community": 89,
"norm_label": "tests for ``exlab_wizard.sync.bandwidth``. backend spec \u00a77.1.7. the schedule ev"
},
{
@@ -27792,7 +28836,7 @@
"source_file": "tests/unit/sync/test_bandwidth.py",
"source_location": "L21",
"id": "sync_test_bandwidth_rationale_21",
- "community": 80,
+ "community": 89,
"norm_label": "a wednesday in 2026 (weekday 2) at the requested local time."
},
{
@@ -27801,7 +28845,7 @@
"source_file": "tests/unit/sync/test_bandwidth.py",
"source_location": "L26",
"id": "sync_test_bandwidth_rationale_26",
- "community": 80,
+ "community": 89,
"norm_label": "spec \u00a77.1.7: ``k = upload_mbps * 1024 / 8``."
},
{
@@ -27810,7 +28854,7 @@
"source_file": "tests/unit/sync/test_bandwidth.py",
"source_location": "L32",
"id": "sync_test_bandwidth_rationale_32",
- "community": 80,
+ "community": 89,
"norm_label": "a tiny but positive input rounds up to 1 kib/s, not 0."
},
{
@@ -27819,7 +28863,7 @@
"source_file": "tests/unit/sync/test_bandwidth.py",
"source_location": "L59",
"id": "sync_test_bandwidth_rationale_59",
- "community": 80,
+ "community": 89,
"norm_label": "weekday filtering rejects days not in ``window.days``."
},
{
@@ -27828,7 +28872,7 @@
"source_file": "tests/unit/sync/test_bandwidth.py",
"source_location": "L87",
"id": "sync_test_bandwidth_rationale_87",
- "community": 80,
+ "community": 89,
"norm_label": "a cap with no schedule applies always."
},
{
@@ -27837,7 +28881,7 @@
"source_file": "tests/unit/sync/test_cleanup.py",
"source_location": "L1",
"id": "tests_unit_sync_test_cleanup_py",
- "community": 115,
+ "community": 120,
"norm_label": "test_cleanup.py"
},
{
@@ -27846,7 +28890,7 @@
"source_file": "tests/unit/sync/test_cleanup.py",
"source_location": "L22",
"id": "sync_test_cleanup_job",
- "community": 115,
+ "community": 120,
"norm_label": "_job()"
},
{
@@ -27855,7 +28899,7 @@
"source_file": "tests/unit/sync/test_cleanup.py",
"source_location": "L38",
"id": "sync_test_cleanup_config",
- "community": 115,
+ "community": 120,
"norm_label": "_config()"
},
{
@@ -27864,7 +28908,7 @@
"source_file": "tests/unit/sync/test_cleanup.py",
"source_location": "L53",
"id": "sync_test_cleanup_test_all_interlocks_pass",
- "community": 115,
+ "community": 120,
"norm_label": "test_all_interlocks_pass()"
},
{
@@ -27873,7 +28917,7 @@
"source_file": "tests/unit/sync/test_cleanup.py",
"source_location": "L65",
"id": "sync_test_cleanup_test_min_verify_passes_blocks",
- "community": 115,
+ "community": 120,
"norm_label": "test_min_verify_passes_blocks()"
},
{
@@ -27882,7 +28926,7 @@
"source_file": "tests/unit/sync/test_cleanup.py",
"source_location": "L77",
"id": "sync_test_cleanup_test_min_age_hours_blocks",
- "community": 115,
+ "community": 120,
"norm_label": "test_min_age_hours_blocks()"
},
{
@@ -27891,7 +28935,7 @@
"source_file": "tests/unit/sync/test_cleanup.py",
"source_location": "L90",
"id": "sync_test_cleanup_test_remote_stat_failure_blocks",
- "community": 115,
+ "community": 120,
"norm_label": "test_remote_stat_failure_blocks()"
},
{
@@ -27900,7 +28944,7 @@
"source_file": "tests/unit/sync/test_cleanup.py",
"source_location": "L102",
"id": "sync_test_cleanup_test_recent_revocation_blocks",
- "community": 115,
+ "community": 120,
"norm_label": "test_recent_revocation_blocks()"
},
{
@@ -27909,7 +28953,7 @@
"source_file": "tests/unit/sync/test_cleanup.py",
"source_location": "L124",
"id": "sync_test_cleanup_test_old_revocation_does_not_block",
- "community": 115,
+ "community": 120,
"norm_label": "test_old_revocation_does_not_block()"
},
{
@@ -27918,7 +28962,7 @@
"source_file": "tests/unit/sync/test_cleanup.py",
"source_location": "L145",
"id": "sync_test_cleanup_test_missing_verified_at_blocks",
- "community": 115,
+ "community": 120,
"norm_label": "test_missing_verified_at_blocks()"
},
{
@@ -27927,7 +28971,7 @@
"source_file": "tests/unit/sync/test_cleanup.py",
"source_location": "L157",
"id": "sync_test_cleanup_test_has_recent_revocation_with_malformed_timestamp_is_recent",
- "community": 115,
+ "community": 120,
"norm_label": "test_has_recent_revocation_with_malformed_timestamp_is_recent()"
},
{
@@ -27936,7 +28980,7 @@
"source_file": "tests/unit/sync/test_cleanup.py",
"source_location": "L172",
"id": "sync_test_cleanup_test_has_recent_revocation_ignores_non_tombstones",
- "community": 115,
+ "community": 120,
"norm_label": "test_has_recent_revocation_ignores_non_tombstones()"
},
{
@@ -27945,7 +28989,7 @@
"source_file": "tests/unit/sync/test_cleanup.py",
"source_location": "L1",
"id": "sync_test_cleanup_rationale_1",
- "community": 115,
+ "community": 120,
"norm_label": "tests for ``exlab_wizard.sync.cleanup``. backend spec \u00a77.1.6. each interlock mu"
},
{
@@ -27954,7 +28998,7 @@
"source_file": "tests/unit/sync/test_cleanup.py",
"source_location": "L54",
"id": "sync_test_cleanup_rationale_54",
- "community": 115,
+ "community": 120,
"norm_label": "happy path: cleanup is allowed."
},
{
@@ -27963,7 +29007,7 @@
"source_file": "tests/unit/sync/test_cleanup.py",
"source_location": "L66",
"id": "sync_test_cleanup_rationale_66",
- "community": 115,
+ "community": 120,
"norm_label": "failing the verify-passes threshold blocks cleanup."
},
{
@@ -27972,7 +29016,7 @@
"source_file": "tests/unit/sync/test_cleanup.py",
"source_location": "L78",
"id": "sync_test_cleanup_rationale_78",
- "community": 115,
+ "community": 120,
"norm_label": "a verify that happened too recently blocks cleanup."
},
{
@@ -27981,7 +29025,7 @@
"source_file": "tests/unit/sync/test_cleanup.py",
"source_location": "L91",
"id": "sync_test_cleanup_rationale_91",
- "community": 115,
+ "community": 120,
"norm_label": "an unreachable nas blocks cleanup."
},
{
@@ -27990,7 +29034,7 @@
"source_file": "tests/unit/sync/test_cleanup.py",
"source_location": "L103",
"id": "sync_test_cleanup_rationale_103",
- "community": 115,
+ "community": 120,
"norm_label": "a tombstone written within ``min_age_hours`` blocks cleanup."
},
{
@@ -27999,7 +29043,7 @@
"source_file": "tests/unit/sync/test_cleanup.py",
"source_location": "L146",
"id": "sync_test_cleanup_rationale_146",
- "community": 115,
+ "community": 120,
"norm_label": "a verified_at column missing or malformed blocks cleanup."
},
{
@@ -28008,7 +29052,7 @@
"source_file": "tests/unit/sync/test_cleanup.py",
"source_location": "L158",
"id": "sync_test_cleanup_rationale_158",
- "community": 115,
+ "community": 120,
"norm_label": "a malformed ``recorded_at`` is treated as recent (fail-safe)."
},
{
@@ -28017,7 +29061,7 @@
"source_file": "tests/unit/sync/test_cleanup.py",
"source_location": "L173",
"id": "sync_test_cleanup_rationale_173",
- "community": 115,
+ "community": 120,
"norm_label": "an override entry without ``revoked: true`` is ignored."
},
{
@@ -28026,7 +29070,7 @@
"source_file": "tests/unit/sync/__init__.py",
"source_location": "L1",
"id": "tests_unit_sync_init_py",
- "community": 445,
+ "community": 482,
"norm_label": "__init__.py"
},
{
@@ -28035,7 +29079,7 @@
"source_file": "src/exlab_wizard/sync/__init__.py",
"source_location": "L1",
"id": "sync_init_rationale_1",
- "community": 445,
+ "community": 482,
"norm_label": "sync package. backend spec \u00a77. public re-exports for the nas sync subsystem. ca"
},
{
@@ -28044,7 +29088,7 @@
"source_file": "tests/unit/sync/test_manifest.py",
"source_location": "L1",
"id": "tests_unit_sync_test_manifest_py",
- "community": 110,
+ "community": 115,
"norm_label": "test_manifest.py"
},
{
@@ -28053,7 +29097,7 @@
"source_file": "tests/unit/sync/test_manifest.py",
"source_location": "L12",
"id": "sync_test_manifest_test_parse_drops_dirs_and_keys_by_path",
- "community": 110,
+ "community": 115,
"norm_label": "test_parse_drops_dirs_and_keys_by_path()"
},
{
@@ -28062,7 +29106,7 @@
"source_file": "tests/unit/sync/test_manifest.py",
"source_location": "L20",
"id": "sync_test_manifest_test_parse_strips_prefix",
- "community": 110,
+ "community": 115,
"norm_label": "test_parse_strips_prefix()"
},
{
@@ -28071,7 +29115,7 @@
"source_file": "tests/unit/sync/test_manifest.py",
"source_location": "L26",
"id": "sync_test_manifest_test_parse_empty_and_malformed",
- "community": 110,
+ "community": 115,
"norm_label": "test_parse_empty_and_malformed()"
},
{
@@ -28080,7 +29124,7 @@
"source_file": "tests/unit/sync/test_manifest.py",
"source_location": "L32",
"id": "sync_test_manifest_test_manifest_size_match_helper",
- "community": 110,
+ "community": 115,
"norm_label": "test_manifest_size_match_helper()"
},
{
@@ -28089,7 +29133,7 @@
"source_file": "tests/unit/sync/test_manifest.py",
"source_location": "L39",
"id": "sync_test_manifest_test_manifest_matches_size_and_mtime_within_tolerance",
- "community": 110,
+ "community": 115,
"norm_label": "test_manifest_matches_size_and_mtime_within_tolerance()"
},
{
@@ -28098,7 +29142,7 @@
"source_file": "tests/unit/sync/test_manifest.py",
"source_location": "L50",
"id": "sync_test_manifest_test_manifest_to_epoch_handles_fractional_and_z",
- "community": 110,
+ "community": 115,
"norm_label": "test_manifest_to_epoch_handles_fractional_and_z()"
},
{
@@ -28107,7 +29151,7 @@
"source_file": "tests/unit/sync/test_manifest.py",
"source_location": "L58",
"id": "sync_test_manifest_test_manifest_matches_false_when_modtime_unparseable",
- "community": 110,
+ "community": 115,
"norm_label": "test_manifest_matches_false_when_modtime_unparseable()"
},
{
@@ -28116,7 +29160,7 @@
"source_file": "tests/unit/sync/test_manifest.py",
"source_location": "L67",
"id": "sync_test_manifest_test_parse_non_list_json_yields_empty",
- "community": 110,
+ "community": 115,
"norm_label": "test_parse_non_list_json_yields_empty()"
},
{
@@ -28125,7 +29169,7 @@
"source_file": "tests/unit/sync/test_manifest.py",
"source_location": "L73",
"id": "sync_test_manifest_test_parse_skips_rows_with_empty_path",
- "community": 110,
+ "community": 115,
"norm_label": "test_parse_skips_rows_with_empty_path()"
},
{
@@ -28134,7 +29178,7 @@
"source_file": "tests/unit/sync/test_manifest.py",
"source_location": "L83",
"id": "sync_test_manifest_test_parse_skips_rows_with_non_numeric_size",
- "community": 110,
+ "community": 115,
"norm_label": "test_parse_skips_rows_with_non_numeric_size()"
},
{
@@ -28143,7 +29187,7 @@
"source_file": "tests/unit/sync/test_queue.py",
"source_location": "L1",
"id": "tests_unit_sync_test_queue_py",
- "community": 67,
+ "community": 122,
"norm_label": "test_queue.py"
},
{
@@ -28152,7 +29196,7 @@
"source_file": "tests/unit/sync/test_queue.py",
"source_location": "L26",
"id": "sync_test_queue_queue",
- "community": 67,
+ "community": 264,
"norm_label": "queue()"
},
{
@@ -28161,7 +29205,7 @@
"source_file": "tests/unit/sync/test_queue.py",
"source_location": "L35",
"id": "sync_test_queue_test_insert_creates_queued_row",
- "community": 67,
+ "community": 122,
"norm_label": "test_insert_creates_queued_row()"
},
{
@@ -28170,7 +29214,7 @@
"source_file": "tests/unit/sync/test_queue.py",
"source_location": "L45",
"id": "sync_test_queue_test_insert_unique_constraint",
- "community": 67,
+ "community": 122,
"norm_label": "test_insert_unique_constraint()"
},
{
@@ -28179,7 +29223,7 @@
"source_file": "tests/unit/sync/test_queue.py",
"source_location": "L52",
"id": "sync_test_queue_test_files_column_round_trips",
- "community": 67,
+ "community": 122,
"norm_label": "test_files_column_round_trips()"
},
{
@@ -28188,7 +29232,7 @@
"source_file": "tests/unit/sync/test_queue.py",
"source_location": "L62",
"id": "sync_test_queue_test_files_column_defaults_to_empty",
- "community": 67,
+ "community": 122,
"norm_label": "test_files_column_defaults_to_empty()"
},
{
@@ -28197,7 +29241,7 @@
"source_file": "tests/unit/sync/test_queue.py",
"source_location": "L71",
"id": "sync_test_queue_test_requeue_with_files_resets_terminal_job",
- "community": 67,
+ "community": 122,
"norm_label": "test_requeue_with_files_resets_terminal_job()"
},
{
@@ -28206,7 +29250,7 @@
"source_file": "tests/unit/sync/test_queue.py",
"source_location": "L83",
"id": "sync_test_queue_test_get_by_id_and_run_path",
- "community": 67,
+ "community": 122,
"norm_label": "test_get_by_id_and_run_path()"
},
{
@@ -28215,7 +29259,7 @@
"source_file": "tests/unit/sync/test_queue.py",
"source_location": "L92",
"id": "sync_test_queue_test_get_missing_returns_none",
- "community": 67,
+ "community": 122,
"norm_label": "test_get_missing_returns_none()"
},
{
@@ -28224,7 +29268,7 @@
"source_file": "tests/unit/sync/test_queue.py",
"source_location": "L97",
"id": "sync_test_queue_test_transition_forward",
- "community": 67,
+ "community": 122,
"norm_label": "test_transition_forward()"
},
{
@@ -28233,7 +29277,7 @@
"source_file": "tests/unit/sync/test_queue.py",
"source_location": "L106",
"id": "sync_test_queue_test_transition_unknown_raises",
- "community": 67,
+ "community": 122,
"norm_label": "test_transition_unknown_raises()"
},
{
@@ -28242,7 +29286,7 @@
"source_file": "tests/unit/sync/test_queue.py",
"source_location": "L111",
"id": "sync_test_queue_test_transition_increments_verify_passes",
- "community": 67,
+ "community": 122,
"norm_label": "test_transition_increments_verify_passes()"
},
{
@@ -28251,7 +29295,7 @@
"source_file": "tests/unit/sync/test_queue.py",
"source_location": "L123",
"id": "sync_test_queue_test_record_failure_increments_attempts",
- "community": 67,
+ "community": 122,
"norm_label": "test_record_failure_increments_attempts()"
},
{
@@ -28260,7 +29304,7 @@
"source_file": "tests/unit/sync/test_queue.py",
"source_location": "L132",
"id": "sync_test_queue_test_record_failure_terminal",
- "community": 67,
+ "community": 122,
"norm_label": "test_record_failure_terminal()"
},
{
@@ -28269,7 +29313,7 @@
"source_file": "tests/unit/sync/test_queue.py",
"source_location": "L139",
"id": "sync_test_queue_test_record_failure_terminal_after_max_attempts",
- "community": 67,
+ "community": 122,
"norm_label": "test_record_failure_terminal_after_max_attempts()"
},
{
@@ -28278,7 +29322,7 @@
"source_file": "tests/unit/sync/test_queue.py",
"source_location": "L148",
"id": "sync_test_queue_test_compute_next_attempt_at_uses_schedule",
- "community": 313,
+ "community": 265,
"norm_label": "test_compute_next_attempt_at_uses_schedule()"
},
{
@@ -28287,7 +29331,7 @@
"source_file": "tests/unit/sync/test_queue.py",
"source_location": "L158",
"id": "sync_test_queue_test_compute_next_attempt_at_out_of_range",
- "community": 313,
+ "community": 265,
"norm_label": "test_compute_next_attempt_at_out_of_range()"
},
{
@@ -28296,7 +29340,7 @@
"source_file": "tests/unit/sync/test_queue.py",
"source_location": "L164",
"id": "sync_test_queue_test_persistence_across_reinit",
- "community": 67,
+ "community": 264,
"norm_label": "test_persistence_across_reinit()"
},
{
@@ -28305,7 +29349,7 @@
"source_file": "tests/unit/sync/test_queue.py",
"source_location": "L180",
"id": "sync_test_queue_test_init_replays_running_to_queued",
- "community": 67,
+ "community": 264,
"norm_label": "test_init_replays_running_to_queued()"
},
{
@@ -28314,7 +29358,7 @@
"source_file": "tests/unit/sync/test_queue.py",
"source_location": "L197",
"id": "sync_test_queue_test_list_in_state_returns_only_matching",
- "community": 67,
+ "community": 122,
"norm_label": "test_list_in_state_returns_only_matching()"
},
{
@@ -28323,7 +29367,7 @@
"source_file": "tests/unit/sync/test_queue.py",
"source_location": "L207",
"id": "sync_test_queue_test_list_all_orders_by_enqueued_at",
- "community": 67,
+ "community": 122,
"norm_label": "test_list_all_orders_by_enqueued_at()"
},
{
@@ -28332,7 +29376,7 @@
"source_file": "tests/unit/sync/test_queue.py",
"source_location": "L215",
"id": "sync_test_queue_test_reset_to_queued_clears_attempts",
- "community": 67,
+ "community": 122,
"norm_label": "test_reset_to_queued_clears_attempts()"
},
{
@@ -28341,7 +29385,7 @@
"source_file": "tests/unit/sync/test_queue.py",
"source_location": "L224",
"id": "sync_test_queue_test_reset_to_queued_unknown_raises",
- "community": 67,
+ "community": 122,
"norm_label": "test_reset_to_queued_unknown_raises()"
},
{
@@ -28350,7 +29394,7 @@
"source_file": "tests/unit/sync/test_queue.py",
"source_location": "L229",
"id": "sync_test_queue_test_record_failure_unknown_raises",
- "community": 67,
+ "community": 122,
"norm_label": "test_record_failure_unknown_raises()"
},
{
@@ -28359,7 +29403,7 @@
"source_file": "tests/unit/sync/test_queue.py",
"source_location": "L234",
"id": "sync_test_queue_test_delete_removes_row",
- "community": 67,
+ "community": 122,
"norm_label": "test_delete_removes_row()"
},
{
@@ -28368,7 +29412,7 @@
"source_file": "tests/unit/sync/test_queue.py",
"source_location": "L240",
"id": "sync_test_queue_test_is_terminal_classifies_states",
- "community": 67,
+ "community": 122,
"norm_label": "test_is_terminal_classifies_states()"
},
{
@@ -28377,7 +29421,7 @@
"source_file": "tests/unit/sync/test_queue.py",
"source_location": "L247",
"id": "sync_test_queue_test_init_required_before_use",
- "community": 67,
+ "community": 264,
"norm_label": "test_init_required_before_use()"
},
{
@@ -28386,7 +29430,7 @@
"source_file": "tests/unit/sync/test_queue.py",
"source_location": "L254",
"id": "sync_test_queue_test_close_is_idempotent",
- "community": 67,
+ "community": 264,
"norm_label": "test_close_is_idempotent()"
},
{
@@ -28395,7 +29439,7 @@
"source_file": "tests/unit/sync/test_queue.py",
"source_location": "L1",
"id": "sync_test_queue_rationale_1",
- "community": 67,
+ "community": 122,
"norm_label": "tests for ``exlab_wizard.sync.queue``. covers the durable sqlite-backed sync-jo"
},
{
@@ -28404,7 +29448,7 @@
"source_file": "tests/unit/sync/test_queue.py",
"source_location": "L36",
"id": "sync_test_queue_rationale_36",
- "community": 67,
+ "community": 122,
"norm_label": "``insert`` produces a queued row with a generated uuid job id."
},
{
@@ -28413,7 +29457,7 @@
"source_file": "tests/unit/sync/test_queue.py",
"source_location": "L46",
"id": "sync_test_queue_rationale_46",
- "community": 67,
+ "community": 122,
"norm_label": "two inserts on the same run_path violate unique."
},
{
@@ -28422,7 +29466,7 @@
"source_file": "tests/unit/sync/test_queue.py",
"source_location": "L53",
"id": "sync_test_queue_rationale_53",
- "community": 67,
+ "community": 122,
"norm_label": "the per-file ``files`` list round-trips through insert and read."
},
{
@@ -28431,7 +29475,7 @@
"source_file": "tests/unit/sync/test_queue.py",
"source_location": "L63",
"id": "sync_test_queue_rationale_63",
- "community": 67,
+ "community": 122,
"norm_label": "a job inserted without ``files`` reads back as the empty 'whole run' tuple."
},
{
@@ -28440,7 +29484,7 @@
"source_file": "tests/unit/sync/test_queue.py",
"source_location": "L72",
"id": "sync_test_queue_rationale_72",
- "community": 67,
+ "community": 122,
"norm_label": "``requeue_with_files`` re-arms a terminal job in queued with a new subset."
},
{
@@ -28449,7 +29493,7 @@
"source_file": "tests/unit/sync/test_queue.py",
"source_location": "L149",
"id": "sync_test_queue_rationale_149",
- "community": 313,
+ "community": 265,
"norm_label": "the 1st through 5th attempts use the documented backoff sequence."
},
{
@@ -28458,7 +29502,7 @@
"source_file": "tests/unit/sync/test_queue.py",
"source_location": "L159",
"id": "sync_test_queue_rationale_159",
- "community": 313,
+ "community": 265,
"norm_label": "attempts <1 or >max_attempts yield ``none``."
},
{
@@ -28467,7 +29511,7 @@
"source_file": "tests/unit/sync/test_queue.py",
"source_location": "L165",
"id": "sync_test_queue_rationale_165",
- "community": 67,
+ "community": 264,
"norm_label": "a queue rebuilt against the same db file sees the prior rows."
},
{
@@ -28476,7 +29520,7 @@
"source_file": "tests/unit/sync/test_queue.py",
"source_location": "L181",
"id": "sync_test_queue_rationale_181",
- "community": 67,
+ "community": 264,
"norm_label": "a running row from a prior process is downgraded to queued on restart."
},
{
@@ -28485,7 +29529,7 @@
"source_file": "tests/unit/sync/test_queue.py",
"source_location": "L248",
"id": "sync_test_queue_rationale_248",
- "community": 67,
+ "community": 264,
"norm_label": "operations without init() raise a clear runtimeerror."
},
{
@@ -28494,7 +29538,7 @@
"source_file": "tests/unit/sync/test_nas_client.py",
"source_location": "L1",
"id": "tests_unit_sync_test_nas_client_py",
- "community": 18,
+ "community": 8,
"norm_label": "test_nas_client.py"
},
{
@@ -28503,7 +29547,7 @@
"source_file": "tests/unit/sync/test_nas_client.py",
"source_location": "L62",
"id": "sync_test_nas_client_build_config",
- "community": 18,
+ "community": 8,
"norm_label": "_build_config()"
},
{
@@ -28512,7 +29556,7 @@
"source_file": "tests/unit/sync/test_nas_client.py",
"source_location": "L86",
"id": "sync_test_nas_client_make_creation",
- "community": 18,
+ "community": 8,
"norm_label": "_make_creation()"
},
{
@@ -28521,7 +29565,7 @@
"source_file": "tests/unit/sync/test_nas_client.py",
"source_location": "L106",
"id": "sync_test_nas_client_populate_run",
- "community": 18,
+ "community": 8,
"norm_label": "_populate_run()"
},
{
@@ -28530,7 +29574,7 @@
"source_file": "tests/unit/sync/test_nas_client.py",
"source_location": "L119",
"id": "sync_test_nas_client_make_push_factory",
- "community": 18,
+ "community": 8,
"norm_label": "_make_push_factory()"
},
{
@@ -28539,7 +29583,7 @@
"source_file": "tests/unit/sync/test_nas_client.py",
"source_location": "L136",
"id": "sync_test_nas_client_writer",
- "community": 28,
+ "community": 8,
"norm_label": "writer()"
},
{
@@ -28548,7 +29592,7 @@
"source_file": "tests/unit/sync/test_nas_client.py",
"source_location": "L145",
"id": "sync_test_nas_client_test_enqueue_blocks_run_with_hard_finding_no_override",
- "community": 18,
+ "community": 8,
"norm_label": "test_enqueue_blocks_run_with_hard_finding_no_override()"
},
{
@@ -28557,7 +29601,7 @@
"source_file": "tests/unit/sync/test_nas_client.py",
"source_location": "L176",
"id": "sync_test_nas_client_test_enqueue_clean_run_creates_queued_row",
- "community": 18,
+ "community": 8,
"norm_label": "test_enqueue_clean_run_creates_queued_row()"
},
{
@@ -28566,7 +29610,7 @@
"source_file": "tests/unit/sync/test_nas_client.py",
"source_location": "L206",
"id": "sync_test_nas_client_test_enqueue_with_active_override_unblocks",
- "community": 18,
+ "community": 8,
"norm_label": "test_enqueue_with_active_override_unblocks()"
},
{
@@ -28575,7 +29619,7 @@
"source_file": "tests/unit/sync/test_nas_client.py",
"source_location": "L254",
"id": "sync_test_nas_client_test_status_returns_none_when_no_job",
- "community": 18,
+ "community": 8,
"norm_label": "test_status_returns_none_when_no_job()"
},
{
@@ -28584,7 +29628,7 @@
"source_file": "tests/unit/sync/test_nas_client.py",
"source_location": "L275",
"id": "sync_test_nas_client_test_retry_resets_failed_to_queued",
- "community": 18,
+ "community": 8,
"norm_label": "test_retry_resets_failed_to_queued()"
},
{
@@ -28593,7 +29637,7 @@
"source_file": "tests/unit/sync/test_nas_client.py",
"source_location": "L310",
"id": "sync_test_nas_client_test_force_verify_returns_self_consistent",
- "community": 18,
+ "community": 8,
"norm_label": "test_force_verify_returns_self_consistent()"
},
{
@@ -28602,7 +29646,7 @@
"source_file": "tests/unit/sync/test_nas_client.py",
"source_location": "L334",
"id": "sync_test_nas_client_test_worker_drives_to_verified_and_marks_synced",
- "community": 18,
+ "community": 8,
"norm_label": "test_worker_drives_to_verified_and_marks_synced()"
},
{
@@ -28611,7 +29655,7 @@
"source_file": "tests/unit/sync/test_nas_client.py",
"source_location": "L377",
"id": "sync_test_nas_client_test_routine_reconcile_marks_synced_from_lsjson",
- "community": 18,
+ "community": 8,
"norm_label": "test_routine_reconcile_marks_synced_from_lsjson()"
},
{
@@ -28620,7 +29664,7 @@
"source_file": "tests/unit/sync/test_nas_client.py",
"source_location": "L439",
"id": "sync_test_nas_client_test_routine_reconcile_requeues_when_remote_file_missing",
- "community": 18,
+ "community": 8,
"norm_label": "test_routine_reconcile_requeues_when_remote_file_missing()"
},
{
@@ -28629,7 +29673,7 @@
"source_file": "tests/unit/sync/test_nas_client.py",
"source_location": "L496",
"id": "sync_test_nas_client_test_worker_terminal_failed_on_auth_error",
- "community": 18,
+ "community": 8,
"norm_label": "test_worker_terminal_failed_on_auth_error()"
},
{
@@ -28638,7 +29682,7 @@
"source_file": "tests/unit/sync/test_nas_client.py",
"source_location": "L522",
"id": "sync_test_nas_client_test_enqueue_existing_failed_resets_to_queued",
- "community": 18,
+ "community": 8,
"norm_label": "test_enqueue_existing_failed_resets_to_queued()"
},
{
@@ -28647,7 +29691,7 @@
"source_file": "tests/unit/sync/test_nas_client.py",
"source_location": "L555",
"id": "sync_test_nas_client_test_enqueue_idempotent_for_already_queued_row",
- "community": 18,
+ "community": 8,
"norm_label": "test_enqueue_idempotent_for_already_queued_row()"
},
{
@@ -28656,7 +29700,7 @@
"source_file": "tests/unit/sync/test_nas_client.py",
"source_location": "L589",
"id": "sync_test_nas_client_test_close_is_idempotent",
- "community": 18,
+ "community": 8,
"norm_label": "test_close_is_idempotent()"
},
{
@@ -28665,7 +29709,7 @@
"source_file": "tests/unit/sync/test_nas_client.py",
"source_location": "L607",
"id": "sync_test_nas_client_test_mark_cleaned_writes_cleaned_to_creation_json",
- "community": 18,
+ "community": 8,
"norm_label": "test_mark_cleaned_writes_cleaned_to_creation_json()"
},
{
@@ -28674,7 +29718,7 @@
"source_file": "tests/unit/sync/test_nas_client.py",
"source_location": "L629",
"id": "sync_test_nas_client_test_mark_cleaned_is_noop_when_creation_json_missing",
- "community": 18,
+ "community": 8,
"norm_label": "test_mark_cleaned_is_noop_when_creation_json_missing()"
},
{
@@ -28683,7 +29727,7 @@
"source_file": "tests/unit/sync/test_nas_client.py",
"source_location": "L656",
"id": "sync_test_nas_client_test_enqueue_with_files_inserts_subset",
- "community": 18,
+ "community": 8,
"norm_label": "test_enqueue_with_files_inserts_subset()"
},
{
@@ -28692,7 +29736,7 @@
"source_file": "tests/unit/sync/test_nas_client.py",
"source_location": "L684",
"id": "sync_test_nas_client_test_enqueue_requeues_terminal_job_with_new_files",
- "community": 18,
+ "community": 8,
"norm_label": "test_enqueue_requeues_terminal_job_with_new_files()"
},
{
@@ -28701,7 +29745,7 @@
"source_file": "tests/unit/sync/test_nas_client.py",
"source_location": "L719",
"id": "sync_test_nas_client_test_enqueue_noops_active_job_with_new_files",
- "community": 18,
+ "community": 8,
"norm_label": "test_enqueue_noops_active_job_with_new_files()"
},
{
@@ -28710,7 +29754,7 @@
"source_file": "tests/unit/sync/test_nas_client.py",
"source_location": "L756",
"id": "sync_test_nas_client_test_apply_config_swaps_equipment_map",
- "community": 18,
+ "community": 8,
"norm_label": "test_apply_config_swaps_equipment_map()"
},
{
@@ -28719,7 +29763,7 @@
"source_file": "tests/unit/sync/test_nas_client.py",
"source_location": "L790",
"id": "sync_test_nas_client_client_for_target_test",
- "community": 18,
+ "community": 8,
"norm_label": "_client_for_target_test()"
},
{
@@ -28746,7 +29790,7 @@
"source_file": "tests/unit/sync/test_nas_client.py",
"source_location": "L853",
"id": "sync_test_nas_client_test_driver_for_stage_mode_uses_staging_perf",
- "community": 0,
+ "community": 8,
"norm_label": "test_driver_for_stage_mode_uses_staging_perf()"
},
{
@@ -28755,7 +29799,7 @@
"source_file": "tests/unit/sync/test_nas_client.py",
"source_location": "L903",
"id": "sync_test_nas_client_make_recording_push_factory",
- "community": 18,
+ "community": 8,
"norm_label": "_make_recording_push_factory()"
},
{
@@ -28764,7 +29808,7 @@
"source_file": "tests/unit/sync/test_nas_client.py",
"source_location": "L925",
"id": "sync_test_nas_client_test_drive_job_bandwidth_comes_from_nas_block",
- "community": 18,
+ "community": 8,
"norm_label": "test_drive_job_bandwidth_comes_from_nas_block()"
},
{
@@ -28773,7 +29817,7 @@
"source_file": "tests/unit/sync/test_nas_client.py",
"source_location": "L1",
"id": "sync_test_nas_client_rationale_1",
- "community": 18,
+ "community": 8,
"norm_label": "unit tests for ``exlab_wizard.sync.nas_client.nassyncclient``. backend spec \u00a77."
},
{
@@ -28782,7 +29826,7 @@
"source_file": "tests/unit/sync/test_nas_client.py",
"source_location": "L107",
"id": "sync_test_nas_client_rationale_107",
- "community": 18,
+ "community": 8,
"norm_label": "build a clean run directory with a creation.json under eq1/proj-0042/."
},
{
@@ -28791,7 +29835,7 @@
"source_file": "tests/unit/sync/test_nas_client.py",
"source_location": "L122",
"id": "sync_test_nas_client_rationale_122",
- "community": 18,
+ "community": 8,
"norm_label": "a push callable factory that yields deterministic outcomes for tests."
},
{
@@ -28800,7 +29844,7 @@
"source_file": "tests/unit/sync/test_nas_client.py",
"source_location": "L148",
"id": "sync_test_nas_client_rationale_148",
- "community": 18,
+ "community": 8,
"norm_label": "a run path containing ```` is gated and not queued."
},
{
@@ -28809,7 +29853,7 @@
"source_file": "tests/unit/sync/test_nas_client.py",
"source_location": "L209",
"id": "sync_test_nas_client_rationale_209",
- "community": 18,
+ "community": 8,
"norm_label": "a run with placeholder findings + matching active overrides is queued."
},
{
@@ -28818,7 +29862,7 @@
"source_file": "tests/unit/sync/test_nas_client.py",
"source_location": "L337",
"id": "sync_test_nas_client_rationale_337",
- "community": 18,
+ "community": 8,
"norm_label": "a successful push -> awaiting_verify -> verified -> sync_status='synced'."
},
{
@@ -28827,7 +29871,7 @@
"source_file": "tests/unit/sync/test_nas_client.py",
"source_location": "L380",
"id": "sync_test_nas_client_rationale_380",
- "community": 18,
+ "community": 8,
"norm_label": "the routine post-push path credits files via lsjson, not check --download."
},
{
@@ -28836,7 +29880,7 @@
"source_file": "tests/unit/sync/test_nas_client.py",
"source_location": "L442",
"id": "sync_test_nas_client_rationale_442",
- "community": 18,
+ "community": 8,
"norm_label": "a file absent from the lsjson listing leaves the job re-queued. the present"
},
{
@@ -28845,7 +29889,7 @@
"source_file": "tests/unit/sync/test_nas_client.py",
"source_location": "L525",
"id": "sync_test_nas_client_rationale_525",
- "community": 18,
+ "community": 8,
"norm_label": "re-enqueueing a failed row resets it back to queued."
},
{
@@ -28854,7 +29898,7 @@
"source_file": "tests/unit/sync/test_nas_client.py",
"source_location": "L558",
"id": "sync_test_nas_client_rationale_558",
- "community": 18,
+ "community": 8,
"norm_label": "enqueueing twice for the same path returns the same job id."
},
{
@@ -28863,7 +29907,7 @@
"source_file": "tests/unit/sync/test_nas_client.py",
"source_location": "L610",
"id": "sync_test_nas_client_rationale_610",
- "community": 18,
+ "community": 8,
"norm_label": "``_mark_cleaned`` flips ``creation.json.sync_status`` to ``\"cleaned\"``."
},
{
@@ -28872,7 +29916,7 @@
"source_file": "tests/unit/sync/test_nas_client.py",
"source_location": "L632",
"id": "sync_test_nas_client_rationale_632",
- "community": 18,
+ "community": 8,
"norm_label": "with ``retain_cache=false`` the cache dir is gone; ``_mark_cleaned`` no-ops."
},
{
@@ -28881,7 +29925,7 @@
"source_file": "tests/unit/sync/test_nas_client.py",
"source_location": "L657",
"id": "sync_test_nas_client_rationale_657",
- "community": 18,
+ "community": 8,
"norm_label": "``enqueue(run, files=[...])`` stores the subset on the queue row."
},
{
@@ -28890,7 +29934,7 @@
"source_file": "tests/unit/sync/test_nas_client.py",
"source_location": "L687",
"id": "sync_test_nas_client_rationale_687",
- "community": 18,
+ "community": 8,
"norm_label": "a terminal (failed) job is re-armed in queued with a fresh file subset."
},
{
@@ -28899,7 +29943,7 @@
"source_file": "tests/unit/sync/test_nas_client.py",
"source_location": "L722",
"id": "sync_test_nas_client_rationale_722",
- "community": 18,
+ "community": 8,
"norm_label": "an active (queued) job is left untouched when re-enqueued with new files."
},
{
@@ -28908,7 +29952,7 @@
"source_file": "tests/unit/sync/test_nas_client.py",
"source_location": "L757",
"id": "sync_test_nas_client_rationale_757",
- "community": 18,
+ "community": 8,
"norm_label": "a live config swap rebuilds the equipment lookup in place."
},
{
@@ -28935,7 +29979,7 @@
"source_file": "tests/unit/sync/test_nas_client.py",
"source_location": "L854",
"id": "sync_test_nas_client_rationale_854",
- "community": 0,
+ "community": 8,
"norm_label": "stage-mode driver picks up ``orchestrator.staging_perf`` while sharing ``nas"
},
{
@@ -28944,7 +29988,7 @@
"source_file": "tests/unit/sync/test_nas_client.py",
"source_location": "L907",
"id": "sync_test_nas_client_rationale_907",
- "community": 18,
+ "community": 8,
"norm_label": "return ``(factory, recorded_bwlimits)`` where the factory's push callable ap"
},
{
@@ -28953,7 +29997,7 @@
"source_file": "tests/unit/sync/test_nas_client.py",
"source_location": "L928",
"id": "sync_test_nas_client_rationale_928",
- "community": 18,
+ "community": 8,
"norm_label": "``_drive_job`` must derive its bandwidth cap from ``config.nas.bandwidth``."
},
{
@@ -28962,7 +30006,7 @@
"source_file": "tests/unit/sync/test_pre_sync_gate.py",
"source_location": "L1",
"id": "tests_unit_sync_test_pre_sync_gate_py",
- "community": 179,
+ "community": 189,
"norm_label": "test_pre_sync_gate.py"
},
{
@@ -28971,7 +30015,7 @@
"source_file": "tests/unit/sync/test_pre_sync_gate.py",
"source_location": "L28",
"id": "sync_test_pre_sync_gate_build_creation",
- "community": 179,
+ "community": 189,
"norm_label": "_build_creation()"
},
{
@@ -28980,7 +30024,7 @@
"source_file": "tests/unit/sync/test_pre_sync_gate.py",
"source_location": "L58",
"id": "sync_test_pre_sync_gate_validator",
- "community": 179,
+ "community": 189,
"norm_label": "validator()"
},
{
@@ -28989,7 +30033,7 @@
"source_file": "tests/unit/sync/test_pre_sync_gate.py",
"source_location": "L62",
"id": "sync_test_pre_sync_gate_test_clean_run_is_eligible",
- "community": 179,
+ "community": 189,
"norm_label": "test_clean_run_is_eligible()"
},
{
@@ -28998,7 +30042,7 @@
"source_file": "tests/unit/sync/test_pre_sync_gate.py",
"source_location": "L78",
"id": "sync_test_pre_sync_gate_test_hard_finding_blocks",
- "community": 179,
+ "community": 189,
"norm_label": "test_hard_finding_blocks()"
},
{
@@ -29007,7 +30051,7 @@
"source_file": "tests/unit/sync/test_pre_sync_gate.py",
"source_location": "L94",
"id": "sync_test_pre_sync_gate_test_active_override_unblocks",
- "community": 179,
+ "community": 189,
"norm_label": "test_active_override_unblocks()"
},
{
@@ -29016,7 +30060,7 @@
"source_file": "tests/unit/sync/test_pre_sync_gate.py",
"source_location": "L130",
"id": "sync_test_pre_sync_gate_test_revoked_override_does_not_unblock",
- "community": 179,
+ "community": 189,
"norm_label": "test_revoked_override_does_not_unblock()"
},
{
@@ -29025,7 +30069,7 @@
"source_file": "tests/unit/sync/test_pre_sync_gate.py",
"source_location": "L165",
"id": "sync_test_pre_sync_gate_test_soft_finding_does_not_block",
- "community": 179,
+ "community": 189,
"norm_label": "test_soft_finding_does_not_block()"
},
{
@@ -29034,7 +30078,7 @@
"source_file": "tests/unit/sync/test_pre_sync_gate.py",
"source_location": "L1",
"id": "sync_test_pre_sync_gate_rationale_1",
- "community": 179,
+ "community": 189,
"norm_label": "tests for ``exlab_wizard.sync.pre_sync_gate``. backend spec \u00a77.3. the pre-sync"
},
{
@@ -29043,7 +30087,7 @@
"source_file": "tests/unit/sync/test_pre_sync_gate.py",
"source_location": "L63",
"id": "sync_test_pre_sync_gate_rationale_63",
- "community": 179,
+ "community": 189,
"norm_label": "a creation with no validator findings is eligible for sync."
},
{
@@ -29052,7 +30096,7 @@
"source_file": "tests/unit/sync/test_pre_sync_gate.py",
"source_location": "L79",
"id": "sync_test_pre_sync_gate_rationale_79",
- "community": 179,
+ "community": 189,
"norm_label": "an unresolved-placeholder token in the path triggers a block."
},
{
@@ -29061,7 +30105,7 @@
"source_file": "tests/unit/sync/test_pre_sync_gate.py",
"source_location": "L95",
"id": "sync_test_pre_sync_gate_rationale_95",
- "community": 179,
+ "community": 189,
"norm_label": "an active override matching the finding's rule unblocks sync."
},
{
@@ -29070,7 +30114,7 @@
"source_file": "tests/unit/sync/test_pre_sync_gate.py",
"source_location": "L131",
"id": "sync_test_pre_sync_gate_rationale_131",
- "community": 179,
+ "community": 189,
"norm_label": "an override that has been revoked does not unblock sync."
},
{
@@ -29079,7 +30123,7 @@
"source_file": "tests/unit/sync/test_pre_sync_gate.py",
"source_location": "L166",
"id": "sync_test_pre_sync_gate_rationale_166",
- "community": 179,
+ "community": 189,
"norm_label": "a soft-tier finding (missing-required-field) does not block sync. the valid"
},
{
@@ -29088,7 +30132,7 @@
"source_file": "tests/unit/sync/_helpers.py",
"source_location": "L1",
"id": "tests_unit_sync_helpers_py",
- "community": 273,
+ "community": 1,
"norm_label": "_helpers.py"
},
{
@@ -29097,7 +30141,7 @@
"source_file": "tests/unit/sync/_helpers.py",
"source_location": "L45",
"id": "sync_helpers_read_files_from",
- "community": 273,
+ "community": 1,
"norm_label": "_read_files_from()"
},
{
@@ -29106,7 +30150,7 @@
"source_file": "tests/unit/sync/_helpers.py",
"source_location": "L56",
"id": "sync_helpers_walk_local",
- "community": 110,
+ "community": 115,
"norm_label": "_walk_local()"
},
{
@@ -29115,7 +30159,7 @@
"source_file": "tests/unit/sync/_helpers.py",
"source_location": "L79",
"id": "sync_helpers_local_lsjson_factory",
- "community": 12,
+ "community": 1,
"norm_label": "local_lsjson_factory()"
},
{
@@ -29124,7 +30168,7 @@
"source_file": "tests/unit/sync/_helpers.py",
"source_location": "L97",
"id": "sync_helpers_missing_one_lsjson_factory",
- "community": 273,
+ "community": 1,
"norm_label": "missing_one_lsjson_factory()"
},
{
@@ -29133,7 +30177,7 @@
"source_file": "tests/unit/sync/_helpers.py",
"source_location": "L118",
"id": "sync_helpers_local_check_factory",
- "community": 12,
+ "community": 1,
"norm_label": "local_check_factory()"
},
{
@@ -29142,7 +30186,7 @@
"source_file": "tests/unit/sync/_helpers.py",
"source_location": "L137",
"id": "sync_helpers_corrupt_one_check_factory",
- "community": 273,
+ "community": 1,
"norm_label": "corrupt_one_check_factory()"
},
{
@@ -29151,7 +30195,7 @@
"source_file": "tests/unit/sync/_helpers.py",
"source_location": "L1",
"id": "sync_helpers_rationale_1",
- "community": 273,
+ "community": 1,
"norm_label": "shared helpers for ``tests/unit/sync/`` test modules. kept under a leading-unde"
},
{
@@ -29160,7 +30204,7 @@
"source_file": "tests/unit/sync/_helpers.py",
"source_location": "L46",
"id": "sync_helpers_rationale_46",
- "community": 273,
+ "community": 1,
"norm_label": "read run-relative paths from a ``--files-from`` tempfile."
},
{
@@ -29169,7 +30213,7 @@
"source_file": "tests/unit/sync/_helpers.py",
"source_location": "L57",
"id": "sync_helpers_rationale_57",
- "community": 110,
+ "community": 115,
"norm_label": "build a perfect remote manifest from the local run subtree. each non-cache"
},
{
@@ -29178,7 +30222,7 @@
"source_file": "tests/unit/sync/_helpers.py",
"source_location": "L80",
"id": "sync_helpers_rationale_80",
- "community": 12,
+ "community": 1,
"norm_label": "lsjson factory whose closure mirrors the local subtree perfectly. returns a"
},
{
@@ -29187,7 +30231,7 @@
"source_file": "tests/unit/sync/_helpers.py",
"source_location": "L100",
"id": "sync_helpers_rationale_100",
- "community": 273,
+ "community": 1,
"norm_label": "lsjson factory whose closure omits ``missing_rel`` from the manifest. every"
},
{
@@ -29196,7 +30240,7 @@
"source_file": "tests/unit/sync/_helpers.py",
"source_location": "L119",
"id": "sync_helpers_rationale_119",
- "community": 12,
+ "community": 1,
"norm_label": "check factory whose closure declares every file equal. returns a closure co"
},
{
@@ -29205,7 +30249,7 @@
"source_file": "tests/unit/sync/_helpers.py",
"source_location": "L140",
"id": "sync_helpers_rationale_140",
- "community": 273,
+ "community": 1,
"norm_label": "check factory whose closure flags ``corrupt_rel`` as ``differ``. every othe"
},
{
@@ -29214,7 +30258,7 @@
"source_file": "tests/unit/sync/transports/test_run.py",
"source_location": "L1",
"id": "tests_unit_sync_transports_test_run_py",
- "community": 147,
+ "community": 167,
"norm_label": "test_run.py"
},
{
@@ -29223,7 +30267,7 @@
"source_file": "tests/unit/sync/transports/test_run.py",
"source_location": "L17",
"id": "transports_test_run_test_run_subprocess_returns_rc_and_streams",
- "community": 147,
+ "community": 167,
"norm_label": "test_run_subprocess_returns_rc_and_streams()"
},
{
@@ -29232,7 +30276,7 @@
"source_file": "tests/unit/sync/transports/test_run.py",
"source_location": "L26",
"id": "transports_test_run_test_run_subprocess_inherits_environment",
- "community": 147,
+ "community": 167,
"norm_label": "test_run_subprocess_inherits_environment()"
},
{
@@ -29241,7 +30285,7 @@
"source_file": "tests/unit/sync/transports/test_run.py",
"source_location": "L41",
"id": "transports_test_run_test_run_subprocess_logs_only_the_command",
- "community": 147,
+ "community": 167,
"norm_label": "test_run_subprocess_logs_only_the_command()"
},
{
@@ -29250,7 +30294,7 @@
"source_file": "tests/unit/sync/transports/test_run.py",
"source_location": "L1",
"id": "transports_test_run_rationale_1",
- "community": 147,
+ "community": 167,
"norm_label": "unit tests for ``exlab_wizard.sync.transports._run.run_subprocess``. rclone.con"
},
{
@@ -29259,7 +30303,7 @@
"source_file": "tests/unit/sync/transports/test_run.py",
"source_location": "L27",
"id": "transports_test_run_rationale_27",
- "community": 147,
+ "community": 167,
"norm_label": "the child inherits the parent's environment unchanged."
},
{
@@ -29268,7 +30312,7 @@
"source_file": "tests/unit/sync/transports/test_run.py",
"source_location": "L42",
"id": "transports_test_run_rationale_42",
- "community": 147,
+ "community": 167,
"norm_label": "the debug log carries the command line -- and no env block."
},
{
@@ -29277,7 +30321,7 @@
"source_file": "tests/unit/sync/transports/__init__.py",
"source_location": "L1",
"id": "tests_unit_sync_transports_init_py",
- "community": 532,
+ "community": 557,
"norm_label": "__init__.py"
},
{
@@ -29286,7 +30330,7 @@
"source_file": "tests/unit/logging/test_handlers.py",
"source_location": "L1",
"id": "tests_unit_logging_test_handlers_py",
- "community": 190,
+ "community": 196,
"norm_label": "test_handlers.py"
},
{
@@ -29295,7 +30339,7 @@
"source_file": "tests/unit/logging/test_handlers.py",
"source_location": "L29",
"id": "logging_test_handlers_reset_context",
- "community": 136,
+ "community": 144,
"norm_label": "_reset_context()"
},
{
@@ -29304,7 +30348,7 @@
"source_file": "tests/unit/logging/test_handlers.py",
"source_location": "L34",
"id": "logging_test_handlers_make_handler",
- "community": 190,
+ "community": 196,
"norm_label": "_make_handler()"
},
{
@@ -29313,7 +30357,7 @@
"source_file": "tests/unit/logging/test_handlers.py",
"source_location": "L41",
"id": "logging_test_handlers_make_record",
- "community": 190,
+ "community": 196,
"norm_label": "_make_record()"
},
{
@@ -29322,7 +30366,7 @@
"source_file": "tests/unit/logging/test_handlers.py",
"source_location": "L60",
"id": "logging_test_handlers_test_writes_to_equipment_scoped_path",
- "community": 190,
+ "community": 196,
"norm_label": "test_writes_to_equipment_scoped_path()"
},
{
@@ -29331,7 +30375,7 @@
"source_file": "tests/unit/logging/test_handlers.py",
"source_location": "L76",
"id": "logging_test_handlers_test_writes_to_separate_files_per_equipment",
- "community": 190,
+ "community": 196,
"norm_label": "test_writes_to_separate_files_per_equipment()"
},
{
@@ -29340,7 +30384,7 @@
"source_file": "tests/unit/logging/test_handlers.py",
"source_location": "L103",
"id": "logging_test_handlers_test_subsequent_emits_reuse_the_same_file_descriptor",
- "community": 190,
+ "community": 196,
"norm_label": "test_subsequent_emits_reuse_the_same_file_descriptor()"
},
{
@@ -29349,7 +30393,7 @@
"source_file": "tests/unit/logging/test_handlers.py",
"source_location": "L129",
"id": "logging_test_handlers_test_one_open_per_equipment_even_with_many_emits",
- "community": 190,
+ "community": 196,
"norm_label": "test_one_open_per_equipment_even_with_many_emits()"
},
{
@@ -29358,7 +30402,7 @@
"source_file": "tests/unit/logging/test_handlers.py",
"source_location": "L152",
"id": "logging_test_handlers_test_emit_without_equipment_id_writes_no_file",
- "community": 190,
+ "community": 196,
"norm_label": "test_emit_without_equipment_id_writes_no_file()"
},
{
@@ -29367,7 +30411,7 @@
"source_file": "tests/unit/logging/test_handlers.py",
"source_location": "L164",
"id": "logging_test_handlers_test_emit_with_explicit_none_equipment_skipped",
- "community": 190,
+ "community": 196,
"norm_label": "test_emit_with_explicit_none_equipment_skipped()"
},
{
@@ -29376,7 +30420,7 @@
"source_file": "tests/unit/logging/test_handlers.py",
"source_location": "L181",
"id": "logging_test_handlers_test_fsync_invoked_only_on_error_level",
- "community": 190,
+ "community": 196,
"norm_label": "test_fsync_invoked_only_on_error_level()"
},
{
@@ -29385,7 +30429,7 @@
"source_file": "tests/unit/logging/test_handlers.py",
"source_location": "L199",
"id": "logging_test_handlers_test_fsync_on_error_passes_correct_fd",
- "community": 190,
+ "community": 196,
"norm_label": "test_fsync_on_error_passes_correct_fd()"
},
{
@@ -29394,7 +30438,7 @@
"source_file": "tests/unit/logging/test_handlers.py",
"source_location": "L217",
"id": "logging_test_handlers_test_close_drains_cached_files",
- "community": 190,
+ "community": 196,
"norm_label": "test_close_drains_cached_files()"
},
{
@@ -29403,7 +30447,7 @@
"source_file": "tests/unit/logging/test_handlers.py",
"source_location": "L232",
"id": "logging_test_handlers_test_close_is_idempotent",
- "community": 190,
+ "community": 196,
"norm_label": "test_close_is_idempotent()"
},
{
@@ -29412,7 +30456,7 @@
"source_file": "tests/unit/logging/test_handlers.py",
"source_location": "L247",
"id": "logging_test_handlers_test_emit_routes_unexpected_exception_through_handle_error",
- "community": 190,
+ "community": 196,
"norm_label": "test_emit_routes_unexpected_exception_through_handle_error()"
},
{
@@ -29421,7 +30465,7 @@
"source_file": "tests/unit/logging/test_handlers.py",
"source_location": "L1",
"id": "logging_test_handlers_rationale_1",
- "community": 190,
+ "community": 196,
"norm_label": "tests for ``exlab_wizard.logging.handlers``. backend spec \u00a716.2.4 commits the e"
},
{
@@ -29430,7 +30474,7 @@
"source_file": "tests/unit/logging/test_handlers.py",
"source_location": "L30",
"id": "logging_test_handlers_rationale_30",
- "community": 136,
+ "community": 144,
"norm_label": "wipe the run-context vars between cases so handler tests are isolated."
},
{
@@ -29439,7 +30483,7 @@
"source_file": "tests/unit/logging/test_handlers.py",
"source_location": "L35",
"id": "logging_test_handlers_rationale_35",
- "community": 190,
+ "community": 196,
"norm_label": "construct a handler with a deterministic hostname for test paths."
},
{
@@ -29448,7 +30492,7 @@
"source_file": "tests/unit/logging/test_handlers.py",
"source_location": "L248",
"id": "logging_test_handlers_rationale_248",
- "community": 190,
+ "community": 196,
"norm_label": "the ``exception`` branch in :meth:`emit` is the stdlib handler-error contrac"
},
{
@@ -29457,7 +30501,7 @@
"source_file": "tests/unit/logging/__init__.py",
"source_location": "L1",
"id": "tests_unit_logging_init_py",
- "community": 533,
+ "community": 558,
"norm_label": "__init__.py"
},
{
@@ -29466,7 +30510,7 @@
"source_file": "tests/unit/logging/test_context.py",
"source_location": "L1",
"id": "tests_unit_logging_test_context_py",
- "community": 136,
+ "community": 144,
"norm_label": "test_context.py"
},
{
@@ -29475,7 +30519,7 @@
"source_file": "tests/unit/logging/test_context.py",
"source_location": "L31",
"id": "logging_test_context_reset_context",
- "community": 136,
+ "community": 144,
"norm_label": "_reset_context()"
},
{
@@ -29484,7 +30528,7 @@
"source_file": "tests/unit/logging/test_context.py",
"source_location": "L41",
"id": "logging_test_context_test_set_run_context_pushes_supplied_vars",
- "community": 136,
+ "community": 144,
"norm_label": "test_set_run_context_pushes_supplied_vars()"
},
{
@@ -29493,7 +30537,7 @@
"source_file": "tests/unit/logging/test_context.py",
"source_location": "L56",
"id": "logging_test_context_test_unsupplied_vars_are_unchanged",
- "community": 136,
+ "community": 144,
"norm_label": "test_unsupplied_vars_are_unchanged()"
},
{
@@ -29502,7 +30546,7 @@
"source_file": "tests/unit/logging/test_context.py",
"source_location": "L70",
"id": "logging_test_context_test_context_exit_restores_prior_values",
- "community": 136,
+ "community": 144,
"norm_label": "test_context_exit_restores_prior_values()"
},
{
@@ -29511,7 +30555,7 @@
"source_file": "tests/unit/logging/test_context.py",
"source_location": "L81",
"id": "logging_test_context_test_context_exit_clears_when_no_prior_value",
- "community": 136,
+ "community": 144,
"norm_label": "test_context_exit_clears_when_no_prior_value()"
},
{
@@ -29520,7 +30564,7 @@
"source_file": "tests/unit/logging/test_context.py",
"source_location": "L88",
"id": "logging_test_context_test_set_run_context_with_no_args_is_noop",
- "community": 136,
+ "community": 144,
"norm_label": "test_set_run_context_with_no_args_is_noop()"
},
{
@@ -29529,7 +30573,7 @@
"source_file": "tests/unit/logging/test_context.py",
"source_location": "L101",
"id": "logging_test_context_test_concurrent_asyncio_tasks_have_independent_contexts",
- "community": 136,
+ "community": 144,
"norm_label": "test_concurrent_asyncio_tasks_have_independent_contexts()"
},
{
@@ -29538,7 +30582,7 @@
"source_file": "tests/unit/logging/test_context.py",
"source_location": "L134",
"id": "logging_test_context_test_get_run_context_returns_snapshot_dict",
- "community": 136,
+ "community": 144,
"norm_label": "test_get_run_context_returns_snapshot_dict()"
},
{
@@ -29547,7 +30591,7 @@
"source_file": "tests/unit/logging/test_context.py",
"source_location": "L149",
"id": "logging_test_context_test_get_run_context_returns_all_keys_even_when_empty",
- "community": 136,
+ "community": 144,
"norm_label": "test_get_run_context_returns_all_keys_even_when_empty()"
},
{
@@ -29556,7 +30600,7 @@
"source_file": "tests/unit/logging/test_context.py",
"source_location": "L163",
"id": "logging_test_context_test_clear_run_context_resets_every_var",
- "community": 136,
+ "community": 144,
"norm_label": "test_clear_run_context_resets_every_var()"
},
{
@@ -29565,7 +30609,7 @@
"source_file": "tests/unit/logging/test_context.py",
"source_location": "L1",
"id": "logging_test_context_rationale_1",
- "community": 136,
+ "community": 144,
"norm_label": "tests for ``exlab_wizard.logging.context``. backend spec \u00a716.2.3 commits the pe"
},
{
@@ -29574,7 +30618,7 @@
"source_file": "tests/unit/logging/test_context.py",
"source_location": "L32",
"id": "logging_test_context_rationale_32",
- "community": 136,
+ "community": 144,
"norm_label": "wipe context vars before each test to prevent cross-test leakage."
},
{
@@ -29583,7 +30627,7 @@
"source_file": "tests/unit/logging/test_context.py",
"source_location": "L102",
"id": "logging_test_context_rationale_102",
- "community": 136,
+ "community": 144,
"norm_label": "two ``asyncio.gather``-ed tasks must not see each other's context. this is"
},
{
@@ -29592,7 +30636,7 @@
"source_file": "tests/unit/logging/test_manager.py",
"source_location": "L1",
"id": "tests_unit_logging_test_manager_py",
- "community": 29,
+ "community": 19,
"norm_label": "test_manager.py"
},
{
@@ -29601,7 +30645,7 @@
"source_file": "tests/unit/logging/test_manager.py",
"source_location": "L30",
"id": "logging_test_manager_isolate_central_log",
- "community": 29,
+ "community": 19,
"norm_label": "_isolate_central_log()"
},
{
@@ -29610,7 +30654,7 @@
"source_file": "tests/unit/logging/test_manager.py",
"source_location": "L50",
"id": "logging_test_manager_test_get_logger_importable_from_package",
- "community": 29,
+ "community": 19,
"norm_label": "test_get_logger_importable_from_package()"
},
{
@@ -29619,7 +30663,7 @@
"source_file": "tests/unit/logging/test_manager.py",
"source_location": "L56",
"id": "logging_test_manager_test_get_logger_importable_from_manager_module",
- "community": 29,
+ "community": 19,
"norm_label": "test_get_logger_importable_from_manager_module()"
},
{
@@ -29628,7 +30672,7 @@
"source_file": "tests/unit/logging/test_manager.py",
"source_location": "L62",
"id": "logging_test_manager_test_package_and_manager_export_the_same_callable",
- "community": 29,
+ "community": 19,
"norm_label": "test_package_and_manager_export_the_same_callable()"
},
{
@@ -29637,7 +30681,7 @@
"source_file": "tests/unit/logging/test_manager.py",
"source_location": "L69",
"id": "logging_test_manager_test_get_logger_returns_stdlib_logger_instance",
- "community": 29,
+ "community": 19,
"norm_label": "test_get_logger_returns_stdlib_logger_instance()"
},
{
@@ -29646,7 +30690,7 @@
"source_file": "tests/unit/logging/test_manager.py",
"source_location": "L76",
"id": "logging_test_manager_test_get_logger_sets_name_on_returned_logger",
- "community": 29,
+ "community": 19,
"norm_label": "test_get_logger_sets_name_on_returned_logger()"
},
{
@@ -29655,7 +30699,7 @@
"source_file": "tests/unit/logging/test_manager.py",
"source_location": "L83",
"id": "logging_test_manager_test_get_logger_is_idempotent_for_same_name",
- "community": 29,
+ "community": 19,
"norm_label": "test_get_logger_is_idempotent_for_same_name()"
},
{
@@ -29664,7 +30708,7 @@
"source_file": "tests/unit/logging/test_manager.py",
"source_location": "L93",
"id": "logging_test_manager_test_get_logger_returns_distinct_loggers_for_different_names",
- "community": 29,
+ "community": 19,
"norm_label": "test_get_logger_returns_distinct_loggers_for_different_names()"
},
{
@@ -29673,7 +30717,7 @@
"source_file": "tests/unit/logging/test_manager.py",
"source_location": "L103",
"id": "logging_test_manager_test_logging_package_all_contains_get_logger",
- "community": 29,
+ "community": 19,
"norm_label": "test_logging_package_all_contains_get_logger()"
},
{
@@ -29682,7 +30726,7 @@
"source_file": "tests/unit/logging/test_manager.py",
"source_location": "L112",
"id": "logging_test_manager_test_configure_logging_with_default_threshold_and_handlers",
- "community": 29,
+ "community": 19,
"norm_label": "test_configure_logging_with_default_threshold_and_handlers()"
},
{
@@ -29691,7 +30735,7 @@
"source_file": "tests/unit/logging/test_manager.py",
"source_location": "L121",
"id": "logging_test_manager_test_configure_logging_applies_config_level",
- "community": 29,
+ "community": 19,
"norm_label": "test_configure_logging_applies_config_level()"
},
{
@@ -29700,7 +30744,7 @@
"source_file": "tests/unit/logging/test_manager.py",
"source_location": "L128",
"id": "logging_test_manager_test_configure_logging_idempotent_does_not_accumulate_handlers",
- "community": 29,
+ "community": 19,
"norm_label": "test_configure_logging_idempotent_does_not_accumulate_handlers()"
},
{
@@ -29709,7 +30753,7 @@
"source_file": "tests/unit/logging/test_manager.py",
"source_location": "L143",
"id": "logging_test_manager_test_configure_logging_routes_records_through_queue_listener",
- "community": 29,
+ "community": 19,
"norm_label": "test_configure_logging_routes_records_through_queue_listener()"
},
{
@@ -29718,7 +30762,7 @@
"source_file": "tests/unit/logging/test_manager.py",
"source_location": "L154",
"id": "logging_test_manager_test_shutdown_logging_is_idempotent",
- "community": 29,
+ "community": 19,
"norm_label": "test_shutdown_logging_is_idempotent()"
},
{
@@ -29727,7 +30771,7 @@
"source_file": "tests/unit/logging/test_manager.py",
"source_location": "L161",
"id": "logging_test_manager_test_configure_logging_installs_central_rotating_file_handler",
- "community": 29,
+ "community": 19,
"norm_label": "test_configure_logging_installs_central_rotating_file_handler()"
},
{
@@ -29736,7 +30780,7 @@
"source_file": "tests/unit/logging/test_manager.py",
"source_location": "L176",
"id": "logging_test_manager_test_configure_logging_stderr_handler_is_warn_capped",
- "community": 29,
+ "community": 19,
"norm_label": "test_configure_logging_stderr_handler_is_warn_capped()"
},
{
@@ -29745,7 +30789,7 @@
"source_file": "tests/unit/logging/test_manager.py",
"source_location": "L192",
"id": "logging_test_manager_test_resolve_threshold_unknown_level_falls_back_to_info",
- "community": 29,
+ "community": 19,
"norm_label": "test_resolve_threshold_unknown_level_falls_back_to_info()"
},
{
@@ -29754,7 +30798,7 @@
"source_file": "tests/unit/logging/test_manager.py",
"source_location": "L207",
"id": "logging_test_manager_test_configure_logging_strips_pre_existing_queue_handler",
- "community": 29,
+ "community": 19,
"norm_label": "test_configure_logging_strips_pre_existing_queue_handler()"
},
{
@@ -29763,7 +30807,7 @@
"source_file": "tests/unit/logging/test_manager.py",
"source_location": "L228",
"id": "logging_test_manager_test_build_real_handlers_includes_equipment_handler_when_local_root_set",
- "community": 29,
+ "community": 19,
"norm_label": "test_build_real_handlers_includes_equipment_handler_when_local_root_set()"
},
{
@@ -29772,7 +30816,7 @@
"source_file": "tests/unit/logging/test_manager.py",
"source_location": "L1",
"id": "logging_test_manager_rationale_1",
- "community": 29,
+ "community": 19,
"norm_label": "tests for the logger factory + ``configure_logging`` in ``exlab_wizard.logging.m"
},
{
@@ -29781,7 +30825,7 @@
"source_file": "tests/unit/logging/test_manager.py",
"source_location": "L31",
"id": "logging_test_manager_rationale_31",
- "community": 29,
+ "community": 19,
"norm_label": "redirect ``os_central_log_path`` to ``tmp_path`` so manager tests don't writ"
},
{
@@ -29790,7 +30834,7 @@
"source_file": "tests/unit/logging/test_manager.py",
"source_location": "L113",
"id": "logging_test_manager_rationale_113",
- "community": 29,
+ "community": 19,
"norm_label": "first call with ``config=none`` installs the queue-handler chain at info."
},
{
@@ -29799,7 +30843,7 @@
"source_file": "tests/unit/logging/test_manager.py",
"source_location": "L122",
"id": "logging_test_manager_rationale_122",
- "community": 29,
+ "community": 19,
"norm_label": "``loggingconfig.level`` drives the root threshold (\u00a716.5)."
},
{
@@ -29808,7 +30852,7 @@
"source_file": "tests/unit/logging/test_manager.py",
"source_location": "L129",
"id": "logging_test_manager_rationale_129",
- "community": 29,
+ "community": 19,
"norm_label": "\u00a716.2.2: re-calling ``configure_logging`` tears down + rebuilds. the launch"
},
{
@@ -29817,7 +30861,7 @@
"source_file": "tests/unit/logging/test_manager.py",
"source_location": "L144",
"id": "logging_test_manager_rationale_144",
- "community": 29,
+ "community": 19,
"norm_label": "a logger.info() call in the configured handler chain produces a record that"
},
{
@@ -29826,7 +30870,7 @@
"source_file": "tests/unit/logging/test_manager.py",
"source_location": "L155",
"id": "logging_test_manager_rationale_155",
- "community": 29,
+ "community": 19,
"norm_label": "a second ``_shutdown_logging`` call must be a no-op (used by quit)."
},
{
@@ -29835,7 +30879,7 @@
"source_file": "tests/unit/logging/test_manager.py",
"source_location": "L162",
"id": "logging_test_manager_rationale_162",
- "community": 29,
+ "community": 19,
"norm_label": "the downstream handler chain must include a ``rotatingfilehandler`` against"
},
{
@@ -29844,7 +30888,7 @@
"source_file": "tests/unit/logging/test_manager.py",
"source_location": "L177",
"id": "logging_test_manager_rationale_177",
- "community": 29,
+ "community": 19,
"norm_label": "\u00a716.2.1: the stderr handler is capped at warn even when the global threshold"
},
{
@@ -29853,7 +30897,7 @@
"source_file": "tests/unit/logging/test_manager.py",
"source_location": "L193",
"id": "logging_test_manager_rationale_193",
- "community": 29,
+ "community": 19,
"norm_label": "a ``loggingconfig`` with a level that ``getlevelname`` doesn't know about de"
},
{
@@ -29862,7 +30906,7 @@
"source_file": "tests/unit/logging/test_manager.py",
"source_location": "L208",
"id": "logging_test_manager_rationale_208",
- "community": 29,
+ "community": 19,
"norm_label": "if a stray ``queuehandler`` is on the root logger before ``configure_logging"
},
{
@@ -29871,7 +30915,7 @@
"source_file": "tests/unit/logging/test_manager.py",
"source_location": "L231",
"id": "logging_test_manager_rationale_231",
- "community": 29,
+ "community": 19,
"norm_label": "when ``local_root`` is configured, the listener chain includes an :class:`eq"
},
{
@@ -29880,7 +30924,7 @@
"source_file": "tests/unit/logging/test_format.py",
"source_location": "L1",
"id": "tests_unit_logging_test_format_py",
- "community": 113,
+ "community": 123,
"norm_label": "test_format.py"
},
{
@@ -29889,7 +30933,7 @@
"source_file": "tests/unit/logging/test_format.py",
"source_location": "L21",
"id": "logging_test_format_reset_context",
- "community": 136,
+ "community": 144,
"norm_label": "_reset_context()"
},
{
@@ -29898,7 +30942,7 @@
"source_file": "tests/unit/logging/test_format.py",
"source_location": "L31",
"id": "logging_test_format_record",
- "community": 113,
+ "community": 123,
"norm_label": "_record()"
},
{
@@ -29907,7 +30951,7 @@
"source_file": "tests/unit/logging/test_format.py",
"source_location": "L56",
"id": "logging_test_format_test_renders_all_tags_when_full_context_set",
- "community": 113,
+ "community": 123,
"norm_label": "test_renders_all_tags_when_full_context_set()"
},
{
@@ -29916,7 +30960,7 @@
"source_file": "tests/unit/logging/test_format.py",
"source_location": "L74",
"id": "logging_test_format_test_omits_tags_when_their_context_var_is_unset",
- "community": 113,
+ "community": 123,
"norm_label": "test_omits_tags_when_their_context_var_is_unset()"
},
{
@@ -29925,7 +30969,7 @@
"source_file": "tests/unit/logging/test_format.py",
"source_location": "L84",
"id": "logging_test_format_test_emits_no_tags_when_context_is_empty",
- "community": 113,
+ "community": 123,
"norm_label": "test_emits_no_tags_when_context_is_empty()"
},
{
@@ -29934,7 +30978,7 @@
"source_file": "tests/unit/logging/test_format.py",
"source_location": "L90",
"id": "logging_test_format_test_level_field_is_left_padded_to_five_chars",
- "community": 113,
+ "community": 123,
"norm_label": "test_level_field_is_left_padded_to_five_chars()"
},
{
@@ -29943,7 +30987,7 @@
"source_file": "tests/unit/logging/test_format.py",
"source_location": "L111",
"id": "logging_test_format_test_timestamp_is_utc_iso_8601_with_z_suffix",
- "community": 113,
+ "community": 123,
"norm_label": "test_timestamp_is_utc_iso_8601_with_z_suffix()"
},
{
@@ -29952,7 +30996,7 @@
"source_file": "tests/unit/logging/test_format.py",
"source_location": "L122",
"id": "logging_test_format_test_message_with_format_args_is_rendered",
- "community": 113,
+ "community": 123,
"norm_label": "test_message_with_format_args_is_rendered()"
},
{
@@ -29961,7 +31005,7 @@
"source_file": "tests/unit/logging/test_format.py",
"source_location": "L143",
"id": "logging_test_format_test_redact_url_userinfo_password",
- "community": 113,
+ "community": 123,
"norm_label": "test_redact_url_userinfo_password()"
},
{
@@ -29970,7 +31014,7 @@
"source_file": "tests/unit/logging/test_format.py",
"source_location": "L147",
"id": "logging_test_format_test_redact_url_userinfo_password_with_punctuation",
- "community": 113,
+ "community": 123,
"norm_label": "test_redact_url_userinfo_password_with_punctuation()"
},
{
@@ -29979,7 +31023,7 @@
"source_file": "tests/unit/logging/test_format.py",
"source_location": "L154",
"id": "logging_test_format_test_redact_bearer_token",
- "community": 113,
+ "community": 123,
"norm_label": "test_redact_bearer_token()"
},
{
@@ -29988,7 +31032,7 @@
"source_file": "tests/unit/logging/test_format.py",
"source_location": "L158",
"id": "logging_test_format_test_redact_bearer_token_lowercase",
- "community": 113,
+ "community": 123,
"norm_label": "test_redact_bearer_token_lowercase()"
},
{
@@ -29997,7 +31041,7 @@
"source_file": "tests/unit/logging/test_format.py",
"source_location": "L162",
"id": "logging_test_format_test_redact_authorization_header",
- "community": 113,
+ "community": 123,
"norm_label": "test_redact_authorization_header()"
},
{
@@ -30006,7 +31050,7 @@
"source_file": "tests/unit/logging/test_format.py",
"source_location": "L166",
"id": "logging_test_format_test_redact_authorization_bearer_combined",
- "community": 113,
+ "community": 123,
"norm_label": "test_redact_authorization_bearer_combined()"
},
{
@@ -30015,7 +31059,7 @@
"source_file": "tests/unit/logging/test_format.py",
"source_location": "L172",
"id": "logging_test_format_test_redact_leaves_non_secret_strings_alone",
- "community": 113,
+ "community": 123,
"norm_label": "test_redact_leaves_non_secret_strings_alone()"
},
{
@@ -30024,7 +31068,7 @@
"source_file": "tests/unit/logging/test_format.py",
"source_location": "L178",
"id": "logging_test_format_test_redact_handles_url_without_password",
- "community": 113,
+ "community": 123,
"norm_label": "test_redact_handles_url_without_password()"
},
{
@@ -30033,7 +31077,7 @@
"source_file": "tests/unit/logging/test_format.py",
"source_location": "L183",
"id": "logging_test_format_test_redact_handles_multiple_secrets_in_one_string",
- "community": 113,
+ "community": 123,
"norm_label": "test_redact_handles_multiple_secrets_in_one_string()"
},
{
@@ -30042,7 +31086,7 @@
"source_file": "tests/unit/logging/test_format.py",
"source_location": "L191",
"id": "logging_test_format_test_redact_coerces_non_string_input",
- "community": 113,
+ "community": 123,
"norm_label": "test_redact_coerces_non_string_input()"
},
{
@@ -30051,7 +31095,7 @@
"source_file": "tests/unit/logging/test_format.py",
"source_location": "L200",
"id": "logging_test_format_test_format_appends_exception_text_when_exc_info_set",
- "community": 113,
+ "community": 123,
"norm_label": "test_format_appends_exception_text_when_exc_info_set()"
},
{
@@ -30060,7 +31104,7 @@
"source_file": "tests/unit/logging/test_format.py",
"source_location": "L1",
"id": "logging_test_format_rationale_1",
- "community": 113,
+ "community": 123,
"norm_label": "tests for ``exlab_wizard.logging.format``. backend spec \u00a716.4 defines the canon"
},
{
@@ -30069,7 +31113,7 @@
"source_file": "tests/unit/logging/test_format.py",
"source_location": "L22",
"id": "logging_test_format_rationale_22",
- "community": 136,
+ "community": 144,
"norm_label": "ensure each test starts with no run context bleed-through."
},
{
@@ -30078,7 +31122,7 @@
"source_file": "tests/unit/logging/test_format.py",
"source_location": "L32",
"id": "logging_test_format_rationale_32",
- "community": 113,
+ "community": 123,
"norm_label": "build a minimal ``logrecord`` at a known timestamp. the timestamp is set to"
},
{
@@ -30087,7 +31131,7 @@
"source_file": "tests/unit/logging/test_format.py",
"source_location": "L91",
"id": "logging_test_format_rationale_91",
- "community": 113,
+ "community": 123,
"norm_label": "spec \u00a716.4: level field is exactly 5 chars wide. \u00a716.5 commits four canonic"
},
{
@@ -30096,7 +31140,7 @@
"source_file": "tests/unit/logging/test_format.py",
"source_location": "L201",
"id": "logging_test_format_rationale_201",
- "community": 113,
+ "community": 123,
"norm_label": "``record.exc_info`` triggers the formatter to append a traceback (\u00a716.4 keep"
},
{
@@ -30105,7 +31149,7 @@
"source_file": "tests/unit/orchestrator/__init__.py",
"source_location": "L1",
"id": "tests_unit_orchestrator_init_py",
- "community": 534,
+ "community": 559,
"norm_label": "__init__.py"
},
{
@@ -30114,7 +31158,7 @@
"source_file": "tests/unit/orchestrator/test_scan.py",
"source_location": "L1",
"id": "tests_unit_orchestrator_test_scan_py",
- "community": 130,
+ "community": 11,
"norm_label": "test_scan.py"
},
{
@@ -30123,7 +31167,7 @@
"source_file": "tests/unit/orchestrator/test_scan.py",
"source_location": "L23",
"id": "orchestrator_test_scan_test_iter_subdirs_returns_empty_for_missing_path",
- "community": 130,
+ "community": 11,
"norm_label": "test_iter_subdirs_returns_empty_for_missing_path()"
},
{
@@ -30132,7 +31176,7 @@
"source_file": "tests/unit/orchestrator/test_scan.py",
"source_location": "L27",
"id": "orchestrator_test_scan_test_iter_subdirs_skips_cache_dir_and_dotfiles",
- "community": 130,
+ "community": 11,
"norm_label": "test_iter_subdirs_skips_cache_dir_and_dotfiles()"
},
{
@@ -30141,7 +31185,7 @@
"source_file": "tests/unit/orchestrator/test_scan.py",
"source_location": "L38",
"id": "orchestrator_test_scan_test_iter_subdirs_does_not_follow_symlinks",
- "community": 130,
+ "community": 11,
"norm_label": "test_iter_subdirs_does_not_follow_symlinks()"
},
{
@@ -30150,7 +31194,7 @@
"source_file": "tests/unit/orchestrator/test_scan.py",
"source_location": "L54",
"id": "orchestrator_test_scan_test_walk_run_leaves_returns_empty_when_root_missing",
- "community": 130,
+ "community": 11,
"norm_label": "test_walk_run_leaves_returns_empty_when_root_missing()"
},
{
@@ -30159,7 +31203,7 @@
"source_file": "tests/unit/orchestrator/test_scan.py",
"source_location": "L58",
"id": "orchestrator_test_scan_test_walk_run_leaves_finds_experimental_and_test_runs",
- "community": 130,
+ "community": 11,
"norm_label": "test_walk_run_leaves_finds_experimental_and_test_runs()"
},
{
@@ -30168,7 +31212,7 @@
"source_file": "tests/unit/orchestrator/test_scan.py",
"source_location": "L69",
"id": "orchestrator_test_scan_test_walk_run_leaves_handles_empty_tree",
- "community": 130,
+ "community": 11,
"norm_label": "test_walk_run_leaves_handles_empty_tree()"
},
{
@@ -30177,7 +31221,7 @@
"source_file": "tests/unit/orchestrator/test_scan.py",
"source_location": "L79",
"id": "orchestrator_test_scan_test_count_files_and_bytes_excludes_cache_dir_by_default",
- "community": 130,
+ "community": 11,
"norm_label": "test_count_files_and_bytes_excludes_cache_dir_by_default()"
},
{
@@ -30186,7 +31230,7 @@
"source_file": "tests/unit/orchestrator/test_scan.py",
"source_location": "L88",
"id": "orchestrator_test_scan_test_count_files_and_bytes_includes_cache_dir_when_requested",
- "community": 130,
+ "community": 11,
"norm_label": "test_count_files_and_bytes_includes_cache_dir_when_requested()"
},
{
@@ -30195,7 +31239,7 @@
"source_file": "tests/unit/orchestrator/test_scan.py",
"source_location": "L97",
"id": "orchestrator_test_scan_test_count_files_and_bytes_returns_zero_for_missing_path",
- "community": 130,
+ "community": 11,
"norm_label": "test_count_files_and_bytes_returns_zero_for_missing_path()"
},
{
@@ -30204,7 +31248,7 @@
"source_file": "tests/unit/orchestrator/test_scan.py",
"source_location": "L103",
"id": "orchestrator_test_scan_test_count_files_and_bytes_descends_into_subdirectories",
- "community": 130,
+ "community": 11,
"norm_label": "test_count_files_and_bytes_descends_into_subdirectories()"
},
{
@@ -30213,7 +31257,7 @@
"source_file": "tests/unit/orchestrator/test_scan.py",
"source_location": "L1",
"id": "orchestrator_test_scan_rationale_1",
- "community": 130,
+ "community": 11,
"norm_label": "unit tests for ``exlab_wizard.orchestrator._scan``. the shared filesystem helpe"
},
{
@@ -30222,7 +31266,7 @@
"source_file": "tests/unit/orchestrator/test_scan.py",
"source_location": "L70",
"id": "orchestrator_test_scan_rationale_70",
- "community": 130,
+ "community": 11,
"norm_label": "an empty staging_root has no run leaves -- not an error."
},
{
@@ -30231,7 +31275,7 @@
"source_file": "tests/unit/orchestrator/test_staging_query.py",
"source_location": "L1",
"id": "tests_unit_orchestrator_test_staging_query_py",
- "community": 131,
+ "community": 11,
"norm_label": "test_staging_query.py"
},
{
@@ -30240,7 +31284,7 @@
"source_file": "tests/unit/orchestrator/test_staging_query.py",
"source_location": "L29",
"id": "orchestrator_test_staging_query_config",
- "community": 131,
+ "community": 11,
"norm_label": "_config()"
},
{
@@ -30249,7 +31293,7 @@
"source_file": "tests/unit/orchestrator/test_staging_query.py",
"source_location": "L39",
"id": "orchestrator_test_staging_query_seed_run",
- "community": 131,
+ "community": 11,
"norm_label": "_seed_run()"
},
{
@@ -30258,7 +31302,7 @@
"source_file": "tests/unit/orchestrator/test_staging_query.py",
"source_location": "L61",
"id": "orchestrator_test_staging_query_test_list_staged_runs_returns_empty_when_staging_root_unset",
- "community": 131,
+ "community": 11,
"norm_label": "test_list_staged_runs_returns_empty_when_staging_root_unset()"
},
{
@@ -30267,7 +31311,7 @@
"source_file": "tests/unit/orchestrator/test_staging_query.py",
"source_location": "L66",
"id": "orchestrator_test_staging_query_test_list_staged_runs_returns_empty_when_staging_root_missing",
- "community": 131,
+ "community": 11,
"norm_label": "test_list_staged_runs_returns_empty_when_staging_root_missing()"
},
{
@@ -30276,7 +31320,7 @@
"source_file": "tests/unit/orchestrator/test_staging_query.py",
"source_location": "L76",
"id": "orchestrator_test_staging_query_test_list_staged_runs_returns_summary_rows",
- "community": 131,
+ "community": 11,
"norm_label": "test_list_staged_runs_returns_summary_rows()"
},
{
@@ -30285,7 +31329,7 @@
"source_file": "tests/unit/orchestrator/test_staging_query.py",
"source_location": "L92",
"id": "orchestrator_test_staging_query_test_list_staged_runs_includes_test_runs_under_testruns",
- "community": 131,
+ "community": 11,
"norm_label": "test_list_staged_runs_includes_test_runs_under_testruns()"
},
{
@@ -30294,7 +31338,7 @@
"source_file": "tests/unit/orchestrator/test_staging_query.py",
"source_location": "L99",
"id": "orchestrator_test_staging_query_test_list_staged_runs_reports_syncing_when_a_file_is_unverified",
- "community": 131,
+ "community": 11,
"norm_label": "test_list_staged_runs_reports_syncing_when_a_file_is_unverified()"
},
{
@@ -30303,7 +31347,7 @@
"source_file": "tests/unit/orchestrator/test_staging_query.py",
"source_location": "L108",
"id": "orchestrator_test_staging_query_test_list_staged_runs_reports_synced_when_all_files_verified",
- "community": 131,
+ "community": 11,
"norm_label": "test_list_staged_runs_reports_synced_when_all_files_verified()"
},
{
@@ -30312,7 +31356,7 @@
"source_file": "tests/unit/orchestrator/test_staging_query.py",
"source_location": "L121",
"id": "orchestrator_test_staging_query_test_list_staged_runs_reports_cleared_after_mark_cleared",
- "community": 131,
+ "community": 11,
"norm_label": "test_list_staged_runs_reports_cleared_after_mark_cleared()"
},
{
@@ -30321,7 +31365,7 @@
"source_file": "tests/unit/orchestrator/test_staging_query.py",
"source_location": "L135",
"id": "orchestrator_test_staging_query_test_list_staged_runs_remodified_file_flips_rollup_back_to_syncing",
- "community": 131,
+ "community": 11,
"norm_label": "test_list_staged_runs_remodified_file_flips_rollup_back_to_syncing()"
},
{
@@ -30330,7 +31374,7 @@
"source_file": "tests/unit/orchestrator/test_staging_query.py",
"source_location": "L152",
"id": "orchestrator_test_staging_query_test_list_staged_runs_includes_runs_without_creation_metadata",
- "community": 131,
+ "community": 11,
"norm_label": "test_list_staged_runs_includes_runs_without_creation_metadata()"
},
{
@@ -30339,7 +31383,7 @@
"source_file": "tests/unit/orchestrator/test_staging_query.py",
"source_location": "L162",
"id": "orchestrator_test_staging_query_test_list_staged_runs_sorts_most_recent_first",
- "community": 131,
+ "community": 11,
"norm_label": "test_list_staged_runs_sorts_most_recent_first()"
},
{
@@ -30348,7 +31392,7 @@
"source_file": "tests/unit/orchestrator/test_staging_query.py",
"source_location": "L177",
"id": "orchestrator_test_staging_query_test_list_staged_runs_excludes_cache_dir_from_byte_total",
- "community": 131,
+ "community": 11,
"norm_label": "test_list_staged_runs_excludes_cache_dir_from_byte_total()"
},
{
@@ -30357,7 +31401,7 @@
"source_file": "tests/unit/orchestrator/test_staging_query.py",
"source_location": "L189",
"id": "orchestrator_test_staging_query_test_list_staged_runs_uses_explicit_staging_root_param",
- "community": 131,
+ "community": 11,
"norm_label": "test_list_staged_runs_uses_explicit_staging_root_param()"
},
{
@@ -30366,7 +31410,7 @@
"source_file": "tests/unit/orchestrator/test_staging_query.py",
"source_location": "L197",
"id": "orchestrator_test_staging_query_test_list_staged_runs_sets_last_activity_from_directory_mtime",
- "community": 131,
+ "community": 11,
"norm_label": "test_list_staged_runs_sets_last_activity_from_directory_mtime()"
},
{
@@ -30375,7 +31419,7 @@
"source_file": "tests/unit/orchestrator/test_staging_query.py",
"source_location": "L1",
"id": "orchestrator_test_staging_query_rationale_1",
- "community": 131,
+ "community": 11,
"norm_label": "unit tests for ``exlab_wizard.orchestrator.staging_query``. backend spec \u00a713.8."
},
{
@@ -30384,7 +31428,7 @@
"source_file": "tests/unit/orchestrator/test_staging_query.py",
"source_location": "L100",
"id": "orchestrator_test_staging_query_rationale_100",
- "community": 131,
+ "community": 11,
"norm_label": "a run with an unverified tracked file rolls up to ``syncing``."
},
{
@@ -30393,7 +31437,7 @@
"source_file": "tests/unit/orchestrator/test_staging_query.py",
"source_location": "L109",
"id": "orchestrator_test_staging_query_rationale_109",
- "community": 131,
+ "community": 11,
"norm_label": "every tracked file verified -> ``current_state == 'synced'``."
},
{
@@ -30402,7 +31446,7 @@
"source_file": "tests/unit/orchestrator/test_staging_query.py",
"source_location": "L122",
"id": "orchestrator_test_staging_query_rationale_122",
- "community": 131,
+ "community": 11,
"norm_label": "a run whose ``sync_state.json`` carries ``cleared_at`` rolls up to ``cleared``."
},
{
@@ -30411,7 +31455,7 @@
"source_file": "tests/unit/orchestrator/test_staging_query.py",
"source_location": "L136",
"id": "orchestrator_test_staging_query_rationale_136",
- "community": 131,
+ "community": 11,
"norm_label": "a re-modified file (signature cleared -> unverified) flips synced back to syncin"
},
{
@@ -30420,7 +31464,7 @@
"source_file": "tests/unit/orchestrator/test_staging_query.py",
"source_location": "L153",
"id": "orchestrator_test_staging_query_rationale_153",
- "community": 131,
+ "community": 11,
"norm_label": "a run leaf with no cache metadata is still listed (ingest.json gone)."
},
{
@@ -30429,7 +31473,7 @@
"source_file": "tests/unit/orchestrator/test_staging_query.py",
"source_location": "L178",
"id": "orchestrator_test_staging_query_rationale_178",
- "community": 131,
+ "community": 11,
"norm_label": "the .exlab-wizard subtree is metadata, not staged data."
},
{
@@ -30438,7 +31482,7 @@
"source_file": "tests/unit/orchestrator/test_quiescence_poller.py",
"source_location": "L1",
"id": "tests_unit_orchestrator_test_quiescence_poller_py",
- "community": 27,
+ "community": 30,
"norm_label": "test_quiescence_poller.py"
},
{
@@ -30447,7 +31491,7 @@
"source_file": "tests/unit/orchestrator/test_quiescence_poller.py",
"source_location": "L38",
"id": "orchestrator_test_quiescence_poller_stubnassync",
- "community": 27,
+ "community": 30,
"norm_label": "_stubnassync"
},
{
@@ -30456,7 +31500,7 @@
"source_file": "tests/unit/orchestrator/test_quiescence_poller.py",
"source_location": "L41",
"id": "orchestrator_test_quiescence_poller_stubnassync_init",
- "community": 27,
+ "community": 30,
"norm_label": ".__init__()"
},
{
@@ -30465,7 +31509,7 @@
"source_file": "tests/unit/orchestrator/test_quiescence_poller.py",
"source_location": "L44",
"id": "orchestrator_test_quiescence_poller_stubnassync_enqueue",
- "community": 27,
+ "community": 30,
"norm_label": ".enqueue()"
},
{
@@ -30474,7 +31518,7 @@
"source_file": "tests/unit/orchestrator/test_quiescence_poller.py",
"source_location": "L48",
"id": "orchestrator_test_quiescence_poller_enqueued_paths",
- "community": 27,
+ "community": 30,
"norm_label": "enqueued_paths()"
},
{
@@ -30483,7 +31527,7 @@
"source_file": "tests/unit/orchestrator/test_quiescence_poller.py",
"source_location": "L57",
"id": "orchestrator_test_quiescence_poller_make_config",
- "community": 27,
+ "community": 30,
"norm_label": "_make_config()"
},
{
@@ -30492,7 +31536,7 @@
"source_file": "tests/unit/orchestrator/test_quiescence_poller.py",
"source_location": "L87",
"id": "orchestrator_test_quiescence_poller_make_run",
- "community": 27,
+ "community": 30,
"norm_label": "_make_run()"
},
{
@@ -30501,7 +31545,7 @@
"source_file": "tests/unit/orchestrator/test_quiescence_poller.py",
"source_location": "L96",
"id": "orchestrator_test_quiescence_poller_poller",
- "community": 27,
+ "community": 30,
"norm_label": "_poller()"
},
{
@@ -30510,7 +31554,7 @@
"source_file": "tests/unit/orchestrator/test_quiescence_poller.py",
"source_location": "L104",
"id": "orchestrator_test_quiescence_poller_signature",
- "community": 27,
+ "community": 30,
"norm_label": "_signature()"
},
{
@@ -30519,7 +31563,7 @@
"source_file": "tests/unit/orchestrator/test_quiescence_poller.py",
"source_location": "L114",
"id": "orchestrator_test_quiescence_poller_test_file_becomes_quiet_only_after_settle_window",
- "community": 27,
+ "community": 30,
"norm_label": "test_file_becomes_quiet_only_after_settle_window()"
},
{
@@ -30528,7 +31572,7 @@
"source_file": "tests/unit/orchestrator/test_quiescence_poller.py",
"source_location": "L136",
"id": "orchestrator_test_quiescence_poller_test_modified_file_resets_the_settle_window",
- "community": 27,
+ "community": 30,
"norm_label": "test_modified_file_resets_the_settle_window()"
},
{
@@ -30537,7 +31581,7 @@
"source_file": "tests/unit/orchestrator/test_quiescence_poller.py",
"source_location": "L162",
"id": "orchestrator_test_quiescence_poller_test_ignore_glob_files_do_not_make_a_run_eligible",
- "community": 27,
+ "community": 30,
"norm_label": "test_ignore_glob_files_do_not_make_a_run_eligible()"
},
{
@@ -30546,7 +31590,7 @@
"source_file": "tests/unit/orchestrator/test_quiescence_poller.py",
"source_location": "L178",
"id": "orchestrator_test_quiescence_poller_test_quiet_real_file_enqueues_despite_ignored_sibling",
- "community": 27,
+ "community": 30,
"norm_label": "test_quiet_real_file_enqueues_despite_ignored_sibling()"
},
{
@@ -30555,7 +31599,7 @@
"source_file": "tests/unit/orchestrator/test_quiescence_poller.py",
"source_location": "L198",
"id": "orchestrator_test_quiescence_poller_test_discovers_both_staging_and_nas_mode_runs",
- "community": 27,
+ "community": 30,
"norm_label": "test_discovers_both_staging_and_nas_mode_runs()"
},
{
@@ -30564,7 +31608,7 @@
"source_file": "tests/unit/orchestrator/test_quiescence_poller.py",
"source_location": "L220",
"id": "orchestrator_test_quiescence_poller_test_co_rooted_stage_mode_equipment_run_is_not_enqueued",
- "community": 27,
+ "community": 30,
"norm_label": "test_co_rooted_stage_mode_equipment_run_is_not_enqueued()"
},
{
@@ -30573,7 +31617,7 @@
"source_file": "tests/unit/orchestrator/test_quiescence_poller.py",
"source_location": "L265",
"id": "orchestrator_test_quiescence_poller_test_file_matching_synced_signature_is_not_re_enqueued",
- "community": 27,
+ "community": 30,
"norm_label": "test_file_matching_synced_signature_is_not_re_enqueued()"
},
{
@@ -30582,7 +31626,7 @@
"source_file": "tests/unit/orchestrator/test_quiescence_poller.py",
"source_location": "L289",
"id": "orchestrator_test_quiescence_poller_test_file_modified_after_recorded_sync_becomes_eligible",
- "community": 27,
+ "community": 30,
"norm_label": "test_file_modified_after_recorded_sync_becomes_eligible()"
},
{
@@ -30591,7 +31635,7 @@
"source_file": "tests/unit/orchestrator/test_quiescence_poller.py",
"source_location": "L312",
"id": "orchestrator_test_quiescence_poller_test_only_changed_file_in_a_run_is_enqueued",
- "community": 27,
+ "community": 30,
"norm_label": "test_only_changed_file_in_a_run_is_enqueued()"
},
{
@@ -30600,7 +31644,7 @@
"source_file": "tests/unit/orchestrator/test_quiescence_poller.py",
"source_location": "L343",
"id": "orchestrator_test_quiescence_poller_test_start_then_stop_is_idempotent",
- "community": 27,
+ "community": 30,
"norm_label": "test_start_then_stop_is_idempotent()"
},
{
@@ -30609,7 +31653,7 @@
"source_file": "tests/unit/orchestrator/test_quiescence_poller.py",
"source_location": "L358",
"id": "orchestrator_test_quiescence_poller_test_apply_config_swaps_config_reference",
- "community": 27,
+ "community": 30,
"norm_label": "test_apply_config_swaps_config_reference()"
},
{
@@ -30618,7 +31662,7 @@
"source_file": "tests/unit/orchestrator/test_quiescence_poller.py",
"source_location": "L366",
"id": "orchestrator_test_quiescence_poller_test_apply_config_quiescence_change_is_live",
- "community": 27,
+ "community": 30,
"norm_label": "test_apply_config_quiescence_change_is_live()"
},
{
@@ -30627,7 +31671,7 @@
"source_file": "tests/unit/orchestrator/test_quiescence_poller.py",
"source_location": "L1",
"id": "orchestrator_test_quiescence_poller_rationale_1",
- "community": 27,
+ "community": 30,
"norm_label": "unit tests for ``exlab_wizard.orchestrator.quiescence_poller``. the :class:`qui"
},
{
@@ -30636,7 +31680,7 @@
"source_file": "tests/unit/orchestrator/test_quiescence_poller.py",
"source_location": "L39",
"id": "orchestrator_test_quiescence_poller_rationale_39",
- "community": 27,
+ "community": 30,
"norm_label": "in-memory nas-sync stub recording per-file enqueue calls."
},
{
@@ -30645,7 +31689,7 @@
"source_file": "tests/unit/orchestrator/test_quiescence_poller.py",
"source_location": "L63",
"id": "orchestrator_test_quiescence_poller_rationale_63",
- "community": 27,
+ "community": 30,
"norm_label": "build a config with an optional staging root and a nas-mode equipment."
},
{
@@ -30654,7 +31698,7 @@
"source_file": "tests/unit/orchestrator/test_quiescence_poller.py",
"source_location": "L88",
"id": "orchestrator_test_quiescence_poller_rationale_88",
- "community": 27,
+ "community": 30,
"norm_label": "create a run-leaf directory mirroring the \u00a713.2 staging layout."
},
{
@@ -30663,7 +31707,7 @@
"source_file": "tests/unit/orchestrator/test_quiescence_poller.py",
"source_location": "L115",
"id": "orchestrator_test_quiescence_poller_rationale_115",
- "community": 27,
+ "community": 30,
"norm_label": "a file is enqueued only after its signature settles for the window."
},
{
@@ -30672,7 +31716,7 @@
"source_file": "tests/unit/orchestrator/test_quiescence_poller.py",
"source_location": "L137",
"id": "orchestrator_test_quiescence_poller_rationale_137",
- "community": 27,
+ "community": 30,
"norm_label": "a signature change resets ``first_seen``; the window restarts."
},
{
@@ -30681,7 +31725,7 @@
"source_file": "tests/unit/orchestrator/test_quiescence_poller.py",
"source_location": "L163",
"id": "orchestrator_test_quiescence_poller_rationale_163",
- "community": 27,
+ "community": 30,
"norm_label": "a run holding only ignore-glob files never enqueues."
},
{
@@ -30690,7 +31734,7 @@
"source_file": "tests/unit/orchestrator/test_quiescence_poller.py",
"source_location": "L179",
"id": "orchestrator_test_quiescence_poller_rationale_179",
- "community": 27,
+ "community": 30,
"norm_label": "a quiet non-ignored file enqueues even when ignored files coexist."
},
{
@@ -30699,7 +31743,7 @@
"source_file": "tests/unit/orchestrator/test_quiescence_poller.py",
"source_location": "L199",
"id": "orchestrator_test_quiescence_poller_rationale_199",
- "community": 27,
+ "community": 30,
"norm_label": "a sweep finds runs under staging_root and under nas-mode local_root."
},
{
@@ -30708,7 +31752,7 @@
"source_file": "tests/unit/orchestrator/test_quiescence_poller.py",
"source_location": "L221",
"id": "orchestrator_test_quiescence_poller_rationale_221",
- "community": 27,
+ "community": 30,
"norm_label": "a ``stage``-mode equipment sharing one ``local_root`` with a ``nas``-mode eq"
},
{
@@ -30717,7 +31761,7 @@
"source_file": "tests/unit/orchestrator/test_quiescence_poller.py",
"source_location": "L266",
"id": "orchestrator_test_quiescence_poller_rationale_266",
- "community": 27,
+ "community": 30,
"norm_label": "a quiet file already synced at its current signature is skipped."
},
{
@@ -30726,7 +31770,7 @@
"source_file": "tests/unit/orchestrator/test_quiescence_poller.py",
"source_location": "L290",
"id": "orchestrator_test_quiescence_poller_rationale_290",
- "community": 27,
+ "community": 30,
"norm_label": "a file modified after its recorded sync re-enters the eligible set."
},
{
@@ -30735,7 +31779,7 @@
"source_file": "tests/unit/orchestrator/test_quiescence_poller.py",
"source_location": "L313",
"id": "orchestrator_test_quiescence_poller_rationale_313",
- "community": 27,
+ "community": 30,
"norm_label": "a run with a mix of synced + modified files enqueues only the dirty one."
},
{
@@ -30744,7 +31788,7 @@
"source_file": "tests/unit/orchestrator/test_quiescence_poller.py",
"source_location": "L344",
"id": "orchestrator_test_quiescence_poller_rationale_344",
- "community": 27,
+ "community": 30,
"norm_label": "start()/stop() can be called repeatedly without error."
},
{
@@ -30753,7 +31797,7 @@
"source_file": "tests/unit/orchestrator/test_quiescence_poller.py",
"source_location": "L367",
"id": "orchestrator_test_quiescence_poller_rationale_367",
- "community": 27,
+ "community": 30,
"norm_label": "a live quiescence-window change takes effect on the next sweep. poll_once r"
},
{
@@ -30762,7 +31806,7 @@
"source_file": "tests/integration/test_orchestrator_lifecycle.py",
"source_location": "L1",
"id": "tests_integration_test_orchestrator_lifecycle_py",
- "community": 8,
+ "community": 13,
"norm_label": "test_orchestrator_lifecycle.py"
},
{
@@ -30771,7 +31815,7 @@
"source_file": "tests/integration/test_orchestrator_lifecycle.py",
"source_location": "L39",
"id": "integration_test_orchestrator_lifecycle_handle",
- "community": 8,
+ "community": 13,
"norm_label": "_handle"
},
{
@@ -30780,7 +31824,7 @@
"source_file": "tests/integration/test_orchestrator_lifecycle.py",
"source_location": "L46",
"id": "integration_test_orchestrator_lifecycle_stubjobrow",
- "community": 8,
+ "community": 13,
"norm_label": "_stubjobrow"
},
{
@@ -30789,7 +31833,7 @@
"source_file": "tests/integration/test_orchestrator_lifecycle.py",
"source_location": "L51",
"id": "integration_test_orchestrator_lifecycle_stubnassync",
- "community": 8,
+ "community": 13,
"norm_label": "_stubnassync"
},
{
@@ -30798,7 +31842,7 @@
"source_file": "tests/integration/test_orchestrator_lifecycle.py",
"source_location": "L54",
"id": "integration_test_orchestrator_lifecycle_stubnassync_init",
- "community": 8,
+ "community": 13,
"norm_label": ".__init__()"
},
{
@@ -30807,7 +31851,7 @@
"source_file": "tests/integration/test_orchestrator_lifecycle.py",
"source_location": "L58",
"id": "integration_test_orchestrator_lifecycle_stubnassync_enqueue",
- "community": 8,
+ "community": 13,
"norm_label": ".enqueue()"
},
{
@@ -30816,7 +31860,7 @@
"source_file": "tests/integration/test_orchestrator_lifecycle.py",
"source_location": "L62",
"id": "integration_test_orchestrator_lifecycle_stubnassync_status",
- "community": 8,
+ "community": 13,
"norm_label": ".status()"
},
{
@@ -30825,7 +31869,7 @@
"source_file": "tests/integration/test_orchestrator_lifecycle.py",
"source_location": "L65",
"id": "integration_test_orchestrator_lifecycle_stubnassync_list_all",
- "community": 8,
+ "community": 13,
"norm_label": ".list_all()"
},
{
@@ -30834,7 +31878,7 @@
"source_file": "tests/integration/test_orchestrator_lifecycle.py",
"source_location": "L71",
"id": "integration_test_orchestrator_lifecycle_enqueued_paths",
- "community": 8,
+ "community": 13,
"norm_label": "enqueued_paths()"
},
{
@@ -30843,7 +31887,7 @@
"source_file": "tests/integration/test_orchestrator_lifecycle.py",
"source_location": "L75",
"id": "integration_test_orchestrator_lifecycle_make_config",
- "community": 8,
+ "community": 13,
"norm_label": "_make_config()"
},
{
@@ -30852,7 +31896,7 @@
"source_file": "tests/integration/test_orchestrator_lifecycle.py",
"source_location": "L95",
"id": "integration_test_orchestrator_lifecycle_stage_run",
- "community": 8,
+ "community": 13,
"norm_label": "_stage_run()"
},
{
@@ -30861,7 +31905,7 @@
"source_file": "tests/integration/test_orchestrator_lifecycle.py",
"source_location": "L107",
"id": "integration_test_orchestrator_lifecycle_test_poller_enqueues_run_after_settle_window",
- "community": 8,
+ "community": 13,
"norm_label": "test_poller_enqueues_run_after_settle_window()"
},
{
@@ -30870,7 +31914,7 @@
"source_file": "tests/integration/test_orchestrator_lifecycle.py",
"source_location": "L125",
"id": "integration_test_orchestrator_lifecycle_test_poller_skips_file_already_synced_at_current_signature",
- "community": 8,
+ "community": 13,
"norm_label": "test_poller_skips_file_already_synced_at_current_signature()"
},
{
@@ -30879,7 +31923,7 @@
"source_file": "tests/integration/test_orchestrator_lifecycle.py",
"source_location": "L152",
"id": "integration_test_orchestrator_lifecycle_mark_run_synced",
- "community": 8,
+ "community": 13,
"norm_label": "_mark_run_synced()"
},
{
@@ -30888,7 +31932,7 @@
"source_file": "tests/integration/test_orchestrator_lifecycle.py",
"source_location": "L161",
"id": "integration_test_orchestrator_lifecycle_test_staging_endpoint_surfaces_run_with_rollup_state",
- "community": 8,
+ "community": 13,
"norm_label": "test_staging_endpoint_surfaces_run_with_rollup_state()"
},
{
@@ -30897,7 +31941,7 @@
"source_file": "tests/integration/test_orchestrator_lifecycle.py",
"source_location": "L178",
"id": "integration_test_orchestrator_lifecycle_test_clear_endpoint_deletes_synced_run",
- "community": 8,
+ "community": 13,
"norm_label": "test_clear_endpoint_deletes_synced_run()"
},
{
@@ -30906,7 +31950,7 @@
"source_file": "tests/integration/test_orchestrator_lifecycle.py",
"source_location": "L201",
"id": "integration_test_orchestrator_lifecycle_test_clear_endpoint_rejects_unsynced_run",
- "community": 8,
+ "community": 13,
"norm_label": "test_clear_endpoint_rejects_unsynced_run()"
},
{
@@ -30915,7 +31959,7 @@
"source_file": "tests/integration/test_orchestrator_lifecycle.py",
"source_location": "L1",
"id": "integration_test_orchestrator_lifecycle_rationale_1",
- "community": 8,
+ "community": 13,
"norm_label": "integration test for the orchestrator quiescence-sync lifecycle. backend spec \u00a7"
},
{
@@ -30924,7 +31968,7 @@
"source_file": "tests/integration/test_orchestrator_lifecycle.py",
"source_location": "L52",
"id": "integration_test_orchestrator_lifecycle_rationale_52",
- "community": 8,
+ "community": 13,
"norm_label": "in-memory sync client that records per-file enqueue + serves status/list_all."
},
{
@@ -30933,7 +31977,7 @@
"source_file": "tests/integration/test_orchestrator_lifecycle.py",
"source_location": "L108",
"id": "integration_test_orchestrator_lifecycle_rationale_108",
- "community": 8,
+ "community": 13,
"norm_label": "a staged run is enqueued only once its files settle for the window."
},
{
@@ -30942,7 +31986,7 @@
"source_file": "tests/integration/test_orchestrator_lifecycle.py",
"source_location": "L126",
"id": "integration_test_orchestrator_lifecycle_rationale_126",
- "community": 8,
+ "community": 13,
"norm_label": "a quiet file recorded in sync_state.json at its current signature is not re-"
},
{
@@ -30951,7 +31995,7 @@
"source_file": "tests/integration/test_orchestrator_lifecycle.py",
"source_location": "L153",
"id": "integration_test_orchestrator_lifecycle_rationale_153",
- "community": 8,
+ "community": 13,
"norm_label": "write a fully-verified ``sync_state.json`` so the run rolls up to ``synced``."
},
{
@@ -30960,7 +32004,7 @@
"source_file": "tests/integration/test_orchestrator_lifecycle.py",
"source_location": "L162",
"id": "integration_test_orchestrator_lifecycle_rationale_162",
- "community": 8,
+ "community": 13,
"norm_label": "``get /staging`` reports the run with its ``sync_state.json`` rollup."
},
{
@@ -30969,7 +32013,7 @@
"source_file": "tests/integration/test_orchestrator_lifecycle.py",
"source_location": "L179",
"id": "integration_test_orchestrator_lifecycle_rationale_179",
- "community": 8,
+ "community": 13,
"norm_label": "``post /staging/.../clear`` deletes a fully-``synced`` run's data files, ret"
},
{
@@ -30978,7 +32022,7 @@
"source_file": "tests/integration/test_orchestrator_lifecycle.py",
"source_location": "L202",
"id": "integration_test_orchestrator_lifecycle_rationale_202",
- "community": 8,
+ "community": 13,
"norm_label": "a run that is not fully ``synced`` cannot be cleared."
},
{
@@ -30987,7 +32031,7 @@
"source_file": "tests/integration/test_tray_window_smoke.py",
"source_location": "L1",
"id": "tests_integration_test_tray_window_smoke_py",
- "community": 74,
+ "community": 27,
"norm_label": "test_tray_window_smoke.py"
},
{
@@ -30996,7 +32040,7 @@
"source_file": "tests/integration/test_tray_window_smoke.py",
"source_location": "L24",
"id": "integration_test_tray_window_smoke_wait_for",
- "community": 74,
+ "community": 27,
"norm_label": "_wait_for()"
},
{
@@ -31005,7 +32049,7 @@
"source_file": "tests/integration/test_tray_window_smoke.py",
"source_location": "L40",
"id": "integration_test_tray_window_smoke_test_root_serves_html_after_mount",
- "community": 74,
+ "community": 27,
"norm_label": "test_root_serves_html_after_mount()"
},
{
@@ -31014,7 +32058,7 @@
"source_file": "tests/integration/test_tray_window_smoke.py",
"source_location": "L1",
"id": "integration_test_tray_window_smoke_rationale_1",
- "community": 74,
+ "community": 27,
"norm_label": "integration smoke: pywebview-facing root path returns html, not json 404. this"
},
{
@@ -31023,7 +32067,7 @@
"source_file": "tests/integration/test_lims_integration.py",
"source_location": "L1",
"id": "tests_integration_test_lims_integration_py",
- "community": 256,
+ "community": 253,
"norm_label": "test_lims_integration.py"
},
{
@@ -31032,7 +32076,7 @@
"source_file": "tests/integration/test_lims_integration.py",
"source_location": "L27",
"id": "integration_test_lims_integration_make_client",
- "community": 256,
+ "community": 253,
"norm_label": "_make_client()"
},
{
@@ -31041,7 +32085,7 @@
"source_file": "tests/integration/test_lims_integration.py",
"source_location": "L45",
"id": "integration_test_lims_integration_test_client_populates_cache",
- "community": 256,
+ "community": 253,
"norm_label": "test_client_populates_cache()"
},
{
@@ -31050,7 +32094,7 @@
"source_file": "tests/integration/test_lims_integration.py",
"source_location": "L63",
"id": "integration_test_lims_integration_test_cache_satisfies_lookup_without_network",
- "community": 256,
+ "community": 253,
"norm_label": "test_cache_satisfies_lookup_without_network()"
},
{
@@ -31059,7 +32103,7 @@
"source_file": "tests/integration/test_lims_integration.py",
"source_location": "L83",
"id": "integration_test_lims_integration_test_expired_cache_is_refreshed",
- "community": 256,
+ "community": 253,
"norm_label": "test_expired_cache_is_refreshed()"
},
{
@@ -31068,7 +32112,7 @@
"source_file": "tests/integration/test_lims_integration.py",
"source_location": "L116",
"id": "integration_test_lims_integration_test_relogin_then_cache_upsert",
- "community": 256,
+ "community": 253,
"norm_label": "test_relogin_then_cache_upsert()"
},
{
@@ -31077,7 +32121,7 @@
"source_file": "tests/integration/test_lims_integration.py",
"source_location": "L134",
"id": "integration_test_lims_integration_test_status_filter_consistent_between_client_and_cache",
- "community": 256,
+ "community": 253,
"norm_label": "test_status_filter_consistent_between_client_and_cache()"
},
{
@@ -31086,7 +32130,7 @@
"source_file": "tests/integration/test_lims_integration.py",
"source_location": "L1",
"id": "integration_test_lims_integration_rationale_1",
- "community": 256,
+ "community": 253,
"norm_label": "integration tests for the lims client + cache pair. backend spec \u00a77.2. these te"
},
{
@@ -31095,7 +32139,7 @@
"source_file": "tests/integration/test_lims_integration.py",
"source_location": "L46",
"id": "integration_test_lims_integration_rationale_46",
- "community": 256,
+ "community": 253,
"norm_label": "list_projects() fills the cache; the cache then returns the same rows."
},
{
@@ -31104,7 +32148,7 @@
"source_file": "tests/integration/test_lims_integration.py",
"source_location": "L64",
"id": "integration_test_lims_integration_rationale_64",
- "community": 256,
+ "community": 253,
"norm_label": "a get_project against the cache hits without a live lims call."
},
{
@@ -31113,7 +32157,7 @@
"source_file": "tests/integration/test_lims_integration.py",
"source_location": "L84",
"id": "integration_test_lims_integration_rationale_84",
- "community": 256,
+ "community": 253,
"norm_label": "when cache ttl expires, a refresh from the live api rewrites rows."
},
{
@@ -31122,7 +32166,7 @@
"source_file": "tests/integration/test_lims_integration.py",
"source_location": "L117",
"id": "integration_test_lims_integration_rationale_117",
- "community": 256,
+ "community": 253,
"norm_label": "a 401-then-relogin flow successfully refreshes and caches results."
},
{
@@ -31131,7 +32175,7 @@
"source_file": "tests/integration/test_tray_lifecycle.py",
"source_location": "L1",
"id": "tests_integration_test_tray_lifecycle_py",
- "community": 74,
+ "community": 27,
"norm_label": "test_tray_lifecycle.py"
},
{
@@ -31140,7 +32184,7 @@
"source_file": "tests/integration/test_tray_lifecycle.py",
"source_location": "L31",
"id": "integration_test_tray_lifecycle_wait_for_health",
- "community": 74,
+ "community": 27,
"norm_label": "_wait_for_health()"
},
{
@@ -31149,7 +32193,7 @@
"source_file": "tests/integration/test_tray_lifecycle.py",
"source_location": "L48",
"id": "integration_test_tray_lifecycle_test_tray_lifecycle_round_trip",
- "community": 74,
+ "community": 27,
"norm_label": "test_tray_lifecycle_round_trip()"
},
{
@@ -31158,7 +32202,7 @@
"source_file": "tests/integration/test_tray_lifecycle.py",
"source_location": "L85",
"id": "integration_test_tray_lifecycle_test_tray_lifecycle_window_handshake_reads_server_json",
- "community": 74,
+ "community": 27,
"norm_label": "test_tray_lifecycle_window_handshake_reads_server_json()"
},
{
@@ -31167,7 +32211,7 @@
"source_file": "tests/integration/test_tray_lifecycle.py",
"source_location": "L1",
"id": "integration_test_tray_lifecycle_rationale_1",
- "community": 74,
+ "community": 27,
"norm_label": "integration test: tray <-> window lifecycle round-trip. backend spec \u00a74.3.2. th"
},
{
@@ -31176,7 +32220,7 @@
"source_file": "tests/integration/test_tray_lifecycle.py",
"source_location": "L32",
"id": "integration_test_tray_lifecycle_rationale_32",
- "community": 74,
+ "community": 27,
"norm_label": "poll ``/api/v1/health`` until the server is accepting requests."
},
{
@@ -31185,7 +32229,7 @@
"source_file": "tests/integration/test_nas_sync.py",
"source_location": "L1",
"id": "tests_integration_test_nas_sync_py",
- "community": 28,
+ "community": 37,
"norm_label": "test_nas_sync.py"
},
{
@@ -31194,7 +32238,7 @@
"source_file": "tests/integration/test_nas_sync.py",
"source_location": "L52",
"id": "integration_test_nas_sync_stubkeyring",
- "community": 28,
+ "community": 37,
"norm_label": "_stubkeyring"
},
{
@@ -31203,7 +32247,7 @@
"source_file": "tests/integration/test_nas_sync.py",
"source_location": "L63",
"id": "integration_test_nas_sync_stubkeyring_init",
- "community": 28,
+ "community": 37,
"norm_label": ".__init__()"
},
{
@@ -31212,7 +32256,7 @@
"source_file": "tests/integration/test_nas_sync.py",
"source_location": "L66",
"id": "integration_test_nas_sync_stubkeyring_get_password",
- "community": 28,
+ "community": 37,
"norm_label": ".get_password()"
},
{
@@ -31221,7 +32265,7 @@
"source_file": "tests/integration/test_nas_sync.py",
"source_location": "L72",
"id": "integration_test_nas_sync_stub_binaries_on_path",
- "community": 453,
+ "community": 37,
"norm_label": "stub_binaries_on_path()"
},
{
@@ -31230,7 +32274,7 @@
"source_file": "tests/integration/test_nas_sync.py",
"source_location": "L85",
"id": "integration_test_nas_sync_build_config",
- "community": 28,
+ "community": 37,
"norm_label": "_build_config()"
},
{
@@ -31239,7 +32283,7 @@
"source_file": "tests/integration/test_nas_sync.py",
"source_location": "L110",
"id": "integration_test_nas_sync_make_creation",
- "community": 28,
+ "community": 37,
"norm_label": "_make_creation()"
},
{
@@ -31248,7 +32292,7 @@
"source_file": "tests/integration/test_nas_sync.py",
"source_location": "L129",
"id": "integration_test_nas_sync_populate_run",
- "community": 28,
+ "community": 37,
"norm_label": "_populate_run()"
},
{
@@ -31257,7 +32301,7 @@
"source_file": "tests/integration/test_nas_sync.py",
"source_location": "L140",
"id": "integration_test_nas_sync_wait_for_state",
- "community": 28,
+ "community": 37,
"norm_label": "_wait_for_state()"
},
{
@@ -31266,7 +32310,7 @@
"source_file": "tests/integration/test_nas_sync.py",
"source_location": "L160",
"id": "integration_test_nas_sync_test_full_happy_path_via_stub_rclone",
- "community": 28,
+ "community": 37,
"norm_label": "test_full_happy_path_via_stub_rclone()"
},
{
@@ -31275,7 +32319,7 @@
"source_file": "tests/integration/test_nas_sync.py",
"source_location": "L234",
"id": "integration_test_nas_sync_test_pre_sync_gate_blocks_run_with_placeholder_in_path",
- "community": 28,
+ "community": 37,
"norm_label": "test_pre_sync_gate_blocks_run_with_placeholder_in_path()"
},
{
@@ -31284,7 +32328,7 @@
"source_file": "tests/integration/test_nas_sync.py",
"source_location": "L273",
"id": "integration_test_nas_sync_test_auth_error_terminates_failed",
- "community": 28,
+ "community": 37,
"norm_label": "test_auth_error_terminates_failed()"
},
{
@@ -31293,7 +32337,7 @@
"source_file": "tests/integration/test_nas_sync.py",
"source_location": "L304",
"id": "integration_test_nas_sync_test_force_verify_returns_ok_after_compute",
- "community": 28,
+ "community": 37,
"norm_label": "test_force_verify_returns_ok_after_compute()"
},
{
@@ -31302,7 +32346,7 @@
"source_file": "tests/integration/test_nas_sync.py",
"source_location": "L348",
"id": "integration_test_nas_sync_test_routine_reconcile_retries_until_remote_listing_settles",
- "community": 28,
+ "community": 37,
"norm_label": "test_routine_reconcile_retries_until_remote_listing_settles()"
},
{
@@ -31311,7 +32355,7 @@
"source_file": "tests/integration/test_nas_sync.py",
"source_location": "L426",
"id": "integration_test_nas_sync_test_cleanup_hash_gate_defers_on_remote_mismatch",
- "community": 28,
+ "community": 37,
"norm_label": "test_cleanup_hash_gate_defers_on_remote_mismatch()"
},
{
@@ -31320,7 +32364,7 @@
"source_file": "tests/integration/test_nas_sync.py",
"source_location": "L489",
"id": "integration_test_nas_sync_test_poller_per_file_enqueue_drives_to_synced_state",
- "community": 28,
+ "community": 37,
"norm_label": "test_poller_per_file_enqueue_drives_to_synced_state()"
},
{
@@ -31329,7 +32373,7 @@
"source_file": "tests/integration/test_nas_sync.py",
"source_location": "L563",
"id": "integration_test_nas_sync_test_poller_to_cleanup_honors_keep_local_and_stamps_cleared",
- "community": 28,
+ "community": 37,
"norm_label": "test_poller_to_cleanup_honors_keep_local_and_stamps_cleared()"
},
{
@@ -31338,7 +32382,7 @@
"source_file": "tests/integration/test_nas_sync.py",
"source_location": "L1",
"id": "integration_test_nas_sync_rationale_1",
- "community": 28,
+ "community": 37,
"norm_label": "end-to-end integration tests for the nas sync subsystem (phase 10). these tests"
},
{
@@ -31347,7 +32391,7 @@
"source_file": "tests/integration/test_nas_sync.py",
"source_location": "L53",
"id": "integration_test_nas_sync_rationale_53",
- "community": 28,
+ "community": 37,
"norm_label": "minimal keyring stub returning a fixed password for every username. retaine"
},
{
@@ -31356,7 +32400,7 @@
"source_file": "tests/integration/test_nas_sync.py",
"source_location": "L73",
"id": "integration_test_nas_sync_rationale_73",
- "community": 453,
+ "community": 37,
"norm_label": "install the rclone stub on path for the test."
},
{
@@ -31365,7 +32409,7 @@
"source_file": "tests/integration/test_nas_sync.py",
"source_location": "L148",
"id": "integration_test_nas_sync_rationale_148",
- "community": 28,
+ "community": 37,
"norm_label": "poll ``queue.get_by_id`` until ``state`` is in ``targets`` or timeout."
},
{
@@ -31374,7 +32418,7 @@
"source_file": "tests/integration/test_nas_sync.py",
"source_location": "L165",
"id": "integration_test_nas_sync_rationale_165",
- "community": 28,
+ "community": 37,
"norm_label": "enqueue -> running -> awaiting_verify -> verified -> cleaned. uses the pyth"
},
{
@@ -31383,7 +32427,7 @@
"source_file": "tests/integration/test_nas_sync.py",
"source_location": "L239",
"id": "integration_test_nas_sync_rationale_239",
- "community": 28,
+ "community": 37,
"norm_label": "a run path with ```` is gated; sync_status -> blocked_by_validation."
},
{
@@ -31392,7 +32436,7 @@
"source_file": "tests/integration/test_nas_sync.py",
"source_location": "L278",
"id": "integration_test_nas_sync_rationale_278",
- "community": 28,
+ "community": 37,
"norm_label": "the stub returns ``auth_error`` -> queue row terminates failed."
},
{
@@ -31401,7 +32445,7 @@
"source_file": "tests/integration/test_nas_sync.py",
"source_location": "L309",
"id": "integration_test_nas_sync_rationale_309",
- "community": 28,
+ "community": 37,
"norm_label": "``force_verify`` runs a manifest pass against the local subtree."
},
{
@@ -31410,7 +32454,7 @@
"source_file": "tests/integration/test_nas_sync.py",
"source_location": "L353",
"id": "integration_test_nas_sync_rationale_353",
- "community": 28,
+ "community": 37,
"norm_label": "a reconcile that initially finds nothing remotely re-queues, then verifies."
},
{
@@ -31419,7 +32463,7 @@
"source_file": "tests/integration/test_nas_sync.py",
"source_location": "L431",
"id": "integration_test_nas_sync_rationale_431",
- "community": 28,
+ "community": 37,
"norm_label": "the pre-deletion hash-gate defers cleanup when the stub check differs. the"
},
{
@@ -31428,7 +32472,7 @@
"source_file": "tests/integration/test_nas_sync.py",
"source_location": "L494",
"id": "integration_test_nas_sync_rationale_494",
- "community": 28,
+ "community": 37,
"norm_label": "poller sweep -> per-file enqueue -> drive -> verify -> sync_state.json recor"
},
{
@@ -31437,7 +32481,7 @@
"source_file": "tests/integration/test_nas_sync.py",
"source_location": "L568",
"id": "integration_test_nas_sync_rationale_568",
- "community": 28,
+ "community": 37,
"norm_label": "full phase 5 path: poller sweep -> enqueue -> verify -> synced rollup -> cle"
},
{
@@ -31446,7 +32490,7 @@
"source_file": "tests/integration/test_lims_contract.py",
"source_location": "L1",
"id": "tests_integration_test_lims_contract_py",
- "community": 223,
+ "community": 225,
"norm_label": "test_lims_contract.py"
},
{
@@ -31455,7 +32499,7 @@
"source_file": "tests/integration/test_lims_contract.py",
"source_location": "L31",
"id": "integration_test_lims_contract_load",
- "community": 223,
+ "community": 225,
"norm_label": "_load()"
},
{
@@ -31464,7 +32508,7 @@
"source_file": "tests/integration/test_lims_contract.py",
"source_location": "L35",
"id": "integration_test_lims_contract_test_me_snapshot_decodes_into_lims_user",
- "community": 223,
+ "community": 225,
"norm_label": "test_me_snapshot_decodes_into_lims_user()"
},
{
@@ -31473,7 +32517,7 @@
"source_file": "tests/integration/test_lims_contract.py",
"source_location": "L43",
"id": "integration_test_lims_contract_test_login_response_snapshot_decodes_into_lims_user",
- "community": 223,
+ "community": 225,
"norm_label": "test_login_response_snapshot_decodes_into_lims_user()"
},
{
@@ -31482,7 +32526,7 @@
"source_file": "tests/integration/test_lims_contract.py",
"source_location": "L51",
"id": "integration_test_lims_contract_test_projects_list_snapshot_flows_through_list_projects_path",
- "community": 223,
+ "community": 225,
"norm_label": "test_projects_list_snapshot_flows_through_list_projects_path()"
},
{
@@ -31491,7 +32535,7 @@
"source_file": "tests/integration/test_lims_contract.py",
"source_location": "L78",
"id": "integration_test_lims_contract_test_empty_projects_envelope_decodes_to_empty_list",
- "community": 223,
+ "community": 225,
"norm_label": "test_empty_projects_envelope_decodes_to_empty_list()"
},
{
@@ -31500,7 +32544,7 @@
"source_file": "tests/integration/test_lims_contract.py",
"source_location": "L86",
"id": "integration_test_lims_contract_test_project_one_snapshot_decodes_into_lims_project",
- "community": 223,
+ "community": 225,
"norm_label": "test_project_one_snapshot_decodes_into_lims_project()"
},
{
@@ -31509,7 +32553,7 @@
"source_file": "tests/integration/test_lims_contract.py",
"source_location": "L100",
"id": "integration_test_lims_contract_test_snapshot_files_present_and_non_empty",
- "community": 223,
+ "community": 225,
"norm_label": "test_snapshot_files_present_and_non_empty()"
},
{
@@ -31518,7 +32562,7 @@
"source_file": "tests/integration/test_lims_contract.py",
"source_location": "L1",
"id": "integration_test_lims_contract_rationale_1",
- "community": 223,
+ "community": 225,
"norm_label": "contract test against vendored upstream `mcnaughtonadm/exlab` snapshots. loads"
},
{
@@ -31527,7 +32571,7 @@
"source_file": "tests/integration/test_lims_contract.py",
"source_location": "L36",
"id": "integration_test_lims_contract_rationale_36",
- "community": 223,
+ "community": 225,
"norm_label": "``get /api/v1/me`` json must satisfy the ``limsuser`` schema."
},
{
@@ -31536,7 +32580,7 @@
"source_file": "tests/integration/test_lims_contract.py",
"source_location": "L44",
"id": "integration_test_lims_contract_rationale_44",
- "community": 223,
+ "community": 225,
"norm_label": "upstream's login body is the same ``safe_user`` shape as ``/me``."
},
{
@@ -31545,7 +32589,7 @@
"source_file": "tests/integration/test_lims_contract.py",
"source_location": "L52",
"id": "integration_test_lims_contract_rationale_52",
- "community": 223,
+ "community": 225,
"norm_label": "``get /api/v1/projects`` payload must yield ``limsproject`` rows. mirrors t"
},
{
@@ -31554,7 +32598,7 @@
"source_file": "tests/integration/test_lims_contract.py",
"source_location": "L79",
"id": "integration_test_lims_contract_rationale_79",
- "community": 223,
+ "community": 225,
"norm_label": "an empty ``data`` array must yield zero rows, not raise."
},
{
@@ -31563,7 +32607,7 @@
"source_file": "tests/integration/test_lims_contract.py",
"source_location": "L87",
"id": "integration_test_lims_contract_rationale_87",
- "community": 223,
+ "community": 225,
"norm_label": "``get /api/v1/projects/{id}`` returns one bare project object."
},
{
@@ -31572,7 +32616,7 @@
"source_file": "tests/integration/test_lims_contract.py",
"source_location": "L101",
"id": "integration_test_lims_contract_rationale_101",
- "community": 223,
+ "community": 225,
"norm_label": "every required snapshot exists; guards against accidental deletion."
},
{
@@ -31581,7 +32625,7 @@
"source_file": "tests/integration/__init__.py",
"source_location": "L1",
"id": "tests_integration_init_py",
- "community": 535,
+ "community": 560,
"norm_label": "__init__.py"
},
{
@@ -31590,7 +32634,7 @@
"source_file": "tests/integration/test_schema_major_mismatch.py",
"source_location": "L1",
"id": "tests_integration_test_schema_major_mismatch_py",
- "community": 251,
+ "community": 255,
"norm_label": "test_schema_major_mismatch.py"
},
{
@@ -31599,7 +32643,7 @@
"source_file": "tests/integration/test_schema_major_mismatch.py",
"source_location": "L39",
"id": "integration_test_schema_major_mismatch_cachecase",
- "community": 251,
+ "community": 255,
"norm_label": "_cachecase"
},
{
@@ -31608,7 +32652,7 @@
"source_file": "tests/integration/test_schema_major_mismatch.py",
"source_location": "L156",
"id": "integration_test_schema_major_mismatch_resolve_reader",
- "community": 251,
+ "community": 255,
"norm_label": "_resolve_reader()"
},
{
@@ -31617,7 +32661,7 @@
"source_file": "tests/integration/test_schema_major_mismatch.py",
"source_location": "L195",
"id": "integration_test_schema_major_mismatch_test_cross_major_read_raises_schema_major_mismatch",
- "community": 251,
+ "community": 255,
"norm_label": "test_cross_major_read_raises_schema_major_mismatch()"
},
{
@@ -31626,7 +32670,7 @@
"source_file": "tests/integration/test_schema_major_mismatch.py",
"source_location": "L218",
"id": "integration_test_schema_major_mismatch_test_cross_major_read_records_higher_majors_too",
- "community": 251,
+ "community": 255,
"norm_label": "test_cross_major_read_records_higher_majors_too()"
},
{
@@ -31635,7 +32679,7 @@
"source_file": "tests/integration/test_schema_major_mismatch.py",
"source_location": "L1",
"id": "integration_test_schema_major_mismatch_rationale_1",
- "community": 251,
+ "community": 255,
"norm_label": "integration tests for the cross-major-read-fails contract from \u00a711.9.2. for eve"
},
{
@@ -31644,7 +32688,7 @@
"source_file": "tests/integration/test_schema_major_mismatch.py",
"source_location": "L40",
"id": "integration_test_schema_major_mismatch_rationale_40",
- "community": 251,
+ "community": 255,
"norm_label": "one cache-file flavour to exercise against the reader gate."
},
{
@@ -31653,7 +32697,7 @@
"source_file": "tests/integration/test_schema_major_mismatch.py",
"source_location": "L157",
"id": "integration_test_schema_major_mismatch_rationale_157",
- "community": 251,
+ "community": 255,
"norm_label": "walk the candidate matrix and return the first reader method we find. each"
},
{
@@ -31662,7 +32706,7 @@
"source_file": "tests/integration/test_schema_major_mismatch.py",
"source_location": "L199",
"id": "integration_test_schema_major_mismatch_rationale_199",
- "community": 251,
+ "community": 255,
"norm_label": "a v2.0 file must be refused by every v1.x reader (\u00a711.9.2 rule 3)."
},
{
@@ -31671,7 +32715,7 @@
"source_file": "tests/integration/test_schema_major_mismatch.py",
"source_location": "L222",
"id": "integration_test_schema_major_mismatch_rationale_222",
- "community": 251,
+ "community": 255,
"norm_label": "a v3.7 file is also refused; the rule isn't tied to ``2.0`` specifically."
},
{
@@ -31680,7 +32724,7 @@
"source_file": "tests/integration/test_creation_json_concurrent_writes.py",
"source_location": "L1",
"id": "tests_integration_test_creation_json_concurrent_writes_py",
- "community": 285,
+ "community": 294,
"norm_label": "test_creation_json_concurrent_writes.py"
},
{
@@ -31689,7 +32733,7 @@
"source_file": "tests/integration/test_creation_json_concurrent_writes.py",
"source_location": "L33",
"id": "integration_test_creation_json_concurrent_writes_build_minimal_payload",
- "community": 285,
+ "community": 294,
"norm_label": "_build_minimal_payload()"
},
{
@@ -31698,7 +32742,7 @@
"source_file": "tests/integration/test_creation_json_concurrent_writes.py",
"source_location": "L57",
"id": "integration_test_creation_json_concurrent_writes_test_ten_concurrent_mutations_all_land",
- "community": 285,
+ "community": 294,
"norm_label": "test_ten_concurrent_mutations_all_land()"
},
{
@@ -31707,7 +32751,7 @@
"source_file": "tests/integration/test_creation_json_concurrent_writes.py",
"source_location": "L94",
"id": "integration_test_creation_json_concurrent_writes_test_concurrent_mutations_keep_schema_at_current_version",
- "community": 285,
+ "community": 294,
"norm_label": "test_concurrent_mutations_keep_schema_at_current_version()"
},
{
@@ -31716,7 +32760,7 @@
"source_file": "tests/integration/test_creation_json_concurrent_writes.py",
"source_location": "L131",
"id": "integration_test_creation_json_concurrent_writes_test_concurrent_mutations_keep_file_valid_json",
- "community": 285,
+ "community": 294,
"norm_label": "test_concurrent_mutations_keep_file_valid_json()"
},
{
@@ -31725,7 +32769,7 @@
"source_file": "tests/integration/test_creation_json_concurrent_writes.py",
"source_location": "L1",
"id": "integration_test_creation_json_concurrent_writes_rationale_1",
- "community": 285,
+ "community": 294,
"norm_label": "integration test: concurrent ``creation.json`` writers serialize correctly. spe"
},
{
@@ -31734,7 +32778,7 @@
"source_file": "tests/integration/test_creation_json_concurrent_writes.py",
"source_location": "L58",
"id": "integration_test_creation_json_concurrent_writes_rationale_58",
- "community": 285,
+ "community": 294,
"norm_label": "run 10 ``update_creation_atomic`` calls concurrently against the same file."
},
{
@@ -31743,7 +32787,7 @@
"source_file": "tests/integration/test_creation_json_concurrent_writes.py",
"source_location": "L97",
"id": "integration_test_creation_json_concurrent_writes_rationale_97",
- "community": 285,
+ "community": 294,
"norm_label": "the writer pins ``schema_version`` to the current version on every write. co"
},
{
@@ -31752,7 +32796,7 @@
"source_file": "tests/integration/test_creation_json_concurrent_writes.py",
"source_location": "L132",
"id": "integration_test_creation_json_concurrent_writes_rationale_132",
- "community": 285,
+ "community": 294,
"norm_label": "an interleaved write must never produce a half-written file. the ``os.replac"
},
{
@@ -31761,7 +32805,7 @@
"source_file": "tests/integration/test_validator_determinism.py",
"source_location": "L1",
"id": "tests_integration_test_validator_determinism_py",
- "community": 133,
+ "community": 280,
"norm_label": "test_validator_determinism.py"
},
{
@@ -31770,7 +32814,7 @@
"source_file": "tests/integration/test_validator_determinism.py",
"source_location": "L49",
"id": "integration_test_validator_determinism_build_creation_json_dict",
- "community": 133,
+ "community": 280,
"norm_label": "_build_creation_json_dict()"
},
{
@@ -31779,7 +32823,7 @@
"source_file": "tests/integration/test_validator_determinism.py",
"source_location": "L83",
"id": "integration_test_validator_determinism_write_creation_json",
- "community": 133,
+ "community": 280,
"norm_label": "_write_creation_json()"
},
{
@@ -31788,7 +32832,7 @@
"source_file": "tests/integration/test_validator_determinism.py",
"source_location": "L89",
"id": "integration_test_validator_determinism_build_fixture_tree",
- "community": 133,
+ "community": 280,
"norm_label": "_build_fixture_tree()"
},
{
@@ -31797,7 +32841,7 @@
"source_file": "tests/integration/test_validator_determinism.py",
"source_location": "L164",
"id": "integration_test_validator_determinism_test_audit_two_calls_return_byte_identical_finding_lists",
- "community": 133,
+ "community": 280,
"norm_label": "test_audit_two_calls_return_byte_identical_finding_lists()"
},
{
@@ -31806,7 +32850,7 @@
"source_file": "tests/integration/test_validator_determinism.py",
"source_location": "L221",
"id": "integration_test_validator_determinism_test_audit_byte_identical_with_query_problems_alias",
- "community": 133,
+ "community": 280,
"norm_label": "test_audit_byte_identical_with_query_problems_alias()"
},
{
@@ -31815,7 +32859,7 @@
"source_file": "tests/integration/test_validator_determinism.py",
"source_location": "L1",
"id": "integration_test_validator_determinism_rationale_1",
- "community": 133,
+ "community": 280,
"norm_label": "integration test: ``validator.audit`` is byte-deterministic across runs. backen"
},
{
@@ -31824,7 +32868,7 @@
"source_file": "tests/integration/test_validator_determinism.py",
"source_location": "L90",
"id": "integration_test_validator_determinism_rationale_90",
- "community": 133,
+ "community": 280,
"norm_label": "construct a tree with several findings in stable on-disk shape. the tree co"
},
{
@@ -31833,7 +32877,7 @@
"source_file": "tests/integration/test_validator_determinism.py",
"source_location": "L165",
"id": "integration_test_validator_determinism_rationale_165",
- "community": 133,
+ "community": 280,
"norm_label": "spec \u00a711.8 determinism: two ``audit`` calls produce identical findings. the"
},
{
@@ -31842,7 +32886,7 @@
"source_file": "tests/integration/test_validator_determinism.py",
"source_location": "L222",
"id": "integration_test_validator_determinism_rationale_222",
- "community": 133,
+ "community": 280,
"norm_label": "``audit`` and ``query_problems`` produce byte-identical outputs. this is th"
},
{
@@ -31851,7 +32895,7 @@
"source_file": "tests/integration/test_pyinstaller_smoke.py",
"source_location": "L1",
"id": "tests_integration_test_pyinstaller_smoke_py",
- "community": 39,
+ "community": 46,
"norm_label": "test_pyinstaller_smoke.py"
},
{
@@ -31860,7 +32904,7 @@
"source_file": "tests/integration/test_pyinstaller_smoke.py",
"source_location": "L61",
"id": "integration_test_pyinstaller_smoke_test_tray_main_imports",
- "community": 39,
+ "community": 46,
"norm_label": "test_tray_main_imports()"
},
{
@@ -31869,7 +32913,7 @@
"source_file": "tests/integration/test_pyinstaller_smoke.py",
"source_location": "L71",
"id": "integration_test_pyinstaller_smoke_test_window_main_imports",
- "community": 39,
+ "community": 46,
"norm_label": "test_window_main_imports()"
},
{
@@ -31878,7 +32922,7 @@
"source_file": "tests/integration/test_pyinstaller_smoke.py",
"source_location": "L77",
"id": "integration_test_pyinstaller_smoke_test_cli_main_imports",
- "community": 39,
+ "community": 46,
"norm_label": "test_cli_main_imports()"
},
{
@@ -31887,7 +32931,7 @@
"source_file": "tests/integration/test_pyinstaller_smoke.py",
"source_location": "L91",
"id": "integration_test_pyinstaller_smoke_test_version_exposed_and_well_formed",
- "community": 39,
+ "community": 46,
"norm_label": "test_version_exposed_and_well_formed()"
},
{
@@ -31896,7 +32940,7 @@
"source_file": "tests/integration/test_pyinstaller_smoke.py",
"source_location": "L105",
"id": "integration_test_pyinstaller_smoke_test_version_matches_pyproject",
- "community": 39,
+ "community": 46,
"norm_label": "test_version_matches_pyproject()"
},
{
@@ -31905,7 +32949,7 @@
"source_file": "tests/integration/test_pyinstaller_smoke.py",
"source_location": "L123",
"id": "integration_test_pyinstaller_smoke_test_pyproject_scripts_match_expected",
- "community": 39,
+ "community": 46,
"norm_label": "test_pyproject_scripts_match_expected()"
},
{
@@ -31914,7 +32958,7 @@
"source_file": "tests/integration/test_pyinstaller_smoke.py",
"source_location": "L138",
"id": "integration_test_pyinstaller_smoke_test_spec_file_is_valid_python",
- "community": 39,
+ "community": 46,
"norm_label": "test_spec_file_is_valid_python()"
},
{
@@ -31923,7 +32967,7 @@
"source_file": "tests/integration/test_pyinstaller_smoke.py",
"source_location": "L150",
"id": "integration_test_pyinstaller_smoke_test_spec_references_entry_executable",
- "community": 39,
+ "community": 46,
"norm_label": "test_spec_references_entry_executable()"
},
{
@@ -31932,7 +32976,7 @@
"source_file": "tests/integration/test_pyinstaller_smoke.py",
"source_location": "L164",
"id": "integration_test_pyinstaller_smoke_test_spec_references_entry_script",
- "community": 39,
+ "community": 46,
"norm_label": "test_spec_references_entry_script()"
},
{
@@ -31941,7 +32985,7 @@
"source_file": "tests/integration/test_pyinstaller_smoke.py",
"source_location": "L174",
"id": "integration_test_pyinstaller_smoke_test_spec_uses_merge_directive",
- "community": 39,
+ "community": 46,
"norm_label": "test_spec_uses_merge_directive()"
},
{
@@ -31950,7 +32994,7 @@
"source_file": "tests/integration/test_pyinstaller_smoke.py",
"source_location": "L189",
"id": "integration_test_pyinstaller_smoke_test_spec_lists_required_hidden_imports",
- "community": 39,
+ "community": 46,
"norm_label": "test_spec_lists_required_hidden_imports()"
},
{
@@ -31959,7 +33003,7 @@
"source_file": "tests/integration/test_pyinstaller_smoke.py",
"source_location": "L198",
"id": "integration_test_pyinstaller_smoke_test_spec_declares_macos_bundle_identifier",
- "community": 39,
+ "community": 46,
"norm_label": "test_spec_declares_macos_bundle_identifier()"
},
{
@@ -31968,7 +33012,7 @@
"source_file": "tests/integration/test_pyinstaller_smoke.py",
"source_location": "L209",
"id": "integration_test_pyinstaller_smoke_test_workflow_is_valid_yaml",
- "community": 39,
+ "community": 46,
"norm_label": "test_workflow_is_valid_yaml()"
},
{
@@ -31977,7 +33021,7 @@
"source_file": "tests/integration/test_pyinstaller_smoke.py",
"source_location": "L218",
"id": "integration_test_pyinstaller_smoke_test_workflow_matrix_lists_all_v1_targets",
- "community": 39,
+ "community": 46,
"norm_label": "test_workflow_matrix_lists_all_v1_targets()"
},
{
@@ -31986,7 +33030,7 @@
"source_file": "tests/integration/test_pyinstaller_smoke.py",
"source_location": "L227",
"id": "integration_test_pyinstaller_smoke_test_workflow_runs_pyinstaller_and_smoke",
- "community": 39,
+ "community": 46,
"norm_label": "test_workflow_runs_pyinstaller_and_smoke()"
},
{
@@ -31995,7 +33039,7 @@
"source_file": "tests/integration/test_pyinstaller_smoke.py",
"source_location": "L246",
"id": "integration_test_pyinstaller_smoke_test_internal_templates_dir_exists",
- "community": 39,
+ "community": 46,
"norm_label": "test_internal_templates_dir_exists()"
},
{
@@ -32004,7 +33048,7 @@
"source_file": "tests/integration/test_pyinstaller_smoke.py",
"source_location": "L252",
"id": "integration_test_pyinstaller_smoke_test_internal_plugins_dir_exists",
- "community": 39,
+ "community": 46,
"norm_label": "test_internal_plugins_dir_exists()"
},
{
@@ -32013,7 +33057,7 @@
"source_file": "tests/integration/test_pyinstaller_smoke.py",
"source_location": "L263",
"id": "integration_test_pyinstaller_smoke_test_local_build_scripts_exist",
- "community": 39,
+ "community": 46,
"norm_label": "test_local_build_scripts_exist()"
},
{
@@ -32022,7 +33066,7 @@
"source_file": "tests/integration/test_pyinstaller_smoke.py",
"source_location": "L283",
"id": "integration_test_pyinstaller_smoke_test_workflow_does_not_run_on_branch_push",
- "community": 39,
+ "community": 46,
"norm_label": "test_workflow_does_not_run_on_branch_push()"
},
{
@@ -32031,7 +33075,7 @@
"source_file": "tests/integration/test_pyinstaller_smoke.py",
"source_location": "L299",
"id": "integration_test_pyinstaller_smoke_test_workflow_pull_request_targets_main_only",
- "community": 39,
+ "community": 46,
"norm_label": "test_workflow_pull_request_targets_main_only()"
},
{
@@ -32040,7 +33084,7 @@
"source_file": "tests/integration/test_pyinstaller_smoke.py",
"source_location": "L310",
"id": "integration_test_pyinstaller_smoke_test_workflow_concurrency_cancels_in_progress",
- "community": 39,
+ "community": 46,
"norm_label": "test_workflow_concurrency_cancels_in_progress()"
},
{
@@ -32049,7 +33093,7 @@
"source_file": "tests/integration/test_pyinstaller_smoke.py",
"source_location": "L1",
"id": "integration_test_pyinstaller_smoke_rationale_1",
- "community": 39,
+ "community": 46,
"norm_label": "structural smoke tests for the pyinstaller distribution. phase 15. the actual `"
},
{
@@ -32058,7 +33102,7 @@
"source_file": "tests/integration/test_pyinstaller_smoke.py",
"source_location": "L62",
"id": "integration_test_pyinstaller_smoke_rationale_62",
- "community": 39,
+ "community": 46,
"norm_label": "``exlab_wizard.tray.main:main`` must import cleanly. pyinstaller's static a"
},
{
@@ -32067,7 +33111,7 @@
"source_file": "tests/integration/test_pyinstaller_smoke.py",
"source_location": "L72",
"id": "integration_test_pyinstaller_smoke_rationale_72",
- "community": 39,
+ "community": 46,
"norm_label": "``exlab_wizard.window.main:main`` must import cleanly."
},
{
@@ -32076,7 +33120,7 @@
"source_file": "tests/integration/test_pyinstaller_smoke.py",
"source_location": "L78",
"id": "integration_test_pyinstaller_smoke_rationale_78",
- "community": 39,
+ "community": 46,
"norm_label": "``exlab_wizard.__main__:main`` must import cleanly. this is the operator-fa"
},
{
@@ -32085,7 +33129,7 @@
"source_file": "tests/integration/test_pyinstaller_smoke.py",
"source_location": "L92",
"id": "integration_test_pyinstaller_smoke_rationale_92",
- "community": 39,
+ "community": 46,
"norm_label": "``exlab_wizard.__version__`` is a non-empty semver string. backend spec \u00a715"
},
{
@@ -32094,7 +33138,7 @@
"source_file": "tests/integration/test_pyinstaller_smoke.py",
"source_location": "L106",
"id": "integration_test_pyinstaller_smoke_rationale_106",
- "community": 39,
+ "community": 46,
"norm_label": "``__version__`` mirrors ``[project] version`` in ``pyproject.toml``. drift"
},
{
@@ -32103,7 +33147,7 @@
"source_file": "tests/integration/test_pyinstaller_smoke.py",
"source_location": "L124",
"id": "integration_test_pyinstaller_smoke_rationale_124",
- "community": 39,
+ "community": 46,
"norm_label": "``[project.scripts]`` lists exactly the three \u00a715.3 entry points."
},
{
@@ -32112,7 +33156,7 @@
"source_file": "tests/integration/test_pyinstaller_smoke.py",
"source_location": "L139",
"id": "integration_test_pyinstaller_smoke_rationale_139",
- "community": 39,
+ "community": 46,
"norm_label": "``exlab_wizard.spec`` parses as python source. the file is interpreted by p"
},
{
@@ -32121,7 +33165,7 @@
"source_file": "tests/integration/test_pyinstaller_smoke.py",
"source_location": "L151",
"id": "integration_test_pyinstaller_smoke_rationale_151",
- "community": 39,
+ "community": 46,
"norm_label": "the spec names each of the three \u00a715.1 executables."
},
{
@@ -32130,7 +33174,7 @@
"source_file": "tests/integration/test_pyinstaller_smoke.py",
"source_location": "L165",
"id": "integration_test_pyinstaller_smoke_rationale_165",
- "community": 39,
+ "community": 46,
"norm_label": "the spec names the three entry-point script paths. pyinstaller resolves the"
},
{
@@ -32139,7 +33183,7 @@
"source_file": "tests/integration/test_pyinstaller_smoke.py",
"source_location": "L175",
"id": "integration_test_pyinstaller_smoke_rationale_175",
- "community": 39,
+ "community": 46,
"norm_label": "the spec uses pyinstaller's ``merge`` directive (backend spec \u00a715.1). ``mer"
},
{
@@ -32148,7 +33192,7 @@
"source_file": "tests/integration/test_pyinstaller_smoke.py",
"source_location": "L190",
"id": "integration_test_pyinstaller_smoke_rationale_190",
- "community": 39,
+ "community": 46,
"norm_label": "the spec declares hidden imports for libs pyinstaller misses. backend spec"
},
{
@@ -32157,7 +33201,7 @@
"source_file": "tests/integration/test_pyinstaller_smoke.py",
"source_location": "L199",
"id": "integration_test_pyinstaller_smoke_rationale_199",
- "community": 39,
+ "community": 46,
"norm_label": "the spec sets the macos ``cfbundleidentifier`` (\u00a715.1)."
},
{
@@ -32166,7 +33210,7 @@
"source_file": "tests/integration/test_pyinstaller_smoke.py",
"source_location": "L210",
"id": "integration_test_pyinstaller_smoke_rationale_210",
- "community": 39,
+ "community": 46,
"norm_label": "``.github/workflows/build.yml`` parses as yaml."
},
{
@@ -32175,7 +33219,7 @@
"source_file": "tests/integration/test_pyinstaller_smoke.py",
"source_location": "L219",
"id": "integration_test_pyinstaller_smoke_rationale_219",
- "community": 39,
+ "community": 46,
"norm_label": "the matrix covers the three v1 runners (linux, windows, mac arm64)."
},
{
@@ -32184,7 +33228,7 @@
"source_file": "tests/integration/test_pyinstaller_smoke.py",
"source_location": "L228",
"id": "integration_test_pyinstaller_smoke_rationale_228",
- "community": 39,
+ "community": 46,
"norm_label": "the workflow runs ``pyinstaller exlab_wizard.spec`` and a version probe. ba"
},
{
@@ -32193,7 +33237,7 @@
"source_file": "tests/integration/test_pyinstaller_smoke.py",
"source_location": "L247",
"id": "integration_test_pyinstaller_smoke_rationale_247",
- "community": 39,
+ "community": 46,
"norm_label": "``_internal/templates/`` is checked into the repo (\u00a715.4)."
},
{
@@ -32202,7 +33246,7 @@
"source_file": "tests/integration/test_pyinstaller_smoke.py",
"source_location": "L253",
"id": "integration_test_pyinstaller_smoke_rationale_253",
- "community": 39,
+ "community": 46,
"norm_label": "``_internal/plugins/`` is checked into the repo (\u00a715.4)."
},
{
@@ -32211,7 +33255,7 @@
"source_file": "tests/integration/test_pyinstaller_smoke.py",
"source_location": "L264",
"id": "integration_test_pyinstaller_smoke_rationale_264",
- "community": 39,
+ "community": 46,
"norm_label": "both posix and windows wrappers are committed. these mirror the ci build st"
},
{
@@ -32220,7 +33264,7 @@
"source_file": "tests/integration/test_pyinstaller_smoke.py",
"source_location": "L284",
"id": "integration_test_pyinstaller_smoke_rationale_284",
- "community": 39,
+ "community": 46,
"norm_label": "build matrix is reserved for the merge gate, not every branch push. branch"
},
{
@@ -32229,7 +33273,7 @@
"source_file": "tests/integration/test_pyinstaller_smoke.py",
"source_location": "L300",
"id": "integration_test_pyinstaller_smoke_rationale_300",
- "community": 39,
+ "community": 46,
"norm_label": "``pull_request`` is gated on ``main`` so prs to other branches don't run."
},
{
@@ -32238,7 +33282,7 @@
"source_file": "tests/integration/test_pyinstaller_smoke.py",
"source_location": "L311",
"id": "integration_test_pyinstaller_smoke_rationale_311",
- "community": 39,
+ "community": 46,
"norm_label": "superseded runs on the same ref are auto-cancelled. without ``cancel-in-pro"
},
{
@@ -32517,7 +33561,7 @@
"source_file": "tests/integration/plugins/__init__.py",
"source_location": "L1",
"id": "tests_integration_plugins_init_py",
- "community": 371,
+ "community": 374,
"norm_label": "__init__.py"
},
{
@@ -32526,7 +33570,7 @@
"source_file": "tests/integration/controller/__init__.py",
"source_location": "L1",
"id": "tests_integration_controller_init_py",
- "community": 392,
+ "community": 400,
"norm_label": "__init__.py"
},
{
@@ -32535,7 +33579,7 @@
"source_file": "tests/integration/controller/test_creation_flow.py",
"source_location": "L1",
"id": "tests_integration_controller_test_creation_flow_py",
- "community": 3,
+ "community": 140,
"norm_label": "test_creation_flow.py"
},
{
@@ -32544,7 +33588,7 @@
"source_file": "tests/integration/controller/test_creation_flow.py",
"source_location": "L66",
"id": "controller_test_creation_flow_build_config",
- "community": 3,
+ "community": 140,
"norm_label": "_build_config()"
},
{
@@ -32553,7 +33597,7 @@
"source_file": "tests/integration/controller/test_creation_flow.py",
"source_location": "L87",
"id": "controller_test_creation_flow_project_request",
- "community": 3,
+ "community": 140,
"norm_label": "_project_request()"
},
{
@@ -32562,7 +33606,7 @@
"source_file": "tests/integration/controller/test_creation_flow.py",
"source_location": "L119",
"id": "controller_test_creation_flow_run_request",
- "community": 3,
+ "community": 141,
"norm_label": "_run_request()"
},
{
@@ -32571,7 +33615,7 @@
"source_file": "tests/integration/controller/test_creation_flow.py",
"source_location": "L148",
"id": "controller_test_creation_flow_build_controller",
- "community": 3,
+ "community": 140,
"norm_label": "_build_controller()"
},
{
@@ -32580,7 +33624,7 @@
"source_file": "tests/integration/controller/test_creation_flow.py",
"source_location": "L170",
"id": "controller_test_creation_flow_drain_to_done",
- "community": 3,
+ "community": 141,
"norm_label": "_drain_to_done()"
},
{
@@ -32589,7 +33633,7 @@
"source_file": "tests/integration/controller/test_creation_flow.py",
"source_location": "L187",
"id": "controller_test_creation_flow_test_full_project_creation_happy_path",
- "community": 3,
+ "community": 140,
"norm_label": "test_full_project_creation_happy_path()"
},
{
@@ -32598,7 +33642,7 @@
"source_file": "tests/integration/controller/test_creation_flow.py",
"source_location": "L220",
"id": "controller_test_creation_flow_test_full_experimental_run_creation_happy_path",
- "community": 3,
+ "community": 141,
"norm_label": "test_full_experimental_run_creation_happy_path()"
},
{
@@ -32607,7 +33651,7 @@
"source_file": "tests/integration/controller/test_creation_flow.py",
"source_location": "L239",
"id": "controller_test_creation_flow_test_same_minute_run_creation_collision_is_hard_failure",
- "community": 3,
+ "community": 141,
"norm_label": "test_same_minute_run_creation_collision_is_hard_failure()"
},
{
@@ -32616,7 +33660,7 @@
"source_file": "tests/integration/controller/test_creation_flow.py",
"source_location": "L271",
"id": "controller_test_creation_flow_test_test_run_creation_uses_test_runs_subdir_and_marks_run_kind",
- "community": 3,
+ "community": 141,
"norm_label": "test_test_run_creation_uses_test_runs_subdir_and_marks_run_kind()"
},
{
@@ -32625,7 +33669,7 @@
"source_file": "tests/integration/controller/test_creation_flow.py",
"source_location": "L302",
"id": "controller_test_creation_flow_test_validation_rejects_empty_label",
- "community": 3,
+ "community": 140,
"norm_label": "test_validation_rejects_empty_label()"
},
{
@@ -32634,7 +33678,7 @@
"source_file": "tests/integration/controller/test_creation_flow.py",
"source_location": "L317",
"id": "controller_test_creation_flow_test_validation_rejects_label_over_length",
- "community": 3,
+ "community": 140,
"norm_label": "test_validation_rejects_label_over_length()"
},
{
@@ -32643,7 +33687,7 @@
"source_file": "tests/integration/controller/test_creation_flow.py",
"source_location": "L331",
"id": "controller_test_creation_flow_test_validation_rejects_objective_over_length",
- "community": 3,
+ "community": 140,
"norm_label": "test_validation_rejects_objective_over_length()"
},
{
@@ -32652,7 +33696,7 @@
"source_file": "tests/integration/controller/test_creation_flow.py",
"source_location": "L347",
"id": "controller_test_creation_flow_test_validation_rejects_operator_not_in_allowlist",
- "community": 3,
+ "community": 140,
"norm_label": "test_validation_rejects_operator_not_in_allowlist()"
},
{
@@ -32661,7 +33705,7 @@
"source_file": "tests/integration/controller/test_creation_flow.py",
"source_location": "L361",
"id": "controller_test_creation_flow_test_validation_rejects_unknown_equipment",
- "community": 3,
+ "community": 140,
"norm_label": "test_validation_rejects_unknown_equipment()"
},
{
@@ -32670,7 +33714,7 @@
"source_file": "tests/integration/controller/test_creation_flow.py",
"source_location": "L377",
"id": "controller_test_creation_flow_test_validation_rejects_unsafe_project_name_for_runs",
- "community": 3,
+ "community": 483,
"norm_label": "test_validation_rejects_unsafe_project_name_for_runs()"
},
{
@@ -32679,7 +33723,7 @@
"source_file": "tests/integration/controller/test_creation_flow.py",
"source_location": "L393",
"id": "controller_test_creation_flow_test_validation_rejects_empty_objective",
- "community": 3,
+ "community": 140,
"norm_label": "test_validation_rejects_empty_objective()"
},
{
@@ -32688,7 +33732,7 @@
"source_file": "tests/integration/controller/test_creation_flow.py",
"source_location": "L406",
"id": "controller_test_creation_flow_test_validation_rejects_empty_operator",
- "community": 3,
+ "community": 140,
"norm_label": "test_validation_rejects_empty_operator()"
},
{
@@ -32697,268 +33741,268 @@
"source_file": "tests/integration/controller/test_creation_flow.py",
"source_location": "L424",
"id": "controller_test_creation_flow_test_plugin_input_required_suspend_resume",
- "community": 3,
+ "community": 141,
"norm_label": "test_plugin_input_required_suspend_resume()"
},
{
"label": "test_cancel_with_discard_files_removes_partial_dir()",
"file_type": "code",
"source_file": "tests/integration/controller/test_creation_flow.py",
- "source_location": "L495",
+ "source_location": "L500",
"id": "controller_test_creation_flow_test_cancel_with_discard_files_removes_partial_dir",
- "community": 3,
+ "community": 415,
"norm_label": "test_cancel_with_discard_files_removes_partial_dir()"
},
{
"label": "test_cancel_without_discard_leaves_partial_dir()",
"file_type": "code",
"source_file": "tests/integration/controller/test_creation_flow.py",
- "source_location": "L533",
+ "source_location": "L538",
"id": "controller_test_creation_flow_test_cancel_without_discard_leaves_partial_dir",
- "community": 3,
+ "community": 410,
"norm_label": "test_cancel_without_discard_leaves_partial_dir()"
},
{
"label": "test_post_validate_blocks_sync_when_placeholder_left_in_file()",
"file_type": "code",
"source_file": "tests/integration/controller/test_creation_flow.py",
- "source_location": "L555",
+ "source_location": "L560",
"id": "controller_test_creation_flow_test_post_validate_blocks_sync_when_placeholder_left_in_file",
- "community": 3,
+ "community": 141,
"norm_label": "test_post_validate_blocks_sync_when_placeholder_left_in_file()"
},
{
"label": "test_subscribe_yields_phase_events_and_done_envelope()",
"file_type": "code",
"source_file": "tests/integration/controller/test_creation_flow.py",
- "source_location": "L596",
+ "source_location": "L601",
"id": "controller_test_creation_flow_test_subscribe_yields_phase_events_and_done_envelope",
- "community": 3,
+ "community": 140,
"norm_label": "test_subscribe_yields_phase_events_and_done_envelope()"
},
{
"label": "test_status_unknown_session_raises()",
"file_type": "code",
"source_file": "tests/integration/controller/test_creation_flow.py",
- "source_location": "L624",
+ "source_location": "L629",
"id": "controller_test_creation_flow_test_status_unknown_session_raises",
- "community": 3,
+ "community": 140,
"norm_label": "test_status_unknown_session_raises()"
},
{
"label": "test_resume_rejects_session_not_in_input_required()",
"file_type": "code",
"source_file": "tests/integration/controller/test_creation_flow.py",
- "source_location": "L632",
+ "source_location": "L637",
"id": "controller_test_creation_flow_test_resume_rejects_session_not_in_input_required",
- "community": 3,
+ "community": 140,
"norm_label": "test_resume_rejects_session_not_in_input_required()"
},
{
"label": "test_cancel_unknown_session_is_noop()",
"file_type": "code",
"source_file": "tests/integration/controller/test_creation_flow.py",
- "source_location": "L642",
+ "source_location": "L647",
"id": "controller_test_creation_flow_test_cancel_unknown_session_is_noop",
- "community": 3,
+ "community": 140,
"norm_label": "test_cancel_unknown_session_is_noop()"
},
{
"label": "test_noop_readme_generator_writes_minimal_readme()",
"file_type": "code",
"source_file": "tests/integration/controller/test_creation_flow.py",
- "source_location": "L655",
+ "source_location": "L660",
"id": "controller_test_creation_flow_test_noop_readme_generator_writes_minimal_readme",
- "community": 180,
+ "community": 25,
"norm_label": "test_noop_readme_generator_writes_minimal_readme()"
},
{
"label": "test_real_readme_generator_writes_frontmatter_and_cache()",
"file_type": "code",
"source_file": "tests/integration/controller/test_creation_flow.py",
- "source_location": "L687",
+ "source_location": "L692",
"id": "controller_test_creation_flow_test_real_readme_generator_writes_frontmatter_and_cache",
- "community": 3,
+ "community": 403,
"norm_label": "test_real_readme_generator_writes_frontmatter_and_cache()"
},
{
"label": "test_noop_nas_sync_returns_none()",
"file_type": "code",
"source_file": "tests/integration/controller/test_creation_flow.py",
- "source_location": "L742",
+ "source_location": "L747",
"id": "controller_test_creation_flow_test_noop_nas_sync_returns_none",
- "community": 3,
+ "community": 140,
"norm_label": "test_noop_nas_sync_returns_none()"
},
{
"label": "test_resume_unknown_session_raises()",
"file_type": "code",
"source_file": "tests/integration/controller/test_creation_flow.py",
- "source_location": "L753",
+ "source_location": "L758",
"id": "controller_test_creation_flow_test_resume_unknown_session_raises",
- "community": 3,
+ "community": 140,
"norm_label": "test_resume_unknown_session_raises()"
},
{
"label": "test_required_template_field_missing_in_readme_extra_fails()",
"file_type": "code",
"source_file": "tests/integration/controller/test_creation_flow.py",
- "source_location": "L761",
+ "source_location": "L766",
"id": "controller_test_creation_flow_test_required_template_field_missing_in_readme_extra_fails",
- "community": 3,
+ "community": 409,
"norm_label": "test_required_template_field_missing_in_readme_extra_fails()"
},
{
"label": "test_required_template_field_present_passes_validation()",
"file_type": "code",
"source_file": "tests/integration/controller/test_creation_flow.py",
- "source_location": "L797",
+ "source_location": "L802",
"id": "controller_test_creation_flow_test_required_template_field_present_passes_validation",
- "community": 3,
+ "community": 141,
"norm_label": "test_required_template_field_present_passes_validation()"
},
{
"label": "test_subscribe_unknown_session_raises()",
"file_type": "code",
"source_file": "tests/integration/controller/test_creation_flow.py",
- "source_location": "L832",
+ "source_location": "L837",
"id": "controller_test_creation_flow_test_subscribe_unknown_session_raises",
- "community": 3,
+ "community": 140,
"norm_label": "test_subscribe_unknown_session_raises()"
},
{
"label": "test_cancel_input_required_aborts_session_via_plugin_callback()",
"file_type": "code",
"source_file": "tests/integration/controller/test_creation_flow.py",
- "source_location": "L841",
+ "source_location": "L846",
"id": "controller_test_creation_flow_test_cancel_input_required_aborts_session_via_plugin_callback",
- "community": 3,
+ "community": 405,
"norm_label": "test_cancel_input_required_aborts_session_via_plugin_callback()"
},
{
"label": "test_cancel_invokes_cleanup_when_compose_path_fails()",
"file_type": "code",
"source_file": "tests/integration/controller/test_creation_flow.py",
- "source_location": "L899",
+ "source_location": "L904",
"id": "controller_test_creation_flow_test_cancel_invokes_cleanup_when_compose_path_fails",
- "community": 3,
+ "community": 406,
"norm_label": "test_cancel_invokes_cleanup_when_compose_path_fails()"
},
{
"label": "test_cleanup_removes_existing_directory_when_discard_files_true()",
"file_type": "code",
"source_file": "tests/integration/controller/test_creation_flow.py",
- "source_location": "L922",
+ "source_location": "L927",
"id": "controller_test_creation_flow_test_cleanup_removes_existing_directory_when_discard_files_true",
- "community": 3,
+ "community": 408,
"norm_label": "test_cleanup_removes_existing_directory_when_discard_files_true()"
},
{
"label": "test_config_required_readme_field_missing_fails()",
"file_type": "code",
"source_file": "tests/integration/controller/test_creation_flow.py",
- "source_location": "L941",
+ "source_location": "L946",
"id": "controller_test_creation_flow_test_config_required_readme_field_missing_fails",
- "community": 3,
+ "community": 413,
"norm_label": "test_config_required_readme_field_missing_fails()"
},
{
"label": "test_render_failure_transitions_session_to_failed()",
"file_type": "code",
"source_file": "tests/integration/controller/test_creation_flow.py",
- "source_location": "L967",
+ "source_location": "L972",
"id": "controller_test_creation_flow_test_render_failure_transitions_session_to_failed",
- "community": 3,
+ "community": 412,
"norm_label": "test_render_failure_transitions_session_to_failed()"
},
{
"label": "test_run_creation_writes_equipment_json_at_root()",
"file_type": "code",
"source_file": "tests/integration/controller/test_creation_flow.py",
- "source_location": "L995",
+ "source_location": "L1000",
"id": "controller_test_creation_flow_test_run_creation_writes_equipment_json_at_root",
- "community": 3,
+ "community": 307,
"norm_label": "test_run_creation_writes_equipment_json_at_root()"
},
{
"label": "test_format_error_with_non_validation_exception_returns_internal_error()",
"file_type": "code",
"source_file": "tests/integration/controller/test_creation_flow.py",
- "source_location": "L1009",
+ "source_location": "L1014",
"id": "controller_test_creation_flow_test_format_error_with_non_validation_exception_returns_internal_error",
- "community": 3,
+ "community": 333,
"norm_label": "test_format_error_with_non_validation_exception_returns_internal_error()"
},
{
"label": "test_append_log_writes_log_line()",
"file_type": "code",
"source_file": "tests/integration/controller/test_creation_flow.py",
- "source_location": "L1018",
+ "source_location": "L1023",
"id": "controller_test_creation_flow_test_append_log_writes_log_line",
- "community": 3,
+ "community": 333,
"norm_label": "test_append_log_writes_log_line()"
},
{
"label": "test_run_inherits_lims_project_block_from_parent()",
"file_type": "code",
"source_file": "tests/integration/controller/test_creation_flow.py",
- "source_location": "L1034",
+ "source_location": "L1039",
"id": "controller_test_creation_flow_test_run_inherits_lims_project_block_from_parent",
- "community": 3,
+ "community": 307,
"norm_label": "test_run_inherits_lims_project_block_from_parent()"
},
{
"label": "test_cancel_before_task_starts_invokes_cleanup()",
"file_type": "code",
"source_file": "tests/integration/controller/test_creation_flow.py",
- "source_location": "L1058",
+ "source_location": "L1063",
"id": "controller_test_creation_flow_test_cancel_before_task_starts_invokes_cleanup",
- "community": 3,
+ "community": 411,
"norm_label": "test_cancel_before_task_starts_invokes_cleanup()"
},
{
"label": "test_resume_session_with_no_resume_queue_raises()",
"file_type": "code",
"source_file": "tests/integration/controller/test_creation_flow.py",
- "source_location": "L1078",
+ "source_location": "L1083",
"id": "controller_test_creation_flow_test_resume_session_with_no_resume_queue_raises",
- "community": 3,
+ "community": 414,
"norm_label": "test_resume_session_with_no_resume_queue_raises()"
},
{
"label": "test_subscribe_creates_queue_when_missing()",
"file_type": "code",
"source_file": "tests/integration/controller/test_creation_flow.py",
- "source_location": "L1099",
+ "source_location": "L1104",
"id": "controller_test_creation_flow_test_subscribe_creates_queue_when_missing",
- "community": 3,
+ "community": 404,
"norm_label": "test_subscribe_creates_queue_when_missing()"
},
{
"label": "test_plugin_pass_aborted_transitions_to_failed()",
"file_type": "code",
"source_file": "tests/integration/controller/test_creation_flow.py",
- "source_location": "L1123",
+ "source_location": "L1128",
"id": "controller_test_creation_flow_test_plugin_pass_aborted_transitions_to_failed",
- "community": 3,
+ "community": 402,
"norm_label": "test_plugin_pass_aborted_transitions_to_failed()"
},
{
"label": "test_required_field_ids_filters_non_dict_entries()",
"file_type": "code",
"source_file": "tests/integration/controller/test_creation_flow.py",
- "source_location": "L1168",
+ "source_location": "L1173",
"id": "controller_test_creation_flow_test_required_field_ids_filters_non_dict_entries",
- "community": 3,
+ "community": 407,
"norm_label": "test_required_field_ids_filters_non_dict_entries()"
},
{
"label": "test_run_without_parent_creation_json_fills_stub_block()",
"file_type": "code",
"source_file": "tests/integration/controller/test_creation_flow.py",
- "source_location": "L1184",
+ "source_location": "L1189",
"id": "controller_test_creation_flow_test_run_without_parent_creation_json_fills_stub_block",
- "community": 3,
+ "community": 141,
"norm_label": "test_run_without_parent_creation_json_fills_stub_block()"
},
{
@@ -32967,7 +34011,7 @@
"source_file": "tests/integration/controller/test_creation_flow.py",
"source_location": "L1",
"id": "controller_test_creation_flow_rationale_1",
- "community": 3,
+ "community": 140,
"norm_label": "end-to-end integration tests for :class:`creationcontroller`. each test drives"
},
{
@@ -32976,7 +34020,7 @@
"source_file": "tests/integration/controller/test_creation_flow.py",
"source_location": "L67",
"id": "controller_test_creation_flow_rationale_67",
- "community": 3,
+ "community": 140,
"norm_label": "construct a minimal config with one equipment configured."
},
{
@@ -32985,7 +34029,7 @@
"source_file": "tests/integration/controller/test_creation_flow.py",
"source_location": "L171",
"id": "controller_test_creation_flow_rationale_171",
- "community": 3,
+ "community": 141,
"norm_label": "wait for the session task to finish and return the final state dict."
},
{
@@ -32994,7 +34038,7 @@
"source_file": "tests/integration/controller/test_creation_flow.py",
"source_location": "L188",
"id": "controller_test_creation_flow_rationale_188",
- "community": 3,
+ "community": 140,
"norm_label": "project creation walks every state and emits a current-version creation.json."
},
{
@@ -33003,7 +34047,7 @@
"source_file": "tests/integration/controller/test_creation_flow.py",
"source_location": "L242",
"id": "controller_test_creation_flow_rationale_242",
- "community": 3,
+ "community": 141,
"norm_label": "redesign \u00a73.4: two creations on the same instrument within the same minute r"
},
{
@@ -33012,7 +34056,7 @@
"source_file": "tests/integration/controller/test_creation_flow.py",
"source_location": "L378",
"id": "controller_test_creation_flow_rationale_378",
- "community": 3,
+ "community": 483,
"norm_label": "a run whose parent project name is not a safe path segment (\u00a73.2) is rejecte"
},
{
@@ -33021,196 +34065,196 @@
"source_file": "tests/integration/controller/test_creation_flow.py",
"source_location": "L425",
"id": "controller_test_creation_flow_rationale_425",
- "community": 3,
+ "community": 141,
"norm_label": "when a plugin raises plugininputrequired, controller emits the event and res"
},
{
"label": "A cancel with ``discard_files=True`` deletes the partial directory.",
"file_type": "rationale",
"source_file": "tests/integration/controller/test_creation_flow.py",
- "source_location": "L496",
- "id": "controller_test_creation_flow_rationale_496",
- "community": 3,
+ "source_location": "L501",
+ "id": "controller_test_creation_flow_rationale_501",
+ "community": 415,
"norm_label": "a cancel with ``discard_files=true`` deletes the partial directory."
},
{
"label": "A cancel with ``discard_files=False`` leaves the partial directory.",
"file_type": "rationale",
"source_file": "tests/integration/controller/test_creation_flow.py",
- "source_location": "L534",
- "id": "controller_test_creation_flow_rationale_534",
- "community": 3,
+ "source_location": "L539",
+ "id": "controller_test_creation_flow_rationale_539",
+ "community": 410,
"norm_label": "a cancel with ``discard_files=false`` leaves the partial directory."
},
{
"label": "A rendered file containing ```` must trip the post-validate gate.",
"file_type": "rationale",
"source_file": "tests/integration/controller/test_creation_flow.py",
- "source_location": "L558",
- "id": "controller_test_creation_flow_rationale_558",
- "community": 3,
+ "source_location": "L563",
+ "id": "controller_test_creation_flow_rationale_563",
+ "community": 141,
"norm_label": "a rendered file containing ```` must trip the post-validate gate."
},
{
"label": "T1 (\u00a7C1): the production ``ReadmeGenerator`` -- injected by ``tray.dependenc",
"file_type": "rationale",
"source_file": "tests/integration/controller/test_creation_flow.py",
- "source_location": "L688",
- "id": "controller_test_creation_flow_rationale_688",
- "community": 3,
+ "source_location": "L693",
+ "id": "controller_test_creation_flow_rationale_693",
+ "community": 403,
"norm_label": "t1 (\u00a7c1): the production ``readmegenerator`` -- injected by ``tray.dependenc"
},
{
"label": "A template-required README field missing from ``readme_extra`` must trigger",
"file_type": "rationale",
"source_file": "tests/integration/controller/test_creation_flow.py",
- "source_location": "L764",
- "id": "controller_test_creation_flow_rationale_764",
- "community": 3,
+ "source_location": "L769",
+ "id": "controller_test_creation_flow_rationale_769",
+ "community": 409,
"norm_label": "a template-required readme field missing from ``readme_extra`` must trigger"
},
{
"label": "When ``readme_extra`` supplies a non-empty value for a required field the va",
"file_type": "rationale",
"source_file": "tests/integration/controller/test_creation_flow.py",
- "source_location": "L800",
- "id": "controller_test_creation_flow_rationale_800",
- "community": 3,
+ "source_location": "L805",
+ "id": "controller_test_creation_flow_rationale_805",
+ "community": 141,
"norm_label": "when ``readme_extra`` supplies a non-empty value for a required field the va"
},
{
"label": "When the operator cancels the input-required prompt (host returns ``aborted=",
"file_type": "rationale",
"source_file": "tests/integration/controller/test_creation_flow.py",
- "source_location": "L844",
- "id": "controller_test_creation_flow_rationale_844",
- "community": 3,
+ "source_location": "L849",
+ "id": "controller_test_creation_flow_rationale_849",
+ "community": 405,
"norm_label": "when the operator cancels the input-required prompt (host returns ``aborted="
},
{
"label": "``_cleanup`` swallows compose-path errors gracefully.",
"file_type": "rationale",
"source_file": "tests/integration/controller/test_creation_flow.py",
- "source_location": "L902",
- "id": "controller_test_creation_flow_rationale_902",
- "community": 3,
+ "source_location": "L907",
+ "id": "controller_test_creation_flow_rationale_907",
+ "community": 406,
"norm_label": "``_cleanup`` swallows compose-path errors gracefully."
},
{
"label": "``_cleanup`` removes the destination directory when ``discard_files=True``.",
"file_type": "rationale",
"source_file": "tests/integration/controller/test_creation_flow.py",
- "source_location": "L925",
- "id": "controller_test_creation_flow_rationale_925",
- "community": 3,
+ "source_location": "L930",
+ "id": "controller_test_creation_flow_rationale_930",
+ "community": 408,
"norm_label": "``_cleanup`` removes the destination directory when ``discard_files=true``."
},
{
"label": "A config.yaml-required README field missing from ``readme_extra`` must trigg",
"file_type": "rationale",
"source_file": "tests/integration/controller/test_creation_flow.py",
- "source_location": "L942",
- "id": "controller_test_creation_flow_rationale_942",
- "community": 3,
+ "source_location": "L947",
+ "id": "controller_test_creation_flow_rationale_947",
+ "community": 413,
"norm_label": "a config.yaml-required readme field missing from ``readme_extra`` must trigg"
},
{
"label": "A Copier render failure (e.g. dst exists) transitions the session to ``FAILE",
"file_type": "rationale",
"source_file": "tests/integration/controller/test_creation_flow.py",
- "source_location": "L968",
- "id": "controller_test_creation_flow_rationale_968",
- "community": 3,
+ "source_location": "L973",
+ "id": "controller_test_creation_flow_rationale_973",
+ "community": 412,
"norm_label": "a copier render failure (e.g. dst exists) transitions the session to ``faile"
},
{
"label": "The controller writes ``equipment.json`` under ``//.exlab-wiz",
"file_type": "rationale",
"source_file": "tests/integration/controller/test_creation_flow.py",
- "source_location": "L996",
- "id": "controller_test_creation_flow_rationale_996",
- "community": 3,
+ "source_location": "L1001",
+ "id": "controller_test_creation_flow_rationale_1001",
+ "community": 307,
"norm_label": "the controller writes ``equipment.json`` under ``//.exlab-wiz"
},
{
"label": "Generic exceptions are wrapped as ``internal_error``.",
"file_type": "rationale",
"source_file": "tests/integration/controller/test_creation_flow.py",
- "source_location": "L1012",
- "id": "controller_test_creation_flow_rationale_1012",
- "community": 3,
+ "source_location": "L1017",
+ "id": "controller_test_creation_flow_rationale_1017",
+ "community": 333,
"norm_label": "generic exceptions are wrapped as ``internal_error``."
},
{
"label": "The best-effort log appender writes to the equipment cache dir.",
"file_type": "rationale",
"source_file": "tests/integration/controller/test_creation_flow.py",
- "source_location": "L1019",
- "id": "controller_test_creation_flow_rationale_1019",
- "community": 3,
+ "source_location": "L1024",
+ "id": "controller_test_creation_flow_rationale_1024",
+ "community": 333,
"norm_label": "the best-effort log appender writes to the equipment cache dir."
},
{
"label": "A run inherits its LIMS identity from the parent project's creation.json (Ba",
"file_type": "rationale",
"source_file": "tests/integration/controller/test_creation_flow.py",
- "source_location": "L1035",
- "id": "controller_test_creation_flow_rationale_1035",
- "community": 3,
+ "source_location": "L1040",
+ "id": "controller_test_creation_flow_rationale_1040",
+ "community": 307,
"norm_label": "a run inherits its lims identity from the parent project's creation.json (ba"
},
{
"label": "If ``cancel`` is invoked on a session that has not yet started a pipeline ta",
"file_type": "rationale",
"source_file": "tests/integration/controller/test_creation_flow.py",
- "source_location": "L1059",
- "id": "controller_test_creation_flow_rationale_1059",
- "community": 3,
+ "source_location": "L1064",
+ "id": "controller_test_creation_flow_rationale_1064",
+ "community": 411,
"norm_label": "if ``cancel`` is invoked on a session that has not yet started a pipeline ta"
},
{
"label": "Resume against a session that has no resume queue raises.",
"file_type": "rationale",
"source_file": "tests/integration/controller/test_creation_flow.py",
- "source_location": "L1079",
- "id": "controller_test_creation_flow_rationale_1079",
- "community": 3,
+ "source_location": "L1084",
+ "id": "controller_test_creation_flow_rationale_1084",
+ "community": 414,
"norm_label": "resume against a session that has no resume queue raises."
},
{
"label": "``subscribe`` initializes ``event_queue`` if the session opened with none (d",
"file_type": "rationale",
"source_file": "tests/integration/controller/test_creation_flow.py",
- "source_location": "L1100",
- "id": "controller_test_creation_flow_rationale_1100",
- "community": 3,
+ "source_location": "L1105",
+ "id": "controller_test_creation_flow_rationale_1105",
+ "community": 404,
"norm_label": "``subscribe`` initializes ``event_queue`` if the session opened with none (d"
},
{
"label": "When :class:`PluginHost` returns ``aborted=True``, the controller transition",
"file_type": "rationale",
"source_file": "tests/integration/controller/test_creation_flow.py",
- "source_location": "L1124",
- "id": "controller_test_creation_flow_rationale_1124",
- "community": 3,
+ "source_location": "L1129",
+ "id": "controller_test_creation_flow_rationale_1129",
+ "community": 402,
"norm_label": "when :class:`pluginhost` returns ``aborted=true``, the controller transition"
},
{
"label": "The ``_required_field_ids`` helper must skip non-dict entries in the templat",
"file_type": "rationale",
"source_file": "tests/integration/controller/test_creation_flow.py",
- "source_location": "L1169",
- "id": "controller_test_creation_flow_rationale_1169",
- "community": 3,
+ "source_location": "L1174",
+ "id": "controller_test_creation_flow_rationale_1174",
+ "community": 407,
"norm_label": "the ``_required_field_ids`` helper must skip non-dict entries in the templat"
},
{
"label": "A run whose parent project folder has no readable creation.json still produc",
"file_type": "rationale",
"source_file": "tests/integration/controller/test_creation_flow.py",
- "source_location": "L1185",
- "id": "controller_test_creation_flow_rationale_1185",
- "community": 3,
+ "source_location": "L1190",
+ "id": "controller_test_creation_flow_rationale_1190",
+ "community": 141,
"norm_label": "a run whose parent project folder has no readable creation.json still produc"
},
{
@@ -33219,7 +34263,7 @@
"source_file": "tests/integration/api/test_full_flow.py",
"source_location": "L1",
"id": "tests_integration_api_test_full_flow_py",
- "community": 135,
+ "community": 175,
"norm_label": "test_full_flow.py"
},
{
@@ -33237,7 +34281,7 @@
"source_file": "tests/integration/api/test_full_flow.py",
"source_location": "L75",
"id": "api_test_full_flow_app_with_real_controller",
- "community": 51,
+ "community": 10,
"norm_label": "app_with_real_controller()"
},
{
@@ -33246,7 +34290,7 @@
"source_file": "tests/integration/api/test_full_flow.py",
"source_location": "L104",
"id": "api_test_full_flow_client",
- "community": 135,
+ "community": 175,
"norm_label": "_client()"
},
{
@@ -33255,7 +34299,7 @@
"source_file": "tests/integration/api/test_full_flow.py",
"source_location": "L110",
"id": "api_test_full_flow_test_full_project_creation_flow",
- "community": 135,
+ "community": 175,
"norm_label": "test_full_project_creation_flow()"
},
{
@@ -33264,7 +34308,7 @@
"source_file": "tests/integration/api/test_full_flow.py",
"source_location": "L154",
"id": "api_test_full_flow_test_health_returns_ready_when_setup_complete",
- "community": 135,
+ "community": 175,
"norm_label": "test_health_returns_ready_when_setup_complete()"
},
{
@@ -33273,7 +34317,7 @@
"source_file": "tests/integration/api/test_full_flow.py",
"source_location": "L164",
"id": "api_test_full_flow_test_health_warns_when_lims_unreachable",
- "community": 135,
+ "community": 175,
"norm_label": "test_health_warns_when_lims_unreachable()"
},
{
@@ -33282,7 +34326,7 @@
"source_file": "tests/integration/api/test_full_flow.py",
"source_location": "L174",
"id": "api_test_full_flow_test_setup_status_each_incomplete_state",
- "community": 135,
+ "community": 175,
"norm_label": "test_setup_status_each_incomplete_state()"
},
{
@@ -33291,7 +34335,7 @@
"source_file": "tests/integration/api/test_full_flow.py",
"source_location": "L208",
"id": "api_test_full_flow_test_create_session_blocked_when_setup_incomplete",
- "community": 135,
+ "community": 175,
"norm_label": "test_create_session_blocked_when_setup_incomplete()"
},
{
@@ -33300,7 +34344,7 @@
"source_file": "tests/integration/api/test_full_flow.py",
"source_location": "L232",
"id": "api_test_full_flow_test_lims_unreachable_does_not_block_creation",
- "community": 135,
+ "community": 10,
"norm_label": "test_lims_unreachable_does_not_block_creation()"
},
{
@@ -33309,7 +34353,7 @@
"source_file": "tests/integration/api/test_full_flow.py",
"source_location": "L283",
"id": "api_test_full_flow_test_problems_refresh_returns_audit_count",
- "community": 135,
+ "community": 175,
"norm_label": "test_problems_refresh_returns_audit_count()"
},
{
@@ -33318,7 +34362,7 @@
"source_file": "tests/integration/api/test_full_flow.py",
"source_location": "L305",
"id": "api_test_full_flow_test_get_problems_returns_findings_and_filters",
- "community": 135,
+ "community": 175,
"norm_label": "test_get_problems_returns_findings_and_filters()"
},
{
@@ -33327,7 +34371,7 @@
"source_file": "tests/integration/api/test_full_flow.py",
"source_location": "L324",
"id": "api_test_full_flow_test_put_config_validates_and_updates_state",
- "community": 135,
+ "community": 175,
"norm_label": "test_put_config_validates_and_updates_state()"
},
{
@@ -33336,7 +34380,7 @@
"source_file": "tests/integration/api/test_full_flow.py",
"source_location": "L344",
"id": "api_test_full_flow_test_get_tree_in_ready_state",
- "community": 135,
+ "community": 175,
"norm_label": "test_get_tree_in_ready_state()"
},
{
@@ -33345,7 +34389,7 @@
"source_file": "tests/integration/api/test_full_flow.py",
"source_location": "L357",
"id": "api_test_full_flow_test_websocket_streams_session_events_sync",
- "community": 9,
+ "community": 10,
"norm_label": "test_websocket_streams_session_events_sync()"
},
{
@@ -33354,7 +34398,7 @@
"source_file": "tests/integration/api/test_full_flow.py",
"source_location": "L428",
"id": "api_test_full_flow_build_minimal_controller",
- "community": 135,
+ "community": 175,
"norm_label": "_build_minimal_controller()"
},
{
@@ -33363,7 +34407,7 @@
"source_file": "tests/integration/api/test_full_flow.py",
"source_location": "L1",
"id": "api_test_full_flow_rationale_1",
- "community": 135,
+ "community": 175,
"norm_label": "full-flow integration test for the fastapi surface. drives one project-creation"
},
{
@@ -33372,7 +34416,7 @@
"source_file": "tests/integration/api/test_full_flow.py",
"source_location": "L76",
"id": "api_test_full_flow_rationale_76",
- "community": 51,
+ "community": 10,
"norm_label": "build a fastapi app with the real controller + validator wired."
},
{
@@ -33381,7 +34425,7 @@
"source_file": "tests/integration/api/test_full_flow.py",
"source_location": "L111",
"id": "api_test_full_flow_rationale_111",
- "community": 135,
+ "community": 175,
"norm_label": "end-to-end: post /sessions -> session reaches done -> creation.json on disk."
},
{
@@ -33390,7 +34434,7 @@
"source_file": "tests/integration/api/test_full_flow.py",
"source_location": "L175",
"id": "api_test_full_flow_rationale_175",
- "community": 135,
+ "community": 175,
"norm_label": "each non-soft incomplete_* state surfaces the right next_action."
},
{
@@ -33399,7 +34443,7 @@
"source_file": "tests/integration/api/test_full_flow.py",
"source_location": "L209",
"id": "api_test_full_flow_rationale_209",
- "community": 135,
+ "community": 175,
"norm_label": "post /sessions returns 503 + setup_incomplete in non-soft incomplete_* states."
},
{
@@ -33408,7 +34452,7 @@
"source_file": "tests/integration/api/test_full_flow.py",
"source_location": "L233",
"id": "api_test_full_flow_rationale_233",
- "community": 135,
+ "community": 10,
"norm_label": "the soft block does not gate post /sessions per \u00a74.9.4."
},
{
@@ -33417,7 +34461,7 @@
"source_file": "tests/integration/api/test_full_flow.py",
"source_location": "L284",
"id": "api_test_full_flow_rationale_284",
- "community": 135,
+ "community": 175,
"norm_label": "``post /problems/refresh`` invokes validator.audit and returns the count."
},
{
@@ -33426,7 +34470,7 @@
"source_file": "tests/integration/api/test_full_flow.py",
"source_location": "L358",
"id": "api_test_full_flow_rationale_358",
- "community": 9,
+ "community": 10,
"norm_label": "end-to-end websocket stream of phase frames. uses the synchronous testclien"
},
{
@@ -33435,7 +34479,7 @@
"source_file": "tests/integration/api/__init__.py",
"source_location": "L1",
"id": "tests_integration_api_init_py",
- "community": 393,
+ "community": 401,
"norm_label": "__init__.py"
},
{
@@ -33444,7 +34488,7 @@
"source_file": "tests/fixtures/__init__.py",
"source_location": "L1",
"id": "tests_fixtures_init_py",
- "community": 536,
+ "community": 561,
"norm_label": "__init__.py"
},
{
@@ -33453,7 +34497,7 @@
"source_file": "tests/fixtures/mock_lims.py",
"source_location": "L1",
"id": "tests_fixtures_mock_lims_py",
- "community": 121,
+ "community": 127,
"norm_label": "mock_lims.py"
},
{
@@ -33462,7 +34506,7 @@
"source_file": "tests/fixtures/mock_lims.py",
"source_location": "L38",
"id": "fixtures_mock_lims_mocklimsstate",
- "community": 331,
+ "community": 332,
"norm_label": "mocklimsstate"
},
{
@@ -33471,7 +34515,7 @@
"source_file": "tests/fixtures/mock_lims.py",
"source_location": "L53",
"id": "fixtures_mock_lims_mocklimsstate_issue_session",
- "community": 331,
+ "community": 332,
"norm_label": ".issue_session()"
},
{
@@ -33480,7 +34524,7 @@
"source_file": "tests/fixtures/mock_lims.py",
"source_location": "L59",
"id": "fixtures_mock_lims_mocklimsstate_is_valid_session",
- "community": 331,
+ "community": 332,
"norm_label": ".is_valid_session()"
},
{
@@ -33489,7 +34533,7 @@
"source_file": "tests/fixtures/mock_lims.py",
"source_location": "L62",
"id": "fixtures_mock_lims_mocklimsstate_invalidate_sessions",
- "community": 331,
+ "community": 332,
"norm_label": ".invalidate_sessions()"
},
{
@@ -33498,7 +34542,7 @@
"source_file": "tests/fixtures/mock_lims.py",
"source_location": "L69",
"id": "fixtures_mock_lims_default_user",
- "community": 121,
+ "community": 127,
"norm_label": "_default_user()"
},
{
@@ -33507,7 +34551,7 @@
"source_file": "tests/fixtures/mock_lims.py",
"source_location": "L77",
"id": "fixtures_mock_lims_default_project",
- "community": 121,
+ "community": 127,
"norm_label": "_default_project()"
},
{
@@ -33516,7 +34560,7 @@
"source_file": "tests/fixtures/mock_lims.py",
"source_location": "L90",
"id": "fixtures_mock_lims_make_mock_lims_app",
- "community": 121,
+ "community": 127,
"norm_label": "make_mock_lims_app()"
},
{
@@ -33525,7 +34569,7 @@
"source_file": "tests/fixtures/mock_lims.py",
"source_location": "L1",
"id": "fixtures_mock_lims_rationale_1",
- "community": 121,
+ "community": 127,
"norm_label": "in-memory fastapi fixture lims server used by the lims-client tests. the fixtur"
},
{
@@ -33534,7 +34578,7 @@
"source_file": "tests/fixtures/mock_lims.py",
"source_location": "L39",
"id": "fixtures_mock_lims_rationale_39",
- "community": 331,
+ "community": 332,
"norm_label": "mutable per-app state. ``valid_email`` / ``valid_password`` are the credent"
},
{
@@ -33543,7 +34587,7 @@
"source_file": "tests/fixtures/mock_lims.py",
"source_location": "L54",
"id": "fixtures_mock_lims_rationale_54",
- "community": 331,
+ "community": 332,
"norm_label": "mint a fresh opaque session token."
},
{
@@ -33552,7 +34596,7 @@
"source_file": "tests/fixtures/mock_lims.py",
"source_location": "L63",
"id": "fixtures_mock_lims_rationale_63",
- "community": 331,
+ "community": 332,
"norm_label": "drop every issued session token. the next protected call sees a 401 and"
},
{
@@ -33561,7 +34605,7 @@
"source_file": "tests/fixtures/mock_lims.py",
"source_location": "L97",
"id": "fixtures_mock_lims_rationale_97",
- "community": 121,
+ "community": 127,
"norm_label": "build a fastapi app implementing the v1 lims read surface. returns a fresh"
},
{
@@ -33570,7 +34614,7 @@
"source_file": "tests/fixtures/stub_rclone.py",
"source_location": "L1",
"id": "tests_fixtures_stub_rclone_py",
- "community": 202,
+ "community": 203,
"norm_label": "stub_rclone.py"
},
{
@@ -33579,7 +34623,7 @@
"source_file": "tests/fixtures/stub_rclone.py",
"source_location": "L48",
"id": "fixtures_stub_rclone_parse_copy_args",
- "community": 202,
+ "community": 203,
"norm_label": "_parse_copy_args()"
},
{
@@ -33588,7 +34632,7 @@
"source_file": "tests/fixtures/stub_rclone.py",
"source_location": "L60",
"id": "fixtures_stub_rclone_is_flag_value",
- "community": 202,
+ "community": 203,
"norm_label": "_is_flag_value()"
},
{
@@ -33597,7 +34641,7 @@
"source_file": "tests/fixtures/stub_rclone.py",
"source_location": "L80",
"id": "fixtures_stub_rclone_emit_combined",
- "community": 202,
+ "community": 203,
"norm_label": "_emit_combined()"
},
{
@@ -33606,7 +34650,7 @@
"source_file": "tests/fixtures/stub_rclone.py",
"source_location": "L109",
"id": "fixtures_stub_rclone_flag_value",
- "community": 202,
+ "community": 203,
"norm_label": "_flag_value()"
},
{
@@ -33615,7 +34659,7 @@
"source_file": "tests/fixtures/stub_rclone.py",
"source_location": "L120",
"id": "fixtures_stub_rclone_main",
- "community": 202,
+ "community": 203,
"norm_label": "main()"
},
{
@@ -33624,7 +34668,7 @@
"source_file": "tests/fixtures/stub_rclone.py",
"source_location": "L49",
"id": "fixtures_stub_rclone_rationale_49",
- "community": 202,
+ "community": 203,
"norm_label": "return ``(local, remote_spec)`` from a ``rclone copy`` argv."
},
{
@@ -33633,7 +34677,7 @@
"source_file": "tests/fixtures/stub_rclone.py",
"source_location": "L61",
"id": "fixtures_stub_rclone_rationale_61",
- "community": 202,
+ "community": 203,
"norm_label": "return true if ``arg`` is the value-half of a ``--flag value`` pair."
},
{
@@ -33642,7 +34686,7 @@
"source_file": "tests/fixtures/stub_rclone.py",
"source_location": "L81",
"id": "fixtures_stub_rclone_rationale_81",
- "community": 202,
+ "community": 203,
"norm_label": "write `` `` per file in ``--files-from`` to ``--combined``. `"
},
{
@@ -33651,7 +34695,7 @@
"source_file": "tests/fixtures/stub_rclone.py",
"source_location": "L110",
"id": "fixtures_stub_rclone_rationale_110",
- "community": 202,
+ "community": 203,
"norm_label": "return the value following ``flag`` in ``argv`` or ``none``."
},
{
@@ -33660,7 +34704,7 @@
"source_file": "tests/fixtures/lims/__init__.py",
"source_location": "L1",
"id": "tests_fixtures_lims_init_py",
- "community": 537,
+ "community": 562,
"norm_label": "__init__.py"
},
{
@@ -33669,7 +34713,7 @@
"source_file": "tests/fixtures/lims/exlab_v1/__init__.py",
"source_location": "L1",
"id": "tests_fixtures_lims_exlab_v1_init_py",
- "community": 538,
+ "community": 563,
"norm_label": "__init__.py"
},
{
@@ -33678,7 +34722,7 @@
"source_file": "tests/fixtures/plugins/__init__.py",
"source_location": "L1",
"id": "tests_fixtures_plugins_init_py",
- "community": 371,
+ "community": 374,
"norm_label": "__init__.py"
},
{
@@ -33687,7 +34731,7 @@
"source_file": "tests/fixtures/plugins/hello_plugin/__init__.py",
"source_location": "L1",
"id": "tests_fixtures_plugins_hello_plugin_init_py",
- "community": 312,
+ "community": 306,
"norm_label": "__init__.py"
},
{
@@ -33696,7 +34740,7 @@
"source_file": "tests/fixtures/plugins/hello_plugin/__init__.py",
"source_location": "L1",
"id": "hello_plugin_init_rationale_1",
- "community": 312,
+ "community": 306,
"norm_label": "hello_plugin -- canonical scaffold from backend spec \u00a76.5. the ``plugin`` re-ex"
},
{
@@ -33705,7 +34749,7 @@
"source_file": "tests/fixtures/plugins/hello_plugin/plugin.py",
"source_location": "L1",
"id": "tests_fixtures_plugins_hello_plugin_plugin_py",
- "community": 312,
+ "community": 306,
"norm_label": "plugin.py"
},
{
@@ -33714,7 +34758,7 @@
"source_file": "tests/fixtures/plugins/hello_plugin/plugin.py",
"source_location": "L20",
"id": "hello_plugin_plugin_helloplugin",
- "community": 312,
+ "community": 306,
"norm_label": "helloplugin"
},
{
@@ -33723,7 +34767,7 @@
"source_file": "tests/fixtures/plugins/hello_plugin/plugin.py",
"source_location": "L28",
"id": "hello_plugin_plugin_helloplugin_can_handle",
- "community": 312,
+ "community": 306,
"norm_label": ".can_handle()"
},
{
@@ -33732,7 +34776,7 @@
"source_file": "tests/fixtures/plugins/hello_plugin/plugin.py",
"source_location": "L32",
"id": "hello_plugin_plugin_helloplugin_transform",
- "community": 312,
+ "community": 306,
"norm_label": ".transform()"
},
{
@@ -33741,7 +34785,7 @@
"source_file": "tests/fixtures/plugins/hello_plugin/plugin.py",
"source_location": "L1",
"id": "hello_plugin_plugin_rationale_1",
- "community": 312,
+ "community": 306,
"norm_label": "hello_plugin -- minimal real plugin used by the host integration suite. backend"
},
{
@@ -33750,7 +34794,7 @@
"source_file": "tests/fixtures/plugins/hello_plugin/plugin.py",
"source_location": "L21",
"id": "hello_plugin_plugin_rationale_21",
- "community": 312,
+ "community": 306,
"norm_label": "append ``hello\\\\n`` to every ``.txt`` file the host hands us."
},
{
@@ -33759,7 +34803,7 @@
"source_file": "tests/fixtures/plugins/_failures/__init__.py",
"source_location": "L1",
"id": "tests_fixtures_plugins_failures_init_py",
- "community": 508,
+ "community": 532,
"norm_label": "__init__.py"
},
{
@@ -33768,7 +34812,7 @@
"source_file": "tests/fixtures/plugins/_failures/__init__.py",
"source_location": "L1",
"id": "failures_init_rationale_1",
- "community": 508,
+ "community": 532,
"norm_label": "failure-mode plugin fixtures (timeout, error, input-required, policy, crash)."
},
{
@@ -33777,7 +34821,7 @@
"source_file": "tests/fixtures/plugins/_failures/error_plugin/__init__.py",
"source_location": "L1",
"id": "tests_fixtures_plugins_failures_error_plugin_init_py",
- "community": 58,
+ "community": 15,
"norm_label": "__init__.py"
},
{
@@ -33786,7 +34830,7 @@
"source_file": "tests/fixtures/plugins/_failures/error_plugin/__init__.py",
"source_location": "L1",
"id": "error_plugin_init_rationale_1",
- "community": 58,
+ "community": 15,
"norm_label": "error_plugin -- raises pluginerror mid-transform."
},
{
@@ -33795,7 +34839,7 @@
"source_file": "tests/fixtures/plugins/_failures/error_plugin/plugin.py",
"source_location": "L1",
"id": "tests_fixtures_plugins_failures_error_plugin_plugin_py",
- "community": 58,
+ "community": 15,
"norm_label": "plugin.py"
},
{
@@ -33804,7 +34848,7 @@
"source_file": "tests/fixtures/plugins/_failures/error_plugin/plugin.py",
"source_location": "L17",
"id": "error_plugin_plugin_errorplugin",
- "community": 58,
+ "community": 15,
"norm_label": "errorplugin"
},
{
@@ -33813,7 +34857,7 @@
"source_file": "tests/fixtures/plugins/_failures/error_plugin/plugin.py",
"source_location": "L25",
"id": "error_plugin_plugin_errorplugin_can_handle",
- "community": 58,
+ "community": 15,
"norm_label": ".can_handle()"
},
{
@@ -33822,7 +34866,7 @@
"source_file": "tests/fixtures/plugins/_failures/error_plugin/plugin.py",
"source_location": "L28",
"id": "error_plugin_plugin_errorplugin_transform",
- "community": 58,
+ "community": 15,
"norm_label": ".transform()"
},
{
@@ -33831,7 +34875,7 @@
"source_file": "tests/fixtures/plugins/_failures/error_plugin/plugin.py",
"source_location": "L1",
"id": "error_plugin_plugin_rationale_1",
- "community": 58,
+ "community": 15,
"norm_label": "error_plugin -- raises pluginerror mid-transform. exercises the backend spec \u00a76"
},
{
@@ -33840,7 +34884,7 @@
"source_file": "tests/fixtures/plugins/_failures/error_plugin/plugin.py",
"source_location": "L18",
"id": "error_plugin_plugin_rationale_18",
- "community": 58,
+ "community": 15,
"norm_label": "always raises pluginerror on transform."
},
{
@@ -33849,7 +34893,7 @@
"source_file": "tests/fixtures/plugins/_failures/policy_violation_plugin/__init__.py",
"source_location": "L1",
"id": "tests_fixtures_plugins_failures_policy_violation_plugin_init_py",
- "community": 308,
+ "community": 304,
"norm_label": "__init__.py"
},
{
@@ -33858,7 +34902,7 @@
"source_file": "tests/fixtures/plugins/_failures/policy_violation_plugin/__init__.py",
"source_location": "L1",
"id": "policy_violation_plugin_init_rationale_1",
- "community": 308,
+ "community": 304,
"norm_label": "policy_violation_plugin -- writes to a forbidden path (backend spec \u00a76.1.5)."
},
{
@@ -33867,7 +34911,7 @@
"source_file": "tests/fixtures/plugins/_failures/policy_violation_plugin/plugin.py",
"source_location": "L1",
"id": "tests_fixtures_plugins_failures_policy_violation_plugin_plugin_py",
- "community": 308,
+ "community": 304,
"norm_label": "plugin.py"
},
{
@@ -33876,7 +34920,7 @@
"source_file": "tests/fixtures/plugins/_failures/policy_violation_plugin/plugin.py",
"source_location": "L18",
"id": "policy_violation_plugin_plugin_policyviolationplugin",
- "community": 308,
+ "community": 304,
"norm_label": "policyviolationplugin"
},
{
@@ -33885,7 +34929,7 @@
"source_file": "tests/fixtures/plugins/_failures/policy_violation_plugin/plugin.py",
"source_location": "L26",
"id": "policy_violation_plugin_plugin_policyviolationplugin_can_handle",
- "community": 308,
+ "community": 304,
"norm_label": ".can_handle()"
},
{
@@ -33894,7 +34938,7 @@
"source_file": "tests/fixtures/plugins/_failures/policy_violation_plugin/plugin.py",
"source_location": "L29",
"id": "policy_violation_plugin_plugin_policyviolationplugin_transform",
- "community": 308,
+ "community": 304,
"norm_label": ".transform()"
},
{
@@ -33903,7 +34947,7 @@
"source_file": "tests/fixtures/plugins/_failures/policy_violation_plugin/plugin.py",
"source_location": "L1",
"id": "policy_violation_plugin_plugin_rationale_1",
- "community": 308,
+ "community": 304,
"norm_label": "policy_violation_plugin -- exercises backend spec \u00a76.1.5 enforcement. the plugi"
},
{
@@ -33912,7 +34956,7 @@
"source_file": "tests/fixtures/plugins/_failures/policy_violation_plugin/plugin.py",
"source_location": "L19",
"id": "policy_violation_plugin_plugin_rationale_19",
- "community": 308,
+ "community": 304,
"norm_label": "write into ``readme.md`` (a wizard-controlled file)."
},
{
@@ -33921,7 +34965,7 @@
"source_file": "tests/fixtures/plugins/_failures/input_required_plugin/__init__.py",
"source_location": "L1",
"id": "tests_fixtures_plugins_failures_input_required_plugin_init_py",
- "community": 311,
+ "community": 305,
"norm_label": "__init__.py"
},
{
@@ -33930,7 +34974,7 @@
"source_file": "tests/fixtures/plugins/_failures/input_required_plugin/__init__.py",
"source_location": "L1",
"id": "input_required_plugin_init_rationale_1",
- "community": 311,
+ "community": 305,
"norm_label": "input_required_plugin -- exercises the plugininputrequired suspend/resume handsh"
},
{
@@ -33939,7 +34983,7 @@
"source_file": "tests/fixtures/plugins/_failures/input_required_plugin/plugin.py",
"source_location": "L1",
"id": "tests_fixtures_plugins_failures_input_required_plugin_plugin_py",
- "community": 311,
+ "community": 305,
"norm_label": "plugin.py"
},
{
@@ -33948,7 +34992,7 @@
"source_file": "tests/fixtures/plugins/_failures/input_required_plugin/plugin.py",
"source_location": "L20",
"id": "input_required_plugin_plugin_inputrequiredplugin",
- "community": 311,
+ "community": 305,
"norm_label": "inputrequiredplugin"
},
{
@@ -33957,7 +35001,7 @@
"source_file": "tests/fixtures/plugins/_failures/input_required_plugin/plugin.py",
"source_location": "L28",
"id": "input_required_plugin_plugin_inputrequiredplugin_can_handle",
- "community": 311,
+ "community": 305,
"norm_label": ".can_handle()"
},
{
@@ -33966,7 +35010,7 @@
"source_file": "tests/fixtures/plugins/_failures/input_required_plugin/plugin.py",
"source_location": "L31",
"id": "input_required_plugin_plugin_inputrequiredplugin_transform",
- "community": 311,
+ "community": 305,
"norm_label": ".transform()"
},
{
@@ -33975,7 +35019,7 @@
"source_file": "tests/fixtures/plugins/_failures/input_required_plugin/plugin.py",
"source_location": "L1",
"id": "input_required_plugin_plugin_rationale_1",
- "community": 311,
+ "community": 305,
"norm_label": "input_required_plugin -- exercises backend spec \u00a76.4 suspend/resume. on the fir"
},
{
@@ -33984,7 +35028,7 @@
"source_file": "tests/fixtures/plugins/_failures/input_required_plugin/plugin.py",
"source_location": "L21",
"id": "input_required_plugin_plugin_rationale_21",
- "community": 311,
+ "community": 305,
"norm_label": "demand a user-supplied ``color`` value before completing."
},
{
@@ -33993,7 +35037,7 @@
"source_file": "tests/fixtures/plugins/_failures/crash_plugin/__init__.py",
"source_location": "L1",
"id": "tests_fixtures_plugins_failures_crash_plugin_init_py",
- "community": 310,
+ "community": 303,
"norm_label": "__init__.py"
},
{
@@ -34002,7 +35046,7 @@
"source_file": "tests/fixtures/plugins/_failures/crash_plugin/__init__.py",
"source_location": "L1",
"id": "crash_plugin_init_rationale_1",
- "community": 310,
+ "community": 303,
"norm_label": "crash_plugin -- exercises subprocess crash containment (sigsegv-like)."
},
{
@@ -34011,7 +35055,7 @@
"source_file": "tests/fixtures/plugins/_failures/crash_plugin/plugin.py",
"source_location": "L1",
"id": "tests_fixtures_plugins_failures_crash_plugin_plugin_py",
- "community": 310,
+ "community": 303,
"norm_label": "plugin.py"
},
{
@@ -34020,7 +35064,7 @@
"source_file": "tests/fixtures/plugins/_failures/crash_plugin/plugin.py",
"source_location": "L18",
"id": "crash_plugin_plugin_crashplugin",
- "community": 310,
+ "community": 303,
"norm_label": "crashplugin"
},
{
@@ -34029,7 +35073,7 @@
"source_file": "tests/fixtures/plugins/_failures/crash_plugin/plugin.py",
"source_location": "L26",
"id": "crash_plugin_plugin_crashplugin_can_handle",
- "community": 310,
+ "community": 303,
"norm_label": ".can_handle()"
},
{
@@ -34038,7 +35082,7 @@
"source_file": "tests/fixtures/plugins/_failures/crash_plugin/plugin.py",
"source_location": "L29",
"id": "crash_plugin_plugin_crashplugin_transform",
- "community": 310,
+ "community": 303,
"norm_label": ".transform()"
},
{
@@ -34047,7 +35091,7 @@
"source_file": "tests/fixtures/plugins/_failures/crash_plugin/plugin.py",
"source_location": "L1",
"id": "crash_plugin_plugin_rationale_1",
- "community": 310,
+ "community": 303,
"norm_label": "crash_plugin -- exercises subprocess crash containment. the plugin's ``transfor"
},
{
@@ -34056,7 +35100,7 @@
"source_file": "tests/fixtures/plugins/_failures/crash_plugin/plugin.py",
"source_location": "L19",
"id": "crash_plugin_plugin_rationale_19",
- "community": 310,
+ "community": 303,
"norm_label": "hard-exit the worker process before any file write."
},
{
@@ -34065,7 +35109,7 @@
"source_file": "tests/fixtures/plugins/_failures/timeout_plugin/__init__.py",
"source_location": "L1",
"id": "tests_fixtures_plugins_failures_timeout_plugin_init_py",
- "community": 309,
+ "community": 277,
"norm_label": "__init__.py"
},
{
@@ -34074,7 +35118,7 @@
"source_file": "tests/fixtures/plugins/_failures/timeout_plugin/__init__.py",
"source_location": "L1",
"id": "timeout_plugin_init_rationale_1",
- "community": 309,
+ "community": 277,
"norm_label": "failure fixture: plugin that hangs in ``transform`` past its timeout."
},
{
@@ -34083,7 +35127,7 @@
"source_file": "tests/fixtures/plugins/_failures/timeout_plugin/plugin.py",
"source_location": "L1",
"id": "tests_fixtures_plugins_failures_timeout_plugin_plugin_py",
- "community": 309,
+ "community": 277,
"norm_label": "plugin.py"
},
{
@@ -34092,7 +35136,7 @@
"source_file": "tests/fixtures/plugins/_failures/timeout_plugin/plugin.py",
"source_location": "L19",
"id": "timeout_plugin_plugin_timeoutplugin",
- "community": 309,
+ "community": 277,
"norm_label": "timeoutplugin"
},
{
@@ -34101,7 +35145,7 @@
"source_file": "tests/fixtures/plugins/_failures/timeout_plugin/plugin.py",
"source_location": "L27",
"id": "timeout_plugin_plugin_timeoutplugin_can_handle",
- "community": 309,
+ "community": 277,
"norm_label": ".can_handle()"
},
{
@@ -34110,7 +35154,7 @@
"source_file": "tests/fixtures/plugins/_failures/timeout_plugin/plugin.py",
"source_location": "L30",
"id": "timeout_plugin_plugin_timeoutplugin_transform",
- "community": 309,
+ "community": 277,
"norm_label": ".transform()"
},
{
@@ -34119,7 +35163,7 @@
"source_file": "tests/fixtures/plugins/_failures/timeout_plugin/plugin.py",
"source_location": "L1",
"id": "timeout_plugin_plugin_rationale_1",
- "community": 309,
+ "community": 277,
"norm_label": "timeout_plugin -- exercises backend spec \u00a76.3.4 timeout enforcement. the plugin"
},
{
@@ -34128,7 +35172,7 @@
"source_file": "tests/fixtures/plugins/_failures/timeout_plugin/plugin.py",
"source_location": "L20",
"id": "timeout_plugin_plugin_rationale_20",
- "community": 309,
+ "community": 277,
"norm_label": "hang past the declared timeout. never reaches its file write."
},
{
@@ -34137,7 +35181,7 @@
"source_file": "tests/fixtures/configs/__init__.py",
"source_location": "L1",
"id": "tests_fixtures_configs_init_py",
- "community": 509,
+ "community": 533,
"norm_label": "__init__.py"
},
{
@@ -34146,7 +35190,7 @@
"source_file": "tests/fixtures/configs/__init__.py",
"source_location": "L1",
"id": "configs_init_rationale_1",
- "community": 509,
+ "community": 533,
"norm_label": "read-only yaml fixtures for the config-loader unit tests."
},
{
@@ -34155,7 +35199,7 @@
"source_file": "tests/fixtures/templates/__init__.py",
"source_location": "L1",
"id": "tests_fixtures_templates_init_py",
- "community": 510,
+ "community": 534,
"norm_label": "__init__.py"
},
{
@@ -34164,7 +35208,7 @@
"source_file": "tests/fixtures/templates/__init__.py",
"source_location": "L1",
"id": "templates_init_rationale_1",
- "community": 510,
+ "community": 534,
"norm_label": "copier template fixtures for the test suite."
},
{
@@ -34173,34 +35217,34 @@
"source_file": "tests/e2e/test_flow_18_relay_receive.py",
"source_location": "L1",
"id": "tests_e2e_test_flow_18_relay_receive_py",
- "community": 372,
+ "community": 375,
"norm_label": "test_flow_18_relay_receive.py"
},
{
"label": "_goto()",
"file_type": "code",
"source_file": "tests/e2e/test_flow_18_relay_receive.py",
- "source_location": "L11",
+ "source_location": "L21",
"id": "e2e_test_flow_18_relay_receive_goto",
- "community": 372,
+ "community": 375,
"norm_label": "_goto()"
},
{
"label": "test_flow_18_received_equipment_node_appears()",
"file_type": "code",
"source_file": "tests/e2e/test_flow_18_relay_receive.py",
- "source_location": "L24",
+ "source_location": "L34",
"id": "e2e_test_flow_18_relay_receive_test_flow_18_received_equipment_node_appears",
- "community": 372,
+ "community": 375,
"norm_label": "test_flow_18_received_equipment_node_appears()"
},
{
"label": "test_flow_18_received_metadata_shows_relay_badge()",
"file_type": "code",
"source_file": "tests/e2e/test_flow_18_relay_receive.py",
- "source_location": "L31",
+ "source_location": "L41",
"id": "e2e_test_flow_18_relay_receive_test_flow_18_received_metadata_shows_relay_badge",
- "community": 372,
+ "community": 375,
"norm_label": "test_flow_18_received_metadata_shows_relay_badge()"
},
{
@@ -34209,7 +35253,7 @@
"source_file": "tests/e2e/test_flow_18_relay_receive.py",
"source_location": "L1",
"id": "e2e_test_flow_18_relay_receive_rationale_1",
- "community": 372,
+ "community": 375,
"norm_label": "e2e flow 18: relay-receive \u2014 received equipment auto-discovery (redesign \u00a73.3)."
},
{
@@ -34218,7 +35262,7 @@
"source_file": "tests/e2e/conftest.py",
"source_location": "L1",
"id": "tests_e2e_conftest_py",
- "community": 108,
+ "community": 116,
"norm_label": "conftest.py"
},
{
@@ -34227,7 +35271,7 @@
"source_file": "tests/e2e/conftest.py",
"source_location": "L46",
"id": "e2e_conftest_free_port",
- "community": 108,
+ "community": 116,
"norm_label": "_free_port()"
},
{
@@ -34236,7 +35280,7 @@
"source_file": "tests/e2e/conftest.py",
"source_location": "L53",
"id": "e2e_conftest_resolve_chromium_executable",
- "community": 108,
+ "community": 116,
"norm_label": "_resolve_chromium_executable()"
},
{
@@ -34245,7 +35289,7 @@
"source_file": "tests/e2e/conftest.py",
"source_location": "L90",
"id": "e2e_conftest_server_url",
- "community": 108,
+ "community": 116,
"norm_label": "server_url()"
},
{
@@ -34254,7 +35298,7 @@
"source_file": "tests/e2e/conftest.py",
"source_location": "L155",
"id": "e2e_conftest_browser",
- "community": 108,
+ "community": 116,
"norm_label": "browser()"
},
{
@@ -34263,7 +35307,7 @@
"source_file": "tests/e2e/conftest.py",
"source_location": "L181",
"id": "e2e_conftest_page",
- "community": 108,
+ "community": 116,
"norm_label": "page()"
},
{
@@ -34272,7 +35316,7 @@
"source_file": "tests/e2e/conftest.py",
"source_location": "L1",
"id": "e2e_conftest_rationale_1",
- "community": 108,
+ "community": 116,
"norm_label": "e2e test fixtures (phase 16). boots a real uvicorn process serving the e2e test"
},
{
@@ -34281,7 +35325,7 @@
"source_file": "tests/e2e/conftest.py",
"source_location": "L47",
"id": "e2e_conftest_rationale_47",
- "community": 108,
+ "community": 116,
"norm_label": "return a free tcp port on 127.0.0.1."
},
{
@@ -34290,7 +35334,7 @@
"source_file": "tests/e2e/conftest.py",
"source_location": "L54",
"id": "e2e_conftest_rationale_54",
- "community": 108,
+ "community": 116,
"norm_label": "return a chromium executable path or none. search order: 1. ``exlab_e2"
},
{
@@ -34299,7 +35343,7 @@
"source_file": "tests/e2e/conftest.py",
"source_location": "L91",
"id": "e2e_conftest_rationale_91",
- "community": 108,
+ "community": 116,
"norm_label": "spawn a real uvicorn process serving the e2e test app and yield its url. th"
},
{
@@ -34308,7 +35352,7 @@
"source_file": "tests/e2e/conftest.py",
"source_location": "L156",
"id": "e2e_conftest_rationale_156",
- "community": 108,
+ "community": 116,
"norm_label": "yield a chromium browser (headless)."
},
{
@@ -34317,7 +35361,7 @@
"source_file": "tests/e2e/conftest.py",
"source_location": "L182",
"id": "e2e_conftest_rationale_182",
- "community": 108,
+ "community": 116,
"norm_label": "yield a fresh playwright page for each test."
},
{
@@ -34326,7 +35370,7 @@
"source_file": "tests/e2e/test_flow_00_fresh_install_setup.py",
"source_location": "L1",
"id": "tests_e2e_test_flow_00_fresh_install_setup_py",
- "community": 225,
+ "community": 227,
"norm_label": "test_flow_00_fresh_install_setup.py"
},
{
@@ -34335,7 +35379,7 @@
"source_file": "tests/e2e/test_flow_00_fresh_install_setup.py",
"source_location": "L49",
"id": "e2e_test_flow_00_fresh_install_setup_fresh_prod_server",
- "community": 225,
+ "community": 227,
"norm_label": "fresh_prod_server()"
},
{
@@ -34344,7 +35388,7 @@
"source_file": "tests/e2e/test_flow_00_fresh_install_setup.py",
"source_location": "L107",
"id": "e2e_test_flow_00_fresh_install_setup_test_fresh_install_setup_writes_config_and_applies_live",
- "community": 225,
+ "community": 227,
"norm_label": "test_fresh_install_setup_writes_config_and_applies_live()"
},
{
@@ -34353,7 +35397,7 @@
"source_file": "tests/e2e/test_flow_00_fresh_install_setup.py",
"source_location": "L1",
"id": "e2e_test_flow_00_fresh_install_setup_rationale_1",
- "community": 225,
+ "community": 227,
"norm_label": "e2e flow 00: fresh-install first-launch setup against the production app. unlik"
},
{
@@ -34362,7 +35406,7 @@
"source_file": "tests/e2e/test_flow_00_fresh_install_setup.py",
"source_location": "L50",
"id": "e2e_test_flow_00_fresh_install_setup_rationale_50",
- "community": 225,
+ "community": 227,
"norm_label": "spawn the production wizard app with home redirected to a fresh tmp dir. yi"
},
{
@@ -34371,7 +35415,7 @@
"source_file": "tests/e2e/test_flow_22_onboarding_redesign.py",
"source_location": "L1",
"id": "tests_e2e_test_flow_22_onboarding_redesign_py",
- "community": 244,
+ "community": 215,
"norm_label": "test_flow_22_onboarding_redesign.py"
},
{
@@ -34380,7 +35424,7 @@
"source_file": "tests/e2e/test_flow_22_onboarding_redesign.py",
"source_location": "L19",
"id": "e2e_test_flow_22_onboarding_redesign_goto",
- "community": 244,
+ "community": 215,
"norm_label": "_goto()"
},
{
@@ -34389,7 +35433,7 @@
"source_file": "tests/e2e/test_flow_22_onboarding_redesign.py",
"source_location": "L32",
"id": "e2e_test_flow_22_onboarding_redesign_test_flow_22_welcome_to_add_equipment",
- "community": 244,
+ "community": 215,
"norm_label": "test_flow_22_welcome_to_add_equipment()"
},
{
@@ -34398,7 +35442,7 @@
"source_file": "tests/e2e/test_flow_22_onboarding_redesign.py",
"source_location": "L47",
"id": "e2e_test_flow_22_onboarding_redesign_test_flow_22_main_window_has_add_equipment_in_toolbar",
- "community": 244,
+ "community": 215,
"norm_label": "test_flow_22_main_window_has_add_equipment_in_toolbar()"
},
{
@@ -34407,7 +35451,7 @@
"source_file": "tests/e2e/test_flow_22_onboarding_redesign.py",
"source_location": "L1",
"id": "e2e_test_flow_22_onboarding_redesign_rationale_1",
- "community": 244,
+ "community": 215,
"norm_label": "e2e flow 22: onboarding via the new add-equipment wizard (redesign decision 2)."
},
{
@@ -34416,7 +35460,7 @@
"source_file": "tests/e2e/test_flow_24_context_menus.py",
"source_location": "L1",
"id": "tests_e2e_test_flow_24_context_menus_py",
- "community": 208,
+ "community": 207,
"norm_label": "test_flow_24_context_menus.py"
},
{
@@ -34425,7 +35469,7 @@
"source_file": "tests/e2e/test_flow_24_context_menus.py",
"source_location": "L21",
"id": "e2e_test_flow_24_context_menus_goto",
- "community": 208,
+ "community": 207,
"norm_label": "_goto()"
},
{
@@ -34434,7 +35478,7 @@
"source_file": "tests/e2e/test_flow_24_context_menus.py",
"source_location": "L34",
"id": "e2e_test_flow_24_context_menus_open_context",
- "community": 208,
+ "community": 207,
"norm_label": "_open_context()"
},
{
@@ -34443,7 +35487,7 @@
"source_file": "tests/e2e/test_flow_24_context_menus.py",
"source_location": "L39",
"id": "e2e_test_flow_24_context_menus_test_flow_24_owned_equipment_context_menu_items_render",
- "community": 208,
+ "community": 207,
"norm_label": "test_flow_24_owned_equipment_context_menu_items_render()"
},
{
@@ -34452,7 +35496,7 @@
"source_file": "tests/e2e/test_flow_24_context_menus.py",
"source_location": "L52",
"id": "e2e_test_flow_24_context_menus_test_flow_24_edit_equipment_deep_links_into_settings",
- "community": 208,
+ "community": 207,
"norm_label": "test_flow_24_edit_equipment_deep_links_into_settings()"
},
{
@@ -34461,7 +35505,7 @@
"source_file": "tests/e2e/test_flow_24_context_menus.py",
"source_location": "L63",
"id": "e2e_test_flow_24_context_menus_test_flow_24_remove_equipment_deep_links_into_settings",
- "community": 208,
+ "community": 207,
"norm_label": "test_flow_24_remove_equipment_deep_links_into_settings()"
},
{
@@ -34470,7 +35514,7 @@
"source_file": "tests/e2e/test_flow_24_context_menus.py",
"source_location": "L72",
"id": "e2e_test_flow_24_context_menus_test_flow_24_received_equipment_has_no_context_menu",
- "community": 208,
+ "community": 207,
"norm_label": "test_flow_24_received_equipment_has_no_context_menu()"
},
{
@@ -34479,7 +35523,7 @@
"source_file": "tests/e2e/test_flow_24_context_menus.py",
"source_location": "L85",
"id": "e2e_test_flow_24_context_menus_test_flow_24_run_context_menu_items_render",
- "community": 208,
+ "community": 207,
"norm_label": "test_flow_24_run_context_menu_items_render()"
},
{
@@ -34488,7 +35532,7 @@
"source_file": "tests/e2e/test_flow_24_context_menus.py",
"source_location": "L97",
"id": "e2e_test_flow_24_context_menus_test_flow_24_file_list_row_context_menu",
- "community": 208,
+ "community": 207,
"norm_label": "test_flow_24_file_list_row_context_menu()"
},
{
@@ -34497,7 +35541,7 @@
"source_file": "tests/e2e/test_flow_24_context_menus.py",
"source_location": "L112",
"id": "e2e_test_flow_24_context_menus_test_flow_24_tombstone_row_has_no_open_in_os",
- "community": 208,
+ "community": 207,
"norm_label": "test_flow_24_tombstone_row_has_no_open_in_os()"
},
{
@@ -34506,7 +35550,7 @@
"source_file": "tests/e2e/test_flow_24_context_menus.py",
"source_location": "L132",
"id": "e2e_test_flow_24_context_menus_test_flow_24_keep_local_badge_and_toggle",
- "community": 208,
+ "community": 207,
"norm_label": "test_flow_24_keep_local_badge_and_toggle()"
},
{
@@ -34515,7 +35559,7 @@
"source_file": "tests/e2e/test_flow_24_context_menus.py",
"source_location": "L1",
"id": "e2e_test_flow_24_context_menus_rationale_1",
- "community": 208,
+ "community": 207,
"norm_label": "e2e flow 24: right-click context menus (redesign \u00a74.6 / decision 4a / \u00a79.1). th"
},
{
@@ -34524,7 +35568,7 @@
"source_file": "tests/e2e/test_flow_24_context_menus.py",
"source_location": "L35",
"id": "e2e_test_flow_24_context_menus_rationale_35",
- "community": 208,
+ "community": 207,
"norm_label": "open a nicegui ``ui.context_menu`` by right-clicking its anchor."
},
{
@@ -34533,7 +35577,7 @@
"source_file": "tests/e2e/test_flow_24_context_menus.py",
"source_location": "L73",
"id": "e2e_test_flow_24_context_menus_rationale_73",
- "community": 208,
+ "community": 207,
"norm_label": "decision 3: received-equipment nodes don't expose edit / remove."
},
{
@@ -34542,7 +35586,7 @@
"source_file": "tests/e2e/test_flow_24_context_menus.py",
"source_location": "L98",
"id": "e2e_test_flow_24_context_menus_rationale_98",
- "community": 208,
+ "community": 207,
"norm_label": "right-clicking a file-list row surfaces open in os / copy path / keep local."
},
{
@@ -34551,7 +35595,7 @@
"source_file": "tests/e2e/test_flow_24_context_menus.py",
"source_location": "L113",
"id": "e2e_test_flow_24_context_menus_rationale_113",
- "community": 208,
+ "community": 207,
"norm_label": "an \"on nas\" tombstone row has no local copy, so no open-in-os action. opera"
},
{
@@ -34560,7 +35604,7 @@
"source_file": "tests/e2e/test_flow_24_context_menus.py",
"source_location": "L133",
"id": "e2e_test_flow_24_context_menus_rationale_133",
- "community": 208,
+ "community": 207,
"norm_label": "a keep-local file shows the \"kept local\" badge; the toggle action fires. op"
},
{
@@ -34569,7 +35613,7 @@
"source_file": "tests/e2e/test_flow_08_settings.py",
"source_location": "L1",
"id": "tests_e2e_test_flow_08_settings_py",
- "community": 81,
+ "community": 74,
"norm_label": "test_flow_08_settings.py"
},
{
@@ -34578,7 +35622,7 @@
"source_file": "tests/e2e/test_flow_08_settings.py",
"source_location": "L30",
"id": "e2e_test_flow_08_settings_test_flow_08_settings",
- "community": 81,
+ "community": 74,
"norm_label": "test_flow_08_settings()"
},
{
@@ -34587,7 +35631,7 @@
"source_file": "tests/e2e/test_flow_08_settings.py",
"source_location": "L58",
"id": "e2e_test_flow_08_settings_test_flow_08_lims_password_credential",
- "community": 81,
+ "community": 74,
"norm_label": "test_flow_08_lims_password_credential()"
},
{
@@ -34596,16 +35640,25 @@
"source_file": "tests/e2e/test_flow_08_settings.py",
"source_location": "L91",
"id": "e2e_test_flow_08_settings_test_flow_08_lims_password_cancel_discards_edit",
- "community": 81,
+ "community": 74,
"norm_label": "test_flow_08_lims_password_cancel_discards_edit()"
},
+ {
+ "label": "test_flow_08_workstation_section_hides_staging_root()",
+ "file_type": "code",
+ "source_file": "tests/e2e/test_flow_08_settings.py",
+ "source_location": "L108",
+ "id": "e2e_test_flow_08_settings_test_flow_08_workstation_section_hides_staging_root",
+ "community": 74,
+ "norm_label": "test_flow_08_workstation_section_hides_staging_root()"
+ },
{
"label": "E2E flow 08: Settings dialog round-trip + persistence. Frontend Spec \u00a76.7 (sett",
"file_type": "rationale",
"source_file": "tests/e2e/test_flow_08_settings.py",
"source_location": "L1",
"id": "e2e_test_flow_08_settings_rationale_1",
- "community": 81,
+ "community": 74,
"norm_label": "e2e flow 08: settings dialog round-trip + persistence. frontend spec \u00a76.7 (sett"
},
{
@@ -34614,7 +35667,7 @@
"source_file": "tests/e2e/test_flow_08_settings.py",
"source_location": "L59",
"id": "e2e_test_flow_08_settings_rationale_59",
- "community": 81,
+ "community": 74,
"norm_label": "the lims credential field's full lifecycle: set -> replace -> clear (\u00a77.4.1)."
},
{
@@ -34623,16 +35676,25 @@
"source_file": "tests/e2e/test_flow_08_settings.py",
"source_location": "L92",
"id": "e2e_test_flow_08_settings_rationale_92",
- "community": 81,
+ "community": 74,
"norm_label": "cancelling the credential editor collapses the row without saving."
},
+ {
+ "label": "The renamed \"Workstation\" section (id still ``orchestrator``) collects the l",
+ "file_type": "rationale",
+ "source_file": "tests/e2e/test_flow_08_settings.py",
+ "source_location": "L109",
+ "id": "e2e_test_flow_08_settings_rationale_109",
+ "community": 74,
+ "norm_label": "the renamed \"workstation\" section (id still ``orchestrator``) collects the l"
+ },
{
"label": "test_flow_11_crash_recovery.py",
"file_type": "code",
"source_file": "tests/e2e/test_flow_11_crash_recovery.py",
"source_location": "L1",
"id": "tests_e2e_test_flow_11_crash_recovery_py",
- "community": 137,
+ "community": 142,
"norm_label": "test_flow_11_crash_recovery.py"
},
{
@@ -34641,7 +35703,7 @@
"source_file": "tests/e2e/test_flow_11_crash_recovery.py",
"source_location": "L16",
"id": "e2e_test_flow_11_crash_recovery_test_flow_11_crash_recovery",
- "community": 137,
+ "community": 142,
"norm_label": "test_flow_11_crash_recovery()"
},
{
@@ -34650,7 +35712,7 @@
"source_file": "tests/e2e/test_flow_11_crash_recovery.py",
"source_location": "L1",
"id": "e2e_test_flow_11_crash_recovery_rationale_1",
- "community": 137,
+ "community": 142,
"norm_label": "e2e flow 11: crash-recovery prompt on relaunch. frontend spec \u00a76.10 (crash reco"
},
{
@@ -34659,7 +35721,7 @@
"source_file": "tests/e2e/test_flow_03_experimental_run.py",
"source_location": "L1",
"id": "tests_e2e_test_flow_03_experimental_run_py",
- "community": 152,
+ "community": 159,
"norm_label": "test_flow_03_experimental_run.py"
},
{
@@ -34668,7 +35730,7 @@
"source_file": "tests/e2e/test_flow_03_experimental_run.py",
"source_location": "L15",
"id": "e2e_test_flow_03_experimental_run_test_flow_03_experimental_run",
- "community": 152,
+ "community": 159,
"norm_label": "test_flow_03_experimental_run()"
},
{
@@ -34677,7 +35739,7 @@
"source_file": "tests/e2e/test_flow_03_experimental_run.py",
"source_location": "L1",
"id": "e2e_test_flow_03_experimental_run_rationale_1",
- "community": 152,
+ "community": 159,
"norm_label": "e2e flow 03: experimental-run wizard end-to-end. frontend spec \u00a76.4 (run wizard"
},
{
@@ -34686,7 +35748,7 @@
"source_file": "tests/e2e/_prod_server.py",
"source_location": "L1",
"id": "tests_e2e_prod_server_py",
- "community": 225,
+ "community": 227,
"norm_label": "_prod_server.py"
},
{
@@ -34695,7 +35757,7 @@
"source_file": "tests/e2e/_prod_server.py",
"source_location": "L29",
"id": "e2e_prod_server_free_port",
- "community": 225,
+ "community": 227,
"norm_label": "free_port()"
},
{
@@ -34704,7 +35766,7 @@
"source_file": "tests/e2e/_prod_server.py",
"source_location": "L36",
"id": "e2e_prod_server_prod_app_env",
- "community": 225,
+ "community": 227,
"norm_label": "prod_app_env()"
},
{
@@ -34713,7 +35775,7 @@
"source_file": "tests/e2e/_prod_server.py",
"source_location": "L60",
"id": "e2e_prod_server_resolve_config_path",
- "community": 225,
+ "community": 227,
"norm_label": "resolve_config_path()"
},
{
@@ -34722,7 +35784,7 @@
"source_file": "tests/e2e/_prod_server.py",
"source_location": "L75",
"id": "e2e_prod_server_prodserver",
- "community": 233,
+ "community": 270,
"norm_label": "prodserver"
},
{
@@ -34731,7 +35793,7 @@
"source_file": "tests/e2e/_prod_server.py",
"source_location": "L84",
"id": "e2e_prod_server_prodserver_init",
- "community": 225,
+ "community": 227,
"norm_label": ".__init__()"
},
{
@@ -34740,7 +35802,7 @@
"source_file": "tests/e2e/_prod_server.py",
"source_location": "L94",
"id": "e2e_prod_server_config_path",
- "community": 225,
+ "community": 227,
"norm_label": "config_path()"
},
{
@@ -34749,7 +35811,7 @@
"source_file": "tests/e2e/_prod_server.py",
"source_location": "L98",
"id": "e2e_prod_server_prodserver_start",
- "community": 233,
+ "community": 270,
"norm_label": ".start()"
},
{
@@ -34758,7 +35820,7 @@
"source_file": "tests/e2e/_prod_server.py",
"source_location": "L132",
"id": "e2e_prod_server_prodserver_stop",
- "community": 233,
+ "community": 270,
"norm_label": ".stop()"
},
{
@@ -34767,7 +35829,7 @@
"source_file": "tests/e2e/_prod_server.py",
"source_location": "L144",
"id": "e2e_prod_server_prodserver_restart",
- "community": 233,
+ "community": 270,
"norm_label": ".restart()"
},
{
@@ -34776,7 +35838,7 @@
"source_file": "tests/e2e/_prod_server.py",
"source_location": "L1",
"id": "e2e_prod_server_rationale_1",
- "community": 225,
+ "community": 227,
"norm_label": "reusable spawn/restart harness for the *production* wizard app. the e2e lifecyc"
},
{
@@ -34785,7 +35847,7 @@
"source_file": "tests/e2e/_prod_server.py",
"source_location": "L30",
"id": "e2e_prod_server_rationale_30",
- "community": 225,
+ "community": 227,
"norm_label": "return a free tcp port on 127.0.0.1."
},
{
@@ -34794,7 +35856,7 @@
"source_file": "tests/e2e/_prod_server.py",
"source_location": "L37",
"id": "e2e_prod_server_rationale_37",
- "community": 225,
+ "community": 227,
"norm_label": "build a hermetic environment for a spawned production-app process. every os"
},
{
@@ -34803,7 +35865,7 @@
"source_file": "tests/e2e/_prod_server.py",
"source_location": "L61",
"id": "e2e_prod_server_rationale_61",
- "community": 225,
+ "community": 227,
"norm_label": "where the spawned production app writes ``config.yaml``. computed by callin"
},
{
@@ -34812,7 +35874,7 @@
"source_file": "tests/e2e/_prod_server.py",
"source_location": "L76",
"id": "e2e_prod_server_rationale_76",
- "community": 233,
+ "community": 270,
"norm_label": "a spawnable / restartable production-app uvicorn process. ``home`` is the r"
},
{
@@ -34821,7 +35883,7 @@
"source_file": "tests/e2e/_prod_server.py",
"source_location": "L95",
"id": "e2e_prod_server_rationale_95",
- "community": 539,
+ "community": 564,
"norm_label": "where the wizard writes ``config.yaml`` under the redirected home."
},
{
@@ -34830,7 +35892,7 @@
"source_file": "tests/e2e/_prod_server.py",
"source_location": "L99",
"id": "e2e_prod_server_rationale_99",
- "community": 233,
+ "community": 270,
"norm_label": "spawn uvicorn and block until ``/api/v1/health`` answers 200. returns `"
},
{
@@ -34839,7 +35901,7 @@
"source_file": "tests/e2e/_prod_server.py",
"source_location": "L133",
"id": "e2e_prod_server_rationale_133",
- "community": 233,
+ "community": 270,
"norm_label": "terminate the uvicorn process. idempotent."
},
{
@@ -34848,7 +35910,7 @@
"source_file": "tests/e2e/_prod_server.py",
"source_location": "L145",
"id": "e2e_prod_server_rationale_145",
- "community": 233,
+ "community": 270,
"norm_label": "stop and re-spawn the process with the same home / port."
},
{
@@ -34857,7 +35919,7 @@
"source_file": "tests/e2e/test_flow_17_picker_step.py",
"source_location": "L1",
"id": "tests_e2e_test_flow_17_picker_step_py",
- "community": 373,
+ "community": 376,
"norm_label": "test_flow_17_picker_step.py"
},
{
@@ -34866,7 +35928,7 @@
"source_file": "tests/e2e/test_flow_17_picker_step.py",
"source_location": "L12",
"id": "e2e_test_flow_17_picker_step_goto",
- "community": 373,
+ "community": 376,
"norm_label": "_goto()"
},
{
@@ -34875,7 +35937,7 @@
"source_file": "tests/e2e/test_flow_17_picker_step.py",
"source_location": "L25",
"id": "e2e_test_flow_17_picker_step_test_flow_17_creation_buttons_enabled_on_owned_node",
- "community": 373,
+ "community": 376,
"norm_label": "test_flow_17_creation_buttons_enabled_on_owned_node()"
},
{
@@ -34884,7 +35946,7 @@
"source_file": "tests/e2e/test_flow_17_picker_step.py",
"source_location": "L41",
"id": "e2e_test_flow_17_picker_step_test_flow_17_creation_buttons_disabled_on_received_node",
- "community": 373,
+ "community": 376,
"norm_label": "test_flow_17_creation_buttons_disabled_on_received_node()"
},
{
@@ -34893,7 +35955,7 @@
"source_file": "tests/e2e/test_flow_17_picker_step.py",
"source_location": "L1",
"id": "e2e_test_flow_17_picker_step_rationale_1",
- "community": 373,
+ "community": 376,
"norm_label": "e2e flow 17: creation-button enablement on received nodes (redesign decision 1)."
},
{
@@ -34902,7 +35964,7 @@
"source_file": "tests/e2e/test_flow_20_file_explorer.py",
"source_location": "L1",
"id": "tests_e2e_test_flow_20_file_explorer_py",
- "community": 353,
+ "community": 354,
"norm_label": "test_flow_20_file_explorer.py"
},
{
@@ -34911,7 +35973,7 @@
"source_file": "tests/e2e/test_flow_20_file_explorer.py",
"source_location": "L10",
"id": "e2e_test_flow_20_file_explorer_goto",
- "community": 353,
+ "community": 354,
"norm_label": "_goto()"
},
{
@@ -34920,25 +35982,25 @@
"source_file": "tests/e2e/test_flow_20_file_explorer.py",
"source_location": "L23",
"id": "e2e_test_flow_20_file_explorer_test_flow_20_file_explorer_renders_three_regions",
- "community": 353,
+ "community": 354,
"norm_label": "test_flow_20_file_explorer_renders_three_regions()"
},
{
"label": "test_flow_20_select_run_node_renders_metadata_pane()",
"file_type": "code",
"source_file": "tests/e2e/test_flow_20_file_explorer.py",
- "source_location": "L42",
+ "source_location": "L43",
"id": "e2e_test_flow_20_file_explorer_test_flow_20_select_run_node_renders_metadata_pane",
- "community": 353,
+ "community": 354,
"norm_label": "test_flow_20_select_run_node_renders_metadata_pane()"
},
{
"label": "test_flow_20_breadcrumb_is_present_when_node_selected()",
"file_type": "code",
"source_file": "tests/e2e/test_flow_20_file_explorer.py",
- "source_location": "L53",
+ "source_location": "L54",
"id": "e2e_test_flow_20_file_explorer_test_flow_20_breadcrumb_is_present_when_node_selected",
- "community": 353,
+ "community": 354,
"norm_label": "test_flow_20_breadcrumb_is_present_when_node_selected()"
},
{
@@ -34947,7 +36009,7 @@
"source_file": "tests/e2e/test_flow_20_file_explorer.py",
"source_location": "L1",
"id": "e2e_test_flow_20_file_explorer_rationale_1",
- "community": 353,
+ "community": 354,
"norm_label": "e2e flow 20: file-explorer navigation (redesign \u00a74). tree selection drives the"
},
{
@@ -34956,7 +36018,7 @@
"source_file": "tests/e2e/test_flow_05_browse_view_sync_icons.py",
"source_location": "L1",
"id": "tests_e2e_test_flow_05_browse_view_sync_icons_py",
- "community": 374,
+ "community": 217,
"norm_label": "test_flow_05_browse_view_sync_icons.py"
},
{
@@ -34965,7 +36027,7 @@
"source_file": "tests/e2e/test_flow_05_browse_view_sync_icons.py",
"source_location": "L20",
"id": "e2e_test_flow_05_browse_view_sync_icons_test_flow_05_sync_icons_render_in_tree",
- "community": 374,
+ "community": 217,
"norm_label": "test_flow_05_sync_icons_render_in_tree()"
},
{
@@ -34974,7 +36036,7 @@
"source_file": "tests/e2e/test_flow_05_browse_view_sync_icons.py",
"source_location": "L47",
"id": "e2e_test_flow_05_browse_view_sync_icons_test_flow_05_sync_icons_static_assets_serve_200",
- "community": 374,
+ "community": 217,
"norm_label": "test_flow_05_sync_icons_static_assets_serve_200()"
},
{
@@ -34983,7 +36045,7 @@
"source_file": "tests/e2e/test_flow_05_browse_view_sync_icons.py",
"source_location": "L1",
"id": "e2e_test_flow_05_browse_view_sync_icons_rationale_1",
- "community": 374,
+ "community": 217,
"norm_label": "e2e flow 05b: per-run sync icons in the browse tree. verifies that the project"
},
{
@@ -34992,7 +36054,7 @@
"source_file": "tests/e2e/test_flow_05_browse_view_sync_icons.py",
"source_location": "L48",
"id": "e2e_test_flow_05_browse_view_sync_icons_rationale_48",
- "community": 374,
+ "community": 217,
"norm_label": "the ``/assets`` mount serves both svgs as 200 ok."
},
{
@@ -35001,7 +36063,7 @@
"source_file": "tests/e2e/test_flow_05_browse_view.py",
"source_location": "L1",
"id": "tests_e2e_test_flow_05_browse_view_py",
- "community": 150,
+ "community": 217,
"norm_label": "test_flow_05_browse_view.py"
},
{
@@ -35010,7 +36072,7 @@
"source_file": "tests/e2e/test_flow_05_browse_view.py",
"source_location": "L15",
"id": "e2e_test_flow_05_browse_view_test_flow_05_browse_view",
- "community": 150,
+ "community": 217,
"norm_label": "test_flow_05_browse_view()"
},
{
@@ -35019,7 +36081,7 @@
"source_file": "tests/e2e/test_flow_05_browse_view.py",
"source_location": "L1",
"id": "e2e_test_flow_05_browse_view_rationale_1",
- "community": 150,
+ "community": 217,
"norm_label": "e2e flow 05: browse view -- open existing project + sessions. frontend spec \u00a76."
},
{
@@ -35028,7 +36090,7 @@
"source_file": "tests/e2e/__init__.py",
"source_location": "L1",
"id": "tests_e2e_init_py",
- "community": 540,
+ "community": 565,
"norm_label": "__init__.py"
},
{
@@ -35037,115 +36099,115 @@
"source_file": "tests/e2e/test_flow_16_add_equipment.py",
"source_location": "L1",
"id": "tests_e2e_test_flow_16_add_equipment_py",
- "community": 224,
+ "community": 186,
"norm_label": "test_flow_16_add_equipment.py"
},
{
"label": "_goto()",
"file_type": "code",
"source_file": "tests/e2e/test_flow_16_add_equipment.py",
- "source_location": "L20",
+ "source_location": "L24",
"id": "e2e_test_flow_16_add_equipment_goto",
- "community": 224,
+ "community": 186,
"norm_label": "_goto()"
},
{
"label": "test_flow_16_add_equipment_identity_step()",
"file_type": "code",
"source_file": "tests/e2e/test_flow_16_add_equipment.py",
- "source_location": "L33",
+ "source_location": "L37",
"id": "e2e_test_flow_16_add_equipment_test_flow_16_add_equipment_identity_step",
- "community": 224,
+ "community": 186,
"norm_label": "test_flow_16_add_equipment_identity_step()"
},
{
"label": "test_flow_16_add_equipment_paths_step()",
"file_type": "code",
"source_file": "tests/e2e/test_flow_16_add_equipment.py",
- "source_location": "L44",
+ "source_location": "L48",
"id": "e2e_test_flow_16_add_equipment_test_flow_16_add_equipment_paths_step",
- "community": 224,
+ "community": 186,
"norm_label": "test_flow_16_add_equipment_paths_step()"
},
{
"label": "test_flow_16_add_equipment_sync_mode_step()",
"file_type": "code",
"source_file": "tests/e2e/test_flow_16_add_equipment.py",
- "source_location": "L52",
+ "source_location": "L60",
"id": "e2e_test_flow_16_add_equipment_test_flow_16_add_equipment_sync_mode_step",
- "community": 224,
+ "community": 186,
"norm_label": "test_flow_16_add_equipment_sync_mode_step()"
},
{
"label": "test_flow_16_add_equipment_review_and_confirm()",
"file_type": "code",
"source_file": "tests/e2e/test_flow_16_add_equipment.py",
- "source_location": "L59",
+ "source_location": "L67",
"id": "e2e_test_flow_16_add_equipment_test_flow_16_add_equipment_review_and_confirm",
- "community": 224,
+ "community": 186,
"norm_label": "test_flow_16_add_equipment_review_and_confirm()"
},
{
"label": "test_flow_16_next_enables_on_valid_input_and_state_survives_back()",
"file_type": "code",
"source_file": "tests/e2e/test_flow_16_add_equipment.py",
- "source_location": "L69",
+ "source_location": "L77",
"id": "e2e_test_flow_16_add_equipment_test_flow_16_next_enables_on_valid_input_and_state_survives_back",
- "community": 224,
+ "community": 186,
"norm_label": "test_flow_16_next_enables_on_valid_input_and_state_survives_back()"
},
{
- "label": "E2E flow 16: Add-Equipment wizard (Redesign \u00a76). Drives the four-step wizard en",
+ "label": "E2E flow 16: Add-Equipment wizard (Redesign \u00a76). Drives the wizard end to end a",
"file_type": "rationale",
"source_file": "tests/e2e/test_flow_16_add_equipment.py",
"source_location": "L1",
"id": "e2e_test_flow_16_add_equipment_rationale_1",
- "community": 224,
- "norm_label": "e2e flow 16: add-equipment wizard (redesign \u00a76). drives the four-step wizard en"
+ "community": 186,
+ "norm_label": "e2e flow 16: add-equipment wizard (redesign \u00a76). drives the wizard end to end a"
},
{
"label": "Identity step renders the ID + label inputs.",
"file_type": "rationale",
"source_file": "tests/e2e/test_flow_16_add_equipment.py",
- "source_location": "L34",
- "id": "e2e_test_flow_16_add_equipment_rationale_34",
- "community": 224,
+ "source_location": "L38",
+ "id": "e2e_test_flow_16_add_equipment_rationale_38",
+ "community": 186,
"norm_label": "identity step renders the id + label inputs."
},
{
"label": "Paths step renders local + NAS root inputs.",
"file_type": "rationale",
"source_file": "tests/e2e/test_flow_16_add_equipment.py",
- "source_location": "L45",
- "id": "e2e_test_flow_16_add_equipment_rationale_45",
- "community": 224,
+ "source_location": "L49",
+ "id": "e2e_test_flow_16_add_equipment_rationale_49",
+ "community": 186,
"norm_label": "paths step renders local + nas root inputs."
},
{
"label": "Sync mode step renders the nas/stage radio.",
"file_type": "rationale",
"source_file": "tests/e2e/test_flow_16_add_equipment.py",
- "source_location": "L53",
- "id": "e2e_test_flow_16_add_equipment_rationale_53",
- "community": 224,
+ "source_location": "L61",
+ "id": "e2e_test_flow_16_add_equipment_rationale_61",
+ "community": 186,
"norm_label": "sync mode step renders the nas/stage radio."
},
{
"label": "Review step renders Confirm; clicking it fires the success label.",
"file_type": "rationale",
"source_file": "tests/e2e/test_flow_16_add_equipment.py",
- "source_location": "L60",
- "id": "e2e_test_flow_16_add_equipment_rationale_60",
- "community": 224,
+ "source_location": "L68",
+ "id": "e2e_test_flow_16_add_equipment_rationale_68",
+ "community": 186,
"norm_label": "review step renders confirm; clicking it fires the success label."
},
{
"label": "An empty wizard: Next stays disabled until the identity step is valid, then",
"file_type": "rationale",
"source_file": "tests/e2e/test_flow_16_add_equipment.py",
- "source_location": "L70",
- "id": "e2e_test_flow_16_add_equipment_rationale_70",
- "community": 224,
+ "source_location": "L78",
+ "id": "e2e_test_flow_16_add_equipment_rationale_78",
+ "community": 186,
"norm_label": "an empty wizard: next stays disabled until the identity step is valid, then"
},
{
@@ -35154,34 +36216,34 @@
"source_file": "tests/e2e/test_flow_23_footer_staging.py",
"source_location": "L1",
"id": "tests_e2e_test_flow_23_footer_staging_py",
- "community": 375,
+ "community": 377,
"norm_label": "test_flow_23_footer_staging.py"
},
{
"label": "_goto()",
"file_type": "code",
"source_file": "tests/e2e/test_flow_23_footer_staging.py",
- "source_location": "L10",
+ "source_location": "L20",
"id": "e2e_test_flow_23_footer_staging_goto",
- "community": 375,
+ "community": 377,
"norm_label": "_goto()"
},
{
"label": "test_flow_23_footer_staging_segment_renders()",
"file_type": "code",
"source_file": "tests/e2e/test_flow_23_footer_staging.py",
- "source_location": "L23",
+ "source_location": "L33",
"id": "e2e_test_flow_23_footer_staging_test_flow_23_footer_staging_segment_renders",
- "community": 375,
+ "community": 377,
"norm_label": "test_flow_23_footer_staging_segment_renders()"
},
{
"label": "test_flow_23_bulk_clear_verified_action_present()",
"file_type": "code",
"source_file": "tests/e2e/test_flow_23_footer_staging.py",
- "source_location": "L28",
+ "source_location": "L38",
"id": "e2e_test_flow_23_footer_staging_test_flow_23_bulk_clear_verified_action_present",
- "community": 375,
+ "community": 377,
"norm_label": "test_flow_23_bulk_clear_verified_action_present()"
},
{
@@ -35190,7 +36252,7 @@
"source_file": "tests/e2e/test_flow_23_footer_staging.py",
"source_location": "L1",
"id": "e2e_test_flow_23_footer_staging_rationale_1",
- "community": 375,
+ "community": 377,
"norm_label": "e2e flow 23: footer staging segment + bulk clear verified (redesign \u00a74.6). the"
},
{
@@ -35199,7 +36261,7 @@
"source_file": "tests/e2e/test_smoke.py",
"source_location": "L1",
"id": "tests_e2e_test_smoke_py",
- "community": 394,
+ "community": 416,
"norm_label": "test_smoke.py"
},
{
@@ -35208,7 +36270,7 @@
"source_file": "tests/e2e/test_smoke.py",
"source_location": "L15",
"id": "e2e_test_smoke_test_root_url_responds_with_html",
- "community": 394,
+ "community": 416,
"norm_label": "test_root_url_responds_with_html()"
},
{
@@ -35217,7 +36279,7 @@
"source_file": "tests/e2e/test_smoke.py",
"source_location": "L1",
"id": "e2e_test_smoke_rationale_1",
- "community": 394,
+ "community": 416,
"norm_label": "e2e smoke flow. confirms the phase 16 e2e harness can drive a real browser agai"
},
{
@@ -35226,7 +36288,7 @@
"source_file": "tests/e2e/test_smoke.py",
"source_location": "L16",
"id": "e2e_test_smoke_rationale_16",
- "community": 394,
+ "community": 416,
"norm_label": "smoke: navigate to / and confirm the e2e harness is wired up. the phase 16"
},
{
@@ -35235,7 +36297,7 @@
"source_file": "tests/e2e/test_ux_documentation.py",
"source_location": "L1",
"id": "tests_e2e_test_ux_documentation_py",
- "community": 234,
+ "community": 237,
"norm_label": "test_ux_documentation.py"
},
{
@@ -35244,7 +36306,7 @@
"source_file": "tests/e2e/test_ux_documentation.py",
"source_location": "L45",
"id": "e2e_test_ux_documentation_render_doc",
- "community": 234,
+ "community": 237,
"norm_label": "_render_doc()"
},
{
@@ -35253,7 +36315,7 @@
"source_file": "tests/e2e/test_ux_documentation.py",
"source_location": "L66",
"id": "e2e_test_ux_documentation_test_ux_interactions_doc_is_current",
- "community": 234,
+ "community": 237,
"norm_label": "test_ux_interactions_doc_is_current()"
},
{
@@ -35262,7 +36324,7 @@
"source_file": "tests/e2e/test_ux_documentation.py",
"source_location": "L86",
"id": "e2e_test_ux_documentation_test_ux_catalog_is_non_trivial",
- "community": 234,
+ "community": 237,
"norm_label": "test_ux_catalog_is_non_trivial()"
},
{
@@ -35271,7 +36333,7 @@
"source_file": "tests/e2e/test_ux_documentation.py",
"source_location": "L97",
"id": "e2e_test_ux_documentation_references",
- "community": 234,
+ "community": 237,
"norm_label": "_references()"
},
{
@@ -35280,7 +36342,7 @@
"source_file": "tests/e2e/test_ux_documentation.py",
"source_location": "L116",
"id": "e2e_test_ux_documentation_test_ux_interaction_testids_exist_in_source",
- "community": 234,
+ "community": 237,
"norm_label": "test_ux_interaction_testids_exist_in_source()"
},
{
@@ -35289,7 +36351,7 @@
"source_file": "tests/e2e/test_ux_documentation.py",
"source_location": "L127",
"id": "e2e_test_ux_documentation_test_ux_interactions_are_e2e_covered",
- "community": 234,
+ "community": 237,
"norm_label": "test_ux_interactions_are_e2e_covered()"
},
{
@@ -35298,7 +36360,7 @@
"source_file": "tests/e2e/test_ux_documentation.py",
"source_location": "L1",
"id": "e2e_test_ux_documentation_rationale_1",
- "community": 234,
+ "community": 237,
"norm_label": "automated ux-interaction documentation + coverage checks. drives :mod:`tests.e2"
},
{
@@ -35307,7 +36369,7 @@
"source_file": "tests/e2e/test_ux_documentation.py",
"source_location": "L46",
"id": "e2e_test_ux_documentation_rationale_46",
- "community": 234,
+ "community": 237,
"norm_label": "render the catalog into the ``ux_interactions.md`` markdown body."
},
{
@@ -35316,7 +36378,7 @@
"source_file": "tests/e2e/test_ux_documentation.py",
"source_location": "L67",
"id": "e2e_test_ux_documentation_rationale_67",
- "community": 234,
+ "community": 237,
"norm_label": "``docs/ux_interactions.md`` is regenerated from the catalog. regenerates th"
},
{
@@ -35325,7 +36387,7 @@
"source_file": "tests/e2e/test_ux_documentation.py",
"source_location": "L87",
"id": "e2e_test_ux_documentation_rationale_87",
- "community": 234,
+ "community": 237,
"norm_label": "guard against an empty catalog silently passing the other checks."
},
{
@@ -35334,7 +36396,7 @@
"source_file": "tests/e2e/test_ux_documentation.py",
"source_location": "L98",
"id": "e2e_test_ux_documentation_rationale_98",
- "community": 234,
+ "community": 237,
"norm_label": "return ``true`` when ``haystack`` references ``testid``. tolerates testids"
},
{
@@ -35343,7 +36405,7 @@
"source_file": "tests/e2e/test_ux_documentation.py",
"source_location": "L117",
"id": "e2e_test_ux_documentation_rationale_117",
- "community": 234,
+ "community": 237,
"norm_label": "every cataloged ``data-testid`` is present in the ui source."
},
{
@@ -35352,7 +36414,7 @@
"source_file": "tests/e2e/test_ux_documentation.py",
"source_location": "L128",
"id": "e2e_test_ux_documentation_rationale_128",
- "community": 234,
+ "community": 237,
"norm_label": "every cataloged ``data-testid`` is driven by an e2e test. scans the whole `"
},
{
@@ -35361,7 +36423,7 @@
"source_file": "tests/e2e/_prod_app.py",
"source_location": "L1",
"id": "tests_e2e_prod_app_py",
- "community": 114,
+ "community": 110,
"norm_label": "_prod_app.py"
},
{
@@ -35370,7 +36432,7 @@
"source_file": "tests/e2e/_prod_app.py",
"source_location": "L23",
"id": "e2e_prod_app_create_prod_app_factory",
- "community": 114,
+ "community": 110,
"norm_label": "create_prod_app_factory()"
},
{
@@ -35379,7 +36441,7 @@
"source_file": "tests/e2e/_prod_app.py",
"source_location": "L1",
"id": "e2e_prod_app_rationale_1",
- "community": 114,
+ "community": 110,
"norm_label": "uvicorn ``--factory`` entrypoint for the *production* wizard app. ``_test_app.p"
},
{
@@ -35388,7 +36450,7 @@
"source_file": "tests/e2e/_prod_app.py",
"source_location": "L24",
"id": "e2e_prod_app_rationale_24",
- "community": 114,
+ "community": 110,
"norm_label": "build the production wizard app (nicegui mounted at ``/``)."
},
{
@@ -35397,97 +36459,97 @@
"source_file": "tests/e2e/test_flow_25_production_main_wiring.py",
"source_location": "L1",
"id": "tests_e2e_test_flow_25_production_main_wiring_py",
- "community": 151,
+ "community": 96,
"norm_label": "test_flow_25_production_main_wiring.py"
},
{
"label": "_goto()",
"file_type": "code",
"source_file": "tests/e2e/test_flow_25_production_main_wiring.py",
- "source_location": "L21",
+ "source_location": "L23",
"id": "e2e_test_flow_25_production_main_wiring_goto",
- "community": 151,
+ "community": 96,
"norm_label": "_goto()"
},
{
"label": "test_flow_25_main_route_renders_redesigned_layout()",
"file_type": "code",
"source_file": "tests/e2e/test_flow_25_production_main_wiring.py",
- "source_location": "L40",
+ "source_location": "L42",
"id": "e2e_test_flow_25_production_main_wiring_test_flow_25_main_route_renders_redesigned_layout",
- "community": 151,
+ "community": 96,
"norm_label": "test_flow_25_main_route_renders_redesigned_layout()"
},
{
"label": "test_flow_25_add_equipment_button_navigates_to_wizard()",
"file_type": "code",
"source_file": "tests/e2e/test_flow_25_production_main_wiring.py",
- "source_location": "L75",
+ "source_location": "L80",
"id": "e2e_test_flow_25_production_main_wiring_test_flow_25_add_equipment_button_navigates_to_wizard",
- "community": 151,
+ "community": 96,
"norm_label": "test_flow_25_add_equipment_button_navigates_to_wizard()"
},
{
"label": "test_flow_25_select_node_threads_selected_into_url()",
"file_type": "code",
"source_file": "tests/e2e/test_flow_25_production_main_wiring.py",
- "source_location": "L82",
+ "source_location": "L87",
"id": "e2e_test_flow_25_production_main_wiring_test_flow_25_select_node_threads_selected_into_url",
- "community": 151,
+ "community": 96,
"norm_label": "test_flow_25_select_node_threads_selected_into_url()"
},
{
"label": "test_flow_25_selected_query_renders_centre_and_right_panes()",
"file_type": "code",
"source_file": "tests/e2e/test_flow_25_production_main_wiring.py",
- "source_location": "L95",
+ "source_location": "L100",
"id": "e2e_test_flow_25_production_main_wiring_test_flow_25_selected_query_renders_centre_and_right_panes",
- "community": 151,
+ "community": 96,
"norm_label": "test_flow_25_selected_query_renders_centre_and_right_panes()"
},
{
"label": "test_flow_25_breadcrumb_navigation_re_navigates_main()",
"file_type": "code",
"source_file": "tests/e2e/test_flow_25_production_main_wiring.py",
- "source_location": "L105",
+ "source_location": "L110",
"id": "e2e_test_flow_25_production_main_wiring_test_flow_25_breadcrumb_navigation_re_navigates_main",
- "community": 151,
+ "community": 96,
"norm_label": "test_flow_25_breadcrumb_navigation_re_navigates_main()"
},
{
"label": "test_flow_25_toggle_right_pane_toggles_query_param()",
"file_type": "code",
"source_file": "tests/e2e/test_flow_25_production_main_wiring.py",
- "source_location": "L121",
+ "source_location": "L126",
"id": "e2e_test_flow_25_production_main_wiring_test_flow_25_toggle_right_pane_toggles_query_param",
- "community": 151,
+ "community": 96,
"norm_label": "test_flow_25_toggle_right_pane_toggles_query_param()"
},
{
"label": "test_flow_25_tree_context_action_deep_links_into_settings()",
"file_type": "code",
"source_file": "tests/e2e/test_flow_25_production_main_wiring.py",
- "source_location": "L132",
+ "source_location": "L137",
"id": "e2e_test_flow_25_production_main_wiring_test_flow_25_tree_context_action_deep_links_into_settings",
- "community": 151,
+ "community": 96,
"norm_label": "test_flow_25_tree_context_action_deep_links_into_settings()"
},
{
"label": "test_flow_25_received_equipment_disables_creation_buttons()",
"file_type": "code",
"source_file": "tests/e2e/test_flow_25_production_main_wiring.py",
- "source_location": "L147",
+ "source_location": "L152",
"id": "e2e_test_flow_25_production_main_wiring_test_flow_25_received_equipment_disables_creation_buttons",
- "community": 151,
+ "community": 96,
"norm_label": "test_flow_25_received_equipment_disables_creation_buttons()"
},
{
"label": "test_flow_25_footer_clear_verified_routes_to_callback()",
"file_type": "code",
"source_file": "tests/e2e/test_flow_25_production_main_wiring.py",
- "source_location": "L172",
+ "source_location": "L181",
"id": "e2e_test_flow_25_production_main_wiring_test_flow_25_footer_clear_verified_routes_to_callback",
- "community": 151,
+ "community": 96,
"norm_label": "test_flow_25_footer_clear_verified_routes_to_callback()"
},
{
@@ -35496,97 +36558,97 @@
"source_file": "tests/e2e/test_flow_25_production_main_wiring.py",
"source_location": "L1",
"id": "e2e_test_flow_25_production_main_wiring_rationale_1",
- "community": 151,
+ "community": 96,
"norm_label": "e2e flow 25: production /main is wired to the redesigned renderer. this suite e"
},
{
"label": "Navigate to ``url`` with one retry on transient NiceGUI failures.",
"file_type": "rationale",
"source_file": "tests/e2e/test_flow_25_production_main_wiring.py",
- "source_location": "L22",
- "id": "e2e_test_flow_25_production_main_wiring_rationale_22",
- "community": 151,
+ "source_location": "L24",
+ "id": "e2e_test_flow_25_production_main_wiring_rationale_24",
+ "community": 96,
"norm_label": "navigate to ``url`` with one retry on transient nicegui failures."
},
{
"label": "The /main route mounts the redesigned renderer, not the legacy one. Asserts",
"file_type": "rationale",
"source_file": "tests/e2e/test_flow_25_production_main_wiring.py",
- "source_location": "L41",
- "id": "e2e_test_flow_25_production_main_wiring_rationale_41",
- "community": 151,
+ "source_location": "L43",
+ "id": "e2e_test_flow_25_production_main_wiring_rationale_43",
+ "community": 96,
"norm_label": "the /main route mounts the redesigned renderer, not the legacy one. asserts"
},
{
"label": "The Add Equipment toolbar button navigates to /wizard/equipment.",
"file_type": "rationale",
"source_file": "tests/e2e/test_flow_25_production_main_wiring.py",
- "source_location": "L76",
- "id": "e2e_test_flow_25_production_main_wiring_rationale_76",
- "community": 151,
+ "source_location": "L81",
+ "id": "e2e_test_flow_25_production_main_wiring_rationale_81",
+ "community": 96,
"norm_label": "the add equipment toolbar button navigates to /wizard/equipment."
},
{
"label": "Clicking an equipment node updates the URL with ?selected=. Exercises o",
"file_type": "rationale",
"source_file": "tests/e2e/test_flow_25_production_main_wiring.py",
- "source_location": "L83",
- "id": "e2e_test_flow_25_production_main_wiring_rationale_83",
- "community": 151,
+ "source_location": "L88",
+ "id": "e2e_test_flow_25_production_main_wiring_rationale_88",
+ "community": 96,
"norm_label": "clicking an equipment node updates the url with ?selected=. exercises o"
},
{
"label": "Loading /main?selected=TEST_EQ1 directly renders the centre + right panes.",
"file_type": "rationale",
"source_file": "tests/e2e/test_flow_25_production_main_wiring.py",
- "source_location": "L96",
- "id": "e2e_test_flow_25_production_main_wiring_rationale_96",
- "community": 151,
+ "source_location": "L101",
+ "id": "e2e_test_flow_25_production_main_wiring_rationale_101",
+ "community": 96,
"norm_label": "loading /main?selected=test_eq1 directly renders the centre + right panes."
},
{
"label": "Clicking a breadcrumb segment routes back through /main?selected=. The brea",
"file_type": "rationale",
"source_file": "tests/e2e/test_flow_25_production_main_wiring.py",
- "source_location": "L106",
- "id": "e2e_test_flow_25_production_main_wiring_rationale_106",
- "community": 151,
+ "source_location": "L111",
+ "id": "e2e_test_flow_25_production_main_wiring_rationale_111",
+ "community": 96,
"norm_label": "clicking a breadcrumb segment routes back through /main?selected=. the brea"
},
{
"label": "Clicking the right-pane toggle flips ?right_pane=collapsed in the URL.",
"file_type": "rationale",
"source_file": "tests/e2e/test_flow_25_production_main_wiring.py",
- "source_location": "L122",
- "id": "e2e_test_flow_25_production_main_wiring_rationale_122",
- "community": 151,
+ "source_location": "L127",
+ "id": "e2e_test_flow_25_production_main_wiring_rationale_127",
+ "community": 96,
"norm_label": "clicking the right-pane toggle flips ?right_pane=collapsed in the url."
},
{
"label": "Owned-equipment Edit menu navigates to /settings with the equipment id. Rou",
"file_type": "rationale",
"source_file": "tests/e2e/test_flow_25_production_main_wiring.py",
- "source_location": "L133",
- "id": "e2e_test_flow_25_production_main_wiring_rationale_133",
- "community": 151,
+ "source_location": "L138",
+ "id": "e2e_test_flow_25_production_main_wiring_rationale_138",
+ "community": 96,
"norm_label": "owned-equipment edit menu navigates to /settings with the equipment id. rou"
},
{
"label": "Selecting a TEST_RELAY_* node disables the New Project/Run/Test-Run buttons.",
"file_type": "rationale",
"source_file": "tests/e2e/test_flow_25_production_main_wiring.py",
- "source_location": "L148",
- "id": "e2e_test_flow_25_production_main_wiring_rationale_148",
- "community": 151,
+ "source_location": "L153",
+ "id": "e2e_test_flow_25_production_main_wiring_rationale_153",
+ "community": 96,
"norm_label": "selecting a test_relay_* node disables the new project/run/test-run buttons."
},
{
"label": "The footer Clear-verified button is wired to a callback. Asserts the button",
"file_type": "rationale",
"source_file": "tests/e2e/test_flow_25_production_main_wiring.py",
- "source_location": "L173",
- "id": "e2e_test_flow_25_production_main_wiring_rationale_173",
- "community": 151,
+ "source_location": "L182",
+ "id": "e2e_test_flow_25_production_main_wiring_rationale_182",
+ "community": 96,
"norm_label": "the footer clear-verified button is wired to a callback. asserts the button"
},
{
@@ -35595,7 +36657,7 @@
"source_file": "tests/e2e/test_flow_00_full_lifecycle.py",
"source_location": "L1",
"id": "tests_e2e_test_flow_00_full_lifecycle_py",
- "community": 139,
+ "community": 185,
"norm_label": "test_flow_00_full_lifecycle.py"
},
{
@@ -35604,7 +36666,7 @@
"source_file": "tests/e2e/test_flow_00_full_lifecycle.py",
"source_location": "L50",
"id": "e2e_test_flow_00_full_lifecycle_fill",
- "community": 139,
+ "community": 185,
"norm_label": "_fill()"
},
{
@@ -35613,7 +36675,7 @@
"source_file": "tests/e2e/test_flow_00_full_lifecycle.py",
"source_location": "L57",
"id": "e2e_test_flow_00_full_lifecycle_select",
- "community": 139,
+ "community": 185,
"norm_label": "_select()"
},
{
@@ -35622,7 +36684,7 @@
"source_file": "tests/e2e/test_flow_00_full_lifecycle.py",
"source_location": "L86",
"id": "e2e_test_flow_00_full_lifecycle_step_button",
- "community": 139,
+ "community": 185,
"norm_label": "_step_button()"
},
{
@@ -35631,7 +36693,7 @@
"source_file": "tests/e2e/test_flow_00_full_lifecycle.py",
"source_location": "L104",
"id": "e2e_test_flow_00_full_lifecycle_project_next",
- "community": 139,
+ "community": 185,
"norm_label": "_project_next()"
},
{
@@ -35640,7 +36702,7 @@
"source_file": "tests/e2e/test_flow_00_full_lifecycle.py",
"source_location": "L109",
"id": "e2e_test_flow_00_full_lifecycle_run_next",
- "community": 139,
+ "community": 185,
"norm_label": "_run_next()"
},
{
@@ -35649,7 +36711,7 @@
"source_file": "tests/e2e/test_flow_00_full_lifecycle.py",
"source_location": "L114",
"id": "e2e_test_flow_00_full_lifecycle_goto",
- "community": 139,
+ "community": 185,
"norm_label": "_goto()"
},
{
@@ -35658,7 +36720,7 @@
"source_file": "tests/e2e/test_flow_00_full_lifecycle.py",
"source_location": "L139",
"id": "e2e_test_flow_00_full_lifecycle_prod_server",
- "community": 139,
+ "community": 270,
"norm_label": "prod_server()"
},
{
@@ -35667,7 +36729,7 @@
"source_file": "tests/e2e/test_flow_00_full_lifecycle.py",
"source_location": "L168",
"id": "e2e_test_flow_00_full_lifecycle_test_full_create_lifecycle",
- "community": 139,
+ "community": 137,
"norm_label": "test_full_create_lifecycle()"
},
{
@@ -35676,7 +36738,7 @@
"source_file": "tests/e2e/test_flow_00_full_lifecycle.py",
"source_location": "L1",
"id": "e2e_test_flow_00_full_lifecycle_rationale_1",
- "community": 139,
+ "community": 185,
"norm_label": "e2e flow 00b: the full create-lifecycle against the production app. boots the g"
},
{
@@ -35685,7 +36747,7 @@
"source_file": "tests/e2e/test_flow_00_full_lifecycle.py",
"source_location": "L51",
"id": "e2e_test_flow_00_full_lifecycle_rationale_51",
- "community": 139,
+ "community": 185,
"norm_label": "fill a (visible) quasar input identified by ``data-testid``."
},
{
@@ -35694,7 +36756,7 @@
"source_file": "tests/e2e/test_flow_00_full_lifecycle.py",
"source_location": "L65",
"id": "e2e_test_flow_00_full_lifecycle_rationale_65",
- "community": 139,
+ "community": 185,
"norm_label": "pick ``value`` from a nicegui/quasar ``ui.select`` by ``data-testid``. nice"
},
{
@@ -35703,7 +36765,7 @@
"source_file": "tests/e2e/test_flow_00_full_lifecycle.py",
"source_location": "L93",
"id": "e2e_test_flow_00_full_lifecycle_rationale_93",
- "community": 139,
+ "community": 185,
"norm_label": "click a stepper-navigation button scoped to its step container. the next /"
},
{
@@ -35712,7 +36774,7 @@
"source_file": "tests/e2e/test_flow_00_full_lifecycle.py",
"source_location": "L105",
"id": "e2e_test_flow_00_full_lifecycle_rationale_105",
- "community": 139,
+ "community": 185,
"norm_label": "advance the project wizard from ``step_id`` via its next button."
},
{
@@ -35721,7 +36783,7 @@
"source_file": "tests/e2e/test_flow_00_full_lifecycle.py",
"source_location": "L110",
"id": "e2e_test_flow_00_full_lifecycle_rationale_110",
- "community": 139,
+ "community": 185,
"norm_label": "advance the run wizard from ``step_id`` via its next button."
},
{
@@ -35730,7 +36792,7 @@
"source_file": "tests/e2e/test_flow_00_full_lifecycle.py",
"source_location": "L115",
"id": "e2e_test_flow_00_full_lifecycle_rationale_115",
- "community": 139,
+ "community": 185,
"norm_label": "navigate to a nicegui page, tolerating a transient err_aborted. nicegui's c"
},
{
@@ -35739,7 +36801,7 @@
"source_file": "tests/e2e/test_flow_00_full_lifecycle.py",
"source_location": "L140",
"id": "e2e_test_flow_00_full_lifecycle_rationale_140",
- "community": 139,
+ "community": 270,
"norm_label": "yield a started :class:`prodserver` rooted at a fresh tmp home. the keyring"
},
{
@@ -35748,7 +36810,7 @@
"source_file": "tests/e2e/test_flow_13_keyboard.py",
"source_location": "L1",
"id": "tests_e2e_test_flow_13_keyboard_py",
- "community": 454,
+ "community": 484,
"norm_label": "test_flow_13_keyboard.py"
},
{
@@ -35757,7 +36819,7 @@
"source_file": "tests/e2e/test_flow_13_keyboard.py",
"source_location": "L14",
"id": "e2e_test_flow_13_keyboard_test_flow_13_keyboard",
- "community": 454,
+ "community": 484,
"norm_label": "test_flow_13_keyboard()"
},
{
@@ -35766,7 +36828,7 @@
"source_file": "tests/e2e/test_flow_13_keyboard.py",
"source_location": "L1",
"id": "e2e_test_flow_13_keyboard_rationale_1",
- "community": 454,
+ "community": 484,
"norm_label": "e2e flow 13: keyboard shortcuts + accessibility focus management. frontend spec"
},
{
@@ -35775,7 +36837,7 @@
"source_file": "tests/e2e/ux_catalog.py",
"source_location": "L1",
"id": "tests_e2e_ux_catalog_py",
- "community": 395,
+ "community": 417,
"norm_label": "ux_catalog.py"
},
{
@@ -35784,7 +36846,7 @@
"source_file": "tests/e2e/ux_catalog.py",
"source_location": "L29",
"id": "e2e_ux_catalog_uxinteraction",
- "community": 395,
+ "community": 417,
"norm_label": "uxinteraction"
},
{
@@ -35793,7 +36855,7 @@
"source_file": "tests/e2e/ux_catalog.py",
"source_location": "L1",
"id": "e2e_ux_catalog_rationale_1",
- "community": 395,
+ "community": 417,
"norm_label": "machine-readable catalog of the wizard's ux interactions. each :class:`uxintera"
},
{
@@ -35802,7 +36864,7 @@
"source_file": "tests/e2e/ux_catalog.py",
"source_location": "L30",
"id": "e2e_ux_catalog_rationale_30",
- "community": 395,
+ "community": 417,
"norm_label": "one operator-facing affordance in the wizard ui."
},
{
@@ -35811,7 +36873,7 @@
"source_file": "tests/e2e/test_flow_07_plugin_input_required.py",
"source_location": "L1",
"id": "tests_e2e_test_flow_07_plugin_input_required_py",
- "community": 455,
+ "community": 485,
"norm_label": "test_flow_07_plugin_input_required.py"
},
{
@@ -35820,7 +36882,7 @@
"source_file": "tests/e2e/test_flow_07_plugin_input_required.py",
"source_location": "L14",
"id": "e2e_test_flow_07_plugin_input_required_test_flow_07_plugin_input_required",
- "community": 455,
+ "community": 485,
"norm_label": "test_flow_07_plugin_input_required()"
},
{
@@ -35829,7 +36891,7 @@
"source_file": "tests/e2e/test_flow_07_plugin_input_required.py",
"source_location": "L1",
"id": "e2e_test_flow_07_plugin_input_required_rationale_1",
- "community": 455,
+ "community": 485,
"norm_label": "e2e flow 07: plugin input-required round trip. frontend spec \u00a76.4.5 (plugin ste"
},
{
@@ -35838,7 +36900,7 @@
"source_file": "tests/e2e/test_flow_26_equipment_wizard_persist.py",
"source_location": "L1",
"id": "tests_e2e_test_flow_26_equipment_wizard_persist_py",
- "community": 233,
+ "community": 355,
"norm_label": "test_flow_26_equipment_wizard_persist.py"
},
{
@@ -35847,7 +36909,7 @@
"source_file": "tests/e2e/test_flow_26_equipment_wizard_persist.py",
"source_location": "L40",
"id": "e2e_test_flow_26_equipment_wizard_persist_prod_server",
- "community": 233,
+ "community": 355,
"norm_label": "prod_server()"
},
{
@@ -35856,7 +36918,7 @@
"source_file": "tests/e2e/test_flow_26_equipment_wizard_persist.py",
"source_location": "L53",
"id": "e2e_test_flow_26_equipment_wizard_persist_test_equipment_wizard_confirm_persists_to_config",
- "community": 233,
+ "community": 355,
"norm_label": "test_equipment_wizard_confirm_persists_to_config()"
},
{
@@ -35865,7 +36927,7 @@
"source_file": "tests/e2e/test_flow_26_equipment_wizard_persist.py",
"source_location": "L1",
"id": "e2e_test_flow_26_equipment_wizard_persist_rationale_1",
- "community": 233,
+ "community": 355,
"norm_label": "e2e flow 26: add-equipment wizard confirm against the production app. ``test_fl"
},
{
@@ -35874,7 +36936,7 @@
"source_file": "tests/e2e/test_flow_26_equipment_wizard_persist.py",
"source_location": "L41",
"id": "e2e_test_flow_26_equipment_wizard_persist_rationale_41",
- "community": 233,
+ "community": 355,
"norm_label": "spawn the production wizard app under a fresh tmp home."
},
{
@@ -35883,7 +36945,7 @@
"source_file": "tests/e2e/test_flow_26_equipment_wizard_persist.py",
"source_location": "L54",
"id": "e2e_test_flow_26_equipment_wizard_persist_rationale_54",
- "community": 233,
+ "community": 355,
"norm_label": "drive the production wizard to confirm and assert config.yaml gains the device."
},
{
@@ -35892,16 +36954,16 @@
"source_file": "tests/e2e/test_flow_09_orchestrator.py",
"source_location": "L1",
"id": "tests_e2e_test_flow_09_orchestrator_py",
- "community": 209,
+ "community": 208,
"norm_label": "test_flow_09_orchestrator.py"
},
{
"label": "test_flow_09_orchestrator()",
"file_type": "code",
"source_file": "tests/e2e/test_flow_09_orchestrator.py",
- "source_location": "L20",
+ "source_location": "L31",
"id": "e2e_test_flow_09_orchestrator_test_flow_09_orchestrator",
- "community": 209,
+ "community": 208,
"norm_label": "test_flow_09_orchestrator()"
},
{
@@ -35910,7 +36972,7 @@
"source_file": "tests/e2e/test_flow_09_orchestrator.py",
"source_location": "L1",
"id": "e2e_test_flow_09_orchestrator_rationale_1",
- "community": 209,
+ "community": 208,
"norm_label": "e2e flow 09: orchestrator staging panel + quiescence-sync trigger. frontend spe"
},
{
@@ -35919,7 +36981,7 @@
"source_file": "tests/e2e/test_flow_27_nas_credential_settings.py",
"source_location": "L1",
"id": "tests_e2e_test_flow_27_nas_credential_settings_py",
- "community": 287,
+ "community": 291,
"norm_label": "test_flow_27_nas_credential_settings.py"
},
{
@@ -35937,7 +36999,7 @@
"source_file": "tests/e2e/test_flow_27_nas_credential_settings.py",
"source_location": "L92",
"id": "e2e_test_flow_27_nas_credential_settings_install_stub_rclone",
- "community": 287,
+ "community": 291,
"norm_label": "_install_stub_rclone()"
},
{
@@ -35946,7 +37008,7 @@
"source_file": "tests/e2e/test_flow_27_nas_credential_settings.py",
"source_location": "L102",
"id": "e2e_test_flow_27_nas_credential_settings_nas_prod_server",
- "community": 287,
+ "community": 291,
"norm_label": "nas_prod_server()"
},
{
@@ -35955,7 +37017,7 @@
"source_file": "tests/e2e/test_flow_27_nas_credential_settings.py",
"source_location": "L172",
"id": "e2e_test_flow_27_nas_credential_settings_setup_state",
- "community": 287,
+ "community": 291,
"norm_label": "_setup_state()"
},
{
@@ -35964,7 +37026,7 @@
"source_file": "tests/e2e/test_flow_27_nas_credential_settings.py",
"source_location": "L176",
"id": "e2e_test_flow_27_nas_credential_settings_test_nas_remote_gate_configure_and_test",
- "community": 287,
+ "community": 291,
"norm_label": "test_nas_remote_gate_configure_and_test()"
},
{
@@ -35973,7 +37035,7 @@
"source_file": "tests/e2e/test_flow_27_nas_credential_settings.py",
"source_location": "L1",
"id": "e2e_test_flow_27_nas_credential_settings_rationale_1",
- "community": 287,
+ "community": 291,
"norm_label": "e2e flow 27: nas remote setup gate + settings section (rclone.conf migration)."
},
{
@@ -35991,7 +37053,7 @@
"source_file": "tests/e2e/test_flow_27_nas_credential_settings.py",
"source_location": "L103",
"id": "e2e_test_flow_27_nas_credential_settings_rationale_103",
- "community": 287,
+ "community": 291,
"norm_label": "spawn the production wizard seeded with a credential-less nas equipment. yi"
},
{
@@ -36000,7 +37062,7 @@
"source_file": "tests/e2e/test_flow_15_websocket_reconnect.py",
"source_location": "L1",
"id": "tests_e2e_test_flow_15_websocket_reconnect_py",
- "community": 456,
+ "community": 486,
"norm_label": "test_flow_15_websocket_reconnect.py"
},
{
@@ -36009,7 +37071,7 @@
"source_file": "tests/e2e/test_flow_15_websocket_reconnect.py",
"source_location": "L16",
"id": "e2e_test_flow_15_websocket_reconnect_test_flow_15_websocket_reconnect",
- "community": 456,
+ "community": 486,
"norm_label": "test_flow_15_websocket_reconnect()"
},
{
@@ -36018,7 +37080,7 @@
"source_file": "tests/e2e/test_flow_15_websocket_reconnect.py",
"source_location": "L1",
"id": "e2e_test_flow_15_websocket_reconnect_rationale_1",
- "community": 456,
+ "community": 486,
"norm_label": "e2e flow 15: websocket reconnect + degraded-mode banner. frontend spec \u00a76.14 (d"
},
{
@@ -36027,25 +37089,25 @@
"source_file": "tests/e2e/test_flow_21_stage_ceiling.py",
"source_location": "L1",
"id": "tests_e2e_test_flow_21_stage_ceiling_py",
- "community": 396,
+ "community": 418,
"norm_label": "test_flow_21_stage_ceiling.py"
},
{
"label": "_goto()",
"file_type": "code",
"source_file": "tests/e2e/test_flow_21_stage_ceiling.py",
- "source_location": "L12",
+ "source_location": "L23",
"id": "e2e_test_flow_21_stage_ceiling_goto",
- "community": 396,
+ "community": 418,
"norm_label": "_goto()"
},
{
"label": "test_flow_21_stage_equipment_metadata_renders_ceiling_note()",
"file_type": "code",
"source_file": "tests/e2e/test_flow_21_stage_ceiling.py",
- "source_location": "L25",
+ "source_location": "L36",
"id": "e2e_test_flow_21_stage_ceiling_test_flow_21_stage_equipment_metadata_renders_ceiling_note",
- "community": 396,
+ "community": 418,
"norm_label": "test_flow_21_stage_equipment_metadata_renders_ceiling_note()"
},
{
@@ -36054,7 +37116,7 @@
"source_file": "tests/e2e/test_flow_21_stage_ceiling.py",
"source_location": "L1",
"id": "e2e_test_flow_21_stage_ceiling_rationale_1",
- "community": 396,
+ "community": 418,
"norm_label": "e2e flow 21: stage-mode ceiling note (redesign \u00a73.2 / \u00a74.4). when a stage-mode"
},
{
@@ -36063,7 +37125,7 @@
"source_file": "tests/e2e/_test_app.py",
"source_location": "L1",
"id": "tests_e2e_test_app_py",
- "community": 146,
+ "community": 39,
"norm_label": "_test_app.py"
},
{
@@ -36072,7 +37134,7 @@
"source_file": "tests/e2e/_test_app.py",
"source_location": "L67",
"id": "e2e_test_app_teststate",
- "community": 146,
+ "community": 3,
"norm_label": "teststate"
},
{
@@ -36081,7 +37143,7 @@
"source_file": "tests/e2e/_test_app.py",
"source_location": "L102",
"id": "e2e_test_app_read_query",
- "community": 146,
+ "community": 39,
"norm_label": "_read_query()"
},
{
@@ -36090,7 +37152,7 @@
"source_file": "tests/e2e/_test_app.py",
"source_location": "L109",
"id": "e2e_test_app_classify_test_node",
- "community": 146,
+ "community": 39,
"norm_label": "_classify_test_node()"
},
{
@@ -36099,7 +37161,7 @@
"source_file": "tests/e2e/_test_app.py",
"source_location": "L129",
"id": "e2e_test_app_seeded_metadata_payload",
- "community": 146,
+ "community": 39,
"norm_label": "_seeded_metadata_payload()"
},
{
@@ -36108,7 +37170,7 @@
"source_file": "tests/e2e/_test_app.py",
"source_location": "L189",
"id": "e2e_test_app_feed_rows",
- "community": 146,
+ "community": 39,
"norm_label": "_feed_rows()"
},
{
@@ -36117,7 +37179,7 @@
"source_file": "tests/e2e/_test_app.py",
"source_location": "L209",
"id": "e2e_test_app_seeded_file_entries",
- "community": 146,
+ "community": 39,
"norm_label": "_seeded_file_entries()"
},
{
@@ -36126,16 +37188,16 @@
"source_file": "tests/e2e/_test_app.py",
"source_location": "L236",
"id": "e2e_test_app_build_test_app",
- "community": 146,
+ "community": 39,
"norm_label": "build_test_app()"
},
{
"label": "create_app_factory()",
"file_type": "code",
"source_file": "tests/e2e/_test_app.py",
- "source_location": "L930",
+ "source_location": "L948",
"id": "e2e_test_app_create_app_factory",
- "community": 146,
+ "community": 39,
"norm_label": "create_app_factory()"
},
{
@@ -36144,7 +37206,7 @@
"source_file": "tests/e2e/_test_app.py",
"source_location": "L1",
"id": "e2e_test_app_rationale_1",
- "community": 146,
+ "community": 39,
"norm_label": "e2e test app wiring (phase 16 follow-up). builds a fastapi app via :func:`exlab"
},
{
@@ -36153,7 +37215,7 @@
"source_file": "tests/e2e/_test_app.py",
"source_location": "L68",
"id": "e2e_test_app_rationale_68",
- "community": 146,
+ "community": 3,
"norm_label": "mutable cross-request state for the e2e harness."
},
{
@@ -36162,7 +37224,7 @@
"source_file": "tests/e2e/_test_app.py",
"source_location": "L103",
"id": "e2e_test_app_rationale_103",
- "community": 146,
+ "community": 39,
"norm_label": "parse a request url's query string into a multi-value mapping."
},
{
@@ -36171,7 +37233,7 @@
"source_file": "tests/e2e/_test_app.py",
"source_location": "L110",
"id": "e2e_test_app_rationale_110",
- "community": 146,
+ "community": 39,
"norm_label": "same shape classifier the production mount uses, for seeded ids. returns ``"
},
{
@@ -36180,7 +37242,7 @@
"source_file": "tests/e2e/_test_app.py",
"source_location": "L130",
"id": "e2e_test_app_rationale_130",
- "community": 146,
+ "community": 39,
"norm_label": "per-node-kind hardcoded payloads the test app threads into the production re"
},
{
@@ -36189,7 +37251,7 @@
"source_file": "tests/e2e/_test_app.py",
"source_location": "L192",
"id": "e2e_test_app_rationale_192",
- "community": 146,
+ "community": 39,
"norm_label": "return a node's feed as normalized 5-tuples. ``(name, size, sync_status, ke"
},
{
@@ -36198,7 +37260,7 @@
"source_file": "tests/e2e/_test_app.py",
"source_location": "L210",
"id": "e2e_test_app_rationale_210",
- "community": 146,
+ "community": 39,
"norm_label": "build the centre-pane file rows the test flows assert on. returns a default"
},
{
@@ -36207,16 +37269,16 @@
"source_file": "tests/e2e/_test_app.py",
"source_location": "L237",
"id": "e2e_test_app_rationale_237",
- "community": 146,
+ "community": 39,
"norm_label": "construct the fastapi app and mount the nicegui test surface."
},
{
"label": "uvicorn ``--factory`` entrypoint.",
"file_type": "rationale",
"source_file": "tests/e2e/_test_app.py",
- "source_location": "L931",
- "id": "e2e_test_app_rationale_931",
- "community": 146,
+ "source_location": "L949",
+ "id": "e2e_test_app_rationale_949",
+ "community": 39,
"norm_label": "uvicorn ``--factory`` entrypoint."
},
{
@@ -36225,7 +37287,7 @@
"source_file": "tests/e2e/test_flow_01_onboarding.py",
"source_location": "L1",
"id": "tests_e2e_test_flow_01_onboarding_py",
- "community": 244,
+ "community": 217,
"norm_label": "test_flow_01_onboarding.py"
},
{
@@ -36234,7 +37296,7 @@
"source_file": "tests/e2e/test_flow_01_onboarding.py",
"source_location": "L18",
"id": "e2e_test_flow_01_onboarding_goto",
- "community": 244,
+ "community": 217,
"norm_label": "_goto()"
},
{
@@ -36243,7 +37305,7 @@
"source_file": "tests/e2e/test_flow_01_onboarding.py",
"source_location": "L37",
"id": "e2e_test_flow_01_onboarding_test_flow_01_onboarding",
- "community": 244,
+ "community": 217,
"norm_label": "test_flow_01_onboarding()"
},
{
@@ -36252,7 +37314,7 @@
"source_file": "tests/e2e/test_flow_01_onboarding.py",
"source_location": "L1",
"id": "e2e_test_flow_01_onboarding_rationale_1",
- "community": 244,
+ "community": 217,
"norm_label": "e2e flow 01: first-launch onboarding. frontend spec \u00a76.1 (welcome card + autost"
},
{
@@ -36261,7 +37323,7 @@
"source_file": "tests/e2e/test_flow_01_onboarding.py",
"source_location": "L19",
"id": "e2e_test_flow_01_onboarding_rationale_19",
- "community": 244,
+ "community": 217,
"norm_label": "navigate to a nicegui page, tolerating a transient err_aborted. nicegui's c"
},
{
@@ -36270,7 +37332,7 @@
"source_file": "tests/e2e/test_flow_12_quit_coordinator.py",
"source_location": "L1",
"id": "tests_e2e_test_flow_12_quit_coordinator_py",
- "community": 457,
+ "community": 487,
"norm_label": "test_flow_12_quit_coordinator.py"
},
{
@@ -36279,7 +37341,7 @@
"source_file": "tests/e2e/test_flow_12_quit_coordinator.py",
"source_location": "L27",
"id": "e2e_test_flow_12_quit_coordinator_test_flow_12_quit_coordinator",
- "community": 457,
+ "community": 487,
"norm_label": "test_flow_12_quit_coordinator()"
},
{
@@ -36288,16 +37350,151 @@
"source_file": "tests/e2e/test_flow_12_quit_coordinator.py",
"source_location": "L1",
"id": "e2e_test_flow_12_quit_coordinator_rationale_1",
- "community": 457,
+ "community": 487,
"norm_label": "e2e flow 12: quit coordinator (drain in-flight sessions). frontend spec \u00a76.11 ("
},
+ {
+ "label": "test_flow_28_selection_search_density.py",
+ "file_type": "code",
+ "source_file": "tests/e2e/test_flow_28_selection_search_density.py",
+ "source_location": "L1",
+ "id": "tests_e2e_test_flow_28_selection_search_density_py",
+ "community": 226,
+ "norm_label": "test_flow_28_selection_search_density.py"
+ },
+ {
+ "label": "_goto()",
+ "file_type": "code",
+ "source_file": "tests/e2e/test_flow_28_selection_search_density.py",
+ "source_location": "L26",
+ "id": "e2e_test_flow_28_selection_search_density_goto",
+ "community": 226,
+ "norm_label": "_goto()"
+ },
+ {
+ "label": "test_flow_28_select_file_row_highlights_and_shows_subcard()",
+ "file_type": "code",
+ "source_file": "tests/e2e/test_flow_28_selection_search_density.py",
+ "source_location": "L39",
+ "id": "e2e_test_flow_28_selection_search_density_test_flow_28_select_file_row_highlights_and_shows_subcard",
+ "community": 226,
+ "norm_label": "test_flow_28_select_file_row_highlights_and_shows_subcard()"
+ },
+ {
+ "label": "test_flow_28_search_filters_tree_and_shows_count()",
+ "file_type": "code",
+ "source_file": "tests/e2e/test_flow_28_selection_search_density.py",
+ "source_location": "L58",
+ "id": "e2e_test_flow_28_selection_search_density_test_flow_28_search_filters_tree_and_shows_count",
+ "community": 226,
+ "norm_label": "test_flow_28_search_filters_tree_and_shows_count()"
+ },
+ {
+ "label": "test_flow_28_search_no_matches_state()",
+ "file_type": "code",
+ "source_file": "tests/e2e/test_flow_28_selection_search_density.py",
+ "source_location": "L67",
+ "id": "e2e_test_flow_28_selection_search_density_test_flow_28_search_no_matches_state",
+ "community": 226,
+ "norm_label": "test_flow_28_search_no_matches_state()"
+ },
+ {
+ "label": "test_flow_28_density_toggle_threads_density_param()",
+ "file_type": "code",
+ "source_file": "tests/e2e/test_flow_28_selection_search_density.py",
+ "source_location": "L73",
+ "id": "e2e_test_flow_28_selection_search_density_test_flow_28_density_toggle_threads_density_param",
+ "community": 226,
+ "norm_label": "test_flow_28_density_toggle_threads_density_param()"
+ },
+ {
+ "label": "test_flow_28_sync_legend_popover_lists_states()",
+ "file_type": "code",
+ "source_file": "tests/e2e/test_flow_28_selection_search_density.py",
+ "source_location": "L82",
+ "id": "e2e_test_flow_28_selection_search_density_test_flow_28_sync_legend_popover_lists_states",
+ "community": 226,
+ "norm_label": "test_flow_28_sync_legend_popover_lists_states()"
+ },
+ {
+ "label": "test_flow_28_selected_tree_node_carries_selected_class()",
+ "file_type": "code",
+ "source_file": "tests/e2e/test_flow_28_selection_search_density.py",
+ "source_location": "L94",
+ "id": "e2e_test_flow_28_selection_search_density_test_flow_28_selected_tree_node_carries_selected_class",
+ "community": 226,
+ "norm_label": "test_flow_28_selected_tree_node_carries_selected_class()"
+ },
+ {
+ "label": "E2E flow 28: Phase 4/5 polish \u2014 file selection, search, density, legend. Covers",
+ "file_type": "rationale",
+ "source_file": "tests/e2e/test_flow_28_selection_search_density.py",
+ "source_location": "L1",
+ "id": "e2e_test_flow_28_selection_search_density_rationale_1",
+ "community": 226,
+ "norm_label": "e2e flow 28: phase 4/5 polish \u2014 file selection, search, density, legend. covers"
+ },
+ {
+ "label": "Single-clicking a file row threads ?file=, marks the row selected, and surfa",
+ "file_type": "rationale",
+ "source_file": "tests/e2e/test_flow_28_selection_search_density.py",
+ "source_location": "L40",
+ "id": "e2e_test_flow_28_selection_search_density_rationale_40",
+ "community": 226,
+ "norm_label": "single-clicking a file row threads ?file=, marks the row selected, and surfa"
+ },
+ {
+ "label": "A search query renders the result-count pill and seeds the box (OQ-2).",
+ "file_type": "rationale",
+ "source_file": "tests/e2e/test_flow_28_selection_search_density.py",
+ "source_location": "L59",
+ "id": "e2e_test_flow_28_selection_search_density_rationale_59",
+ "community": 226,
+ "norm_label": "a search query renders the result-count pill and seeds the box (oq-2)."
+ },
+ {
+ "label": "A query that matches nothing renders the no-matches hint (OQ-2).",
+ "file_type": "rationale",
+ "source_file": "tests/e2e/test_flow_28_selection_search_density.py",
+ "source_location": "L68",
+ "id": "e2e_test_flow_28_selection_search_density_rationale_68",
+ "community": 226,
+ "norm_label": "a query that matches nothing renders the no-matches hint (oq-2)."
+ },
+ {
+ "label": "The Files-header density toggle re-navigates with ?density=compact (\u00a74.8).",
+ "file_type": "rationale",
+ "source_file": "tests/e2e/test_flow_28_selection_search_density.py",
+ "source_location": "L74",
+ "id": "e2e_test_flow_28_selection_search_density_rationale_74",
+ "community": 226,
+ "norm_label": "the files-header density toggle re-navigates with ?density=compact (\u00a74.8)."
+ },
+ {
+ "label": "The Files-header \"?\" opens the sync-status legend popover (Phase 5).",
+ "file_type": "rationale",
+ "source_file": "tests/e2e/test_flow_28_selection_search_density.py",
+ "source_location": "L83",
+ "id": "e2e_test_flow_28_selection_search_density_rationale_83",
+ "community": 226,
+ "norm_label": "the files-header \"?\" opens the sync-status legend popover (phase 5)."
+ },
+ {
+ "label": "The selected tree node renders Quasar's selected class -- the hook the unifi",
+ "file_type": "rationale",
+ "source_file": "tests/e2e/test_flow_28_selection_search_density.py",
+ "source_location": "L95",
+ "id": "e2e_test_flow_28_selection_search_density_rationale_95",
+ "community": 226,
+ "norm_label": "the selected tree node renders quasar's selected class -- the hook the unifi"
+ },
{
"label": "test_flow_19_travelling_badge.py",
"file_type": "code",
"source_file": "tests/e2e/test_flow_19_travelling_badge.py",
"source_location": "L1",
"id": "tests_e2e_test_flow_19_travelling_badge_py",
- "community": 330,
+ "community": 334,
"norm_label": "test_flow_19_travelling_badge.py"
},
{
@@ -36306,7 +37503,7 @@
"source_file": "tests/e2e/test_flow_19_travelling_badge.py",
"source_location": "L40",
"id": "e2e_test_flow_19_travelling_badge_free_port",
- "community": 330,
+ "community": 334,
"norm_label": "_free_port()"
},
{
@@ -36315,7 +37512,7 @@
"source_file": "tests/e2e/test_flow_19_travelling_badge.py",
"source_location": "L46",
"id": "e2e_test_flow_19_travelling_badge_make_seeded_server",
- "community": 330,
+ "community": 334,
"norm_label": "_make_seeded_server()"
},
{
@@ -36324,7 +37521,7 @@
"source_file": "tests/e2e/test_flow_19_travelling_badge.py",
"source_location": "L87",
"id": "e2e_test_flow_19_travelling_badge_test_flow_19_travelling_badge_aggregates_red",
- "community": 330,
+ "community": 334,
"norm_label": "test_flow_19_travelling_badge_aggregates_red()"
},
{
@@ -36333,7 +37530,7 @@
"source_file": "tests/e2e/test_flow_19_travelling_badge.py",
"source_location": "L1",
"id": "e2e_test_flow_19_travelling_badge_rationale_1",
- "community": 330,
+ "community": 334,
"norm_label": "e2e flow 19: travelling problem badge (redesign \u00a74.5). the badge sits on the sh"
},
{
@@ -36342,7 +37539,7 @@
"source_file": "tests/e2e/test_flow_19_travelling_badge.py",
"source_location": "L47",
"id": "e2e_test_flow_19_travelling_badge_rationale_47",
- "community": 330,
+ "community": 334,
"norm_label": "spawn a uvicorn server with seeded findings injected via env var."
},
{
@@ -36351,7 +37548,7 @@
"source_file": "tests/e2e/test_flow_19_travelling_badge.py",
"source_location": "L88",
"id": "e2e_test_flow_19_travelling_badge_rationale_88",
- "community": 330,
+ "community": 334,
"norm_label": "the badge for a seeded hard finding renders on the root node."
},
{
@@ -36360,7 +37557,7 @@
"source_file": "tests/e2e/test_flow_04_test_run.py",
"source_location": "L1",
"id": "tests_e2e_test_flow_04_test_run_py",
- "community": 152,
+ "community": 159,
"norm_label": "test_flow_04_test_run.py"
},
{
@@ -36369,7 +37566,7 @@
"source_file": "tests/e2e/test_flow_04_test_run.py",
"source_location": "L17",
"id": "e2e_test_flow_04_test_run_test_flow_04_test_run",
- "community": 152,
+ "community": 159,
"norm_label": "test_flow_04_test_run()"
},
{
@@ -36378,7 +37575,7 @@
"source_file": "tests/e2e/test_flow_04_test_run.py",
"source_location": "L1",
"id": "e2e_test_flow_04_test_run_rationale_1",
- "community": 152,
+ "community": 159,
"norm_label": "e2e flow 04: test-run wizard end-to-end. frontend spec \u00a76.4 (run wizard, test m"
},
{
@@ -36387,7 +37584,7 @@
"source_file": "tests/e2e/test_flow_06_problems.py",
"source_location": "L1",
"id": "tests_e2e_test_flow_06_problems_py",
- "community": 137,
+ "community": 142,
"norm_label": "test_flow_06_problems.py"
},
{
@@ -36396,7 +37593,7 @@
"source_file": "tests/e2e/test_flow_06_problems.py",
"source_location": "L19",
"id": "e2e_test_flow_06_problems_test_flow_06_problems",
- "community": 137,
+ "community": 142,
"norm_label": "test_flow_06_problems()"
},
{
@@ -36405,7 +37602,7 @@
"source_file": "tests/e2e/test_flow_06_problems.py",
"source_location": "L1",
"id": "e2e_test_flow_06_problems_rationale_1",
- "community": 137,
+ "community": 142,
"norm_label": "e2e flow 06: problems view + override / revoke round trip. frontend spec \u00a76.6 ("
},
{
@@ -36414,7 +37611,7 @@
"source_file": "tests/e2e/test_flow_14_notifications.py",
"source_location": "L1",
"id": "tests_e2e_test_flow_14_notifications_py",
- "community": 458,
+ "community": 488,
"norm_label": "test_flow_14_notifications.py"
},
{
@@ -36423,7 +37620,7 @@
"source_file": "tests/e2e/test_flow_14_notifications.py",
"source_location": "L26",
"id": "e2e_test_flow_14_notifications_test_flow_14_notifications",
- "community": 458,
+ "community": 488,
"norm_label": "test_flow_14_notifications()"
},
{
@@ -36432,7 +37629,7 @@
"source_file": "tests/e2e/test_flow_14_notifications.py",
"source_location": "L1",
"id": "e2e_test_flow_14_notifications_rationale_1",
- "community": 458,
+ "community": 488,
"norm_label": "e2e flow 14: tray notifications + in-app toasts. frontend spec \u00a76.13 (notificat"
},
{
@@ -36441,7 +37638,7 @@
"source_file": "tests/e2e/test_flow_10_schema_mismatch.py",
"source_location": "L1",
"id": "tests_e2e_test_flow_10_schema_mismatch_py",
- "community": 137,
+ "community": 142,
"norm_label": "test_flow_10_schema_mismatch.py"
},
{
@@ -36450,7 +37647,7 @@
"source_file": "tests/e2e/test_flow_10_schema_mismatch.py",
"source_location": "L17",
"id": "e2e_test_flow_10_schema_mismatch_test_flow_10_schema_mismatch",
- "community": 137,
+ "community": 142,
"norm_label": "test_flow_10_schema_mismatch()"
},
{
@@ -36459,7 +37656,7 @@
"source_file": "tests/e2e/test_flow_10_schema_mismatch.py",
"source_location": "L1",
"id": "e2e_test_flow_10_schema_mismatch_rationale_1",
- "community": 137,
+ "community": 142,
"norm_label": "e2e flow 10: schema-mismatch / migration prompt. frontend spec \u00a76.9 (schema-mis"
},
{
@@ -36468,7 +37665,7 @@
"source_file": "tests/e2e/test_flow_02_project_wizard.py",
"source_location": "L1",
"id": "tests_e2e_test_flow_02_project_wizard_py",
- "community": 191,
+ "community": 193,
"norm_label": "test_flow_02_project_wizard.py"
},
{
@@ -36477,7 +37674,7 @@
"source_file": "tests/e2e/test_flow_02_project_wizard.py",
"source_location": "L14",
"id": "e2e_test_flow_02_project_wizard_test_flow_02_project_wizard",
- "community": 191,
+ "community": 193,
"norm_label": "test_flow_02_project_wizard()"
},
{
@@ -36486,7 +37683,7 @@
"source_file": "tests/e2e/test_flow_02_project_wizard.py",
"source_location": "L1",
"id": "e2e_test_flow_02_project_wizard_rationale_1",
- "community": 191,
+ "community": 193,
"norm_label": "e2e flow 02: project wizard 7-step happy path. frontend spec \u00a76.3 (project wiza"
},
{
@@ -36495,7 +37692,7 @@
"source_file": "tests/e2e/page_objects/problems_page.py",
"source_location": "L1",
"id": "tests_e2e_page_objects_problems_page_py",
- "community": 137,
+ "community": 142,
"norm_label": "problems_page.py"
},
{
@@ -36504,7 +37701,7 @@
"source_file": "tests/e2e/page_objects/problems_page.py",
"source_location": "L11",
"id": "page_objects_problems_page_problemspage",
- "community": 137,
+ "community": 142,
"norm_label": "problemspage"
},
{
@@ -36513,7 +37710,7 @@
"source_file": "tests/e2e/page_objects/problems_page.py",
"source_location": "L14",
"id": "page_objects_problems_page_problemspage_init",
- "community": 137,
+ "community": 142,
"norm_label": ".__init__()"
},
{
@@ -36522,7 +37719,7 @@
"source_file": "tests/e2e/page_objects/problems_page.py",
"source_location": "L18",
"id": "page_objects_problems_page_table",
- "community": 137,
+ "community": 142,
"norm_label": "table()"
},
{
@@ -36531,7 +37728,7 @@
"source_file": "tests/e2e/page_objects/problems_page.py",
"source_location": "L23",
"id": "page_objects_problems_page_empty_state",
- "community": 137,
+ "community": 142,
"norm_label": "empty_state()"
},
{
@@ -36540,7 +37737,7 @@
"source_file": "tests/e2e/page_objects/problems_page.py",
"source_location": "L27",
"id": "page_objects_problems_page_problemspage_row",
- "community": 137,
+ "community": 142,
"norm_label": ".row()"
},
{
@@ -36549,7 +37746,7 @@
"source_file": "tests/e2e/page_objects/problems_page.py",
"source_location": "L31",
"id": "page_objects_problems_page_problemspage_row_state",
- "community": 137,
+ "community": 142,
"norm_label": ".row_state()"
},
{
@@ -36558,7 +37755,7 @@
"source_file": "tests/e2e/page_objects/problems_page.py",
"source_location": "L35",
"id": "page_objects_problems_page_problemspage_row_override",
- "community": 137,
+ "community": 142,
"norm_label": ".row_override()"
},
{
@@ -36567,7 +37764,7 @@
"source_file": "tests/e2e/page_objects/problems_page.py",
"source_location": "L39",
"id": "page_objects_problems_page_problemspage_row_revoke",
- "community": 137,
+ "community": 142,
"norm_label": ".row_revoke()"
},
{
@@ -36576,7 +37773,7 @@
"source_file": "tests/e2e/page_objects/problems_page.py",
"source_location": "L1",
"id": "page_objects_problems_page_rationale_1",
- "community": 137,
+ "community": 142,
"norm_label": "page object for the problems tab. frontend spec \u00a76.6."
},
{
@@ -36585,7 +37782,7 @@
"source_file": "tests/e2e/page_objects/problems_page.py",
"source_location": "L12",
"id": "page_objects_problems_page_rationale_12",
- "community": 137,
+ "community": 142,
"norm_label": "locators for the problems table + override dialog."
},
{
@@ -36594,7 +37791,7 @@
"source_file": "tests/e2e/page_objects/problems_page.py",
"source_location": "L19",
"id": "page_objects_problems_page_rationale_19",
- "community": 541,
+ "community": 566,
"norm_label": "the problems table container."
},
{
@@ -36603,7 +37800,7 @@
"source_file": "tests/e2e/page_objects/problems_page.py",
"source_location": "L24",
"id": "page_objects_problems_page_rationale_24",
- "community": 542,
+ "community": 567,
"norm_label": "the empty-state label shown when no findings match."
},
{
@@ -36612,7 +37809,7 @@
"source_file": "tests/e2e/page_objects/problems_page.py",
"source_location": "L28",
"id": "page_objects_problems_page_rationale_28",
- "community": 137,
+ "community": 142,
"norm_label": "the nth visible findings row."
},
{
@@ -36621,7 +37818,7 @@
"source_file": "tests/e2e/page_objects/problems_page.py",
"source_location": "L32",
"id": "page_objects_problems_page_rationale_32",
- "community": 137,
+ "community": 142,
"norm_label": "the state label inside the nth row (active / override active / ...)."
},
{
@@ -36630,7 +37827,7 @@
"source_file": "tests/e2e/page_objects/problems_page.py",
"source_location": "L36",
"id": "page_objects_problems_page_rationale_36",
- "community": 137,
+ "community": 142,
"norm_label": "the override-and-allow-sync button on the nth row."
},
{
@@ -36639,7 +37836,7 @@
"source_file": "tests/e2e/page_objects/problems_page.py",
"source_location": "L40",
"id": "page_objects_problems_page_rationale_40",
- "community": 137,
+ "community": 142,
"norm_label": "the revoke override button on the nth row."
},
{
@@ -36648,7 +37845,7 @@
"source_file": "tests/e2e/page_objects/settings_page.py",
"source_location": "L1",
"id": "tests_e2e_page_objects_settings_page_py",
- "community": 81,
+ "community": 74,
"norm_label": "settings_page.py"
},
{
@@ -36657,7 +37854,7 @@
"source_file": "tests/e2e/page_objects/settings_page.py",
"source_location": "L11",
"id": "page_objects_settings_page_settingspage",
- "community": 81,
+ "community": 74,
"norm_label": "settingspage"
},
{
@@ -36666,7 +37863,7 @@
"source_file": "tests/e2e/page_objects/settings_page.py",
"source_location": "L14",
"id": "page_objects_settings_page_settingspage_init",
- "community": 81,
+ "community": 74,
"norm_label": ".__init__()"
},
{
@@ -36675,7 +37872,7 @@
"source_file": "tests/e2e/page_objects/settings_page.py",
"source_location": "L18",
"id": "page_objects_settings_page_dialog",
- "community": 81,
+ "community": 74,
"norm_label": "dialog()"
},
{
@@ -36684,7 +37881,7 @@
"source_file": "tests/e2e/page_objects/settings_page.py",
"source_location": "L23",
"id": "page_objects_settings_page_incomplete_banner",
- "community": 81,
+ "community": 74,
"norm_label": "incomplete_banner()"
},
{
@@ -36693,7 +37890,7 @@
"source_file": "tests/e2e/page_objects/settings_page.py",
"source_location": "L27",
"id": "page_objects_settings_page_settingspage_nav",
- "community": 81,
+ "community": 74,
"norm_label": ".nav()"
},
{
@@ -36702,7 +37899,7 @@
"source_file": "tests/e2e/page_objects/settings_page.py",
"source_location": "L31",
"id": "page_objects_settings_page_settingspage_section",
- "community": 81,
+ "community": 74,
"norm_label": ".section()"
},
{
@@ -36711,7 +37908,7 @@
"source_file": "tests/e2e/page_objects/settings_page.py",
"source_location": "L36",
"id": "page_objects_settings_page_paths_templates",
- "community": 81,
+ "community": 74,
"norm_label": "paths_templates()"
},
{
@@ -36720,7 +37917,7 @@
"source_file": "tests/e2e/page_objects/settings_page.py",
"source_location": "L41",
"id": "page_objects_settings_page_paths_plugin",
- "community": 81,
+ "community": 74,
"norm_label": "paths_plugin()"
},
{
@@ -36729,7 +37926,7 @@
"source_file": "tests/e2e/page_objects/settings_page.py",
"source_location": "L46",
"id": "page_objects_settings_page_paths_local_root",
- "community": 81,
+ "community": 74,
"norm_label": "paths_local_root()"
},
{
@@ -36738,7 +37935,7 @@
"source_file": "tests/e2e/page_objects/settings_page.py",
"source_location": "L51",
"id": "page_objects_settings_page_lims_password_primary",
- "community": 81,
+ "community": 74,
"norm_label": "lims_password_primary()"
},
{
@@ -36747,7 +37944,7 @@
"source_file": "tests/e2e/page_objects/settings_page.py",
"source_location": "L56",
"id": "page_objects_settings_page_lims_password_secondary",
- "community": 81,
+ "community": 74,
"norm_label": "lims_password_secondary()"
},
{
@@ -36756,7 +37953,7 @@
"source_file": "tests/e2e/page_objects/settings_page.py",
"source_location": "L61",
"id": "page_objects_settings_page_lims_password_input",
- "community": 81,
+ "community": 74,
"norm_label": "lims_password_input()"
},
{
@@ -36765,7 +37962,7 @@
"source_file": "tests/e2e/page_objects/settings_page.py",
"source_location": "L66",
"id": "page_objects_settings_page_lims_password_save",
- "community": 81,
+ "community": 74,
"norm_label": "lims_password_save()"
},
{
@@ -36774,7 +37971,7 @@
"source_file": "tests/e2e/page_objects/settings_page.py",
"source_location": "L71",
"id": "page_objects_settings_page_lims_password_cancel",
- "community": 81,
+ "community": 74,
"norm_label": "lims_password_cancel()"
},
{
@@ -36783,7 +37980,7 @@
"source_file": "tests/e2e/page_objects/settings_page.py",
"source_location": "L76",
"id": "page_objects_settings_page_lims_password_clear_confirm",
- "community": 81,
+ "community": 74,
"norm_label": "lims_password_clear_confirm()"
},
{
@@ -36792,7 +37989,7 @@
"source_file": "tests/e2e/page_objects/settings_page.py",
"source_location": "L81",
"id": "page_objects_settings_page_lims_password_status",
- "community": 81,
+ "community": 74,
"norm_label": "lims_password_status()"
},
{
@@ -36801,7 +37998,7 @@
"source_file": "tests/e2e/page_objects/settings_page.py",
"source_location": "L86",
"id": "page_objects_settings_page_equipment_id",
- "community": 81,
+ "community": 74,
"norm_label": "equipment_id()"
},
{
@@ -36810,7 +38007,7 @@
"source_file": "tests/e2e/page_objects/settings_page.py",
"source_location": "L91",
"id": "page_objects_settings_page_equipment_add",
- "community": 81,
+ "community": 74,
"norm_label": "equipment_add()"
},
{
@@ -36819,7 +38016,7 @@
"source_file": "tests/e2e/page_objects/settings_page.py",
"source_location": "L96",
"id": "page_objects_settings_page_save",
- "community": 81,
+ "community": 74,
"norm_label": "save()"
},
{
@@ -36828,7 +38025,7 @@
"source_file": "tests/e2e/page_objects/settings_page.py",
"source_location": "L101",
"id": "page_objects_settings_page_discard",
- "community": 81,
+ "community": 74,
"norm_label": "discard()"
},
{
@@ -36837,7 +38034,7 @@
"source_file": "tests/e2e/page_objects/settings_page.py",
"source_location": "L106",
"id": "page_objects_settings_page_saved_marker",
- "community": 81,
+ "community": 74,
"norm_label": "saved_marker()"
},
{
@@ -36846,7 +38043,7 @@
"source_file": "tests/e2e/page_objects/settings_page.py",
"source_location": "L1",
"id": "page_objects_settings_page_rationale_1",
- "community": 81,
+ "community": 74,
"norm_label": "page object for the settings dialog. frontend spec \u00a76.7."
},
{
@@ -36855,7 +38052,7 @@
"source_file": "tests/e2e/page_objects/settings_page.py",
"source_location": "L12",
"id": "page_objects_settings_page_rationale_12",
- "community": 81,
+ "community": 74,
"norm_label": "locators for the settings dialog's nine-section layout."
},
{
@@ -36864,7 +38061,7 @@
"source_file": "tests/e2e/page_objects/settings_page.py",
"source_location": "L19",
"id": "page_objects_settings_page_rationale_19",
- "community": 543,
+ "community": 568,
"norm_label": "the settings dialog card."
},
{
@@ -36873,7 +38070,7 @@
"source_file": "tests/e2e/page_objects/settings_page.py",
"source_location": "L24",
"id": "page_objects_settings_page_rationale_24",
- "community": 544,
+ "community": 569,
"norm_label": "the setup-incomplete banner shown inside the dialog."
},
{
@@ -36882,7 +38079,7 @@
"source_file": "tests/e2e/page_objects/settings_page.py",
"source_location": "L28",
"id": "page_objects_settings_page_rationale_28",
- "community": 81,
+ "community": 74,
"norm_label": "the sidebar nav row for a section."
},
{
@@ -36891,7 +38088,7 @@
"source_file": "tests/e2e/page_objects/settings_page.py",
"source_location": "L32",
"id": "page_objects_settings_page_rationale_32",
- "community": 81,
+ "community": 74,
"norm_label": "the body container for a section."
},
{
@@ -36900,7 +38097,7 @@
"source_file": "tests/e2e/page_objects/settings_page.py",
"source_location": "L37",
"id": "page_objects_settings_page_rationale_37",
- "community": 545,
+ "community": 570,
"norm_label": "paths section: templates directory input."
},
{
@@ -36909,7 +38106,7 @@
"source_file": "tests/e2e/page_objects/settings_page.py",
"source_location": "L42",
"id": "page_objects_settings_page_rationale_42",
- "community": 546,
+ "community": 571,
"norm_label": "paths section: plugin directory input."
},
{
@@ -36918,7 +38115,7 @@
"source_file": "tests/e2e/page_objects/settings_page.py",
"source_location": "L47",
"id": "page_objects_settings_page_rationale_47",
- "community": 547,
+ "community": 572,
"norm_label": "paths section: local data root input."
},
{
@@ -36927,7 +38124,7 @@
"source_file": "tests/e2e/page_objects/settings_page.py",
"source_location": "L52",
"id": "page_objects_settings_page_rationale_52",
- "community": 548,
+ "community": 573,
"norm_label": "lims section: the credential row's primary button ([set] / [replace])."
},
{
@@ -36936,7 +38133,7 @@
"source_file": "tests/e2e/page_objects/settings_page.py",
"source_location": "L57",
"id": "page_objects_settings_page_rationale_57",
- "community": 549,
+ "community": 574,
"norm_label": "lims section: the credential row's secondary button ([clear])."
},
{
@@ -36945,7 +38142,7 @@
"source_file": "tests/e2e/page_objects/settings_page.py",
"source_location": "L62",
"id": "page_objects_settings_page_rationale_62",
- "community": 550,
+ "community": 575,
"norm_label": "lims section: the inline password input shown while editing."
},
{
@@ -36954,7 +38151,7 @@
"source_file": "tests/e2e/page_objects/settings_page.py",
"source_location": "L67",
"id": "page_objects_settings_page_rationale_67",
- "community": 551,
+ "community": 576,
"norm_label": "lims section: the credential row's save button (editing state)."
},
{
@@ -36963,7 +38160,7 @@
"source_file": "tests/e2e/page_objects/settings_page.py",
"source_location": "L72",
"id": "page_objects_settings_page_rationale_72",
- "community": 552,
+ "community": 577,
"norm_label": "lims section: the credential row's cancel button (editing state)."
},
{
@@ -36972,7 +38169,7 @@
"source_file": "tests/e2e/page_objects/settings_page.py",
"source_location": "L77",
"id": "page_objects_settings_page_rationale_77",
- "community": 553,
+ "community": 578,
"norm_label": "lims section: the confirm button in the clear-credential dialog."
},
{
@@ -36981,7 +38178,7 @@
"source_file": "tests/e2e/page_objects/settings_page.py",
"source_location": "L82",
"id": "page_objects_settings_page_rationale_82",
- "community": 554,
+ "community": 579,
"norm_label": "lims section: the credential row's status line (resting states)."
},
{
@@ -36990,7 +38187,7 @@
"source_file": "tests/e2e/page_objects/settings_page.py",
"source_location": "L87",
"id": "page_objects_settings_page_rationale_87",
- "community": 555,
+ "community": 580,
"norm_label": "equipment section: equipment-id input."
},
{
@@ -36999,7 +38196,7 @@
"source_file": "tests/e2e/page_objects/settings_page.py",
"source_location": "L92",
"id": "page_objects_settings_page_rationale_92",
- "community": 556,
+ "community": 581,
"norm_label": "equipment section: add-equipment button."
},
{
@@ -37008,7 +38205,7 @@
"source_file": "tests/e2e/page_objects/settings_page.py",
"source_location": "L107",
"id": "page_objects_settings_page_rationale_107",
- "community": 557,
+ "community": 582,
"norm_label": "the marker shown after a successful save."
},
{
@@ -37017,7 +38214,7 @@
"source_file": "tests/e2e/page_objects/__init__.py",
"source_location": "L1",
"id": "tests_e2e_page_objects_init_py",
- "community": 511,
+ "community": 535,
"norm_label": "__init__.py"
},
{
@@ -37026,7 +38223,7 @@
"source_file": "tests/e2e/page_objects/__init__.py",
"source_location": "L1",
"id": "page_objects_init_rationale_1",
- "community": 511,
+ "community": 535,
"norm_label": "page object package for the phase 16 e2e suite. each module wraps the stable ``"
},
{
@@ -37035,7 +38232,7 @@
"source_file": "tests/e2e/page_objects/wizard_equipment_page.py",
"source_location": "L1",
"id": "tests_e2e_page_objects_wizard_equipment_page_py",
- "community": 142,
+ "community": 150,
"norm_label": "wizard_equipment_page.py"
},
{
@@ -37044,7 +38241,7 @@
"source_file": "tests/e2e/page_objects/wizard_equipment_page.py",
"source_location": "L8",
"id": "page_objects_wizard_equipment_page_wizardequipmentpage",
- "community": 224,
+ "community": 186,
"norm_label": "wizardequipmentpage"
},
{
@@ -37053,7 +38250,7 @@
"source_file": "tests/e2e/page_objects/wizard_equipment_page.py",
"source_location": "L9",
"id": "page_objects_wizard_equipment_page_wizardequipmentpage_init",
- "community": 224,
+ "community": 186,
"norm_label": ".__init__()"
},
{
@@ -37062,7 +38259,7 @@
"source_file": "tests/e2e/page_objects/wizard_equipment_page.py",
"source_location": "L14",
"id": "page_objects_wizard_equipment_page_step_identity",
- "community": 142,
+ "community": 150,
"norm_label": "step_identity()"
},
{
@@ -37071,7 +38268,7 @@
"source_file": "tests/e2e/page_objects/wizard_equipment_page.py",
"source_location": "L18",
"id": "page_objects_wizard_equipment_page_equipment_id",
- "community": 142,
+ "community": 150,
"norm_label": "equipment_id()"
},
{
@@ -37080,7 +38277,7 @@
"source_file": "tests/e2e/page_objects/wizard_equipment_page.py",
"source_location": "L22",
"id": "page_objects_wizard_equipment_page_label",
- "community": 142,
+ "community": 150,
"norm_label": "label()"
},
{
@@ -37089,7 +38286,7 @@
"source_file": "tests/e2e/page_objects/wizard_equipment_page.py",
"source_location": "L26",
"id": "page_objects_wizard_equipment_page_step_paths",
- "community": 142,
+ "community": 150,
"norm_label": "step_paths()"
},
{
@@ -37098,7 +38295,7 @@
"source_file": "tests/e2e/page_objects/wizard_equipment_page.py",
"source_location": "L31",
"id": "page_objects_wizard_equipment_page_local_root",
- "community": 142,
+ "community": 150,
"norm_label": "local_root()"
},
{
@@ -37107,7 +38304,7 @@
"source_file": "tests/e2e/page_objects/wizard_equipment_page.py",
"source_location": "L35",
"id": "page_objects_wizard_equipment_page_nas_root",
- "community": 142,
+ "community": 150,
"norm_label": "nas_root()"
},
{
@@ -37116,7 +38313,7 @@
"source_file": "tests/e2e/page_objects/wizard_equipment_page.py",
"source_location": "L42",
"id": "page_objects_wizard_equipment_page_sync_mode",
- "community": 142,
+ "community": 150,
"norm_label": "sync_mode()"
},
{
@@ -37125,7 +38322,7 @@
"source_file": "tests/e2e/page_objects/wizard_equipment_page.py",
"source_location": "L46",
"id": "page_objects_wizard_equipment_page_nas_note",
- "community": 142,
+ "community": 150,
"norm_label": "nas_note()"
},
{
@@ -37134,7 +38331,7 @@
"source_file": "tests/e2e/page_objects/wizard_equipment_page.py",
"source_location": "L50",
"id": "page_objects_wizard_equipment_page_stage_note",
- "community": 142,
+ "community": 150,
"norm_label": "stage_note()"
},
{
@@ -37143,7 +38340,7 @@
"source_file": "tests/e2e/page_objects/wizard_equipment_page.py",
"source_location": "L55",
"id": "page_objects_wizard_equipment_page_confirm",
- "community": 142,
+ "community": 150,
"norm_label": "confirm()"
},
{
@@ -37152,7 +38349,7 @@
"source_file": "tests/e2e/page_objects/wizard_equipment_page.py",
"source_location": "L59",
"id": "page_objects_wizard_equipment_page_cancel",
- "community": 142,
+ "community": 150,
"norm_label": "cancel()"
},
{
@@ -37161,7 +38358,7 @@
"source_file": "tests/e2e/page_objects/wizard_equipment_page.py",
"source_location": "L63",
"id": "page_objects_wizard_equipment_page_next_button",
- "community": 142,
+ "community": 150,
"norm_label": "next_button()"
},
{
@@ -37170,7 +38367,7 @@
"source_file": "tests/e2e/page_objects/wizard_equipment_page.py",
"source_location": "L67",
"id": "page_objects_wizard_equipment_page_back",
- "community": 142,
+ "community": 150,
"norm_label": "back()"
},
{
@@ -37179,7 +38376,7 @@
"source_file": "tests/e2e/page_objects/wizard_equipment_page.py",
"source_location": "L71",
"id": "page_objects_wizard_equipment_page_success",
- "community": 142,
+ "community": 150,
"norm_label": "success()"
},
{
@@ -37188,7 +38385,7 @@
"source_file": "tests/e2e/page_objects/wizard_equipment_page.py",
"source_location": "L1",
"id": "page_objects_wizard_equipment_page_rationale_1",
- "community": 142,
+ "community": 150,
"norm_label": "page object for the add-equipment wizard (redesign \u00a76)."
},
{
@@ -37197,7 +38394,7 @@
"source_file": "tests/e2e/page_objects/staging_page.py",
"source_location": "L1",
"id": "tests_e2e_page_objects_staging_page_py",
- "community": 209,
+ "community": 208,
"norm_label": "staging_page.py"
},
{
@@ -37206,7 +38403,7 @@
"source_file": "tests/e2e/page_objects/staging_page.py",
"source_location": "L11",
"id": "page_objects_staging_page_stagingpage",
- "community": 209,
+ "community": 208,
"norm_label": "stagingpage"
},
{
@@ -37215,7 +38412,7 @@
"source_file": "tests/e2e/page_objects/staging_page.py",
"source_location": "L14",
"id": "page_objects_staging_page_stagingpage_init",
- "community": 209,
+ "community": 208,
"norm_label": ".__init__()"
},
{
@@ -37224,7 +38421,7 @@
"source_file": "tests/e2e/page_objects/staging_page.py",
"source_location": "L18",
"id": "page_objects_staging_page_dock",
- "community": 209,
+ "community": 208,
"norm_label": "dock()"
},
{
@@ -37233,7 +38430,7 @@
"source_file": "tests/e2e/page_objects/staging_page.py",
"source_location": "L22",
"id": "page_objects_staging_page_stagingpage_row",
- "community": 209,
+ "community": 208,
"norm_label": ".row()"
},
{
@@ -37242,7 +38439,7 @@
"source_file": "tests/e2e/page_objects/staging_page.py",
"source_location": "L26",
"id": "page_objects_staging_page_stagingpage_force_sync",
- "community": 209,
+ "community": 208,
"norm_label": ".force_sync()"
},
{
@@ -37251,7 +38448,7 @@
"source_file": "tests/e2e/page_objects/staging_page.py",
"source_location": "L30",
"id": "page_objects_staging_page_stagingpage_clear",
- "community": 209,
+ "community": 208,
"norm_label": ".clear()"
},
{
@@ -37260,7 +38457,7 @@
"source_file": "tests/e2e/page_objects/staging_page.py",
"source_location": "L34",
"id": "page_objects_staging_page_stagingpage_view_log",
- "community": 209,
+ "community": 208,
"norm_label": ".view_log()"
},
{
@@ -37269,7 +38466,7 @@
"source_file": "tests/e2e/page_objects/staging_page.py",
"source_location": "L39",
"id": "page_objects_staging_page_clear_verified",
- "community": 209,
+ "community": 208,
"norm_label": "clear_verified()"
},
{
@@ -37278,7 +38475,7 @@
"source_file": "tests/e2e/page_objects/staging_page.py",
"source_location": "L1",
"id": "page_objects_staging_page_rationale_1",
- "community": 209,
+ "community": 208,
"norm_label": "page object for the orchestrator staging dock. frontend spec \u00a73.9."
},
{
@@ -37287,7 +38484,7 @@
"source_file": "tests/e2e/page_objects/staging_page.py",
"source_location": "L12",
"id": "page_objects_staging_page_rationale_12",
- "community": 209,
+ "community": 208,
"norm_label": "locators for the staging dock + per-row actions."
},
{
@@ -37296,7 +38493,7 @@
"source_file": "tests/e2e/page_objects/staging_page.py",
"source_location": "L19",
"id": "page_objects_staging_page_rationale_19",
- "community": 558,
+ "community": 583,
"norm_label": "the staging dock container."
},
{
@@ -37305,7 +38502,7 @@
"source_file": "tests/e2e/page_objects/staging_page.py",
"source_location": "L27",
"id": "page_objects_staging_page_rationale_27",
- "community": 209,
+ "community": 208,
"norm_label": "the force-sync button on the nth row."
},
{
@@ -37314,7 +38511,7 @@
"source_file": "tests/e2e/page_objects/staging_page.py",
"source_location": "L31",
"id": "page_objects_staging_page_rationale_31",
- "community": 209,
+ "community": 208,
"norm_label": "the clear button on the nth row."
},
{
@@ -37323,7 +38520,7 @@
"source_file": "tests/e2e/page_objects/staging_page.py",
"source_location": "L35",
"id": "page_objects_staging_page_rationale_35",
- "community": 209,
+ "community": 208,
"norm_label": "the view-log button on the nth row."
},
{
@@ -37332,7 +38529,7 @@
"source_file": "tests/e2e/page_objects/staging_page.py",
"source_location": "L40",
"id": "page_objects_staging_page_rationale_40",
- "community": 559,
+ "community": 584,
"norm_label": "the toolbar clear-verified-runs button."
},
{
@@ -37341,7 +38538,7 @@
"source_file": "tests/e2e/page_objects/wizard_run_page.py",
"source_location": "L1",
"id": "tests_e2e_page_objects_wizard_run_page_py",
- "community": 152,
+ "community": 159,
"norm_label": "wizard_run_page.py"
},
{
@@ -37350,7 +38547,7 @@
"source_file": "tests/e2e/page_objects/wizard_run_page.py",
"source_location": "L11",
"id": "page_objects_wizard_run_page_wizardrunpage",
- "community": 152,
+ "community": 159,
"norm_label": "wizardrunpage"
},
{
@@ -37359,7 +38556,7 @@
"source_file": "tests/e2e/page_objects/wizard_run_page.py",
"source_location": "L14",
"id": "page_objects_wizard_run_page_wizardrunpage_init",
- "community": 152,
+ "community": 159,
"norm_label": ".__init__()"
},
{
@@ -37368,7 +38565,7 @@
"source_file": "tests/e2e/page_objects/wizard_run_page.py",
"source_location": "L18",
"id": "page_objects_wizard_run_page_stepper",
- "community": 152,
+ "community": 159,
"norm_label": "stepper()"
},
{
@@ -37377,7 +38574,7 @@
"source_file": "tests/e2e/page_objects/wizard_run_page.py",
"source_location": "L23",
"id": "page_objects_wizard_run_page_title",
- "community": 152,
+ "community": 159,
"norm_label": "title()"
},
{
@@ -37386,7 +38583,7 @@
"source_file": "tests/e2e/page_objects/wizard_run_page.py",
"source_location": "L28",
"id": "page_objects_wizard_run_page_mode_badge_experimental",
- "community": 152,
+ "community": 159,
"norm_label": "mode_badge_experimental()"
},
{
@@ -37395,7 +38592,7 @@
"source_file": "tests/e2e/page_objects/wizard_run_page.py",
"source_location": "L33",
"id": "page_objects_wizard_run_page_mode_badge_test",
- "community": 152,
+ "community": 159,
"norm_label": "mode_badge_test()"
},
{
@@ -37404,7 +38601,7 @@
"source_file": "tests/e2e/page_objects/wizard_run_page.py",
"source_location": "L37",
"id": "page_objects_wizard_run_page_wizardrunpage_step",
- "community": 152,
+ "community": 159,
"norm_label": ".step()"
},
{
@@ -37413,7 +38610,7 @@
"source_file": "tests/e2e/page_objects/wizard_run_page.py",
"source_location": "L42",
"id": "page_objects_wizard_run_page_back",
- "community": 152,
+ "community": 159,
"norm_label": "back()"
},
{
@@ -37422,7 +38619,7 @@
"source_file": "tests/e2e/page_objects/wizard_run_page.py",
"source_location": "L50",
"id": "page_objects_wizard_run_page_cancel",
- "community": 152,
+ "community": 159,
"norm_label": "cancel()"
},
{
@@ -37431,7 +38628,7 @@
"source_file": "tests/e2e/page_objects/wizard_run_page.py",
"source_location": "L55",
"id": "page_objects_wizard_run_page_next",
- "community": 152,
+ "community": 159,
"norm_label": "next()"
},
{
@@ -37440,7 +38637,7 @@
"source_file": "tests/e2e/page_objects/wizard_run_page.py",
"source_location": "L60",
"id": "page_objects_wizard_run_page_submit",
- "community": 152,
+ "community": 159,
"norm_label": "submit()"
},
{
@@ -37449,7 +38646,7 @@
"source_file": "tests/e2e/page_objects/wizard_run_page.py",
"source_location": "L65",
"id": "page_objects_wizard_run_page_success_card",
- "community": 152,
+ "community": 159,
"norm_label": "success_card()"
},
{
@@ -37458,7 +38655,7 @@
"source_file": "tests/e2e/page_objects/wizard_run_page.py",
"source_location": "L1",
"id": "page_objects_wizard_run_page_rationale_1",
- "community": 152,
+ "community": 159,
"norm_label": "page object for the new run wizard. frontend spec \u00a76.4."
},
{
@@ -37467,7 +38664,7 @@
"source_file": "tests/e2e/page_objects/wizard_run_page.py",
"source_location": "L12",
"id": "page_objects_wizard_run_page_rationale_12",
- "community": 152,
+ "community": 159,
"norm_label": "locators for the run wizard (experimental + test mode)."
},
{
@@ -37476,7 +38673,7 @@
"source_file": "tests/e2e/page_objects/wizard_run_page.py",
"source_location": "L19",
"id": "page_objects_wizard_run_page_rationale_19",
- "community": 560,
+ "community": 585,
"norm_label": "the vertical stepper that holds the six steps."
},
{
@@ -37485,7 +38682,7 @@
"source_file": "tests/e2e/page_objects/wizard_run_page.py",
"source_location": "L24",
"id": "page_objects_wizard_run_page_rationale_24",
- "community": 561,
+ "community": 586,
"norm_label": "the wizard's title label (changes per run kind)."
},
{
@@ -37494,7 +38691,7 @@
"source_file": "tests/e2e/page_objects/wizard_run_page.py",
"source_location": "L29",
"id": "page_objects_wizard_run_page_rationale_29",
- "community": 562,
+ "community": 587,
"norm_label": "the mode badge for experimental runs."
},
{
@@ -37503,7 +38700,7 @@
"source_file": "tests/e2e/page_objects/wizard_run_page.py",
"source_location": "L34",
"id": "page_objects_wizard_run_page_rationale_34",
- "community": 563,
+ "community": 588,
"norm_label": "the mode badge for test runs."
},
{
@@ -37512,7 +38709,7 @@
"source_file": "tests/e2e/page_objects/wizard_run_page.py",
"source_location": "L38",
"id": "page_objects_wizard_run_page_rationale_38",
- "community": 152,
+ "community": 159,
"norm_label": "locator for a specific step container."
},
{
@@ -37521,7 +38718,7 @@
"source_file": "tests/e2e/page_objects/wizard_run_page.py",
"source_location": "L43",
"id": "page_objects_wizard_run_page_rationale_43",
- "community": 564,
+ "community": 589,
"norm_label": "the back button on the active stepper navigation. absent on the first s"
},
{
@@ -37530,7 +38727,7 @@
"source_file": "tests/e2e/page_objects/wizard_run_page.py",
"source_location": "L51",
"id": "page_objects_wizard_run_page_rationale_51",
- "community": 565,
+ "community": 590,
"norm_label": "the cancel button; present on every step, returns to /main."
},
{
@@ -37539,7 +38736,7 @@
"source_file": "tests/e2e/page_objects/wizard_run_page.py",
"source_location": "L56",
"id": "page_objects_wizard_run_page_rationale_56",
- "community": 566,
+ "community": 591,
"norm_label": "the primary advance button on the active stepper navigation."
},
{
@@ -37548,7 +38745,7 @@
"source_file": "tests/e2e/page_objects/wizard_run_page.py",
"source_location": "L61",
"id": "page_objects_wizard_run_page_rationale_61",
- "community": 567,
+ "community": 592,
"norm_label": "the create button on the confirm step."
},
{
@@ -37557,7 +38754,7 @@
"source_file": "tests/e2e/page_objects/wizard_run_page.py",
"source_location": "L66",
"id": "page_objects_wizard_run_page_rationale_66",
- "community": 568,
+ "community": 593,
"norm_label": "the success indicator rendered after submit."
},
{
@@ -37566,7 +38763,7 @@
"source_file": "tests/e2e/page_objects/wizard_project_page.py",
"source_location": "L1",
"id": "tests_e2e_page_objects_wizard_project_page_py",
- "community": 191,
+ "community": 193,
"norm_label": "wizard_project_page.py"
},
{
@@ -37575,7 +38772,7 @@
"source_file": "tests/e2e/page_objects/wizard_project_page.py",
"source_location": "L11",
"id": "page_objects_wizard_project_page_wizardprojectpage",
- "community": 191,
+ "community": 193,
"norm_label": "wizardprojectpage"
},
{
@@ -37584,7 +38781,7 @@
"source_file": "tests/e2e/page_objects/wizard_project_page.py",
"source_location": "L14",
"id": "page_objects_wizard_project_page_wizardprojectpage_init",
- "community": 191,
+ "community": 193,
"norm_label": ".__init__()"
},
{
@@ -37593,7 +38790,7 @@
"source_file": "tests/e2e/page_objects/wizard_project_page.py",
"source_location": "L18",
"id": "page_objects_wizard_project_page_card",
- "community": 191,
+ "community": 193,
"norm_label": "card()"
},
{
@@ -37602,7 +38799,7 @@
"source_file": "tests/e2e/page_objects/wizard_project_page.py",
"source_location": "L23",
"id": "page_objects_wizard_project_page_stepper",
- "community": 191,
+ "community": 193,
"norm_label": "stepper()"
},
{
@@ -37611,7 +38808,7 @@
"source_file": "tests/e2e/page_objects/wizard_project_page.py",
"source_location": "L27",
"id": "page_objects_wizard_project_page_wizardprojectpage_step",
- "community": 191,
+ "community": 193,
"norm_label": ".step()"
},
{
@@ -37620,7 +38817,7 @@
"source_file": "tests/e2e/page_objects/wizard_project_page.py",
"source_location": "L32",
"id": "page_objects_wizard_project_page_lims_gate",
- "community": 191,
+ "community": 193,
"norm_label": "lims_gate()"
},
{
@@ -37629,7 +38826,7 @@
"source_file": "tests/e2e/page_objects/wizard_project_page.py",
"source_location": "L41",
"id": "page_objects_wizard_project_page_lims_id",
- "community": 191,
+ "community": 193,
"norm_label": "lims_id()"
},
{
@@ -37638,7 +38835,7 @@
"source_file": "tests/e2e/page_objects/wizard_project_page.py",
"source_location": "L46",
"id": "page_objects_wizard_project_page_back",
- "community": 191,
+ "community": 193,
"norm_label": "back()"
},
{
@@ -37647,7 +38844,7 @@
"source_file": "tests/e2e/page_objects/wizard_project_page.py",
"source_location": "L54",
"id": "page_objects_wizard_project_page_cancel",
- "community": 191,
+ "community": 193,
"norm_label": "cancel()"
},
{
@@ -37656,7 +38853,7 @@
"source_file": "tests/e2e/page_objects/wizard_project_page.py",
"source_location": "L59",
"id": "page_objects_wizard_project_page_next",
- "community": 191,
+ "community": 193,
"norm_label": "next()"
},
{
@@ -37665,7 +38862,7 @@
"source_file": "tests/e2e/page_objects/wizard_project_page.py",
"source_location": "L64",
"id": "page_objects_wizard_project_page_submit",
- "community": 191,
+ "community": 193,
"norm_label": "submit()"
},
{
@@ -37674,7 +38871,7 @@
"source_file": "tests/e2e/page_objects/wizard_project_page.py",
"source_location": "L69",
"id": "page_objects_wizard_project_page_success_card",
- "community": 191,
+ "community": 193,
"norm_label": "success_card()"
},
{
@@ -37683,7 +38880,7 @@
"source_file": "tests/e2e/page_objects/wizard_project_page.py",
"source_location": "L1",
"id": "page_objects_wizard_project_page_rationale_1",
- "community": 191,
+ "community": 193,
"norm_label": "page object for the new project wizard. frontend spec \u00a76.3."
},
{
@@ -37692,7 +38889,7 @@
"source_file": "tests/e2e/page_objects/wizard_project_page.py",
"source_location": "L12",
"id": "page_objects_wizard_project_page_rationale_12",
- "community": 191,
+ "community": 193,
"norm_label": "locators for the new-project wizard's seven-step stepper."
},
{
@@ -37701,7 +38898,7 @@
"source_file": "tests/e2e/page_objects/wizard_project_page.py",
"source_location": "L19",
"id": "page_objects_wizard_project_page_rationale_19",
- "community": 569,
+ "community": 594,
"norm_label": "the wizard's outermost card element."
},
{
@@ -37710,7 +38907,7 @@
"source_file": "tests/e2e/page_objects/wizard_project_page.py",
"source_location": "L24",
"id": "page_objects_wizard_project_page_rationale_24",
- "community": 570,
+ "community": 595,
"norm_label": "the vertical stepper that holds the seven steps."
},
{
@@ -37719,7 +38916,7 @@
"source_file": "tests/e2e/page_objects/wizard_project_page.py",
"source_location": "L28",
"id": "page_objects_wizard_project_page_rationale_28",
- "community": 191,
+ "community": 193,
"norm_label": "locator for a specific step container."
},
{
@@ -37728,7 +38925,7 @@
"source_file": "tests/e2e/page_objects/wizard_project_page.py",
"source_location": "L33",
"id": "page_objects_wizard_project_page_rationale_33",
- "community": 571,
+ "community": 596,
"norm_label": "the manual-entry gate button on the lims project step. rendered only wh"
},
{
@@ -37737,7 +38934,7 @@
"source_file": "tests/e2e/page_objects/wizard_project_page.py",
"source_location": "L42",
"id": "page_objects_wizard_project_page_rationale_42",
- "community": 572,
+ "community": 597,
"norm_label": "the manual lims short-id input (revealed by ``lims_gate``)."
},
{
@@ -37746,7 +38943,7 @@
"source_file": "tests/e2e/page_objects/wizard_project_page.py",
"source_location": "L47",
"id": "page_objects_wizard_project_page_rationale_47",
- "community": 573,
+ "community": 598,
"norm_label": "the back button on the active stepper navigation. absent on the first s"
},
{
@@ -37755,7 +38952,7 @@
"source_file": "tests/e2e/page_objects/wizard_project_page.py",
"source_location": "L55",
"id": "page_objects_wizard_project_page_rationale_55",
- "community": 574,
+ "community": 599,
"norm_label": "the cancel button; present on every step, returns to /main."
},
{
@@ -37764,7 +38961,7 @@
"source_file": "tests/e2e/page_objects/wizard_project_page.py",
"source_location": "L60",
"id": "page_objects_wizard_project_page_rationale_60",
- "community": 575,
+ "community": 600,
"norm_label": "the primary advance button on the active stepper navigation."
},
{
@@ -37773,7 +38970,7 @@
"source_file": "tests/e2e/page_objects/wizard_project_page.py",
"source_location": "L65",
"id": "page_objects_wizard_project_page_rationale_65",
- "community": 576,
+ "community": 601,
"norm_label": "the create button on the confirm step."
},
{
@@ -37782,7 +38979,7 @@
"source_file": "tests/e2e/page_objects/wizard_project_page.py",
"source_location": "L70",
"id": "page_objects_wizard_project_page_rationale_70",
- "community": 577,
+ "community": 602,
"norm_label": "the success indicator rendered after submit."
},
{
@@ -37791,7 +38988,7 @@
"source_file": "tests/e2e/page_objects/main_page.py",
"source_location": "L1",
"id": "tests_e2e_page_objects_main_page_py",
- "community": 150,
+ "community": 216,
"norm_label": "main_page.py"
},
{
@@ -37800,7 +38997,7 @@
"source_file": "tests/e2e/page_objects/main_page.py",
"source_location": "L15",
"id": "page_objects_main_page_mainpage",
- "community": 150,
+ "community": 217,
"norm_label": "mainpage"
},
{
@@ -37809,7 +39006,7 @@
"source_file": "tests/e2e/page_objects/main_page.py",
"source_location": "L18",
"id": "page_objects_main_page_mainpage_init",
- "community": 150,
+ "community": 217,
"norm_label": ".__init__()"
},
{
@@ -37818,7 +39015,7 @@
"source_file": "tests/e2e/page_objects/main_page.py",
"source_location": "L22",
"id": "page_objects_main_page_tree",
- "community": 150,
+ "community": 216,
"norm_label": "tree()"
},
{
@@ -37827,7 +39024,7 @@
"source_file": "tests/e2e/page_objects/main_page.py",
"source_location": "L27",
"id": "page_objects_main_page_setup_incomplete_banner",
- "community": 150,
+ "community": 216,
"norm_label": "setup_incomplete_banner()"
},
{
@@ -37836,7 +39033,7 @@
"source_file": "tests/e2e/page_objects/main_page.py",
"source_location": "L32",
"id": "page_objects_main_page_toolbar_new_project",
- "community": 150,
+ "community": 216,
"norm_label": "toolbar_new_project()"
},
{
@@ -37845,7 +39042,7 @@
"source_file": "tests/e2e/page_objects/main_page.py",
"source_location": "L37",
"id": "page_objects_main_page_toolbar_new_run",
- "community": 150,
+ "community": 216,
"norm_label": "toolbar_new_run()"
},
{
@@ -37854,7 +39051,7 @@
"source_file": "tests/e2e/page_objects/main_page.py",
"source_location": "L42",
"id": "page_objects_main_page_toolbar_new_test_run",
- "community": 150,
+ "community": 216,
"norm_label": "toolbar_new_test_run()"
},
{
@@ -37863,7 +39060,7 @@
"source_file": "tests/e2e/page_objects/main_page.py",
"source_location": "L47",
"id": "page_objects_main_page_toolbar_settings",
- "community": 150,
+ "community": 216,
"norm_label": "toolbar_settings()"
},
{
@@ -37872,7 +39069,7 @@
"source_file": "tests/e2e/page_objects/main_page.py",
"source_location": "L52",
"id": "page_objects_main_page_toolbar_refresh",
- "community": 150,
+ "community": 216,
"norm_label": "toolbar_refresh()"
},
{
@@ -37881,7 +39078,7 @@
"source_file": "tests/e2e/page_objects/main_page.py",
"source_location": "L57",
"id": "page_objects_main_page_toolbar_add_equipment",
- "community": 150,
+ "community": 216,
"norm_label": "toolbar_add_equipment()"
},
{
@@ -37890,7 +39087,7 @@
"source_file": "tests/e2e/page_objects/main_page.py",
"source_location": "L62",
"id": "page_objects_main_page_search_box",
- "community": 150,
+ "community": 216,
"norm_label": "search_box()"
},
{
@@ -37899,7 +39096,7 @@
"source_file": "tests/e2e/page_objects/main_page.py",
"source_location": "L67",
"id": "page_objects_main_page_tab_metadata",
- "community": 150,
+ "community": 216,
"norm_label": "tab_metadata()"
},
{
@@ -37908,7 +39105,7 @@
"source_file": "tests/e2e/page_objects/main_page.py",
"source_location": "L72",
"id": "page_objects_main_page_tab_problems",
- "community": 150,
+ "community": 216,
"norm_label": "tab_problems()"
},
{
@@ -37917,7 +39114,7 @@
"source_file": "tests/e2e/page_objects/main_page.py",
"source_location": "L77",
"id": "page_objects_main_page_toggle_right_pane",
- "community": 150,
+ "community": 216,
"norm_label": "toggle_right_pane()"
},
{
@@ -37926,7 +39123,7 @@
"source_file": "tests/e2e/page_objects/main_page.py",
"source_location": "L82",
"id": "page_objects_main_page_footer_clear_verified",
- "community": 150,
+ "community": 216,
"norm_label": "footer_clear_verified()"
},
{
@@ -37935,7 +39132,7 @@
"source_file": "tests/e2e/page_objects/main_page.py",
"source_location": "L87",
"id": "page_objects_main_page_footer_staging_segment",
- "community": 150,
+ "community": 216,
"norm_label": "footer_staging_segment()"
},
{
@@ -37944,7 +39141,7 @@
"source_file": "tests/e2e/page_objects/main_page.py",
"source_location": "L1",
"id": "page_objects_main_page_rationale_1",
- "community": 150,
+ "community": 216,
"norm_label": "page object for the main window. frontend spec \u00a76. selectors target ``data-test"
},
{
@@ -37953,7 +39150,7 @@
"source_file": "tests/e2e/page_objects/main_page.py",
"source_location": "L16",
"id": "page_objects_main_page_rationale_16",
- "community": 150,
+ "community": 217,
"norm_label": "page object for the main window. frontend spec \u00a76.1, \u00a76.2."
},
{
@@ -37962,7 +39159,7 @@
"source_file": "tests/e2e/page_objects/main_page.py",
"source_location": "L23",
"id": "page_objects_main_page_rationale_23",
- "community": 578,
+ "community": 603,
"norm_label": "the left-pane project / session tree (\u00a76.2.1)."
},
{
@@ -37971,7 +39168,7 @@
"source_file": "tests/e2e/page_objects/main_page.py",
"source_location": "L28",
"id": "page_objects_main_page_rationale_28",
- "community": 579,
+ "community": 604,
"norm_label": "banner shown while the setup gate is open (\u00a76.2.4)."
},
{
@@ -37980,7 +39177,7 @@
"source_file": "tests/e2e/page_objects/main_page.py",
"source_location": "L33",
"id": "page_objects_main_page_rationale_33",
- "community": 580,
+ "community": 605,
"norm_label": "toolbar button that opens the new-project wizard (\u00a76.2.2)."
},
{
@@ -37989,7 +39186,7 @@
"source_file": "tests/e2e/page_objects/main_page.py",
"source_location": "L38",
"id": "page_objects_main_page_rationale_38",
- "community": 581,
+ "community": 606,
"norm_label": "toolbar button that opens the new-run wizard (\u00a76.2.2)."
},
{
@@ -37998,7 +39195,7 @@
"source_file": "tests/e2e/page_objects/main_page.py",
"source_location": "L43",
"id": "page_objects_main_page_rationale_43",
- "community": 582,
+ "community": 607,
"norm_label": "toolbar button that opens the new-test-run wizard (\u00a76.2.2)."
},
{
@@ -38007,7 +39204,7 @@
"source_file": "tests/e2e/page_objects/main_page.py",
"source_location": "L48",
"id": "page_objects_main_page_rationale_48",
- "community": 583,
+ "community": 608,
"norm_label": "toolbar button that opens the settings dialog (\u00a76.2.2)."
},
{
@@ -38016,7 +39213,7 @@
"source_file": "tests/e2e/page_objects/main_page.py",
"source_location": "L53",
"id": "page_objects_main_page_rationale_53",
- "community": 584,
+ "community": 609,
"norm_label": "toolbar refresh button (\u00a76.2.2)."
},
{
@@ -38025,7 +39222,7 @@
"source_file": "tests/e2e/page_objects/main_page.py",
"source_location": "L58",
"id": "page_objects_main_page_rationale_58",
- "community": 585,
+ "community": 610,
"norm_label": "toolbar add-equipment button (redesign \u00a74 / \u00a76)."
},
{
@@ -38034,7 +39231,7 @@
"source_file": "tests/e2e/page_objects/main_page.py",
"source_location": "L63",
"id": "page_objects_main_page_rationale_63",
- "community": 586,
+ "community": 611,
"norm_label": "the tree search input (\u00a76.2.1)."
},
{
@@ -38043,7 +39240,7 @@
"source_file": "tests/e2e/page_objects/main_page.py",
"source_location": "L68",
"id": "page_objects_main_page_rationale_68",
- "community": 587,
+ "community": 612,
"norm_label": "metadata tab (redesign \u00a74.4)."
},
{
@@ -38052,7 +39249,7 @@
"source_file": "tests/e2e/page_objects/main_page.py",
"source_location": "L73",
"id": "page_objects_main_page_rationale_73",
- "community": 588,
+ "community": 613,
"norm_label": "problems tab (\u00a76.2.3 / redesign \u00a74.4)."
},
{
@@ -38061,7 +39258,7 @@
"source_file": "tests/e2e/page_objects/main_page.py",
"source_location": "L78",
"id": "page_objects_main_page_rationale_78",
- "community": 589,
+ "community": 614,
"norm_label": "right-pane collapse toggle (redesign \u00a74)."
},
{
@@ -38070,7 +39267,7 @@
"source_file": "tests/e2e/page_objects/main_page.py",
"source_location": "L83",
"id": "page_objects_main_page_rationale_83",
- "community": 590,
+ "community": 615,
"norm_label": "footer bulk clear-verified button (redesign \u00a74.6)."
},
{
@@ -38079,7 +39276,7 @@
"source_file": "tests/e2e/page_objects/main_page.py",
"source_location": "L88",
"id": "page_objects_main_page_rationale_88",
- "community": 591,
+ "community": 616,
"norm_label": "footer staging status segment (redesign \u00a74.6)."
},
{
@@ -38088,7 +39285,7 @@
"source_file": "tests/e2e/page_objects/welcome_page.py",
"source_location": "L1",
"id": "tests_e2e_page_objects_welcome_page_py",
- "community": 300,
+ "community": 215,
"norm_label": "welcome_page.py"
},
{
@@ -38097,7 +39294,7 @@
"source_file": "tests/e2e/page_objects/welcome_page.py",
"source_location": "L11",
"id": "page_objects_welcome_page_welcomepage",
- "community": 244,
+ "community": 215,
"norm_label": "welcomepage"
},
{
@@ -38106,7 +39303,7 @@
"source_file": "tests/e2e/page_objects/welcome_page.py",
"source_location": "L14",
"id": "page_objects_welcome_page_welcomepage_init",
- "community": 244,
+ "community": 215,
"norm_label": ".__init__()"
},
{
@@ -38115,7 +39312,7 @@
"source_file": "tests/e2e/page_objects/welcome_page.py",
"source_location": "L18",
"id": "page_objects_welcome_page_card",
- "community": 300,
+ "community": 215,
"norm_label": "card()"
},
{
@@ -38124,7 +39321,7 @@
"source_file": "tests/e2e/page_objects/welcome_page.py",
"source_location": "L23",
"id": "page_objects_welcome_page_headline",
- "community": 300,
+ "community": 215,
"norm_label": "headline()"
},
{
@@ -38133,7 +39330,7 @@
"source_file": "tests/e2e/page_objects/welcome_page.py",
"source_location": "L28",
"id": "page_objects_welcome_page_autostart_toggle",
- "community": 300,
+ "community": 215,
"norm_label": "autostart_toggle()"
},
{
@@ -38142,7 +39339,7 @@
"source_file": "tests/e2e/page_objects/welcome_page.py",
"source_location": "L33",
"id": "page_objects_welcome_page_get_started",
- "community": 300,
+ "community": 215,
"norm_label": "get_started()"
},
{
@@ -38151,7 +39348,7 @@
"source_file": "tests/e2e/page_objects/welcome_page.py",
"source_location": "L38",
"id": "page_objects_welcome_page_skip_for_now",
- "community": 300,
+ "community": 215,
"norm_label": "skip_for_now()"
},
{
@@ -38160,7 +39357,7 @@
"source_file": "tests/e2e/page_objects/welcome_page.py",
"source_location": "L43",
"id": "page_objects_welcome_page_status_marker",
- "community": 300,
+ "community": 215,
"norm_label": "status_marker()"
},
{
@@ -38169,7 +39366,7 @@
"source_file": "tests/e2e/page_objects/welcome_page.py",
"source_location": "L1",
"id": "page_objects_welcome_page_rationale_1",
- "community": 300,
+ "community": 215,
"norm_label": "page object for the first-launch welcome card. frontend spec \u00a76.1."
},
{
@@ -38178,7 +39375,7 @@
"source_file": "tests/e2e/page_objects/welcome_page.py",
"source_location": "L12",
"id": "page_objects_welcome_page_rationale_12",
- "community": 244,
+ "community": 215,
"norm_label": "page object for the welcome card shown on first launch. frontend spec \u00a76.1."
},
{
@@ -38187,7 +39384,7 @@
"source_file": "tests/e2e/page_objects/welcome_page.py",
"source_location": "L19",
"id": "page_objects_welcome_page_rationale_19",
- "community": 592,
+ "community": 617,
"norm_label": "the welcome card container."
},
{
@@ -38196,7 +39393,7 @@
"source_file": "tests/e2e/page_objects/welcome_page.py",
"source_location": "L24",
"id": "page_objects_welcome_page_rationale_24",
- "community": 593,
+ "community": 618,
"norm_label": "the welcome card headline / title element."
},
{
@@ -38205,7 +39402,7 @@
"source_file": "tests/e2e/page_objects/welcome_page.py",
"source_location": "L29",
"id": "page_objects_welcome_page_rationale_29",
- "community": 594,
+ "community": 619,
"norm_label": "the autostart-on-login toggle on the welcome card."
},
{
@@ -38214,7 +39411,7 @@
"source_file": "tests/e2e/page_objects/welcome_page.py",
"source_location": "L34",
"id": "page_objects_welcome_page_rationale_34",
- "community": 595,
+ "community": 620,
"norm_label": "the primary \"get started\" cta on the welcome card."
},
{
@@ -38223,7 +39420,7 @@
"source_file": "tests/e2e/page_objects/welcome_page.py",
"source_location": "L39",
"id": "page_objects_welcome_page_rationale_39",
- "community": 596,
+ "community": 621,
"norm_label": "the secondary \"skip for now\" cta on the welcome card."
},
{
@@ -38232,7 +39429,7 @@
"source_file": "tests/e2e/page_objects/welcome_page.py",
"source_location": "L44",
"id": "page_objects_welcome_page_rationale_44",
- "community": 597,
+ "community": 622,
"norm_label": "hidden marker emitted by the test app to surface state."
},
{
@@ -38241,7 +39438,7 @@
"source_file": "docs/source/conf.py",
"source_location": "L1",
"id": "docs_source_conf_py",
- "community": 301,
+ "community": 308,
"norm_label": "conf.py"
},
{
@@ -38250,7 +39447,7 @@
"source_file": "docs/source/conf.py",
"source_location": "L200",
"id": "source_conf_noisefilter",
- "community": 301,
+ "community": 308,
"norm_label": "_noisefilter"
},
{
@@ -38259,7 +39456,7 @@
"source_file": "docs/source/conf.py",
"source_location": "L208",
"id": "source_conf_noisefilter_init",
- "community": 301,
+ "community": 308,
"norm_label": ".__init__()"
},
{
@@ -38268,7 +39465,7 @@
"source_file": "docs/source/conf.py",
"source_location": "L212",
"id": "source_conf_noisefilter_filter",
- "community": 301,
+ "community": 308,
"norm_label": ".filter()"
},
{
@@ -38277,7 +39474,7 @@
"source_file": "docs/source/conf.py",
"source_location": "L271",
"id": "source_conf_setup",
- "community": 301,
+ "community": 308,
"norm_label": "setup()"
},
{
@@ -38286,7 +39483,7 @@
"source_file": "docs/source/conf.py",
"source_location": "L1",
"id": "source_conf_rationale_1",
- "community": 301,
+ "community": 308,
"norm_label": "sphinx configuration for exlab-wizard documentation. the configuration wires th"
},
{
@@ -38295,7 +39492,7 @@
"source_file": "docs/source/conf.py",
"source_location": "L201",
"id": "source_conf_rationale_201",
- "community": 301,
+ "community": 308,
"norm_label": "drop uncategorised warnings whose message text matches a known needle. inse"
},
{
@@ -38304,7 +39501,7 @@
"source_file": "docs/source/conf.py",
"source_location": "L272",
"id": "source_conf_rationale_272",
- "community": 301,
+ "community": 308,
"norm_label": "install the noise filter at the head of the warning handler chain. sphinx w"
},
{
@@ -38313,7 +39510,7 @@
"source_file": "scripts/generate_screenshots.py",
"source_location": "L1",
"id": "scripts_generate_screenshots_py",
- "community": 108,
+ "community": 116,
"norm_label": "generate_screenshots.py"
},
{
@@ -38322,7 +39519,7 @@
"source_file": "scripts/generate_screenshots.py",
"source_location": "L69",
"id": "scripts_generate_screenshots_free_port",
- "community": 108,
+ "community": 116,
"norm_label": "_free_port()"
},
{
@@ -38331,7 +39528,7 @@
"source_file": "scripts/generate_screenshots.py",
"source_location": "L76",
"id": "scripts_generate_screenshots_start_server",
- "community": 108,
+ "community": 116,
"norm_label": "_start_server()"
},
{
@@ -38340,7 +39537,7 @@
"source_file": "scripts/generate_screenshots.py",
"source_location": "L138",
"id": "scripts_generate_screenshots_stop_server",
- "community": 108,
+ "community": 116,
"norm_label": "_stop_server()"
},
{
@@ -38349,7 +39546,7 @@
"source_file": "scripts/generate_screenshots.py",
"source_location": "L148",
"id": "scripts_generate_screenshots_capture",
- "community": 108,
+ "community": 116,
"norm_label": "_capture()"
},
{
@@ -38358,7 +39555,7 @@
"source_file": "scripts/generate_screenshots.py",
"source_location": "L178",
"id": "scripts_generate_screenshots_capture_capability",
- "community": 108,
+ "community": 116,
"norm_label": "_capture_capability()"
},
{
@@ -38367,7 +39564,7 @@
"source_file": "scripts/generate_screenshots.py",
"source_location": "L209",
"id": "scripts_generate_screenshots_capability_plan",
- "community": 108,
+ "community": 116,
"norm_label": "_capability_plan()"
},
{
@@ -38376,7 +39573,7 @@
"source_file": "scripts/generate_screenshots.py",
"source_location": "L337",
"id": "scripts_generate_screenshots_main",
- "community": 108,
+ "community": 116,
"norm_label": "main()"
},
{
@@ -38385,7 +39582,7 @@
"source_file": "scripts/generate_screenshots.py",
"source_location": "L1",
"id": "scripts_generate_screenshots_rationale_1",
- "community": 108,
+ "community": 116,
"norm_label": "generate playwright screenshots for the sphinx user guide. cli: python scr"
},
{
@@ -38394,7 +39591,7 @@
"source_file": "scripts/generate_screenshots.py",
"source_location": "L70",
"id": "scripts_generate_screenshots_rationale_70",
- "community": 108,
+ "community": 116,
"norm_label": "return a free tcp port on 127.0.0.1."
},
{
@@ -38403,7 +39600,7 @@
"source_file": "scripts/generate_screenshots.py",
"source_location": "L77",
"id": "scripts_generate_screenshots_rationale_77",
- "community": 108,
+ "community": 116,
"norm_label": "spawn the uvicorn-hosted e2e test app; return (proc, base_url). mirrors the"
},
{
@@ -38412,7 +39609,7 @@
"source_file": "scripts/generate_screenshots.py",
"source_location": "L139",
"id": "scripts_generate_screenshots_rationale_139",
- "community": 108,
+ "community": 116,
"norm_label": "best-effort termination of the uvicorn subprocess."
},
{
@@ -38421,7 +39618,7 @@
"source_file": "scripts/generate_screenshots.py",
"source_location": "L158",
"id": "scripts_generate_screenshots_rationale_158",
- "community": 108,
+ "community": 116,
"norm_label": "navigate to ``route``, optionally wait for a selector, screenshot. returns"
},
{
@@ -38430,7 +39627,7 @@
"source_file": "scripts/generate_screenshots.py",
"source_location": "L185",
"id": "scripts_generate_screenshots_rationale_185",
- "community": 108,
+ "community": 116,
"norm_label": "capture every step in the capability; return (succeeded, total)."
},
{
@@ -38439,7 +39636,7 @@
"source_file": "scripts/generate_screenshots.py",
"source_location": "L210",
"id": "scripts_generate_screenshots_rationale_210",
- "community": 108,
+ "community": 116,
"norm_label": "return the (capability_id, steps) list driving the screenshot run. routes a"
},
{
@@ -38448,7 +39645,7 @@
"source_file": "scripts/generate_screenshots.py",
"source_location": "L338",
"id": "scripts_generate_screenshots_rationale_338",
- "community": 108,
+ "community": 116,
"norm_label": "entry point; returns a process exit code (0 on full success)."
},
{
@@ -38457,7 +39654,7 @@
"source_file": "scripts/build_local.ps1",
"source_location": "L1",
"id": "scripts_build_local_ps1",
- "community": 598,
+ "community": 623,
"norm_label": "build_local.ps1"
},
{
@@ -38466,7 +39663,7 @@
"source_file": "src/exlab_wizard/paths.py",
"source_location": "L1",
"id": "src_exlab_wizard_paths_py",
- "community": 60,
+ "community": 187,
"norm_label": "paths.py"
},
{
@@ -38475,7 +39672,7 @@
"source_file": "src/exlab_wizard/paths.py",
"source_location": "L95",
"id": "exlab_wizard_paths_app_name",
- "community": 64,
+ "community": 76,
"norm_label": "_app_name()"
},
{
@@ -38484,7 +39681,7 @@
"source_file": "src/exlab_wizard/paths.py",
"source_location": "L107",
"id": "exlab_wizard_paths_platform",
- "community": 64,
+ "community": 76,
"norm_label": "_platform()"
},
{
@@ -38493,7 +39690,7 @@
"source_file": "src/exlab_wizard/paths.py",
"source_location": "L118",
"id": "exlab_wizard_paths_home",
- "community": 64,
+ "community": 76,
"norm_label": "_home()"
},
{
@@ -38502,7 +39699,7 @@
"source_file": "src/exlab_wizard/paths.py",
"source_location": "L127",
"id": "exlab_wizard_paths_env_path",
- "community": 64,
+ "community": 76,
"norm_label": "_env_path()"
},
{
@@ -38511,7 +39708,7 @@
"source_file": "src/exlab_wizard/paths.py",
"source_location": "L133",
"id": "exlab_wizard_paths_os_config_path",
- "community": 64,
+ "community": 76,
"norm_label": "os_config_path()"
},
{
@@ -38520,7 +39717,7 @@
"source_file": "src/exlab_wizard/paths.py",
"source_location": "L145",
"id": "exlab_wizard_paths_os_state_path",
- "community": 235,
+ "community": 239,
"norm_label": "os_state_path()"
},
{
@@ -38529,7 +39726,7 @@
"source_file": "src/exlab_wizard/paths.py",
"source_location": "L157",
"id": "exlab_wizard_paths_os_cache_path",
- "community": 64,
+ "community": 76,
"norm_label": "os_cache_path()"
},
{
@@ -38538,7 +39735,7 @@
"source_file": "src/exlab_wizard/paths.py",
"source_location": "L169",
"id": "exlab_wizard_paths_os_central_log_path",
- "community": 274,
+ "community": 238,
"norm_label": "os_central_log_path()"
},
{
@@ -38547,7 +39744,7 @@
"source_file": "src/exlab_wizard/paths.py",
"source_location": "L188",
"id": "exlab_wizard_paths_suggested_staging_root",
- "community": 64,
+ "community": 76,
"norm_label": "suggested_staging_root()"
},
{
@@ -38556,7 +39753,7 @@
"source_file": "src/exlab_wizard/paths.py",
"source_location": "L220",
"id": "exlab_wizard_paths_ensure_dir",
- "community": 235,
+ "community": 238,
"norm_label": "ensure_dir()"
},
{
@@ -38565,7 +39762,7 @@
"source_file": "src/exlab_wizard/paths.py",
"source_location": "L226",
"id": "exlab_wizard_paths_ensure_state_dir",
- "community": 235,
+ "community": 239,
"norm_label": "ensure_state_dir()"
},
{
@@ -38574,7 +39771,7 @@
"source_file": "src/exlab_wizard/paths.py",
"source_location": "L231",
"id": "exlab_wizard_paths_ensure_central_log_dir",
- "community": 274,
+ "community": 238,
"norm_label": "ensure_central_log_dir()"
},
{
@@ -38583,7 +39780,7 @@
"source_file": "src/exlab_wizard/paths.py",
"source_location": "L241",
"id": "exlab_wizard_paths_canonicalize_equipment_id",
- "community": 82,
+ "community": 75,
"norm_label": "canonicalize_equipment_id()"
},
{
@@ -38592,7 +39789,7 @@
"source_file": "src/exlab_wizard/paths.py",
"source_location": "L272",
"id": "exlab_wizard_paths_validate_project_short_id",
- "community": 60,
+ "community": 78,
"norm_label": "validate_project_short_id()"
},
{
@@ -38601,7 +39798,7 @@
"source_file": "src/exlab_wizard/paths.py",
"source_location": "L290",
"id": "exlab_wizard_paths_project_name_violations",
- "community": 252,
+ "community": 256,
"norm_label": "project_name_violations()"
},
{
@@ -38610,7 +39807,7 @@
"source_file": "src/exlab_wizard/paths.py",
"source_location": "L348",
"id": "exlab_wizard_paths_validate_project_name",
- "community": 252,
+ "community": 256,
"norm_label": "validate_project_name()"
},
{
@@ -38619,7 +39816,7 @@
"source_file": "src/exlab_wizard/paths.py",
"source_location": "L360",
"id": "exlab_wizard_paths_compose_run_path",
- "community": 167,
+ "community": 176,
"norm_label": "compose_run_path()"
},
{
@@ -38628,7 +39825,7 @@
"source_file": "src/exlab_wizard/paths.py",
"source_location": "L396",
"id": "exlab_wizard_paths_compose_project_path",
- "community": 82,
+ "community": 75,
"norm_label": "compose_project_path()"
},
{
@@ -38637,7 +39834,7 @@
"source_file": "src/exlab_wizard/paths.py",
"source_location": "L420",
"id": "exlab_wizard_paths_lims_slot_satisfied",
- "community": 60,
+ "community": 187,
"norm_label": "_lims_slot_satisfied()"
},
{
@@ -38646,7 +39843,7 @@
"source_file": "src/exlab_wizard/paths.py",
"source_location": "L437",
"id": "exlab_wizard_paths_paths_complete",
- "community": 60,
+ "community": 187,
"norm_label": "_paths_complete()"
},
{
@@ -38655,7 +39852,7 @@
"source_file": "src/exlab_wizard/paths.py",
"source_location": "L447",
"id": "exlab_wizard_paths_nas_in_use",
- "community": 60,
+ "community": 187,
"norm_label": "_nas_in_use()"
},
{
@@ -38664,7 +39861,7 @@
"source_file": "src/exlab_wizard/paths.py",
"source_location": "L454",
"id": "exlab_wizard_paths_nas_remote_satisfied",
- "community": 60,
+ "community": 187,
"norm_label": "_nas_remote_satisfied()"
},
{
@@ -38673,7 +39870,7 @@
"source_file": "src/exlab_wizard/paths.py",
"source_location": "L466",
"id": "exlab_wizard_paths_evaluate_setup_state",
- "community": 52,
+ "community": 59,
"norm_label": "evaluate_setup_state()"
},
{
@@ -38682,7 +39879,7 @@
"source_file": "src/exlab_wizard/paths.py",
"source_location": "L514",
"id": "exlab_wizard_paths_orchestrator_identity_complete",
- "community": 60,
+ "community": 187,
"norm_label": "_orchestrator_identity_complete()"
},
{
@@ -38691,7 +39888,7 @@
"source_file": "src/exlab_wizard/paths.py",
"source_location": "L525",
"id": "exlab_wizard_paths_setup_state_missing",
- "community": 60,
+ "community": 177,
"norm_label": "setup_state_missing()"
},
{
@@ -38700,7 +39897,7 @@
"source_file": "src/exlab_wizard/paths.py",
"source_location": "L560",
"id": "exlab_wizard_paths_missing_nas_fields",
- "community": 60,
+ "community": 187,
"norm_label": "_missing_nas_fields()"
},
{
@@ -38709,7 +39906,7 @@
"source_file": "src/exlab_wizard/paths.py",
"source_location": "L571",
"id": "exlab_wizard_paths_missing_orchestrator_fields",
- "community": 60,
+ "community": 177,
"norm_label": "_missing_orchestrator_fields()"
},
{
@@ -38718,7 +39915,7 @@
"source_file": "src/exlab_wizard/paths.py",
"source_location": "L581",
"id": "exlab_wizard_paths_missing_paths_fields",
- "community": 60,
+ "community": 177,
"norm_label": "_missing_paths_fields()"
},
{
@@ -38727,7 +39924,7 @@
"source_file": "src/exlab_wizard/paths.py",
"source_location": "L594",
"id": "exlab_wizard_paths_missing_lims_fields",
- "community": 60,
+ "community": 177,
"norm_label": "_missing_lims_fields()"
},
{
@@ -38736,7 +39933,7 @@
"source_file": "src/exlab_wizard/paths.py",
"source_location": "L613",
"id": "exlab_wizard_paths_setup_state_next_action",
- "community": 210,
+ "community": 75,
"norm_label": "setup_state_next_action()"
},
{
@@ -38745,7 +39942,7 @@
"source_file": "src/exlab_wizard/paths.py",
"source_location": "L643",
"id": "exlab_wizard_paths_cache_dir",
- "community": 210,
+ "community": 3,
"norm_label": "cache_dir()"
},
{
@@ -38754,7 +39951,7 @@
"source_file": "src/exlab_wizard/paths.py",
"source_location": "L648",
"id": "exlab_wizard_paths_creation_json_path",
- "community": 25,
+ "community": 16,
"norm_label": "creation_json_path()"
},
{
@@ -38763,7 +39960,7 @@
"source_file": "src/exlab_wizard/paths.py",
"source_location": "L653",
"id": "exlab_wizard_paths_equipment_json_path",
- "community": 210,
+ "community": 56,
"norm_label": "equipment_json_path()"
},
{
@@ -38772,7 +39969,7 @@
"source_file": "src/exlab_wizard/paths.py",
"source_location": "L658",
"id": "exlab_wizard_paths_readme_fields_json_path",
- "community": 210,
+ "community": 491,
"norm_label": "readme_fields_json_path()"
},
{
@@ -38781,7 +39978,7 @@
"source_file": "src/exlab_wizard/paths.py",
"source_location": "L668",
"id": "exlab_wizard_paths_is_run_dir",
- "community": 109,
+ "community": 71,
"norm_label": "is_run_dir()"
},
{
@@ -38790,7 +39987,7 @@
"source_file": "src/exlab_wizard/paths.py",
"source_location": "L678",
"id": "exlab_wizard_paths_is_test_run_dir",
- "community": 213,
+ "community": 11,
"norm_label": "is_test_run_dir()"
},
{
@@ -38799,7 +39996,7 @@
"source_file": "src/exlab_wizard/paths.py",
"source_location": "L683",
"id": "exlab_wizard_paths_run_dir_stem",
- "community": 210,
+ "community": 56,
"norm_label": "run_dir_stem()"
},
{
@@ -38808,7 +40005,7 @@
"source_file": "src/exlab_wizard/paths.py",
"source_location": "L1",
"id": "exlab_wizard_paths_rationale_1",
- "community": 60,
+ "community": 187,
"norm_label": "path composition + os-appropriate directories + equipment-id canonicalization."
},
{
@@ -38817,7 +40014,7 @@
"source_file": "src/exlab_wizard/paths.py",
"source_location": "L96",
"id": "exlab_wizard_paths_rationale_96",
- "community": 64,
+ "community": 76,
"norm_label": "``app_name`` (suffixed ``-test`` when ``exlab_wizard_test_mode=1``)."
},
{
@@ -38826,7 +40023,7 @@
"source_file": "src/exlab_wizard/paths.py",
"source_location": "L108",
"id": "exlab_wizard_paths_rationale_108",
- "community": 64,
+ "community": 76,
"norm_label": "return a normalized platform tag for os-conditional path dispatch."
},
{
@@ -38835,7 +40032,7 @@
"source_file": "src/exlab_wizard/paths.py",
"source_location": "L119",
"id": "exlab_wizard_paths_rationale_119",
- "community": 64,
+ "community": 76,
"norm_label": "return the operator's home directory. centralized so test fixtures can monk"
},
{
@@ -38844,7 +40041,7 @@
"source_file": "src/exlab_wizard/paths.py",
"source_location": "L128",
"id": "exlab_wizard_paths_rationale_128",
- "community": 64,
+ "community": 76,
"norm_label": "return ``path(os.environ[var])`` if the var is set and non-empty, else ``fallbac"
},
{
@@ -38853,7 +40050,7 @@
"source_file": "src/exlab_wizard/paths.py",
"source_location": "L134",
"id": "exlab_wizard_paths_rationale_134",
- "community": 64,
+ "community": 76,
"norm_label": "return the os-appropriate path of ``config.yaml``. backend spec \u00a79."
},
{
@@ -38862,7 +40059,7 @@
"source_file": "src/exlab_wizard/paths.py",
"source_location": "L146",
"id": "exlab_wizard_paths_rationale_146",
- "community": 235,
+ "community": 239,
"norm_label": "return the os-appropriate state directory. backend spec \u00a715.7."
},
{
@@ -38871,7 +40068,7 @@
"source_file": "src/exlab_wizard/paths.py",
"source_location": "L158",
"id": "exlab_wizard_paths_rationale_158",
- "community": 64,
+ "community": 76,
"norm_label": "return the os-appropriate cache directory. backend spec \u00a77.2.4."
},
{
@@ -38880,7 +40077,7 @@
"source_file": "src/exlab_wizard/paths.py",
"source_location": "L170",
"id": "exlab_wizard_paths_rationale_170",
- "community": 274,
+ "community": 238,
"norm_label": "return the os-appropriate central log file. backend spec \u00a716.3."
},
{
@@ -38889,7 +40086,7 @@
"source_file": "src/exlab_wizard/paths.py",
"source_location": "L189",
"id": "exlab_wizard_paths_rationale_189",
- "community": 64,
+ "community": 76,
"norm_label": "suggested (not default) ``orchestrator.staging_root``. backend spec \u00a79, \u00a713."
},
{
@@ -38898,7 +40095,7 @@
"source_file": "src/exlab_wizard/paths.py",
"source_location": "L221",
"id": "exlab_wizard_paths_rationale_221",
- "community": 235,
+ "community": 238,
"norm_label": "``mkdir -p`` the given path; return it. idempotent."
},
{
@@ -38907,7 +40104,7 @@
"source_file": "src/exlab_wizard/paths.py",
"source_location": "L227",
"id": "exlab_wizard_paths_rationale_227",
- "community": 235,
+ "community": 239,
"norm_label": "``ensure_dir(os_state_path())``."
},
{
@@ -38916,7 +40113,7 @@
"source_file": "src/exlab_wizard/paths.py",
"source_location": "L232",
"id": "exlab_wizard_paths_rationale_232",
- "community": 274,
+ "community": 238,
"norm_label": "``ensure_dir(os_central_log_path().parent)``."
},
{
@@ -38925,7 +40122,7 @@
"source_file": "src/exlab_wizard/paths.py",
"source_location": "L242",
"id": "exlab_wizard_paths_rationale_242",
- "community": 82,
+ "community": 75,
"norm_label": "validate ``value`` against the \u00a73.1 equipment-id regex. returns ``value`` u"
},
{
@@ -38934,7 +40131,7 @@
"source_file": "src/exlab_wizard/paths.py",
"source_location": "L273",
"id": "exlab_wizard_paths_rationale_273",
- "community": 60,
+ "community": 78,
"norm_label": "validate ``value`` against ``project_short_id_pattern``. returns the input"
},
{
@@ -38943,7 +40140,7 @@
"source_file": "src/exlab_wizard/paths.py",
"source_location": "L291",
"id": "exlab_wizard_paths_rationale_291",
- "community": 252,
+ "community": 256,
"norm_label": "return every way ``value`` fails the \u00a73.2 project-name rule. the project fo"
},
{
@@ -38952,7 +40149,7 @@
"source_file": "src/exlab_wizard/paths.py",
"source_location": "L349",
"id": "exlab_wizard_paths_rationale_349",
- "community": 252,
+ "community": 256,
"norm_label": "validate ``value`` as a \u00a73.2 project-folder name. returns the input unchang"
},
{
@@ -38961,7 +40158,7 @@
"source_file": "src/exlab_wizard/paths.py",
"source_location": "L368",
"id": "exlab_wizard_paths_rationale_368",
- "community": 167,
+ "community": 176,
"norm_label": "compose the absolute on-disk path for a new run. paths follow backend spec"
},
{
@@ -38970,7 +40167,7 @@
"source_file": "src/exlab_wizard/paths.py",
"source_location": "L402",
"id": "exlab_wizard_paths_rationale_402",
- "community": 82,
+ "community": 75,
"norm_label": "compose the project-level directory. ``//`` or ``testrun_``."
},
{
@@ -39132,7 +40329,7 @@
"source_file": "src/exlab_wizard/__init__.py",
"source_location": "L1",
"id": "src_exlab_wizard_init_py",
- "community": 512,
+ "community": 536,
"norm_label": "__init__.py"
},
{
@@ -39141,7 +40338,7 @@
"source_file": "src/exlab_wizard/__init__.py",
"source_location": "L1",
"id": "exlab_wizard_init_rationale_1",
- "community": 512,
+ "community": 536,
"norm_label": "exlab-wizard package root. backend spec \u00a74."
},
{
@@ -39150,7 +40347,7 @@
"source_file": "src/exlab_wizard/errors.py",
"source_location": "L1",
"id": "src_exlab_wizard_errors_py",
- "community": 23,
+ "community": 15,
"norm_label": "errors.py"
},
{
@@ -39159,7 +40356,7 @@
"source_file": "src/exlab_wizard/errors.py",
"source_location": "L19",
"id": "exlab_wizard_errors_exlaberror",
- "community": 23,
+ "community": 15,
"norm_label": "exlaberror"
},
{
@@ -39168,7 +40365,7 @@
"source_file": "",
"source_location": "",
"id": "exception",
- "community": 90,
+ "community": 104,
"norm_label": "exception"
},
{
@@ -39177,7 +40374,7 @@
"source_file": "src/exlab_wizard/errors.py",
"source_location": "L23",
"id": "exlab_wizard_errors_configerror",
- "community": 0,
+ "community": 10,
"norm_label": "configerror"
},
{
@@ -39186,7 +40383,7 @@
"source_file": "src/exlab_wizard/errors.py",
"source_location": "L27",
"id": "exlab_wizard_errors_validationerror",
- "community": 9,
+ "community": 10,
"norm_label": "validationerror"
},
{
@@ -39195,7 +40392,7 @@
"source_file": "src/exlab_wizard/errors.py",
"source_location": "L31",
"id": "exlab_wizard_errors_templateloaderror",
- "community": 23,
+ "community": 15,
"norm_label": "templateloaderror"
},
{
@@ -39204,7 +40401,7 @@
"source_file": "src/exlab_wizard/errors.py",
"source_location": "L35",
"id": "exlab_wizard_errors_templatecorefieldredeclarederror",
- "community": 23,
+ "community": 15,
"norm_label": "templatecorefieldredeclarederror"
},
{
@@ -39213,7 +40410,7 @@
"source_file": "src/exlab_wizard/errors.py",
"source_location": "L39",
"id": "exlab_wizard_errors_pluginerror",
- "community": 58,
+ "community": 15,
"norm_label": "pluginerror"
},
{
@@ -39222,7 +40419,7 @@
"source_file": "src/exlab_wizard/errors.py",
"source_location": "L43",
"id": "exlab_wizard_errors_plugininputrequired",
- "community": 23,
+ "community": 15,
"norm_label": "plugininputrequired"
},
{
@@ -39231,7 +40428,7 @@
"source_file": "src/exlab_wizard/errors.py",
"source_location": "L46",
"id": "exlab_wizard_errors_plugininputrequired_init",
- "community": 23,
+ "community": 15,
"norm_label": ".__init__()"
},
{
@@ -39240,7 +40437,7 @@
"source_file": "src/exlab_wizard/errors.py",
"source_location": "L51",
"id": "exlab_wizard_errors_reason",
- "community": 23,
+ "community": 15,
"norm_label": "reason()"
},
{
@@ -39249,7 +40446,7 @@
"source_file": "src/exlab_wizard/errors.py",
"source_location": "L55",
"id": "exlab_wizard_errors_schemamajormismatcherror",
- "community": 23,
+ "community": 15,
"norm_label": "schemamajormismatcherror"
},
{
@@ -39258,7 +40455,7 @@
"source_file": "src/exlab_wizard/errors.py",
"source_location": "L58",
"id": "exlab_wizard_errors_schemamajormismatcherror_init",
- "community": 23,
+ "community": 15,
"norm_label": ".__init__()"
},
{
@@ -39267,7 +40464,7 @@
"source_file": "src/exlab_wizard/errors.py",
"source_location": "L64",
"id": "exlab_wizard_errors_keyringunavailableerror",
- "community": 171,
+ "community": 179,
"norm_label": "keyringunavailableerror"
},
{
@@ -39276,7 +40473,7 @@
"source_file": "src/exlab_wizard/errors.py",
"source_location": "L68",
"id": "exlab_wizard_errors_setupincompleteerror",
- "community": 23,
+ "community": 15,
"norm_label": "setupincompleteerror"
},
{
@@ -39285,7 +40482,7 @@
"source_file": "src/exlab_wizard/errors.py",
"source_location": "L1",
"id": "exlab_wizard_errors_rationale_1",
- "community": 23,
+ "community": 15,
"norm_label": "top-level exception hierarchy. backend spec \u00a74.3 errors.py."
},
{
@@ -39294,7 +40491,7 @@
"source_file": "src/exlab_wizard/errors.py",
"source_location": "L20",
"id": "exlab_wizard_errors_rationale_20",
- "community": 23,
+ "community": 15,
"norm_label": "base class for all exlab-wizard exceptions."
},
{
@@ -39303,7 +40500,7 @@
"source_file": "src/exlab_wizard/errors.py",
"source_location": "L24",
"id": "exlab_wizard_errors_rationale_24",
- "community": 0,
+ "community": 10,
"norm_label": "raised on config.yaml validation failures. backend spec \u00a79."
},
{
@@ -39312,7 +40509,7 @@
"source_file": "src/exlab_wizard/errors.py",
"source_location": "L28",
"id": "exlab_wizard_errors_rationale_28",
- "community": 9,
+ "community": 10,
"norm_label": "raised by the validator engine on creation-time gates. backend spec \u00a78.1."
},
{
@@ -39321,7 +40518,7 @@
"source_file": "src/exlab_wizard/errors.py",
"source_location": "L32",
"id": "exlab_wizard_errors_rationale_32",
- "community": 23,
+ "community": 15,
"norm_label": "raised when a copier template fails to load. backend spec \u00a75."
},
{
@@ -39330,7 +40527,7 @@
"source_file": "src/exlab_wizard/errors.py",
"source_location": "L36",
"id": "exlab_wizard_errors_rationale_36",
- "community": 23,
+ "community": 15,
"norm_label": "raised when a template redeclares label / operator / objective. backend spec \u00a710"
},
{
@@ -39339,7 +40536,7 @@
"source_file": "src/exlab_wizard/errors.py",
"source_location": "L40",
"id": "exlab_wizard_errors_rationale_40",
- "community": 58,
+ "community": 15,
"norm_label": "raised by plugin workers to signal expected failure. backend spec \u00a76."
},
{
@@ -39348,7 +40545,7 @@
"source_file": "src/exlab_wizard/errors.py",
"source_location": "L44",
"id": "exlab_wizard_errors_rationale_44",
- "community": 23,
+ "community": 15,
"norm_label": "raised by plugin workers to escalate for additional input. backend spec \u00a76.4."
},
{
@@ -39357,7 +40554,7 @@
"source_file": "src/exlab_wizard/errors.py",
"source_location": "L56",
"id": "exlab_wizard_errors_rationale_56",
- "community": 23,
+ "community": 15,
"norm_label": "raised when a cache file's schema major version exceeds reader support. backend"
},
{
@@ -39366,7 +40563,7 @@
"source_file": "src/exlab_wizard/errors.py",
"source_location": "L65",
"id": "exlab_wizard_errors_rationale_65",
- "community": 171,
+ "community": 179,
"norm_label": "raised when no os keyring backend is reachable and fallback is exhausted. backen"
},
{
@@ -39375,7 +40572,7 @@
"source_file": "src/exlab_wizard/errors.py",
"source_location": "L69",
"id": "exlab_wizard_errors_rationale_69",
- "community": 23,
+ "community": 15,
"norm_label": "raised when a creation gate runs while setup state is incomplete_*. backend spec"
},
{
@@ -39384,7 +40581,7 @@
"source_file": "src/exlab_wizard/__main__.py",
"source_location": "L1",
"id": "src_exlab_wizard_main_py",
- "community": 461,
+ "community": 490,
"norm_label": "__main__.py"
},
{
@@ -39393,7 +40590,7 @@
"source_file": "src/exlab_wizard/__main__.py",
"source_location": "L6",
"id": "exlab_wizard_main_main",
- "community": 461,
+ "community": 490,
"norm_label": "main()"
},
{
@@ -39402,7 +40599,7 @@
"source_file": "src/exlab_wizard/__main__.py",
"source_location": "L1",
"id": "exlab_wizard_main_rationale_1",
- "community": 461,
+ "community": 490,
"norm_label": "cli alias entry point. backend spec \u00a74.3."
},
{
@@ -39411,7 +40608,7 @@
"source_file": "src/exlab_wizard/ui/theme.py",
"source_location": "L1",
"id": "src_exlab_wizard_ui_theme_py",
- "community": 177,
+ "community": 39,
"norm_label": "theme.py"
},
{
@@ -39420,34 +40617,34 @@
"source_file": "src/exlab_wizard/ui/theme.py",
"source_location": "L25",
"id": "ui_theme_build_root_css",
- "community": 177,
+ "community": 39,
"norm_label": "build_root_css()"
},
{
"label": "register_theme()",
"file_type": "code",
"source_file": "src/exlab_wizard/ui/theme.py",
- "source_location": "L112",
+ "source_location": "L128",
"id": "ui_theme_register_theme",
- "community": 177,
+ "community": 39,
"norm_label": "register_theme()"
},
{
"label": "resolve_assets_dir()",
"file_type": "code",
"source_file": "src/exlab_wizard/ui/theme.py",
- "source_location": "L141",
+ "source_location": "L157",
"id": "ui_theme_resolve_assets_dir",
- "community": 177,
+ "community": 39,
"norm_label": "resolve_assets_dir()"
},
{
"label": "register_static_assets()",
"file_type": "code",
"source_file": "src/exlab_wizard/ui/theme.py",
- "source_location": "L156",
+ "source_location": "L172",
"id": "ui_theme_register_static_assets",
- "community": 177,
+ "community": 39,
"norm_label": "register_static_assets()"
},
{
@@ -39456,7 +40653,7 @@
"source_file": "src/exlab_wizard/ui/theme.py",
"source_location": "L1",
"id": "ui_theme_rationale_1",
- "community": 177,
+ "community": 39,
"norm_label": "theme registration for nicegui / quasar. per frontend spec \u00a72.1.1, this module"
},
{
@@ -39465,34 +40662,34 @@
"source_file": "src/exlab_wizard/ui/theme.py",
"source_location": "L26",
"id": "ui_theme_rationale_26",
- "community": 177,
+ "community": 39,
"norm_label": "render the canonical ``:root { ... }`` css block from design tokens. the st"
},
{
"label": "Register the design tokens with NiceGUI / Quasar at app start. Imports Nice",
"file_type": "rationale",
"source_file": "src/exlab_wizard/ui/theme.py",
- "source_location": "L113",
- "id": "ui_theme_rationale_113",
- "community": 177,
+ "source_location": "L129",
+ "id": "ui_theme_rationale_129",
+ "community": 39,
"norm_label": "register the design tokens with nicegui / quasar at app start. imports nice"
},
{
"label": "Return the absolute path to the bundled ``assets/`` directory. Resolves bot",
"file_type": "rationale",
"source_file": "src/exlab_wizard/ui/theme.py",
- "source_location": "L142",
- "id": "ui_theme_rationale_142",
- "community": 177,
+ "source_location": "L158",
+ "id": "ui_theme_rationale_158",
+ "community": 39,
"norm_label": "return the absolute path to the bundled ``assets/`` directory. resolves bot"
},
{
"label": "Mount the project's ``assets/`` directory at ``/assets``. Idempotent: a mod",
"file_type": "rationale",
"source_file": "src/exlab_wizard/ui/theme.py",
- "source_location": "L157",
- "id": "ui_theme_rationale_157",
- "community": 177,
+ "source_location": "L173",
+ "id": "ui_theme_rationale_173",
+ "community": 39,
"norm_label": "mount the project's ``assets/`` directory at ``/assets``. idempotent: a mod"
},
{
@@ -39501,7 +40698,7 @@
"source_file": "src/exlab_wizard/ui/equipment_form.py",
"source_location": "L1",
"id": "src_exlab_wizard_ui_equipment_form_py",
- "community": 197,
+ "community": 194,
"norm_label": "equipment_form.py"
},
{
@@ -39510,7 +40707,7 @@
"source_file": "src/exlab_wizard/ui/equipment_form.py",
"source_location": "L21",
"id": "ui_equipment_form_build_equipment_config",
- "community": 197,
+ "community": 194,
"norm_label": "build_equipment_config()"
},
{
@@ -39519,7 +40716,7 @@
"source_file": "src/exlab_wizard/ui/equipment_form.py",
"source_location": "L1",
"id": "ui_equipment_form_rationale_1",
- "community": 197,
+ "community": 194,
"norm_label": "shared assembler for an :class:`equipmentconfig` from raw form fields. gui/orch"
},
{
@@ -39528,7 +40725,7 @@
"source_file": "src/exlab_wizard/ui/equipment_form.py",
"source_location": "L29",
"id": "ui_equipment_form_rationale_29",
- "community": 197,
+ "community": 194,
"norm_label": "assemble a validated :class:`equipmentconfig` from raw form fields. redesig"
},
{
@@ -39537,7 +40734,7 @@
"source_file": "src/exlab_wizard/ui/design.py",
"source_location": "L1",
"id": "src_exlab_wizard_ui_design_py",
- "community": 513,
+ "community": 537,
"norm_label": "design.py"
},
{
@@ -39546,7 +40743,7 @@
"source_file": "src/exlab_wizard/ui/design.py",
"source_location": "L1",
"id": "ui_design_rationale_1",
- "community": 513,
+ "community": 537,
"norm_label": "design tokens. mirrors design.md verbatim with the frontend spec \u00a72.1 typography"
},
{
@@ -39555,7 +40752,7 @@
"source_file": "src/exlab_wizard/ui/__init__.py",
"source_location": "L1",
"id": "src_exlab_wizard_ui_init_py",
- "community": 419,
+ "community": 456,
"norm_label": "__init__.py"
},
{
@@ -39564,7 +40761,7 @@
"source_file": "src/exlab_wizard/ui/notifications.py",
"source_location": "L1",
"id": "src_exlab_wizard_ui_notifications_py",
- "community": 56,
+ "community": 90,
"norm_label": "notifications.py"
},
{
@@ -39573,7 +40770,7 @@
"source_file": "src/exlab_wizard/ui/notifications.py",
"source_location": "L35",
"id": "ui_notifications_severity",
- "community": 56,
+ "community": 90,
"norm_label": "severity"
},
{
@@ -39582,7 +40779,7 @@
"source_file": "src/exlab_wizard/ui/notifications.py",
"source_location": "L44",
"id": "ui_notifications_bannerid",
- "community": 56,
+ "community": 90,
"norm_label": "bannerid"
},
{
@@ -39591,7 +40788,7 @@
"source_file": "src/exlab_wizard/ui/notifications.py",
"source_location": "L58",
"id": "ui_notifications_containerid",
- "community": 56,
+ "community": 90,
"norm_label": "containerid"
},
{
@@ -39600,7 +40797,7 @@
"source_file": "src/exlab_wizard/ui/notifications.py",
"source_location": "L67",
"id": "ui_notifications_actionspec",
- "community": 59,
+ "community": 352,
"norm_label": "actionspec"
},
{
@@ -39609,7 +40806,7 @@
"source_file": "src/exlab_wizard/ui/notifications.py",
"source_location": "L106",
"id": "ui_notifications_emit_toast",
- "community": 56,
+ "community": 90,
"norm_label": "_emit_toast()"
},
{
@@ -39618,7 +40815,7 @@
"source_file": "src/exlab_wizard/ui/notifications.py",
"source_location": "L165",
"id": "ui_notifications_notify_success",
- "community": 56,
+ "community": 90,
"norm_label": "notify_success()"
},
{
@@ -39627,7 +40824,7 @@
"source_file": "src/exlab_wizard/ui/notifications.py",
"source_location": "L179",
"id": "ui_notifications_notify_info",
- "community": 56,
+ "community": 90,
"norm_label": "notify_info()"
},
{
@@ -39636,7 +40833,7 @@
"source_file": "src/exlab_wizard/ui/notifications.py",
"source_location": "L190",
"id": "ui_notifications_notify_warning",
- "community": 56,
+ "community": 90,
"norm_label": "notify_warning()"
},
{
@@ -39645,7 +40842,7 @@
"source_file": "src/exlab_wizard/ui/notifications.py",
"source_location": "L204",
"id": "ui_notifications_notify_error",
- "community": 56,
+ "community": 90,
"norm_label": "notify_error()"
},
{
@@ -39654,7 +40851,7 @@
"source_file": "src/exlab_wizard/ui/notifications.py",
"source_location": "L223",
"id": "ui_notifications_notify_field_error",
- "community": 56,
+ "community": 90,
"norm_label": "notify_field_error()"
},
{
@@ -39663,7 +40860,7 @@
"source_file": "src/exlab_wizard/ui/notifications.py",
"source_location": "L233",
"id": "ui_notifications_notify_form_error",
- "community": 56,
+ "community": 90,
"norm_label": "notify_form_error()"
},
{
@@ -39672,7 +40869,7 @@
"source_file": "src/exlab_wizard/ui/notifications.py",
"source_location": "L243",
"id": "ui_notifications_clear_field_error",
- "community": 56,
+ "community": 90,
"norm_label": "clear_field_error()"
},
{
@@ -39681,7 +40878,7 @@
"source_file": "src/exlab_wizard/ui/notifications.py",
"source_location": "L249",
"id": "ui_notifications_clear_form_errors",
- "community": 56,
+ "community": 90,
"norm_label": "clear_form_errors()"
},
{
@@ -39690,7 +40887,7 @@
"source_file": "src/exlab_wizard/ui/notifications.py",
"source_location": "L255",
"id": "ui_notifications_get_field_error",
- "community": 56,
+ "community": 90,
"norm_label": "get_field_error()"
},
{
@@ -39699,7 +40896,7 @@
"source_file": "src/exlab_wizard/ui/notifications.py",
"source_location": "L261",
"id": "ui_notifications_get_form_error",
- "community": 56,
+ "community": 90,
"norm_label": "get_form_error()"
},
{
@@ -39708,7 +40905,7 @@
"source_file": "src/exlab_wizard/ui/notifications.py",
"source_location": "L272",
"id": "ui_notifications_show_banner",
- "community": 56,
+ "community": 353,
"norm_label": "show_banner()"
},
{
@@ -39717,7 +40914,7 @@
"source_file": "src/exlab_wizard/ui/notifications.py",
"source_location": "L312",
"id": "ui_notifications_clear_banner",
- "community": 56,
+ "community": 90,
"norm_label": "clear_banner()"
},
{
@@ -39726,7 +40923,7 @@
"source_file": "src/exlab_wizard/ui/notifications.py",
"source_location": "L318",
"id": "ui_notifications_list_active_banners",
- "community": 56,
+ "community": 398,
"norm_label": "list_active_banners()"
},
{
@@ -39735,7 +40932,7 @@
"source_file": "src/exlab_wizard/ui/notifications.py",
"source_location": "L334",
"id": "ui_notifications_banner_overflow_count",
- "community": 56,
+ "community": 398,
"norm_label": "banner_overflow_count()"
},
{
@@ -39744,7 +40941,7 @@
"source_file": "src/exlab_wizard/ui/notifications.py",
"source_location": "L341",
"id": "ui_notifications_reset_for_tests",
- "community": 43,
+ "community": 353,
"norm_label": "reset_for_tests()"
},
{
@@ -39753,7 +40950,7 @@
"source_file": "src/exlab_wizard/ui/notifications.py",
"source_location": "L1",
"id": "ui_notifications_rationale_1",
- "community": 56,
+ "community": 90,
"norm_label": "canonical notification helpers (frontend spec \u00a72.2). this module is the **only*"
},
{
@@ -39762,7 +40959,7 @@
"source_file": "src/exlab_wizard/ui/notifications.py",
"source_location": "L36",
"id": "ui_notifications_rationale_36",
- "community": 56,
+ "community": 90,
"norm_label": "banner severity (frontend \u00a72.2.3)."
},
{
@@ -39771,7 +40968,7 @@
"source_file": "src/exlab_wizard/ui/notifications.py",
"source_location": "L45",
"id": "ui_notifications_rationale_45",
- "community": 56,
+ "community": 90,
"norm_label": "closed-set banner triggers (frontend \u00a72.2.3). adding a new banner is a deli"
},
{
@@ -39780,7 +40977,7 @@
"source_file": "src/exlab_wizard/ui/notifications.py",
"source_location": "L59",
"id": "ui_notifications_rationale_59",
- "community": 56,
+ "community": 90,
"norm_label": "banner placement scopes (frontend \u00a72.2.3)."
},
{
@@ -39789,7 +40986,7 @@
"source_file": "src/exlab_wizard/ui/notifications.py",
"source_location": "L68",
"id": "ui_notifications_rationale_68",
- "community": 59,
+ "community": 352,
"norm_label": "a single action affordance attached to a notification. at most one action p"
},
{
@@ -39798,7 +40995,7 @@
"source_file": "src/exlab_wizard/ui/notifications.py",
"source_location": "L113",
"id": "ui_notifications_rationale_113",
- "community": 56,
+ "community": 90,
"norm_label": "lower-level wrapper around ``ui.notify``. calls into nicegui lazily to avoi"
},
{
@@ -39807,7 +41004,7 @@
"source_file": "src/exlab_wizard/ui/notifications.py",
"source_location": "L166",
"id": "ui_notifications_rationale_166",
- "community": 56,
+ "community": 90,
"norm_label": "show a success toast (frontend \u00a72.2.2). 4 s default duration; 12 s when an"
},
{
@@ -39816,7 +41013,7 @@
"source_file": "src/exlab_wizard/ui/notifications.py",
"source_location": "L180",
"id": "ui_notifications_rationale_180",
- "community": 56,
+ "community": 90,
"norm_label": "show an info toast (frontend \u00a72.2.2)."
},
{
@@ -39825,7 +41022,7 @@
"source_file": "src/exlab_wizard/ui/notifications.py",
"source_location": "L191",
"id": "ui_notifications_rationale_191",
- "community": 56,
+ "community": 90,
"norm_label": "show a warning toast (frontend \u00a72.2.2). 8 s default duration; 12 s when an"
},
{
@@ -39834,7 +41031,7 @@
"source_file": "src/exlab_wizard/ui/notifications.py",
"source_location": "L205",
"id": "ui_notifications_rationale_205",
- "community": 56,
+ "community": 90,
"norm_label": "show an error toast (frontend \u00a72.2.2). 8 s default duration; 12 s when an a"
},
{
@@ -39843,7 +41040,7 @@
"source_file": "src/exlab_wizard/ui/notifications.py",
"source_location": "L224",
"id": "ui_notifications_rationale_224",
- "community": 56,
+ "community": 90,
"norm_label": "register a field-level inline error (frontend \u00a72.2.4)."
},
{
@@ -39852,7 +41049,7 @@
"source_file": "src/exlab_wizard/ui/notifications.py",
"source_location": "L234",
"id": "ui_notifications_rationale_234",
- "community": 56,
+ "community": 90,
"norm_label": "register a form-level inline error (frontend \u00a72.2.4)."
},
{
@@ -39861,7 +41058,7 @@
"source_file": "src/exlab_wizard/ui/notifications.py",
"source_location": "L244",
"id": "ui_notifications_rationale_244",
- "community": 56,
+ "community": 90,
"norm_label": "clear a previously registered field-level error."
},
{
@@ -39870,7 +41067,7 @@
"source_file": "src/exlab_wizard/ui/notifications.py",
"source_location": "L250",
"id": "ui_notifications_rationale_250",
- "community": 56,
+ "community": 90,
"norm_label": "clear all form-level errors registered against ``form_id``."
},
{
@@ -39879,7 +41076,7 @@
"source_file": "src/exlab_wizard/ui/notifications.py",
"source_location": "L256",
"id": "ui_notifications_rationale_256",
- "community": 56,
+ "community": 90,
"norm_label": "return the registered field-level error for ``field_id`` or ``none``."
},
{
@@ -39888,7 +41085,7 @@
"source_file": "src/exlab_wizard/ui/notifications.py",
"source_location": "L262",
"id": "ui_notifications_rationale_262",
- "community": 56,
+ "community": 90,
"norm_label": "return the registered form-level error for ``form_id`` or ``none``."
},
{
@@ -39897,7 +41094,7 @@
"source_file": "src/exlab_wizard/ui/notifications.py",
"source_location": "L281",
"id": "ui_notifications_rationale_281",
- "community": 56,
+ "community": 353,
"norm_label": "activate a banner from the closed \u00a72.2.3 set. raises: valueerror: w"
},
{
@@ -39906,7 +41103,7 @@
"source_file": "src/exlab_wizard/ui/notifications.py",
"source_location": "L313",
"id": "ui_notifications_rationale_313",
- "community": 56,
+ "community": 90,
"norm_label": "deactivate a banner if it was active."
},
{
@@ -39915,7 +41112,7 @@
"source_file": "src/exlab_wizard/ui/notifications.py",
"source_location": "L321",
"id": "ui_notifications_rationale_321",
- "community": 56,
+ "community": 398,
"norm_label": "return active banners, optionally filtered by container. banners are return"
},
{
@@ -39924,7 +41121,7 @@
"source_file": "src/exlab_wizard/ui/notifications.py",
"source_location": "L335",
"id": "ui_notifications_rationale_335",
- "community": 56,
+ "community": 398,
"norm_label": "how many banners exceed the stacking cap of 2 (frontend \u00a72.2.3)."
},
{
@@ -39933,7 +41130,7 @@
"source_file": "src/exlab_wizard/ui/notifications.py",
"source_location": "L342",
"id": "ui_notifications_rationale_342",
- "community": 43,
+ "community": 353,
"norm_label": "clear all module-level state. test fixtures only."
},
{
@@ -39942,1033 +41139,997 @@
"source_file": "src/exlab_wizard/ui/mount.py",
"source_location": "L1",
"id": "src_exlab_wizard_ui_mount_py",
- "community": 45,
+ "community": 77,
"norm_label": "mount.py"
},
{
"label": "_spawn_background()",
"file_type": "code",
"source_file": "src/exlab_wizard/ui/mount.py",
- "source_location": "L58",
+ "source_location": "L61",
"id": "ui_mount_spawn_background",
- "community": 68,
+ "community": 55,
"norm_label": "_spawn_background()"
},
{
"label": "mount_ui()",
"file_type": "code",
"source_file": "src/exlab_wizard/ui/mount.py",
- "source_location": "L66",
+ "source_location": "L69",
"id": "ui_mount_mount_ui",
- "community": 177,
+ "community": 39,
"norm_label": "mount_ui()"
},
{
"label": "_register_pages()",
"file_type": "code",
"source_file": "src/exlab_wizard/ui/mount.py",
- "source_location": "L94",
+ "source_location": "L97",
"id": "ui_mount_register_pages",
- "community": 177,
+ "community": 39,
"norm_label": "_register_pages()"
},
{
"label": "_lims_credential_handlers()",
"file_type": "code",
"source_file": "src/exlab_wizard/ui/mount.py",
- "source_location": "L466",
+ "source_location": "L469",
"id": "ui_mount_lims_credential_handlers",
- "community": 45,
+ "community": 77,
"norm_label": "_lims_credential_handlers()"
},
{
"label": "_nas_test_connection()",
"file_type": "code",
"source_file": "src/exlab_wizard/ui/mount.py",
- "source_location": "L522",
+ "source_location": "L525",
"id": "ui_mount_nas_test_connection",
- "community": 237,
+ "community": 228,
"norm_label": "_nas_test_connection()"
},
{
"label": "_persist_config()",
"file_type": "code",
"source_file": "src/exlab_wizard/ui/mount.py",
- "source_location": "L578",
+ "source_location": "L581",
"id": "ui_mount_persist_config",
- "community": 193,
+ "community": 77,
"norm_label": "_persist_config()"
},
{
"label": "_ensure_staging_root()",
"file_type": "code",
"source_file": "src/exlab_wizard/ui/mount.py",
- "source_location": "L610",
+ "source_location": "L613",
"id": "ui_mount_ensure_staging_root",
- "community": 193,
+ "community": 77,
"norm_label": "_ensure_staging_root()"
},
{
"label": "_apply_live_config()",
"file_type": "code",
"source_file": "src/exlab_wizard/ui/mount.py",
- "source_location": "L636",
+ "source_location": "L639",
"id": "ui_mount_apply_live_config",
- "community": 193,
+ "community": 77,
"norm_label": "_apply_live_config()"
},
{
"label": "_nas_remote_missing()",
"file_type": "code",
"source_file": "src/exlab_wizard/ui/mount.py",
- "source_location": "L653",
+ "source_location": "L656",
"id": "ui_mount_nas_remote_missing",
- "community": 204,
+ "community": 82,
"norm_label": "_nas_remote_missing()"
},
{
"label": "_is_setup_ready()",
"file_type": "code",
"source_file": "src/exlab_wizard/ui/mount.py",
- "source_location": "L677",
+ "source_location": "L680",
"id": "ui_mount_is_setup_ready",
- "community": 45,
+ "community": 52,
"norm_label": "_is_setup_ready()"
},
{
"label": "_apply_autostart()",
"file_type": "code",
"source_file": "src/exlab_wizard/ui/mount.py",
- "source_location": "L709",
+ "source_location": "L712",
"id": "ui_mount_apply_autostart",
- "community": 149,
+ "community": 153,
"norm_label": "_apply_autostart()"
},
{
"label": "_build_main_state()",
"file_type": "code",
"source_file": "src/exlab_wizard/ui/mount.py",
- "source_location": "L728",
+ "source_location": "L731",
"id": "ui_mount_build_main_state",
- "community": 45,
+ "community": 52,
"norm_label": "_build_main_state()"
},
{
"label": "_panel_sessions()",
"file_type": "code",
"source_file": "src/exlab_wizard/ui/mount.py",
- "source_location": "L768",
+ "source_location": "L786",
"id": "ui_mount_panel_sessions",
- "community": 45,
+ "community": 204,
"norm_label": "_panel_sessions()"
},
{
"label": "_operation_counts()",
"file_type": "code",
"source_file": "src/exlab_wizard/ui/mount.py",
- "source_location": "L785",
+ "source_location": "L803",
"id": "ui_mount_operation_counts",
- "community": 45,
+ "community": 204,
"norm_label": "_operation_counts()"
},
{
"label": "_setup_next_action()",
"file_type": "code",
"source_file": "src/exlab_wizard/ui/mount.py",
- "source_location": "L802",
+ "source_location": "L820",
"id": "ui_mount_setup_next_action",
- "community": 45,
+ "community": 52,
"norm_label": "_setup_next_action()"
},
{
"label": "_build_main_query()",
"file_type": "code",
"source_file": "src/exlab_wizard/ui/mount.py",
- "source_location": "L825",
+ "source_location": "L843",
"id": "ui_mount_build_main_query",
- "community": 302,
+ "community": 209,
"norm_label": "_build_main_query()"
},
{
"label": "_classify_node()",
"file_type": "code",
"source_file": "src/exlab_wizard/ui/mount.py",
- "source_location": "L865",
+ "source_location": "L883",
"id": "ui_mount_classify_node",
- "community": 303,
+ "community": 209,
"norm_label": "_classify_node()"
},
{
"label": "_build_metadata_payload()",
"file_type": "code",
"source_file": "src/exlab_wizard/ui/mount.py",
- "source_location": "L905",
+ "source_location": "L923",
"id": "ui_mount_build_metadata_payload",
- "community": 176,
+ "community": 151,
"norm_label": "_build_metadata_payload()"
},
{
"label": "_metadata_for_owned_equipment()",
"file_type": "code",
"source_file": "src/exlab_wizard/ui/mount.py",
- "source_location": "L936",
+ "source_location": "L954",
"id": "ui_mount_metadata_for_owned_equipment",
- "community": 176,
+ "community": 151,
"norm_label": "_metadata_for_owned_equipment()"
},
{
"label": "_metadata_for_relay_equipment()",
"file_type": "code",
"source_file": "src/exlab_wizard/ui/mount.py",
- "source_location": "L951",
+ "source_location": "L969",
"id": "ui_mount_metadata_for_relay_equipment",
- "community": 176,
+ "community": 151,
"norm_label": "_metadata_for_relay_equipment()"
},
{
"label": "_metadata_for_project()",
"file_type": "code",
"source_file": "src/exlab_wizard/ui/mount.py",
- "source_location": "L965",
+ "source_location": "L983",
"id": "ui_mount_metadata_for_project",
- "community": 226,
+ "community": 210,
"norm_label": "_metadata_for_project()"
},
{
"label": "_count_dir_children()",
"file_type": "code",
"source_file": "src/exlab_wizard/ui/mount.py",
- "source_location": "L999",
+ "source_location": "L1017",
"id": "ui_mount_count_dir_children",
- "community": 226,
+ "community": 210,
"norm_label": "_count_dir_children()"
},
{
"label": "_metadata_for_run()",
"file_type": "code",
"source_file": "src/exlab_wizard/ui/mount.py",
- "source_location": "L1014",
+ "source_location": "L1032",
"id": "ui_mount_metadata_for_run",
- "community": 192,
+ "community": 163,
"norm_label": "_metadata_for_run()"
},
{
"label": "_build_selected_file()",
"file_type": "code",
"source_file": "src/exlab_wizard/ui/mount.py",
- "source_location": "L1053",
+ "source_location": "L1071",
"id": "ui_mount_build_selected_file",
- "community": 192,
+ "community": 163,
"norm_label": "_build_selected_file()"
},
{
"label": "_build_selected_folder()",
"file_type": "code",
"source_file": "src/exlab_wizard/ui/mount.py",
- "source_location": "L1102",
+ "source_location": "L1120",
"id": "ui_mount_build_selected_folder",
- "community": 192,
+ "community": 163,
"norm_label": "_build_selected_folder()"
},
{
"label": "_drive_folder_feed()",
"file_type": "code",
"source_file": "src/exlab_wizard/ui/mount.py",
- "source_location": "L1147",
+ "source_location": "L1165",
"id": "ui_mount_drive_folder_feed",
- "community": 203,
+ "community": 188,
"norm_label": "_drive_folder_feed()"
},
{
"label": "_fetch_folder_async()",
"file_type": "code",
"source_file": "src/exlab_wizard/ui/mount.py",
- "source_location": "L1208",
+ "source_location": "L1226",
"id": "ui_mount_fetch_folder_async",
- "community": 203,
+ "community": 188,
"norm_label": "_fetch_folder_async()"
},
{
"label": "_refresh_selected_folder()",
"file_type": "code",
"source_file": "src/exlab_wizard/ui/mount.py",
- "source_location": "L1232",
+ "source_location": "L1250",
"id": "ui_mount_refresh_selected_folder",
- "community": 68,
+ "community": 55,
"norm_label": "_refresh_selected_folder()"
},
{
"label": "_run_staging_action()",
"file_type": "code",
"source_file": "src/exlab_wizard/ui/mount.py",
- "source_location": "L1272",
+ "source_location": "L1290",
"id": "ui_mount_run_staging_action",
- "community": 68,
+ "community": 55,
"norm_label": "_run_staging_action()"
},
{
- "label": "_bulk_clear_verified()",
+ "label": "_file_context_action()",
"file_type": "code",
"source_file": "src/exlab_wizard/ui/mount.py",
- "source_location": "L1330",
- "id": "ui_mount_bulk_clear_verified",
- "community": 168,
- "norm_label": "_bulk_clear_verified()"
- },
- {
- "label": "_file_context_action()",
- "file_type": "code",
- "source_file": "src/exlab_wizard/ui/mount.py",
- "source_location": "L1368",
+ "source_location": "L1348",
"id": "ui_mount_file_context_action",
- "community": 168,
+ "community": 161,
"norm_label": "_file_context_action()"
},
{
"label": "_toggle_keep_local()",
"file_type": "code",
"source_file": "src/exlab_wizard/ui/mount.py",
- "source_location": "L1408",
+ "source_location": "L1388",
"id": "ui_mount_toggle_keep_local",
- "community": 68,
+ "community": 55,
"norm_label": "_toggle_keep_local()"
},
{
"label": "_open_in_os()",
"file_type": "code",
"source_file": "src/exlab_wizard/ui/mount.py",
- "source_location": "L1457",
+ "source_location": "L1437",
"id": "ui_mount_open_in_os",
- "community": 175,
+ "community": 164,
"norm_label": "_open_in_os()"
},
{
"label": "_build_operation_rows()",
"file_type": "code",
"source_file": "src/exlab_wizard/ui/mount.py",
- "source_location": "L1485",
+ "source_location": "L1465",
"id": "ui_mount_build_operation_rows",
- "community": 57,
+ "community": 28,
"norm_label": "_build_operation_rows()"
},
{
"label": "_open_operations_modal()",
"file_type": "code",
"source_file": "src/exlab_wizard/ui/mount.py",
- "source_location": "L1497",
+ "source_location": "L1477",
"id": "ui_mount_open_operations_modal",
- "community": 57,
+ "community": 28,
"norm_label": "_open_operations_modal()"
},
{
"label": "_open_operation_details()",
"file_type": "code",
"source_file": "src/exlab_wizard/ui/mount.py",
- "source_location": "L1521",
+ "source_location": "L1501",
"id": "ui_mount_open_operation_details",
- "community": 175,
+ "community": 164,
"norm_label": "_open_operation_details()"
},
{
"label": "_resume_operation()",
"file_type": "code",
"source_file": "src/exlab_wizard/ui/mount.py",
- "source_location": "L1555",
+ "source_location": "L1535",
"id": "ui_mount_resume_operation",
- "community": 154,
+ "community": 28,
"norm_label": "_resume_operation()"
},
{
"label": "_open_input_required_dialog()",
"file_type": "code",
"source_file": "src/exlab_wizard/ui/mount.py",
- "source_location": "L1579",
+ "source_location": "L1559",
"id": "ui_mount_open_input_required_dialog",
- "community": 154,
+ "community": 40,
"norm_label": "_open_input_required_dialog()"
},
{
"label": "_cancel_operation()",
"file_type": "code",
"source_file": "src/exlab_wizard/ui/mount.py",
- "source_location": "L1625",
+ "source_location": "L1605",
"id": "ui_mount_cancel_operation",
- "community": 57,
+ "community": 28,
"norm_label": "_cancel_operation()"
},
{
"label": "_cancel_session()",
"file_type": "code",
"source_file": "src/exlab_wizard/ui/mount.py",
- "source_location": "L1634",
+ "source_location": "L1614",
"id": "ui_mount_cancel_session",
- "community": 57,
+ "community": 28,
"norm_label": "_cancel_session()"
},
{
"label": "_open_log_dialog()",
"file_type": "code",
"source_file": "src/exlab_wizard/ui/mount.py",
- "source_location": "L1675",
+ "source_location": "L1655",
"id": "ui_mount_open_log_dialog",
- "community": 68,
+ "community": 55,
"norm_label": "_open_log_dialog()"
},
{
"label": "_missing_setup_sections()",
"file_type": "code",
"source_file": "src/exlab_wizard/ui/mount.py",
- "source_location": "L1723",
+ "source_location": "L1703",
"id": "ui_mount_missing_setup_sections",
- "community": 204,
+ "community": 82,
"norm_label": "_missing_setup_sections()"
},
{
"label": "_templates_dir()",
"file_type": "code",
"source_file": "src/exlab_wizard/ui/mount.py",
- "source_location": "L1756",
+ "source_location": "L1736",
"id": "ui_mount_templates_dir",
- "community": 69,
+ "community": 40,
"norm_label": "_templates_dir()"
},
{
"label": "_template_names()",
"file_type": "code",
"source_file": "src/exlab_wizard/ui/mount.py",
- "source_location": "L1764",
+ "source_location": "L1744",
"id": "ui_mount_template_names",
- "community": 69,
+ "community": 40,
"norm_label": "_template_names()"
},
{
"label": "_template_questions_map()",
"file_type": "code",
"source_file": "src/exlab_wizard/ui/mount.py",
- "source_location": "L1781",
+ "source_location": "L1761",
"id": "ui_mount_template_questions_map",
- "community": 69,
+ "community": 63,
"norm_label": "_template_questions_map()"
},
{
"label": "_lims_catalogue_projects()",
"file_type": "code",
"source_file": "src/exlab_wizard/ui/mount.py",
- "source_location": "L1814",
+ "source_location": "L1794",
"id": "ui_mount_lims_catalogue_projects",
- "community": 119,
+ "community": 162,
"norm_label": "_lims_catalogue_projects()"
},
{
"label": "_lims_projects()",
"file_type": "code",
"source_file": "src/exlab_wizard/ui/mount.py",
- "source_location": "L1848",
+ "source_location": "L1828",
"id": "ui_mount_lims_projects",
- "community": 266,
+ "community": 162,
"norm_label": "_lims_projects()"
},
{
"label": "_equipment_ids()",
"file_type": "code",
"source_file": "src/exlab_wizard/ui/mount.py",
- "source_location": "L1878",
+ "source_location": "L1858",
"id": "ui_mount_equipment_ids",
- "community": 119,
+ "community": 63,
"norm_label": "_equipment_ids()"
},
{
"label": "_await_session()",
"file_type": "code",
"source_file": "src/exlab_wizard/ui/mount.py",
- "source_location": "L1886",
+ "source_location": "L1866",
"id": "ui_mount_await_session",
- "community": 100,
+ "community": 63,
"norm_label": "_await_session()"
},
{
"label": "_consume_session_progress()",
"file_type": "code",
"source_file": "src/exlab_wizard/ui/mount.py",
- "source_location": "L1903",
+ "source_location": "L1883",
"id": "ui_mount_consume_session_progress",
- "community": 194,
+ "community": 40,
"norm_label": "_consume_session_progress()"
},
{
"label": "_close_dialog()",
"file_type": "code",
"source_file": "src/exlab_wizard/ui/mount.py",
- "source_location": "L1948",
+ "source_location": "L1928",
"id": "ui_mount_close_dialog",
- "community": 194,
+ "community": 40,
"norm_label": "_close_dialog()"
},
{
"label": "_submit_project()",
"file_type": "code",
"source_file": "src/exlab_wizard/ui/mount.py",
- "source_location": "L1956",
+ "source_location": "L1936",
"id": "ui_mount_submit_project",
- "community": 119,
+ "community": 63,
"norm_label": "_submit_project()"
},
{
"label": "_submit_run()",
"file_type": "code",
"source_file": "src/exlab_wizard/ui/mount.py",
- "source_location": "L1989",
+ "source_location": "L1969",
"id": "ui_mount_submit_run",
- "community": 69,
+ "community": 99,
"norm_label": "_submit_run()"
},
{
"label": "_run_creation()",
"file_type": "code",
"source_file": "src/exlab_wizard/ui/mount.py",
- "source_location": "L2022",
+ "source_location": "L2002",
"id": "ui_mount_run_creation",
- "community": 100,
+ "community": 99,
"norm_label": "_run_creation()"
},
{
"label": "_render_run_wizard()",
"file_type": "code",
"source_file": "src/exlab_wizard/ui/mount.py",
- "source_location": "L2059",
+ "source_location": "L2039",
"id": "ui_mount_render_run_wizard",
- "community": 69,
+ "community": 63,
"norm_label": "_render_run_wizard()"
},
{
"label": "_safe_audit()",
"file_type": "code",
"source_file": "src/exlab_wizard/ui/mount.py",
- "source_location": "L2073",
+ "source_location": "L2053",
"id": "ui_mount_safe_audit",
- "community": 100,
+ "community": 99,
"norm_label": "_safe_audit()"
},
- {
- "label": "_build_staging_state()",
- "file_type": "code",
- "source_file": "src/exlab_wizard/ui/mount.py",
- "source_location": "L2085",
- "id": "ui_mount_build_staging_state",
- "community": 45,
- "norm_label": "_build_staging_state()"
- },
{
"label": "_show_toast()",
"file_type": "code",
"source_file": "src/exlab_wizard/ui/mount.py",
- "source_location": "L2104",
+ "source_location": "L2065",
"id": "ui_mount_show_toast",
- "community": 193,
+ "community": 77,
"norm_label": "_show_toast()"
},
- {
- "label": "_render_unavailable()",
- "file_type": "code",
- "source_file": "src/exlab_wizard/ui/mount.py",
- "source_location": "L2117",
- "id": "ui_mount_render_unavailable",
- "community": 45,
- "norm_label": "_render_unavailable()"
- },
{
"label": "NiceGUI mount helper. Backend Spec \u00a74.3, \u00a715.3.2. ``mount_ui`` is the single en",
"file_type": "rationale",
"source_file": "src/exlab_wizard/ui/mount.py",
"source_location": "L1",
"id": "ui_mount_rationale_1",
- "community": 45,
+ "community": 77,
"norm_label": "nicegui mount helper. backend spec \u00a74.3, \u00a715.3.2. ``mount_ui`` is the single en"
},
{
"label": "Schedule ``coro`` and keep a strong reference until it finishes.",
"file_type": "rationale",
"source_file": "src/exlab_wizard/ui/mount.py",
- "source_location": "L59",
- "id": "ui_mount_rationale_59",
- "community": 68,
+ "source_location": "L62",
+ "id": "ui_mount_rationale_62",
+ "community": 55,
"norm_label": "schedule ``coro`` and keep a strong reference until it finishes."
},
{
"label": "Register every wizard page on ``app`` and mount NiceGUI at ``/``. ``storage",
"file_type": "rationale",
"source_file": "src/exlab_wizard/ui/mount.py",
- "source_location": "L67",
- "id": "ui_mount_rationale_67",
- "community": 177,
+ "source_location": "L70",
+ "id": "ui_mount_rationale_70",
+ "community": 39,
"norm_label": "register every wizard page on ``app`` and mount nicegui at ``/``. ``storage"
},
{
"label": "Define every ``@ui.page(...)`` handler. Called from :func:`mount_ui`.",
"file_type": "rationale",
"source_file": "src/exlab_wizard/ui/mount.py",
- "source_location": "L95",
- "id": "ui_mount_rationale_95",
- "community": 177,
+ "source_location": "L98",
+ "id": "ui_mount_rationale_98",
+ "community": 39,
"norm_label": "define every ``@ui.page(...)`` handler. called from :func:`mount_ui`."
},
{
"label": "Build the LIMS-password Save / Clear handlers for the settings dialog. Cred",
"file_type": "rationale",
"source_file": "src/exlab_wizard/ui/mount.py",
- "source_location": "L469",
- "id": "ui_mount_rationale_469",
- "community": 45,
+ "source_location": "L472",
+ "id": "ui_mount_rationale_472",
+ "community": 77,
"norm_label": "build the lims-password save / clear handlers for the settings dialog. cred"
},
{
"label": "Run the rclone NAS-remote probe and adapt it for the inline panel. rclone.c",
"file_type": "rationale",
"source_file": "src/exlab_wizard/ui/mount.py",
- "source_location": "L523",
- "id": "ui_mount_rationale_523",
- "community": 237,
+ "source_location": "L526",
+ "id": "ui_mount_rationale_526",
+ "community": 228,
"norm_label": "run the rclone nas-remote probe and adapt it for the inline panel. rclone.c"
},
{
"label": "Write ``updated`` via ``deps.save_config`` and hot-reload components. Retur",
"file_type": "rationale",
"source_file": "src/exlab_wizard/ui/mount.py",
- "source_location": "L579",
- "id": "ui_mount_rationale_579",
- "community": 193,
+ "source_location": "L582",
+ "id": "ui_mount_rationale_582",
+ "community": 77,
"norm_label": "write ``updated`` via ``deps.save_config`` and hot-reload components. retur"
},
{
"label": "Create the staging directory when the operator saved a non-empty path. ``st",
"file_type": "rationale",
"source_file": "src/exlab_wizard/ui/mount.py",
- "source_location": "L611",
- "id": "ui_mount_rationale_611",
- "community": 193,
+ "source_location": "L614",
+ "id": "ui_mount_rationale_614",
+ "community": 77,
"norm_label": "create the staging directory when the operator saved a non-empty path. ``st"
},
{
"label": "Push ``updated`` into the running components (no tray relaunch). Wraps :fun",
"file_type": "rationale",
"source_file": "src/exlab_wizard/ui/mount.py",
- "source_location": "L637",
- "id": "ui_mount_rationale_637",
- "community": 193,
+ "source_location": "L640",
+ "id": "ui_mount_rationale_640",
+ "community": 77,
"norm_label": "push ``updated`` into the running components (no tray relaunch). wraps :fun"
},
{
"label": "True when nas-mode equipment exist but the ``nas:`` remote is unusable. rcl",
"file_type": "rationale",
"source_file": "src/exlab_wizard/ui/mount.py",
- "source_location": "L654",
- "id": "ui_mount_rationale_654",
- "community": 204,
+ "source_location": "L657",
+ "id": "ui_mount_rationale_657",
+ "community": 82,
"norm_label": "true when nas-mode equipment exist but the ``nas:`` remote is unusable. rcl"
},
{
"label": "Return True when the \u00a74.9 setup state is ``READY``. Delegates to :func:`api",
"file_type": "rationale",
"source_file": "src/exlab_wizard/ui/mount.py",
- "source_location": "L678",
- "id": "ui_mount_rationale_678",
- "community": 45,
+ "source_location": "L681",
+ "id": "ui_mount_rationale_681",
+ "community": 52,
"norm_label": "return true when the \u00a74.9 setup state is ``ready``. delegates to :func:`api"
},
{
"label": "Register / unregister platform autostart; return the real post-op state. Re",
"file_type": "rationale",
"source_file": "src/exlab_wizard/ui/mount.py",
- "source_location": "L710",
- "id": "ui_mount_rationale_710",
- "community": 149,
+ "source_location": "L713",
+ "id": "ui_mount_rationale_713",
+ "community": 153,
"norm_label": "register / unregister platform autostart; return the real post-op state. re"
},
{
"label": "Return the (session_id, session) pairs the Operations panel shows. The \u00a79.5",
"file_type": "rationale",
"source_file": "src/exlab_wizard/ui/mount.py",
- "source_location": "L769",
- "id": "ui_mount_rationale_769",
- "community": 45,
+ "source_location": "L787",
+ "id": "ui_mount_rationale_787",
+ "community": 204,
"norm_label": "return the (session_id, session) pairs the operations panel shows. the \u00a79.5"
},
{
"label": "Return ``(panel_count, input_required, active)`` operation counts. ``panel_",
"file_type": "rationale",
"source_file": "src/exlab_wizard/ui/mount.py",
- "source_location": "L786",
- "id": "ui_mount_rationale_786",
- "community": 45,
+ "source_location": "L804",
+ "id": "ui_mount_rationale_804",
+ "community": 204,
"norm_label": "return ``(panel_count, input_required, active)`` operation counts. ``panel_"
},
{
"label": "Return the \u00a74.9.3 next-action string for the banner subline. Unlike :func:`",
"file_type": "rationale",
"source_file": "src/exlab_wizard/ui/mount.py",
- "source_location": "L803",
- "id": "ui_mount_rationale_803",
- "community": 45,
+ "source_location": "L821",
+ "id": "ui_mount_rationale_821",
+ "community": 52,
"norm_label": "return the \u00a74.9.3 next-action string for the banner subline. unlike :func:`"
},
{
"label": "Compose the ``?selected=...&right_pane=...`` query string for /main. Omits",
"file_type": "rationale",
"source_file": "src/exlab_wizard/ui/mount.py",
- "source_location": "L833",
- "id": "ui_mount_rationale_833",
- "community": 302,
+ "source_location": "L851",
+ "id": "ui_mount_rationale_851",
+ "community": 209,
"norm_label": "compose the ``?selected=...&right_pane=...`` query string for /main. omits"
},
{
"label": "Map a selected node id to ``(kind, is_received)``. Mirrors the shape classi",
"file_type": "rationale",
"source_file": "src/exlab_wizard/ui/mount.py",
- "source_location": "L866",
- "id": "ui_mount_rationale_866",
- "community": 303,
+ "source_location": "L884",
+ "id": "ui_mount_rationale_884",
+ "community": 209,
"norm_label": "map a selected node id to ``(kind, is_received)``. mirrors the shape classi"
},
{
"label": "Build the metadata-pane payload for the selected node, by kind. Returns ``{",
"file_type": "rationale",
"source_file": "src/exlab_wizard/ui/mount.py",
- "source_location": "L910",
- "id": "ui_mount_rationale_910",
- "community": 176,
+ "source_location": "L928",
+ "id": "ui_mount_rationale_928",
+ "community": 151,
"norm_label": "build the metadata-pane payload for the selected node, by kind. returns ``{"
},
{
"label": "Project equipment-config fields into the owned-equipment payload.",
"file_type": "rationale",
"source_file": "src/exlab_wizard/ui/mount.py",
- "source_location": "L937",
- "id": "ui_mount_rationale_937",
- "community": 176,
+ "source_location": "L955",
+ "id": "ui_mount_rationale_955",
+ "community": 151,
"norm_label": "project equipment-config fields into the owned-equipment payload."
},
{
"label": "Return the relay-equipment payload (label, source_host).",
"file_type": "rationale",
"source_file": "src/exlab_wizard/ui/mount.py",
- "source_location": "L952",
- "id": "ui_mount_rationale_952",
- "community": 176,
+ "source_location": "L970",
+ "id": "ui_mount_rationale_970",
+ "community": 151,
"norm_label": "return the relay-equipment payload (label, source_host)."
},
{
"label": "Derive a project payload from the on-disk project directory. ``node_id`` is",
"file_type": "rationale",
"source_file": "src/exlab_wizard/ui/mount.py",
- "source_location": "L966",
- "id": "ui_mount_rationale_966",
- "community": 226,
+ "source_location": "L984",
+ "id": "ui_mount_rationale_984",
+ "community": 210,
"norm_label": "derive a project payload from the on-disk project directory. ``node_id`` is"
},
{
"label": "Count immediate child directories of ``parent`` whose names start with ``pre",
"file_type": "rationale",
"source_file": "src/exlab_wizard/ui/mount.py",
- "source_location": "L1000",
- "id": "ui_mount_rationale_1000",
- "community": 192,
+ "source_location": "L1018",
+ "id": "ui_mount_rationale_1018",
+ "community": 210,
"norm_label": "count immediate child directories of ``parent`` whose names start with ``pre"
},
{
"label": "Decode the run's creation.json into the metadata-pane payload. Returns ``{}",
"file_type": "rationale",
"source_file": "src/exlab_wizard/ui/mount.py",
- "source_location": "L1015",
- "id": "ui_mount_rationale_1015",
- "community": 192,
+ "source_location": "L1033",
+ "id": "ui_mount_rationale_1033",
+ "community": 163,
"norm_label": "decode the run's creation.json into the metadata-pane payload. returns ``{}"
},
{
"label": "Resolve a centre-list selection (file or folder) to a render payload. Phase",
"file_type": "rationale",
"source_file": "src/exlab_wizard/ui/mount.py",
- "source_location": "L1058",
- "id": "ui_mount_rationale_1058",
- "community": 192,
+ "source_location": "L1076",
+ "id": "ui_mount_rationale_1076",
+ "community": 163,
"norm_label": "resolve a centre-list selection (file or folder) to a render payload. phase"
},
{
"label": "Aggregate a one-level folder scan into a folder-card payload (OQ-4/B). Phas",
"file_type": "rationale",
"source_file": "src/exlab_wizard/ui/mount.py",
- "source_location": "L1107",
- "id": "ui_mount_rationale_1107",
- "community": 192,
+ "source_location": "L1125",
+ "id": "ui_mount_rationale_1125",
+ "community": 163,
"norm_label": "aggregate a one-level folder scan into a folder-card payload (oq-4/b). phas"
},
{
"label": "Mount / rebind the per-tab FolderFeed and return current entries. Uses ``ap",
"file_type": "rationale",
"source_file": "src/exlab_wizard/ui/mount.py",
- "source_location": "L1148",
- "id": "ui_mount_rationale_1148",
- "community": 203,
+ "source_location": "L1166",
+ "id": "ui_mount_rationale_1166",
+ "community": 188,
"norm_label": "mount / rebind the per-tab folderfeed and return current entries. uses ``ap"
},
{
"label": "FolderFeed fetch hook. Skips when the tree just walked. Runs the synchronou",
"file_type": "rationale",
"source_file": "src/exlab_wizard/ui/mount.py",
- "source_location": "L1209",
- "id": "ui_mount_rationale_1209",
- "community": 203,
+ "source_location": "L1227",
+ "id": "ui_mount_rationale_1227",
+ "community": 188,
"norm_label": "folderfeed fetch hook. skips when the tree just walked. runs the synchronou"
},
{
"label": "Force a fresh single-folder scan and prime the feed payload (OQ-1/A). The F",
"file_type": "rationale",
"source_file": "src/exlab_wizard/ui/mount.py",
- "source_location": "L1233",
- "id": "ui_mount_rationale_1233",
- "community": 68,
+ "source_location": "L1251",
+ "id": "ui_mount_rationale_1251",
+ "community": 55,
"norm_label": "force a fresh single-folder scan and prime the feed payload (oq-1/a). the f"
},
{
"label": "Dispatch a per-run context action to its backend surface. Mirrors :func:`ap",
"file_type": "rationale",
"source_file": "src/exlab_wizard/ui/mount.py",
- "source_location": "L1273",
- "id": "ui_mount_rationale_1273",
- "community": 68,
+ "source_location": "L1291",
+ "id": "ui_mount_rationale_1291",
+ "community": 55,
"norm_label": "dispatch a per-run context action to its backend surface. mirrors :func:`ap"
},
- {
- "label": "Bulk-clear every staged run whose sync job is verified. Wired from the file",
- "file_type": "rationale",
- "source_file": "src/exlab_wizard/ui/mount.py",
- "source_location": "L1331",
- "id": "ui_mount_rationale_1331",
- "community": 168,
- "norm_label": "bulk-clear every staged run whose sync job is verified. wired from the file"
- },
{
"label": "Handle ``Open in OS`` / ``Copy path`` / ``Keep local`` file actions.",
"file_type": "rationale",
"source_file": "src/exlab_wizard/ui/mount.py",
- "source_location": "L1376",
- "id": "ui_mount_rationale_1376",
- "community": 168,
+ "source_location": "L1356",
+ "id": "ui_mount_rationale_1356",
+ "community": 161,
"norm_label": "handle ``open in os`` / ``copy path`` / ``keep local`` file actions."
},
{
"label": "Flip a file's ``keep_local`` flag via the orchestrator's writer. Operator-f",
"file_type": "rationale",
"source_file": "src/exlab_wizard/ui/mount.py",
- "source_location": "L1415",
- "id": "ui_mount_rationale_1415",
- "community": 68,
+ "source_location": "L1395",
+ "id": "ui_mount_rationale_1395",
+ "community": 55,
"norm_label": "flip a file's ``keep_local`` flag via the orchestrator's writer. operator-f"
},
{
"label": "Launch the host OS's default opener for ``path``. Returns False on platform",
"file_type": "rationale",
"source_file": "src/exlab_wizard/ui/mount.py",
- "source_location": "L1458",
- "id": "ui_mount_rationale_1458",
- "community": 175,
+ "source_location": "L1438",
+ "id": "ui_mount_rationale_1438",
+ "community": 164,
"norm_label": "launch the host os's default opener for ``path``. returns false on platform"
},
{
"label": "Build the Operations-panel rows from the live session store (T3). Uses the",
"file_type": "rationale",
"source_file": "src/exlab_wizard/ui/mount.py",
- "source_location": "L1486",
- "id": "ui_mount_rationale_1486",
- "community": 57,
+ "source_location": "L1466",
+ "id": "ui_mount_rationale_1466",
+ "community": 28,
"norm_label": "build the operations-panel rows from the live session store (t3). uses the"
},
{
"label": "Open the in-flight Operations panel (Frontend \u00a79.5). Builds a fresh snapsho",
"file_type": "rationale",
"source_file": "src/exlab_wizard/ui/mount.py",
- "source_location": "L1498",
- "id": "ui_mount_rationale_1498",
- "community": 154,
+ "source_location": "L1478",
+ "id": "ui_mount_rationale_1478",
+ "community": 28,
"norm_label": "open the in-flight operations panel (frontend \u00a79.5). builds a fresh snapsho"
},
{
"label": "Show a lightweight details/\"log\" dialog for one in-flight operation. The \u00a79",
"file_type": "rationale",
"source_file": "src/exlab_wizard/ui/mount.py",
- "source_location": "L1522",
- "id": "ui_mount_rationale_1522",
- "community": 175,
+ "source_location": "L1502",
+ "id": "ui_mount_rationale_1502",
+ "community": 164,
"norm_label": "show a lightweight details/\"log\" dialog for one in-flight operation. the \u00a79"
},
{
"label": "Resume a suspended session by re-opening its \u00a79.1 input dialog (T5). Reads",
"file_type": "rationale",
"source_file": "src/exlab_wizard/ui/mount.py",
- "source_location": "L1556",
- "id": "ui_mount_rationale_1556",
- "community": 154,
+ "source_location": "L1536",
+ "id": "ui_mount_rationale_1536",
+ "community": 28,
"norm_label": "resume a suspended session by re-opening its \u00a79.1 input dialog (t5). reads"
},
{
"label": "Open the \u00a79.1 escalation dialog; Submit resumes, Cancel confirms (T5). Subm",
"file_type": "rationale",
"source_file": "src/exlab_wizard/ui/mount.py",
- "source_location": "L1588",
- "id": "ui_mount_rationale_1588",
- "community": 154,
+ "source_location": "L1568",
+ "id": "ui_mount_rationale_1568",
+ "community": 40,
"norm_label": "open the \u00a79.1 escalation dialog; submit resumes, cancel confirms (t5). subm"
},
{
"label": "Resolve the controller off ``deps`` and open the \u00a79.4 cancel dialog.",
"file_type": "rationale",
"source_file": "src/exlab_wizard/ui/mount.py",
- "source_location": "L1626",
- "id": "ui_mount_rationale_1626",
- "community": 57,
+ "source_location": "L1606",
+ "id": "ui_mount_rationale_1606",
+ "community": 28,
"norm_label": "resolve the controller off ``deps`` and open the \u00a79.4 cancel dialog."
},
{
"label": "Cancel an in-flight session via the \u00a79.4 Discard / Keep dialog (T4). The op",
"file_type": "rationale",
"source_file": "src/exlab_wizard/ui/mount.py",
- "source_location": "L1635",
- "id": "ui_mount_rationale_1635",
- "community": 57,
+ "source_location": "L1615",
+ "id": "ui_mount_rationale_1615",
+ "community": 28,
"norm_label": "cancel an in-flight session via the \u00a79.4 discard / keep dialog (t4). the op"
},
{
"label": "Open a NiceGUI dialog showing the run's sync-queue job state. The operator-",
"file_type": "rationale",
"source_file": "src/exlab_wizard/ui/mount.py",
- "source_location": "L1676",
- "id": "ui_mount_rationale_1676",
- "community": 68,
+ "source_location": "L1656",
+ "id": "ui_mount_rationale_1656",
+ "community": 55,
"norm_label": "open a nicegui dialog showing the run's sync-queue job state. the operator-"
},
{
"label": "Return the settings sections the operator still needs to fill in. Mirrors a",
"file_type": "rationale",
"source_file": "src/exlab_wizard/ui/mount.py",
- "source_location": "L1724",
- "id": "ui_mount_rationale_1724",
- "community": 204,
+ "source_location": "L1704",
+ "id": "ui_mount_rationale_1704",
+ "community": 82,
"norm_label": "return the settings sections the operator still needs to fill in. mirrors a"
},
{
"label": "Return the configured templates directory, or ``None``.",
"file_type": "rationale",
"source_file": "src/exlab_wizard/ui/mount.py",
- "source_location": "L1757",
- "id": "ui_mount_rationale_1757",
- "community": 69,
+ "source_location": "L1737",
+ "id": "ui_mount_rationale_1737",
+ "community": 40,
"norm_label": "return the configured templates directory, or ``none``."
},
{
"label": "List template directory names of ``template_type`` under templates_dir.",
"file_type": "rationale",
"source_file": "src/exlab_wizard/ui/mount.py",
- "source_location": "L1765",
- "id": "ui_mount_rationale_1765",
- "community": 69,
+ "source_location": "L1745",
+ "id": "ui_mount_rationale_1745",
+ "community": 40,
"norm_label": "list template directory names of ``template_type`` under templates_dir."
},
{
"label": "Map each ``template_type`` template name to its parsed copier questions. Re",
"file_type": "rationale",
"source_file": "src/exlab_wizard/ui/mount.py",
- "source_location": "L1782",
- "id": "ui_mount_rationale_1782",
- "community": 69,
+ "source_location": "L1762",
+ "id": "ui_mount_rationale_1762",
+ "community": 63,
"norm_label": "map each ``template_type`` template name to its parsed copier questions. re"
},
{
"label": "Read the offline-catalogue projects (disconnected-workstation source). Read",
"file_type": "rationale",
"source_file": "src/exlab_wizard/ui/mount.py",
- "source_location": "L1815",
- "id": "ui_mount_rationale_1815",
- "community": 119,
+ "source_location": "L1795",
+ "id": "ui_mount_rationale_1795",
+ "community": 162,
"norm_label": "read the offline-catalogue projects (disconnected-workstation source). read"
},
{
"label": "Return the LIMS projects backing the project wizard's picker. Tries the liv",
"file_type": "rationale",
"source_file": "src/exlab_wizard/ui/mount.py",
- "source_location": "L1849",
- "id": "ui_mount_rationale_1849",
- "community": 266,
+ "source_location": "L1829",
+ "id": "ui_mount_rationale_1829",
+ "community": 162,
"norm_label": "return the lims projects backing the project wizard's picker. tries the liv"
},
{
"label": "Return the configured equipment IDs.",
"file_type": "rationale",
"source_file": "src/exlab_wizard/ui/mount.py",
- "source_location": "L1879",
- "id": "ui_mount_rationale_1879",
- "community": 119,
+ "source_location": "L1859",
+ "id": "ui_mount_rationale_1859",
+ "community": 40,
"norm_label": "return the configured equipment ids."
},
{
"label": "Await a controller session's pipeline task and return the final handle. ``c",
"file_type": "rationale",
"source_file": "src/exlab_wizard/ui/mount.py",
- "source_location": "L1887",
- "id": "ui_mount_rationale_1887",
- "community": 100,
+ "source_location": "L1867",
+ "id": "ui_mount_rationale_1867",
+ "community": 63,
"norm_label": "await a controller session's pipeline task and return the final handle. ``c"
},
{
"label": "Fold the controller's WS frames into the wizard's live phase bar (T2) and su",
"file_type": "rationale",
"source_file": "src/exlab_wizard/ui/mount.py",
- "source_location": "L1906",
- "id": "ui_mount_rationale_1906",
- "community": 194,
+ "source_location": "L1886",
+ "id": "ui_mount_rationale_1886",
+ "community": 40,
"norm_label": "fold the controller's ws frames into the wizard's live phase bar (t2) and su"
},
{
"label": "Best-effort close of a NiceGUI dialog (no-op when ``None`` / test mode).",
"file_type": "rationale",
"source_file": "src/exlab_wizard/ui/mount.py",
- "source_location": "L1949",
- "id": "ui_mount_rationale_1949",
- "community": 194,
+ "source_location": "L1929",
+ "id": "ui_mount_rationale_1929",
+ "community": 40,
"norm_label": "best-effort close of a nicegui dialog (no-op when ``none`` / test mode)."
},
{
"label": "Build a ProjectCreateRequest from the wizard state and run it.",
"file_type": "rationale",
"source_file": "src/exlab_wizard/ui/mount.py",
- "source_location": "L1957",
- "id": "ui_mount_rationale_1957",
- "community": 119,
+ "source_location": "L1937",
+ "id": "ui_mount_rationale_1937",
+ "community": 63,
"norm_label": "build a projectcreaterequest from the wizard state and run it."
},
{
"label": "Build a RunCreateRequest from the wizard state and run it.",
"file_type": "rationale",
"source_file": "src/exlab_wizard/ui/mount.py",
- "source_location": "L1990",
- "id": "ui_mount_rationale_1990",
- "community": 69,
+ "source_location": "L1970",
+ "id": "ui_mount_rationale_1970",
+ "community": 99,
"norm_label": "build a runcreaterequest from the wizard state and run it."
},
{
"label": "Drive a create_* call to completion and toast the outcome. When ``wizard_st",
"file_type": "rationale",
"source_file": "src/exlab_wizard/ui/mount.py",
- "source_location": "L2031",
- "id": "ui_mount_rationale_2031",
- "community": 100,
+ "source_location": "L2011",
+ "id": "ui_mount_rationale_2011",
+ "community": 99,
"norm_label": "drive a create_* call to completion and toast the outcome. when ``wizard_st"
},
{
"label": "Run the validator audit, swallowing failures to a WARN log.",
"file_type": "rationale",
"source_file": "src/exlab_wizard/ui/mount.py",
- "source_location": "L2074",
- "id": "ui_mount_rationale_2074",
- "community": 100,
+ "source_location": "L2054",
+ "id": "ui_mount_rationale_2054",
+ "community": 99,
"norm_label": "run the validator audit, swallowing failures to a warn log."
},
{
@@ -40977,7 +42138,7 @@
"source_file": "src/exlab_wizard/ui/keyboard.py",
"source_location": "L1",
"id": "src_exlab_wizard_ui_keyboard_py",
- "community": 236,
+ "community": 240,
"norm_label": "keyboard.py"
},
{
@@ -40986,7 +42147,7 @@
"source_file": "src/exlab_wizard/ui/keyboard.py",
"source_location": "L24",
"id": "ui_keyboard_shortcut",
- "community": 236,
+ "community": 240,
"norm_label": "shortcut"
},
{
@@ -40995,7 +42156,7 @@
"source_file": "src/exlab_wizard/ui/keyboard.py",
"source_location": "L39",
"id": "ui_keyboard_keycombo",
- "community": 155,
+ "community": 165,
"norm_label": "keycombo"
},
{
@@ -41004,7 +42165,7 @@
"source_file": "src/exlab_wizard/ui/keyboard.py",
"source_location": "L48",
"id": "ui_keyboard_keycombo_matches",
- "community": 236,
+ "community": 240,
"norm_label": ".matches()"
},
{
@@ -41013,7 +42174,7 @@
"source_file": "src/exlab_wizard/ui/keyboard.py",
"source_location": "L61",
"id": "ui_keyboard_shortcutbinding",
- "community": 236,
+ "community": 240,
"norm_label": "shortcutbinding"
},
{
@@ -41022,7 +42183,7 @@
"source_file": "src/exlab_wizard/ui/keyboard.py",
"source_location": "L130",
"id": "ui_keyboard_shortcutregistry",
- "community": 253,
+ "community": 257,
"norm_label": "shortcutregistry"
},
{
@@ -41031,7 +42192,7 @@
"source_file": "src/exlab_wizard/ui/keyboard.py",
"source_location": "L140",
"id": "ui_keyboard_shortcutregistry_register",
- "community": 253,
+ "community": 257,
"norm_label": ".register()"
},
{
@@ -41040,7 +42201,7 @@
"source_file": "src/exlab_wizard/ui/keyboard.py",
"source_location": "L154",
"id": "ui_keyboard_shortcutregistry_dispatch",
- "community": 253,
+ "community": 257,
"norm_label": ".dispatch()"
},
{
@@ -41049,7 +42210,7 @@
"source_file": "src/exlab_wizard/ui/keyboard.py",
"source_location": "L175",
"id": "ui_keyboard_list_bindings",
- "community": 355,
+ "community": 356,
"norm_label": "list_bindings()"
},
{
@@ -41058,7 +42219,7 @@
"source_file": "src/exlab_wizard/ui/keyboard.py",
"source_location": "L181",
"id": "ui_keyboard_get_binding",
- "community": 155,
+ "community": 165,
"norm_label": "get_binding()"
},
{
@@ -41067,7 +42228,7 @@
"source_file": "src/exlab_wizard/ui/keyboard.py",
"source_location": "L194",
"id": "ui_keyboard_is_macos",
- "community": 236,
+ "community": 240,
"norm_label": "is_macos()"
},
{
@@ -41076,7 +42237,7 @@
"source_file": "src/exlab_wizard/ui/keyboard.py",
"source_location": "L200",
"id": "ui_keyboard_combo_for_current_os",
- "community": 354,
+ "community": 357,
"norm_label": "combo_for_current_os()"
},
{
@@ -41085,7 +42246,7 @@
"source_file": "src/exlab_wizard/ui/keyboard.py",
"source_location": "L207",
"id": "ui_keyboard_resolve",
- "community": 236,
+ "community": 240,
"norm_label": "resolve()"
},
{
@@ -41094,7 +42255,7 @@
"source_file": "src/exlab_wizard/ui/keyboard.py",
"source_location": "L224",
"id": "ui_keyboard_bind_global_shortcuts",
- "community": 236,
+ "community": 240,
"norm_label": "bind_global_shortcuts()"
},
{
@@ -41103,7 +42264,7 @@
"source_file": "src/exlab_wizard/ui/keyboard.py",
"source_location": "L1",
"id": "ui_keyboard_rationale_1",
- "community": 236,
+ "community": 240,
"norm_label": "keyboard-shortcut registry (frontend spec \u00a73.7). the bindings are intentionally"
},
{
@@ -41112,7 +42273,7 @@
"source_file": "src/exlab_wizard/ui/keyboard.py",
"source_location": "L25",
"id": "ui_keyboard_rationale_25",
- "community": 236,
+ "community": 240,
"norm_label": "identifiers for the app-level shortcut set (frontend \u00a73.7)."
},
{
@@ -41121,7 +42282,7 @@
"source_file": "src/exlab_wizard/ui/keyboard.py",
"source_location": "L40",
"id": "ui_keyboard_rationale_40",
- "community": 155,
+ "community": 165,
"norm_label": "a modifier-and-key combination."
},
{
@@ -41130,7 +42291,7 @@
"source_file": "src/exlab_wizard/ui/keyboard.py",
"source_location": "L49",
"id": "ui_keyboard_rationale_49",
- "community": 236,
+ "community": 240,
"norm_label": "return true if a nicegui ``keyeventarguments`` matches this combo."
},
{
@@ -41139,7 +42300,7 @@
"source_file": "src/exlab_wizard/ui/keyboard.py",
"source_location": "L62",
"id": "ui_keyboard_rationale_62",
- "community": 236,
+ "community": 240,
"norm_label": "one row in the \u00a73.7 shortcut table."
},
{
@@ -41148,7 +42309,7 @@
"source_file": "src/exlab_wizard/ui/keyboard.py",
"source_location": "L131",
"id": "ui_keyboard_rationale_131",
- "community": 253,
+ "community": 257,
"norm_label": "a populated registry of shortcut handlers. pages instantiate one registry,"
},
{
@@ -41157,7 +42318,7 @@
"source_file": "src/exlab_wizard/ui/keyboard.py",
"source_location": "L141",
"id": "ui_keyboard_rationale_141",
- "community": 253,
+ "community": 257,
"norm_label": "attach a handler. only one handler per shortcut. raises: va"
},
{
@@ -41166,7 +42327,7 @@
"source_file": "src/exlab_wizard/ui/keyboard.py",
"source_location": "L155",
"id": "ui_keyboard_rationale_155",
- "community": 253,
+ "community": 257,
"norm_label": "invoke the handler for ``shortcut`` if registered. returns ``true`` if"
},
{
@@ -41175,7 +42336,7 @@
"source_file": "src/exlab_wizard/ui/keyboard.py",
"source_location": "L176",
"id": "ui_keyboard_rationale_176",
- "community": 355,
+ "community": 356,
"norm_label": "return the canonical bindings table (frontend \u00a73.7)."
},
{
@@ -41184,7 +42345,7 @@
"source_file": "src/exlab_wizard/ui/keyboard.py",
"source_location": "L182",
"id": "ui_keyboard_rationale_182",
- "community": 155,
+ "community": 165,
"norm_label": "return the :class:`shortcutbinding` for the given shortcut id. raises:"
},
{
@@ -41193,7 +42354,7 @@
"source_file": "src/exlab_wizard/ui/keyboard.py",
"source_location": "L195",
"id": "ui_keyboard_rationale_195",
- "community": 236,
+ "community": 240,
"norm_label": "return ``true`` when running on macos (used for combo selection)."
},
{
@@ -41202,7 +42363,7 @@
"source_file": "src/exlab_wizard/ui/keyboard.py",
"source_location": "L201",
"id": "ui_keyboard_rationale_201",
- "community": 354,
+ "community": 357,
"norm_label": "resolve the :class:`keycombo` for the current os."
},
{
@@ -41211,7 +42372,7 @@
"source_file": "src/exlab_wizard/ui/keyboard.py",
"source_location": "L215",
"id": "ui_keyboard_rationale_215",
- "community": 236,
+ "community": 240,
"norm_label": "find the shortcut id matching the given key event, if any."
},
{
@@ -41220,7 +42381,7 @@
"source_file": "src/exlab_wizard/ui/keyboard.py",
"source_location": "L225",
"id": "ui_keyboard_rationale_225",
- "community": 236,
+ "community": 240,
"norm_label": "install a nicegui keyboard listener for the registry. nicegui is imported l"
},
{
@@ -41229,14 +42390,14 @@
"source_file": "src/exlab_wizard/ui/components/file_list.py",
"source_location": "L1",
"id": "src_exlab_wizard_ui_components_file_list_py",
- "community": 195,
+ "community": 202,
"norm_label": "file_list.py"
},
{
"label": "FileListEntry",
"file_type": "code",
"source_file": "src/exlab_wizard/ui/components/file_list.py",
- "source_location": "L38",
+ "source_location": "L39",
"id": "components_file_list_filelistentry",
"community": 0,
"norm_label": "filelistentry"
@@ -41245,63 +42406,63 @@
"label": "FileListState",
"file_type": "code",
"source_file": "src/exlab_wizard/ui/components/file_list.py",
- "source_location": "L58",
+ "source_location": "L59",
"id": "components_file_list_fileliststate",
- "community": 211,
+ "community": 147,
"norm_label": "fileliststate"
},
{
"label": "FileListDiff",
"file_type": "code",
"source_file": "src/exlab_wizard/ui/components/file_list.py",
- "source_location": "L71",
+ "source_location": "L72",
"id": "components_file_list_filelistdiff",
- "community": 195,
+ "community": 201,
"norm_label": "filelistdiff"
},
{
"label": "diff_file_lists()",
"file_type": "code",
"source_file": "src/exlab_wizard/ui/components/file_list.py",
- "source_location": "L79",
+ "source_location": "L80",
"id": "components_file_list_diff_file_lists",
- "community": 169,
+ "community": 201,
"norm_label": "diff_file_lists()"
},
{
"label": "row_background()",
"file_type": "code",
"source_file": "src/exlab_wizard/ui/components/file_list.py",
- "source_location": "L115",
+ "source_location": "L116",
"id": "components_file_list_row_background",
- "community": 169,
+ "community": 139,
"norm_label": "row_background()"
},
{
"label": "render_file_list()",
"file_type": "code",
"source_file": "src/exlab_wizard/ui/components/file_list.py",
- "source_location": "L172",
+ "source_location": "L173",
"id": "components_file_list_render_file_list",
- "community": 195,
+ "community": 202,
"norm_label": "render_file_list()"
},
{
"label": "_render_header()",
"file_type": "code",
"source_file": "src/exlab_wizard/ui/components/file_list.py",
- "source_location": "L220",
+ "source_location": "L223",
"id": "components_file_list_render_header",
- "community": 195,
+ "community": 202,
"norm_label": "_render_header()"
},
{
"label": "_render_row()",
"file_type": "code",
"source_file": "src/exlab_wizard/ui/components/file_list.py",
- "source_location": "L245",
+ "source_location": "L248",
"id": "components_file_list_render_row",
- "community": 195,
+ "community": 202,
"norm_label": "_render_row()"
},
{
@@ -41310,15 +42471,15 @@
"source_file": "src/exlab_wizard/ui/components/file_list.py",
"source_location": "L1",
"id": "components_file_list_rationale_1",
- "community": 195,
+ "community": 202,
"norm_label": "live file-list component for the rebuilt main window. gui/orchestrator redesign"
},
{
"label": "One row in the centre-pane file list. ``keep_local`` mirrors the file's ``s",
"file_type": "rationale",
"source_file": "src/exlab_wizard/ui/components/file_list.py",
- "source_location": "L39",
- "id": "components_file_list_rationale_39",
+ "source_location": "L40",
+ "id": "components_file_list_rationale_40",
"community": 0,
"norm_label": "one row in the centre-pane file list. ``keep_local`` mirrors the file's ``s"
},
@@ -41326,54 +42487,54 @@
"label": "Mutable state for the file list, consumed by the renderer.",
"file_type": "rationale",
"source_file": "src/exlab_wizard/ui/components/file_list.py",
- "source_location": "L59",
- "id": "components_file_list_rationale_59",
- "community": 211,
+ "source_location": "L60",
+ "id": "components_file_list_rationale_60",
+ "community": 147,
"norm_label": "mutable state for the file list, consumed by the renderer."
},
{
"label": "Result of comparing two successive folder-list snapshots.",
"file_type": "rationale",
"source_file": "src/exlab_wizard/ui/components/file_list.py",
- "source_location": "L72",
- "id": "components_file_list_rationale_72",
- "community": 195,
+ "source_location": "L73",
+ "id": "components_file_list_rationale_73",
+ "community": 201,
"norm_label": "result of comparing two successive folder-list snapshots."
},
{
"label": "Return additions / removals / modifications between two snapshots. Pure fun",
"file_type": "rationale",
"source_file": "src/exlab_wizard/ui/components/file_list.py",
- "source_location": "L83",
- "id": "components_file_list_rationale_83",
- "community": 169,
+ "source_location": "L84",
+ "id": "components_file_list_rationale_84",
+ "community": 201,
"norm_label": "return additions / removals / modifications between two snapshots. pure fun"
},
{
"label": "Return the CSS background + decoration fragment for one file-list row. Pure",
"file_type": "rationale",
"source_file": "src/exlab_wizard/ui/components/file_list.py",
- "source_location": "L122",
- "id": "components_file_list_rationale_122",
- "community": 169,
+ "source_location": "L123",
+ "id": "components_file_list_rationale_123",
+ "community": 139,
"norm_label": "return the css background + decoration fragment for one file-list row. pure"
},
{
"label": "Render the centre-pane file list. Pure render function. Double-clicking a f",
"file_type": "rationale",
"source_file": "src/exlab_wizard/ui/components/file_list.py",
- "source_location": "L179",
- "id": "components_file_list_rationale_179",
- "community": 195,
+ "source_location": "L180",
+ "id": "components_file_list_rationale_180",
+ "community": 202,
"norm_label": "render the centre-pane file list. pure render function. double-clicking a f"
},
{
"label": "Render the file-list column header row (Name / Size / Modified / Status).",
"file_type": "rationale",
"source_file": "src/exlab_wizard/ui/components/file_list.py",
- "source_location": "L221",
- "id": "components_file_list_rationale_221",
- "community": 195,
+ "source_location": "L224",
+ "id": "components_file_list_rationale_224",
+ "community": 202,
"norm_label": "render the file-list column header row (name / size / modified / status)."
},
{
@@ -41382,7 +42543,7 @@
"source_file": "src/exlab_wizard/ui/components/test_connection_panel.py",
"source_location": "L1",
"id": "src_exlab_wizard_ui_components_test_connection_panel_py",
- "community": 237,
+ "community": 228,
"norm_label": "test_connection_panel.py"
},
{
@@ -41391,7 +42552,7 @@
"source_file": "src/exlab_wizard/ui/components/test_connection_panel.py",
"source_location": "L29",
"id": "components_test_connection_panel_testconnectionresult",
- "community": 237,
+ "community": 228,
"norm_label": "testconnectionresult"
},
{
@@ -41400,7 +42561,7 @@
"source_file": "src/exlab_wizard/ui/components/test_connection_panel.py",
"source_location": "L38",
"id": "components_test_connection_panel_panel_props",
- "community": 237,
+ "community": 228,
"norm_label": "panel_props()"
},
{
@@ -41409,7 +42570,7 @@
"source_file": "src/exlab_wizard/ui/components/test_connection_panel.py",
"source_location": "L69",
"id": "components_test_connection_panel_test_connection_panel",
- "community": 237,
+ "community": 228,
"norm_label": "test_connection_panel()"
},
{
@@ -41418,7 +42579,7 @@
"source_file": "src/exlab_wizard/ui/components/test_connection_panel.py",
"source_location": "L1",
"id": "components_test_connection_panel_rationale_1",
- "community": 237,
+ "community": 228,
"norm_label": "test-connection result panel (frontend spec \u00a77.4.2). a persistent inline panel"
},
{
@@ -41427,7 +42588,7 @@
"source_file": "src/exlab_wizard/ui/components/test_connection_panel.py",
"source_location": "L30",
"id": "components_test_connection_panel_rationale_30",
- "community": 237,
+ "community": 228,
"norm_label": "one result rendered in the panel."
},
{
@@ -41436,7 +42597,7 @@
"source_file": "src/exlab_wizard/ui/components/test_connection_panel.py",
"source_location": "L39",
"id": "components_test_connection_panel_rationale_39",
- "community": 237,
+ "community": 228,
"norm_label": "compute the rendered props for the panel. returns a dict suitable for asser"
},
{
@@ -41445,7 +42606,7 @@
"source_file": "src/exlab_wizard/ui/components/test_connection_panel.py",
"source_location": "L74",
"id": "components_test_connection_panel_rationale_74",
- "community": 237,
+ "community": 228,
"norm_label": "build the inline result panel. returns a nicegui element, or the props dict"
},
{
@@ -41454,7 +42615,7 @@
"source_file": "src/exlab_wizard/ui/components/override_badge.py",
"source_location": "L1",
"id": "src_exlab_wizard_ui_components_override_badge_py",
- "community": 356,
+ "community": 358,
"norm_label": "override_badge.py"
},
{
@@ -41463,7 +42624,7 @@
"source_file": "src/exlab_wizard/ui/components/override_badge.py",
"source_location": "L20",
"id": "components_override_badge_override_badge_props",
- "community": 356,
+ "community": 358,
"norm_label": "override_badge_props()"
},
{
@@ -41472,7 +42633,7 @@
"source_file": "src/exlab_wizard/ui/components/override_badge.py",
"source_location": "L38",
"id": "components_override_badge_override_badge",
- "community": 356,
+ "community": 358,
"norm_label": "override_badge()"
},
{
@@ -41481,7 +42642,7 @@
"source_file": "src/exlab_wizard/ui/components/override_badge.py",
"source_location": "L1",
"id": "components_override_badge_rationale_1",
- "community": 356,
+ "community": 358,
"norm_label": "override pill (frontend spec \u00a73.6.1, \u00a711). a pill that appears next to a run's"
},
{
@@ -41490,7 +42651,7 @@
"source_file": "src/exlab_wizard/ui/components/override_badge.py",
"source_location": "L21",
"id": "components_override_badge_rationale_21",
- "community": 356,
+ "community": 358,
"norm_label": "compute styling props for the override pill."
},
{
@@ -41499,7 +42660,7 @@
"source_file": "src/exlab_wizard/ui/components/override_badge.py",
"source_location": "L39",
"id": "components_override_badge_rationale_39",
- "community": 356,
+ "community": 358,
"norm_label": "build a clickable badge for the override state. clicking opens the \u00a711.5 ov"
},
{
@@ -41508,7 +42669,7 @@
"source_file": "src/exlab_wizard/ui/components/tree.py",
"source_location": "L1",
"id": "src_exlab_wizard_ui_components_tree_py",
- "community": 83,
+ "community": 79,
"norm_label": "tree.py"
},
{
@@ -41517,7 +42678,7 @@
"source_file": "src/exlab_wizard/ui/components/tree.py",
"source_location": "L71",
"id": "components_tree_treefilters",
- "community": 83,
+ "community": 79,
"norm_label": "treefilters"
},
{
@@ -41526,7 +42687,7 @@
"source_file": "src/exlab_wizard/ui/components/tree.py",
"source_location": "L81",
"id": "components_tree_equipmentnode",
- "community": 83,
+ "community": 79,
"norm_label": "equipmentnode"
},
{
@@ -41535,7 +42696,7 @@
"source_file": "src/exlab_wizard/ui/components/tree.py",
"source_location": "L90",
"id": "components_tree_projectnode",
- "community": 83,
+ "community": 79,
"norm_label": "projectnode"
},
{
@@ -41544,7 +42705,7 @@
"source_file": "src/exlab_wizard/ui/components/tree.py",
"source_location": "L97",
"id": "components_tree_runnode",
- "community": 83,
+ "community": 79,
"norm_label": "runnode"
},
{
@@ -41553,7 +42714,7 @@
"source_file": "src/exlab_wizard/ui/components/tree.py",
"source_location": "L105",
"id": "components_tree_treenode",
- "community": 83,
+ "community": 79,
"norm_label": "treenode"
},
{
@@ -41562,7 +42723,7 @@
"source_file": "src/exlab_wizard/ui/components/tree.py",
"source_location": "L117",
"id": "components_tree_matches_search",
- "community": 83,
+ "community": 79,
"norm_label": "_matches_search()"
},
{
@@ -41571,7 +42732,7 @@
"source_file": "src/exlab_wizard/ui/components/tree.py",
"source_location": "L125",
"id": "components_tree_filter_project",
- "community": 83,
+ "community": 79,
"norm_label": "filter_project()"
},
{
@@ -41580,7 +42741,7 @@
"source_file": "src/exlab_wizard/ui/components/tree.py",
"source_location": "L139",
"id": "components_tree_filter_run",
- "community": 83,
+ "community": 79,
"norm_label": "filter_run()"
},
{
@@ -41589,7 +42750,7 @@
"source_file": "src/exlab_wizard/ui/components/tree.py",
"source_location": "L148",
"id": "components_tree_build_nodes",
- "community": 83,
+ "community": 79,
"norm_label": "build_nodes()"
},
{
@@ -41598,7 +42759,7 @@
"source_file": "src/exlab_wizard/ui/components/tree.py",
"source_location": "L235",
"id": "components_tree_sync_icon_url",
- "community": 83,
+ "community": 79,
"norm_label": "_sync_icon_url()"
},
{
@@ -41607,34 +42768,34 @@
"source_file": "src/exlab_wizard/ui/components/tree.py",
"source_location": "L251",
"id": "components_tree_to_nicegui_nodes",
- "community": 83,
+ "community": 79,
"norm_label": "to_nicegui_nodes()"
},
{
"label": "_ctx_emit()",
"file_type": "code",
"source_file": "src/exlab_wizard/ui/components/tree.py",
- "source_location": "L297",
+ "source_location": "L305",
"id": "components_tree_ctx_emit",
- "community": 83,
+ "community": 79,
"norm_label": "_ctx_emit()"
},
{
"label": "_tree_header_slot()",
"file_type": "code",
"source_file": "src/exlab_wizard/ui/components/tree.py",
- "source_location": "L312",
+ "source_location": "L320",
"id": "components_tree_tree_header_slot",
- "community": 83,
+ "community": 79,
"norm_label": "_tree_header_slot()"
},
{
"label": "build_tree()",
"file_type": "code",
"source_file": "src/exlab_wizard/ui/components/tree.py",
- "source_location": "L363",
+ "source_location": "L372",
"id": "components_tree_build_tree",
- "community": 83,
+ "community": 79,
"norm_label": "build_tree()"
},
{
@@ -41643,7 +42804,7 @@
"source_file": "src/exlab_wizard/ui/components/tree.py",
"source_location": "L1",
"id": "components_tree_rationale_1",
- "community": 83,
+ "community": 79,
"norm_label": "project / equipment tree (frontend spec \u00a73.5). renders the ``/``; returns none on 404. ``uid_or_short_id``"
},
{
@@ -45585,7 +46890,7 @@
"source_file": "src/exlab_wizard/lims/client.py",
"source_location": "L140",
"id": "lims_client_rationale_140",
- "community": 84,
+ "community": 98,
"norm_label": "``get /api/v1/me``; returns the current operator's row."
},
{
@@ -45594,7 +46899,7 @@
"source_file": "src/exlab_wizard/lims/client.py",
"source_location": "L145",
"id": "lims_client_rationale_145",
- "community": 84,
+ "community": 98,
"norm_label": "return a ``healthstatus`` snapshot. backend spec \u00a77.2.3. calls ``get /a"
},
{
@@ -45603,7 +46908,7 @@
"source_file": "src/exlab_wizard/lims/client.py",
"source_location": "L168",
"id": "lims_client_rationale_168",
- "community": 84,
+ "community": 98,
"norm_label": "close the underlying ``httpx.asyncclient``. idempotent."
},
{
@@ -45612,7 +46917,7 @@
"source_file": "src/exlab_wizard/lims/client.py",
"source_location": "L181",
"id": "lims_client_rationale_181",
- "community": 84,
+ "community": 98,
"norm_label": "issue one request; on 401 retry once after a fresh ``login``."
},
{
@@ -45621,7 +46926,7 @@
"source_file": "src/exlab_wizard/lims/client.py",
"source_location": "L191",
"id": "lims_client_rationale_191",
- "community": 602,
+ "community": 627,
"norm_label": "decode one ``/projects`` row into limsproject. adds a fresh utc ``fetch"
},
{
@@ -45630,7 +46935,7 @@
"source_file": "src/exlab_wizard/lims/cache.py",
"source_location": "L1",
"id": "src_exlab_wizard_lims_cache_py",
- "community": 257,
+ "community": 254,
"norm_label": "cache.py"
},
{
@@ -45639,7 +46944,7 @@
"source_file": "src/exlab_wizard/lims/cache.py",
"source_location": "L102",
"id": "lims_cache_limscache",
- "community": 122,
+ "community": 128,
"norm_label": "limscache"
},
{
@@ -45648,7 +46953,7 @@
"source_file": "src/exlab_wizard/lims/cache.py",
"source_location": "L110",
"id": "lims_cache_limscache_init",
- "community": 122,
+ "community": 128,
"norm_label": ".__init__()"
},
{
@@ -45657,7 +46962,7 @@
"source_file": "src/exlab_wizard/lims/cache.py",
"source_location": "L123",
"id": "lims_cache_limscache_close",
- "community": 122,
+ "community": 128,
"norm_label": ".close()"
},
{
@@ -45666,7 +46971,7 @@
"source_file": "src/exlab_wizard/lims/cache.py",
"source_location": "L129",
"id": "lims_cache_limscache_upsert_many",
- "community": 257,
+ "community": 254,
"norm_label": ".upsert_many()"
},
{
@@ -45675,7 +46980,7 @@
"source_file": "src/exlab_wizard/lims/cache.py",
"source_location": "L156",
"id": "lims_cache_limscache_list_projects",
- "community": 257,
+ "community": 254,
"norm_label": ".list_projects()"
},
{
@@ -45684,7 +46989,7 @@
"source_file": "src/exlab_wizard/lims/cache.py",
"source_location": "L171",
"id": "lims_cache_limscache_get_project",
- "community": 257,
+ "community": 254,
"norm_label": ".get_project()"
},
{
@@ -45693,7 +46998,7 @@
"source_file": "src/exlab_wizard/lims/cache.py",
"source_location": "L180",
"id": "lims_cache_limscache_is_fresh",
- "community": 257,
+ "community": 254,
"norm_label": ".is_fresh()"
},
{
@@ -45702,7 +47007,7 @@
"source_file": "src/exlab_wizard/lims/cache.py",
"source_location": "L202",
"id": "lims_cache_limscache_require_conn",
- "community": 257,
+ "community": 254,
"norm_label": "._require_conn()"
},
{
@@ -45711,7 +47016,7 @@
"source_file": "src/exlab_wizard/lims/cache.py",
"source_location": "L209",
"id": "lims_cache_row_to_project",
- "community": 257,
+ "community": 254,
"norm_label": "_row_to_project()"
},
{
@@ -45720,7 +47025,7 @@
"source_file": "src/exlab_wizard/lims/cache.py",
"source_location": "L1",
"id": "lims_cache_rationale_1",
- "community": 257,
+ "community": 254,
"norm_label": "aiosqlite-backed cache for lims project rows. backend spec \u00a77.2.4. the cache li"
},
{
@@ -45729,7 +47034,7 @@
"source_file": "src/exlab_wizard/lims/cache.py",
"source_location": "L103",
"id": "lims_cache_rationale_103",
- "community": 122,
+ "community": 128,
"norm_label": "sqlite ttl cache for lims project rows. backend spec \u00a77.2.4. the cache is a"
},
{
@@ -45738,7 +47043,7 @@
"source_file": "src/exlab_wizard/lims/cache.py",
"source_location": "L116",
"id": "lims_cache_rationale_116",
- "community": 122,
+ "community": 128,
"norm_label": "create the table and index if absent. idempotent."
},
{
@@ -45747,7 +47052,7 @@
"source_file": "src/exlab_wizard/lims/cache.py",
"source_location": "L124",
"id": "lims_cache_rationale_124",
- "community": 122,
+ "community": 128,
"norm_label": "close the underlying aiosqlite connection."
},
{
@@ -45756,7 +47061,7 @@
"source_file": "src/exlab_wizard/lims/cache.py",
"source_location": "L130",
"id": "lims_cache_rationale_130",
- "community": 257,
+ "community": 254,
"norm_label": "insert or update every row. ``last_refreshed`` is taken from each ``lims"
},
{
@@ -45765,7 +47070,7 @@
"source_file": "src/exlab_wizard/lims/cache.py",
"source_location": "L159",
"id": "lims_cache_rationale_159",
- "community": 257,
+ "community": 254,
"norm_label": "return every cached project for ``endpoint``, optionally filtered by ``s"
},
{
@@ -45774,7 +47079,7 @@
"source_file": "src/exlab_wizard/lims/cache.py",
"source_location": "L172",
"id": "lims_cache_rationale_172",
- "community": 257,
+ "community": 254,
"norm_label": "return one project by uid or short_id, or none if absent."
},
{
@@ -45783,7 +47088,7 @@
"source_file": "src/exlab_wizard/lims/cache.py",
"source_location": "L181",
"id": "lims_cache_rationale_181",
- "community": 257,
+ "community": 254,
"norm_label": "true iff the most recent ``last_refreshed`` is within ``ttl_hours`` of t"
},
{
@@ -45792,7 +47097,7 @@
"source_file": "src/exlab_wizard/lims/__init__.py",
"source_location": "L1",
"id": "src_exlab_wizard_lims_init_py",
- "community": 433,
+ "community": 471,
"norm_label": "__init__.py"
},
{
@@ -45801,7 +47106,7 @@
"source_file": "src/exlab_wizard/lims/schemas.py",
"source_location": "L1",
"id": "src_exlab_wizard_lims_schemas_py",
- "community": 84,
+ "community": 98,
"norm_label": "schemas.py"
},
{
@@ -45810,7 +47115,7 @@
"source_file": "src/exlab_wizard/lims/schemas.py",
"source_location": "L36",
"id": "lims_schemas_limsproject",
- "community": 84,
+ "community": 137,
"norm_label": "limsproject"
},
{
@@ -45819,7 +47124,7 @@
"source_file": "",
"source_location": "",
"id": "struct",
- "community": 229,
+ "community": 0,
"norm_label": "struct"
},
{
@@ -45828,7 +47133,7 @@
"source_file": "src/exlab_wizard/lims/schemas.py",
"source_location": "L60",
"id": "lims_schemas_limsuser",
- "community": 84,
+ "community": 98,
"norm_label": "limsuser"
},
{
@@ -45837,7 +47142,7 @@
"source_file": "src/exlab_wizard/lims/schemas.py",
"source_location": "L79",
"id": "lims_schemas_healthstatus",
- "community": 84,
+ "community": 98,
"norm_label": "healthstatus"
},
{
@@ -45846,7 +47151,7 @@
"source_file": "src/exlab_wizard/lims/schemas.py",
"source_location": "L1",
"id": "lims_schemas_rationale_1",
- "community": 84,
+ "community": 98,
"norm_label": "msgspec.struct types for the lims read-only client. backend spec \u00a77.2. these ty"
},
{
@@ -45855,7 +47160,7 @@
"source_file": "src/exlab_wizard/lims/schemas.py",
"source_location": "L41",
"id": "lims_schemas_rationale_41",
- "community": 84,
+ "community": 137,
"norm_label": "one lims project row. backend spec \u00a77.2.3. the ``metadata`` field is a json"
},
{
@@ -45864,7 +47169,7 @@
"source_file": "src/exlab_wizard/lims/schemas.py",
"source_location": "L66",
"id": "lims_schemas_rationale_66",
- "community": 84,
+ "community": 98,
"norm_label": "one lims user row. backend spec \u00a77.2.3. mirrors the upstream ``safe_user``"
},
{
@@ -45873,7 +47178,7 @@
"source_file": "src/exlab_wizard/lims/schemas.py",
"source_location": "L80",
"id": "lims_schemas_rationale_80",
- "community": 84,
+ "community": 98,
"norm_label": "result of ``limsclient.health_check()``. backend spec \u00a77.2.3. ``ok`` is tru"
},
{
@@ -45882,7 +47187,7 @@
"source_file": "src/exlab_wizard/lims/catalogue.py",
"source_location": "L1",
"id": "src_exlab_wizard_lims_catalogue_py",
- "community": 158,
+ "community": 137,
"norm_label": "catalogue.py"
},
{
@@ -45891,7 +47196,7 @@
"source_file": "src/exlab_wizard/lims/catalogue.py",
"source_location": "L51",
"id": "lims_catalogue_offlinecatalogue",
- "community": 158,
+ "community": 137,
"norm_label": "offlinecatalogue"
},
{
@@ -45900,7 +47205,7 @@
"source_file": "src/exlab_wizard/lims/catalogue.py",
"source_location": "L72",
"id": "lims_catalogue_read_catalogue",
- "community": 158,
+ "community": 137,
"norm_label": "read_catalogue()"
},
{
@@ -45909,7 +47214,7 @@
"source_file": "src/exlab_wizard/lims/catalogue.py",
"source_location": "L135",
"id": "lims_catalogue_write_catalogue",
- "community": 158,
+ "community": 137,
"norm_label": "write_catalogue()"
},
{
@@ -45918,7 +47223,7 @@
"source_file": "src/exlab_wizard/lims/catalogue.py",
"source_location": "L155",
"id": "lims_catalogue_project_to_dict",
- "community": 158,
+ "community": 137,
"norm_label": "_project_to_dict()"
},
{
@@ -45927,7 +47232,7 @@
"source_file": "src/exlab_wizard/lims/catalogue.py",
"source_location": "L1",
"id": "lims_catalogue_rationale_1",
- "community": 158,
+ "community": 137,
"norm_label": "offline lims project catalogue read/write. backend spec \u00a77.2.9. a catalogue is"
},
{
@@ -45936,7 +47241,7 @@
"source_file": "src/exlab_wizard/lims/catalogue.py",
"source_location": "L52",
"id": "lims_catalogue_rationale_52",
- "community": 158,
+ "community": 137,
"norm_label": "decoded offline catalogue. backend spec \u00a77.2.9.1. ``schema_version`` is pin"
},
{
@@ -45945,7 +47250,7 @@
"source_file": "src/exlab_wizard/lims/catalogue.py",
"source_location": "L73",
"id": "lims_catalogue_rationale_73",
- "community": 158,
+ "community": 137,
"norm_label": "read and validate the catalogue file. returns ``none`` (and logs a warn) wh"
},
{
@@ -45954,7 +47259,7 @@
"source_file": "src/exlab_wizard/lims/catalogue.py",
"source_location": "L136",
"id": "lims_catalogue_rationale_136",
- "community": 158,
+ "community": 137,
"norm_label": "atomically write ``catalogue`` to ``path``. backend spec \u00a77.2.9.2. protocol"
},
{
@@ -45963,7 +47268,7 @@
"source_file": "src/exlab_wizard/lims/catalogue.py",
"source_location": "L156",
"id": "lims_catalogue_rationale_156",
- "community": 158,
+ "community": 137,
"norm_label": "re-emit a limsproject as a serializable dict."
},
{
@@ -45972,7 +47277,7 @@
"source_file": "src/exlab_wizard/validator/findings.py",
"source_location": "L1",
"id": "src_exlab_wizard_validator_findings_py",
- "community": 462,
+ "community": 10,
"norm_label": "findings.py"
},
{
@@ -45981,7 +47286,7 @@
"source_file": "src/exlab_wizard/validator/findings.py",
"source_location": "L41",
"id": "validator_findings_finding",
- "community": 9,
+ "community": 10,
"norm_label": "finding"
},
{
@@ -45990,7 +47295,7 @@
"source_file": "src/exlab_wizard/validator/findings.py",
"source_location": "L90",
"id": "validator_findings_finding_to_dict",
- "community": 9,
+ "community": 10,
"norm_label": ".to_dict()"
},
{
@@ -45999,7 +47304,7 @@
"source_file": "src/exlab_wizard/validator/findings.py",
"source_location": "L101",
"id": "validator_findings_from_dict",
- "community": 462,
+ "community": 10,
"norm_label": "from_dict()"
},
{
@@ -46008,7 +47313,7 @@
"source_file": "src/exlab_wizard/validator/findings.py",
"source_location": "L1",
"id": "validator_findings_rationale_1",
- "community": 462,
+ "community": 10,
"norm_label": "validator finding dataclass and serialization helpers. backend spec \u00a711.8 (find"
},
{
@@ -46017,7 +47322,7 @@
"source_file": "src/exlab_wizard/validator/findings.py",
"source_location": "L42",
"id": "validator_findings_rationale_42",
- "community": 9,
+ "community": 10,
"norm_label": "one validator finding. backend spec \u00a78.1, \u00a711.8. frozen so findings can be"
},
{
@@ -46026,7 +47331,7 @@
"source_file": "src/exlab_wizard/validator/findings.py",
"source_location": "L91",
"id": "validator_findings_rationale_91",
- "community": 9,
+ "community": 10,
"norm_label": "return the \u00a711.8 json shape for this finding. the dictionary is suitabl"
},
{
@@ -46035,7 +47340,7 @@
"source_file": "src/exlab_wizard/validator/findings.py",
"source_location": "L102",
"id": "validator_findings_rationale_102",
- "community": 603,
+ "community": 628,
"norm_label": "reconstruct a :class:`finding` from its \u00a711.8 json shape. the inverse o"
},
{
@@ -46044,7 +47349,7 @@
"source_file": "src/exlab_wizard/validator/__init__.py",
"source_location": "L1",
"id": "src_exlab_wizard_validator_init_py",
- "community": 434,
+ "community": 472,
"norm_label": "__init__.py"
},
{
@@ -46053,7 +47358,7 @@
"source_file": "src/exlab_wizard/validator/rules.py",
"source_location": "L1",
"id": "src_exlab_wizard_validator_rules_py",
- "community": 228,
+ "community": 236,
"norm_label": "rules.py"
},
{
@@ -46062,7 +47367,7 @@
"source_file": "src/exlab_wizard/validator/rules.py",
"source_location": "L83",
"id": "validator_rules_check_unresolved_placeholder",
- "community": 159,
+ "community": 148,
"norm_label": "check_unresolved_placeholder()"
},
{
@@ -46071,7 +47376,7 @@
"source_file": "src/exlab_wizard/validator/rules.py",
"source_location": "L122",
"id": "validator_rules_scan_for_placeholders",
- "community": 228,
+ "community": 236,
"norm_label": "_scan_for_placeholders()"
},
{
@@ -46080,7 +47385,7 @@
"source_file": "src/exlab_wizard/validator/rules.py",
"source_location": "L185",
"id": "validator_rules_check_illegal_filesystem_character",
- "community": 228,
+ "community": 148,
"norm_label": "check_illegal_filesystem_character()"
},
{
@@ -46089,7 +47394,7 @@
"source_file": "src/exlab_wizard/validator/rules.py",
"source_location": "L210",
"id": "validator_rules_scan_for_illegal_chars",
- "community": 228,
+ "community": 236,
"norm_label": "_scan_for_illegal_chars()"
},
{
@@ -46098,7 +47403,7 @@
"source_file": "src/exlab_wizard/validator/rules.py",
"source_location": "L269",
"id": "validator_rules_check_reserved_filesystem_name",
- "community": 399,
+ "community": 236,
"norm_label": "check_reserved_filesystem_name()"
},
{
@@ -46107,7 +47412,7 @@
"source_file": "src/exlab_wizard/validator/rules.py",
"source_location": "L305",
"id": "validator_rules_check_unsafe_project_name",
- "community": 400,
+ "community": 236,
"norm_label": "check_unsafe_project_name()"
},
{
@@ -46116,7 +47421,7 @@
"source_file": "src/exlab_wizard/validator/rules.py",
"source_location": "L339",
"id": "validator_rules_check_mode_prefix_mismatch",
- "community": 258,
+ "community": 252,
"norm_label": "check_mode_prefix_mismatch()"
},
{
@@ -46125,7 +47430,7 @@
"source_file": "src/exlab_wizard/validator/rules.py",
"source_location": "L429",
"id": "validator_rules_check_orphan",
- "community": 332,
+ "community": 329,
"norm_label": "check_orphan()"
},
{
@@ -46152,7 +47457,7 @@
"source_file": "src/exlab_wizard/validator/rules.py",
"source_location": "L520",
"id": "validator_rules_check_malformed_yaml_front_matter",
- "community": 159,
+ "community": 302,
"norm_label": "check_malformed_yaml_front_matter()"
},
{
@@ -46161,7 +47466,7 @@
"source_file": "src/exlab_wizard/validator/rules.py",
"source_location": "L1",
"id": "validator_rules_rationale_1",
- "community": 228,
+ "community": 236,
"norm_label": "validator rule functions. backend spec \u00a78.1. this module is a pure-function lib"
},
{
@@ -46170,7 +47475,7 @@
"source_file": "src/exlab_wizard/validator/rules.py",
"source_location": "L89",
"id": "validator_rules_rationale_89",
- "community": 159,
+ "community": 148,
"norm_label": "\u00a78.1.1: detect angle-bracket and jinja placeholder tokens. hard-tier. uses"
},
{
@@ -46179,7 +47484,7 @@
"source_file": "src/exlab_wizard/validator/rules.py",
"source_location": "L127",
"id": "validator_rules_rationale_127",
- "community": 228,
+ "community": 236,
"norm_label": "return one finding per placeholder match in ``text``."
},
{
@@ -46188,7 +47493,7 @@
"source_file": "src/exlab_wizard/validator/rules.py",
"source_location": "L190",
"id": "validator_rules_rationale_190",
- "community": 228,
+ "community": 148,
"norm_label": "\u00a78.1.2: detect windows-illegal characters in any segment / file name. illeg"
},
{
@@ -46197,7 +47502,7 @@
"source_file": "src/exlab_wizard/validator/rules.py",
"source_location": "L211",
"id": "validator_rules_rationale_211",
- "community": 228,
+ "community": 236,
"norm_label": "return one finding per illegal character / trailing-rule violation in ``name``."
},
{
@@ -46206,7 +47511,7 @@
"source_file": "src/exlab_wizard/validator/rules.py",
"source_location": "L270",
"id": "validator_rules_rationale_270",
- "community": 399,
+ "community": 236,
"norm_label": "\u00a78.1.2: detect windows reserved names (``con``, ``prn``, ``aux``, ``nul``, `"
},
{
@@ -46215,7 +47520,7 @@
"source_file": "src/exlab_wizard/validator/rules.py",
"source_location": "L306",
"id": "validator_rules_rationale_306",
- "community": 400,
+ "community": 236,
"norm_label": "\u00a73.2: flag a project directory whose name is not a safe path segment. the p"
},
{
@@ -46224,7 +47529,7 @@
"source_file": "src/exlab_wizard/validator/rules.py",
"source_location": "L345",
"id": "validator_rules_rationale_345",
- "community": 258,
+ "community": 252,
"norm_label": "\u00a78.1.3: detect three-way disagreement between ``run_kind``, leaf prefix, and"
},
{
@@ -46233,7 +47538,7 @@
"source_file": "src/exlab_wizard/validator/rules.py",
"source_location": "L430",
"id": "validator_rules_rationale_430",
- "community": 332,
+ "community": 329,
"norm_label": "\u00a78.1.4: detect missing ``creation.json`` at project / run level (not equipme"
},
{
@@ -46260,7 +47565,7 @@
"source_file": "src/exlab_wizard/validator/rules.py",
"source_location": "L521",
"id": "validator_rules_rationale_521",
- "community": 159,
+ "community": 302,
"norm_label": "\u00a78.1: detect malformed yaml front matter at the head of a markdown file."
},
{
@@ -46269,7 +47574,7 @@
"source_file": "src/exlab_wizard/validator/engine.py",
"source_location": "L1",
"id": "src_exlab_wizard_validator_engine_py",
- "community": 198,
+ "community": 195,
"norm_label": "engine.py"
},
{
@@ -46278,7 +47583,7 @@
"source_file": "src/exlab_wizard/validator/engine.py",
"source_location": "L114",
"id": "validator_engine_creationvalidationinput",
- "community": 9,
+ "community": 10,
"norm_label": "creationvalidationinput"
},
{
@@ -46287,7 +47592,7 @@
"source_file": "src/exlab_wizard/validator/engine.py",
"source_location": "L162",
"id": "validator_engine_split_path_segments",
- "community": 32,
+ "community": 36,
"norm_label": "_split_path_segments()"
},
{
@@ -46296,7 +47601,7 @@
"source_file": "src/exlab_wizard/validator/engine.py",
"source_location": "L193",
"id": "validator_engine_auditscopeequipment",
- "community": 198,
+ "community": 195,
"norm_label": "auditscopeequipment"
},
{
@@ -46305,7 +47610,7 @@
"source_file": "",
"source_location": "",
"id": "typeddict",
- "community": 198,
+ "community": 195,
"norm_label": "typeddict"
},
{
@@ -46314,7 +47619,7 @@
"source_file": "src/exlab_wizard/validator/engine.py",
"source_location": "L206",
"id": "validator_engine_auditscopeproject",
- "community": 198,
+ "community": 195,
"norm_label": "auditscopeproject"
},
{
@@ -46323,7 +47628,7 @@
"source_file": "src/exlab_wizard/validator/engine.py",
"source_location": "L217",
"id": "validator_engine_auditscopeall",
- "community": 198,
+ "community": 195,
"norm_label": "auditscopeall"
},
{
@@ -46332,7 +47637,7 @@
"source_file": "src/exlab_wizard/validator/engine.py",
"source_location": "L236",
"id": "validator_engine_validator",
- "community": 109,
+ "community": 71,
"norm_label": "validator"
},
{
@@ -46341,7 +47646,7 @@
"source_file": "src/exlab_wizard/validator/engine.py",
"source_location": "L251",
"id": "validator_engine_validator_init",
- "community": 112,
+ "community": 211,
"norm_label": ".__init__()"
},
{
@@ -46350,7 +47655,7 @@
"source_file": "src/exlab_wizard/validator/engine.py",
"source_location": "L267",
"id": "validator_engine_config",
- "community": 198,
+ "community": 195,
"norm_label": "config()"
},
{
@@ -46359,7 +47664,7 @@
"source_file": "src/exlab_wizard/validator/engine.py",
"source_location": "L275",
"id": "validator_engine_validator_reconfigure",
- "community": 133,
+ "community": 211,
"norm_label": ".reconfigure()"
},
{
@@ -46368,7 +47673,7 @@
"source_file": "src/exlab_wizard/validator/engine.py",
"source_location": "L303",
"id": "validator_engine_validator_validate_creation",
- "community": 198,
+ "community": 195,
"norm_label": ".validate_creation()"
},
{
@@ -46377,7 +47682,7 @@
"source_file": "src/exlab_wizard/validator/engine.py",
"source_location": "L398",
"id": "validator_engine_materialise",
- "community": 198,
+ "community": 195,
"norm_label": "_materialise()"
},
{
@@ -46386,7 +47691,7 @@
"source_file": "src/exlab_wizard/validator/engine.py",
"source_location": "L428",
"id": "validator_engine_from_config",
- "community": 198,
+ "community": 195,
"norm_label": "from_config()"
},
{
@@ -46395,7 +47700,7 @@
"source_file": "src/exlab_wizard/validator/engine.py",
"source_location": "L451",
"id": "validator_engine_validator_audit",
- "community": 307,
+ "community": 71,
"norm_label": ".audit()"
},
{
@@ -46404,7 +47709,7 @@
"source_file": "src/exlab_wizard/validator/engine.py",
"source_location": "L482",
"id": "validator_engine_validator_query_problems",
- "community": 307,
+ "community": 71,
"norm_label": ".query_problems()"
},
{
@@ -46413,7 +47718,7 @@
"source_file": "src/exlab_wizard/validator/engine.py",
"source_location": "L494",
"id": "validator_engine_validator_resolve_scope_roots",
- "community": 307,
+ "community": 71,
"norm_label": "._resolve_scope_roots()"
},
{
@@ -46422,7 +47727,7 @@
"source_file": "src/exlab_wizard/validator/engine.py",
"source_location": "L513",
"id": "validator_engine_validator_walk_root",
- "community": 307,
+ "community": 71,
"norm_label": "._walk_root()"
},
{
@@ -46431,7 +47736,7 @@
"source_file": "src/exlab_wizard/validator/engine.py",
"source_location": "L532",
"id": "validator_engine_validator_walk_dir",
- "community": 109,
+ "community": 71,
"norm_label": "._walk_dir()"
},
{
@@ -46440,7 +47745,7 @@
"source_file": "src/exlab_wizard/validator/engine.py",
"source_location": "L602",
"id": "validator_engine_validator_classify_level",
- "community": 109,
+ "community": 71,
"norm_label": "._classify_level()"
},
{
@@ -46449,7 +47754,7 @@
"source_file": "src/exlab_wizard/validator/engine.py",
"source_location": "L655",
"id": "validator_engine_validator_compute_run_path",
- "community": 109,
+ "community": 71,
"norm_label": "._compute_run_path()"
},
{
@@ -46458,7 +47763,7 @@
"source_file": "src/exlab_wizard/validator/engine.py",
"source_location": "L697",
"id": "validator_engine_validator_apply_directory_rules",
- "community": 109,
+ "community": 71,
"norm_label": "._apply_directory_rules()"
},
{
@@ -46467,7 +47772,7 @@
"source_file": "src/exlab_wizard/validator/engine.py",
"source_location": "L787",
"id": "validator_engine_validator_extend_findings",
- "community": 109,
+ "community": 71,
"norm_label": "._extend_findings()"
},
{
@@ -46476,7 +47781,7 @@
"source_file": "src/exlab_wizard/validator/engine.py",
"source_location": "L814",
"id": "validator_engine_validator_apply_missing_required_field_rule",
- "community": 109,
+ "community": 71,
"norm_label": "._apply_missing_required_field_rule()"
},
{
@@ -46485,7 +47790,7 @@
"source_file": "src/exlab_wizard/validator/engine.py",
"source_location": "L862",
"id": "validator_engine_validator_apply_directory_name_rules",
- "community": 109,
+ "community": 71,
"norm_label": "._apply_directory_name_rules()"
},
{
@@ -46494,7 +47799,7 @@
"source_file": "src/exlab_wizard/validator/engine.py",
"source_location": "L905",
"id": "validator_engine_validator_apply_file_rules",
- "community": 109,
+ "community": 71,
"norm_label": "._apply_file_rules()"
},
{
@@ -46503,7 +47808,7 @@
"source_file": "src/exlab_wizard/validator/engine.py",
"source_location": "L978",
"id": "validator_engine_validator_content_scan_eligible",
- "community": 109,
+ "community": 71,
"norm_label": "._content_scan_eligible()"
},
{
@@ -46512,7 +47817,7 @@
"source_file": "src/exlab_wizard/validator/engine.py",
"source_location": "L996",
"id": "validator_engine_validator_read_text_for_scan",
- "community": 109,
+ "community": 71,
"norm_label": "._read_text_for_scan()"
},
{
@@ -46521,7 +47826,7 @@
"source_file": "src/exlab_wizard/validator/engine.py",
"source_location": "L1014",
"id": "validator_engine_validator_read_creation_for",
- "community": 109,
+ "community": 71,
"norm_label": "._read_creation_for()"
},
{
@@ -46530,7 +47835,7 @@
"source_file": "src/exlab_wizard/validator/engine.py",
"source_location": "L1041",
"id": "validator_engine_extract_overrides_and_sync",
- "community": 109,
+ "community": 71,
"norm_label": "_extract_overrides_and_sync()"
},
{
@@ -46539,7 +47844,7 @@
"source_file": "src/exlab_wizard/validator/engine.py",
"source_location": "L1061",
"id": "validator_engine_materialise_audit",
- "community": 198,
+ "community": 195,
"norm_label": "_materialise_audit()"
},
{
@@ -46548,7 +47853,7 @@
"source_file": "src/exlab_wizard/validator/engine.py",
"source_location": "L1112",
"id": "validator_engine_tier_rank",
- "community": 198,
+ "community": 195,
"norm_label": "_tier_rank()"
},
{
@@ -46557,7 +47862,7 @@
"source_file": "src/exlab_wizard/validator/engine.py",
"source_location": "L1126",
"id": "validator_engine_finding_sort_key",
- "community": 198,
+ "community": 195,
"norm_label": "_finding_sort_key()"
},
{
@@ -46566,7 +47871,7 @@
"source_file": "src/exlab_wizard/validator/engine.py",
"source_location": "L1143",
"id": "validator_engine_level_for_orphan",
- "community": 401,
+ "community": 422,
"norm_label": "_level_for_orphan()"
},
{
@@ -46575,7 +47880,7 @@
"source_file": "src/exlab_wizard/validator/engine.py",
"source_location": "L1",
"id": "validator_engine_rationale_1",
- "community": 198,
+ "community": 195,
"norm_label": "validator engine. backend spec \u00a74.4.4, \u00a78.1, \u00a711.7, \u00a711.8. the engine is the si"
},
{
@@ -46584,7 +47889,7 @@
"source_file": "src/exlab_wizard/validator/engine.py",
"source_location": "L115",
"id": "validator_engine_rationale_115",
- "community": 9,
+ "community": 10,
"norm_label": "input bundle for creation-time validation. backend spec \u00a78.1, \u00a711.8. all fi"
},
{
@@ -46593,7 +47898,7 @@
"source_file": "src/exlab_wizard/validator/engine.py",
"source_location": "L163",
"id": "validator_engine_rationale_163",
- "community": 32,
+ "community": 36,
"norm_label": "split ``proposed_path`` into per-segment names. accepts both posix and wind"
},
{
@@ -46602,7 +47907,7 @@
"source_file": "src/exlab_wizard/validator/engine.py",
"source_location": "L194",
"id": "validator_engine_rationale_194",
- "community": 198,
+ "community": 195,
"norm_label": "audit one equipment subtree. spec \u00a711.8. the ``value`` is the equipment id"
},
{
@@ -46611,7 +47916,7 @@
"source_file": "src/exlab_wizard/validator/engine.py",
"source_location": "L207",
"id": "validator_engine_rationale_207",
- "community": 198,
+ "community": 195,
"norm_label": "audit one ``/`` subtree. spec \u00a711.8. the ``value`` is a"
},
{
@@ -46620,7 +47925,7 @@
"source_file": "src/exlab_wizard/validator/engine.py",
"source_location": "L218",
"id": "validator_engine_rationale_218",
- "community": 198,
+ "community": 195,
"norm_label": "audit every configured equipment + staging when orchestrator on. spec \u00a711.8"
},
{
@@ -46629,7 +47934,7 @@
"source_file": "src/exlab_wizard/validator/engine.py",
"source_location": "L237",
"id": "validator_engine_rationale_237",
- "community": 109,
+ "community": 71,
"norm_label": "run \u00a78.1 rules in creation-time and audit modes. backend spec \u00a711.8. the co"
},
{
@@ -46638,7 +47943,7 @@
"source_file": "src/exlab_wizard/validator/engine.py",
"source_location": "L268",
"id": "validator_engine_rationale_268",
- "community": 604,
+ "community": 629,
"norm_label": "the :class:`validatorconfig` this engine instance was built with. expos"
},
{
@@ -46647,7 +47952,7 @@
"source_file": "src/exlab_wizard/validator/engine.py",
"source_location": "L282",
"id": "validator_engine_rationale_282",
- "community": 133,
+ "community": 211,
"norm_label": "re-seed the config + audit-mode roots in place (no tray relaunch). mirr"
},
{
@@ -46656,7 +47961,7 @@
"source_file": "src/exlab_wizard/validator/engine.py",
"source_location": "L304",
"id": "validator_engine_rationale_304",
- "community": 198,
+ "community": 195,
"norm_label": "run every \u00a78.1 creation-time rule against ``params``. returns a flat li"
},
{
@@ -46665,7 +47970,7 @@
"source_file": "src/exlab_wizard/validator/engine.py",
"source_location": "L399",
"id": "validator_engine_rationale_399",
- "community": 605,
+ "community": 630,
"norm_label": "wrap a rule-helper dict in a :class:`finding`. the \u00a78.1 rule helpers re"
},
{
@@ -46674,7 +47979,7 @@
"source_file": "src/exlab_wizard/validator/engine.py",
"source_location": "L429",
"id": "validator_engine_rationale_429",
- "community": 606,
+ "community": 631,
"norm_label": "build a :class:`validator` from the full ``config.yaml`` model. project"
},
{
@@ -46683,7 +47988,7 @@
"source_file": "src/exlab_wizard/validator/engine.py",
"source_location": "L452",
"id": "validator_engine_rationale_452",
- "community": 307,
+ "community": 71,
"norm_label": "walk a directory subtree and return all findings. backend spec \u00a711.8. u"
},
{
@@ -46692,7 +47997,7 @@
"source_file": "src/exlab_wizard/validator/engine.py",
"source_location": "L483",
"id": "validator_engine_rationale_483",
- "community": 307,
+ "community": 71,
"norm_label": "public read-only alias for :meth:`audit`. backend spec \u00a711.8. read-only"
},
{
@@ -46701,7 +48006,7 @@
"source_file": "src/exlab_wizard/validator/engine.py",
"source_location": "L495",
"id": "validator_engine_rationale_495",
- "community": 307,
+ "community": 71,
"norm_label": "map an :class:`auditscope` onto the directory roots to walk."
},
{
@@ -46710,7 +48015,7 @@
"source_file": "src/exlab_wizard/validator/engine.py",
"source_location": "L514",
"id": "validator_engine_rationale_514",
- "community": 307,
+ "community": 71,
"norm_label": "walk a single subtree rooted at ``root`` (depth-first). returns a flat"
},
{
@@ -46719,7 +48024,7 @@
"source_file": "src/exlab_wizard/validator/engine.py",
"source_location": "L539",
"id": "validator_engine_rationale_539",
- "community": 109,
+ "community": 71,
"norm_label": "recursive ``os.scandir`` walk; apply rules at every level. per-director"
},
{
@@ -46728,7 +48033,7 @@
"source_file": "src/exlab_wizard/validator/engine.py",
"source_location": "L607",
"id": "validator_engine_rationale_607",
- "community": 109,
+ "community": 71,
"norm_label": "classify a directory's role in an equipment subtree. equipment root is"
},
{
@@ -46737,7 +48042,7 @@
"source_file": "src/exlab_wizard/validator/engine.py",
"source_location": "L661",
"id": "validator_engine_rationale_661",
- "community": 109,
+ "community": 71,
"norm_label": "return the \u00a711.8 ``run_path`` for findings at ``directory``. per spec,"
},
{
@@ -46746,7 +48051,7 @@
"source_file": "src/exlab_wizard/validator/engine.py",
"source_location": "L707",
"id": "validator_engine_rationale_707",
- "community": 109,
+ "community": 71,
"norm_label": "apply rules whose scope is the run-level directory itself. three rule f"
},
{
@@ -46755,7 +48060,7 @@
"source_file": "src/exlab_wizard/validator/engine.py",
"source_location": "L797",
"id": "validator_engine_rationale_797",
- "community": 109,
+ "community": 71,
"norm_label": "materialise raw rule output into :class:`finding` instances. reduces au"
},
{
@@ -46764,7 +48069,7 @@
"source_file": "src/exlab_wizard/validator/engine.py",
"source_location": "L824",
"id": "validator_engine_rationale_824",
- "community": 109,
+ "community": 71,
"norm_label": "read ``readme_fields.json`` and call ``check_missing_required_field``."
},
{
@@ -46773,7 +48078,7 @@
"source_file": "src/exlab_wizard/validator/engine.py",
"source_location": "L871",
"id": "validator_engine_rationale_871",
- "community": 109,
+ "community": 71,
"norm_label": "apply name-level rules (placeholder + illegal char) to a directory. res"
},
{
@@ -46782,7 +48087,7 @@
"source_file": "src/exlab_wizard/validator/engine.py",
"source_location": "L914",
"id": "validator_engine_rationale_914",
- "community": 109,
+ "community": 71,
"norm_label": "apply file-name + file-content rules to a single file. filename rules ("
},
{
@@ -46791,7 +48096,7 @@
"source_file": "src/exlab_wizard/validator/engine.py",
"source_location": "L979",
"id": "validator_engine_rationale_979",
- "community": 109,
+ "community": 71,
"norm_label": "return true iff the file passes the size + extension gates. spec \u00a78.1.1"
},
{
@@ -46800,7 +48105,7 @@
"source_file": "src/exlab_wizard/validator/engine.py",
"source_location": "L997",
"id": "validator_engine_rationale_997",
- "community": 109,
+ "community": 71,
"norm_label": "read text bytes for placeholder scan, applying the binary sniff. return"
},
{
@@ -46809,7 +48114,7 @@
"source_file": "src/exlab_wizard/validator/engine.py",
"source_location": "L1017",
"id": "validator_engine_rationale_1017",
- "community": 109,
+ "community": 71,
"norm_label": "read ``/.exlab-wizard/creation.json`` if present. returns ``"
},
{
@@ -46818,7 +48123,7 @@
"source_file": "src/exlab_wizard/validator/engine.py",
"source_location": "L1044",
"id": "validator_engine_rationale_1044",
- "community": 607,
+ "community": 632,
"norm_label": "return ``(active_problem_classes, sync_status)`` for a payload. ``activ"
},
{
@@ -46827,7 +48132,7 @@
"source_file": "src/exlab_wizard/validator/engine.py",
"source_location": "L1069",
"id": "validator_engine_rationale_1069",
- "community": 608,
+ "community": 633,
"norm_label": "audit-mode counterpart of :meth:`_materialise`. computes ``override_act"
},
{
@@ -46836,7 +48141,7 @@
"source_file": "src/exlab_wizard/validator/engine.py",
"source_location": "L1113",
"id": "validator_engine_rationale_1113",
- "community": 198,
+ "community": 195,
"norm_label": "hard tier sorts before soft tier (\u00a711.8). returns 0 for ``\"hard\"`` and 1 fo"
},
{
@@ -46845,7 +48150,7 @@
"source_file": "src/exlab_wizard/validator/engine.py",
"source_location": "L1127",
"id": "validator_engine_rationale_1127",
- "community": 198,
+ "community": 195,
"norm_label": "sort key for the \u00a711.8 finding list ordering. tuple: ``(tier_rank, rule, of"
},
{
@@ -46854,7 +48159,7 @@
"source_file": "src/exlab_wizard/validator/engine.py",
"source_location": "L1144",
"id": "validator_engine_rationale_1144",
- "community": 401,
+ "community": 422,
"norm_label": "translate the engine-level enum into the rules.check_orphan input. the orph"
},
{
@@ -46863,7 +48168,7 @@
"source_file": "src/exlab_wizard/cache/equipment.py",
"source_location": "L1",
"id": "src_exlab_wizard_cache_equipment_py",
- "community": 93,
+ "community": 231,
"norm_label": "equipment.py"
},
{
@@ -46872,7 +48177,7 @@
"source_file": "src/exlab_wizard/cache/equipment.py",
"source_location": "L63",
"id": "cache_equipment_equipmentcachewriter",
- "community": 46,
+ "community": 57,
"norm_label": "equipmentcachewriter"
},
{
@@ -46881,7 +48186,7 @@
"source_file": "src/exlab_wizard/cache/equipment.py",
"source_location": "L73",
"id": "cache_equipment_equipmentcachewriter_write_equipment",
- "community": 46,
+ "community": 57,
"norm_label": ".write_equipment()"
},
{
@@ -46890,7 +48195,7 @@
"source_file": "src/exlab_wizard/cache/equipment.py",
"source_location": "L91",
"id": "cache_equipment_equipmentcachewriter_read_equipment",
- "community": 46,
+ "community": 57,
"norm_label": ".read_equipment()"
},
{
@@ -46899,7 +48204,7 @@
"source_file": "src/exlab_wizard/cache/equipment.py",
"source_location": "L106",
"id": "cache_equipment_equipmentcachewriter_write_test_runs_marker",
- "community": 46,
+ "community": 57,
"norm_label": ".write_test_runs_marker()"
},
{
@@ -46908,7 +48213,7 @@
"source_file": "src/exlab_wizard/cache/equipment.py",
"source_location": "L127",
"id": "cache_equipment_write_equipment_sync",
- "community": 93,
+ "community": 231,
"norm_label": "_write_equipment_sync()"
},
{
@@ -46917,7 +48222,7 @@
"source_file": "src/exlab_wizard/cache/equipment.py",
"source_location": "L151",
"id": "cache_equipment_read_equipment_sync",
- "community": 93,
+ "community": 231,
"norm_label": "_read_equipment_sync()"
},
{
@@ -46926,7 +48231,7 @@
"source_file": "src/exlab_wizard/cache/equipment.py",
"source_location": "L154",
"id": "cache_equipment_equipmentcachewriter_read_test_runs_marker",
- "community": 46,
+ "community": 57,
"norm_label": ".read_test_runs_marker()"
},
{
@@ -46935,7 +48240,7 @@
"source_file": "src/exlab_wizard/cache/equipment.py",
"source_location": "L163",
"id": "cache_equipment_read_test_runs_marker_sync",
- "community": 93,
+ "community": 231,
"norm_label": "_read_test_runs_marker_sync()"
},
{
@@ -46944,7 +48249,7 @@
"source_file": "src/exlab_wizard/cache/equipment.py",
"source_location": "L167",
"id": "cache_equipment_write_test_runs_marker_sync",
- "community": 93,
+ "community": 231,
"norm_label": "_write_test_runs_marker_sync()"
},
{
@@ -46953,7 +48258,7 @@
"source_file": "src/exlab_wizard/cache/equipment.py",
"source_location": "L183",
"id": "cache_equipment_read_existing_first_seen_at",
- "community": 93,
+ "community": 231,
"norm_label": "_read_existing_first_seen_at()"
},
{
@@ -46962,7 +48267,7 @@
"source_file": "src/exlab_wizard/cache/equipment.py",
"source_location": "L1",
"id": "cache_equipment_rationale_1",
- "community": 93,
+ "community": 231,
"norm_label": "writer for ``equipment.json`` (registry) and ``test_runs.json`` (marker). backe"
},
{
@@ -46971,7 +48276,7 @@
"source_file": "src/exlab_wizard/cache/equipment.py",
"source_location": "L64",
"id": "cache_equipment_rationale_64",
- "community": 46,
+ "community": 57,
"norm_label": "writer for ``equipment.json`` and ``test_runs.json``. instances are statele"
},
{
@@ -46980,7 +48285,7 @@
"source_file": "src/exlab_wizard/cache/equipment.py",
"source_location": "L74",
"id": "cache_equipment_rationale_74",
- "community": 46,
+ "community": 57,
"norm_label": "write or rewrite the per-equipment ``equipment.json`` file. stamping ru"
},
{
@@ -46989,7 +48294,7 @@
"source_file": "src/exlab_wizard/cache/equipment.py",
"source_location": "L92",
"id": "cache_equipment_rationale_92",
- "community": 46,
+ "community": 57,
"norm_label": "read and decode an existing ``equipment.json`` file. uses ``msgspec.jso"
},
{
@@ -46998,7 +48303,7 @@
"source_file": "src/exlab_wizard/cache/equipment.py",
"source_location": "L107",
"id": "cache_equipment_rationale_107",
- "community": 46,
+ "community": 57,
"norm_label": "write the ``test_runs.json`` marker file. idempotent per \u00a711.4.2: if th"
},
{
@@ -47007,7 +48312,7 @@
"source_file": "src/exlab_wizard/cache/equipment.py",
"source_location": "L155",
"id": "cache_equipment_rationale_155",
- "community": 46,
+ "community": 57,
"norm_label": "read and decode a ``test_runs.json`` marker file. raises ``schemamajorm"
},
{
@@ -47016,7 +48321,7 @@
"source_file": "src/exlab_wizard/cache/equipment.py",
"source_location": "L184",
"id": "cache_equipment_rationale_184",
- "community": 93,
+ "community": 231,
"norm_label": "return the on-disk ``first_seen_at`` if the file exists. returns ``none`` w"
},
{
@@ -47025,7 +48330,7 @@
"source_file": "src/exlab_wizard/cache/sync_state_schema.py",
"source_location": "L1",
"id": "src_exlab_wizard_cache_sync_state_schema_py",
- "community": 229,
+ "community": 6,
"norm_label": "sync_state_schema.py"
},
{
@@ -47034,7 +48339,7 @@
"source_file": "src/exlab_wizard/cache/sync_state_schema.py",
"source_location": "L19",
"id": "cache_sync_state_schema_filesyncrecord",
- "community": 229,
+ "community": 6,
"norm_label": "filesyncrecord"
},
{
@@ -47043,7 +48348,7 @@
"source_file": "src/exlab_wizard/cache/sync_state_schema.py",
"source_location": "L55",
"id": "cache_sync_state_schema_syncstatejson",
- "community": 229,
+ "community": 6,
"norm_label": "syncstatejson"
},
{
@@ -47052,7 +48357,7 @@
"source_file": "src/exlab_wizard/cache/sync_state_schema.py",
"source_location": "L1",
"id": "cache_sync_state_schema_rationale_1",
- "community": 229,
+ "community": 6,
"norm_label": "``msgspec.struct`` types for the per-run ``sync_state.json`` cache. operator-fr"
},
{
@@ -47061,7 +48366,7 @@
"source_file": "src/exlab_wizard/cache/sync_state_schema.py",
"source_location": "L24",
"id": "cache_sync_state_schema_rationale_24",
- "community": 229,
+ "community": 6,
"norm_label": "per-file sync record stored under ``sync_state.json``'s ``files`` map. one"
},
{
@@ -47070,7 +48375,7 @@
"source_file": "src/exlab_wizard/cache/sync_state_schema.py",
"source_location": "L60",
"id": "cache_sync_state_schema_rationale_60",
- "community": 229,
+ "community": 6,
"norm_label": "``sync_state.json`` per-run sync-state record at schema version 1.0. writte"
},
{
@@ -47079,7 +48384,7 @@
"source_file": "src/exlab_wizard/cache/sync_state_writer.py",
"source_location": "L1",
"id": "src_exlab_wizard_cache_sync_state_writer_py",
- "community": 93,
+ "community": 6,
"norm_label": "sync_state_writer.py"
},
{
@@ -47088,7 +48393,7 @@
"source_file": "src/exlab_wizard/cache/sync_state_writer.py",
"source_location": "L52",
"id": "cache_sync_state_writer_sync_state_path",
- "community": 93,
+ "community": 6,
"norm_label": "_sync_state_path()"
},
{
@@ -47097,7 +48402,7 @@
"source_file": "src/exlab_wizard/cache/sync_state_writer.py",
"source_location": "L57",
"id": "cache_sync_state_writer_ensure_cache_dir",
- "community": 93,
+ "community": 6,
"norm_label": "_ensure_cache_dir()"
},
{
@@ -47106,7 +48411,7 @@
"source_file": "src/exlab_wizard/cache/sync_state_writer.py",
"source_location": "L69",
"id": "cache_sync_state_writer_empty_state",
- "community": 93,
+ "community": 6,
"norm_label": "_empty_state()"
},
{
@@ -47115,7 +48420,7 @@
"source_file": "src/exlab_wizard/cache/sync_state_writer.py",
"source_location": "L74",
"id": "cache_sync_state_writer_syncstatewriter",
- "community": 5,
+ "community": 6,
"norm_label": "syncstatewriter"
},
{
@@ -47124,7 +48429,7 @@
"source_file": "src/exlab_wizard/cache/sync_state_writer.py",
"source_location": "L82",
"id": "cache_sync_state_writer_syncstatewriter_read",
- "community": 251,
+ "community": 255,
"norm_label": ".read()"
},
{
@@ -47133,7 +48438,7 @@
"source_file": "src/exlab_wizard/cache/sync_state_writer.py",
"source_location": "L92",
"id": "cache_sync_state_writer_syncstatewriter_read_sync",
- "community": 93,
+ "community": 6,
"norm_label": ".read_sync()"
},
{
@@ -47142,7 +48447,7 @@
"source_file": "src/exlab_wizard/cache/sync_state_writer.py",
"source_location": "L108",
"id": "cache_sync_state_writer_syncstatewriter_upsert_file",
- "community": 5,
+ "community": 6,
"norm_label": ".upsert_file()"
},
{
@@ -47151,7 +48456,7 @@
"source_file": "src/exlab_wizard/cache/sync_state_writer.py",
"source_location": "L147",
"id": "cache_sync_state_writer_syncstatewriter_set_keep_local",
- "community": 5,
+ "community": 6,
"norm_label": ".set_keep_local()"
},
{
@@ -47160,7 +48465,7 @@
"source_file": "src/exlab_wizard/cache/sync_state_writer.py",
"source_location": "L161",
"id": "cache_sync_state_writer_syncstatewriter_mark_cleared",
- "community": 5,
+ "community": 6,
"norm_label": ".mark_cleared()"
},
{
@@ -47169,7 +48474,7 @@
"source_file": "src/exlab_wizard/cache/sync_state_writer.py",
"source_location": "L169",
"id": "cache_sync_state_writer_syncstatewriter_mark_cleared_sync",
- "community": 93,
+ "community": 6,
"norm_label": ".mark_cleared_sync()"
},
{
@@ -47178,7 +48483,7 @@
"source_file": "src/exlab_wizard/cache/sync_state_writer.py",
"source_location": "L180",
"id": "cache_sync_state_writer_rollup_state",
- "community": 93,
+ "community": 6,
"norm_label": "rollup_state()"
},
{
@@ -47187,7 +48492,7 @@
"source_file": "src/exlab_wizard/cache/sync_state_writer.py",
"source_location": "L202",
"id": "cache_sync_state_writer_syncstatewriter_read_blocking",
- "community": 93,
+ "community": 6,
"norm_label": "._read_blocking()"
},
{
@@ -47196,7 +48501,7 @@
"source_file": "src/exlab_wizard/cache/sync_state_writer.py",
"source_location": "L208",
"id": "cache_sync_state_writer_decode_locked",
- "community": 93,
+ "community": 6,
"norm_label": "_decode_locked()"
},
{
@@ -47205,7 +48510,7 @@
"source_file": "src/exlab_wizard/cache/sync_state_writer.py",
"source_location": "L217",
"id": "cache_sync_state_writer_syncstatewriter_upsert_file_blocking",
- "community": 93,
+ "community": 6,
"norm_label": "._upsert_file_blocking()"
},
{
@@ -47214,7 +48519,7 @@
"source_file": "src/exlab_wizard/cache/sync_state_writer.py",
"source_location": "L256",
"id": "cache_sync_state_writer_syncstatewriter_set_keep_local_blocking",
- "community": 93,
+ "community": 6,
"norm_label": "._set_keep_local_blocking()"
},
{
@@ -47223,7 +48528,7 @@
"source_file": "src/exlab_wizard/cache/sync_state_writer.py",
"source_location": "L278",
"id": "cache_sync_state_writer_syncstatewriter_mark_cleared_blocking",
- "community": 93,
+ "community": 6,
"norm_label": "._mark_cleared_blocking()"
},
{
@@ -47232,7 +48537,7 @@
"source_file": "src/exlab_wizard/cache/sync_state_writer.py",
"source_location": "L289",
"id": "cache_sync_state_writer_with_file",
- "community": 93,
+ "community": 6,
"norm_label": "_with_file()"
},
{
@@ -47241,7 +48546,7 @@
"source_file": "src/exlab_wizard/cache/sync_state_writer.py",
"source_location": "L1",
"id": "cache_sync_state_writer_rationale_1",
- "community": 93,
+ "community": 6,
"norm_label": "orchestrator-only writer for ``sync_state.json``. operator-free per-file nas sy"
},
{
@@ -47250,7 +48555,7 @@
"source_file": "src/exlab_wizard/cache/sync_state_writer.py",
"source_location": "L53",
"id": "cache_sync_state_writer_rationale_53",
- "community": 93,
+ "community": 6,
"norm_label": "return the ``sync_state.json`` path under a run directory."
},
{
@@ -47259,7 +48564,7 @@
"source_file": "src/exlab_wizard/cache/sync_state_writer.py",
"source_location": "L58",
"id": "cache_sync_state_writer_rationale_58",
- "community": 93,
+ "community": 6,
"norm_label": "create ``path``'s parent (the run's ``.exlab-wizard/`` cache) dir. neither"
},
{
@@ -47268,7 +48573,7 @@
"source_file": "src/exlab_wizard/cache/sync_state_writer.py",
"source_location": "L70",
"id": "cache_sync_state_writer_rationale_70",
- "community": 93,
+ "community": 6,
"norm_label": "return a fresh, file-less :class:`syncstatejson` at the current version."
},
{
@@ -47277,7 +48582,7 @@
"source_file": "src/exlab_wizard/cache/sync_state_writer.py",
"source_location": "L75",
"id": "cache_sync_state_writer_rationale_75",
- "community": 5,
+ "community": 6,
"norm_label": "writer for ``sync_state.json``. orchestrator-mode only. all public methods"
},
{
@@ -47286,7 +48591,7 @@
"source_file": "src/exlab_wizard/cache/sync_state_writer.py",
"source_location": "L83",
"id": "cache_sync_state_writer_rationale_83",
- "community": 251,
+ "community": 255,
"norm_label": "read and decode the run's ``sync_state.json``. returns a fresh empty :c"
},
{
@@ -47295,7 +48600,7 @@
"source_file": "src/exlab_wizard/cache/sync_state_writer.py",
"source_location": "L93",
"id": "cache_sync_state_writer_rationale_93",
- "community": 93,
+ "community": 6,
"norm_label": "blocking variant of :meth:`read` for synchronous callers. :meth:`read`"
},
{
@@ -47304,7 +48609,7 @@
"source_file": "src/exlab_wizard/cache/sync_state_writer.py",
"source_location": "L117",
"id": "cache_sync_state_writer_rationale_117",
- "community": 5,
+ "community": 6,
"norm_label": "create or update one file record under an exclusive lock. the record fo"
},
{
@@ -47313,7 +48618,7 @@
"source_file": "src/exlab_wizard/cache/sync_state_writer.py",
"source_location": "L153",
"id": "cache_sync_state_writer_rationale_153",
- "community": 5,
+ "community": 6,
"norm_label": "toggle a file's ``keep_local`` flag, creating the record if absent."
},
{
@@ -47322,7 +48627,7 @@
"source_file": "src/exlab_wizard/cache/sync_state_writer.py",
"source_location": "L162",
"id": "cache_sync_state_writer_rationale_162",
- "community": 5,
+ "community": 6,
"norm_label": "stamp ``cleared_at`` with the current utc time. called once the run's s"
},
{
@@ -47331,7 +48636,7 @@
"source_file": "src/exlab_wizard/cache/sync_state_writer.py",
"source_location": "L170",
"id": "cache_sync_state_writer_rationale_170",
- "community": 93,
+ "community": 6,
"norm_label": "blocking variant of :meth:`mark_cleared` for synchronous callers. used"
},
{
@@ -47340,7 +48645,7 @@
"source_file": "src/exlab_wizard/cache/sync_state_writer.py",
"source_location": "L181",
"id": "cache_sync_state_writer_rationale_181",
- "community": 609,
+ "community": 634,
"norm_label": "derive the run-level :class:`runsyncstate` rollup from ``state``. pure"
},
{
@@ -47349,7 +48654,7 @@
"source_file": "src/exlab_wizard/cache/sync_state_writer.py",
"source_location": "L209",
"id": "cache_sync_state_writer_rationale_209",
- "community": 610,
+ "community": 635,
"norm_label": "decode ``sync_state.json``, returning an empty state if absent. caller"
},
{
@@ -47358,7 +48663,7 @@
"source_file": "src/exlab_wizard/cache/sync_state_writer.py",
"source_location": "L294",
"id": "cache_sync_state_writer_rationale_294",
- "community": 611,
+ "community": 636,
"norm_label": "return a copy of ``payload`` with ``files[rel_path]`` set to ``record``."
},
{
@@ -47367,7 +48672,7 @@
"source_file": "src/exlab_wizard/cache/__init__.py",
"source_location": "L1",
"id": "src_exlab_wizard_cache_init_py",
- "community": 93,
+ "community": 6,
"norm_label": "__init__.py"
},
{
@@ -47376,7 +48681,7 @@
"source_file": "src/exlab_wizard/cache/__init__.py",
"source_location": "L14",
"id": "cache_init_lock_path_for",
- "community": 93,
+ "community": 6,
"norm_label": "lock_path_for()"
},
{
@@ -47385,7 +48690,7 @@
"source_file": "src/exlab_wizard/cache/__init__.py",
"source_location": "L15",
"id": "cache_init_rationale_15",
- "community": 93,
+ "community": 6,
"norm_label": "return the advisory file-lock path string for ``path``. centralizes the ``s"
},
{
@@ -47394,7 +48699,7 @@
"source_file": "src/exlab_wizard/cache/log_writer.py",
"source_location": "L1",
"id": "src_exlab_wizard_cache_log_writer_py",
- "community": 33,
+ "community": 34,
"norm_label": "log_writer.py"
},
{
@@ -47403,7 +48708,7 @@
"source_file": "src/exlab_wizard/cache/log_writer.py",
"source_location": "L72",
"id": "cache_log_writer_format_log_line",
- "community": 33,
+ "community": 34,
"norm_label": "format_log_line()"
},
{
@@ -47412,7 +48717,7 @@
"source_file": "src/exlab_wizard/cache/log_writer.py",
"source_location": "L115",
"id": "cache_log_writer_render_tags",
- "community": 33,
+ "community": 34,
"norm_label": "_render_tags()"
},
{
@@ -47421,7 +48726,7 @@
"source_file": "src/exlab_wizard/cache/log_writer.py",
"source_location": "L143",
"id": "cache_log_writer_truncate_if_needed",
- "community": 33,
+ "community": 34,
"norm_label": "_truncate_if_needed()"
},
{
@@ -47430,7 +48735,7 @@
"source_file": "src/exlab_wizard/cache/log_writer.py",
"source_location": "L182",
"id": "cache_log_writer_append_log_line",
- "community": 33,
+ "community": 34,
"norm_label": "append_log_line()"
},
{
@@ -47439,7 +48744,7 @@
"source_file": "src/exlab_wizard/cache/log_writer.py",
"source_location": "L1",
"id": "cache_log_writer_rationale_1",
- "community": 33,
+ "community": 34,
"norm_label": "append-only writer for ``wizard..log`` files. backend spec \u00a711.5, \u00a716."
},
{
@@ -47448,7 +48753,7 @@
"source_file": "src/exlab_wizard/cache/log_writer.py",
"source_location": "L83",
"id": "cache_log_writer_rationale_83",
- "community": 33,
+ "community": 34,
"norm_label": "render a structured log line per backend spec \u00a711.5 / \u00a716.4. tags are omitt"
},
{
@@ -47457,7 +48762,7 @@
"source_file": "src/exlab_wizard/cache/log_writer.py",
"source_location": "L123",
"id": "cache_log_writer_rationale_123",
- "community": 33,
+ "community": 34,
"norm_label": "render the supplied context as ``[host:..] [equip:..] ...``. returns the em"
},
{
@@ -47466,7 +48771,7 @@
"source_file": "src/exlab_wizard/cache/log_writer.py",
"source_location": "L144",
"id": "cache_log_writer_rationale_144",
- "community": 33,
+ "community": 34,
"norm_label": "trim ``line`` so its utf-8 byte length is at most ``log_line_max_bytes``. t"
},
{
@@ -47475,7 +48780,7 @@
"source_file": "src/exlab_wizard/cache/log_writer.py",
"source_location": "L183",
"id": "cache_log_writer_rationale_183",
- "community": 33,
+ "community": 34,
"norm_label": "append a single ``line`` to a ``wizard..log`` file. creates the p"
},
{
@@ -47484,7 +48789,7 @@
"source_file": "src/exlab_wizard/cache/creation_writer.py",
"source_location": "L1",
"id": "src_exlab_wizard_cache_creation_writer_py",
- "community": 207,
+ "community": 233,
"norm_label": "creation_writer.py"
},
{
@@ -47493,7 +48798,7 @@
"source_file": "src/exlab_wizard/cache/creation_writer.py",
"source_location": "L69",
"id": "cache_creation_writer_select_active_overrides",
- "community": 128,
+ "community": 152,
"norm_label": "select_active_overrides()"
},
{
@@ -47502,7 +48807,7 @@
"source_file": "src/exlab_wizard/cache/creation_writer.py",
"source_location": "L123",
"id": "cache_creation_writer_is_future",
- "community": 207,
+ "community": 134,
"norm_label": "_is_future()"
},
{
@@ -47511,7 +48816,7 @@
"source_file": "src/exlab_wizard/cache/creation_writer.py",
"source_location": "L143",
"id": "cache_creation_writer_apply_migration_defaults",
- "community": 207,
+ "community": 233,
"norm_label": "_apply_migration_defaults()"
},
{
@@ -47520,7 +48825,7 @@
"source_file": "src/exlab_wizard/cache/creation_writer.py",
"source_location": "L188",
"id": "cache_creation_writer_creationwriter",
- "community": 28,
+ "community": 1,
"norm_label": "creationwriter"
},
{
@@ -47529,7 +48834,7 @@
"source_file": "src/exlab_wizard/cache/creation_writer.py",
"source_location": "L191",
"id": "cache_creation_writer_creationwriter_init",
- "community": 28,
+ "community": 1,
"norm_label": ".__init__()"
},
{
@@ -47538,7 +48843,7 @@
"source_file": "src/exlab_wizard/cache/creation_writer.py",
"source_location": "L204",
"id": "cache_creation_writer_creationwriter_write_creation",
- "community": 28,
+ "community": 1,
"norm_label": ".write_creation()"
},
{
@@ -47547,7 +48852,7 @@
"source_file": "src/exlab_wizard/cache/creation_writer.py",
"source_location": "L214",
"id": "cache_creation_writer_creationwriter_update_creation_atomic",
- "community": 28,
+ "community": 1,
"norm_label": ".update_creation_atomic()"
},
{
@@ -47556,7 +48861,7 @@
"source_file": "src/exlab_wizard/cache/creation_writer.py",
"source_location": "L232",
"id": "cache_creation_writer_creationwriter_read_creation_snapshot",
- "community": 28,
+ "community": 1,
"norm_label": ".read_creation_snapshot()"
},
{
@@ -47565,7 +48870,7 @@
"source_file": "src/exlab_wizard/cache/creation_writer.py",
"source_location": "L243",
"id": "cache_creation_writer_creationwriter_write_creation_sync",
- "community": 207,
+ "community": 233,
"norm_label": "._write_creation_sync()"
},
{
@@ -47574,7 +48879,7 @@
"source_file": "src/exlab_wizard/cache/creation_writer.py",
"source_location": "L248",
"id": "cache_creation_writer_creationwriter_update_creation_sync",
- "community": 207,
+ "community": 233,
"norm_label": "._update_creation_sync()"
},
{
@@ -47583,7 +48888,7 @@
"source_file": "src/exlab_wizard/cache/creation_writer.py",
"source_location": "L267",
"id": "cache_creation_writer_creationwriter_read_creation_sync",
- "community": 207,
+ "community": 233,
"norm_label": "._read_creation_sync()"
},
{
@@ -47592,7 +48897,7 @@
"source_file": "src/exlab_wizard/cache/creation_writer.py",
"source_location": "L276",
"id": "cache_creation_writer_creationwriter_decode_raw",
- "community": 207,
+ "community": 233,
"norm_label": "._decode_raw()"
},
{
@@ -47601,7 +48906,7 @@
"source_file": "src/exlab_wizard/cache/creation_writer.py",
"source_location": "L300",
"id": "cache_creation_writer_creationwriter_encode_and_replace",
- "community": 207,
+ "community": 233,
"norm_label": "._encode_and_replace()"
},
{
@@ -47610,7 +48915,7 @@
"source_file": "src/exlab_wizard/cache/creation_writer.py",
"source_location": "L316",
"id": "cache_creation_writer_payload_to_dict",
- "community": 207,
+ "community": 233,
"norm_label": "_payload_to_dict()"
},
{
@@ -47619,7 +48924,7 @@
"source_file": "src/exlab_wizard/cache/creation_writer.py",
"source_location": "L327",
"id": "cache_creation_writer_merge_unknown_fields",
- "community": 207,
+ "community": 233,
"norm_label": "_merge_unknown_fields()"
},
{
@@ -47628,7 +48933,7 @@
"source_file": "src/exlab_wizard/cache/creation_writer.py",
"source_location": "L1",
"id": "cache_creation_writer_rationale_1",
- "community": 207,
+ "community": 233,
"norm_label": "atomic reader/writer for ``creation.json``. backend spec \u00a74.4.5. all ``creation"
},
{
@@ -47637,7 +48942,7 @@
"source_file": "src/exlab_wizard/cache/creation_writer.py",
"source_location": "L74",
"id": "cache_creation_writer_rationale_74",
- "community": 128,
+ "community": 152,
"norm_label": "return the subset of override entries that are currently active. implements"
},
{
@@ -47646,7 +48951,7 @@
"source_file": "src/exlab_wizard/cache/creation_writer.py",
"source_location": "L124",
"id": "cache_creation_writer_rationale_124",
- "community": 207,
+ "community": 134,
"norm_label": "return true if ``expires_at`` (utc iso-8601) is strictly after ``now``. the"
},
{
@@ -47655,7 +48960,7 @@
"source_file": "src/exlab_wizard/cache/creation_writer.py",
"source_location": "L144",
"id": "cache_creation_writer_rationale_144",
- "community": 207,
+ "community": 233,
"norm_label": "apply \u00a711.3 history-table defaults for fields missing on old minors. return"
},
{
@@ -47664,7 +48969,7 @@
"source_file": "src/exlab_wizard/cache/creation_writer.py",
"source_location": "L189",
"id": "cache_creation_writer_rationale_189",
- "community": 28,
+ "community": 1,
"norm_label": "atomic reader/writer for ``creation.json``. backend spec \u00a74.4.5."
},
{
@@ -47673,7 +48978,7 @@
"source_file": "src/exlab_wizard/cache/creation_writer.py",
"source_location": "L192",
"id": "cache_creation_writer_rationale_192",
- "community": 28,
+ "community": 1,
"norm_label": "construct the writer. ``lock_timeout_seconds`` is the wall-clock cap fo"
},
{
@@ -47682,7 +48987,7 @@
"source_file": "src/exlab_wizard/cache/creation_writer.py",
"source_location": "L205",
"id": "cache_creation_writer_rationale_205",
- "community": 28,
+ "community": 1,
"norm_label": "write a fresh ``creation.json``. reserved for initial creation. acquire"
},
{
@@ -47691,7 +48996,7 @@
"source_file": "src/exlab_wizard/cache/creation_writer.py",
"source_location": "L219",
"id": "cache_creation_writer_rationale_219",
- "community": 28,
+ "community": 1,
"norm_label": "read, mutate, and write ``creation.json`` under one ``lock_ex``. the fu"
},
{
@@ -47700,7 +49005,7 @@
"source_file": "src/exlab_wizard/cache/creation_writer.py",
"source_location": "L233",
"id": "cache_creation_writer_rationale_233",
- "community": 28,
+ "community": 1,
"norm_label": "read a snapshot under ``lock_sh`` (shared/read lock). concurrent reader"
},
{
@@ -47709,7 +49014,7 @@
"source_file": "src/exlab_wizard/cache/creation_writer.py",
"source_location": "L277",
"id": "cache_creation_writer_rationale_277",
- "community": 207,
+ "community": 233,
"norm_label": "load the file as a raw ``dict`` (no struct conversion yet). we need the"
},
{
@@ -47718,7 +49023,7 @@
"source_file": "src/exlab_wizard/cache/creation_writer.py",
"source_location": "L301",
"id": "cache_creation_writer_rationale_301",
- "community": 207,
+ "community": 233,
"norm_label": "encode ``payload`` to bytes, write atomically via atomic_write_bytes. t"
},
{
@@ -47727,7 +49032,7 @@
"source_file": "src/exlab_wizard/cache/creation_writer.py",
"source_location": "L317",
"id": "cache_creation_writer_rationale_317",
- "community": 207,
+ "community": 233,
"norm_label": "recursively convert a ``creationjson`` into a plain ``dict``. uses :func:`m"
},
{
@@ -47736,7 +49041,7 @@
"source_file": "src/exlab_wizard/cache/creation_writer.py",
"source_location": "L328",
"id": "cache_creation_writer_rationale_328",
- "community": 207,
+ "community": 233,
"norm_label": "copy keys from ``raw`` that are not in ``new_dict`` back into it. this is h"
},
{
@@ -47745,7 +49050,7 @@
"source_file": "src/exlab_wizard/config/models.py",
"source_location": "L1",
"id": "src_exlab_wizard_config_models_py",
- "community": 79,
+ "community": 38,
"norm_label": "models.py"
},
{
@@ -47754,7 +49059,7 @@
"source_file": "src/exlab_wizard/config/models.py",
"source_location": "L69",
"id": "config_models_parse_hhmm",
- "community": 79,
+ "community": 38,
"norm_label": "_parse_hhmm()"
},
{
@@ -47781,7 +49086,7 @@
"source_file": "src/exlab_wizard/config/models.py",
"source_location": "L124",
"id": "config_models_readmedefaultfield",
- "community": 166,
+ "community": 4,
"norm_label": "readmedefaultfield"
},
{
@@ -47790,7 +49095,7 @@
"source_file": "src/exlab_wizard/config/models.py",
"source_location": "L139",
"id": "config_models_id_matches_question_id_grammar",
- "community": 79,
+ "community": 38,
"norm_label": "_id_matches_question_id_grammar()"
},
{
@@ -47799,7 +49104,7 @@
"source_file": "src/exlab_wizard/config/models.py",
"source_location": "L149",
"id": "config_models_serialize_type",
- "community": 79,
+ "community": 38,
"norm_label": "_serialize_type()"
},
{
@@ -47808,7 +49113,7 @@
"source_file": "src/exlab_wizard/config/models.py",
"source_location": "L154",
"id": "config_models_choice_requires_non_empty_options",
- "community": 79,
+ "community": 38,
"norm_label": "_choice_requires_non_empty_options()"
},
{
@@ -47817,7 +49122,7 @@
"source_file": "src/exlab_wizard/config/models.py",
"source_location": "L165",
"id": "config_models_readmeconfig",
- "community": 79,
+ "community": 38,
"norm_label": "readmeconfig"
},
{
@@ -47826,7 +49131,7 @@
"source_file": "src/exlab_wizard/config/models.py",
"source_location": "L178",
"id": "config_models_bandwidthwindow",
- "community": 80,
+ "community": 89,
"norm_label": "bandwidthwindow"
},
{
@@ -47835,7 +49140,7 @@
"source_file": "src/exlab_wizard/config/models.py",
"source_location": "L188",
"id": "config_models_serialize_days",
- "community": 79,
+ "community": 38,
"norm_label": "_serialize_days()"
},
{
@@ -47844,7 +49149,7 @@
"source_file": "src/exlab_wizard/config/models.py",
"source_location": "L192",
"id": "config_models_from_must_precede_to",
- "community": 79,
+ "community": 38,
"norm_label": "_from_must_precede_to()"
},
{
@@ -47853,7 +49158,7 @@
"source_file": "src/exlab_wizard/config/models.py",
"source_location": "L201",
"id": "config_models_bandwidthconfig",
- "community": 134,
+ "community": 1,
"norm_label": "bandwidthconfig"
},
{
@@ -47862,7 +49167,7 @@
"source_file": "src/exlab_wizard/config/models.py",
"source_location": "L211",
"id": "config_models_upload_mbps_positive_or_none",
- "community": 79,
+ "community": 38,
"norm_label": "_upload_mbps_positive_or_none()"
},
{
@@ -47871,7 +49176,7 @@
"source_file": "src/exlab_wizard/config/models.py",
"source_location": "L223",
"id": "config_models_rcloneperf",
- "community": 174,
+ "community": 8,
"norm_label": "rcloneperf"
},
{
@@ -47898,7 +49203,7 @@
"source_file": "src/exlab_wizard/config/models.py",
"source_location": "L290",
"id": "config_models_serialize_sync_mode",
- "community": 79,
+ "community": 38,
"norm_label": "_serialize_sync_mode()"
},
{
@@ -47907,7 +49212,7 @@
"source_file": "src/exlab_wizard/config/models.py",
"source_location": "L295",
"id": "config_models_validate_equipment_id",
- "community": 79,
+ "community": 38,
"norm_label": "_validate_equipment_id()"
},
{
@@ -47916,7 +49221,7 @@
"source_file": "src/exlab_wizard/config/models.py",
"source_location": "L311",
"id": "config_models_nascleanupconfig",
- "community": 351,
+ "community": 37,
"norm_label": "nascleanupconfig"
},
{
@@ -47925,7 +49230,7 @@
"source_file": "src/exlab_wizard/config/models.py",
"source_location": "L327",
"id": "config_models_loggingconfig",
- "community": 271,
+ "community": 19,
"norm_label": "loggingconfig"
},
{
@@ -47934,7 +49239,7 @@
"source_file": "src/exlab_wizard/config/models.py",
"source_location": "L338",
"id": "config_models_normalize_and_validate_level",
- "community": 79,
+ "community": 38,
"norm_label": "_normalize_and_validate_level()"
},
{
@@ -47943,7 +49248,7 @@
"source_file": "src/exlab_wizard/config/models.py",
"source_location": "L358",
"id": "config_models_operatorsconfig",
- "community": 370,
+ "community": 38,
"norm_label": "operatorsconfig"
},
{
@@ -47952,7 +49257,7 @@
"source_file": "src/exlab_wizard/config/models.py",
"source_location": "L371",
"id": "config_models_default_content_scan_extensions",
- "community": 79,
+ "community": 38,
"norm_label": "_default_content_scan_extensions()"
},
{
@@ -47961,7 +49266,7 @@
"source_file": "src/exlab_wizard/config/models.py",
"source_location": "L390",
"id": "config_models_validatorconfig",
- "community": 133,
+ "community": 211,
"norm_label": "validatorconfig"
},
{
@@ -47970,7 +49275,7 @@
"source_file": "src/exlab_wizard/config/models.py",
"source_location": "L402",
"id": "config_models_extensions_must_start_with_dot",
- "community": 79,
+ "community": 38,
"norm_label": "_extensions_must_start_with_dot()"
},
{
@@ -47979,7 +49284,7 @@
"source_file": "src/exlab_wizard/config/models.py",
"source_location": "L415",
"id": "config_models_pluginsconfig",
- "community": 79,
+ "community": 423,
"norm_label": "pluginsconfig"
},
{
@@ -47988,7 +49293,7 @@
"source_file": "src/exlab_wizard/config/models.py",
"source_location": "L428",
"id": "config_models_default_ignore_globs",
- "community": 79,
+ "community": 38,
"norm_label": "_default_ignore_globs()"
},
{
@@ -47997,7 +49302,7 @@
"source_file": "src/exlab_wizard/config/models.py",
"source_location": "L432",
"id": "config_models_syncconfig",
- "community": 166,
+ "community": 292,
"norm_label": "syncconfig"
},
{
@@ -48006,7 +49311,7 @@
"source_file": "src/exlab_wizard/config/models.py",
"source_location": "L449",
"id": "config_models_orchestratorstagingcleanup",
- "community": 8,
+ "community": 13,
"norm_label": "orchestratorstagingcleanup"
},
{
@@ -48015,7 +49320,7 @@
"source_file": "src/exlab_wizard/config/models.py",
"source_location": "L460",
"id": "config_models_serialize_mode",
- "community": 79,
+ "community": 38,
"norm_label": "_serialize_mode()"
},
{
@@ -48042,7 +49347,7 @@
"source_file": "src/exlab_wizard/config/models.py",
"source_location": "L520",
"id": "config_models_cross_field_invariants",
- "community": 79,
+ "community": 38,
"norm_label": "_cross_field_invariants()"
},
{
@@ -48051,7 +49356,7 @@
"source_file": "src/exlab_wizard/config/models.py",
"source_location": "L540",
"id": "config_models_config_with_equipment_appended",
- "community": 250,
+ "community": 261,
"norm_label": "config_with_equipment_appended()"
},
{
@@ -48060,7 +49365,7 @@
"source_file": "src/exlab_wizard/config/models.py",
"source_location": "L1",
"id": "config_models_rationale_1",
- "community": 79,
+ "community": 38,
"norm_label": "pydantic models that mirror ``config.yaml``. backend spec \u00a79. these models are"
},
{
@@ -48069,7 +49374,7 @@
"source_file": "src/exlab_wizard/config/models.py",
"source_location": "L70",
"id": "config_models_rationale_70",
- "community": 79,
+ "community": 38,
"norm_label": "return ``datetime.time`` for a strict zero-padded ``hh:mm`` string. the wiz"
},
{
@@ -48096,7 +49401,7 @@
"source_file": "src/exlab_wizard/config/models.py",
"source_location": "L125",
"id": "config_models_rationale_125",
- "community": 166,
+ "community": 4,
"norm_label": "one operator-defined extra readme field. backend spec \u00a79, \u00a710."
},
{
@@ -48105,7 +49410,7 @@
"source_file": "src/exlab_wizard/config/models.py",
"source_location": "L166",
"id": "config_models_rationale_166",
- "community": 79,
+ "community": 38,
"norm_label": "``readme:`` block. lab-policy fields layered on top of the core set."
},
{
@@ -48114,7 +49419,7 @@
"source_file": "src/exlab_wizard/config/models.py",
"source_location": "L179",
"id": "config_models_rationale_179",
- "community": 80,
+ "community": 89,
"norm_label": "one ``{days, from, to}`` window. backend spec \u00a79."
},
{
@@ -48123,7 +49428,7 @@
"source_file": "src/exlab_wizard/config/models.py",
"source_location": "L202",
"id": "config_models_rationale_202",
- "community": 134,
+ "community": 1,
"norm_label": "``bandwidth:`` sub-block on a transport."
},
{
@@ -48132,7 +49437,7 @@
"source_file": "src/exlab_wizard/config/models.py",
"source_location": "L224",
"id": "config_models_rationale_224",
- "community": 174,
+ "community": 8,
"norm_label": "parallelism knobs forwarded to rclone (``--transfers`` / ``--checkers``). t"
},
{
@@ -48159,7 +49464,7 @@
"source_file": "src/exlab_wizard/config/models.py",
"source_location": "L312",
"id": "config_models_rationale_312",
- "community": 351,
+ "community": 37,
"norm_label": "``nas_cleanup:`` block. local-copy retention after nas verify."
},
{
@@ -48168,7 +49473,7 @@
"source_file": "src/exlab_wizard/config/models.py",
"source_location": "L328",
"id": "config_models_rationale_328",
- "community": 271,
+ "community": 19,
"norm_label": "``logging:`` block. central app-log rotation + level."
},
{
@@ -48177,7 +49482,7 @@
"source_file": "src/exlab_wizard/config/models.py",
"source_location": "L359",
"id": "config_models_rationale_359",
- "community": 370,
+ "community": 38,
"norm_label": "``operators:`` block. optional case-sensitive allowlist."
},
{
@@ -48186,7 +49491,7 @@
"source_file": "src/exlab_wizard/config/models.py",
"source_location": "L391",
"id": "config_models_rationale_391",
- "community": 133,
+ "community": 211,
"norm_label": "``validator:`` block. content-scan tuning. backend spec \u00a78.1.1, \u00a711.8."
},
{
@@ -48195,7 +49500,7 @@
"source_file": "src/exlab_wizard/config/models.py",
"source_location": "L416",
"id": "config_models_rationale_416",
- "community": 79,
+ "community": 423,
"norm_label": "``plugins:`` block. master opt-in for network-declaring plugins."
},
{
@@ -48204,7 +49509,7 @@
"source_file": "src/exlab_wizard/config/models.py",
"source_location": "L433",
"id": "config_models_rationale_433",
- "community": 166,
+ "community": 292,
"norm_label": "``sync:`` block. nas sync engine kill-switch + retry / quiescence policy."
},
{
@@ -48213,7 +49518,7 @@
"source_file": "src/exlab_wizard/config/models.py",
"source_location": "L450",
"id": "config_models_rationale_450",
- "community": 8,
+ "community": 13,
"norm_label": "``orchestrator.staging_cleanup:`` sub-block. backend spec \u00a713.7."
},
{
@@ -48240,7 +49545,7 @@
"source_file": "src/exlab_wizard/config/models.py",
"source_location": "L541",
"id": "config_models_rationale_541",
- "community": 250,
+ "community": 261,
"norm_label": "return a copy of ``config`` with ``equipment`` appended. the single place t"
},
{
@@ -48249,7 +49554,7 @@
"source_file": "src/exlab_wizard/config/__init__.py",
"source_location": "L1",
"id": "src_exlab_wizard_config_init_py",
- "community": 435,
+ "community": 474,
"norm_label": "__init__.py"
},
{
@@ -48258,7 +49563,7 @@
"source_file": "src/exlab_wizard/config/loader.py",
"source_location": "L1",
"id": "src_exlab_wizard_config_loader_py",
- "community": 13,
+ "community": 268,
"norm_label": "loader.py"
},
{
@@ -48267,7 +49572,7 @@
"source_file": "src/exlab_wizard/config/loader.py",
"source_location": "L33",
"id": "config_loader_test_mode_enabled",
- "community": 13,
+ "community": 268,
"norm_label": "_test_mode_enabled()"
},
{
@@ -48276,7 +49581,7 @@
"source_file": "src/exlab_wizard/config/loader.py",
"source_location": "L43",
"id": "config_loader_apply_test_mode_prefix",
- "community": 13,
+ "community": 108,
"norm_label": "apply_test_mode_prefix()"
},
{
@@ -48285,7 +49590,7 @@
"source_file": "src/exlab_wizard/config/loader.py",
"source_location": "L79",
"id": "config_loader_yaml",
- "community": 13,
+ "community": 268,
"norm_label": "_yaml()"
},
{
@@ -48294,7 +49599,7 @@
"source_file": "src/exlab_wizard/config/loader.py",
"source_location": "L92",
"id": "config_loader_load_config",
- "community": 13,
+ "community": 174,
"norm_label": "load_config()"
},
{
@@ -48303,7 +49608,7 @@
"source_file": "src/exlab_wizard/config/loader.py",
"source_location": "L108",
"id": "config_loader_load_config_from_text",
- "community": 13,
+ "community": 108,
"norm_label": "load_config_from_text()"
},
{
@@ -48312,7 +49617,7 @@
"source_file": "src/exlab_wizard/config/loader.py",
"source_location": "L128",
"id": "config_loader_save_config",
- "community": 13,
+ "community": 174,
"norm_label": "save_config()"
},
{
@@ -48321,7 +49626,7 @@
"source_file": "src/exlab_wizard/config/loader.py",
"source_location": "L157",
"id": "config_loader_deep_merge",
- "community": 13,
+ "community": 268,
"norm_label": "_deep_merge()"
},
{
@@ -48330,7 +49635,7 @@
"source_file": "src/exlab_wizard/config/loader.py",
"source_location": "L171",
"id": "config_loader_dump_config",
- "community": 13,
+ "community": 268,
"norm_label": "dump_config()"
},
{
@@ -48339,7 +49644,7 @@
"source_file": "src/exlab_wizard/config/loader.py",
"source_location": "L1",
"id": "config_loader_rationale_1",
- "community": 13,
+ "community": 268,
"norm_label": "config.yaml round-trip loader. backend spec \u00a79. uses ruamel.yaml in round-trip"
},
{
@@ -48348,7 +49653,7 @@
"source_file": "src/exlab_wizard/config/loader.py",
"source_location": "L34",
"id": "config_loader_rationale_34",
- "community": 13,
+ "community": 268,
"norm_label": "return true when the env var :data:`test_mode_env` is truthy. centralized h"
},
{
@@ -48357,7 +49662,7 @@
"source_file": "src/exlab_wizard/config/loader.py",
"source_location": "L44",
"id": "config_loader_rationale_44",
- "community": 13,
+ "community": 108,
"norm_label": "return ``config`` with each equipment id prefixed by :data:`test_mode_prefix`."
},
{
@@ -48366,7 +49671,7 @@
"source_file": "src/exlab_wizard/config/loader.py",
"source_location": "L80",
"id": "config_loader_rationale_80",
- "community": 13,
+ "community": 268,
"norm_label": "build a configured ruamel.yaml instance. typ='rt' is round-trip mode (prese"
},
{
@@ -48375,7 +49680,7 @@
"source_file": "src/exlab_wizard/config/loader.py",
"source_location": "L93",
"id": "config_loader_rationale_93",
- "community": 13,
+ "community": 174,
"norm_label": "load a config.yaml from disk and validate against the pydantic model. raise"
},
{
@@ -48384,7 +49689,7 @@
"source_file": "src/exlab_wizard/config/loader.py",
"source_location": "L109",
"id": "config_loader_rationale_109",
- "community": 13,
+ "community": 108,
"norm_label": "load a config from yaml text. same semantics as load_config but for in-memory in"
},
{
@@ -48393,7 +49698,7 @@
"source_file": "src/exlab_wizard/config/loader.py",
"source_location": "L129",
"id": "config_loader_rationale_129",
- "community": 13,
+ "community": 174,
"norm_label": "atomically write `config` back to `path`. if `original_text` is supplied, r"
},
{
@@ -48402,7 +49707,7 @@
"source_file": "src/exlab_wizard/config/loader.py",
"source_location": "L158",
"id": "config_loader_rationale_158",
- "community": 13,
+ "community": 268,
"norm_label": "in-place deep-merge source into target. used by save_config to overlay new"
},
{
@@ -48411,16 +49716,70 @@
"source_file": "src/exlab_wizard/config/loader.py",
"source_location": "L172",
"id": "config_loader_rationale_172",
- "community": 13,
+ "community": 268,
"norm_label": "serialize config to a yaml string. no comment preservation; tests use this."
},
+ {
+ "label": "test_bootstrap.py",
+ "file_type": "code",
+ "source_file": "src/exlab_wizard/config/test_bootstrap.py",
+ "source_location": "L1",
+ "id": "src_exlab_wizard_config_test_bootstrap_py",
+ "community": 399,
+ "norm_label": "test_bootstrap.py"
+ },
+ {
+ "label": "write_starter_test_config()",
+ "file_type": "code",
+ "source_file": "src/exlab_wizard/config/test_bootstrap.py",
+ "source_location": "L18",
+ "id": "config_test_bootstrap_write_starter_test_config",
+ "community": 0,
+ "norm_label": "write_starter_test_config()"
+ },
+ {
+ "label": "bootstrap_test_config()",
+ "file_type": "code",
+ "source_file": "src/exlab_wizard/config/test_bootstrap.py",
+ "source_location": "L68",
+ "id": "config_test_bootstrap_bootstrap_test_config",
+ "community": 399,
+ "norm_label": "bootstrap_test_config()"
+ },
+ {
+ "label": "Starter ``config.yaml`` bootstrap for the ``-test`` sandbox. Shared by the tray",
+ "file_type": "rationale",
+ "source_file": "src/exlab_wizard/config/test_bootstrap.py",
+ "source_location": "L1",
+ "id": "config_test_bootstrap_rationale_1",
+ "community": 399,
+ "norm_label": "starter ``config.yaml`` bootstrap for the ``-test`` sandbox. shared by the tray"
+ },
+ {
+ "label": "Write a starter test ``config.yaml`` if one does not already exist. Preseed",
+ "file_type": "rationale",
+ "source_file": "src/exlab_wizard/config/test_bootstrap.py",
+ "source_location": "L19",
+ "id": "config_test_bootstrap_rationale_19",
+ "community": 0,
+ "norm_label": "write a starter test ``config.yaml`` if one does not already exist. preseed"
+ },
+ {
+ "label": "Tray ``--test`` bootstrap: write the starter config, optionally seed samples.",
+ "file_type": "rationale",
+ "source_file": "src/exlab_wizard/config/test_bootstrap.py",
+ "source_location": "L69",
+ "id": "config_test_bootstrap_rationale_69",
+ "community": 399,
+ "norm_label": "tray ``--test`` bootstrap: write the starter config, optionally seed samples."
+ },
{
"label": "registry.py",
"file_type": "code",
"source_file": "src/exlab_wizard/plugins/registry.py",
"source_location": "L1",
"id": "src_exlab_wizard_plugins_registry_py",
- "community": 4,
+ "community": 7,
"norm_label": "registry.py"
},
{
@@ -48429,7 +49788,7 @@
"source_file": "src/exlab_wizard/plugins/registry.py",
"source_location": "L62",
"id": "plugins_registry_pluginmanifest",
- "community": 4,
+ "community": 7,
"norm_label": "pluginmanifest"
},
{
@@ -48438,7 +49797,7 @@
"source_file": "src/exlab_wizard/plugins/registry.py",
"source_location": "L83",
"id": "plugins_registry_pluginrecord",
- "community": 4,
+ "community": 7,
"norm_label": "pluginrecord"
},
{
@@ -48447,7 +49806,7 @@
"source_file": "src/exlab_wizard/plugins/registry.py",
"source_location": "L103",
"id": "plugins_registry_pluginplan",
- "community": 4,
+ "community": 7,
"norm_label": "pluginplan"
},
{
@@ -48456,7 +49815,7 @@
"source_file": "src/exlab_wizard/plugins/registry.py",
"source_location": "L115",
"id": "plugins_registry_registryreport",
- "community": 4,
+ "community": 7,
"norm_label": "registryreport"
},
{
@@ -48465,7 +49824,7 @@
"source_file": "src/exlab_wizard/plugins/registry.py",
"source_location": "L128",
"id": "plugins_registry_pluginregistry",
- "community": 4,
+ "community": 7,
"norm_label": "pluginregistry"
},
{
@@ -48474,7 +49833,7 @@
"source_file": "src/exlab_wizard/plugins/registry.py",
"source_location": "L140",
"id": "plugins_registry_pluginregistry_init",
- "community": 4,
+ "community": 7,
"norm_label": ".__init__()"
},
{
@@ -48483,7 +49842,7 @@
"source_file": "src/exlab_wizard/plugins/registry.py",
"source_location": "L157",
"id": "plugins_registry_pluginregistry_reload",
- "community": 4,
+ "community": 7,
"norm_label": ".reload()"
},
{
@@ -48492,7 +49851,7 @@
"source_file": "src/exlab_wizard/plugins/registry.py",
"source_location": "L181",
"id": "plugins_registry_pluginregistry_absorb",
- "community": 4,
+ "community": 7,
"norm_label": "._absorb()"
},
{
@@ -48501,7 +49860,7 @@
"source_file": "src/exlab_wizard/plugins/registry.py",
"source_location": "L210",
"id": "plugins_registry_pluginregistry_iter_root",
- "community": 4,
+ "community": 7,
"norm_label": "._iter_root()"
},
{
@@ -48510,7 +49869,7 @@
"source_file": "src/exlab_wizard/plugins/registry.py",
"source_location": "L230",
"id": "plugins_registry_pluginregistry_load_plugin",
- "community": 4,
+ "community": 7,
"norm_label": "._load_plugin()"
},
{
@@ -48519,7 +49878,7 @@
"source_file": "src/exlab_wizard/plugins/registry.py",
"source_location": "L354",
"id": "plugins_registry_pluginregistry_get",
- "community": 4,
+ "community": 7,
"norm_label": ".get()"
},
{
@@ -48528,7 +49887,7 @@
"source_file": "src/exlab_wizard/plugins/registry.py",
"source_location": "L358",
"id": "plugins_registry_pluginregistry_list_all",
- "community": 4,
+ "community": 7,
"norm_label": ".list_all()"
},
{
@@ -48537,7 +49896,7 @@
"source_file": "src/exlab_wizard/plugins/registry.py",
"source_location": "L362",
"id": "plugins_registry_pluginregistry_candidates_for",
- "community": 4,
+ "community": 7,
"norm_label": ".candidates_for()"
},
{
@@ -48546,7 +49905,7 @@
"source_file": "src/exlab_wizard/plugins/registry.py",
"source_location": "L386",
"id": "plugins_registry_as_str_list",
- "community": 4,
+ "community": 7,
"norm_label": "_as_str_list()"
},
{
@@ -48555,7 +49914,7 @@
"source_file": "src/exlab_wizard/plugins/registry.py",
"source_location": "L393",
"id": "plugins_registry_suffix_or_full",
- "community": 4,
+ "community": 7,
"norm_label": "_suffix_or_full()"
},
{
@@ -48564,7 +49923,7 @@
"source_file": "src/exlab_wizard/plugins/registry.py",
"source_location": "L1",
"id": "plugins_registry_rationale_1",
- "community": 4,
+ "community": 7,
"norm_label": "plugin registry -- manifest-driven discovery + dispatch resolution. backend spe"
},
{
@@ -48573,7 +49932,7 @@
"source_file": "src/exlab_wizard/plugins/registry.py",
"source_location": "L63",
"id": "plugins_registry_rationale_63",
- "community": 4,
+ "community": 7,
"norm_label": "parsed ``manifest.yml`` contents. backend spec \u00a76.1.2. mirrors the schema d"
},
{
@@ -48582,7 +49941,7 @@
"source_file": "src/exlab_wizard/plugins/registry.py",
"source_location": "L84",
"id": "plugins_registry_rationale_84",
- "community": 4,
+ "community": 7,
"norm_label": "one plugin in the registry. carries the parsed manifest, the source-on-disk"
},
{
@@ -48591,7 +49950,7 @@
"source_file": "src/exlab_wizard/plugins/registry.py",
"source_location": "L104",
"id": "plugins_registry_rationale_104",
- "community": 4,
+ "community": 7,
"norm_label": "one plugin paired with the files in the rendered tree it matches. built by"
},
{
@@ -48600,7 +49959,7 @@
"source_file": "src/exlab_wizard/plugins/registry.py",
"source_location": "L116",
"id": "plugins_registry_rationale_116",
- "community": 4,
+ "community": 7,
"norm_label": "outcome of a :meth:`pluginregistry.reload` pass. ``loaded`` is the list of"
},
{
@@ -48609,7 +49968,7 @@
"source_file": "src/exlab_wizard/plugins/registry.py",
"source_location": "L129",
"id": "plugins_registry_rationale_129",
- "community": 4,
+ "community": 7,
"norm_label": "manifest-driven plugin registry. constructed at host startup with the two c"
},
{
@@ -48618,7 +49977,7 @@
"source_file": "src/exlab_wizard/plugins/registry.py",
"source_location": "L158",
"id": "plugins_registry_rationale_158",
- "community": 4,
+ "community": 7,
"norm_label": "re-scan both plugin roots and rebuild the in-memory record table. bundl"
},
{
@@ -48627,7 +49986,7 @@
"source_file": "src/exlab_wizard/plugins/registry.py",
"source_location": "L187",
"id": "plugins_registry_rationale_187",
- "community": 4,
+ "community": 7,
"norm_label": "merge one parsed plugin (or one rejection) into the report."
},
{
@@ -48636,7 +49995,7 @@
"source_file": "src/exlab_wizard/plugins/registry.py",
"source_location": "L215",
"id": "plugins_registry_rationale_215",
- "community": 4,
+ "community": 7,
"norm_label": "walk one plugin root and yield ``(record_or_none, reason_or_none)`` pairs."
},
{
@@ -48645,7 +50004,7 @@
"source_file": "src/exlab_wizard/plugins/registry.py",
"source_location": "L235",
"id": "plugins_registry_rationale_235",
- "community": 4,
+ "community": 7,
"norm_label": "parse one plugin directory. returns ``(record, none)`` or ``(none, (name, reason"
},
{
@@ -48654,7 +50013,7 @@
"source_file": "src/exlab_wizard/plugins/registry.py",
"source_location": "L355",
"id": "plugins_registry_rationale_355",
- "community": 4,
+ "community": 7,
"norm_label": "return the record registered under ``name``, or ``none``."
},
{
@@ -48663,7 +50022,7 @@
"source_file": "src/exlab_wizard/plugins/registry.py",
"source_location": "L359",
"id": "plugins_registry_rationale_359",
- "community": 4,
+ "community": 7,
"norm_label": "return all registered records, sorted by name for stable output."
},
{
@@ -48672,7 +50031,7 @@
"source_file": "src/exlab_wizard/plugins/registry.py",
"source_location": "L363",
"id": "plugins_registry_rationale_363",
- "community": 4,
+ "community": 7,
"norm_label": "resolve plugins that match the given files by extension. for each regis"
},
{
@@ -48681,7 +50040,7 @@
"source_file": "src/exlab_wizard/plugins/registry.py",
"source_location": "L387",
"id": "plugins_registry_rationale_387",
- "community": 4,
+ "community": 7,
"norm_label": "coerce a yaml node into a ``list[str]``; non-list / non-string entries are dropp"
},
{
@@ -48690,7 +50049,7 @@
"source_file": "src/exlab_wizard/plugins/registry.py",
"source_location": "L394",
"id": "plugins_registry_rationale_394",
- "community": 4,
+ "community": 7,
"norm_label": "return the final suffix (``.xlsx``) for matching against ``supported_extensions`"
},
{
@@ -48699,7 +50058,7 @@
"source_file": "src/exlab_wizard/plugins/host.py",
"source_location": "L1",
"id": "src_exlab_wizard_plugins_host_py",
- "community": 15,
+ "community": 21,
"norm_label": "host.py"
},
{
@@ -48708,7 +50067,7 @@
"source_file": "src/exlab_wizard/plugins/host.py",
"source_location": "L86",
"id": "plugins_host_pluginrecord",
- "community": 15,
+ "community": 21,
"norm_label": "pluginrecord"
},
{
@@ -48717,7 +50076,7 @@
"source_file": "src/exlab_wizard/plugins/host.py",
"source_location": "L116",
"id": "plugins_host_pluginregistryprotocol",
- "community": 15,
+ "community": 21,
"norm_label": "pluginregistryprotocol"
},
{
@@ -48726,7 +50085,7 @@
"source_file": "",
"source_location": "",
"id": "protocol",
- "community": 15,
+ "community": 21,
"norm_label": "protocol"
},
{
@@ -48735,7 +50094,7 @@
"source_file": "src/exlab_wizard/plugins/host.py",
"source_location": "L126",
"id": "plugins_host_pluginregistryprotocol_get_record",
- "community": 15,
+ "community": 21,
"norm_label": ".get_record()"
},
{
@@ -48744,7 +50103,7 @@
"source_file": "src/exlab_wizard/plugins/host.py",
"source_location": "L135",
"id": "plugins_host_inputrequiredpayload",
- "community": 9,
+ "community": 10,
"norm_label": "inputrequiredpayload"
},
{
@@ -48753,7 +50112,7 @@
"source_file": "src/exlab_wizard/plugins/host.py",
"source_location": "L150",
"id": "plugins_host_pluginpassresult",
- "community": 9,
+ "community": 10,
"norm_label": "pluginpassresult"
},
{
@@ -48762,7 +50121,7 @@
"source_file": "src/exlab_wizard/plugins/host.py",
"source_location": "L168",
"id": "plugins_host_apply_rlimits",
- "community": 15,
+ "community": 21,
"norm_label": "_apply_rlimits()"
},
{
@@ -48771,7 +50130,7 @@
"source_file": "src/exlab_wizard/plugins/host.py",
"source_location": "L214",
"id": "plugins_host_sanitized_env",
- "community": 15,
+ "community": 21,
"norm_label": "_sanitized_env()"
},
{
@@ -48780,7 +50139,7 @@
"source_file": "src/exlab_wizard/plugins/host.py",
"source_location": "L240",
"id": "plugins_host_snapshot_tree",
- "community": 15,
+ "community": 21,
"norm_label": "_snapshot_tree()"
},
{
@@ -48789,7 +50148,7 @@
"source_file": "src/exlab_wizard/plugins/host.py",
"source_location": "L280",
"id": "plugins_host_is_forbidden_write",
- "community": 15,
+ "community": 21,
"norm_label": "_is_forbidden_write()"
},
{
@@ -48798,7 +50157,7 @@
"source_file": "src/exlab_wizard/plugins/host.py",
"source_location": "L285",
"id": "plugins_host_diff_and_collect_violations",
- "community": 15,
+ "community": 21,
"norm_label": "_diff_and_collect_violations()"
},
{
@@ -48807,7 +50166,7 @@
"source_file": "src/exlab_wizard/plugins/host.py",
"source_location": "L338",
"id": "plugins_host_read_silently",
- "community": 15,
+ "community": 21,
"norm_label": "_read_silently()"
},
{
@@ -48816,7 +50175,7 @@
"source_file": "src/exlab_wizard/plugins/host.py",
"source_location": "L346",
"id": "plugins_host_revert_to_snapshot",
- "community": 15,
+ "community": 21,
"norm_label": "_revert_to_snapshot()"
},
{
@@ -48825,7 +50184,7 @@
"source_file": "src/exlab_wizard/plugins/host.py",
"source_location": "L397",
"id": "plugins_host_drain_stderr",
- "community": 15,
+ "community": 21,
"norm_label": "_drain_stderr()"
},
{
@@ -48834,7 +50193,7 @@
"source_file": "src/exlab_wizard/plugins/host.py",
"source_location": "L447",
"id": "plugins_host_emit_forwarded_log",
- "community": 15,
+ "community": 21,
"norm_label": "_emit_forwarded_log()"
},
{
@@ -48843,7 +50202,7 @@
"source_file": "src/exlab_wizard/plugins/host.py",
"source_location": "L472",
"id": "plugins_host_resolve_run_id",
- "community": 15,
+ "community": 21,
"norm_label": "_resolve_run_id()"
},
{
@@ -48870,7 +50229,7 @@
"source_file": "src/exlab_wizard/plugins/host.py",
"source_location": "L502",
"id": "plugins_host_pluginhost_run_pass",
- "community": 15,
+ "community": 21,
"norm_label": ".run_pass()"
},
{
@@ -48879,7 +50238,7 @@
"source_file": "src/exlab_wizard/plugins/host.py",
"source_location": "L548",
"id": "plugins_host_pluginhost_run_one",
- "community": 15,
+ "community": 21,
"norm_label": "._run_one()"
},
{
@@ -48888,7 +50247,7 @@
"source_file": "src/exlab_wizard/plugins/host.py",
"source_location": "L629",
"id": "plugins_host_pluginhost_spawn_worker",
- "community": 15,
+ "community": 21,
"norm_label": "._spawn_worker()"
},
{
@@ -48897,7 +50256,7 @@
"source_file": "src/exlab_wizard/plugins/host.py",
"source_location": "L766",
"id": "plugins_host_pluginhost_terminate",
- "community": 15,
+ "community": 21,
"norm_label": "._terminate()"
},
{
@@ -48906,7 +50265,7 @@
"source_file": "src/exlab_wizard/plugins/host.py",
"source_location": "L783",
"id": "plugins_host_pluginhost_stderr_path_for",
- "community": 15,
+ "community": 21,
"norm_label": "._stderr_path_for()"
},
{
@@ -48915,7 +50274,7 @@
"source_file": "src/exlab_wizard/plugins/host.py",
"source_location": "L797",
"id": "plugins_host_spawnoutcome",
- "community": 15,
+ "community": 21,
"norm_label": "_spawnoutcome"
},
{
@@ -48924,7 +50283,7 @@
"source_file": "src/exlab_wizard/plugins/host.py",
"source_location": "L807",
"id": "plugins_host_failure",
- "community": 15,
+ "community": 21,
"norm_label": "failure()"
},
{
@@ -48933,7 +50292,7 @@
"source_file": "src/exlab_wizard/plugins/host.py",
"source_location": "L817",
"id": "plugins_host_read_stdout_envelope",
- "community": 15,
+ "community": 21,
"norm_label": "_read_stdout_envelope()"
},
{
@@ -48942,7 +50301,7 @@
"source_file": "src/exlab_wizard/plugins/host.py",
"source_location": "L838",
"id": "plugins_host_build_applied_entry",
- "community": 15,
+ "community": 21,
"norm_label": "_build_applied_entry()"
},
{
@@ -48951,7 +50310,7 @@
"source_file": "src/exlab_wizard/plugins/host.py",
"source_location": "L876",
"id": "plugins_host_exit_code_to_status",
- "community": 15,
+ "community": 21,
"norm_label": "_exit_code_to_status()"
},
{
@@ -48960,7 +50319,7 @@
"source_file": "src/exlab_wizard/plugins/host.py",
"source_location": "L900",
"id": "plugins_host_listbackedregistry",
- "community": 15,
+ "community": 21,
"norm_label": "_listbackedregistry"
},
{
@@ -48969,7 +50328,7 @@
"source_file": "src/exlab_wizard/plugins/host.py",
"source_location": "L911",
"id": "plugins_host_listbackedregistry_get_record",
- "community": 15,
+ "community": 21,
"norm_label": ".get_record()"
},
{
@@ -48978,7 +50337,7 @@
"source_file": "src/exlab_wizard/plugins/host.py",
"source_location": "L918",
"id": "plugins_host_build_test_registry",
- "community": 15,
+ "community": 21,
"norm_label": "build_test_registry()"
},
{
@@ -48987,7 +50346,7 @@
"source_file": "src/exlab_wizard/plugins/host.py",
"source_location": "L925",
"id": "plugins_host_applied_entry_as_json",
- "community": 15,
+ "community": 21,
"norm_label": "applied_entry_as_json()"
},
{
@@ -48996,7 +50355,7 @@
"source_file": "src/exlab_wizard/plugins/host.py",
"source_location": "L1",
"id": "plugins_host_rationale_1",
- "community": 15,
+ "community": 21,
"norm_label": "plugin host: spawns plugin worker subprocesses with strict isolation. backend s"
},
{
@@ -49005,7 +50364,7 @@
"source_file": "src/exlab_wizard/plugins/host.py",
"source_location": "L87",
"id": "plugins_host_rationale_87",
- "community": 15,
+ "community": 21,
"norm_label": "one resolved plugin, ready to be spawned. backend spec \u00a76.2.1. attributes:"
},
{
@@ -49014,7 +50373,7 @@
"source_file": "src/exlab_wizard/plugins/host.py",
"source_location": "L117",
"id": "plugins_host_rationale_117",
- "community": 15,
+ "community": 21,
"norm_label": "read-only registry surface the host depends on. backend spec \u00a76.2. the conc"
},
{
@@ -49023,7 +50382,7 @@
"source_file": "src/exlab_wizard/plugins/host.py",
"source_location": "L136",
"id": "plugins_host_rationale_136",
- "community": 9,
+ "community": 10,
"norm_label": "frame surfaced to the controller when a plugin needs more input. backend sp"
},
{
@@ -49032,7 +50391,7 @@
"source_file": "src/exlab_wizard/plugins/host.py",
"source_location": "L151",
"id": "plugins_host_rationale_151",
- "community": 9,
+ "community": 10,
"norm_label": "aggregate result returned by :meth:`pluginhost.run_pass`. backend spec \u00a76.2"
},
{
@@ -49041,7 +50400,7 @@
"source_file": "src/exlab_wizard/plugins/host.py",
"source_location": "L169",
"id": "plugins_host_rationale_169",
- "community": 15,
+ "community": 21,
"norm_label": "``preexec_fn`` for the worker subprocess: install posix rlimits. backend sp"
},
{
@@ -49050,7 +50409,7 @@
"source_file": "src/exlab_wizard/plugins/host.py",
"source_location": "L215",
"id": "plugins_host_rationale_215",
- "community": 15,
+ "community": 21,
"norm_label": "return the worker's ``env`` mapping (backend spec \u00a76.3.1)."
},
{
@@ -49059,7 +50418,7 @@
"source_file": "src/exlab_wizard/plugins/host.py",
"source_location": "L241",
"id": "plugins_host_rationale_241",
- "community": 15,
+ "community": 21,
"norm_label": "capture a small fingerprint per file in ``root``. the returned mapping is k"
},
{
@@ -49068,7 +50427,7 @@
"source_file": "src/exlab_wizard/plugins/host.py",
"source_location": "L281",
"id": "plugins_host_rationale_281",
- "community": 15,
+ "community": 21,
"norm_label": "return ``true`` when ``rel_path`` is in the \u00a76.1.5 forbidden set."
},
{
@@ -49077,7 +50436,7 @@
"source_file": "src/exlab_wizard/plugins/host.py",
"source_location": "L289",
"id": "plugins_host_rationale_289",
- "community": 15,
+ "community": 21,
"norm_label": "return ``(violations, modified_files)``. ``violations`` lists relative path"
},
{
@@ -49086,7 +50445,7 @@
"source_file": "src/exlab_wizard/plugins/host.py",
"source_location": "L339",
"id": "plugins_host_rationale_339",
- "community": 15,
+ "community": 21,
"norm_label": "return the file's bytes or ``none`` on read failure."
},
{
@@ -49095,7 +50454,7 @@
"source_file": "src/exlab_wizard/plugins/host.py",
"source_location": "L350",
"id": "plugins_host_rationale_350",
- "community": 15,
+ "community": 21,
"norm_label": "best-effort revert of every change after a forbidden-write plugin. removes"
},
{
@@ -49104,7 +50463,7 @@
"source_file": "src/exlab_wizard/plugins/host.py",
"source_location": "L403",
"id": "plugins_host_rationale_403",
- "community": 15,
+ "community": 21,
"norm_label": "read the worker's stderr line-by-line. json-shaped lines are forwarded into"
},
{
@@ -49113,7 +50472,7 @@
"source_file": "src/exlab_wizard/plugins/host.py",
"source_location": "L453",
"id": "plugins_host_rationale_453",
- "community": 15,
+ "community": 21,
"norm_label": "forward a worker log frame into the canonical logger chain."
},
{
@@ -49122,7 +50481,7 @@
"source_file": "src/exlab_wizard/plugins/host.py",
"source_location": "L473",
"id": "plugins_host_rationale_473",
- "community": 15,
+ "community": 21,
"norm_label": "return a filesystem-safe run identifier for stderr capture paths."
},
{
@@ -49140,7 +50499,7 @@
"source_file": "src/exlab_wizard/plugins/host.py",
"source_location": "L509",
"id": "plugins_host_rationale_509",
- "community": 15,
+ "community": 21,
"norm_label": "drive the plugin pass for a single creation session. spawns one worker"
},
{
@@ -49149,7 +50508,7 @@
"source_file": "src/exlab_wizard/plugins/host.py",
"source_location": "L555",
"id": "plugins_host_rationale_555",
- "community": 15,
+ "community": 21,
"norm_label": "run a single plugin worker, including resume on input-required. returns"
},
{
@@ -49158,7 +50517,7 @@
"source_file": "src/exlab_wizard/plugins/host.py",
"source_location": "L637",
"id": "plugins_host_rationale_637",
- "community": 15,
+ "community": 21,
"norm_label": "spawn one worker subprocess and supervise it to completion. returns a :"
},
{
@@ -49167,7 +50526,7 @@
"source_file": "src/exlab_wizard/plugins/host.py",
"source_location": "L767",
"id": "plugins_host_rationale_767",
- "community": 15,
+ "community": 21,
"norm_label": "sigterm, wait the grace period, sigkill. backend spec \u00a76.3.4."
},
{
@@ -49176,7 +50535,7 @@
"source_file": "src/exlab_wizard/plugins/host.py",
"source_location": "L784",
"id": "plugins_host_rationale_784",
- "community": 15,
+ "community": 21,
"norm_label": "return the path the worker's stderr should be captured to."
},
{
@@ -49185,7 +50544,7 @@
"source_file": "src/exlab_wizard/plugins/host.py",
"source_location": "L798",
"id": "plugins_host_rationale_798",
- "community": 15,
+ "community": 21,
"norm_label": "result of supervising a single worker invocation."
},
{
@@ -49194,7 +50553,7 @@
"source_file": "src/exlab_wizard/plugins/host.py",
"source_location": "L818",
"id": "plugins_host_rationale_818",
- "community": 15,
+ "community": 21,
"norm_label": "read and json-decode the worker's stdout envelope."
},
{
@@ -49203,7 +50562,7 @@
"source_file": "src/exlab_wizard/plugins/host.py",
"source_location": "L847",
"id": "plugins_host_rationale_847",
- "community": 15,
+ "community": 21,
"norm_label": "shape one ``plugins_applied[]`` entry for ``creation.json``."
},
{
@@ -49212,7 +50571,7 @@
"source_file": "src/exlab_wizard/plugins/host.py",
"source_location": "L877",
"id": "plugins_host_rationale_877",
- "community": 15,
+ "community": 21,
"norm_label": "map a worker exit code to one of the \u00a76.2.4 status values."
},
{
@@ -49221,7 +50580,7 @@
"source_file": "src/exlab_wizard/plugins/host.py",
"source_location": "L901",
"id": "plugins_host_rationale_901",
- "community": 15,
+ "community": 21,
"norm_label": "minimal :class:`pluginregistryprotocol` implementation used for tests. test"
},
{
@@ -49230,7 +50589,7 @@
"source_file": "src/exlab_wizard/plugins/host.py",
"source_location": "L919",
"id": "plugins_host_rationale_919",
- "community": 15,
+ "community": 21,
"norm_label": "return a tiny in-memory registry over ``records``. tests only."
},
{
@@ -49239,7 +50598,7 @@
"source_file": "src/exlab_wizard/plugins/host.py",
"source_location": "L926",
"id": "plugins_host_rationale_926",
- "community": 15,
+ "community": 21,
"norm_label": "return ``entry`` as a json-friendly dict (deep-copied)."
},
{
@@ -49248,7 +50607,7 @@
"source_file": "src/exlab_wizard/plugins/__init__.py",
"source_location": "L1",
"id": "src_exlab_wizard_plugins_init_py",
- "community": 371,
+ "community": 374,
"norm_label": "__init__.py"
},
{
@@ -49257,7 +50616,7 @@
"source_file": "src/exlab_wizard/plugins/logger.py",
"source_location": "L1",
"id": "src_exlab_wizard_plugins_logger_py",
- "community": 44,
+ "community": 20,
"norm_label": "logger.py"
},
{
@@ -49266,7 +50625,7 @@
"source_file": "src/exlab_wizard/plugins/logger.py",
"source_location": "L46",
"id": "plugins_logger_pluginlogframe",
- "community": 44,
+ "community": 20,
"norm_label": "pluginlogframe"
},
{
@@ -49275,7 +50634,7 @@
"source_file": "src/exlab_wizard/plugins/logger.py",
"source_location": "L59",
"id": "plugins_logger_pluginlogger",
- "community": 58,
+ "community": 20,
"norm_label": "pluginlogger"
},
{
@@ -49284,7 +50643,7 @@
"source_file": "",
"source_location": "",
"id": "abc",
- "community": 58,
+ "community": 20,
"norm_label": "abc"
},
{
@@ -49293,7 +50652,7 @@
"source_file": "src/exlab_wizard/plugins/logger.py",
"source_location": "L69",
"id": "plugins_logger_debug",
- "community": 44,
+ "community": 20,
"norm_label": "debug()"
},
{
@@ -49302,7 +50661,7 @@
"source_file": "src/exlab_wizard/plugins/logger.py",
"source_location": "L73",
"id": "plugins_logger_info",
- "community": 44,
+ "community": 20,
"norm_label": "info()"
},
{
@@ -49311,7 +50670,7 @@
"source_file": "src/exlab_wizard/plugins/logger.py",
"source_location": "L77",
"id": "plugins_logger_warning",
- "community": 44,
+ "community": 20,
"norm_label": "warning()"
},
{
@@ -49320,7 +50679,7 @@
"source_file": "src/exlab_wizard/plugins/logger.py",
"source_location": "L81",
"id": "plugins_logger_error",
- "community": 44,
+ "community": 20,
"norm_label": "error()"
},
{
@@ -49329,7 +50688,7 @@
"source_file": "src/exlab_wizard/plugins/logger.py",
"source_location": "L85",
"id": "plugins_logger_hostpluginlogger",
- "community": 44,
+ "community": 20,
"norm_label": "hostpluginlogger"
},
{
@@ -49338,7 +50697,7 @@
"source_file": "src/exlab_wizard/plugins/logger.py",
"source_location": "L95",
"id": "plugins_logger_hostpluginlogger_init",
- "community": 29,
+ "community": 19,
"norm_label": ".__init__()"
},
{
@@ -49347,7 +50706,7 @@
"source_file": "src/exlab_wizard/plugins/logger.py",
"source_location": "L98",
"id": "plugins_logger_hostpluginlogger_debug",
- "community": 44,
+ "community": 20,
"norm_label": ".debug()"
},
{
@@ -49356,7 +50715,7 @@
"source_file": "src/exlab_wizard/plugins/logger.py",
"source_location": "L101",
"id": "plugins_logger_hostpluginlogger_info",
- "community": 44,
+ "community": 20,
"norm_label": ".info()"
},
{
@@ -49365,7 +50724,7 @@
"source_file": "src/exlab_wizard/plugins/logger.py",
"source_location": "L104",
"id": "plugins_logger_hostpluginlogger_warning",
- "community": 44,
+ "community": 20,
"norm_label": ".warning()"
},
{
@@ -49374,7 +50733,7 @@
"source_file": "src/exlab_wizard/plugins/logger.py",
"source_location": "L107",
"id": "plugins_logger_hostpluginlogger_error",
- "community": 44,
+ "community": 20,
"norm_label": ".error()"
},
{
@@ -49383,7 +50742,7 @@
"source_file": "src/exlab_wizard/plugins/logger.py",
"source_location": "L110",
"id": "plugins_logger_hostpluginlogger_emit",
- "community": 44,
+ "community": 20,
"norm_label": "._emit()"
},
{
@@ -49392,7 +50751,7 @@
"source_file": "src/exlab_wizard/plugins/logger.py",
"source_location": "L121",
"id": "plugins_logger_workerpluginlogger",
- "community": 44,
+ "community": 20,
"norm_label": "workerpluginlogger"
},
{
@@ -49401,7 +50760,7 @@
"source_file": "src/exlab_wizard/plugins/logger.py",
"source_location": "L137",
"id": "plugins_logger_workerpluginlogger_init",
- "community": 44,
+ "community": 20,
"norm_label": ".__init__()"
},
{
@@ -49410,7 +50769,7 @@
"source_file": "src/exlab_wizard/plugins/logger.py",
"source_location": "L140",
"id": "plugins_logger_workerpluginlogger_debug",
- "community": 44,
+ "community": 20,
"norm_label": ".debug()"
},
{
@@ -49419,7 +50778,7 @@
"source_file": "src/exlab_wizard/plugins/logger.py",
"source_location": "L143",
"id": "plugins_logger_workerpluginlogger_info",
- "community": 44,
+ "community": 20,
"norm_label": ".info()"
},
{
@@ -49428,7 +50787,7 @@
"source_file": "src/exlab_wizard/plugins/logger.py",
"source_location": "L146",
"id": "plugins_logger_workerpluginlogger_warning",
- "community": 44,
+ "community": 20,
"norm_label": ".warning()"
},
{
@@ -49437,7 +50796,7 @@
"source_file": "src/exlab_wizard/plugins/logger.py",
"source_location": "L149",
"id": "plugins_logger_workerpluginlogger_error",
- "community": 44,
+ "community": 20,
"norm_label": ".error()"
},
{
@@ -49446,7 +50805,7 @@
"source_file": "src/exlab_wizard/plugins/logger.py",
"source_location": "L152",
"id": "plugins_logger_workerpluginlogger_emit",
- "community": 44,
+ "community": 20,
"norm_label": "._emit()"
},
{
@@ -49455,7 +50814,7 @@
"source_file": "src/exlab_wizard/plugins/logger.py",
"source_location": "L1",
"id": "plugins_logger_rationale_1",
- "community": 44,
+ "community": 20,
"norm_label": "plugin logger shim. backend spec \u00a76.1.4 / \u00a76.3.2. plugins call ``ctx.log.info(."
},
{
@@ -49464,7 +50823,7 @@
"source_file": "src/exlab_wizard/plugins/logger.py",
"source_location": "L47",
"id": "plugins_logger_rationale_47",
- "community": 44,
+ "community": 20,
"norm_label": "wire format for worker-side log records. the worker subprocess emits one ``"
},
{
@@ -49473,7 +50832,7 @@
"source_file": "src/exlab_wizard/plugins/logger.py",
"source_location": "L60",
"id": "plugins_logger_rationale_60",
- "community": 58,
+ "community": 20,
"norm_label": "abstract structured-log interface plugins receive on ``ctx.log``. implement"
},
{
@@ -49482,7 +50841,7 @@
"source_file": "src/exlab_wizard/plugins/logger.py",
"source_location": "L70",
"id": "plugins_logger_rationale_70",
- "community": 612,
+ "community": 637,
"norm_label": "emit a debug-level structured log record."
},
{
@@ -49491,7 +50850,7 @@
"source_file": "src/exlab_wizard/plugins/logger.py",
"source_location": "L74",
"id": "plugins_logger_rationale_74",
- "community": 613,
+ "community": 638,
"norm_label": "emit an info-level structured log record."
},
{
@@ -49500,7 +50859,7 @@
"source_file": "src/exlab_wizard/plugins/logger.py",
"source_location": "L78",
"id": "plugins_logger_rationale_78",
- "community": 614,
+ "community": 639,
"norm_label": "emit a warning-level structured log record."
},
{
@@ -49509,7 +50868,7 @@
"source_file": "src/exlab_wizard/plugins/logger.py",
"source_location": "L82",
"id": "plugins_logger_rationale_82",
- "community": 615,
+ "community": 640,
"norm_label": "emit an error-level structured log record."
},
{
@@ -49518,7 +50877,7 @@
"source_file": "src/exlab_wizard/plugins/logger.py",
"source_location": "L86",
"id": "plugins_logger_rationale_86",
- "community": 44,
+ "community": 20,
"norm_label": "in-process forwarder used when plugins run without subprocess isolation. us"
},
{
@@ -49527,7 +50886,7 @@
"source_file": "src/exlab_wizard/plugins/logger.py",
"source_location": "L122",
"id": "plugins_logger_rationale_122",
- "community": 44,
+ "community": 20,
"norm_label": "worker-side forwarder. emits json frames on stderr. used inside the plugin"
},
{
@@ -49536,7 +50895,7 @@
"source_file": "src/exlab_wizard/plugins/base.py",
"source_location": "L1",
"id": "src_exlab_wizard_plugins_base_py",
- "community": 58,
+ "community": 20,
"norm_label": "base.py"
},
{
@@ -49545,7 +50904,7 @@
"source_file": "src/exlab_wizard/plugins/base.py",
"source_location": "L53",
"id": "plugins_base_filechange",
- "community": 58,
+ "community": 330,
"norm_label": "filechange"
},
{
@@ -49554,7 +50913,7 @@
"source_file": "src/exlab_wizard/plugins/base.py",
"source_location": "L73",
"id": "plugins_base_plugincontext",
- "community": 9,
+ "community": 10,
"norm_label": "plugincontext"
},
{
@@ -49563,7 +50922,7 @@
"source_file": "src/exlab_wizard/plugins/base.py",
"source_location": "L96",
"id": "plugins_base_plugin",
- "community": 58,
+ "community": 20,
"norm_label": "plugin"
},
{
@@ -49572,7 +50931,7 @@
"source_file": "src/exlab_wizard/plugins/base.py",
"source_location": "L135",
"id": "plugins_base_can_handle",
- "community": 58,
+ "community": 20,
"norm_label": "can_handle()"
},
{
@@ -49581,7 +50940,7 @@
"source_file": "src/exlab_wizard/plugins/base.py",
"source_location": "L143",
"id": "plugins_base_transform",
- "community": 58,
+ "community": 20,
"norm_label": "transform()"
},
{
@@ -49590,7 +50949,7 @@
"source_file": "src/exlab_wizard/plugins/base.py",
"source_location": "L153",
"id": "plugins_base_plugin_validate_variables",
- "community": 58,
+ "community": 20,
"norm_label": ".validate_variables()"
},
{
@@ -49599,7 +50958,7 @@
"source_file": "src/exlab_wizard/plugins/base.py",
"source_location": "L170",
"id": "plugins_base_plugin_pre_transform_all",
- "community": 58,
+ "community": 20,
"norm_label": ".pre_transform_all()"
},
{
@@ -49608,7 +50967,7 @@
"source_file": "src/exlab_wizard/plugins/base.py",
"source_location": "L179",
"id": "plugins_base_plugin_post_transform_all",
- "community": 58,
+ "community": 20,
"norm_label": ".post_transform_all()"
},
{
@@ -49617,7 +50976,7 @@
"source_file": "src/exlab_wizard/plugins/base.py",
"source_location": "L186",
"id": "plugins_base_plugin_describe_changes",
- "community": 58,
+ "community": 330,
"norm_label": ".describe_changes()"
},
{
@@ -49626,7 +50985,7 @@
"source_file": "src/exlab_wizard/plugins/base.py",
"source_location": "L201",
"id": "plugins_base_plugin_on_plugin_failure",
- "community": 58,
+ "community": 20,
"norm_label": ".on_plugin_failure()"
},
{
@@ -49635,7 +50994,7 @@
"source_file": "src/exlab_wizard/plugins/base.py",
"source_location": "L1",
"id": "plugins_base_rationale_1",
- "community": 58,
+ "community": 20,
"norm_label": "plugin contract base class. backend spec \u00a76.1. defines the public surface that"
},
{
@@ -49644,7 +51003,7 @@
"source_file": "src/exlab_wizard/plugins/base.py",
"source_location": "L54",
"id": "plugins_base_rationale_54",
- "community": 58,
+ "community": 330,
"norm_label": "a single mutation a plugin would make. used by ``describe_changes``. backen"
},
{
@@ -49653,7 +51012,7 @@
"source_file": "src/exlab_wizard/plugins/base.py",
"source_location": "L74",
"id": "plugins_base_rationale_74",
- "community": 9,
+ "community": 10,
"norm_label": "read-only context handed to every plugin lifecycle hook. constructed once p"
},
{
@@ -49662,7 +51021,7 @@
"source_file": "src/exlab_wizard/plugins/base.py",
"source_location": "L97",
"id": "plugins_base_rationale_97",
- "community": 58,
+ "community": 20,
"norm_label": "abstract base class for all exlab-wizard plugins. backend spec \u00a76.1.3."
},
{
@@ -49671,7 +51030,7 @@
"source_file": "src/exlab_wizard/plugins/base.py",
"source_location": "L136",
"id": "plugins_base_rationale_136",
- "community": 616,
+ "community": 641,
"norm_label": "secondary filter, called after the extension match. cheap and side-effe"
},
{
@@ -49680,7 +51039,7 @@
"source_file": "src/exlab_wizard/plugins/base.py",
"source_location": "L144",
"id": "plugins_base_rationale_144",
- "community": 617,
+ "community": 642,
"norm_label": "mutate ``file_path`` in place. on unrecoverable failure raise :class:`p"
},
{
@@ -49689,7 +51048,7 @@
"source_file": "src/exlab_wizard/plugins/base.py",
"source_location": "L154",
"id": "plugins_base_rationale_154",
- "community": 58,
+ "community": 20,
"norm_label": "return a list of error strings; empty list means \"valid\". default imple"
},
{
@@ -49698,7 +51057,7 @@
"source_file": "src/exlab_wizard/plugins/base.py",
"source_location": "L171",
"id": "plugins_base_rationale_171",
- "community": 58,
+ "community": 20,
"norm_label": "called once before the file loop. default: no-op. use for batch setup t"
},
{
@@ -49707,7 +51066,7 @@
"source_file": "src/exlab_wizard/plugins/base.py",
"source_location": "L180",
"id": "plugins_base_rationale_180",
- "community": 58,
+ "community": 20,
"norm_label": "called once after the file loop. default: no-op. symmetric to :meth:`pr"
},
{
@@ -49716,7 +51075,7 @@
"source_file": "src/exlab_wizard/plugins/base.py",
"source_location": "L187",
"id": "plugins_base_rationale_187",
- "community": 58,
+ "community": 330,
"norm_label": "return the dry-run preview for what ``transform`` would do. default ret"
},
{
@@ -49725,7 +51084,7 @@
"source_file": "src/exlab_wizard/plugins/base.py",
"source_location": "L202",
"id": "plugins_base_rationale_202",
- "community": 58,
+ "community": 20,
"norm_label": "called if any prior hook raised. default: no-op. use to roll back parti"
},
{
@@ -49734,7 +51093,7 @@
"source_file": "src/exlab_wizard/plugins/_worker.py",
"source_location": "L1",
"id": "src_exlab_wizard_plugins_worker_py",
- "community": 181,
+ "community": 53,
"norm_label": "_worker.py"
},
{
@@ -49743,7 +51102,7 @@
"source_file": "src/exlab_wizard/plugins/_worker.py",
"source_location": "L57",
"id": "plugins_worker_workeroutcome",
- "community": 58,
+ "community": 53,
"norm_label": "_workeroutcome"
},
{
@@ -49752,7 +51111,7 @@
"source_file": "src/exlab_wizard/plugins/_worker.py",
"source_location": "L73",
"id": "plugins_worker_read_stdin_envelope",
- "community": 181,
+ "community": 53,
"norm_label": "_read_stdin_envelope()"
},
{
@@ -49761,7 +51120,7 @@
"source_file": "src/exlab_wizard/plugins/_worker.py",
"source_location": "L88",
"id": "plugins_worker_decode_files",
- "community": 181,
+ "community": 53,
"norm_label": "_decode_files()"
},
{
@@ -49770,7 +51129,7 @@
"source_file": "src/exlab_wizard/plugins/_worker.py",
"source_location": "L105",
"id": "plugins_worker_build_context",
- "community": 181,
+ "community": 53,
"norm_label": "_build_context()"
},
{
@@ -49779,7 +51138,7 @@
"source_file": "src/exlab_wizard/plugins/_worker.py",
"source_location": "L144",
"id": "plugins_worker_load_plugin_class",
- "community": 181,
+ "community": 53,
"norm_label": "_load_plugin_class()"
},
{
@@ -49788,7 +51147,7 @@
"source_file": "src/exlab_wizard/plugins/_worker.py",
"source_location": "L170",
"id": "plugins_worker_run_lifecycle",
- "community": 181,
+ "community": 53,
"norm_label": "_run_lifecycle()"
},
{
@@ -49797,7 +51156,7 @@
"source_file": "src/exlab_wizard/plugins/_worker.py",
"source_location": "L296",
"id": "plugins_worker_serialize_change",
- "community": 181,
+ "community": 53,
"norm_label": "_serialize_change()"
},
{
@@ -49806,7 +51165,7 @@
"source_file": "src/exlab_wizard/plugins/_worker.py",
"source_location": "L311",
"id": "plugins_worker_swallowcallbackerrors",
- "community": 181,
+ "community": 53,
"norm_label": "_swallowcallbackerrors"
},
{
@@ -49815,7 +51174,7 @@
"source_file": "src/exlab_wizard/plugins/_worker.py",
"source_location": "L319",
"id": "plugins_worker_swallowcallbackerrors_enter",
- "community": 181,
+ "community": 53,
"norm_label": ".__enter__()"
},
{
@@ -49824,7 +51183,7 @@
"source_file": "src/exlab_wizard/plugins/_worker.py",
"source_location": "L322",
"id": "plugins_worker_swallowcallbackerrors_exit",
- "community": 181,
+ "community": 53,
"norm_label": ".__exit__()"
},
{
@@ -49833,7 +51192,7 @@
"source_file": "src/exlab_wizard/plugins/_worker.py",
"source_location": "L350",
"id": "plugins_worker_main",
- "community": 181,
+ "community": 53,
"norm_label": "main()"
},
{
@@ -49842,7 +51201,7 @@
"source_file": "src/exlab_wizard/plugins/_worker.py",
"source_location": "L1",
"id": "plugins_worker_rationale_1",
- "community": 181,
+ "community": 53,
"norm_label": "plugin worker entry point. backend spec \u00a76.3.1, \u00a76.3.2. invoked as ``python -m"
},
{
@@ -49851,7 +51210,7 @@
"source_file": "src/exlab_wizard/plugins/_worker.py",
"source_location": "L58",
"id": "plugins_worker_rationale_58",
- "community": 58,
+ "community": 53,
"norm_label": "aggregated worker-side result before stdout serialization."
},
{
@@ -49860,7 +51219,7 @@
"source_file": "src/exlab_wizard/plugins/_worker.py",
"source_location": "L74",
"id": "plugins_worker_rationale_74",
- "community": 181,
+ "community": 53,
"norm_label": "read a single json object from stdin and return it as a dict. the host writ"
},
{
@@ -49869,7 +51228,7 @@
"source_file": "src/exlab_wizard/plugins/_worker.py",
"source_location": "L89",
"id": "plugins_worker_rationale_89",
- "community": 181,
+ "community": 53,
"norm_label": "resolve incoming file path strings against ``dst_root``. paths are accepted"
},
{
@@ -49878,7 +51237,7 @@
"source_file": "src/exlab_wizard/plugins/_worker.py",
"source_location": "L110",
"id": "plugins_worker_rationale_110",
- "community": 181,
+ "community": 53,
"norm_label": "materialize a :class:`plugincontext` from the stdin envelope. returns the c"
},
{
@@ -49887,7 +51246,7 @@
"source_file": "src/exlab_wizard/plugins/_worker.py",
"source_location": "L145",
"id": "plugins_worker_rationale_145",
- "community": 181,
+ "community": 53,
"norm_label": "import the plugin module and return the exported ``plugin`` symbol. the hos"
},
{
@@ -49896,7 +51255,7 @@
"source_file": "src/exlab_wizard/plugins/_worker.py",
"source_location": "L177",
"id": "plugins_worker_rationale_177",
- "community": 181,
+ "community": 53,
"norm_label": "execute the plugin's transform lifecycle against ``files``. the lifecycle i"
},
{
@@ -49905,7 +51264,7 @@
"source_file": "src/exlab_wizard/plugins/_worker.py",
"source_location": "L297",
"id": "plugins_worker_rationale_297",
- "community": 181,
+ "community": 53,
"norm_label": "convert a :class:`filechange` to its ipc dict shape."
},
{
@@ -49914,7 +51273,7 @@
"source_file": "src/exlab_wizard/plugins/_worker.py",
"source_location": "L312",
"id": "plugins_worker_rationale_312",
- "community": 181,
+ "community": 53,
"norm_label": "context manager that suppresses errors from ``on_plugin_failure``. per back"
},
{
@@ -49923,7 +51282,7 @@
"source_file": "src/exlab_wizard/plugins/_worker.py",
"source_location": "L351",
"id": "plugins_worker_rationale_351",
- "community": 181,
+ "community": 53,
"norm_label": "worker entry point. returns the process exit code."
},
{
@@ -49932,7 +51291,7 @@
"source_file": "src/exlab_wizard/constants/enums.py",
"source_location": "L1",
"id": "src_exlab_wizard_constants_enums_py",
- "community": 19,
+ "community": 29,
"norm_label": "enums.py"
},
{
@@ -49941,7 +51300,7 @@
"source_file": "src/exlab_wizard/constants/enums.py",
"source_location": "L14",
"id": "constants_enums_runkind",
- "community": 83,
+ "community": 79,
"norm_label": "runkind"
},
{
@@ -49950,7 +51309,7 @@
"source_file": "src/exlab_wizard/constants/enums.py",
"source_location": "L24",
"id": "constants_enums_syncstatus",
- "community": 19,
+ "community": 78,
"norm_label": "syncstatus"
},
{
@@ -49959,7 +51318,7 @@
"source_file": "src/exlab_wizard/constants/enums.py",
"source_location": "L41",
"id": "constants_enums_tier",
- "community": 138,
+ "community": 143,
"norm_label": "tier"
},
{
@@ -49968,7 +51327,7 @@
"source_file": "src/exlab_wizard/constants/enums.py",
"source_location": "L48",
"id": "constants_enums_problemclass",
- "community": 19,
+ "community": 29,
"norm_label": "problemclass"
},
{
@@ -49977,7 +51336,7 @@
"source_file": "src/exlab_wizard/constants/enums.py",
"source_location": "L65",
"id": "constants_enums_findingkind",
- "community": 19,
+ "community": 29,
"norm_label": "findingkind"
},
{
@@ -49986,7 +51345,7 @@
"source_file": "src/exlab_wizard/constants/enums.py",
"source_location": "L76",
"id": "constants_enums_templatetype",
- "community": 19,
+ "community": 359,
"norm_label": "templatetype"
},
{
@@ -49995,7 +51354,7 @@
"source_file": "src/exlab_wizard/constants/enums.py",
"source_location": "L84",
"id": "constants_enums_runscope",
- "community": 19,
+ "community": 359,
"norm_label": "runscope"
},
{
@@ -50004,7 +51363,7 @@
"source_file": "src/exlab_wizard/constants/enums.py",
"source_location": "L95",
"id": "constants_enums_limsprojectstatus",
- "community": 19,
+ "community": 29,
"norm_label": "limsprojectstatus"
},
{
@@ -50013,7 +51372,7 @@
"source_file": "src/exlab_wizard/constants/enums.py",
"source_location": "L109",
"id": "constants_enums_limsprojectsource",
- "community": 397,
+ "community": 29,
"norm_label": "limsprojectsource"
},
{
@@ -50022,7 +51381,7 @@
"source_file": "src/exlab_wizard/constants/enums.py",
"source_location": "L117",
"id": "constants_enums_runsyncstate",
- "community": 83,
+ "community": 79,
"norm_label": "runsyncstate"
},
{
@@ -50031,7 +51390,7 @@
"source_file": "src/exlab_wizard/constants/enums.py",
"source_location": "L137",
"id": "constants_enums_setupstate",
- "community": 19,
+ "community": 29,
"norm_label": "setupstate"
},
{
@@ -50040,7 +51399,7 @@
"source_file": "src/exlab_wizard/constants/enums.py",
"source_location": "L159",
"id": "constants_enums_syncmode",
- "community": 19,
+ "community": 78,
"norm_label": "syncmode"
},
{
@@ -50049,7 +51408,7 @@
"source_file": "src/exlab_wizard/constants/enums.py",
"source_location": "L173",
"id": "constants_enums_stagingcleanupmode",
- "community": 19,
+ "community": 29,
"norm_label": "stagingcleanupmode"
},
{
@@ -50058,7 +51417,7 @@
"source_file": "src/exlab_wizard/constants/enums.py",
"source_location": "L180",
"id": "constants_enums_pluginstatus",
- "community": 15,
+ "community": 21,
"norm_label": "pluginstatus"
},
{
@@ -50067,7 +51426,7 @@
"source_file": "src/exlab_wizard/constants/enums.py",
"source_location": "L190",
"id": "constants_enums_creationlevel",
- "community": 19,
+ "community": 29,
"norm_label": "creationlevel"
},
{
@@ -50076,7 +51435,7 @@
"source_file": "src/exlab_wizard/constants/enums.py",
"source_location": "L200",
"id": "constants_enums_fieldtype",
- "community": 19,
+ "community": 29,
"norm_label": "fieldtype"
},
{
@@ -50085,7 +51444,7 @@
"source_file": "src/exlab_wizard/constants/enums.py",
"source_location": "L210",
"id": "constants_enums_bandwidthday",
- "community": 19,
+ "community": 29,
"norm_label": "bandwidthday"
},
{
@@ -50094,7 +51453,7 @@
"source_file": "src/exlab_wizard/constants/enums.py",
"source_location": "L222",
"id": "constants_enums_sessionkind",
- "community": 19,
+ "community": 29,
"norm_label": "sessionkind"
},
{
@@ -50103,7 +51462,7 @@
"source_file": "src/exlab_wizard/constants/enums.py",
"source_location": "L234",
"id": "constants_enums_nextaction",
- "community": 19,
+ "community": 29,
"norm_label": "nextaction"
},
{
@@ -50112,7 +51471,7 @@
"source_file": "src/exlab_wizard/constants/enums.py",
"source_location": "L241",
"id": "constants_enums_auditscopekind",
- "community": 398,
+ "community": 29,
"norm_label": "auditscopekind"
},
{
@@ -50121,7 +51480,7 @@
"source_file": "src/exlab_wizard/constants/enums.py",
"source_location": "L254",
"id": "constants_enums_directorylevel",
- "community": 19,
+ "community": 29,
"norm_label": "directorylevel"
},
{
@@ -50130,7 +51489,7 @@
"source_file": "src/exlab_wizard/constants/enums.py",
"source_location": "L271",
"id": "constants_enums_platform",
- "community": 19,
+ "community": 29,
"norm_label": "platform"
},
{
@@ -50139,7 +51498,7 @@
"source_file": "src/exlab_wizard/constants/enums.py",
"source_location": "L279",
"id": "constants_enums_setupnextaction",
- "community": 19,
+ "community": 29,
"norm_label": "setupnextaction"
},
{
@@ -50148,7 +51507,7 @@
"source_file": "src/exlab_wizard/constants/enums.py",
"source_location": "L293",
"id": "constants_enums_synchandlestate",
- "community": 19,
+ "community": 29,
"norm_label": "synchandlestate"
},
{
@@ -50157,7 +51516,7 @@
"source_file": "src/exlab_wizard/constants/enums.py",
"source_location": "L305",
"id": "constants_enums_pluginsourceroot",
- "community": 19,
+ "community": 29,
"norm_label": "pluginsourceroot"
},
{
@@ -50166,7 +51525,7 @@
"source_file": "src/exlab_wizard/constants/enums.py",
"source_location": "L312",
"id": "constants_enums_treeprojectstatus",
- "community": 83,
+ "community": 79,
"norm_label": "treeprojectstatus"
},
{
@@ -50175,7 +51534,7 @@
"source_file": "src/exlab_wizard/constants/enums.py",
"source_location": "L1",
"id": "constants_enums_rationale_1",
- "community": 19,
+ "community": 29,
"norm_label": "closed-set enumerations referenced by the cache files, rest api, and ui. every"
},
{
@@ -50184,7 +51543,7 @@
"source_file": "src/exlab_wizard/constants/enums.py",
"source_location": "L15",
"id": "constants_enums_rationale_15",
- "community": 83,
+ "community": 79,
"norm_label": "whether a run is a real experiment or a dry-run/test. stored under ``run_ki"
},
{
@@ -50193,7 +51552,7 @@
"source_file": "src/exlab_wizard/constants/enums.py",
"source_location": "L25",
"id": "constants_enums_rationale_25",
- "community": 19,
+ "community": 78,
"norm_label": "state machine for an item in the nas sync queue. stored under ``sync_status"
},
{
@@ -50202,7 +51561,7 @@
"source_file": "src/exlab_wizard/constants/enums.py",
"source_location": "L42",
"id": "constants_enums_rationale_42",
- "community": 138,
+ "community": 143,
"norm_label": "validator severity tier. backend spec \u00a78.1.6."
},
{
@@ -50211,7 +51570,7 @@
"source_file": "src/exlab_wizard/constants/enums.py",
"source_location": "L49",
"id": "constants_enums_rationale_49",
- "community": 19,
+ "community": 29,
"norm_label": "closed set of validator problem classes. backend spec \u00a78.1. values are the"
},
{
@@ -50220,7 +51579,7 @@
"source_file": "src/exlab_wizard/constants/enums.py",
"source_location": "L66",
"id": "constants_enums_rationale_66",
- "community": 19,
+ "community": 29,
"norm_label": "what kind of artefact a validator finding refers to. used for grouping find"
},
{
@@ -50229,7 +51588,7 @@
"source_file": "src/exlab_wizard/constants/enums.py",
"source_location": "L77",
"id": "constants_enums_rationale_77",
- "community": 19,
+ "community": 359,
"norm_label": "high-level copier-template category. backend spec \u00a75.2."
},
{
@@ -50238,7 +51597,7 @@
"source_file": "src/exlab_wizard/constants/enums.py",
"source_location": "L85",
"id": "constants_enums_rationale_85",
- "community": 19,
+ "community": 359,
"norm_label": "run-scope tag declared in a run template's ``_exlab_run_scope``. backend sp"
},
{
@@ -50247,7 +51606,7 @@
"source_file": "src/exlab_wizard/constants/enums.py",
"source_location": "L96",
"id": "constants_enums_rationale_96",
- "community": 19,
+ "community": 29,
"norm_label": "project status as returned by the lims rest api. the wire format is pascalc"
},
{
@@ -50256,7 +51615,7 @@
"source_file": "src/exlab_wizard/constants/enums.py",
"source_location": "L110",
"id": "constants_enums_rationale_110",
- "community": 397,
+ "community": 29,
"norm_label": "origin of a lims project row presented to the ui. backend spec \u00a711.3."
},
{
@@ -50265,7 +51624,7 @@
"source_file": "src/exlab_wizard/constants/enums.py",
"source_location": "L118",
"id": "constants_enums_rationale_118",
- "community": 83,
+ "community": 79,
"norm_label": "derived run-level rollup of a run's per-file nas sync progress. operator-fr"
},
{
@@ -50274,7 +51633,7 @@
"source_file": "src/exlab_wizard/constants/enums.py",
"source_location": "L138",
"id": "constants_enums_rationale_138",
- "community": 19,
+ "community": 29,
"norm_label": "first-run / setup-readiness state used by the launcher. backend spec \u00a74.9.1"
},
{
@@ -50283,7 +51642,7 @@
"source_file": "src/exlab_wizard/constants/enums.py",
"source_location": "L160",
"id": "constants_enums_rationale_160",
- "community": 19,
+ "community": 78,
"norm_label": "per-equipment sync role. gui/orchestrator redesign spec \u00a73.2. replaces the"
},
{
@@ -50292,7 +51651,7 @@
"source_file": "src/exlab_wizard/constants/enums.py",
"source_location": "L174",
"id": "constants_enums_rationale_174",
- "community": 19,
+ "community": 29,
"norm_label": "how nas staging directories are eventually purged. backend spec \u00a713.7."
},
{
@@ -50301,7 +51660,7 @@
"source_file": "src/exlab_wizard/constants/enums.py",
"source_location": "L181",
"id": "constants_enums_rationale_181",
- "community": 15,
+ "community": 21,
"norm_label": "plugin invocation outcome reported by the host. backend spec \u00a76.2.4."
},
{
@@ -50310,7 +51669,7 @@
"source_file": "src/exlab_wizard/constants/enums.py",
"source_location": "L191",
"id": "constants_enums_rationale_191",
- "community": 19,
+ "community": 29,
"norm_label": "whether a creation.json describes a project root or a run directory. stored"
},
{
@@ -50319,7 +51678,7 @@
"source_file": "src/exlab_wizard/constants/enums.py",
"source_location": "L201",
"id": "constants_enums_rationale_201",
- "community": 19,
+ "community": 29,
"norm_label": "allowed input types for readme field declarations. backend spec \u00a710."
},
{
@@ -50328,7 +51687,7 @@
"source_file": "src/exlab_wizard/constants/enums.py",
"source_location": "L211",
"id": "constants_enums_rationale_211",
- "community": 19,
+ "community": 29,
"norm_label": "day-of-week values for nas sync bandwidth windows. backend spec \u00a77.1."
},
{
@@ -50337,7 +51696,7 @@
"source_file": "src/exlab_wizard/constants/enums.py",
"source_location": "L223",
"id": "constants_enums_rationale_223",
- "community": 19,
+ "community": 29,
"norm_label": "whether a wizard session creates a project root or a run directory. mirrors"
},
{
@@ -50346,7 +51705,7 @@
"source_file": "src/exlab_wizard/constants/enums.py",
"source_location": "L235",
"id": "constants_enums_rationale_235",
- "community": 19,
+ "community": 29,
"norm_label": "outcome of a session-store transition. backend spec \u00a74.7."
},
{
@@ -50355,7 +51714,7 @@
"source_file": "src/exlab_wizard/constants/enums.py",
"source_location": "L242",
"id": "constants_enums_rationale_242",
- "community": 398,
+ "community": 29,
"norm_label": "kind discriminator for validator audit scopes. backend spec \u00a78.1. values ma"
},
{
@@ -50364,7 +51723,7 @@
"source_file": "src/exlab_wizard/constants/enums.py",
"source_location": "L255",
"id": "constants_enums_rationale_255",
- "community": 19,
+ "community": 29,
"norm_label": "result of classifying a directory in the validator engine. used internally"
},
{
@@ -50373,7 +51732,7 @@
"source_file": "src/exlab_wizard/constants/enums.py",
"source_location": "L272",
"id": "constants_enums_rationale_272",
- "community": 19,
+ "community": 29,
"norm_label": "normalized platform tag used for os-conditional path dispatch."
},
{
@@ -50382,7 +51741,7 @@
"source_file": "src/exlab_wizard/constants/enums.py",
"source_location": "L280",
"id": "constants_enums_rationale_280",
- "community": 19,
+ "community": 29,
"norm_label": "next action returned by ``paths.setup_state_next_action``. backend spec \u00a74."
},
{
@@ -50391,7 +51750,7 @@
"source_file": "src/exlab_wizard/constants/enums.py",
"source_location": "L294",
"id": "constants_enums_rationale_294",
- "community": 19,
+ "community": 29,
"norm_label": "in-process state of a nas sync job handle as observed by callers. distinct"
},
{
@@ -50400,7 +51759,7 @@
"source_file": "src/exlab_wizard/constants/enums.py",
"source_location": "L306",
"id": "constants_enums_rationale_306",
- "community": 19,
+ "community": 29,
"norm_label": "origin of a plugin record. backend spec \u00a76.1.1."
},
{
@@ -50409,7 +51768,7 @@
"source_file": "src/exlab_wizard/constants/enums.py",
"source_location": "L313",
"id": "constants_enums_rationale_313",
- "community": 83,
+ "community": 79,
"norm_label": "ui-layer project status displayed in the tree view. distinct from :class:`l"
},
{
@@ -50418,7 +51777,7 @@
"source_file": "src/exlab_wizard/constants/patterns.py",
"source_location": "L1",
"id": "src_exlab_wizard_constants_patterns_py",
- "community": 518,
+ "community": 541,
"norm_label": "patterns.py"
},
{
@@ -50427,7 +51786,7 @@
"source_file": "src/exlab_wizard/constants/patterns.py",
"source_location": "L1",
"id": "constants_patterns_rationale_1",
- "community": 518,
+ "community": 541,
"norm_label": "regex patterns and filename-rule literals used by validators. each regex is pro"
},
{
@@ -50436,7 +51795,7 @@
"source_file": "src/exlab_wizard/constants/limits.py",
"source_location": "L1",
"id": "src_exlab_wizard_constants_limits_py",
- "community": 519,
+ "community": 542,
"norm_label": "limits.py"
},
{
@@ -50445,7 +51804,7 @@
"source_file": "src/exlab_wizard/constants/limits.py",
"source_location": "L1",
"id": "constants_limits_rationale_1",
- "community": 519,
+ "community": 542,
"norm_label": "hard-coded numeric limits, timeouts, and policy ceilings. every value here is c"
},
{
@@ -50454,7 +51813,7 @@
"source_file": "src/exlab_wizard/constants/filenames.py",
"source_location": "L1",
"id": "src_exlab_wizard_constants_filenames_py",
- "community": 520,
+ "community": 543,
"norm_label": "filenames.py"
},
{
@@ -50463,7 +51822,7 @@
"source_file": "src/exlab_wizard/constants/filenames.py",
"source_location": "L1",
"id": "constants_filenames_rationale_1",
- "community": 520,
+ "community": 543,
"norm_label": "canonical filenames and on-disk path fragments used throughout the app. all val"
},
{
@@ -50472,7 +51831,7 @@
"source_file": "src/exlab_wizard/constants/__init__.py",
"source_location": "L1",
"id": "src_exlab_wizard_constants_init_py",
- "community": 439,
+ "community": 475,
"norm_label": "__init__.py"
},
{
@@ -50481,7 +51840,7 @@
"source_file": "src/exlab_wizard/constants/keyring.py",
"source_location": "L1",
"id": "src_exlab_wizard_constants_keyring_py",
- "community": 2,
+ "community": 43,
"norm_label": "keyring.py"
},
{
@@ -50490,7 +51849,7 @@
"source_file": "src/exlab_wizard/constants/keyring.py",
"source_location": "L1",
"id": "constants_keyring_rationale_1",
- "community": 2,
+ "community": 43,
"norm_label": "os-keyring service/username conventions used for credential storage. the wizard"
},
{
@@ -50499,7 +51858,7 @@
"source_file": "src/exlab_wizard/constants/app.py",
"source_location": "L1",
"id": "src_exlab_wizard_constants_app_py",
- "community": 521,
+ "community": 544,
"norm_label": "app.py"
},
{
@@ -50508,7 +51867,7 @@
"source_file": "src/exlab_wizard/constants/app.py",
"source_location": "L1",
"id": "constants_app_rationale_1",
- "community": 521,
+ "community": 544,
"norm_label": "app-level identifiers used as path / keyring / branding fragments. single sourc"
},
{
@@ -50517,7 +51876,7 @@
"source_file": "src/exlab_wizard/constants/schema_versions.py",
"source_location": "L1",
"id": "src_exlab_wizard_constants_schema_versions_py",
- "community": 522,
+ "community": 545,
"norm_label": "schema_versions.py"
},
{
@@ -50526,7 +51885,7 @@
"source_file": "src/exlab_wizard/constants/schema_versions.py",
"source_location": "L1",
"id": "constants_schema_versions_rationale_1",
- "community": 522,
+ "community": 545,
"norm_label": "schema version pins for every json/yaml artifact the wizard reads or writes. ev"
},
{
@@ -50535,7 +51894,7 @@
"source_file": "src/exlab_wizard/io/json_files.py",
"source_location": "L1",
"id": "src_exlab_wizard_io_json_files_py",
- "community": 66,
+ "community": 117,
"norm_label": "json_files.py"
},
{
@@ -50544,7 +51903,7 @@
"source_file": "src/exlab_wizard/io/json_files.py",
"source_location": "L28",
"id": "io_json_files_require_schema_major",
- "community": 66,
+ "community": 117,
"norm_label": "require_schema_major()"
},
{
@@ -50553,7 +51912,7 @@
"source_file": "src/exlab_wizard/io/json_files.py",
"source_location": "L53",
"id": "io_json_files_read_msgspec_json",
- "community": 66,
+ "community": 231,
"norm_label": "read_msgspec_json()"
},
{
@@ -50562,7 +51921,7 @@
"source_file": "src/exlab_wizard/io/json_files.py",
"source_location": "L73",
"id": "io_json_files_read_msgspec_json_raw",
- "community": 66,
+ "community": 117,
"norm_label": "read_msgspec_json_raw()"
},
{
@@ -50571,7 +51930,7 @@
"source_file": "src/exlab_wizard/io/json_files.py",
"source_location": "L94",
"id": "io_json_files_peek_and_check_major",
- "community": 66,
+ "community": 117,
"norm_label": "_peek_and_check_major()"
},
{
@@ -50580,7 +51939,7 @@
"source_file": "src/exlab_wizard/io/json_files.py",
"source_location": "L1",
"id": "io_json_files_rationale_1",
- "community": 66,
+ "community": 117,
"norm_label": "msgspec json readers with optional schema-major gating. centralizes the ``path."
},
{
@@ -50589,7 +51948,7 @@
"source_file": "src/exlab_wizard/io/json_files.py",
"source_location": "L29",
"id": "io_json_files_rationale_29",
- "community": 66,
+ "community": 117,
"norm_label": "raise ``schemamajormismatcherror`` when ``version`` is a different major. b"
},
{
@@ -50598,7 +51957,7 @@
"source_file": "src/exlab_wizard/io/json_files.py",
"source_location": "L59",
"id": "io_json_files_rationale_59",
- "community": 66,
+ "community": 231,
"norm_label": "read ``path`` and decode it as ``type_``, optionally gating on major. when"
},
{
@@ -50607,7 +51966,7 @@
"source_file": "src/exlab_wizard/io/json_files.py",
"source_location": "L78",
"id": "io_json_files_rationale_78",
- "community": 66,
+ "community": 117,
"norm_label": "two-pass read returning the raw dict for migration-default patching. some r"
},
{
@@ -50616,7 +51975,7 @@
"source_file": "src/exlab_wizard/io/__init__.py",
"source_location": "L1",
"id": "src_exlab_wizard_io_init_py",
- "community": 523,
+ "community": 546,
"norm_label": "__init__.py"
},
{
@@ -50625,7 +51984,7 @@
"source_file": "src/exlab_wizard/io/__init__.py",
"source_location": "L1",
"id": "io_init_rationale_1",
- "community": 523,
+ "community": 546,
"norm_label": "filesystem i/o helpers shared across the codebase. backend spec \u00a74.4 (file io d"
},
{
@@ -50634,7 +51993,7 @@
"source_file": "src/exlab_wizard/io/atomic_write.py",
"source_location": "L1",
"id": "src_exlab_wizard_io_atomic_write_py",
- "community": 259,
+ "community": 262,
"norm_label": "atomic_write.py"
},
{
@@ -50643,7 +52002,7 @@
"source_file": "src/exlab_wizard/io/atomic_write.py",
"source_location": "L21",
"id": "io_atomic_write_atomic_write_bytes",
- "community": 259,
+ "community": 262,
"norm_label": "atomic_write_bytes()"
},
{
@@ -50652,7 +52011,7 @@
"source_file": "src/exlab_wizard/io/atomic_write.py",
"source_location": "L1",
"id": "io_atomic_write_rationale_1",
- "community": 259,
+ "community": 262,
"norm_label": "atomic file writes via the \u00a74.4.5 temp-file + ``os.replace`` recipe. this is th"
},
{
@@ -50661,7 +52020,7 @@
"source_file": "src/exlab_wizard/io/atomic_write.py",
"source_location": "L22",
"id": "io_atomic_write_rationale_22",
- "community": 259,
+ "community": 262,
"norm_label": "write ``data`` to ``path`` atomically. implementation follows the \u00a74.4.5 re"
},
{
@@ -50670,7 +52029,7 @@
"source_file": "src/exlab_wizard/io/yaml_files.py",
"source_location": "L1",
"id": "src_exlab_wizard_io_yaml_files_py",
- "community": 4,
+ "community": 7,
"norm_label": "yaml_files.py"
},
{
@@ -50679,7 +52038,7 @@
"source_file": "src/exlab_wizard/io/yaml_files.py",
"source_location": "L20",
"id": "io_yaml_files_load_yaml_manifest",
- "community": 4,
+ "community": 7,
"norm_label": "load_yaml_manifest()"
},
{
@@ -50688,7 +52047,7 @@
"source_file": "src/exlab_wizard/io/yaml_files.py",
"source_location": "L1",
"id": "io_yaml_files_rationale_1",
- "community": 4,
+ "community": 7,
"norm_label": "shared yaml manifest reader (pyyaml safe-load). used for read-only manifests wh"
},
{
@@ -50697,7 +52056,7 @@
"source_file": "src/exlab_wizard/io/yaml_files.py",
"source_location": "L21",
"id": "io_yaml_files_rationale_21",
- "community": 4,
+ "community": 7,
"norm_label": "read and ``safe_load`` a yaml manifest into a plain dict. raises ``filenotf"
},
{
@@ -50706,7 +52065,7 @@
"source_file": "src/exlab_wizard/template/__init__.py",
"source_location": "L1",
"id": "src_exlab_wizard_template_init_py",
- "community": 441,
+ "community": 477,
"norm_label": "__init__.py"
},
{
@@ -50715,7 +52074,7 @@
"source_file": "src/exlab_wizard/template/copier_driver.py",
"source_location": "L1",
"id": "src_exlab_wizard_template_copier_driver_py",
- "community": 333,
+ "community": 49,
"norm_label": "copier_driver.py"
},
{
@@ -50724,7 +52083,7 @@
"source_file": "src/exlab_wizard/template/copier_driver.py",
"source_location": "L60",
"id": "template_copier_driver_resolvedtemplate",
- "community": 9,
+ "community": 10,
"norm_label": "resolvedtemplate"
},
{
@@ -50733,7 +52092,7 @@
"source_file": "src/exlab_wizard/template/copier_driver.py",
"source_location": "L95",
"id": "template_copier_driver_renderresult",
- "community": 9,
+ "community": 10,
"norm_label": "renderresult"
},
{
@@ -50742,7 +52101,7 @@
"source_file": "src/exlab_wizard/template/copier_driver.py",
"source_location": "L109",
"id": "template_copier_driver_templateengine",
- "community": 61,
+ "community": 49,
"norm_label": "templateengine"
},
{
@@ -50751,7 +52110,7 @@
"source_file": "src/exlab_wizard/template/copier_driver.py",
"source_location": "L112",
"id": "template_copier_driver_templateengine_resolve",
- "community": 19,
+ "community": 359,
"norm_label": ".resolve()"
},
{
@@ -50760,7 +52119,7 @@
"source_file": "src/exlab_wizard/template/copier_driver.py",
"source_location": "L228",
"id": "template_copier_driver_extract_readme_fields",
- "community": 333,
+ "community": 49,
"norm_label": "_extract_readme_fields()"
},
{
@@ -50769,7 +52128,7 @@
"source_file": "src/exlab_wizard/template/copier_driver.py",
"source_location": "L257",
"id": "template_copier_driver_templateengine_render",
- "community": 333,
+ "community": 49,
"norm_label": ".render()"
},
{
@@ -50778,7 +52137,7 @@
"source_file": "src/exlab_wizard/template/copier_driver.py",
"source_location": "L307",
"id": "template_copier_driver_snapshot_files",
- "community": 333,
+ "community": 49,
"norm_label": "_snapshot_files()"
},
{
@@ -50787,7 +52146,7 @@
"source_file": "src/exlab_wizard/template/copier_driver.py",
"source_location": "L1",
"id": "template_copier_driver_rationale_1",
- "community": 333,
+ "community": 49,
"norm_label": "copier template-engine wrapper. backend spec \u00a74.4.2 / \u00a75. this module wraps cop"
},
{
@@ -50796,7 +52155,7 @@
"source_file": "src/exlab_wizard/template/copier_driver.py",
"source_location": "L61",
"id": "template_copier_driver_rationale_61",
- "community": 9,
+ "community": 10,
"norm_label": "a loaded template's metadata. backend spec \u00a75.2. attributes: name:"
},
{
@@ -50805,7 +52164,7 @@
"source_file": "src/exlab_wizard/template/copier_driver.py",
"source_location": "L96",
"id": "template_copier_driver_rationale_96",
- "community": 9,
+ "community": 10,
"norm_label": "outcome of a render call. attributes: dst_path: the absolute destin"
},
{
@@ -50814,7 +52173,7 @@
"source_file": "src/exlab_wizard/template/copier_driver.py",
"source_location": "L110",
"id": "template_copier_driver_rationale_110",
- "community": 61,
+ "community": 49,
"norm_label": "wraps the copier python api behind the \u00a74.4.2 contract."
},
{
@@ -50823,7 +52182,7 @@
"source_file": "src/exlab_wizard/template/copier_driver.py",
"source_location": "L113",
"id": "template_copier_driver_rationale_113",
- "community": 19,
+ "community": 359,
"norm_label": "load + validate a template's ``copier.yml``. args: template"
},
{
@@ -50832,7 +52191,7 @@
"source_file": "src/exlab_wizard/template/copier_driver.py",
"source_location": "L231",
"id": "template_copier_driver_rationale_231",
- "community": 618,
+ "community": 643,
"norm_label": "pull ``_exlab_readme.fields`` and reject core-field collisions. tolerat"
},
{
@@ -50841,7 +52200,7 @@
"source_file": "src/exlab_wizard/template/copier_driver.py",
"source_location": "L263",
"id": "template_copier_driver_rationale_263",
- "community": 333,
+ "community": 49,
"norm_label": "render the template into ``dst`` via copier. args: tpl: a p"
},
{
@@ -50850,7 +52209,7 @@
"source_file": "src/exlab_wizard/template/copier_driver.py",
"source_location": "L308",
"id": "template_copier_driver_rationale_308",
- "community": 333,
+ "community": 49,
"norm_label": "return the set of regular files under ``root`` (recursively). returns the e"
},
{
@@ -50859,7 +52218,7 @@
"source_file": "src/exlab_wizard/utils/time.py",
"source_location": "L1",
"id": "src_exlab_wizard_utils_time_py",
- "community": 123,
+ "community": 134,
"norm_label": "time.py"
},
{
@@ -50868,7 +52227,7 @@
"source_file": "src/exlab_wizard/utils/time.py",
"source_location": "L28",
"id": "utils_time_utc_now",
- "community": 10,
+ "community": 18,
"norm_label": "utc_now()"
},
{
@@ -50877,7 +52236,7 @@
"source_file": "src/exlab_wizard/utils/time.py",
"source_location": "L39",
"id": "utils_time_utc_now_or",
- "community": 313,
+ "community": 265,
"norm_label": "utc_now_or()"
},
{
@@ -50886,7 +52245,7 @@
"source_file": "src/exlab_wizard/utils/time.py",
"source_location": "L49",
"id": "utils_time_utc_now_iso",
- "community": 123,
+ "community": 25,
"norm_label": "utc_now_iso()"
},
{
@@ -50895,7 +52254,7 @@
"source_file": "src/exlab_wizard/utils/time.py",
"source_location": "L58",
"id": "utils_time_dt_to_iso",
- "community": 123,
+ "community": 134,
"norm_label": "dt_to_iso()"
},
{
@@ -50904,7 +52263,7 @@
"source_file": "src/exlab_wizard/utils/time.py",
"source_location": "L69",
"id": "utils_time_parse_utc_iso",
- "community": 123,
+ "community": 134,
"norm_label": "parse_utc_iso()"
},
{
@@ -50913,7 +52272,7 @@
"source_file": "src/exlab_wizard/utils/time.py",
"source_location": "L84",
"id": "utils_time_parse_utc_iso_or_none",
- "community": 123,
+ "community": 134,
"norm_label": "parse_utc_iso_or_none()"
},
{
@@ -50922,7 +52281,7 @@
"source_file": "src/exlab_wizard/utils/time.py",
"source_location": "L1",
"id": "utils_time_rationale_1",
- "community": 123,
+ "community": 134,
"norm_label": "utc iso-8601 timestamp helpers. backend spec \u00a713.4 fixes the wire format used i"
},
{
@@ -50931,7 +52290,7 @@
"source_file": "src/exlab_wizard/utils/time.py",
"source_location": "L29",
"id": "utils_time_rationale_29",
- "community": 10,
+ "community": 18,
"norm_label": "return the current utc time as a timezone-aware ``datetime``. use this when"
},
{
@@ -50940,7 +52299,7 @@
"source_file": "src/exlab_wizard/utils/time.py",
"source_location": "L40",
"id": "utils_time_rationale_40",
- "community": 313,
+ "community": 265,
"norm_label": "return ``dt`` when supplied, otherwise the current utc time. mirrors the ``"
},
{
@@ -50949,7 +52308,7 @@
"source_file": "src/exlab_wizard/utils/time.py",
"source_location": "L50",
"id": "utils_time_rationale_50",
- "community": 123,
+ "community": 25,
"norm_label": "return the current utc time as ``yyyy-mm-ddthh:mm:ssz``. seconds-resolution"
},
{
@@ -50958,7 +52317,7 @@
"source_file": "src/exlab_wizard/utils/time.py",
"source_location": "L59",
"id": "utils_time_rationale_59",
- "community": 123,
+ "community": 134,
"norm_label": "format a utc-aware ``datetime`` as ``yyyy-mm-ddthh:mm:ssz``. naive datetime"
},
{
@@ -50967,7 +52326,7 @@
"source_file": "src/exlab_wizard/utils/time.py",
"source_location": "L70",
"id": "utils_time_rationale_70",
- "community": 123,
+ "community": 134,
"norm_label": "parse an iso-8601 string into a utc-aware ``datetime``. accepts both the ca"
},
{
@@ -50976,7 +52335,7 @@
"source_file": "src/exlab_wizard/utils/time.py",
"source_location": "L85",
"id": "utils_time_rationale_85",
- "community": 123,
+ "community": 134,
"norm_label": "like :func:`parse_utc_iso` but returns ``none`` on missing or bad input. us"
},
{
@@ -50985,7 +52344,7 @@
"source_file": "src/exlab_wizard/utils/__init__.py",
"source_location": "L1",
"id": "src_exlab_wizard_utils_init_py",
- "community": 524,
+ "community": 547,
"norm_label": "__init__.py"
},
{
@@ -50994,7 +52353,7 @@
"source_file": "src/exlab_wizard/utils/__init__.py",
"source_location": "L1",
"id": "utils_init_rationale_1",
- "community": 524,
+ "community": 547,
"norm_label": "generic, dependency-free helpers used across the codebase. backend spec \u00a713.4 ("
},
{
@@ -51003,7 +52362,7 @@
"source_file": "src/exlab_wizard/utils/state.py",
"source_location": "L1",
"id": "src_exlab_wizard_utils_state_py",
- "community": 22,
+ "community": 24,
"norm_label": "state.py"
},
{
@@ -51012,7 +52371,7 @@
"source_file": "src/exlab_wizard/utils/state.py",
"source_location": "L14",
"id": "utils_state_assert_forward_transition",
- "community": 22,
+ "community": 24,
"norm_label": "assert_forward_transition()"
},
{
@@ -51021,7 +52380,7 @@
"source_file": "src/exlab_wizard/utils/state.py",
"source_location": "L1",
"id": "utils_state_rationale_1",
- "community": 22,
+ "community": 24,
"norm_label": "generic forward-transition guard for closed-set state machines. used by both th"
},
{
@@ -51030,7 +52389,7 @@
"source_file": "src/exlab_wizard/utils/state.py",
"source_location": "L19",
"id": "utils_state_rationale_19",
- "community": 22,
+ "community": 24,
"norm_label": "raise ``valueerror`` when ``current -> new_state`` is not in ``table``. ``t"
},
{
@@ -51039,7 +52398,7 @@
"source_file": "src/exlab_wizard/tray/icon.py",
"source_location": "L1",
"id": "src_exlab_wizard_tray_icon_py",
- "community": 99,
+ "community": 103,
"norm_label": "icon.py"
},
{
@@ -51048,7 +52407,7 @@
"source_file": "src/exlab_wizard/tray/icon.py",
"source_location": "L39",
"id": "tray_icon_default_icon_image",
- "community": 99,
+ "community": 103,
"norm_label": "default_icon_image()"
},
{
@@ -51057,7 +52416,7 @@
"source_file": "src/exlab_wizard/tray/icon.py",
"source_location": "L58",
"id": "tray_icon_build_icon",
- "community": 99,
+ "community": 103,
"norm_label": "build_icon()"
},
{
@@ -51066,7 +52425,7 @@
"source_file": "src/exlab_wizard/tray/icon.py",
"source_location": "L94",
"id": "tray_icon_import_pystray",
- "community": 99,
+ "community": 103,
"norm_label": "_import_pystray()"
},
{
@@ -51075,7 +52434,7 @@
"source_file": "src/exlab_wizard/tray/icon.py",
"source_location": "L101",
"id": "tray_icon_safe_call",
- "community": 99,
+ "community": 103,
"norm_label": "_safe_call()"
},
{
@@ -51084,7 +52443,7 @@
"source_file": "src/exlab_wizard/tray/icon.py",
"source_location": "L1",
"id": "tray_icon_rationale_1",
- "community": 99,
+ "community": 103,
"norm_label": "pystray icon construction. backend spec \u00a74.3.2. the tray icon's menu has three"
},
{
@@ -51093,7 +52452,7 @@
"source_file": "src/exlab_wizard/tray/icon.py",
"source_location": "L40",
"id": "tray_icon_rationale_40",
- "community": 99,
+ "community": 103,
"norm_label": "return a small pil.image used as the tray icon bitmap. imported lazily so t"
},
{
@@ -51102,7 +52461,7 @@
"source_file": "src/exlab_wizard/tray/icon.py",
"source_location": "L68",
"id": "tray_icon_rationale_68",
- "community": 99,
+ "community": 103,
"norm_label": "build the pystray icon with the \u00a74.1 menu. ``status_provider`` is invoked e"
},
{
@@ -51111,7 +52470,7 @@
"source_file": "src/exlab_wizard/tray/icon.py",
"source_location": "L95",
"id": "tray_icon_rationale_95",
- "community": 99,
+ "community": 103,
"norm_label": "lazy import so unit tests on headless hosts can mock pystray."
},
{
@@ -51120,7 +52479,7 @@
"source_file": "src/exlab_wizard/tray/icon.py",
"source_location": "L102",
"id": "tray_icon_rationale_102",
- "community": 99,
+ "community": 103,
"norm_label": "invoke a menu callback; log + swallow exceptions. the pystray menu handler"
},
{
@@ -51129,7 +52488,7 @@
"source_file": "src/exlab_wizard/tray/server_runner.py",
"source_location": "L1",
"id": "src_exlab_wizard_tray_server_runner_py",
- "community": 74,
+ "community": 27,
"norm_label": "server_runner.py"
},
{
@@ -51138,7 +52497,7 @@
"source_file": "src/exlab_wizard/tray/server_runner.py",
"source_location": "L41",
"id": "tray_server_runner_pick_free_port",
- "community": 74,
+ "community": 27,
"norm_label": "pick_free_port()"
},
{
@@ -51147,7 +52506,7 @@
"source_file": "src/exlab_wizard/tray/server_runner.py",
"source_location": "L55",
"id": "tray_server_runner_serverrunner",
- "community": 74,
+ "community": 27,
"norm_label": "serverrunner"
},
{
@@ -51156,7 +52515,7 @@
"source_file": "src/exlab_wizard/tray/server_runner.py",
"source_location": "L61",
"id": "tray_server_runner_serverrunner_init",
- "community": 74,
+ "community": 27,
"norm_label": ".__init__()"
},
{
@@ -51165,7 +52524,7 @@
"source_file": "src/exlab_wizard/tray/server_runner.py",
"source_location": "L75",
"id": "tray_server_runner_serverrunner_start",
- "community": 74,
+ "community": 27,
"norm_label": ".start()"
},
{
@@ -51174,7 +52533,7 @@
"source_file": "src/exlab_wizard/tray/server_runner.py",
"source_location": "L103",
"id": "tray_server_runner_serverrunner_stop",
- "community": 74,
+ "community": 27,
"norm_label": ".stop()"
},
{
@@ -51183,7 +52542,7 @@
"source_file": "src/exlab_wizard/tray/server_runner.py",
"source_location": "L124",
"id": "tray_server_runner_port",
- "community": 74,
+ "community": 27,
"norm_label": "port()"
},
{
@@ -51192,7 +52551,7 @@
"source_file": "src/exlab_wizard/tray/server_runner.py",
"source_location": "L135",
"id": "tray_server_runner_is_running",
- "community": 74,
+ "community": 27,
"norm_label": "is_running()"
},
{
@@ -51201,7 +52560,7 @@
"source_file": "src/exlab_wizard/tray/server_runner.py",
"source_location": "L142",
"id": "tray_server_runner_state_file",
- "community": 74,
+ "community": 27,
"norm_label": "state_file()"
},
{
@@ -51210,7 +52569,7 @@
"source_file": "src/exlab_wizard/tray/server_runner.py",
"source_location": "L150",
"id": "tray_server_runner_serverrunner_build_uvicorn",
- "community": 74,
+ "community": 27,
"norm_label": "._build_uvicorn()"
},
{
@@ -51219,7 +52578,7 @@
"source_file": "src/exlab_wizard/tray/server_runner.py",
"source_location": "L170",
"id": "tray_server_runner_serverrunner_write_state_file",
- "community": 74,
+ "community": 27,
"norm_label": "._write_state_file()"
},
{
@@ -51228,7 +52587,7 @@
"source_file": "src/exlab_wizard/tray/server_runner.py",
"source_location": "L183",
"id": "tray_server_runner_serverrunner_delete_state_file",
- "community": 74,
+ "community": 27,
"norm_label": "._delete_state_file()"
},
{
@@ -51237,7 +52596,7 @@
"source_file": "src/exlab_wizard/tray/server_runner.py",
"source_location": "L1",
"id": "tray_server_runner_rationale_1",
- "community": 74,
+ "community": 27,
"norm_label": "programmatic uvicorn launcher with atomic ``server.json`` writes. backend spec \u00a7"
},
{
@@ -51246,7 +52605,7 @@
"source_file": "src/exlab_wizard/tray/server_runner.py",
"source_location": "L42",
"id": "tray_server_runner_rationale_42",
- "community": 74,
+ "community": 27,
"norm_label": "return a free localhost port from the os. binds a sock_stream socket to ``("
},
{
@@ -51255,7 +52614,7 @@
"source_file": "src/exlab_wizard/tray/server_runner.py",
"source_location": "L56",
"id": "tray_server_runner_rationale_56",
- "community": 74,
+ "community": 27,
"norm_label": "starts uvicorn on a free localhost port and tracks its state file. backend"
},
{
@@ -51264,7 +52623,7 @@
"source_file": "src/exlab_wizard/tray/server_runner.py",
"source_location": "L76",
"id": "tray_server_runner_rationale_76",
- "community": 74,
+ "community": 27,
"norm_label": "pick a port, launch uvicorn in a worker thread, write server.json. retu"
},
{
@@ -51273,7 +52632,7 @@
"source_file": "src/exlab_wizard/tray/server_runner.py",
"source_location": "L104",
"id": "tray_server_runner_rationale_104",
- "community": 74,
+ "community": 27,
"norm_label": "signal uvicorn to exit, join the worker thread, delete server.json. ide"
},
{
@@ -51282,7 +52641,7 @@
"source_file": "src/exlab_wizard/tray/server_runner.py",
"source_location": "L125",
"id": "tray_server_runner_rationale_125",
- "community": 619,
+ "community": 644,
"norm_label": "return the port the server is bound to. raises ``runtimeerror`` when ca"
},
{
@@ -51291,7 +52650,7 @@
"source_file": "src/exlab_wizard/tray/server_runner.py",
"source_location": "L136",
"id": "tray_server_runner_rationale_136",
- "community": 620,
+ "community": 645,
"norm_label": "return ``true`` while the worker thread is alive."
},
{
@@ -51300,7 +52659,7 @@
"source_file": "src/exlab_wizard/tray/server_runner.py",
"source_location": "L143",
"id": "tray_server_runner_rationale_143",
- "community": 621,
+ "community": 646,
"norm_label": "return the absolute path of the ``server.json`` state file."
},
{
@@ -51309,7 +52668,7 @@
"source_file": "src/exlab_wizard/tray/server_runner.py",
"source_location": "L151",
"id": "tray_server_runner_rationale_151",
- "community": 74,
+ "community": 27,
"norm_label": "return ``(uvicorn.config, uvicorn.server)`` for the given port. split o"
},
{
@@ -51318,7 +52677,7 @@
"source_file": "src/exlab_wizard/tray/server_runner.py",
"source_location": "L171",
"id": "tray_server_runner_rationale_171",
- "community": 74,
+ "community": 27,
"norm_label": "atomically write ``server.json``. backend spec \u00a74.4.5 idiom."
},
{
@@ -51327,7 +52686,7 @@
"source_file": "src/exlab_wizard/tray/server_runner.py",
"source_location": "L184",
"id": "tray_server_runner_rationale_184",
- "community": 74,
+ "community": 27,
"norm_label": "best-effort delete; missing file is fine."
},
{
@@ -51336,7 +52695,7 @@
"source_file": "src/exlab_wizard/tray/__init__.py",
"source_location": "L1",
"id": "src_exlab_wizard_tray_init_py",
- "community": 442,
+ "community": 478,
"norm_label": "__init__.py"
},
{
@@ -51345,7 +52704,7 @@
"source_file": "src/exlab_wizard/tray/autostart.py",
"source_location": "L1",
"id": "src_exlab_wizard_tray_autostart_py",
- "community": 101,
+ "community": 213,
"norm_label": "autostart.py"
},
{
@@ -51354,7 +52713,7 @@
"source_file": "src/exlab_wizard/tray/autostart.py",
"source_location": "L54",
"id": "tray_autostart_autostartmanager",
- "community": 73,
+ "community": 72,
"norm_label": "autostartmanager"
},
{
@@ -51363,7 +52722,7 @@
"source_file": "src/exlab_wizard/tray/autostart.py",
"source_location": "L70",
"id": "tray_autostart_autostartmanager_init",
- "community": 73,
+ "community": 213,
"norm_label": ".__init__()"
},
{
@@ -51372,7 +52731,7 @@
"source_file": "src/exlab_wizard/tray/autostart.py",
"source_location": "L93",
"id": "tray_autostart_autostartmanager_is_registered",
- "community": 101,
+ "community": 72,
"norm_label": ".is_registered()"
},
{
@@ -51381,7 +52740,7 @@
"source_file": "src/exlab_wizard/tray/autostart.py",
"source_location": "L103",
"id": "tray_autostart_autostartmanager_register",
- "community": 101,
+ "community": 72,
"norm_label": ".register()"
},
{
@@ -51390,7 +52749,7 @@
"source_file": "src/exlab_wizard/tray/autostart.py",
"source_location": "L113",
"id": "tray_autostart_autostartmanager_unregister",
- "community": 101,
+ "community": 72,
"norm_label": ".unregister()"
},
{
@@ -51399,7 +52758,7 @@
"source_file": "src/exlab_wizard/tray/autostart.py",
"source_location": "L125",
"id": "tray_autostart_executable_path",
- "community": 101,
+ "community": 213,
"norm_label": "executable_path()"
},
{
@@ -51408,7 +52767,7 @@
"source_file": "src/exlab_wizard/tray/autostart.py",
"source_location": "L130",
"id": "tray_autostart_platform",
- "community": 73,
+ "community": 213,
"norm_label": "platform()"
},
{
@@ -51417,7 +52776,7 @@
"source_file": "src/exlab_wizard/tray/autostart.py",
"source_location": "L138",
"id": "tray_autostart_autostartmanager_plist_path",
- "community": 101,
+ "community": 72,
"norm_label": "._plist_path()"
},
{
@@ -51426,7 +52785,7 @@
"source_file": "src/exlab_wizard/tray/autostart.py",
"source_location": "L141",
"id": "tray_autostart_autostartmanager_write_plist",
- "community": 101,
+ "community": 72,
"norm_label": "._write_plist()"
},
{
@@ -51435,7 +52794,7 @@
"source_file": "src/exlab_wizard/tray/autostart.py",
"source_location": "L151",
"id": "tray_autostart_autostartmanager_systemd_path",
- "community": 101,
+ "community": 72,
"norm_label": "._systemd_path()"
},
{
@@ -51444,7 +52803,7 @@
"source_file": "src/exlab_wizard/tray/autostart.py",
"source_location": "L154",
"id": "tray_autostart_autostartmanager_desktop_path",
- "community": 101,
+ "community": 72,
"norm_label": "._desktop_path()"
},
{
@@ -51453,7 +52812,7 @@
"source_file": "src/exlab_wizard/tray/autostart.py",
"source_location": "L157",
"id": "tray_autostart_autostartmanager_register_linux",
- "community": 101,
+ "community": 72,
"norm_label": "._register_linux()"
},
{
@@ -51462,7 +52821,7 @@
"source_file": "src/exlab_wizard/tray/autostart.py",
"source_location": "L163",
"id": "tray_autostart_autostartmanager_write_systemd_unit",
- "community": 101,
+ "community": 72,
"norm_label": "._write_systemd_unit()"
},
{
@@ -51471,7 +52830,7 @@
"source_file": "src/exlab_wizard/tray/autostart.py",
"source_location": "L168",
"id": "tray_autostart_autostartmanager_write_desktop_file",
- "community": 101,
+ "community": 72,
"norm_label": "._write_desktop_file()"
},
{
@@ -51480,7 +52839,7 @@
"source_file": "src/exlab_wizard/tray/autostart.py",
"source_location": "L177",
"id": "tray_autostart_autostartmanager_set_win_reg_value",
- "community": 101,
+ "community": 72,
"norm_label": "._set_win_reg_value()"
},
{
@@ -51489,7 +52848,7 @@
"source_file": "src/exlab_wizard/tray/autostart.py",
"source_location": "L183",
"id": "tray_autostart_autostartmanager_delete_win_reg_value",
- "community": 101,
+ "community": 72,
"norm_label": "._delete_win_reg_value()"
},
{
@@ -51498,7 +52857,7 @@
"source_file": "src/exlab_wizard/tray/autostart.py",
"source_location": "L193",
"id": "tray_autostart_autostartmanager_win_reg_value",
- "community": 101,
+ "community": 72,
"norm_label": "._win_reg_value()"
},
{
@@ -51507,7 +52866,7 @@
"source_file": "src/exlab_wizard/tray/autostart.py",
"source_location": "L210",
"id": "tray_autostart_render_plist",
- "community": 101,
+ "community": 213,
"norm_label": "_render_plist()"
},
{
@@ -51516,7 +52875,7 @@
"source_file": "src/exlab_wizard/tray/autostart.py",
"source_location": "L236",
"id": "tray_autostart_render_systemd_unit",
- "community": 101,
+ "community": 213,
"norm_label": "_render_systemd_unit()"
},
{
@@ -51525,7 +52884,7 @@
"source_file": "src/exlab_wizard/tray/autostart.py",
"source_location": "L251",
"id": "tray_autostart_render_desktop_file",
- "community": 101,
+ "community": 213,
"norm_label": "_render_desktop_file()"
},
{
@@ -51534,7 +52893,7 @@
"source_file": "src/exlab_wizard/tray/autostart.py",
"source_location": "L268",
"id": "tray_autostart_detect_platform",
- "community": 73,
+ "community": 213,
"norm_label": "_detect_platform()"
},
{
@@ -51543,7 +52902,7 @@
"source_file": "src/exlab_wizard/tray/autostart.py",
"source_location": "L276",
"id": "tray_autostart_silently_unlink",
- "community": 101,
+ "community": 213,
"norm_label": "_silently_unlink()"
},
{
@@ -51552,7 +52911,7 @@
"source_file": "src/exlab_wizard/tray/autostart.py",
"source_location": "L281",
"id": "tray_autostart_import_winreg",
- "community": 101,
+ "community": 72,
"norm_label": "_import_winreg()"
},
{
@@ -51561,7 +52920,7 @@
"source_file": "src/exlab_wizard/tray/autostart.py",
"source_location": "L1",
"id": "tray_autostart_rationale_1",
- "community": 101,
+ "community": 213,
"norm_label": "per-platform autostart registration. backend spec \u00a74.3.2 + \u00a715.7. registers ``e"
},
{
@@ -51570,7 +52929,7 @@
"source_file": "src/exlab_wizard/tray/autostart.py",
"source_location": "L55",
"id": "tray_autostart_rationale_55",
- "community": 73,
+ "community": 72,
"norm_label": "per-platform autostart register / unregister / is_registered. construction-"
},
{
@@ -51579,7 +52938,7 @@
"source_file": "src/exlab_wizard/tray/autostart.py",
"source_location": "L94",
"id": "tray_autostart_rationale_94",
- "community": 101,
+ "community": 72,
"norm_label": "return true iff a per-platform autostart record exists."
},
{
@@ -51588,7 +52947,7 @@
"source_file": "src/exlab_wizard/tray/autostart.py",
"source_location": "L104",
"id": "tray_autostart_rationale_104",
- "community": 101,
+ "community": 72,
"norm_label": "create the per-platform autostart record. idempotent."
},
{
@@ -51597,7 +52956,7 @@
"source_file": "src/exlab_wizard/tray/autostart.py",
"source_location": "L114",
"id": "tray_autostart_rationale_114",
- "community": 101,
+ "community": 72,
"norm_label": "remove the per-platform autostart record. idempotent."
},
{
@@ -51606,7 +52965,7 @@
"source_file": "src/exlab_wizard/tray/autostart.py",
"source_location": "L126",
"id": "tray_autostart_rationale_126",
- "community": 622,
+ "community": 647,
"norm_label": "return the absolute path the autostart record points at."
},
{
@@ -51615,7 +52974,7 @@
"source_file": "src/exlab_wizard/tray/autostart.py",
"source_location": "L131",
"id": "tray_autostart_rationale_131",
- "community": 623,
+ "community": 648,
"norm_label": "return the platform dispatch this manager is configured for."
},
{
@@ -51624,7 +52983,7 @@
"source_file": "src/exlab_wizard/tray/autostart.py",
"source_location": "L211",
"id": "tray_autostart_rationale_211",
- "community": 101,
+ "community": 213,
"norm_label": "return the macos launchagent plist body. backend spec \u00a715.7.1."
},
{
@@ -51633,7 +52992,7 @@
"source_file": "src/exlab_wizard/tray/autostart.py",
"source_location": "L237",
"id": "tray_autostart_rationale_237",
- "community": 101,
+ "community": 213,
"norm_label": "return the linux systemd-user unit body. backend spec \u00a715.7.1."
},
{
@@ -51642,7 +53001,7 @@
"source_file": "src/exlab_wizard/tray/autostart.py",
"source_location": "L252",
"id": "tray_autostart_rationale_252",
- "community": 101,
+ "community": 213,
"norm_label": "return the xdg ``.desktop`` autostart body. backend spec \u00a715.7.1."
},
{
@@ -51651,7 +53010,7 @@
"source_file": "src/exlab_wizard/tray/autostart.py",
"source_location": "L282",
"id": "tray_autostart_rationale_282",
- "community": 101,
+ "community": 72,
"norm_label": "import ``winreg`` lazily so the module loads on macos / linux too. returns"
},
{
@@ -51660,7 +53019,7 @@
"source_file": "src/exlab_wizard/tray/quit_coordinator.py",
"source_location": "L1",
"id": "src_exlab_wizard_tray_quit_coordinator_py",
- "community": 47,
+ "community": 58,
"norm_label": "quit_coordinator.py"
},
{
@@ -51669,7 +53028,7 @@
"source_file": "src/exlab_wizard/tray/quit_coordinator.py",
"source_location": "L49",
"id": "tray_quit_coordinator_quitcoordinator",
- "community": 47,
+ "community": 58,
"norm_label": "quitcoordinator"
},
{
@@ -51678,7 +53037,7 @@
"source_file": "src/exlab_wizard/tray/quit_coordinator.py",
"source_location": "L57",
"id": "tray_quit_coordinator_quitcoordinator_init",
- "community": 47,
+ "community": 58,
"norm_label": ".__init__()"
},
{
@@ -51687,7 +53046,7 @@
"source_file": "src/exlab_wizard/tray/quit_coordinator.py",
"source_location": "L82",
"id": "tray_quit_coordinator_quitcoordinator_quit",
- "community": 47,
+ "community": 58,
"norm_label": ".quit()"
},
{
@@ -51696,7 +53055,7 @@
"source_file": "src/exlab_wizard/tray/quit_coordinator.py",
"source_location": "L112",
"id": "tray_quit_coordinator_quitcoordinator_is_idle",
- "community": 47,
+ "community": 58,
"norm_label": "._is_idle()"
},
{
@@ -51705,7 +53064,7 @@
"source_file": "src/exlab_wizard/tray/quit_coordinator.py",
"source_location": "L125",
"id": "tray_quit_coordinator_quitcoordinator_wait_for_idle",
- "community": 47,
+ "community": 58,
"norm_label": "._wait_for_idle()"
},
{
@@ -51714,7 +53073,7 @@
"source_file": "src/exlab_wizard/tray/quit_coordinator.py",
"source_location": "L147",
"id": "tray_quit_coordinator_quitcoordinator_prompt_force_quit",
- "community": 47,
+ "community": 58,
"norm_label": "._prompt_force_quit()"
},
{
@@ -51723,7 +53082,7 @@
"source_file": "src/exlab_wizard/tray/quit_coordinator.py",
"source_location": "L163",
"id": "tray_quit_coordinator_safe_count",
- "community": 47,
+ "community": 58,
"norm_label": "_safe_count()"
},
{
@@ -51732,7 +53091,7 @@
"source_file": "src/exlab_wizard/tray/quit_coordinator.py",
"source_location": "L1",
"id": "tray_quit_coordinator_rationale_1",
- "community": 47,
+ "community": 58,
"norm_label": "graceful tray shutdown coordinator. backend spec \u00a74.3.2. steps documented in \u00a74"
},
{
@@ -51741,7 +53100,7 @@
"source_file": "src/exlab_wizard/tray/quit_coordinator.py",
"source_location": "L50",
"id": "tray_quit_coordinator_rationale_50",
- "community": 47,
+ "community": 58,
"norm_label": "drive the \u00a74.3.2 graceful-shutdown protocol. construction-time dependencies"
},
{
@@ -51750,7 +53109,7 @@
"source_file": "src/exlab_wizard/tray/quit_coordinator.py",
"source_location": "L83",
"id": "tray_quit_coordinator_rationale_83",
- "community": 47,
+ "community": 58,
"norm_label": "run the graceful-shutdown protocol. ``sigterm=true`` reduces the wait w"
},
{
@@ -51759,7 +53118,7 @@
"source_file": "src/exlab_wizard/tray/quit_coordinator.py",
"source_location": "L113",
"id": "tray_quit_coordinator_rationale_113",
- "community": 47,
+ "community": 58,
"norm_label": "return true iff the \u00a74.3.2 predicate holds. ``sessionstore.active_sessi"
},
{
@@ -51768,7 +53127,7 @@
"source_file": "src/exlab_wizard/tray/quit_coordinator.py",
"source_location": "L126",
"id": "tray_quit_coordinator_rationale_126",
- "community": 47,
+ "community": 58,
"norm_label": "poll :meth:`_is_idle` up to ``deadline_seconds`` seconds. returns true"
},
{
@@ -51777,7 +53136,7 @@
"source_file": "src/exlab_wizard/tray/quit_coordinator.py",
"source_location": "L148",
"id": "tray_quit_coordinator_rationale_148",
- "community": 47,
+ "community": 58,
"norm_label": "invoke the operator-facing force-quit prompt. returns ``true`` to indic"
},
{
@@ -51786,7 +53145,7 @@
"source_file": "src/exlab_wizard/tray/quit_coordinator.py",
"source_location": "L164",
"id": "tray_quit_coordinator_rationale_164",
- "community": 47,
+ "community": 58,
"norm_label": "return ``int(obj.)`` defensively. falls through ``none``, missing att"
},
{
@@ -51795,7 +53154,7 @@
"source_file": "src/exlab_wizard/tray/window_launcher.py",
"source_location": "L1",
"id": "src_exlab_wizard_tray_window_launcher_py",
- "community": 86,
+ "community": 88,
"norm_label": "window_launcher.py"
},
{
@@ -51804,7 +53163,7 @@
"source_file": "src/exlab_wizard/tray/window_launcher.py",
"source_location": "L35",
"id": "tray_window_launcher_resolve_window_executable",
- "community": 86,
+ "community": 88,
"norm_label": "_resolve_window_executable()"
},
{
@@ -51813,7 +53172,7 @@
"source_file": "src/exlab_wizard/tray/window_launcher.py",
"source_location": "L55",
"id": "tray_window_launcher_windowlauncher",
- "community": 86,
+ "community": 88,
"norm_label": "windowlauncher"
},
{
@@ -51822,7 +53181,7 @@
"source_file": "src/exlab_wizard/tray/window_launcher.py",
"source_location": "L63",
"id": "tray_window_launcher_windowlauncher_init",
- "community": 86,
+ "community": 88,
"norm_label": ".__init__()"
},
{
@@ -51831,7 +53190,7 @@
"source_file": "src/exlab_wizard/tray/window_launcher.py",
"source_location": "L77",
"id": "tray_window_launcher_windowlauncher_open",
- "community": 86,
+ "community": 88,
"norm_label": ".open()"
},
{
@@ -51840,7 +53199,7 @@
"source_file": "src/exlab_wizard/tray/window_launcher.py",
"source_location": "L89",
"id": "tray_window_launcher_windowlauncher_close",
- "community": 86,
+ "community": 88,
"norm_label": ".close()"
},
{
@@ -51849,7 +53208,7 @@
"source_file": "src/exlab_wizard/tray/window_launcher.py",
"source_location": "L103",
"id": "tray_window_launcher_is_alive",
- "community": 86,
+ "community": 88,
"norm_label": "is_alive()"
},
{
@@ -51858,7 +53217,7 @@
"source_file": "src/exlab_wizard/tray/window_launcher.py",
"source_location": "L110",
"id": "tray_window_launcher_pid",
- "community": 86,
+ "community": 88,
"norm_label": "pid()"
},
{
@@ -51867,7 +53226,7 @@
"source_file": "src/exlab_wizard/tray/window_launcher.py",
"source_location": "L120",
"id": "tray_window_launcher_windowlauncher_argv",
- "community": 86,
+ "community": 88,
"norm_label": "._argv()"
},
{
@@ -51876,7 +53235,7 @@
"source_file": "src/exlab_wizard/tray/window_launcher.py",
"source_location": "L126",
"id": "tray_window_launcher_windowlauncher_focus_existing",
- "community": 86,
+ "community": 88,
"norm_label": "._focus_existing()"
},
{
@@ -51885,7 +53244,7 @@
"source_file": "src/exlab_wizard/tray/window_launcher.py",
"source_location": "L1",
"id": "tray_window_launcher_rationale_1",
- "community": 86,
+ "community": 88,
"norm_label": "spawn / focus the on-demand window subprocess. backend spec \u00a74.3.2. the tray cl"
},
{
@@ -51894,7 +53253,7 @@
"source_file": "src/exlab_wizard/tray/window_launcher.py",
"source_location": "L36",
"id": "tray_window_launcher_rationale_36",
- "community": 86,
+ "community": 88,
"norm_label": "return the argv prefix for spawning ``exlab-wizard-window``. resolution ord"
},
{
@@ -51903,7 +53262,7 @@
"source_file": "src/exlab_wizard/tray/window_launcher.py",
"source_location": "L56",
"id": "tray_window_launcher_rationale_56",
- "community": 86,
+ "community": 88,
"norm_label": "spawn ``exlab-wizard-window`` as a subprocess, track its pid. on a re-open"
},
{
@@ -51912,7 +53271,7 @@
"source_file": "src/exlab_wizard/tray/window_launcher.py",
"source_location": "L78",
"id": "tray_window_launcher_rationale_78",
- "community": 86,
+ "community": 88,
"norm_label": "spawn a window subprocess, or focus the existing one."
},
{
@@ -51921,7 +53280,7 @@
"source_file": "src/exlab_wizard/tray/window_launcher.py",
"source_location": "L90",
"id": "tray_window_launcher_rationale_90",
- "community": 86,
+ "community": 88,
"norm_label": "terminate the live window subprocess, if any. idempotent."
},
{
@@ -51930,7 +53289,7 @@
"source_file": "src/exlab_wizard/tray/window_launcher.py",
"source_location": "L104",
"id": "tray_window_launcher_rationale_104",
- "community": 624,
+ "community": 649,
"norm_label": "return ``true`` while the window subprocess is running."
},
{
@@ -51939,7 +53298,7 @@
"source_file": "src/exlab_wizard/tray/window_launcher.py",
"source_location": "L111",
"id": "tray_window_launcher_rationale_111",
- "community": 625,
+ "community": 650,
"norm_label": "return the live window's pid, or ``none`` if no window is up."
},
{
@@ -51948,7 +53307,7 @@
"source_file": "src/exlab_wizard/tray/window_launcher.py",
"source_location": "L121",
"id": "tray_window_launcher_rationale_121",
- "community": 86,
+ "community": 88,
"norm_label": "return the argv to spawn the window subprocess."
},
{
@@ -51957,7 +53316,7 @@
"source_file": "src/exlab_wizard/tray/window_launcher.py",
"source_location": "L127",
"id": "tray_window_launcher_rationale_127",
- "community": 86,
+ "community": 88,
"norm_label": "best-effort raise/focus of the existing window. v1 logs the request; th"
},
{
@@ -51966,7 +53325,7 @@
"source_file": "src/exlab_wizard/tray/notifications.py",
"source_location": "L1",
"id": "src_exlab_wizard_tray_notifications_py",
- "community": 36,
+ "community": 44,
"norm_label": "notifications.py"
},
{
@@ -51975,7 +53334,7 @@
"source_file": "src/exlab_wizard/tray/notifications.py",
"source_location": "L50",
"id": "tray_notifications_notify",
- "community": 36,
+ "community": 44,
"norm_label": "notify()"
},
{
@@ -51984,7 +53343,7 @@
"source_file": "src/exlab_wizard/tray/notifications.py",
"source_location": "L70",
"id": "tray_notifications_default_notifier",
- "community": 36,
+ "community": 44,
"norm_label": "_default_notifier()"
},
{
@@ -51993,7 +53352,7 @@
"source_file": "src/exlab_wizard/tray/notifications.py",
"source_location": "L80",
"id": "tray_notifications_noop_notifier",
- "community": 36,
+ "community": 44,
"norm_label": "_noop_notifier()"
},
{
@@ -52002,7 +53361,7 @@
"source_file": "src/exlab_wizard/tray/notifications.py",
"source_location": "L90",
"id": "tray_notifications_bucket",
- "community": 36,
+ "community": 44,
"norm_label": "_bucket"
},
{
@@ -52011,7 +53370,7 @@
"source_file": "src/exlab_wizard/tray/notifications.py",
"source_location": "L99",
"id": "tray_notifications_notificationbus",
- "community": 36,
+ "community": 44,
"norm_label": "notificationbus"
},
{
@@ -52020,7 +53379,7 @@
"source_file": "src/exlab_wizard/tray/notifications.py",
"source_location": "L108",
"id": "tray_notifications_notificationbus_init",
- "community": 36,
+ "community": 44,
"norm_label": ".__init__()"
},
{
@@ -52029,7 +53388,7 @@
"source_file": "src/exlab_wizard/tray/notifications.py",
"source_location": "L125",
"id": "tray_notifications_notificationbus_emit",
- "community": 36,
+ "community": 44,
"norm_label": ".emit()"
},
{
@@ -52038,7 +53397,7 @@
"source_file": "src/exlab_wizard/tray/notifications.py",
"source_location": "L153",
"id": "tray_notifications_notificationbus_flush_pending",
- "community": 36,
+ "community": 44,
"norm_label": ".flush_pending()"
},
{
@@ -52047,7 +53406,7 @@
"source_file": "src/exlab_wizard/tray/notifications.py",
"source_location": "L166",
"id": "tray_notifications_notificationbus_cancel_all",
- "community": 36,
+ "community": 44,
"norm_label": ".cancel_all()"
},
{
@@ -52056,7 +53415,7 @@
"source_file": "src/exlab_wizard/tray/notifications.py",
"source_location": "L178",
"id": "tray_notifications_notificationbus_flush",
- "community": 36,
+ "community": 44,
"norm_label": "._flush()"
},
{
@@ -52065,7 +53424,7 @@
"source_file": "src/exlab_wizard/tray/notifications.py",
"source_location": "L192",
"id": "tray_notifications_coalesced_message",
- "community": 36,
+ "community": 44,
"norm_label": "_coalesced_message()"
},
{
@@ -52074,7 +53433,7 @@
"source_file": "src/exlab_wizard/tray/notifications.py",
"source_location": "L1",
"id": "tray_notifications_rationale_1",
- "community": 36,
+ "community": 44,
"norm_label": "os notifications via plyer with 5-second coalescing. backend spec \u00a715.7.3. two"
},
{
@@ -52083,7 +53442,7 @@
"source_file": "src/exlab_wizard/tray/notifications.py",
"source_location": "L56",
"id": "tray_notifications_rationale_56",
- "community": 36,
+ "community": 44,
"norm_label": "fire a plyer notification (or an injected stub). ``notifier`` defaults to `"
},
{
@@ -52092,7 +53451,7 @@
"source_file": "src/exlab_wizard/tray/notifications.py",
"source_location": "L71",
"id": "tray_notifications_rationale_71",
- "community": 36,
+ "community": 44,
"norm_label": "resolve the plyer notifier lazily; safe even when plyer's backend errors."
},
{
@@ -52101,7 +53460,7 @@
"source_file": "src/exlab_wizard/tray/notifications.py",
"source_location": "L91",
"id": "tray_notifications_rationale_91",
- "community": 36,
+ "community": 44,
"norm_label": "per-trigger coalescing bucket."
},
{
@@ -52110,7 +53469,7 @@
"source_file": "src/exlab_wizard/tray/notifications.py",
"source_location": "L100",
"id": "tray_notifications_rationale_100",
- "community": 36,
+ "community": 44,
"norm_label": "coalescing layer over :func:`notify`. the launcher constructs one bus and t"
},
{
@@ -52119,7 +53478,7 @@
"source_file": "src/exlab_wizard/tray/notifications.py",
"source_location": "L126",
"id": "tray_notifications_rationale_126",
- "community": 36,
+ "community": 44,
"norm_label": "submit a notification trigger. if the window is foregrounded the call i"
},
{
@@ -52128,7 +53487,7 @@
"source_file": "src/exlab_wizard/tray/notifications.py",
"source_location": "L154",
"id": "tray_notifications_rationale_154",
- "community": 36,
+ "community": 44,
"norm_label": "drain every active bucket synchronously. returns the bucket count. used"
},
{
@@ -52137,7 +53496,7 @@
"source_file": "src/exlab_wizard/tray/notifications.py",
"source_location": "L167",
"id": "tray_notifications_rationale_167",
- "community": 36,
+ "community": 44,
"norm_label": "cancel every active timer without firing the notifications."
},
{
@@ -52146,7 +53505,7 @@
"source_file": "src/exlab_wizard/tray/notifications.py",
"source_location": "L193",
"id": "tray_notifications_rationale_193",
- "community": 36,
+ "community": 44,
"norm_label": "render the coalesced summary string for a burst of ``count`` events."
},
{
@@ -52155,7 +53514,7 @@
"source_file": "src/exlab_wizard/tray/main.py",
"source_location": "L1",
"id": "src_exlab_wizard_tray_main_py",
- "community": 114,
+ "community": 110,
"norm_label": "main.py"
},
{
@@ -52164,7 +53523,7 @@
"source_file": "src/exlab_wizard/tray/main.py",
"source_location": "L49",
"id": "tray_main_trayapp",
- "community": 20,
+ "community": 9,
"norm_label": "trayapp"
},
{
@@ -52173,7 +53532,7 @@
"source_file": "src/exlab_wizard/tray/main.py",
"source_location": "L69",
"id": "tray_main_trayapp_start_server",
- "community": 114,
+ "community": 110,
"norm_label": ".start_server()"
},
{
@@ -52182,7 +53541,7 @@
"source_file": "src/exlab_wizard/tray/main.py",
"source_location": "L73",
"id": "tray_main_trayapp_open_window",
- "community": 20,
+ "community": 9,
"norm_label": ".open_window()"
},
{
@@ -52191,7 +53550,7 @@
"source_file": "src/exlab_wizard/tray/main.py",
"source_location": "L77",
"id": "tray_main_trayapp_request_quit",
- "community": 114,
+ "community": 110,
"norm_label": ".request_quit()"
},
{
@@ -52200,7 +53559,7 @@
"source_file": "src/exlab_wizard/tray/main.py",
"source_location": "L91",
"id": "tray_main_trayapp_shutdown",
- "community": 114,
+ "community": 110,
"norm_label": ".shutdown()"
},
{
@@ -52209,7 +53568,7 @@
"source_file": "src/exlab_wizard/tray/main.py",
"source_location": "L98",
"id": "tray_main_trayapp_run",
- "community": 114,
+ "community": 110,
"norm_label": ".run()"
},
{
@@ -52218,7 +53577,7 @@
"source_file": "src/exlab_wizard/tray/main.py",
"source_location": "L129",
"id": "tray_main_build_default_app",
- "community": 114,
+ "community": 110,
"norm_label": "_build_default_app()"
},
{
@@ -52227,7 +53586,7 @@
"source_file": "src/exlab_wizard/tray/main.py",
"source_location": "L153",
"id": "tray_main_build_default_components",
- "community": 114,
+ "community": 110,
"norm_label": "_build_default_components()"
},
{
@@ -52236,7 +53595,7 @@
"source_file": "src/exlab_wizard/tray/main.py",
"source_location": "L194",
"id": "tray_main_tray_backend_available",
- "community": 114,
+ "community": 110,
"norm_label": "_tray_backend_available()"
},
{
@@ -52245,34 +53604,25 @@
"source_file": "src/exlab_wizard/tray/main.py",
"source_location": "L207",
"id": "tray_main_parse_argv",
- "community": 218,
+ "community": 9,
"norm_label": "_parse_argv()"
},
- {
- "label": "_bootstrap_test_config()",
- "file_type": "code",
- "source_file": "src/exlab_wizard/tray/main.py",
- "source_location": "L272",
- "id": "tray_main_bootstrap_test_config",
- "community": 0,
- "norm_label": "_bootstrap_test_config()"
- },
{
"label": "_run_smoke()",
"file_type": "code",
"source_file": "src/exlab_wizard/tray/main.py",
- "source_location": "L350",
+ "source_location": "L276",
"id": "tray_main_run_smoke",
- "community": 114,
+ "community": 110,
"norm_label": "_run_smoke()"
},
{
"label": "main()",
"file_type": "code",
"source_file": "src/exlab_wizard/tray/main.py",
- "source_location": "L383",
+ "source_location": "L309",
"id": "tray_main_main",
- "community": 114,
+ "community": 110,
"norm_label": "main()"
},
{
@@ -52281,7 +53631,7 @@
"source_file": "src/exlab_wizard/tray/main.py",
"source_location": "L1",
"id": "tray_main_rationale_1",
- "community": 114,
+ "community": 110,
"norm_label": "``exlab-wizard-tray`` console_scripts entry point. backend spec \u00a74.3.2. wires t"
},
{
@@ -52290,7 +53640,7 @@
"source_file": "src/exlab_wizard/tray/main.py",
"source_location": "L50",
"id": "tray_main_rationale_50",
- "community": 20,
+ "community": 9,
"norm_label": "bundle of long-lived tray components. the launcher constructs one and calls"
},
{
@@ -52299,7 +53649,7 @@
"source_file": "src/exlab_wizard/tray/main.py",
"source_location": "L70",
"id": "tray_main_rationale_70",
- "community": 114,
+ "community": 110,
"norm_label": "start the in-process fastapi server. returns the bound port."
},
{
@@ -52308,7 +53658,7 @@
"source_file": "src/exlab_wizard/tray/main.py",
"source_location": "L74",
"id": "tray_main_rationale_74",
- "community": 20,
+ "community": 9,
"norm_label": "spawn or focus the window subprocess."
},
{
@@ -52317,7 +53667,7 @@
"source_file": "src/exlab_wizard/tray/main.py",
"source_location": "L78",
"id": "tray_main_rationale_78",
- "community": 114,
+ "community": 110,
"norm_label": "trigger the graceful-shutdown protocol on the icon thread."
},
{
@@ -52326,7 +53676,7 @@
"source_file": "src/exlab_wizard/tray/main.py",
"source_location": "L92",
"id": "tray_main_rationale_92",
- "community": 114,
+ "community": 110,
"norm_label": "tear down sub-components synchronously."
},
{
@@ -52335,7 +53685,7 @@
"source_file": "src/exlab_wizard/tray/main.py",
"source_location": "L99",
"id": "tray_main_rationale_99",
- "community": 114,
+ "community": 110,
"norm_label": "start the server, build the icon, run the pystray loop. ``run_loop`` is"
},
{
@@ -52344,7 +53694,7 @@
"source_file": "src/exlab_wizard/tray/main.py",
"source_location": "L130",
"id": "tray_main_rationale_130",
- "community": 114,
+ "community": 110,
"norm_label": "return the production fastapi app for the tray. constructs the live :class:"
},
{
@@ -52353,7 +53703,7 @@
"source_file": "src/exlab_wizard/tray/main.py",
"source_location": "L158",
"id": "tray_main_rationale_158",
- "community": 114,
+ "community": 110,
"norm_label": "construct the production trayapp wiring. split out so :func:`main` can stay"
},
{
@@ -52362,7 +53712,7 @@
"source_file": "src/exlab_wizard/tray/main.py",
"source_location": "L195",
"id": "tray_main_rationale_195",
- "community": 114,
+ "community": 110,
"norm_label": "true when a ``pystray`` backend can be imported. when it cannot (e.g. a hea"
},
{
@@ -52371,34 +53721,25 @@
"source_file": "src/exlab_wizard/tray/main.py",
"source_location": "L208",
"id": "tray_main_rationale_208",
- "community": 218,
+ "community": 9,
"norm_label": "parse the tray's cli arguments. the tray accepts: - ``--version`` -- p"
},
- {
- "label": "Write a starter test ``config.yaml`` if one does not already exist. Called",
- "file_type": "rationale",
- "source_file": "src/exlab_wizard/tray/main.py",
- "source_location": "L273",
- "id": "tray_main_rationale_273",
- "community": 0,
- "norm_label": "write a starter test ``config.yaml`` if one does not already exist. called"
- },
{
"label": "Server-only loop. Boots the FastAPI server, prints the published port, waits",
"file_type": "rationale",
"source_file": "src/exlab_wizard/tray/main.py",
- "source_location": "L351",
- "id": "tray_main_rationale_351",
- "community": 114,
+ "source_location": "L277",
+ "id": "tray_main_rationale_277",
+ "community": 110,
"norm_label": "server-only loop. boots the fastapi server, prints the published port, waits"
},
{
"label": "``exlab-wizard-tray`` entry point. The main thread runs pystray; the FastAP",
"file_type": "rationale",
"source_file": "src/exlab_wizard/tray/main.py",
- "source_location": "L384",
- "id": "tray_main_rationale_384",
- "community": 114,
+ "source_location": "L310",
+ "id": "tray_main_rationale_310",
+ "community": 110,
"norm_label": "``exlab-wizard-tray`` entry point. the main thread runs pystray; the fastap"
},
{
@@ -52407,7 +53748,7 @@
"source_file": "src/exlab_wizard/tray/dependencies.py",
"source_location": "L1",
"id": "src_exlab_wizard_tray_dependencies_py",
- "community": 14,
+ "community": 22,
"norm_label": "dependencies.py"
},
{
@@ -52416,7 +53757,7 @@
"source_file": "src/exlab_wizard/tray/dependencies.py",
"source_location": "L46",
"id": "tray_dependencies_build_production_dependencies",
- "community": 14,
+ "community": 22,
"norm_label": "build_production_dependencies()"
},
{
@@ -52425,7 +53766,7 @@
"source_file": "src/exlab_wizard/tray/dependencies.py",
"source_location": "L159",
"id": "tray_dependencies_apply_live_config",
- "community": 97,
+ "community": 101,
"norm_label": "apply_live_config()"
},
{
@@ -52434,7 +53775,7 @@
"source_file": "src/exlab_wizard/tray/dependencies.py",
"source_location": "L256",
"id": "tray_dependencies_plugin_dir",
- "community": 14,
+ "community": 22,
"norm_label": "_plugin_dir()"
},
{
@@ -52443,7 +53784,7 @@
"source_file": "src/exlab_wizard/tray/dependencies.py",
"source_location": "L262",
"id": "tray_dependencies_lims_identity",
- "community": 97,
+ "community": 101,
"norm_label": "_lims_identity()"
},
{
@@ -52452,7 +53793,7 @@
"source_file": "src/exlab_wizard/tray/dependencies.py",
"source_location": "L274",
"id": "tray_dependencies_refresh_plugin_host_status",
- "community": 97,
+ "community": 101,
"norm_label": "_refresh_plugin_host_status()"
},
{
@@ -52461,7 +53802,7 @@
"source_file": "src/exlab_wizard/tray/dependencies.py",
"source_location": "L289",
"id": "tray_dependencies_reload_lims_client",
- "community": 14,
+ "community": 22,
"norm_label": "_reload_lims_client()"
},
{
@@ -52470,7 +53811,7 @@
"source_file": "src/exlab_wizard/tray/dependencies.py",
"source_location": "L310",
"id": "tray_dependencies_reload_nas_sync",
- "community": 14,
+ "community": 22,
"norm_label": "_reload_nas_sync()"
},
{
@@ -52479,7 +53820,7 @@
"source_file": "src/exlab_wizard/tray/dependencies.py",
"source_location": "L341",
"id": "tray_dependencies_reload_quiescence_poller",
- "community": 14,
+ "community": 22,
"norm_label": "_reload_quiescence_poller()"
},
{
@@ -52488,7 +53829,7 @@
"source_file": "src/exlab_wizard/tray/dependencies.py",
"source_location": "L369",
"id": "tray_dependencies_schedule_bringup",
- "community": 14,
+ "community": 22,
"norm_label": "_schedule_bringup()"
},
{
@@ -52497,7 +53838,7 @@
"source_file": "src/exlab_wizard/tray/dependencies.py",
"source_location": "L394",
"id": "tray_dependencies_fire_and_forget",
- "community": 14,
+ "community": 22,
"norm_label": "_fire_and_forget()"
},
{
@@ -52506,7 +53847,7 @@
"source_file": "src/exlab_wizard/tray/dependencies.py",
"source_location": "L407",
"id": "tray_dependencies_try",
- "community": 14,
+ "community": 22,
"norm_label": "_try()"
},
{
@@ -52515,7 +53856,7 @@
"source_file": "src/exlab_wizard/tray/dependencies.py",
"source_location": "L416",
"id": "tray_dependencies_load_config_safely",
- "community": 64,
+ "community": 76,
"norm_label": "_load_config_safely()"
},
{
@@ -52524,7 +53865,7 @@
"source_file": "src/exlab_wizard/tray/dependencies.py",
"source_location": "L424",
"id": "tray_dependencies_make_save_config",
- "community": 14,
+ "community": 22,
"norm_label": "_make_save_config()"
},
{
@@ -52533,7 +53874,7 @@
"source_file": "src/exlab_wizard/tray/dependencies.py",
"source_location": "L434",
"id": "tray_dependencies_derive_validator_inputs",
- "community": 14,
+ "community": 22,
"norm_label": "_derive_validator_inputs()"
},
{
@@ -52542,7 +53883,7 @@
"source_file": "src/exlab_wizard/tray/dependencies.py",
"source_location": "L460",
"id": "tray_dependencies_build_validator",
- "community": 14,
+ "community": 22,
"norm_label": "_build_validator()"
},
{
@@ -52551,7 +53892,7 @@
"source_file": "src/exlab_wizard/tray/dependencies.py",
"source_location": "L471",
"id": "tray_dependencies_build_session_store",
- "community": 14,
+ "community": 22,
"norm_label": "_build_session_store()"
},
{
@@ -52560,7 +53901,7 @@
"source_file": "src/exlab_wizard/tray/dependencies.py",
"source_location": "L477",
"id": "tray_dependencies_build_creation_writer",
- "community": 14,
+ "community": 22,
"norm_label": "_build_creation_writer()"
},
{
@@ -52569,7 +53910,7 @@
"source_file": "src/exlab_wizard/tray/dependencies.py",
"source_location": "L483",
"id": "tray_dependencies_build_equipment_writer",
- "community": 14,
+ "community": 22,
"norm_label": "_build_equipment_writer()"
},
{
@@ -52578,7 +53919,7 @@
"source_file": "src/exlab_wizard/tray/dependencies.py",
"source_location": "L489",
"id": "tray_dependencies_build_template_engine",
- "community": 14,
+ "community": 22,
"norm_label": "_build_template_engine()"
},
{
@@ -52587,7 +53928,7 @@
"source_file": "src/exlab_wizard/tray/dependencies.py",
"source_location": "L495",
"id": "tray_dependencies_build_plugin_host",
- "community": 14,
+ "community": 22,
"norm_label": "_build_plugin_host()"
},
{
@@ -52596,7 +53937,7 @@
"source_file": "src/exlab_wizard/tray/dependencies.py",
"source_location": "L517",
"id": "tray_dependencies_build_controller",
- "community": 96,
+ "community": 224,
"norm_label": "_build_controller()"
},
{
@@ -52605,7 +53946,7 @@
"source_file": "src/exlab_wizard/tray/dependencies.py",
"source_location": "L551",
"id": "tray_dependencies_build_keyring_store",
- "community": 14,
+ "community": 22,
"norm_label": "_build_keyring_store()"
},
{
@@ -52614,7 +53955,7 @@
"source_file": "src/exlab_wizard/tray/dependencies.py",
"source_location": "L568",
"id": "tray_dependencies_lims_keyring_password",
- "community": 14,
+ "community": 22,
"norm_label": "_lims_keyring_password()"
},
{
@@ -52623,7 +53964,7 @@
"source_file": "src/exlab_wizard/tray/dependencies.py",
"source_location": "L588",
"id": "tray_dependencies_check_keyring_present",
- "community": 14,
+ "community": 22,
"norm_label": "_check_keyring_present()"
},
{
@@ -52632,7 +53973,7 @@
"source_file": "src/exlab_wizard/tray/dependencies.py",
"source_location": "L598",
"id": "tray_dependencies_build_lims_client",
- "community": 84,
+ "community": 98,
"norm_label": "_build_lims_client()"
},
{
@@ -52641,7 +53982,7 @@
"source_file": "src/exlab_wizard/tray/dependencies.py",
"source_location": "L616",
"id": "tray_dependencies_hydrate_nas_remotes",
- "community": 38,
+ "community": 68,
"norm_label": "_hydrate_nas_remotes()"
},
{
@@ -52650,7 +53991,7 @@
"source_file": "src/exlab_wizard/tray/dependencies.py",
"source_location": "L637",
"id": "tray_dependencies_make_equipment_probe",
- "community": 48,
+ "community": 43,
"norm_label": "_make_equipment_probe()"
},
{
@@ -52659,7 +54000,7 @@
"source_file": "src/exlab_wizard/tray/dependencies.py",
"source_location": "L676",
"id": "tray_dependencies_make_lims_probe",
- "community": 14,
+ "community": 22,
"norm_label": "_make_lims_probe()"
},
{
@@ -52668,7 +54009,7 @@
"source_file": "src/exlab_wizard/tray/dependencies.py",
"source_location": "L693",
"id": "tray_dependencies_build_nas_sync",
- "community": 14,
+ "community": 22,
"norm_label": "_build_nas_sync()"
},
{
@@ -52677,7 +54018,7 @@
"source_file": "src/exlab_wizard/tray/dependencies.py",
"source_location": "L736",
"id": "tray_dependencies_make_nas_sync_snapshot",
- "community": 14,
+ "community": 22,
"norm_label": "_make_nas_sync_snapshot()"
},
{
@@ -52686,7 +54027,7 @@
"source_file": "src/exlab_wizard/tray/dependencies.py",
"source_location": "L748",
"id": "tray_dependencies_build_sync_state_writer",
- "community": 14,
+ "community": 22,
"norm_label": "_build_sync_state_writer()"
},
{
@@ -52695,7 +54036,7 @@
"source_file": "src/exlab_wizard/tray/dependencies.py",
"source_location": "L760",
"id": "tray_dependencies_build_quiescence_poller",
- "community": 14,
+ "community": 22,
"norm_label": "_build_quiescence_poller()"
},
{
@@ -52704,7 +54045,7 @@
"source_file": "src/exlab_wizard/tray/dependencies.py",
"source_location": "L793",
"id": "tray_dependencies_make_autostart_toggle",
- "community": 14,
+ "community": 22,
"norm_label": "_make_autostart_toggle()"
},
{
@@ -52713,7 +54054,7 @@
"source_file": "src/exlab_wizard/tray/dependencies.py",
"source_location": "L805",
"id": "tray_dependencies_make_session_store_snapshot",
- "community": 14,
+ "community": 22,
"norm_label": "_make_session_store_snapshot()"
},
{
@@ -52722,7 +54063,7 @@
"source_file": "src/exlab_wizard/tray/dependencies.py",
"source_location": "L1",
"id": "tray_dependencies_rationale_1",
- "community": 14,
+ "community": 22,
"norm_label": "production :class:`appdependencies` factory. backend spec \u00a74.5, \u00a74.6. the tray"
},
{
@@ -52731,7 +54072,7 @@
"source_file": "src/exlab_wizard/tray/dependencies.py",
"source_location": "L47",
"id": "tray_dependencies_rationale_47",
- "community": 14,
+ "community": 22,
"norm_label": "return a populated :class:`appdependencies` for the live tray. every per-co"
},
{
@@ -52740,7 +54081,7 @@
"source_file": "src/exlab_wizard/tray/dependencies.py",
"source_location": "L160",
"id": "tray_dependencies_rationale_160",
- "community": 97,
+ "community": 101,
"norm_label": "push a freshly saved ``config.yaml`` into the running components. replaces"
},
{
@@ -52749,7 +54090,7 @@
"source_file": "src/exlab_wizard/tray/dependencies.py",
"source_location": "L263",
"id": "tray_dependencies_rationale_263",
- "community": 97,
+ "community": 101,
"norm_label": "return the ``(endpoint, email)`` pair that defines a lims client. trailing"
},
{
@@ -52758,7 +54099,7 @@
"source_file": "src/exlab_wizard/tray/dependencies.py",
"source_location": "L275",
"id": "tray_dependencies_rationale_275",
- "community": 97,
+ "community": 101,
"norm_label": "re-derive the plugin-host status counters after a rebuild. mirrors the boot"
},
{
@@ -52767,7 +54108,7 @@
"source_file": "src/exlab_wizard/tray/dependencies.py",
"source_location": "L290",
"id": "tray_dependencies_rationale_290",
- "community": 14,
+ "community": 22,
"norm_label": "rebuild ``deps.lims_client`` for a changed endpoint / email. builds a fresh"
},
{
@@ -52776,7 +54117,7 @@
"source_file": "src/exlab_wizard/tray/dependencies.py",
"source_location": "L311",
"id": "tray_dependencies_rationale_311",
- "community": 14,
+ "community": 22,
"norm_label": "reconfigure the nas-sync client in place, or build it fresh. returns ``true"
},
{
@@ -52785,7 +54126,7 @@
"source_file": "src/exlab_wizard/tray/dependencies.py",
"source_location": "L342",
"id": "tray_dependencies_rationale_342",
- "community": 14,
+ "community": 22,
"norm_label": "reconfigure the quiescence poller in place, or build it fresh. returns ``tr"
},
{
@@ -52794,7 +54135,7 @@
"source_file": "src/exlab_wizard/tray/dependencies.py",
"source_location": "L370",
"id": "tray_dependencies_rationale_370",
- "community": 14,
+ "community": 22,
"norm_label": "schedule ``nas_sync.init()`` / ``poller.start()`` on the running loop. used"
},
{
@@ -52803,7 +54144,7 @@
"source_file": "src/exlab_wizard/tray/dependencies.py",
"source_location": "L395",
"id": "tray_dependencies_rationale_395",
- "community": 14,
+ "community": 22,
"norm_label": "run ``coro`` on the running loop, logging failures; no-op if loop-less."
},
{
@@ -52812,7 +54153,7 @@
"source_file": "src/exlab_wizard/tray/dependencies.py",
"source_location": "L408",
"id": "tray_dependencies_rationale_408",
- "community": 14,
+ "community": 22,
"norm_label": "run ``fn(*args, **kwargs)`` swallowing exceptions with a warn log."
},
{
@@ -52821,7 +54162,7 @@
"source_file": "src/exlab_wizard/tray/dependencies.py",
"source_location": "L435",
"id": "tray_dependencies_rationale_435",
- "community": 14,
+ "community": 22,
"norm_label": "derive ``(validator_config, equipment_roots, staging_root)`` from config. s"
},
{
@@ -52830,7 +54171,7 @@
"source_file": "src/exlab_wizard/tray/dependencies.py",
"source_location": "L552",
"id": "tray_dependencies_rationale_552",
- "community": 14,
+ "community": 22,
"norm_label": "build the lims/nas secret store with an optional fallback passphrase. when"
},
{
@@ -52839,7 +54180,7 @@
"source_file": "src/exlab_wizard/tray/dependencies.py",
"source_location": "L569",
"id": "tray_dependencies_rationale_569",
- "community": 14,
+ "community": 22,
"norm_label": "return the stored lims password, or ``none`` if absent/unavailable. the cre"
},
{
@@ -52848,7 +54189,7 @@
"source_file": "src/exlab_wizard/tray/dependencies.py",
"source_location": "L617",
"id": "tray_dependencies_rationale_617",
- "community": 38,
+ "community": 68,
"norm_label": "snapshot the rclone remotes defined in the operator's rclone.conf. rclone.c"
},
{
@@ -52857,7 +54198,7 @@
"source_file": "src/exlab_wizard/tray/dependencies.py",
"source_location": "L638",
"id": "tray_dependencies_rationale_638",
- "community": 48,
+ "community": 43,
"norm_label": "build the ``deps.equipment_probe`` callable. rclone.conf nas-sync migration"
},
{
@@ -52866,7 +54207,7 @@
"source_file": "src/exlab_wizard/tray/dependencies.py",
"source_location": "L701",
"id": "tray_dependencies_rationale_701",
- "community": 14,
+ "community": 22,
"norm_label": "build the :class:`nassyncclient` -- the public nas-sync surface. the client"
},
{
@@ -52875,7 +54216,7 @@
"source_file": "src/exlab_wizard/tray/dependencies.py",
"source_location": "L749",
"id": "tray_dependencies_rationale_749",
- "community": 14,
+ "community": 22,
"norm_label": "build the orchestrator-only ``sync_state.json`` writer. operator-free per-f"
},
{
@@ -52884,7 +54225,7 @@
"source_file": "src/exlab_wizard/tray/status.py",
"source_location": "L1",
"id": "src_exlab_wizard_tray_status_py",
- "community": 40,
+ "community": 47,
"norm_label": "status.py"
},
{
@@ -52893,7 +54234,7 @@
"source_file": "src/exlab_wizard/tray/status.py",
"source_location": "L45",
"id": "tray_status_statussnapshot",
- "community": 40,
+ "community": 47,
"norm_label": "statussnapshot"
},
{
@@ -52902,7 +54243,7 @@
"source_file": "src/exlab_wizard/tray/status.py",
"source_location": "L53",
"id": "tray_status_snapshot_status",
- "community": 40,
+ "community": 47,
"norm_label": "snapshot_status()"
},
{
@@ -52911,7 +54252,7 @@
"source_file": "src/exlab_wizard/tray/status.py",
"source_location": "L76",
"id": "tray_status_format_status",
- "community": 40,
+ "community": 47,
"norm_label": "format_status()"
},
{
@@ -52920,7 +54261,7 @@
"source_file": "src/exlab_wizard/tray/status.py",
"source_location": "L91",
"id": "tray_status_statusticker",
- "community": 40,
+ "community": 47,
"norm_label": "statusticker"
},
{
@@ -52929,7 +54270,7 @@
"source_file": "src/exlab_wizard/tray/status.py",
"source_location": "L100",
"id": "tray_status_statusticker_init",
- "community": 40,
+ "community": 47,
"norm_label": ".__init__()"
},
{
@@ -52938,7 +54279,7 @@
"source_file": "src/exlab_wizard/tray/status.py",
"source_location": "L120",
"id": "tray_status_statusticker_start",
- "community": 40,
+ "community": 47,
"norm_label": ".start()"
},
{
@@ -52947,7 +54288,7 @@
"source_file": "src/exlab_wizard/tray/status.py",
"source_location": "L129",
"id": "tray_status_statusticker_stop",
- "community": 40,
+ "community": 47,
"norm_label": ".stop()"
},
{
@@ -52956,7 +54297,7 @@
"source_file": "src/exlab_wizard/tray/status.py",
"source_location": "L136",
"id": "tray_status_statusticker_tick_once",
- "community": 40,
+ "community": 47,
"norm_label": ".tick_once()"
},
{
@@ -52965,7 +54306,7 @@
"source_file": "src/exlab_wizard/tray/status.py",
"source_location": "L156",
"id": "tray_status_statusticker_run",
- "community": 40,
+ "community": 47,
"norm_label": "._run()"
},
{
@@ -52974,7 +54315,7 @@
"source_file": "src/exlab_wizard/tray/status.py",
"source_location": "L162",
"id": "tray_status_safe_int",
- "community": 40,
+ "community": 47,
"norm_label": "_safe_int()"
},
{
@@ -52983,7 +54324,7 @@
"source_file": "src/exlab_wizard/tray/status.py",
"source_location": "L1",
"id": "tray_status_rationale_1",
- "community": 40,
+ "community": 47,
"norm_label": "status-submenu rendering. backend spec \u00a74.3.2. the tray's status submenu shows"
},
{
@@ -52992,7 +54333,7 @@
"source_file": "src/exlab_wizard/tray/status.py",
"source_location": "L46",
"id": "tray_status_rationale_46",
- "community": 40,
+ "community": 47,
"norm_label": "immutable view over the \u00a74.3.2 status inputs."
},
{
@@ -53001,7 +54342,7 @@
"source_file": "src/exlab_wizard/tray/status.py",
"source_location": "L58",
"id": "tray_status_rationale_58",
- "community": 40,
+ "community": 47,
"norm_label": "build a :class:`statussnapshot` from live component references. each compon"
},
{
@@ -53010,7 +54351,7 @@
"source_file": "src/exlab_wizard/tray/status.py",
"source_location": "L77",
"id": "tray_status_rationale_77",
- "community": 40,
+ "community": 47,
"norm_label": "return the menu-label string for the \u00a74.3.2 formatter."
},
{
@@ -53019,7 +54360,7 @@
"source_file": "src/exlab_wizard/tray/status.py",
"source_location": "L92",
"id": "tray_status_rationale_92",
- "community": 40,
+ "community": 47,
"norm_label": "polls :func:`snapshot_status` on a fixed cadence. on every tick the formatt"
},
{
@@ -53028,7 +54369,7 @@
"source_file": "src/exlab_wizard/tray/status.py",
"source_location": "L121",
"id": "tray_status_rationale_121",
- "community": 40,
+ "community": 47,
"norm_label": "spawn the ticker thread. idempotent."
},
{
@@ -53037,7 +54378,7 @@
"source_file": "src/exlab_wizard/tray/status.py",
"source_location": "L130",
"id": "tray_status_rationale_130",
- "community": 40,
+ "community": 47,
"norm_label": "signal the ticker to exit. idempotent."
},
{
@@ -53046,7 +54387,7 @@
"source_file": "src/exlab_wizard/tray/status.py",
"source_location": "L137",
"id": "tray_status_rationale_137",
- "community": 40,
+ "community": 47,
"norm_label": "run a single tick synchronously. returns the new label. tests call this"
},
{
@@ -53055,7 +54396,7 @@
"source_file": "src/exlab_wizard/tray/status.py",
"source_location": "L163",
"id": "tray_status_rationale_163",
- "community": 40,
+ "community": 47,
"norm_label": "best-effort numeric read; missing / none / non-int returns 0."
},
{
@@ -53064,7 +54405,7 @@
"source_file": "src/exlab_wizard/tray/storage_secret.py",
"source_location": "L1",
"id": "src_exlab_wizard_tray_storage_secret_py",
- "community": 260,
+ "community": 263,
"norm_label": "storage_secret.py"
},
{
@@ -53073,7 +54414,7 @@
"source_file": "src/exlab_wizard/tray/storage_secret.py",
"source_location": "L31",
"id": "tray_storage_secret_load_or_create_storage_secret",
- "community": 260,
+ "community": 263,
"norm_label": "load_or_create_storage_secret()"
},
{
@@ -53082,7 +54423,7 @@
"source_file": "src/exlab_wizard/tray/storage_secret.py",
"source_location": "L1",
"id": "tray_storage_secret_rationale_1",
- "community": 260,
+ "community": 263,
"norm_label": "per-installation nicegui ``storage_secret`` token. backend spec \u00a715.3. nicegui'"
},
{
@@ -53091,7 +54432,7 @@
"source_file": "src/exlab_wizard/tray/storage_secret.py",
"source_location": "L32",
"id": "tray_storage_secret_rationale_32",
- "community": 260,
+ "community": 263,
"norm_label": "return the per-installation storage secret, generating it if absent. the fi"
},
{
@@ -53100,7 +54441,7 @@
"source_file": "src/exlab_wizard/readme/__init__.py",
"source_location": "L1",
"id": "src_exlab_wizard_readme_init_py",
- "community": 443,
+ "community": 479,
"norm_label": "__init__.py"
},
{
@@ -53109,7 +54450,7 @@
"source_file": "src/exlab_wizard/readme/generator.py",
"source_location": "L1",
"id": "src_exlab_wizard_readme_generator_py",
- "community": 96,
+ "community": 133,
"norm_label": "generator.py"
},
{
@@ -53118,7 +54459,7 @@
"source_file": "src/exlab_wizard/readme/generator.py",
"source_location": "L96",
"id": "readme_generator_corefields",
- "community": 180,
+ "community": 25,
"norm_label": "corefields"
},
{
@@ -53127,7 +54468,7 @@
"source_file": "src/exlab_wizard/readme/generator.py",
"source_location": "L110",
"id": "readme_generator_templatefielddecl",
- "community": 35,
+ "community": 48,
"norm_label": "templatefielddecl"
},
{
@@ -53136,7 +54477,7 @@
"source_file": "src/exlab_wizard/readme/generator.py",
"source_location": "L128",
"id": "readme_generator_customfield",
- "community": 35,
+ "community": 48,
"norm_label": "customfield"
},
{
@@ -53145,7 +54486,7 @@
"source_file": "src/exlab_wizard/readme/generator.py",
"source_location": "L140",
"id": "readme_generator_systemfields",
- "community": 180,
+ "community": 224,
"norm_label": "systemfields"
},
{
@@ -53154,7 +54495,7 @@
"source_file": "src/exlab_wizard/readme/generator.py",
"source_location": "L153",
"id": "readme_generator_readmecontext",
- "community": 180,
+ "community": 25,
"norm_label": "readmecontext"
},
{
@@ -53163,7 +54504,7 @@
"source_file": "src/exlab_wizard/readme/generator.py",
"source_location": "L176",
"id": "readme_generator_readmegenerator",
- "community": 96,
+ "community": 224,
"norm_label": "readmegenerator"
},
{
@@ -53172,7 +54513,7 @@
"source_file": "src/exlab_wizard/readme/generator.py",
"source_location": "L179",
"id": "readme_generator_readmegenerator_generate",
- "community": 96,
+ "community": 224,
"norm_label": ".generate()"
},
{
@@ -53181,7 +54522,7 @@
"source_file": "src/exlab_wizard/readme/generator.py",
"source_location": "L197",
"id": "readme_generator_readmegenerator_generate_sync",
- "community": 96,
+ "community": 133,
"norm_label": "._generate_sync()"
},
{
@@ -53190,7 +54531,7 @@
"source_file": "src/exlab_wizard/readme/generator.py",
"source_location": "L228",
"id": "readme_generator_validate",
- "community": 96,
+ "community": 133,
"norm_label": "_validate()"
},
{
@@ -53199,7 +54540,7 @@
"source_file": "src/exlab_wizard/readme/generator.py",
"source_location": "L247",
"id": "readme_generator_validate_core_fields",
- "community": 96,
+ "community": 133,
"norm_label": "_validate_core_fields()"
},
{
@@ -53208,7 +54549,7 @@
"source_file": "src/exlab_wizard/readme/generator.py",
"source_location": "L270",
"id": "readme_generator_reject_core_redeclaration",
- "community": 96,
+ "community": 133,
"norm_label": "_reject_core_redeclaration()"
},
{
@@ -53217,7 +54558,7 @@
"source_file": "src/exlab_wizard/readme/generator.py",
"source_location": "L283",
"id": "readme_generator_validate_required_fields",
- "community": 96,
+ "community": 133,
"norm_label": "_validate_required_fields()"
},
{
@@ -53226,7 +54567,7 @@
"source_file": "src/exlab_wizard/readme/generator.py",
"source_location": "L298",
"id": "readme_generator_validate_field_id_uniqueness",
- "community": 96,
+ "community": 133,
"norm_label": "_validate_field_id_uniqueness()"
},
{
@@ -53235,7 +54576,7 @@
"source_file": "src/exlab_wizard/readme/generator.py",
"source_location": "L313",
"id": "readme_generator_validate_typed_fields",
- "community": 96,
+ "community": 133,
"norm_label": "_validate_typed_fields()"
},
{
@@ -53244,7 +54585,7 @@
"source_file": "src/exlab_wizard/readme/generator.py",
"source_location": "L335",
"id": "readme_generator_check_value_type",
- "community": 96,
+ "community": 133,
"norm_label": "_check_value_type()"
},
{
@@ -53253,7 +54594,7 @@
"source_file": "src/exlab_wizard/readme/generator.py",
"source_location": "L378",
"id": "readme_generator_validate_custom_field_labels",
- "community": 96,
+ "community": 133,
"norm_label": "_validate_custom_field_labels()"
},
{
@@ -53262,7 +54603,7 @@
"source_file": "src/exlab_wizard/readme/generator.py",
"source_location": "L397",
"id": "readme_generator_is_present",
- "community": 96,
+ "community": 133,
"norm_label": "_is_present()"
},
{
@@ -53271,7 +54612,7 @@
"source_file": "src/exlab_wizard/readme/generator.py",
"source_location": "L418",
"id": "readme_generator_core_fields_dict",
- "community": 96,
+ "community": 133,
"norm_label": "_core_fields_dict()"
},
{
@@ -53280,7 +54621,7 @@
"source_file": "src/exlab_wizard/readme/generator.py",
"source_location": "L422",
"id": "readme_generator_custom_fields_list",
- "community": 96,
+ "community": 133,
"norm_label": "_custom_fields_list()"
},
{
@@ -53289,7 +54630,7 @@
"source_file": "src/exlab_wizard/readme/generator.py",
"source_location": "L426",
"id": "readme_generator_system_fields_dict",
- "community": 96,
+ "community": 133,
"norm_label": "_system_fields_dict()"
},
{
@@ -53298,7 +54639,7 @@
"source_file": "src/exlab_wizard/readme/generator.py",
"source_location": "L438",
"id": "readme_generator_build_front_matter",
- "community": 96,
+ "community": 133,
"norm_label": "_build_front_matter()"
},
{
@@ -53307,7 +54648,7 @@
"source_file": "src/exlab_wizard/readme/generator.py",
"source_location": "L458",
"id": "readme_generator_render_readme_bytes",
- "community": 96,
+ "community": 133,
"norm_label": "_render_readme_bytes()"
},
{
@@ -53316,7 +54657,7 @@
"source_file": "src/exlab_wizard/readme/generator.py",
"source_location": "L476",
"id": "readme_generator_build_readme_fields",
- "community": 96,
+ "community": 133,
"norm_label": "_build_readme_fields()"
},
{
@@ -53325,7 +54666,7 @@
"source_file": "src/exlab_wizard/readme/generator.py",
"source_location": "L1",
"id": "readme_generator_rationale_1",
- "community": 96,
+ "community": 133,
"norm_label": "readme generator. backend spec \u00a710 / \u00a711.4. renders ``readme.md`` (yaml front m"
},
{
@@ -53334,7 +54675,7 @@
"source_file": "src/exlab_wizard/readme/generator.py",
"source_location": "L97",
"id": "readme_generator_rationale_97",
- "community": 180,
+ "community": 25,
"norm_label": "mandatory core fields (user interaction spec \u00a72). all three are non-empty ("
},
{
@@ -53343,7 +54684,7 @@
"source_file": "src/exlab_wizard/readme/generator.py",
"source_location": "L111",
"id": "readme_generator_rationale_111",
- "community": 35,
+ "community": 48,
"norm_label": "field declaration from a template's ``_exlab_readme.fields`` list or from ``"
},
{
@@ -53352,7 +54693,7 @@
"source_file": "src/exlab_wizard/readme/generator.py",
"source_location": "L129",
"id": "readme_generator_rationale_129",
- "community": 35,
+ "community": 48,
"norm_label": "an ad-hoc user-added field. backend spec \u00a710.4. custom fields are plain str"
},
{
@@ -53361,7 +54702,7 @@
"source_file": "src/exlab_wizard/readme/generator.py",
"source_location": "L141",
"id": "readme_generator_rationale_141",
- "community": 180,
+ "community": 224,
"norm_label": "auto-populated, non-editable system fields. backend spec \u00a710.6."
},
{
@@ -53370,7 +54711,7 @@
"source_file": "src/exlab_wizard/readme/generator.py",
"source_location": "L154",
"id": "readme_generator_rationale_154",
- "community": 180,
+ "community": 25,
"norm_label": "inputs to :class:`readmegenerator`. composed by the controller. the control"
},
{
@@ -53379,7 +54720,7 @@
"source_file": "src/exlab_wizard/readme/generator.py",
"source_location": "L177",
"id": "readme_generator_rationale_177",
- "community": 96,
+ "community": 224,
"norm_label": "renders ``readme.md`` + ``readme_fields.json``. backend spec \u00a710."
},
{
@@ -53388,7 +54729,7 @@
"source_file": "src/exlab_wizard/readme/generator.py",
"source_location": "L180",
"id": "readme_generator_rationale_180",
- "community": 96,
+ "community": 224,
"norm_label": "validate ``ctx``, write both files, return ``(readme, cache)``. the des"
},
{
@@ -53397,7 +54738,7 @@
"source_file": "src/exlab_wizard/readme/generator.py",
"source_location": "L229",
"id": "readme_generator_rationale_229",
- "community": 96,
+ "community": 133,
"norm_label": "run every validation gate. raises on the first failure. order matches the s"
},
{
@@ -53406,7 +54747,7 @@
"source_file": "src/exlab_wizard/readme/generator.py",
"source_location": "L319",
"id": "readme_generator_rationale_319",
- "community": 96,
+ "community": 133,
"norm_label": "per-type validation. spec \u00a710.3 type semantics. skips fields whose value is"
},
{
@@ -53415,7 +54756,7 @@
"source_file": "src/exlab_wizard/readme/generator.py",
"source_location": "L379",
"id": "readme_generator_rationale_379",
- "community": 96,
+ "community": 133,
"norm_label": "ensure custom labels do not shadow any layer's field id. the four-layer set"
},
{
@@ -53424,7 +54765,7 @@
"source_file": "src/exlab_wizard/readme/generator.py",
"source_location": "L398",
"id": "readme_generator_rationale_398",
- "community": 96,
+ "community": 133,
"norm_label": "return true iff ``value`` carries a non-empty piece of content. strings are"
},
{
@@ -53433,7 +54774,7 @@
"source_file": "src/exlab_wizard/readme/generator.py",
"source_location": "L439",
"id": "readme_generator_rationale_439",
- "community": 96,
+ "community": 133,
"norm_label": "build the ordered front matter dict for ``yaml.safe_dump``. order matches t"
},
{
@@ -53442,7 +54783,7 @@
"source_file": "src/exlab_wizard/readme/generator.py",
"source_location": "L459",
"id": "readme_generator_rationale_459",
- "community": 96,
+ "community": 133,
"norm_label": "render the full readme markdown into utf-8 bytes. ``yaml.safe_dump`` is con"
},
{
@@ -53451,7 +54792,7 @@
"source_file": "src/exlab_wizard/readme/generator.py",
"source_location": "L481",
"id": "readme_generator_rationale_481",
- "community": 96,
+ "community": 133,
"norm_label": "build the typed :class:`readmefieldsjson` payload for the cache file."
},
{
@@ -53460,457 +54801,430 @@
"source_file": "src/exlab_wizard/controller/creation.py",
"source_location": "L1",
"id": "src_exlab_wizard_controller_creation_py",
- "community": 21,
+ "community": 5,
"norm_label": "creation.py"
},
{
"label": "ProjectCreateRequest",
"file_type": "code",
"source_file": "src/exlab_wizard/controller/creation.py",
- "source_location": "L141",
+ "source_location": "L135",
"id": "controller_creation_projectcreaterequest",
- "community": 9,
+ "community": 10,
"norm_label": "projectcreaterequest"
},
{
"label": "RunCreateRequest",
"file_type": "code",
"source_file": "src/exlab_wizard/controller/creation.py",
- "source_location": "L160",
+ "source_location": "L154",
"id": "controller_creation_runcreaterequest",
- "community": 9,
+ "community": 10,
"norm_label": "runcreaterequest"
},
{
"label": "SessionHandle",
"file_type": "code",
"source_file": "src/exlab_wizard/controller/creation.py",
- "source_location": "L185",
+ "source_location": "L179",
"id": "controller_creation_sessionhandle",
- "community": 9,
+ "community": 10,
"norm_label": "sessionhandle"
},
{
"label": "ReadmeGeneratorProtocol",
"file_type": "code",
"source_file": "src/exlab_wizard/controller/creation.py",
- "source_location": "L199",
+ "source_location": "L193",
"id": "controller_creation_readmegeneratorprotocol",
- "community": 9,
+ "community": 10,
"norm_label": "readmegeneratorprotocol"
},
{
"label": ".generate()",
"file_type": "code",
"source_file": "src/exlab_wizard/controller/creation.py",
- "source_location": "L207",
+ "source_location": "L201",
"id": "controller_creation_readmegeneratorprotocol_generate",
- "community": 9,
+ "community": 10,
"norm_label": ".generate()"
},
{
"label": "NoOpReadmeGenerator",
"file_type": "code",
"source_file": "src/exlab_wizard/controller/creation.py",
- "source_location": "L210",
+ "source_location": "L204",
"id": "controller_creation_noopreadmegenerator",
- "community": 9,
+ "community": 10,
"norm_label": "noopreadmegenerator"
},
{
"label": ".generate()",
"file_type": "code",
"source_file": "src/exlab_wizard/controller/creation.py",
- "source_location": "L219",
+ "source_location": "L213",
"id": "controller_creation_noopreadmegenerator_generate",
- "community": 210,
+ "community": 25,
"norm_label": ".generate()"
},
{
"label": "NASSyncProtocol",
"file_type": "code",
"source_file": "src/exlab_wizard/controller/creation.py",
- "source_location": "L226",
+ "source_location": "L220",
"id": "controller_creation_nassyncprotocol",
- "community": 9,
+ "community": 10,
"norm_label": "nassyncprotocol"
},
{
"label": ".enqueue()",
"file_type": "code",
"source_file": "src/exlab_wizard/controller/creation.py",
- "source_location": "L229",
+ "source_location": "L223",
"id": "controller_creation_nassyncprotocol_enqueue",
- "community": 9,
+ "community": 10,
"norm_label": ".enqueue()"
},
{
"label": "NoOpNASSync",
"file_type": "code",
"source_file": "src/exlab_wizard/controller/creation.py",
- "source_location": "L232",
+ "source_location": "L226",
"id": "controller_creation_noopnassync",
- "community": 9,
+ "community": 10,
"norm_label": "noopnassync"
},
{
"label": ".enqueue()",
"file_type": "code",
"source_file": "src/exlab_wizard/controller/creation.py",
- "source_location": "L235",
+ "source_location": "L229",
"id": "controller_creation_noopnassync_enqueue",
- "community": 9,
+ "community": 5,
"norm_label": ".enqueue()"
},
{
"label": "CreationController",
"file_type": "code",
"source_file": "src/exlab_wizard/controller/creation.py",
- "source_location": "L244",
+ "source_location": "L238",
"id": "controller_creation_creationcontroller",
- "community": 21,
+ "community": 5,
"norm_label": "creationcontroller"
},
{
"label": ".__init__()",
"file_type": "code",
"source_file": "src/exlab_wizard/controller/creation.py",
- "source_location": "L252",
+ "source_location": "L246",
"id": "controller_creation_creationcontroller_init",
- "community": 9,
+ "community": 10,
"norm_label": ".__init__()"
},
{
"label": "session_store()",
"file_type": "code",
"source_file": "src/exlab_wizard/controller/creation.py",
- "source_location": "L290",
+ "source_location": "L284",
"id": "controller_creation_session_store",
- "community": 21,
+ "community": 5,
"norm_label": "session_store()"
},
{
"label": ".apply_config()",
"file_type": "code",
"source_file": "src/exlab_wizard/controller/creation.py",
- "source_location": "L294",
+ "source_location": "L288",
"id": "controller_creation_creationcontroller_apply_config",
- "community": 21,
+ "community": 5,
"norm_label": ".apply_config()"
},
{
"label": ".create_project()",
"file_type": "code",
"source_file": "src/exlab_wizard/controller/creation.py",
- "source_location": "L311",
+ "source_location": "L305",
"id": "controller_creation_creationcontroller_create_project",
- "community": 21,
+ "community": 5,
"norm_label": ".create_project()"
},
{
"label": ".create_run()",
"file_type": "code",
"source_file": "src/exlab_wizard/controller/creation.py",
- "source_location": "L324",
+ "source_location": "L318",
"id": "controller_creation_creationcontroller_create_run",
- "community": 21,
+ "community": 5,
"norm_label": ".create_run()"
},
{
"label": ".resume()",
"file_type": "code",
"source_file": "src/exlab_wizard/controller/creation.py",
- "source_location": "L329",
+ "source_location": "L323",
"id": "controller_creation_creationcontroller_resume",
- "community": 21,
+ "community": 5,
"norm_label": ".resume()"
},
{
"label": ".cancel()",
"file_type": "code",
"source_file": "src/exlab_wizard/controller/creation.py",
- "source_location": "L353",
+ "source_location": "L347",
"id": "controller_creation_creationcontroller_cancel",
- "community": 21,
+ "community": 5,
"norm_label": ".cancel()"
},
{
"label": ".status()",
"file_type": "code",
"source_file": "src/exlab_wizard/controller/creation.py",
- "source_location": "L396",
+ "source_location": "L390",
"id": "controller_creation_creationcontroller_status",
- "community": 21,
+ "community": 5,
"norm_label": ".status()"
},
{
"label": ".subscribe()",
"file_type": "code",
"source_file": "src/exlab_wizard/controller/creation.py",
- "source_location": "L403",
+ "source_location": "L397",
"id": "controller_creation_creationcontroller_subscribe",
- "community": 21,
+ "community": 5,
"norm_label": ".subscribe()"
},
{
"label": "._launch()",
"file_type": "code",
"source_file": "src/exlab_wizard/controller/creation.py",
- "source_location": "L427",
+ "source_location": "L421",
"id": "controller_creation_creationcontroller_launch",
- "community": 21,
+ "community": 5,
"norm_label": "._launch()"
},
{
"label": "._validate_inputs()",
"file_type": "code",
"source_file": "src/exlab_wizard/controller/creation.py",
- "source_location": "L465",
+ "source_location": "L459",
"id": "controller_creation_creationcontroller_validate_inputs",
- "community": 21,
+ "community": 5,
"norm_label": "._validate_inputs()"
},
{
"label": "._run_pipeline()",
"file_type": "code",
"source_file": "src/exlab_wizard/controller/creation.py",
- "source_location": "L607",
+ "source_location": "L601",
"id": "controller_creation_creationcontroller_run_pipeline",
- "community": 21,
+ "community": 5,
"norm_label": "._run_pipeline()"
},
{
"label": "._pipeline_states()",
"file_type": "code",
"source_file": "src/exlab_wizard/controller/creation.py",
- "source_location": "L627",
+ "source_location": "L621",
"id": "controller_creation_creationcontroller_pipeline_states",
- "community": 21,
+ "community": 5,
"norm_label": "._pipeline_states()"
},
{
"label": "._resolve_template()",
"file_type": "code",
"source_file": "src/exlab_wizard/controller/creation.py",
- "source_location": "L728",
+ "source_location": "L722",
"id": "controller_creation_creationcontroller_resolve_template",
- "community": 21,
+ "community": 5,
"norm_label": "._resolve_template()"
},
{
"label": "_short_id_for()",
"file_type": "code",
"source_file": "src/exlab_wizard/controller/creation.py",
- "source_location": "L733",
+ "source_location": "L727",
"id": "controller_creation_short_id_for",
- "community": 21,
+ "community": 5,
"norm_label": "_short_id_for()"
},
{
"label": "_project_name_for()",
"file_type": "code",
"source_file": "src/exlab_wizard/controller/creation.py",
- "source_location": "L749",
+ "source_location": "L743",
"id": "controller_creation_project_name_for",
- "community": 21,
+ "community": 5,
"norm_label": "_project_name_for()"
},
{
"label": "._resolve_run_lims_block()",
"file_type": "code",
"source_file": "src/exlab_wizard/controller/creation.py",
- "source_location": "L762",
+ "source_location": "L756",
"id": "controller_creation_creationcontroller_resolve_run_lims_block",
- "community": 21,
+ "community": 5,
"norm_label": "._resolve_run_lims_block()"
},
{
"label": "_run_kind_value_for()",
"file_type": "code",
"source_file": "src/exlab_wizard/controller/creation.py",
- "source_location": "L782",
+ "source_location": "L776",
"id": "controller_creation_run_kind_value_for",
- "community": 21,
+ "community": 5,
"norm_label": "_run_kind_value_for()"
},
{
"label": "._compose_destination_path()",
"file_type": "code",
"source_file": "src/exlab_wizard/controller/creation.py",
- "source_location": "L793",
+ "source_location": "L787",
"id": "controller_creation_creationcontroller_compose_destination_path",
- "community": 21,
+ "community": 5,
"norm_label": "._compose_destination_path()"
},
{
"label": "._render()",
"file_type": "code",
"source_file": "src/exlab_wizard/controller/creation.py",
- "source_location": "L810",
+ "source_location": "L804",
"id": "controller_creation_creationcontroller_render",
- "community": 21,
+ "community": 5,
"norm_label": "._render()"
},
{
"label": "._plugin_pass()",
"file_type": "code",
"source_file": "src/exlab_wizard/controller/creation.py",
- "source_location": "L837",
+ "source_location": "L831",
"id": "controller_creation_creationcontroller_plugin_pass",
- "community": 21,
+ "community": 5,
"norm_label": "._plugin_pass()"
},
{
"label": "._build_readme_context()",
"file_type": "code",
"source_file": "src/exlab_wizard/controller/creation.py",
- "source_location": "L898",
+ "source_location": "L892",
"id": "controller_creation_creationcontroller_build_readme_context",
- "community": 180,
+ "community": 5,
"norm_label": "._build_readme_context()"
},
{
"label": "._write_cache()",
"file_type": "code",
"source_file": "src/exlab_wizard/controller/creation.py",
- "source_location": "L963",
+ "source_location": "L933",
"id": "controller_creation_creationcontroller_write_cache",
- "community": 397,
+ "community": 25,
"norm_label": "._write_cache()"
},
{
"label": "._write_equipment_json()",
"file_type": "code",
"source_file": "src/exlab_wizard/controller/creation.py",
- "source_location": "L1078",
+ "source_location": "L1040",
"id": "controller_creation_creationcontroller_write_equipment_json",
- "community": 21,
+ "community": 25,
"norm_label": "._write_equipment_json()"
},
{
"label": "._post_validate()",
"file_type": "code",
"source_file": "src/exlab_wizard/controller/creation.py",
- "source_location": "L1114",
+ "source_location": "L1076",
"id": "controller_creation_creationcontroller_post_validate",
- "community": 21,
+ "community": 5,
"norm_label": "._post_validate()"
},
{
"label": "._transition()",
"file_type": "code",
"source_file": "src/exlab_wizard/controller/creation.py",
- "source_location": "L1162",
+ "source_location": "L1124",
"id": "controller_creation_creationcontroller_transition",
- "community": 21,
+ "community": 5,
"norm_label": "._transition()"
},
{
"label": "._publish()",
"file_type": "code",
"source_file": "src/exlab_wizard/controller/creation.py",
- "source_location": "L1183",
+ "source_location": "L1145",
"id": "controller_creation_creationcontroller_publish",
- "community": 21,
+ "community": 5,
"norm_label": "._publish()"
},
{
"label": "._fail()",
"file_type": "code",
"source_file": "src/exlab_wizard/controller/creation.py",
- "source_location": "L1188",
+ "source_location": "L1150",
"id": "controller_creation_creationcontroller_fail",
- "community": 21,
+ "community": 5,
"norm_label": "._fail()"
},
{
"label": "._cleanup()",
"file_type": "code",
"source_file": "src/exlab_wizard/controller/creation.py",
- "source_location": "L1198",
+ "source_location": "L1160",
"id": "controller_creation_creationcontroller_cleanup",
- "community": 21,
+ "community": 5,
"norm_label": "._cleanup()"
},
{
"label": "._handle()",
"file_type": "code",
"source_file": "src/exlab_wizard/controller/creation.py",
- "source_location": "L1217",
+ "source_location": "L1179",
"id": "controller_creation_creationcontroller_handle",
- "community": 21,
+ "community": 5,
"norm_label": "._handle()"
},
{
"label": "_format_error()",
"file_type": "code",
"source_file": "src/exlab_wizard/controller/creation.py",
- "source_location": "L1226",
+ "source_location": "L1188",
"id": "controller_creation_format_error",
- "community": 21,
+ "community": 5,
"norm_label": "_format_error()"
},
{
"label": "._append_log()",
"file_type": "code",
"source_file": "src/exlab_wizard/controller/creation.py",
- "source_location": "L1231",
+ "source_location": "L1193",
"id": "controller_creation_creationcontroller_append_log",
- "community": 21,
+ "community": 5,
"norm_label": "._append_log()"
},
{
"label": "_required_field_ids()",
"file_type": "code",
"source_file": "src/exlab_wizard/controller/creation.py",
- "source_location": "L1256",
+ "source_location": "L1218",
"id": "controller_creation_required_field_ids",
- "community": 21,
+ "community": 5,
"norm_label": "_required_field_ids()"
},
- {
- "label": "_readme_decls_from_template()",
- "file_type": "code",
- "source_file": "src/exlab_wizard/controller/creation.py",
- "source_location": "L1269",
- "id": "controller_creation_readme_decls_from_template",
- "community": 180,
- "norm_label": "_readme_decls_from_template()"
- },
- {
- "label": "_readme_decls_from_config()",
- "file_type": "code",
- "source_file": "src/exlab_wizard/controller/creation.py",
- "source_location": "L1301",
- "id": "controller_creation_readme_decls_from_config",
- "community": 180,
- "norm_label": "_readme_decls_from_config()"
- },
- {
- "label": "_os_username()",
- "file_type": "code",
- "source_file": "src/exlab_wizard/controller/creation.py",
- "source_location": "L1326",
- "id": "controller_creation_os_username",
- "community": 180,
- "norm_label": "_os_username()"
- },
{
"label": "_has_hard_finding()",
"file_type": "code",
"source_file": "src/exlab_wizard/controller/creation.py",
- "source_location": "L1339",
+ "source_location": "L1231",
"id": "controller_creation_has_hard_finding",
- "community": 21,
+ "community": 5,
"norm_label": "_has_hard_finding()"
},
{
"label": "_attach_resolved()",
"file_type": "code",
"source_file": "src/exlab_wizard/controller/creation.py",
- "source_location": "L1343",
+ "source_location": "L1235",
"id": "controller_creation_attach_resolved",
- "community": 21,
+ "community": 5,
"norm_label": "_attach_resolved()"
},
{
@@ -53919,331 +55233,304 @@
"source_file": "src/exlab_wizard/controller/creation.py",
"source_location": "L1",
"id": "controller_creation_rationale_1",
- "community": 21,
+ "community": 5,
"norm_label": "creation controller. backend spec \u00a74.4.1, \u00a74.7, \u00a74.8. composes the validator, t"
},
{
"label": "Inputs for :meth:`CreationController.create_project`. Backend Spec \u00a74.6.1 /",
"file_type": "rationale",
"source_file": "src/exlab_wizard/controller/creation.py",
- "source_location": "L142",
- "id": "controller_creation_rationale_142",
- "community": 9,
+ "source_location": "L136",
+ "id": "controller_creation_rationale_136",
+ "community": 10,
"norm_label": "inputs for :meth:`creationcontroller.create_project`. backend spec \u00a74.6.1 /"
},
{
"label": "Inputs for :meth:`CreationController.create_run`. Backend Spec \u00a74.6.1 / UI-",
"file_type": "rationale",
"source_file": "src/exlab_wizard/controller/creation.py",
- "source_location": "L161",
- "id": "controller_creation_rationale_161",
- "community": 9,
+ "source_location": "L155",
+ "id": "controller_creation_rationale_155",
+ "community": 10,
"norm_label": "inputs for :meth:`creationcontroller.create_run`. backend spec \u00a74.6.1 / ui-"
},
{
"label": "Snapshot of session state. Backend Spec \u00a74.4.1.",
"file_type": "rationale",
"source_file": "src/exlab_wizard/controller/creation.py",
- "source_location": "L186",
- "id": "controller_creation_rationale_186",
- "community": 9,
+ "source_location": "L180",
+ "id": "controller_creation_rationale_180",
+ "community": 10,
"norm_label": "snapshot of session state. backend spec \u00a74.4.1."
},
{
"label": "The README generator surface the controller depends on. Backend \u00a710. Mirror",
"file_type": "rationale",
"source_file": "src/exlab_wizard/controller/creation.py",
- "source_location": "L200",
- "id": "controller_creation_rationale_200",
- "community": 9,
+ "source_location": "L194",
+ "id": "controller_creation_rationale_194",
+ "community": 10,
"norm_label": "the readme generator surface the controller depends on. backend \u00a710. mirror"
},
{
"label": "Lightweight README generator for tests / headless fixtures. Writes a tiny `",
"file_type": "rationale",
"source_file": "src/exlab_wizard/controller/creation.py",
- "source_location": "L211",
- "id": "controller_creation_rationale_211",
- "community": 9,
+ "source_location": "L205",
+ "id": "controller_creation_rationale_205",
+ "community": 10,
"norm_label": "lightweight readme generator for tests / headless fixtures. writes a tiny `"
},
{
"label": "The NAS sync surface the controller depends on. Phase 10.",
"file_type": "rationale",
"source_file": "src/exlab_wizard/controller/creation.py",
- "source_location": "L227",
- "id": "controller_creation_rationale_227",
- "community": 9,
+ "source_location": "L221",
+ "id": "controller_creation_rationale_221",
+ "community": 10,
"norm_label": "the nas sync surface the controller depends on. phase 10."
},
{
"label": "No-op stand-in for :class:`NASSyncClient` until Phase 10 lands.",
"file_type": "rationale",
"source_file": "src/exlab_wizard/controller/creation.py",
- "source_location": "L233",
- "id": "controller_creation_rationale_233",
- "community": 9,
+ "source_location": "L227",
+ "id": "controller_creation_rationale_227",
+ "community": 10,
"norm_label": "no-op stand-in for :class:`nassyncclient` until phase 10 lands."
},
{
"label": "Drives the \u00a74.7 state machine end-to-end. Composes the validator (Phase 4),",
"file_type": "rationale",
"source_file": "src/exlab_wizard/controller/creation.py",
- "source_location": "L245",
- "id": "controller_creation_rationale_245",
- "community": 21,
+ "source_location": "L239",
+ "id": "controller_creation_rationale_239",
+ "community": 5,
"norm_label": "drives the \u00a74.7 state machine end-to-end. composes the validator (phase 4),"
},
{
"label": "Expose the in-memory session store for the API surface.",
"file_type": "rationale",
"source_file": "src/exlab_wizard/controller/creation.py",
- "source_location": "L291",
- "id": "controller_creation_rationale_291",
- "community": 626,
+ "source_location": "L285",
+ "id": "controller_creation_rationale_285",
+ "community": 651,
"norm_label": "expose the in-memory session store for the api surface."
},
{
"label": "Swap the controller's config (and optionally plugin host) in place. Eve",
"file_type": "rationale",
"source_file": "src/exlab_wizard/controller/creation.py",
- "source_location": "L295",
- "id": "controller_creation_rationale_295",
- "community": 21,
+ "source_location": "L289",
+ "id": "controller_creation_rationale_289",
+ "community": 5,
"norm_label": "swap the controller's config (and optionally plugin host) in place. eve"
},
{
"label": "Open a project-creation session and start the pipeline. The session is",
"file_type": "rationale",
"source_file": "src/exlab_wizard/controller/creation.py",
- "source_location": "L312",
- "id": "controller_creation_rationale_312",
- "community": 21,
+ "source_location": "L306",
+ "id": "controller_creation_rationale_306",
+ "community": 5,
"norm_label": "open a project-creation session and start the pipeline. the session is"
},
{
"label": "Open a run-creation session and start the pipeline.",
"file_type": "rationale",
"source_file": "src/exlab_wizard/controller/creation.py",
- "source_location": "L325",
- "id": "controller_creation_rationale_325",
- "community": 21,
+ "source_location": "L319",
+ "id": "controller_creation_rationale_319",
+ "community": 5,
"norm_label": "open a run-creation session and start the pipeline."
},
{
"label": "Supply ``extra_inputs`` after a ``PluginInputRequired`` prompt. Pushes",
"file_type": "rationale",
"source_file": "src/exlab_wizard/controller/creation.py",
- "source_location": "L330",
- "id": "controller_creation_rationale_330",
- "community": 21,
+ "source_location": "L324",
+ "id": "controller_creation_rationale_324",
+ "community": 5,
"norm_label": "supply ``extra_inputs`` after a ``plugininputrequired`` prompt. pushes"
},
{
"label": "Abort an in-flight session. Pushes a ``None`` onto the resume queue (so",
"file_type": "rationale",
"source_file": "src/exlab_wizard/controller/creation.py",
- "source_location": "L354",
- "id": "controller_creation_rationale_354",
- "community": 21,
+ "source_location": "L348",
+ "id": "controller_creation_rationale_348",
+ "community": 5,
"norm_label": "abort an in-flight session. pushes a ``none`` onto the resume queue (so"
},
{
"label": "Return a snapshot :class:`SessionHandle` for ``session_id``.",
"file_type": "rationale",
"source_file": "src/exlab_wizard/controller/creation.py",
- "source_location": "L397",
- "id": "controller_creation_rationale_397",
- "community": 21,
+ "source_location": "L391",
+ "id": "controller_creation_rationale_391",
+ "community": 5,
"norm_label": "return a snapshot :class:`sessionhandle` for ``session_id``."
},
{
"label": "Yield WebSocket-event dicts for the named session. Wraps the session's",
"file_type": "rationale",
"source_file": "src/exlab_wizard/controller/creation.py",
- "source_location": "L404",
- "id": "controller_creation_rationale_404",
- "community": 21,
+ "source_location": "L398",
+ "id": "controller_creation_rationale_398",
+ "community": 5,
"norm_label": "yield websocket-event dicts for the named session. wraps the session's"
},
{
"label": "Validate the request, then spawn the pipeline as a background task. The",
"file_type": "rationale",
"source_file": "src/exlab_wizard/controller/creation.py",
- "source_location": "L428",
- "id": "controller_creation_rationale_428",
- "community": 21,
+ "source_location": "L422",
+ "id": "controller_creation_rationale_422",
+ "community": 5,
"norm_label": "validate the request, then spawn the pipeline as a background task. the"
},
{
"label": "Run the \u00a72 mandatory-core-field gate. Raises :class:`ValidationError` o",
"file_type": "rationale",
"source_file": "src/exlab_wizard/controller/creation.py",
- "source_location": "L466",
- "id": "controller_creation_rationale_466",
- "community": 21,
+ "source_location": "L460",
+ "id": "controller_creation_rationale_460",
+ "community": 5,
"norm_label": "run the \u00a72 mandatory-core-field gate. raises :class:`validationerror` o"
},
{
"label": "Drive the session from RENDERING to DONE / FAILED / ABORTED.",
"file_type": "rationale",
"source_file": "src/exlab_wizard/controller/creation.py",
- "source_location": "L608",
- "id": "controller_creation_rationale_608",
- "community": 21,
+ "source_location": "L602",
+ "id": "controller_creation_rationale_602",
+ "community": 5,
"norm_label": "drive the session from rendering to done / failed / aborted."
},
{
"label": "Run the RENDERING \u2192 DONE pipeline once.",
"file_type": "rationale",
"source_file": "src/exlab_wizard/controller/creation.py",
- "source_location": "L628",
- "id": "controller_creation_rationale_628",
- "community": 21,
+ "source_location": "L622",
+ "id": "controller_creation_rationale_622",
+ "community": 5,
"norm_label": "run the rendering \u2192 done pipeline once."
},
{
"label": "Return the LIMS project ``short_id`` for the request. For a project req",
"file_type": "rationale",
"source_file": "src/exlab_wizard/controller/creation.py",
- "source_location": "L734",
- "id": "controller_creation_rationale_734",
- "community": 627,
+ "source_location": "L728",
+ "id": "controller_creation_rationale_728",
+ "community": 652,
"norm_label": "return the lims project ``short_id`` for the request. for a project req"
},
{
"label": "Return the human-readable LIMS project name for the request. This is th",
"file_type": "rationale",
"source_file": "src/exlab_wizard/controller/creation.py",
- "source_location": "L750",
- "id": "controller_creation_rationale_750",
- "community": 628,
+ "source_location": "L744",
+ "id": "controller_creation_rationale_744",
+ "community": 653,
"norm_label": "return the human-readable lims project name for the request. this is th"
},
{
"label": "Read the parent project's ``lims_project`` block for a run. A run inher",
"file_type": "rationale",
"source_file": "src/exlab_wizard/controller/creation.py",
- "source_location": "L763",
- "id": "controller_creation_rationale_763",
- "community": 21,
+ "source_location": "L757",
+ "id": "controller_creation_rationale_757",
+ "community": 5,
"norm_label": "read the parent project's ``lims_project`` block for a run. a run inher"
},
{
"label": "Return the ``run_kind`` value to record on ``creation.json``. Project-l",
"file_type": "rationale",
"source_file": "src/exlab_wizard/controller/creation.py",
- "source_location": "L783",
- "id": "controller_creation_rationale_783",
- "community": 629,
+ "source_location": "L777",
+ "id": "controller_creation_rationale_777",
+ "community": 654,
"norm_label": "return the ``run_kind`` value to record on ``creation.json``. project-l"
},
{
"label": "Render the resolved template into ``dst``. Copier receives the request'",
"file_type": "rationale",
"source_file": "src/exlab_wizard/controller/creation.py",
- "source_location": "L816",
- "id": "controller_creation_rationale_816",
- "community": 21,
+ "source_location": "L810",
+ "id": "controller_creation_rationale_810",
+ "community": 5,
"norm_label": "render the resolved template into ``dst``. copier receives the request'"
},
{
"label": "Compose the \u00a710 four-layer :class:`ReadmeContext` for ``req``. Maps the",
"file_type": "rationale",
"source_file": "src/exlab_wizard/controller/creation.py",
- "source_location": "L905",
- "id": "controller_creation_rationale_905",
- "community": 180,
+ "source_location": "L899",
+ "id": "controller_creation_rationale_899",
+ "community": 5,
"norm_label": "compose the \u00a710 four-layer :class:`readmecontext` for ``req``. maps the"
},
{
"label": "Write README + creation.json into the destination tree.",
"file_type": "rationale",
"source_file": "src/exlab_wizard/controller/creation.py",
- "source_location": "L973",
- "id": "controller_creation_rationale_973",
- "community": 397,
+ "source_location": "L943",
+ "id": "controller_creation_rationale_943",
+ "community": 25,
"norm_label": "write readme + creation.json into the destination tree."
},
{
"label": "Write the per-equipment ``equipment.json`` registry record. Backend Spe",
"file_type": "rationale",
"source_file": "src/exlab_wizard/controller/creation.py",
- "source_location": "L1083",
- "id": "controller_creation_rationale_1083",
- "community": 21,
+ "source_location": "L1045",
+ "id": "controller_creation_rationale_1045",
+ "community": 25,
"norm_label": "write the per-equipment ``equipment.json`` registry record. backend spe"
},
{
"label": "Run :meth:`Validator.validate_creation` against the rendered tree. Catc",
"file_type": "rationale",
"source_file": "src/exlab_wizard/controller/creation.py",
- "source_location": "L1120",
- "id": "controller_creation_rationale_1120",
- "community": 21,
+ "source_location": "L1082",
+ "id": "controller_creation_rationale_1082",
+ "community": 5,
"norm_label": "run :meth:`validator.validate_creation` against the rendered tree. catc"
},
{
"label": "Remove or leave the partial directory per the spec.",
"file_type": "rationale",
"source_file": "src/exlab_wizard/controller/creation.py",
- "source_location": "L1199",
- "id": "controller_creation_rationale_1199",
- "community": 21,
+ "source_location": "L1161",
+ "id": "controller_creation_rationale_1161",
+ "community": 5,
"norm_label": "remove or leave the partial directory per the spec."
},
{
"label": "Best-effort append to the equipment-level log. Backend Spec \u00a711.5. Comp",
"file_type": "rationale",
"source_file": "src/exlab_wizard/controller/creation.py",
- "source_location": "L1232",
- "id": "controller_creation_rationale_1232",
- "community": 21,
+ "source_location": "L1194",
+ "id": "controller_creation_rationale_1194",
+ "community": 5,
"norm_label": "best-effort append to the equipment-level log. backend spec \u00a711.5. comp"
},
{
"label": "Return the ``id`` of every entry in ``extra_fields`` with ``required: true``.",
"file_type": "rationale",
"source_file": "src/exlab_wizard/controller/creation.py",
- "source_location": "L1257",
- "id": "controller_creation_rationale_1257",
- "community": 21,
+ "source_location": "L1219",
+ "id": "controller_creation_rationale_1219",
+ "community": 5,
"norm_label": "return the ``id`` of every entry in ``extra_fields`` with ``required: true``."
},
- {
- "label": "Map a template's ``_exlab_readme.fields`` dicts to typed declarations. Entr",
- "file_type": "rationale",
- "source_file": "src/exlab_wizard/controller/creation.py",
- "source_location": "L1270",
- "id": "controller_creation_rationale_1270",
- "community": 180,
- "norm_label": "map a template's ``_exlab_readme.fields`` dicts to typed declarations. entr"
- },
- {
- "label": "Map ``config.readme.defaults`` entries to typed declarations. Core field id",
- "file_type": "rationale",
- "source_file": "src/exlab_wizard/controller/creation.py",
- "source_location": "L1302",
- "id": "controller_creation_rationale_1302",
- "community": 180,
- "norm_label": "map ``config.readme.defaults`` entries to typed declarations. core field id"
- },
- {
- "label": "Return the creating OS user for the README ``system.created_by``. Distinct",
- "file_type": "rationale",
- "source_file": "src/exlab_wizard/controller/creation.py",
- "source_location": "L1327",
- "id": "controller_creation_rationale_1327",
- "community": 180,
- "norm_label": "return the creating os user for the readme ``system.created_by``. distinct"
- },
{
"label": "Stash the resolved template on the request so the pipeline can re-use it. T",
"file_type": "rationale",
"source_file": "src/exlab_wizard/controller/creation.py",
- "source_location": "L1346",
- "id": "controller_creation_rationale_1346",
- "community": 21,
+ "source_location": "L1238",
+ "id": "controller_creation_rationale_1238",
+ "community": 5,
"norm_label": "stash the resolved template on the request so the pipeline can re-use it. t"
},
{
@@ -54252,7 +55539,7 @@
"source_file": "src/exlab_wizard/controller/__init__.py",
"source_location": "L1",
"id": "src_exlab_wizard_controller_init_py",
- "community": 392,
+ "community": 400,
"norm_label": "__init__.py"
},
{
@@ -54261,7 +55548,7 @@
"source_file": "src/exlab_wizard/controller/state_machine.py",
"source_location": "L1",
"id": "src_exlab_wizard_controller_state_machine_py",
- "community": 9,
+ "community": 10,
"norm_label": "state_machine.py"
},
{
@@ -54270,7 +55557,7 @@
"source_file": "src/exlab_wizard/controller/state_machine.py",
"source_location": "L45",
"id": "controller_state_machine_sessionstate",
- "community": 9,
+ "community": 10,
"norm_label": "sessionstate"
},
{
@@ -54279,7 +55566,7 @@
"source_file": "src/exlab_wizard/controller/state_machine.py",
"source_location": "L66",
"id": "controller_state_machine_phase",
- "community": 9,
+ "community": 10,
"norm_label": "phase"
},
{
@@ -54288,7 +55575,7 @@
"source_file": "src/exlab_wizard/controller/state_machine.py",
"source_location": "L102",
"id": "controller_state_machine_state_to_phase",
- "community": 22,
+ "community": 24,
"norm_label": "state_to_phase()"
},
{
@@ -54297,7 +55584,7 @@
"source_file": "src/exlab_wizard/controller/state_machine.py",
"source_location": "L139",
"id": "controller_state_machine_build_valid_transitions",
- "community": 9,
+ "community": 10,
"norm_label": "_build_valid_transitions()"
},
{
@@ -54306,7 +55593,7 @@
"source_file": "src/exlab_wizard/controller/state_machine.py",
"source_location": "L159",
"id": "controller_state_machine_assert_transition",
- "community": 22,
+ "community": 24,
"norm_label": "assert_transition()"
},
{
@@ -54315,7 +55602,7 @@
"source_file": "src/exlab_wizard/controller/state_machine.py",
"source_location": "L1",
"id": "controller_state_machine_rationale_1",
- "community": 9,
+ "community": 10,
"norm_label": "creation-session state machine. backend spec \u00a74.7, \u00a74.7.1. defines two enums an"
},
{
@@ -54324,7 +55611,7 @@
"source_file": "src/exlab_wizard/controller/state_machine.py",
"source_location": "L46",
"id": "controller_state_machine_rationale_46",
- "community": 9,
+ "community": 10,
"norm_label": "internal creation-session state. backend spec \u00a74.7. values mirror the \u00a74.7"
},
{
@@ -54333,7 +55620,7 @@
"source_file": "src/exlab_wizard/controller/state_machine.py",
"source_location": "L67",
"id": "controller_state_machine_rationale_67",
- "community": 9,
+ "community": 10,
"norm_label": "externally-emitted ``phase`` event. backend spec \u00a74.6.2. sent over the ``ws"
},
{
@@ -54342,7 +55629,7 @@
"source_file": "src/exlab_wizard/controller/state_machine.py",
"source_location": "L103",
"id": "controller_state_machine_rationale_103",
- "community": 22,
+ "community": 24,
"norm_label": "return the :class:`phase` event corresponding to ``state``. backend spec \u00a74"
},
{
@@ -54351,7 +55638,7 @@
"source_file": "src/exlab_wizard/controller/state_machine.py",
"source_location": "L140",
"id": "controller_state_machine_rationale_140",
- "community": 9,
+ "community": 10,
"norm_label": "augment forward transitions with cancel/fail edges."
},
{
@@ -54360,16 +55647,142 @@
"source_file": "src/exlab_wizard/controller/state_machine.py",
"source_location": "L160",
"id": "controller_state_machine_rationale_160",
- "community": 22,
+ "community": 24,
"norm_label": "raise :class:`valueerror` if ``current -> new_state`` is illegal. defensive"
},
+ {
+ "label": "metadata_assembly.py",
+ "file_type": "code",
+ "source_file": "src/exlab_wizard/controller/metadata_assembly.py",
+ "source_location": "L1",
+ "id": "src_exlab_wizard_controller_metadata_assembly_py",
+ "community": 25,
+ "norm_label": "metadata_assembly.py"
+ },
+ {
+ "label": "TemplateDesc",
+ "file_type": "code",
+ "source_file": "src/exlab_wizard/controller/metadata_assembly.py",
+ "source_location": "L68",
+ "id": "controller_metadata_assembly_templatedesc",
+ "community": 25,
+ "norm_label": "templatedesc"
+ },
+ {
+ "label": "build_readme_context()",
+ "file_type": "code",
+ "source_file": "src/exlab_wizard/controller/metadata_assembly.py",
+ "source_location": "L96",
+ "id": "controller_metadata_assembly_build_readme_context",
+ "community": 25,
+ "norm_label": "build_readme_context()"
+ },
+ {
+ "label": "build_creation_json()",
+ "file_type": "code",
+ "source_file": "src/exlab_wizard/controller/metadata_assembly.py",
+ "source_location": "L168",
+ "id": "controller_metadata_assembly_build_creation_json",
+ "community": 25,
+ "norm_label": "build_creation_json()"
+ },
+ {
+ "label": "_readme_decls_from_template()",
+ "file_type": "code",
+ "source_file": "src/exlab_wizard/controller/metadata_assembly.py",
+ "source_location": "L230",
+ "id": "controller_metadata_assembly_readme_decls_from_template",
+ "community": 25,
+ "norm_label": "_readme_decls_from_template()"
+ },
+ {
+ "label": "_readme_decls_from_config()",
+ "file_type": "code",
+ "source_file": "src/exlab_wizard/controller/metadata_assembly.py",
+ "source_location": "L262",
+ "id": "controller_metadata_assembly_readme_decls_from_config",
+ "community": 25,
+ "norm_label": "_readme_decls_from_config()"
+ },
+ {
+ "label": "_os_username()",
+ "file_type": "code",
+ "source_file": "src/exlab_wizard/controller/metadata_assembly.py",
+ "source_location": "L287",
+ "id": "controller_metadata_assembly_os_username",
+ "community": 5,
+ "norm_label": "_os_username()"
+ },
+ {
+ "label": "Shared metadata value-assembly. Backend Spec \u00a710 / \u00a711.3; design spec \u00a75. This",
+ "file_type": "rationale",
+ "source_file": "src/exlab_wizard/controller/metadata_assembly.py",
+ "source_location": "L1",
+ "id": "controller_metadata_assembly_rationale_1",
+ "community": 25,
+ "norm_label": "shared metadata value-assembly. backend spec \u00a710 / \u00a711.3; design spec \u00a75. this"
+ },
+ {
+ "label": "Dependency-light stand-in for ``ResolvedTemplate``. Design spec \u00a75. Carries",
+ "file_type": "rationale",
+ "source_file": "src/exlab_wizard/controller/metadata_assembly.py",
+ "source_location": "L69",
+ "id": "controller_metadata_assembly_rationale_69",
+ "community": 25,
+ "norm_label": "dependency-light stand-in for ``resolvedtemplate``. design spec \u00a75. carries"
+ },
+ {
+ "label": "Compose the \u00a710 four-layer :class:`ReadmeContext`. Maps the template's ``_e",
+ "file_type": "rationale",
+ "source_file": "src/exlab_wizard/controller/metadata_assembly.py",
+ "source_location": "L112",
+ "id": "controller_metadata_assembly_rationale_112",
+ "community": 25,
+ "norm_label": "compose the \u00a710 four-layer :class:`readmecontext`. maps the template's ``_e"
+ },
+ {
+ "label": "Assemble the \u00a711.3 :class:`CreationJson` payload. Redesign \u00a73.1: creation.j",
+ "file_type": "rationale",
+ "source_file": "src/exlab_wizard/controller/metadata_assembly.py",
+ "source_location": "L184",
+ "id": "controller_metadata_assembly_rationale_184",
+ "community": 25,
+ "norm_label": "assemble the \u00a711.3 :class:`creationjson` payload. redesign \u00a73.1: creation.j"
+ },
+ {
+ "label": "Map a template's ``_exlab_readme.fields`` dicts to typed declarations. Entr",
+ "file_type": "rationale",
+ "source_file": "src/exlab_wizard/controller/metadata_assembly.py",
+ "source_location": "L231",
+ "id": "controller_metadata_assembly_rationale_231",
+ "community": 25,
+ "norm_label": "map a template's ``_exlab_readme.fields`` dicts to typed declarations. entr"
+ },
+ {
+ "label": "Map ``config.readme.defaults`` entries to typed declarations. Core field id",
+ "file_type": "rationale",
+ "source_file": "src/exlab_wizard/controller/metadata_assembly.py",
+ "source_location": "L263",
+ "id": "controller_metadata_assembly_rationale_263",
+ "community": 25,
+ "norm_label": "map ``config.readme.defaults`` entries to typed declarations. core field id"
+ },
+ {
+ "label": "Return the creating OS user for the README ``system.created_by``. Distinct",
+ "file_type": "rationale",
+ "source_file": "src/exlab_wizard/controller/metadata_assembly.py",
+ "source_location": "L288",
+ "id": "controller_metadata_assembly_rationale_288",
+ "community": 5,
+ "norm_label": "return the creating os user for the readme ``system.created_by``. distinct"
+ },
{
"label": "session_store.py",
"file_type": "code",
"source_file": "src/exlab_wizard/controller/session_store.py",
"source_location": "L1",
"id": "src_exlab_wizard_controller_session_store_py",
- "community": 10,
+ "community": 18,
"norm_label": "session_store.py"
},
{
@@ -54378,7 +55791,7 @@
"source_file": "src/exlab_wizard/controller/session_store.py",
"source_location": "L46",
"id": "controller_session_store_session",
- "community": 9,
+ "community": 10,
"norm_label": "session"
},
{
@@ -54387,7 +55800,7 @@
"source_file": "src/exlab_wizard/controller/session_store.py",
"source_location": "L87",
"id": "controller_session_store_session_is_terminal",
- "community": 9,
+ "community": 10,
"norm_label": ".is_terminal()"
},
{
@@ -54396,7 +55809,7 @@
"source_file": "src/exlab_wizard/controller/session_store.py",
"source_location": "L92",
"id": "controller_session_store_sessionstore",
- "community": 10,
+ "community": 18,
"norm_label": "sessionstore"
},
{
@@ -54405,7 +55818,7 @@
"source_file": "src/exlab_wizard/controller/session_store.py",
"source_location": "L99",
"id": "controller_session_store_sessionstore_init",
- "community": 10,
+ "community": 18,
"norm_label": ".__init__()"
},
{
@@ -54414,7 +55827,7 @@
"source_file": "src/exlab_wizard/controller/session_store.py",
"source_location": "L104",
"id": "controller_session_store_sessionstore_open",
- "community": 10,
+ "community": 18,
"norm_label": ".open()"
},
{
@@ -54423,7 +55836,7 @@
"source_file": "src/exlab_wizard/controller/session_store.py",
"source_location": "L125",
"id": "controller_session_store_sessionstore_get",
- "community": 10,
+ "community": 18,
"norm_label": ".get()"
},
{
@@ -54432,7 +55845,7 @@
"source_file": "src/exlab_wizard/controller/session_store.py",
"source_location": "L129",
"id": "controller_session_store_sessionstore_iter_sorted",
- "community": 10,
+ "community": 18,
"norm_label": ".iter_sorted()"
},
{
@@ -54441,7 +55854,7 @@
"source_file": "src/exlab_wizard/controller/session_store.py",
"source_location": "L138",
"id": "controller_session_store_sessionstore_transition",
- "community": 10,
+ "community": 18,
"norm_label": ".transition()"
},
{
@@ -54450,7 +55863,7 @@
"source_file": "src/exlab_wizard/controller/session_store.py",
"source_location": "L159",
"id": "controller_session_store_sessionstore_attach_event_queue",
- "community": 10,
+ "community": 18,
"norm_label": ".attach_event_queue()"
},
{
@@ -54459,7 +55872,7 @@
"source_file": "src/exlab_wizard/controller/session_store.py",
"source_location": "L171",
"id": "controller_session_store_sessionstore_heartbeat",
- "community": 10,
+ "community": 18,
"norm_label": ".heartbeat()"
},
{
@@ -54468,7 +55881,7 @@
"source_file": "src/exlab_wizard/controller/session_store.py",
"source_location": "L182",
"id": "controller_session_store_sessionstore_close",
- "community": 10,
+ "community": 18,
"norm_label": ".close()"
},
{
@@ -54477,7 +55890,7 @@
"source_file": "src/exlab_wizard/controller/session_store.py",
"source_location": "L202",
"id": "controller_session_store_sessionstore_abandoned_older_than",
- "community": 10,
+ "community": 18,
"norm_label": ".abandoned_older_than()"
},
{
@@ -54486,7 +55899,7 @@
"source_file": "src/exlab_wizard/controller/session_store.py",
"source_location": "L218",
"id": "controller_session_store_sessionstore_gc_loop",
- "community": 10,
+ "community": 18,
"norm_label": ".gc_loop()"
},
{
@@ -54495,7 +55908,7 @@
"source_file": "src/exlab_wizard/controller/session_store.py",
"source_location": "L236",
"id": "controller_session_store_sessionstore_gc_once",
- "community": 10,
+ "community": 18,
"norm_label": "._gc_once()"
},
{
@@ -54504,7 +55917,7 @@
"source_file": "src/exlab_wizard/controller/session_store.py",
"source_location": "L259",
"id": "controller_session_store_on_operations_panel",
- "community": 10,
+ "community": 204,
"norm_label": "on_operations_panel()"
},
{
@@ -54513,7 +55926,7 @@
"source_file": "src/exlab_wizard/controller/session_store.py",
"source_location": "L270",
"id": "controller_session_store_project_identifier",
- "community": 10,
+ "community": 18,
"norm_label": "project_identifier()"
},
{
@@ -54522,7 +55935,7 @@
"source_file": "src/exlab_wizard/controller/session_store.py",
"source_location": "L1",
"id": "controller_session_store_rationale_1",
- "community": 10,
+ "community": 18,
"norm_label": "in-memory session store + gc for creation sessions. backend spec \u00a74.4.7. the :c"
},
{
@@ -54531,7 +55944,7 @@
"source_file": "src/exlab_wizard/controller/session_store.py",
"source_location": "L47",
"id": "controller_session_store_rationale_47",
- "community": 9,
+ "community": 10,
"norm_label": "one creation session. backend spec \u00a74.4.7. attributes: session_id:"
},
{
@@ -54540,7 +55953,7 @@
"source_file": "src/exlab_wizard/controller/session_store.py",
"source_location": "L88",
"id": "controller_session_store_rationale_88",
- "community": 9,
+ "community": 10,
"norm_label": "return ``true`` if the session reached a terminal state."
},
{
@@ -54549,7 +55962,7 @@
"source_file": "src/exlab_wizard/controller/session_store.py",
"source_location": "L93",
"id": "controller_session_store_rationale_93",
- "community": 10,
+ "community": 18,
"norm_label": "in-memory session store. backend spec \u00a74.4.7. sessions are keyed by uuid4 s"
},
{
@@ -54558,7 +55971,7 @@
"source_file": "src/exlab_wizard/controller/session_store.py",
"source_location": "L105",
"id": "controller_session_store_rationale_105",
- "community": 10,
+ "community": 18,
"norm_label": "create a fresh session in :data:`sessionstate.pending` state."
},
{
@@ -54567,7 +55980,7 @@
"source_file": "src/exlab_wizard/controller/session_store.py",
"source_location": "L126",
"id": "controller_session_store_rationale_126",
- "community": 10,
+ "community": 18,
"norm_label": "return the session keyed by ``session_id``, or ``none``."
},
{
@@ -54576,7 +55989,7 @@
"source_file": "src/exlab_wizard/controller/session_store.py",
"source_location": "L130",
"id": "controller_session_store_rationale_130",
- "community": 10,
+ "community": 18,
"norm_label": "return ``(session_id, session)`` pairs, oldest-created first. the publi"
},
{
@@ -54585,7 +55998,7 @@
"source_file": "src/exlab_wizard/controller/session_store.py",
"source_location": "L139",
"id": "controller_session_store_rationale_139",
- "community": 10,
+ "community": 18,
"norm_label": "move ``session_id`` to ``new_state``, updating ``current_phase``. valid"
},
{
@@ -54594,7 +56007,7 @@
"source_file": "src/exlab_wizard/controller/session_store.py",
"source_location": "L160",
"id": "controller_session_store_rationale_160",
- "community": 10,
+ "community": 18,
"norm_label": "attach a websocket fan-out queue to the session. the controller pushes"
},
{
@@ -54603,7 +56016,7 @@
"source_file": "src/exlab_wizard/controller/session_store.py",
"source_location": "L172",
"id": "controller_session_store_rationale_172",
- "community": 10,
+ "community": 18,
"norm_label": "refresh ``last_heartbeat`` so the gc will not close this session. no-op"
},
{
@@ -54612,7 +56025,7 @@
"source_file": "src/exlab_wizard/controller/session_store.py",
"source_location": "L183",
"id": "controller_session_store_rationale_183",
- "community": 10,
+ "community": 18,
"norm_label": "stamp a terminal-state session with the outcome envelope. ``outcome`` i"
},
{
@@ -54621,7 +56034,7 @@
"source_file": "src/exlab_wizard/controller/session_store.py",
"source_location": "L203",
"id": "controller_session_store_rationale_203",
- "community": 10,
+ "community": 18,
"norm_label": "return ids of :data:`sessionstate.input_required` sessions whose ``last_"
},
{
@@ -54630,7 +56043,7 @@
"source_file": "src/exlab_wizard/controller/session_store.py",
"source_location": "L219",
"id": "controller_session_store_rationale_219",
- "community": 10,
+ "community": 18,
"norm_label": "run the abandoned-session gc forever. backend spec \u00a74.4.7. sleeps ``int"
},
{
@@ -54639,7 +56052,7 @@
"source_file": "src/exlab_wizard/controller/session_store.py",
"source_location": "L237",
"id": "controller_session_store_rationale_237",
- "community": 10,
+ "community": 18,
"norm_label": "one gc pass: close every abandoned ``input_required`` session."
},
{
@@ -54648,7 +56061,7 @@
"source_file": "src/exlab_wizard/controller/session_store.py",
"source_location": "L260",
"id": "controller_session_store_rationale_260",
- "community": 10,
+ "community": 204,
"norm_label": "return ``true`` when ``session`` belongs on the operations panel. frontend"
},
{
@@ -54657,16 +56070,313 @@
"source_file": "src/exlab_wizard/controller/session_store.py",
"source_location": "L271",
"id": "controller_session_store_rationale_271",
- "community": 10,
+ "community": 18,
"norm_label": "pluck a project identifier off a project / run creation request. a project"
},
+ {
+ "label": "__init__.py",
+ "file_type": "code",
+ "source_file": "src/exlab_wizard/sample_data/__init__.py",
+ "source_location": "L1",
+ "id": "src_exlab_wizard_sample_data_init_py",
+ "community": 480,
+ "norm_label": "__init__.py"
+ },
+ {
+ "label": "spec.py",
+ "file_type": "code",
+ "source_file": "src/exlab_wizard/sample_data/spec.py",
+ "source_location": "L1",
+ "id": "src_exlab_wizard_sample_data_spec_py",
+ "community": 78,
+ "norm_label": "spec.py"
+ },
+ {
+ "label": "SampleFile",
+ "file_type": "code",
+ "source_file": "src/exlab_wizard/sample_data/spec.py",
+ "source_location": "L29",
+ "id": "sample_data_spec_samplefile",
+ "community": 78,
+ "norm_label": "samplefile"
+ },
+ {
+ "label": "_check_relpath()",
+ "file_type": "code",
+ "source_file": "src/exlab_wizard/sample_data/spec.py",
+ "source_location": "L37",
+ "id": "sample_data_spec_check_relpath",
+ "community": 78,
+ "norm_label": "_check_relpath()"
+ },
+ {
+ "label": "SampleRun",
+ "file_type": "code",
+ "source_file": "src/exlab_wizard/sample_data/spec.py",
+ "source_location": "L50",
+ "id": "sample_data_spec_samplerun",
+ "community": 78,
+ "norm_label": "samplerun"
+ },
+ {
+ "label": "SampleProject",
+ "file_type": "code",
+ "source_file": "src/exlab_wizard/sample_data/spec.py",
+ "source_location": "L63",
+ "id": "sample_data_spec_sampleproject",
+ "community": 78,
+ "norm_label": "sampleproject"
+ },
+ {
+ "label": "_check_short_id()",
+ "file_type": "code",
+ "source_file": "src/exlab_wizard/sample_data/spec.py",
+ "source_location": "L75",
+ "id": "sample_data_spec_check_short_id",
+ "community": 78,
+ "norm_label": "_check_short_id()"
+ },
+ {
+ "label": "_check_name()",
+ "file_type": "code",
+ "source_file": "src/exlab_wizard/sample_data/spec.py",
+ "source_location": "L85",
+ "id": "sample_data_spec_check_name",
+ "community": 78,
+ "norm_label": "_check_name()"
+ },
+ {
+ "label": "SampleEquipment",
+ "file_type": "code",
+ "source_file": "src/exlab_wizard/sample_data/spec.py",
+ "source_location": "L97",
+ "id": "sample_data_spec_sampleequipment",
+ "community": 78,
+ "norm_label": "sampleequipment"
+ },
+ {
+ "label": "_check_id()",
+ "file_type": "code",
+ "source_file": "src/exlab_wizard/sample_data/spec.py",
+ "source_location": "L107",
+ "id": "sample_data_spec_check_id",
+ "community": 78,
+ "norm_label": "_check_id()"
+ },
+ {
+ "label": "Declarative sample-data model + the ``SAMPLES`` list (design spec \u00a74). ``SAMPLE",
+ "file_type": "rationale",
+ "source_file": "src/exlab_wizard/sample_data/spec.py",
+ "source_location": "L1",
+ "id": "sample_data_spec_rationale_1",
+ "community": 78,
+ "norm_label": "declarative sample-data model + the ``samples`` list (design spec \u00a74). ``sample"
+ },
+ {
+ "label": "generator.py",
+ "file_type": "code",
+ "source_file": "src/exlab_wizard/sample_data/generator.py",
+ "source_location": "L1",
+ "id": "src_exlab_wizard_sample_data_generator_py",
+ "community": 527,
+ "norm_label": "generator.py"
+ },
+ {
+ "label": "generate_samples()",
+ "file_type": "code",
+ "source_file": "src/exlab_wizard/sample_data/generator.py",
+ "source_location": "L121",
+ "id": "sample_data_generator_generate_samples",
+ "community": 109,
+ "norm_label": "generate_samples()"
+ },
+ {
+ "label": "SampleDataGenerator",
+ "file_type": "code",
+ "source_file": "src/exlab_wizard/sample_data/generator.py",
+ "source_location": "L147",
+ "id": "sample_data_generator_sampledatagenerator",
+ "community": 38,
+ "norm_label": "sampledatagenerator"
+ },
+ {
+ "label": ".__init__()",
+ "file_type": "code",
+ "source_file": "src/exlab_wizard/sample_data/generator.py",
+ "source_location": "L150",
+ "id": "sample_data_generator_sampledatagenerator_init",
+ "community": 38,
+ "norm_label": ".__init__()"
+ },
+ {
+ "label": ".generate()",
+ "file_type": "code",
+ "source_file": "src/exlab_wizard/sample_data/generator.py",
+ "source_location": "L163",
+ "id": "sample_data_generator_sampledatagenerator_generate",
+ "community": 38,
+ "norm_label": ".generate()"
+ },
+ {
+ "label": "._generate_async()",
+ "file_type": "code",
+ "source_file": "src/exlab_wizard/sample_data/generator.py",
+ "source_location": "L171",
+ "id": "sample_data_generator_sampledatagenerator_generate_async",
+ "community": 38,
+ "norm_label": "._generate_async()"
+ },
+ {
+ "label": "._build_and_reload_config()",
+ "file_type": "code",
+ "source_file": "src/exlab_wizard/sample_data/generator.py",
+ "source_location": "L194",
+ "id": "sample_data_generator_sampledatagenerator_build_and_reload_config",
+ "community": 38,
+ "norm_label": "._build_and_reload_config()"
+ },
+ {
+ "label": "._wipe()",
+ "file_type": "code",
+ "source_file": "src/exlab_wizard/sample_data/generator.py",
+ "source_location": "L239",
+ "id": "sample_data_generator_sampledatagenerator_wipe",
+ "community": 38,
+ "norm_label": "._wipe()"
+ },
+ {
+ "label": "._write_equipment()",
+ "file_type": "code",
+ "source_file": "src/exlab_wizard/sample_data/generator.py",
+ "source_location": "L286",
+ "id": "sample_data_generator_sampledatagenerator_write_equipment",
+ "community": 38,
+ "norm_label": "._write_equipment()"
+ },
+ {
+ "label": "._write_project()",
+ "file_type": "code",
+ "source_file": "src/exlab_wizard/sample_data/generator.py",
+ "source_location": "L313",
+ "id": "sample_data_generator_sampledatagenerator_write_project",
+ "community": 38,
+ "norm_label": "._write_project()"
+ },
+ {
+ "label": "._write_metadata()",
+ "file_type": "code",
+ "source_file": "src/exlab_wizard/sample_data/generator.py",
+ "source_location": "L401",
+ "id": "sample_data_generator_sampledatagenerator_write_metadata",
+ "community": 25,
+ "norm_label": "._write_metadata()"
+ },
+ {
+ "label": "._run_date()",
+ "file_type": "code",
+ "source_file": "src/exlab_wizard/sample_data/generator.py",
+ "source_location": "L469",
+ "id": "sample_data_generator_sampledatagenerator_run_date",
+ "community": 38,
+ "norm_label": "._run_date()"
+ },
+ {
+ "label": "._write_payload()",
+ "file_type": "code",
+ "source_file": "src/exlab_wizard/sample_data/generator.py",
+ "source_location": "L479",
+ "id": "sample_data_generator_sampledatagenerator_write_payload",
+ "community": 38,
+ "norm_label": "._write_payload()"
+ },
+ {
+ "label": "Expand the declarative ``SAMPLES`` list into an on-disk demo tree. Design spec",
+ "file_type": "rationale",
+ "source_file": "src/exlab_wizard/sample_data/generator.py",
+ "source_location": "L1",
+ "id": "sample_data_generator_rationale_1",
+ "community": 527,
+ "norm_label": "expand the declarative ``samples`` list into an on-disk demo tree. design spec"
+ },
+ {
+ "label": "Expand ``SAMPLES`` into an on-disk demo tree under the sandbox. Synchronous",
+ "file_type": "rationale",
+ "source_file": "src/exlab_wizard/sample_data/generator.py",
+ "source_location": "L127",
+ "id": "sample_data_generator_rationale_127",
+ "community": 109,
+ "norm_label": "expand ``samples`` into an on-disk demo tree under the sandbox. synchronous"
+ },
+ {
+ "label": "Expands :data:`SAMPLES` into an on-disk tree (design spec \u00a76).",
+ "file_type": "rationale",
+ "source_file": "src/exlab_wizard/sample_data/generator.py",
+ "source_location": "L148",
+ "id": "sample_data_generator_rationale_148",
+ "community": 38,
+ "norm_label": "expands :data:`samples` into an on-disk tree (design spec \u00a76)."
+ },
+ {
+ "label": "Synchronous wrapper running the async core on a fresh loop.",
+ "file_type": "rationale",
+ "source_file": "src/exlab_wizard/sample_data/generator.py",
+ "source_location": "L164",
+ "id": "sample_data_generator_rationale_164",
+ "community": 38,
+ "norm_label": "synchronous wrapper running the async core on a fresh loop."
+ },
+ {
+ "label": "Merge sample equipment + the seeded README default; reload prefixed. Co",
+ "file_type": "rationale",
+ "source_file": "src/exlab_wizard/sample_data/generator.py",
+ "source_location": "L195",
+ "id": "sample_data_generator_rationale_195",
+ "community": 38,
+ "norm_label": "merge sample equipment + the seeded readme default; reload prefixed. co"
+ },
+ {
+ "label": "Remove ``local_root/`` for each seeded equipment. Enforces",
+ "file_type": "rationale",
+ "source_file": "src/exlab_wizard/sample_data/generator.py",
+ "source_location": "L240",
+ "id": "sample_data_generator_rationale_240",
+ "community": 38,
+ "norm_label": "remove ``local_root/`` for each seeded equipment. enforces"
+ },
+ {
+ "label": "Write README + readme_fields.json + creation.json for one folder. Uses",
+ "file_type": "rationale",
+ "source_file": "src/exlab_wizard/sample_data/generator.py",
+ "source_location": "L420",
+ "id": "sample_data_generator_rationale_420",
+ "community": 25,
+ "norm_label": "write readme + readme_fields.json + creation.json for one folder. uses"
+ },
+ {
+ "label": "Deterministic run instant: ``base_time + (minutes_offset or index+1)``.",
+ "file_type": "rationale",
+ "source_file": "src/exlab_wizard/sample_data/generator.py",
+ "source_location": "L470",
+ "id": "sample_data_generator_rationale_470",
+ "community": 38,
+ "norm_label": "deterministic run instant: ``base_time + (minutes_offset or index+1)``."
+ },
+ {
+ "label": "Write the run's payload files (or the default pair when None).",
+ "file_type": "rationale",
+ "source_file": "src/exlab_wizard/sample_data/generator.py",
+ "source_location": "L480",
+ "id": "sample_data_generator_rationale_480",
+ "community": 38,
+ "norm_label": "write the run's payload files (or the default pair when none)."
+ },
{
"label": "pywebview_app.py",
"file_type": "code",
"source_file": "src/exlab_wizard/window/pywebview_app.py",
"source_location": "L1",
"id": "src_exlab_wizard_window_pywebview_app_py",
- "community": 11,
+ "community": 17,
"norm_label": "pywebview_app.py"
},
{
@@ -54675,7 +56385,7 @@
"source_file": "src/exlab_wizard/window/pywebview_app.py",
"source_location": "L42",
"id": "window_pywebview_app_build_window_url",
- "community": 11,
+ "community": 17,
"norm_label": "build_window_url()"
},
{
@@ -54684,7 +56394,7 @@
"source_file": "src/exlab_wizard/window/pywebview_app.py",
"source_location": "L51",
"id": "window_pywebview_app_is_debug_enabled",
- "community": 11,
+ "community": 17,
"norm_label": "is_debug_enabled()"
},
{
@@ -54693,7 +56403,7 @@
"source_file": "src/exlab_wizard/window/pywebview_app.py",
"source_location": "L59",
"id": "window_pywebview_app_run_window",
- "community": 11,
+ "community": 17,
"norm_label": "run_window()"
},
{
@@ -54702,7 +56412,7 @@
"source_file": "src/exlab_wizard/window/pywebview_app.py",
"source_location": "L93",
"id": "window_pywebview_app_import_webview",
- "community": 11,
+ "community": 17,
"norm_label": "_import_webview()"
},
{
@@ -54711,7 +56421,7 @@
"source_file": "src/exlab_wizard/window/pywebview_app.py",
"source_location": "L1",
"id": "window_pywebview_app_rationale_1",
- "community": 11,
+ "community": 17,
"norm_label": "pywebview-driven native window. backend spec \u00a715.3.2. opens a single pywebview"
},
{
@@ -54720,7 +56430,7 @@
"source_file": "src/exlab_wizard/window/pywebview_app.py",
"source_location": "L43",
"id": "window_pywebview_app_rationale_43",
- "community": 11,
+ "community": 17,
"norm_label": "return the url the window points at. always loopback (backend \u00a74.1: \"binds"
},
{
@@ -54729,7 +56439,7 @@
"source_file": "src/exlab_wizard/window/pywebview_app.py",
"source_location": "L52",
"id": "window_pywebview_app_rationale_52",
- "community": 11,
+ "community": 17,
"norm_label": "true when ``exlab_debug`` is set to a truthy string. backend \u00a715.3.2."
},
{
@@ -54738,7 +56448,7 @@
"source_file": "src/exlab_wizard/window/pywebview_app.py",
"source_location": "L65",
"id": "window_pywebview_app_rationale_65",
- "community": 11,
+ "community": 17,
"norm_label": "open a single pywebview window pointed at the handshake's port. ``create_wi"
},
{
@@ -54747,7 +56457,7 @@
"source_file": "src/exlab_wizard/window/pywebview_app.py",
"source_location": "L94",
"id": "window_pywebview_app_rationale_94",
- "community": 11,
+ "community": 17,
"norm_label": "lazily import pywebview to keep the module import cheap."
},
{
@@ -54756,7 +56466,7 @@
"source_file": "src/exlab_wizard/window/__init__.py",
"source_location": "L1",
"id": "src_exlab_wizard_window_init_py",
- "community": 444,
+ "community": 481,
"norm_label": "__init__.py"
},
{
@@ -54765,7 +56475,7 @@
"source_file": "src/exlab_wizard/window/main.py",
"source_location": "L1",
"id": "src_exlab_wizard_window_main_py",
- "community": 11,
+ "community": 17,
"norm_label": "main.py"
},
{
@@ -54774,7 +56484,7 @@
"source_file": "src/exlab_wizard/window/main.py",
"source_location": "L38",
"id": "window_main_serverhandshake",
- "community": 11,
+ "community": 17,
"norm_label": "serverhandshake"
},
{
@@ -54783,7 +56493,7 @@
"source_file": "src/exlab_wizard/window/main.py",
"source_location": "L43",
"id": "window_main_serverhandshake_init",
- "community": 11,
+ "community": 17,
"norm_label": ".__init__()"
},
{
@@ -54792,7 +56502,7 @@
"source_file": "src/exlab_wizard/window/main.py",
"source_location": "L49",
"id": "window_main_read_server_handshake",
- "community": 11,
+ "community": 17,
"norm_label": "read_server_handshake()"
},
{
@@ -54801,7 +56511,7 @@
"source_file": "src/exlab_wizard/window/main.py",
"source_location": "L74",
"id": "window_main_is_pid_alive",
- "community": 11,
+ "community": 17,
"norm_label": "is_pid_alive()"
},
{
@@ -54810,7 +56520,7 @@
"source_file": "src/exlab_wizard/window/main.py",
"source_location": "L92",
"id": "window_main_posix_is_pid_alive",
- "community": 11,
+ "community": 17,
"norm_label": "_posix_is_pid_alive()"
},
{
@@ -54819,7 +56529,7 @@
"source_file": "src/exlab_wizard/window/main.py",
"source_location": "L110",
"id": "window_main_win_is_pid_alive",
- "community": 11,
+ "community": 17,
"norm_label": "_win_is_pid_alive()"
},
{
@@ -54828,7 +56538,7 @@
"source_file": "src/exlab_wizard/window/main.py",
"source_location": "L133",
"id": "window_main_main",
- "community": 11,
+ "community": 17,
"norm_label": "main()"
},
{
@@ -54837,7 +56547,7 @@
"source_file": "src/exlab_wizard/window/main.py",
"source_location": "L173",
"id": "window_main_default_handoff",
- "community": 11,
+ "community": 17,
"norm_label": "_default_handoff()"
},
{
@@ -54846,7 +56556,7 @@
"source_file": "src/exlab_wizard/window/main.py",
"source_location": "L1",
"id": "window_main_rationale_1",
- "community": 11,
+ "community": 17,
"norm_label": "``exlab-wizard-window`` console_scripts entry point. backend spec \u00a715.3.2. read"
},
{
@@ -54855,7 +56565,7 @@
"source_file": "src/exlab_wizard/window/main.py",
"source_location": "L39",
"id": "window_main_rationale_39",
- "community": 11,
+ "community": 17,
"norm_label": "resolved ``server.json`` contents: ``port`` / ``pid`` / ``started_at``."
},
{
@@ -54864,7 +56574,7 @@
"source_file": "src/exlab_wizard/window/main.py",
"source_location": "L50",
"id": "window_main_rationale_50",
- "community": 11,
+ "community": 17,
"norm_label": "read and validate ``/server.json``. returns the handshake on suc"
},
{
@@ -54873,7 +56583,7 @@
"source_file": "src/exlab_wizard/window/main.py",
"source_location": "L75",
"id": "window_main_rationale_75",
- "community": 11,
+ "community": 17,
"norm_label": "cross-platform \"is this pid a live process?\" check. implementation: posix `"
},
{
@@ -54882,7 +56592,7 @@
"source_file": "src/exlab_wizard/window/main.py",
"source_location": "L140",
"id": "window_main_rationale_140",
- "community": 11,
+ "community": 17,
"norm_label": "entry point. backend spec \u00a715.3.2. ``argv`` is ignored at this phase (the s"
},
{
@@ -54891,7 +56601,7 @@
"source_file": "src/exlab_wizard/window/main.py",
"source_location": "L174",
"id": "window_main_rationale_174",
- "community": 11,
+ "community": 17,
"norm_label": "hand off control to :mod:`pywebview_app`."
},
{
@@ -54900,7 +56610,7 @@
"source_file": "src/exlab_wizard/api/health.py",
"source_location": "L1",
"id": "src_exlab_wizard_api_health_py",
- "community": 212,
+ "community": 136,
"norm_label": "health.py"
},
{
@@ -54909,7 +56619,7 @@
"source_file": "src/exlab_wizard/api/health.py",
"source_location": "L35",
"id": "api_health_healthresponse",
- "community": 212,
+ "community": 136,
"norm_label": "healthresponse"
},
{
@@ -54918,7 +56628,7 @@
"source_file": "src/exlab_wizard/api/health.py",
"source_location": "L47",
"id": "api_health_build_health_router",
- "community": 212,
+ "community": 136,
"norm_label": "build_health_router()"
},
{
@@ -54927,7 +56637,7 @@
"source_file": "src/exlab_wizard/api/health.py",
"source_location": "L72",
"id": "api_health_component_rollup",
- "community": 212,
+ "community": 136,
"norm_label": "_component_rollup()"
},
{
@@ -54936,7 +56646,7 @@
"source_file": "src/exlab_wizard/api/health.py",
"source_location": "L83",
"id": "api_health_validator_health",
- "community": 212,
+ "community": 136,
"norm_label": "_validator_health()"
},
{
@@ -54945,7 +56655,7 @@
"source_file": "src/exlab_wizard/api/health.py",
"source_location": "L91",
"id": "api_health_nas_sync_health",
- "community": 212,
+ "community": 136,
"norm_label": "_nas_sync_health()"
},
{
@@ -54954,7 +56664,7 @@
"source_file": "src/exlab_wizard/api/health.py",
"source_location": "L116",
"id": "api_health_lims_health",
- "community": 212,
+ "community": 136,
"norm_label": "_lims_health()"
},
{
@@ -54963,7 +56673,7 @@
"source_file": "src/exlab_wizard/api/health.py",
"source_location": "L131",
"id": "api_health_plugin_host_health",
- "community": 212,
+ "community": 136,
"norm_label": "_plugin_host_health()"
},
{
@@ -54972,7 +56682,7 @@
"source_file": "src/exlab_wizard/api/health.py",
"source_location": "L144",
"id": "api_health_session_store_health",
- "community": 212,
+ "community": 136,
"norm_label": "_session_store_health()"
},
{
@@ -54981,7 +56691,7 @@
"source_file": "src/exlab_wizard/api/health.py",
"source_location": "L161",
"id": "api_health_top_level_status",
- "community": 212,
+ "community": 136,
"norm_label": "_top_level_status()"
},
{
@@ -54990,7 +56700,7 @@
"source_file": "src/exlab_wizard/api/health.py",
"source_location": "L1",
"id": "api_health_rationale_1",
- "community": 212,
+ "community": 136,
"norm_label": "``get /api/v1/health`` rollup. backend spec \u00a74.6.3. returns a component-health"
},
{
@@ -54999,7 +56709,7 @@
"source_file": "src/exlab_wizard/api/health.py",
"source_location": "L36",
"id": "api_health_rationale_36",
- "community": 212,
+ "community": 136,
"norm_label": "``get /health`` response body. backend spec \u00a74.6.3."
},
{
@@ -55008,7 +56718,7 @@
"source_file": "src/exlab_wizard/api/health.py",
"source_location": "L48",
"id": "api_health_rationale_48",
- "community": 212,
+ "community": 136,
"norm_label": "construct the health router. always available."
},
{
@@ -55017,7 +56727,7 @@
"source_file": "src/exlab_wizard/api/health.py",
"source_location": "L73",
"id": "api_health_rationale_73",
- "community": 212,
+ "community": 136,
"norm_label": "build the \u00a74.6.3 components block from the live dependencies."
},
{
@@ -55026,7 +56736,7 @@
"source_file": "src/exlab_wizard/api/health.py",
"source_location": "L162",
"id": "api_health_rationale_162",
- "community": 212,
+ "community": 136,
"norm_label": "aggregate per-component statuses into the \u00a74.6.3 top-level value. top-level"
},
{
@@ -55035,7 +56745,7 @@
"source_file": "src/exlab_wizard/api/_dependencies.py",
"source_location": "L1",
"id": "src_exlab_wizard_api_dependencies_py",
- "community": 261,
+ "community": 82,
"norm_label": "_dependencies.py"
},
{
@@ -55044,7 +56754,7 @@
"source_file": "src/exlab_wizard/api/_dependencies.py",
"source_location": "L31",
"id": "api_dependencies_lims_password_present",
- "community": 261,
+ "community": 82,
"norm_label": "lims_password_present()"
},
{
@@ -55053,7 +56763,7 @@
"source_file": "src/exlab_wizard/api/_dependencies.py",
"source_location": "L51",
"id": "api_dependencies_nas_remote_available",
- "community": 261,
+ "community": 187,
"norm_label": "nas_remote_available()"
},
{
@@ -55062,7 +56772,7 @@
"source_file": "src/exlab_wizard/api/_dependencies.py",
"source_location": "L74",
"id": "api_dependencies_require_deps",
- "community": 127,
+ "community": 82,
"norm_label": "require_deps()"
},
{
@@ -55071,7 +56781,7 @@
"source_file": "src/exlab_wizard/api/_dependencies.py",
"source_location": "L94",
"id": "api_dependencies_require_controller",
- "community": 261,
+ "community": 82,
"norm_label": "require_controller()"
},
{
@@ -55080,7 +56790,7 @@
"source_file": "src/exlab_wizard/api/_dependencies.py",
"source_location": "L1",
"id": "api_dependencies_rationale_1",
- "community": 261,
+ "community": 82,
"norm_label": "shared fastapi dependency helpers for the wizard's http routers. the lifespan h"
},
{
@@ -55089,7 +56799,7 @@
"source_file": "src/exlab_wizard/api/_dependencies.py",
"source_location": "L32",
"id": "api_dependencies_rationale_32",
- "community": 261,
+ "community": 82,
"norm_label": "return whether a lims password is stored -- the repo-wide reader. every sur"
},
{
@@ -55098,7 +56808,7 @@
"source_file": "src/exlab_wizard/api/_dependencies.py",
"source_location": "L52",
"id": "api_dependencies_rationale_52",
- "community": 261,
+ "community": 82,
"norm_label": "return whether ``remote`` is present in the operator's rclone.conf. rclone."
},
{
@@ -55107,7 +56817,7 @@
"source_file": "src/exlab_wizard/api/_dependencies.py",
"source_location": "L75",
"id": "api_dependencies_rationale_75",
- "community": 127,
+ "community": 82,
"norm_label": "return ``app.state.dependencies`` or raise a structured 503. a missing depe"
},
{
@@ -55116,7 +56826,7 @@
"source_file": "src/exlab_wizard/api/_dependencies.py",
"source_location": "L95",
"id": "api_dependencies_rationale_95",
- "community": 261,
+ "community": 82,
"norm_label": "return ``deps.controller`` or raise a structured 503. used by the routes th"
},
{
@@ -55125,7 +56835,7 @@
"source_file": "src/exlab_wizard/api/events.py",
"source_location": "L1",
"id": "src_exlab_wizard_api_events_py",
- "community": 16,
+ "community": 64,
"norm_label": "events.py"
},
{
@@ -55134,7 +56844,7 @@
"source_file": "src/exlab_wizard/api/events.py",
"source_location": "L46",
"id": "api_events_phaseevent",
- "community": 16,
+ "community": 64,
"norm_label": "phaseevent"
},
{
@@ -55143,7 +56853,7 @@
"source_file": "src/exlab_wizard/api/events.py",
"source_location": "L63",
"id": "api_events_progressevent",
- "community": 16,
+ "community": 64,
"norm_label": "progressevent"
},
{
@@ -55152,7 +56862,7 @@
"source_file": "src/exlab_wizard/api/events.py",
"source_location": "L76",
"id": "api_events_inputrequiredevent",
- "community": 16,
+ "community": 64,
"norm_label": "inputrequiredevent"
},
{
@@ -55161,7 +56871,7 @@
"source_file": "src/exlab_wizard/api/events.py",
"source_location": "L96",
"id": "api_events_warningevent",
- "community": 16,
+ "community": 64,
"norm_label": "warningevent"
},
{
@@ -55170,7 +56880,7 @@
"source_file": "src/exlab_wizard/api/events.py",
"source_location": "L113",
"id": "api_events_doneevent",
- "community": 16,
+ "community": 64,
"norm_label": "doneevent"
},
{
@@ -55179,7 +56889,7 @@
"source_file": "src/exlab_wizard/api/events.py",
"source_location": "L129",
"id": "api_events_failedevent",
- "community": 16,
+ "community": 64,
"norm_label": "failedevent"
},
{
@@ -55188,7 +56898,7 @@
"source_file": "src/exlab_wizard/api/events.py",
"source_location": "L146",
"id": "api_events_snapshotevent",
- "community": 16,
+ "community": 64,
"norm_label": "snapshotevent"
},
{
@@ -55197,7 +56907,7 @@
"source_file": "src/exlab_wizard/api/events.py",
"source_location": "L163",
"id": "api_events_deltaevent",
- "community": 16,
+ "community": 64,
"norm_label": "deltaevent"
},
{
@@ -55206,7 +56916,7 @@
"source_file": "src/exlab_wizard/api/events.py",
"source_location": "L189",
"id": "api_events_encode_event",
- "community": 16,
+ "community": 64,
"norm_label": "encode_event()"
},
{
@@ -55215,7 +56925,7 @@
"source_file": "src/exlab_wizard/api/events.py",
"source_location": "L198",
"id": "api_events_event_from_dict",
- "community": 16,
+ "community": 64,
"norm_label": "event_from_dict()"
},
{
@@ -55224,7 +56934,7 @@
"source_file": "src/exlab_wizard/api/events.py",
"source_location": "L1",
"id": "api_events_rationale_1",
- "community": 16,
+ "community": 64,
"norm_label": "websocket frame envelope types. backend spec \u00a74.6.2. these ``msgspec.struct`` t"
},
{
@@ -55233,7 +56943,7 @@
"source_file": "src/exlab_wizard/api/events.py",
"source_location": "L52",
"id": "api_events_rationale_52",
- "community": 16,
+ "community": 64,
"norm_label": "per-state phase frame. backend spec \u00a74.6.2. emitted on every state transiti"
},
{
@@ -55242,7 +56952,7 @@
"source_file": "src/exlab_wizard/api/events.py",
"source_location": "L69",
"id": "api_events_rationale_69",
- "community": 16,
+ "community": 64,
"norm_label": "progress frame for the long-running plugin pass. backend spec \u00a74.6.2."
},
{
@@ -55251,7 +56961,7 @@
"source_file": "src/exlab_wizard/api/events.py",
"source_location": "L82",
"id": "api_events_rationale_82",
- "community": 16,
+ "community": 64,
"norm_label": "plugin escalation frame. backend spec \u00a74.6.2 / \u00a76.4. ``fields`` is the plug"
},
{
@@ -55260,7 +56970,7 @@
"source_file": "src/exlab_wizard/api/events.py",
"source_location": "L102",
"id": "api_events_rationale_102",
- "community": 16,
+ "community": 64,
"norm_label": "non-fatal warning frame. backend spec \u00a74.6.2. emitted by the controller whe"
},
{
@@ -55269,7 +56979,7 @@
"source_file": "src/exlab_wizard/api/events.py",
"source_location": "L119",
"id": "api_events_rationale_119",
- "community": 16,
+ "community": 64,
"norm_label": "terminal success frame. backend spec \u00a74.6.2. ``result`` carries the final s"
},
{
@@ -55278,7 +56988,7 @@
"source_file": "src/exlab_wizard/api/events.py",
"source_location": "L135",
"id": "api_events_rationale_135",
- "community": 16,
+ "community": 64,
"norm_label": "terminal failure frame. backend spec \u00a74.6.2. ``error`` follows the \u00a74.6.3 e"
},
{
@@ -55287,7 +56997,7 @@
"source_file": "src/exlab_wizard/api/events.py",
"source_location": "L152",
"id": "api_events_rationale_152",
- "community": 16,
+ "community": 64,
"norm_label": "full audit snapshot frame for the problems pub-sub channel. sent immediatel"
},
{
@@ -55296,7 +57006,7 @@
"source_file": "src/exlab_wizard/api/events.py",
"source_location": "L169",
"id": "api_events_rationale_169",
- "community": 16,
+ "community": 64,
"norm_label": "delta frame for the problems pub-sub channel. backend spec \u00a74.6.2. sent on"
},
{
@@ -55305,7 +57015,7 @@
"source_file": "src/exlab_wizard/api/events.py",
"source_location": "L190",
"id": "api_events_rationale_190",
- "community": 16,
+ "community": 64,
"norm_label": "encode a typed websocket frame to json bytes via ``msgspec.json``. single d"
},
{
@@ -55314,7 +57024,7 @@
"source_file": "src/exlab_wizard/api/events.py",
"source_location": "L199",
"id": "api_events_rationale_199",
- "community": 16,
+ "community": 64,
"norm_label": "convert a plain dict (e.g. from the controller's event queue) into the match"
},
{
@@ -55323,7 +57033,7 @@
"source_file": "src/exlab_wizard/api/__init__.py",
"source_location": "L1",
"id": "src_exlab_wizard_api_init_py",
- "community": 393,
+ "community": 401,
"norm_label": "__init__.py"
},
{
@@ -55332,7 +57042,7 @@
"source_file": "src/exlab_wizard/api/setup.py",
"source_location": "L1",
"id": "src_exlab_wizard_api_setup_py",
- "community": 7,
+ "community": 112,
"norm_label": "setup.py"
},
{
@@ -55341,7 +57051,7 @@
"source_file": "src/exlab_wizard/api/setup.py",
"source_location": "L71",
"id": "api_setup_setupstatusresponse",
- "community": 7,
+ "community": 112,
"norm_label": "setupstatusresponse"
},
{
@@ -55350,7 +57060,7 @@
"source_file": "src/exlab_wizard/api/setup.py",
"source_location": "L82",
"id": "api_setup_limstestrequest",
- "community": 7,
+ "community": 112,
"norm_label": "limstestrequest"
},
{
@@ -55359,7 +57069,7 @@
"source_file": "src/exlab_wizard/api/setup.py",
"source_location": "L98",
"id": "api_setup_equipmenttestrequest",
- "community": 7,
+ "community": 112,
"norm_label": "equipmenttestrequest"
},
{
@@ -55368,7 +57078,7 @@
"source_file": "src/exlab_wizard/api/setup.py",
"source_location": "L114",
"id": "api_setup_proberesult",
- "community": 7,
+ "community": 112,
"norm_label": "proberesult"
},
{
@@ -55377,7 +57087,7 @@
"source_file": "src/exlab_wizard/api/setup.py",
"source_location": "L132",
"id": "api_setup_autostartrequest",
- "community": 7,
+ "community": 112,
"norm_label": "autostartrequest"
},
{
@@ -55386,7 +57096,7 @@
"source_file": "src/exlab_wizard/api/setup.py",
"source_location": "L140",
"id": "api_setup_autostartresult",
- "community": 7,
+ "community": 112,
"norm_label": "autostartresult"
},
{
@@ -55395,7 +57105,7 @@
"source_file": "src/exlab_wizard/api/setup.py",
"source_location": "L154",
"id": "api_setup_compute_setup_state",
- "community": 1,
+ "community": 95,
"norm_label": "compute_setup_state()"
},
{
@@ -55404,7 +57114,7 @@
"source_file": "src/exlab_wizard/api/setup.py",
"source_location": "L171",
"id": "api_setup_is_creation_blocked",
- "community": 7,
+ "community": 331,
"norm_label": "is_creation_blocked()"
},
{
@@ -55413,7 +57123,7 @@
"source_file": "src/exlab_wizard/api/setup.py",
"source_location": "L181",
"id": "api_setup_setup_state_gate",
- "community": 7,
+ "community": 331,
"norm_label": "setup_state_gate()"
},
{
@@ -55422,7 +57132,7 @@
"source_file": "src/exlab_wizard/api/setup.py",
"source_location": "L216",
"id": "api_setup_build_setup_router",
- "community": 7,
+ "community": 94,
"norm_label": "build_setup_router()"
},
{
@@ -55431,7 +57141,7 @@
"source_file": "src/exlab_wizard/api/setup.py",
"source_location": "L301",
"id": "api_setup_coerce_probe_dict",
- "community": 7,
+ "community": 112,
"norm_label": "_coerce_probe_dict()"
},
{
@@ -55440,7 +57150,7 @@
"source_file": "src/exlab_wizard/api/setup.py",
"source_location": "L318",
"id": "api_setup_resolve_equipment",
- "community": 7,
+ "community": 112,
"norm_label": "_resolve_equipment()"
},
{
@@ -55449,7 +57159,7 @@
"source_file": "src/exlab_wizard/api/setup.py",
"source_location": "L337",
"id": "api_setup_await_or_call",
- "community": 7,
+ "community": 112,
"norm_label": "_await_or_call()"
},
{
@@ -55458,7 +57168,7 @@
"source_file": "src/exlab_wizard/api/setup.py",
"source_location": "L1",
"id": "api_setup_rationale_1",
- "community": 7,
+ "community": 112,
"norm_label": "setup-state gate + ``/setup/*`` endpoints. backend spec \u00a74.6, \u00a74.9. two respons"
},
{
@@ -55467,7 +57177,7 @@
"source_file": "src/exlab_wizard/api/setup.py",
"source_location": "L72",
"id": "api_setup_rationale_72",
- "community": 7,
+ "community": 112,
"norm_label": "``get /setup/status`` response. backend spec \u00a74.9.3."
},
{
@@ -55476,7 +57186,7 @@
"source_file": "src/exlab_wizard/api/setup.py",
"source_location": "L83",
"id": "api_setup_rationale_83",
- "community": 7,
+ "community": 112,
"norm_label": "``post /setup/test-lims`` request body. either reference the currently-conf"
},
{
@@ -55485,7 +57195,7 @@
"source_file": "src/exlab_wizard/api/setup.py",
"source_location": "L99",
"id": "api_setup_rationale_99",
- "community": 7,
+ "community": 112,
"norm_label": "``post /setup/test-equipment`` request body. rclone-only nas sync migration"
},
{
@@ -55494,7 +57204,7 @@
"source_file": "src/exlab_wizard/api/setup.py",
"source_location": "L115",
"id": "api_setup_rationale_115",
- "community": 7,
+ "community": 112,
"norm_label": "common ``ok``/``reason`` payload for the diagnostics endpoints."
},
{
@@ -55503,7 +57213,7 @@
"source_file": "src/exlab_wizard/api/setup.py",
"source_location": "L133",
"id": "api_setup_rationale_133",
- "community": 7,
+ "community": 112,
"norm_label": "``post /setup/autostart`` request body. backend spec \u00a74.9.5 step 0."
},
{
@@ -55512,7 +57222,7 @@
"source_file": "src/exlab_wizard/api/setup.py",
"source_location": "L141",
"id": "api_setup_rationale_141",
- "community": 7,
+ "community": 112,
"norm_label": "``post /setup/autostart`` response."
},
{
@@ -55521,7 +57231,7 @@
"source_file": "src/exlab_wizard/api/setup.py",
"source_location": "L155",
"id": "api_setup_rationale_155",
- "community": 1,
+ "community": 95,
"norm_label": "evaluate the \u00a74.9.1 state for the app's current dependencies. the dependenc"
},
{
@@ -55530,7 +57240,7 @@
"source_file": "src/exlab_wizard/api/setup.py",
"source_location": "L172",
"id": "api_setup_rationale_172",
- "community": 7,
+ "community": 331,
"norm_label": "return true when ``state`` should gate creation flows. per \u00a74.9.4 the soft"
},
{
@@ -55539,7 +57249,7 @@
"source_file": "src/exlab_wizard/api/setup.py",
"source_location": "L182",
"id": "api_setup_rationale_182",
- "community": 7,
+ "community": 331,
"norm_label": "fastapi dependency that gates a route on setup state. looks up the app's bo"
},
{
@@ -55548,7 +57258,7 @@
"source_file": "src/exlab_wizard/api/setup.py",
"source_location": "L217",
"id": "api_setup_rationale_217",
- "community": 7,
+ "community": 94,
"norm_label": "construct the ``/setup/*`` router. always-available endpoints."
},
{
@@ -55557,7 +57267,7 @@
"source_file": "src/exlab_wizard/api/setup.py",
"source_location": "L302",
"id": "api_setup_rationale_302",
- "community": 7,
+ "community": 112,
"norm_label": "build a ``proberesult`` from a probe's plain-dict return value. wired throu"
},
{
@@ -55566,7 +57276,7 @@
"source_file": "src/exlab_wizard/api/setup.py",
"source_location": "L319",
"id": "api_setup_rationale_319",
- "community": 7,
+ "community": 112,
"norm_label": "resolve the equipment to probe by id through ``deps.config``. rclone-only n"
},
{
@@ -55575,7 +57285,7 @@
"source_file": "src/exlab_wizard/api/setup.py",
"source_location": "L338",
"id": "api_setup_rationale_338",
- "community": 7,
+ "community": 112,
"norm_label": "invoke a probe that may be sync or async; await the result. the probes are"
},
{
@@ -55584,7 +57294,7 @@
"source_file": "src/exlab_wizard/api/schemas.py",
"source_location": "L1",
"id": "src_exlab_wizard_api_schemas_py",
- "community": 9,
+ "community": 0,
"norm_label": "schemas.py"
},
{
@@ -55611,7 +57321,7 @@
"source_file": "src/exlab_wizard/api/schemas.py",
"source_location": "L118",
"id": "api_schemas_pluginisolation",
- "community": 9,
+ "community": 10,
"norm_label": "pluginisolation"
},
{
@@ -55620,7 +57330,7 @@
"source_file": "src/exlab_wizard/api/schemas.py",
"source_location": "L130",
"id": "api_schemas_pluginapplied",
- "community": 9,
+ "community": 25,
"norm_label": "pluginapplied"
},
{
@@ -55638,7 +57348,7 @@
"source_file": "src/exlab_wizard/api/schemas.py",
"source_location": "L159",
"id": "api_schemas_orchestratorblock",
- "community": 9,
+ "community": 25,
"norm_label": "orchestratorblock"
},
{
@@ -55647,7 +57357,7 @@
"source_file": "src/exlab_wizard/api/schemas.py",
"source_location": "L190",
"id": "api_schemas_overrideentry",
- "community": 128,
+ "community": 0,
"norm_label": "overrideentry"
},
{
@@ -55656,7 +57366,7 @@
"source_file": "src/exlab_wizard/api/schemas.py",
"source_location": "L212",
"id": "api_schemas_tombstoneentry",
- "community": 229,
+ "community": 0,
"norm_label": "tombstoneentry"
},
{
@@ -55665,7 +57375,7 @@
"source_file": "src/exlab_wizard/api/schemas.py",
"source_location": "L232",
"id": "api_schemas_override_entry_to_dict",
- "community": 128,
+ "community": 152,
"norm_label": "override_entry_to_dict()"
},
{
@@ -55674,7 +57384,7 @@
"source_file": "src/exlab_wizard/api/schemas.py",
"source_location": "L242",
"id": "api_schemas_tombstone_entry_to_dict",
- "community": 128,
+ "community": 152,
"norm_label": "tombstone_entry_to_dict()"
},
{
@@ -55683,7 +57393,7 @@
"source_file": "src/exlab_wizard/api/schemas.py",
"source_location": "L249",
"id": "api_schemas_parse_validation_override_entry",
- "community": 34,
+ "community": 42,
"norm_label": "parse_validation_override_entry()"
},
{
@@ -55701,7 +57411,7 @@
"source_file": "src/exlab_wizard/api/schemas.py",
"source_location": "L309",
"id": "api_schemas_readmefieldsjson",
- "community": 180,
+ "community": 224,
"norm_label": "readmefieldsjson"
},
{
@@ -55710,7 +57420,7 @@
"source_file": "src/exlab_wizard/api/schemas.py",
"source_location": "L330",
"id": "api_schemas_equipmentjson",
- "community": 9,
+ "community": 10,
"norm_label": "equipmentjson"
},
{
@@ -55719,7 +57429,7 @@
"source_file": "src/exlab_wizard/api/schemas.py",
"source_location": "L351",
"id": "api_schemas_testrunsjson",
- "community": 229,
+ "community": 38,
"norm_label": "testrunsjson"
},
{
@@ -55728,7 +57438,7 @@
"source_file": "src/exlab_wizard/api/schemas.py",
"source_location": "L1",
"id": "api_schemas_rationale_1",
- "community": 9,
+ "community": 0,
"norm_label": "msgspec.struct types for the exlab-wizard cache files. this module is the singl"
},
{
@@ -55755,7 +57465,7 @@
"source_file": "src/exlab_wizard/api/schemas.py",
"source_location": "L123",
"id": "api_schemas_rationale_123",
- "community": 9,
+ "community": 10,
"norm_label": "plugin worker isolation telemetry. spec \u00a76.2.4 / \u00a711.3 (added 1.3)."
},
{
@@ -55764,7 +57474,7 @@
"source_file": "src/exlab_wizard/api/schemas.py",
"source_location": "L135",
"id": "api_schemas_rationale_135",
- "community": 9,
+ "community": 25,
"norm_label": "per-plugin invocation record written into ``plugins_applied``. spec \u00a76.2.4"
},
{
@@ -55782,7 +57492,7 @@
"source_file": "src/exlab_wizard/api/schemas.py",
"source_location": "L164",
"id": "api_schemas_rationale_164",
- "community": 9,
+ "community": 25,
"norm_label": "orchestrator-mode metadata. spec \u00a711.3 / \u00a713 / redesign spec \u00a73.3. always p"
},
{
@@ -55791,7 +57501,7 @@
"source_file": "src/exlab_wizard/api/schemas.py",
"source_location": "L195",
"id": "api_schemas_rationale_195",
- "community": 128,
+ "community": 0,
"norm_label": "operator-recorded validation override entry. spec \u00a711.3. ``revoked`` is ``f"
},
{
@@ -55800,7 +57510,7 @@
"source_file": "src/exlab_wizard/api/schemas.py",
"source_location": "L217",
"id": "api_schemas_rationale_217",
- "community": 229,
+ "community": 0,
"norm_label": "tombstone entry that revokes a prior override by ``id``. spec \u00a711.3. ``revo"
},
{
@@ -55809,7 +57519,7 @@
"source_file": "src/exlab_wizard/api/schemas.py",
"source_location": "L233",
"id": "api_schemas_rationale_233",
- "community": 128,
+ "community": 152,
"norm_label": "serialize an ``overrideentry`` to a wire-form dict. uses ``msgspec.structs."
},
{
@@ -55818,7 +57528,7 @@
"source_file": "src/exlab_wizard/api/schemas.py",
"source_location": "L243",
"id": "api_schemas_rationale_243",
- "community": 128,
+ "community": 152,
"norm_label": "serialize a ``tombstoneentry`` to a wire-form dict. mirrors ``override_entry"
},
{
@@ -55827,7 +57537,7 @@
"source_file": "src/exlab_wizard/api/schemas.py",
"source_location": "L252",
"id": "api_schemas_rationale_252",
- "community": 34,
+ "community": 42,
"norm_label": "inspect ``entry[\"revoked\"]`` and ``entry[\"revokes\"]`` to decide which struct"
},
{
@@ -55845,7 +57555,7 @@
"source_file": "src/exlab_wizard/api/schemas.py",
"source_location": "L314",
"id": "api_schemas_rationale_314",
- "community": 180,
+ "community": 224,
"norm_label": "``readme_fields.json`` at schema version 1.1. spec \u00a711.4."
},
{
@@ -55854,7 +57564,7 @@
"source_file": "src/exlab_wizard/api/schemas.py",
"source_location": "L335",
"id": "api_schemas_rationale_335",
- "community": 9,
+ "community": 10,
"norm_label": "``equipment.json`` at schema version 1.0. spec \u00a711.4.1."
},
{
@@ -55863,7 +57573,7 @@
"source_file": "src/exlab_wizard/api/schemas.py",
"source_location": "L356",
"id": "api_schemas_rationale_356",
- "community": 229,
+ "community": 38,
"norm_label": "``test_runs.json`` marker at schema version 1.0. spec \u00a711.4.2. filename ret"
},
{
@@ -55872,7 +57582,7 @@
"source_file": "src/exlab_wizard/api/app.py",
"source_location": "L1",
"id": "src_exlab_wizard_api_app_py",
- "community": 51,
+ "community": 67,
"norm_label": "app.py"
},
{
@@ -55881,7 +57591,7 @@
"source_file": "src/exlab_wizard/api/app.py",
"source_location": "L77",
"id": "api_app_auditchannel",
- "community": 51,
+ "community": 67,
"norm_label": "auditchannel"
},
{
@@ -55890,7 +57600,7 @@
"source_file": "src/exlab_wizard/api/app.py",
"source_location": "L85",
"id": "api_app_auditchannel_init",
- "community": 51,
+ "community": 67,
"norm_label": ".__init__()"
},
{
@@ -55899,7 +57609,7 @@
"source_file": "src/exlab_wizard/api/app.py",
"source_location": "L89",
"id": "api_app_auditchannel_subscribe",
- "community": 51,
+ "community": 67,
"norm_label": ".subscribe()"
},
{
@@ -55908,7 +57618,7 @@
"source_file": "src/exlab_wizard/api/app.py",
"source_location": "L97",
"id": "api_app_auditchannel_publish_snapshot",
- "community": 51,
+ "community": 67,
"norm_label": ".publish_snapshot()"
},
{
@@ -55917,7 +57627,7 @@
"source_file": "src/exlab_wizard/api/app.py",
"source_location": "L106",
"id": "api_app_auditchannel_publish_delta",
- "community": 51,
+ "community": 67,
"norm_label": ".publish_delta()"
},
{
@@ -55926,7 +57636,7 @@
"source_file": "src/exlab_wizard/api/app.py",
"source_location": "L123",
"id": "api_app_auditchannel_broadcast",
- "community": 51,
+ "community": 67,
"norm_label": "._broadcast()"
},
{
@@ -55935,7 +57645,7 @@
"source_file": "src/exlab_wizard/api/app.py",
"source_location": "L128",
"id": "api_app_auditchannel_close",
- "community": 51,
+ "community": 67,
"norm_label": ".close()"
},
{
@@ -55944,7 +57654,7 @@
"source_file": "src/exlab_wizard/api/app.py",
"source_location": "L136",
"id": "api_app_drain",
- "community": 51,
+ "community": 67,
"norm_label": "_drain()"
},
{
@@ -55953,7 +57663,7 @@
"source_file": "src/exlab_wizard/api/app.py",
"source_location": "L152",
"id": "api_app_finding_to_dict",
- "community": 51,
+ "community": 67,
"norm_label": "_finding_to_dict()"
},
{
@@ -55962,7 +57672,7 @@
"source_file": "src/exlab_wizard/api/app.py",
"source_location": "L167",
"id": "api_app_appdependencies",
- "community": 1,
+ "community": 95,
"norm_label": "appdependencies"
},
{
@@ -55971,7 +57681,7 @@
"source_file": "src/exlab_wizard/api/app.py",
"source_location": "L258",
"id": "api_app_create_app",
- "community": 1,
+ "community": 94,
"norm_label": "create_app()"
},
{
@@ -55980,7 +57690,7 @@
"source_file": "src/exlab_wizard/api/app.py",
"source_location": "L343",
"id": "api_app_audit_loop",
- "community": 51,
+ "community": 67,
"norm_label": "_audit_loop()"
},
{
@@ -55989,7 +57699,7 @@
"source_file": "src/exlab_wizard/api/app.py",
"source_location": "L385",
"id": "api_app_diff_findings",
- "community": 51,
+ "community": 67,
"norm_label": "_diff_findings()"
},
{
@@ -55998,7 +57708,7 @@
"source_file": "src/exlab_wizard/api/app.py",
"source_location": "L1",
"id": "api_app_rationale_1",
- "community": 51,
+ "community": 67,
"norm_label": "fastapi app + lifespan + dependency wiring. backend spec \u00a74.6. the :func:`creat"
},
{
@@ -56007,7 +57717,7 @@
"source_file": "src/exlab_wizard/api/app.py",
"source_location": "L78",
"id": "api_app_rationale_78",
- "community": 51,
+ "community": 67,
"norm_label": "multi-subscriber pub-sub for the problems websocket. backend spec \u00a74.6.2. s"
},
{
@@ -56016,7 +57726,7 @@
"source_file": "src/exlab_wizard/api/app.py",
"source_location": "L90",
"id": "api_app_rationale_90",
- "community": 51,
+ "community": 67,
"norm_label": "return an async iterator that yields every published frame."
},
{
@@ -56025,7 +57735,7 @@
"source_file": "src/exlab_wizard/api/app.py",
"source_location": "L129",
"id": "api_app_rationale_129",
- "community": 51,
+ "community": 67,
"norm_label": "close every subscriber's queue. idempotent."
},
{
@@ -56034,7 +57744,7 @@
"source_file": "src/exlab_wizard/api/app.py",
"source_location": "L140",
"id": "api_app_rationale_140",
- "community": 51,
+ "community": 67,
"norm_label": "yield from the subscriber queue until a sentinel arrives."
},
{
@@ -56043,7 +57753,7 @@
"source_file": "src/exlab_wizard/api/app.py",
"source_location": "L153",
"id": "api_app_rationale_153",
- "community": 51,
+ "community": 67,
"norm_label": "best-effort serialize a finding-like object to dict."
},
{
@@ -56052,7 +57762,7 @@
"source_file": "src/exlab_wizard/api/app.py",
"source_location": "L168",
"id": "api_app_rationale_168",
- "community": 1,
+ "community": 95,
"norm_label": "bundle of live components the api surface dispatches to. production wiring"
},
{
@@ -56061,7 +57771,7 @@
"source_file": "src/exlab_wizard/api/app.py",
"source_location": "L265",
"id": "api_app_rationale_265",
- "community": 1,
+ "community": 94,
"norm_label": "build the fastapi app. backend spec \u00a74.6. ``config``: optional pre-loaded `"
},
{
@@ -56070,7 +57780,7 @@
"source_file": "src/exlab_wizard/api/app.py",
"source_location": "L344",
"id": "api_app_rationale_344",
- "community": 51,
+ "community": 67,
"norm_label": "background task that re-runs the validator audit every interval. diffs the"
},
{
@@ -56079,7 +57789,7 @@
"source_file": "src/exlab_wizard/api/app.py",
"source_location": "L388",
"id": "api_app_rationale_388",
- "community": 51,
+ "community": 67,
"norm_label": "return ``(added, removed, changed)`` keyed on ``(rule, offending_path)``. t"
},
{
@@ -56088,7 +57798,7 @@
"source_file": "src/exlab_wizard/api/errors.py",
"source_location": "L1",
"id": "src_exlab_wizard_api_errors_py",
- "community": 30,
+ "community": 31,
"norm_label": "errors.py"
},
{
@@ -56097,7 +57807,7 @@
"source_file": "src/exlab_wizard/api/errors.py",
"source_location": "L96",
"id": "api_errors_extract_or_create_trace_id",
- "community": 30,
+ "community": 31,
"norm_label": "extract_or_create_trace_id()"
},
{
@@ -56106,7 +57816,7 @@
"source_file": "src/exlab_wizard/api/errors.py",
"source_location": "L110",
"id": "api_errors_build_error_envelope",
- "community": 30,
+ "community": 31,
"norm_label": "build_error_envelope()"
},
{
@@ -56115,7 +57825,7 @@
"source_file": "src/exlab_wizard/api/errors.py",
"source_location": "L140",
"id": "api_errors_error_response",
- "community": 30,
+ "community": 31,
"norm_label": "error_response()"
},
{
@@ -56124,7 +57834,7 @@
"source_file": "src/exlab_wizard/api/errors.py",
"source_location": "L175",
"id": "api_errors_exlab_validation_handler",
- "community": 30,
+ "community": 31,
"norm_label": "_exlab_validation_handler()"
},
{
@@ -56133,7 +57843,7 @@
"source_file": "src/exlab_wizard/api/errors.py",
"source_location": "L197",
"id": "api_errors_pydantic_validation_handler",
- "community": 30,
+ "community": 31,
"norm_label": "_pydantic_validation_handler()"
},
{
@@ -56142,7 +57852,7 @@
"source_file": "src/exlab_wizard/api/errors.py",
"source_location": "L228",
"id": "api_errors_pydantic_error_to_dict",
- "community": 30,
+ "community": 31,
"norm_label": "_pydantic_error_to_dict()"
},
{
@@ -56151,7 +57861,7 @@
"source_file": "src/exlab_wizard/api/errors.py",
"source_location": "L237",
"id": "api_errors_config_error_handler",
- "community": 30,
+ "community": 31,
"norm_label": "_config_error_handler()"
},
{
@@ -56160,7 +57870,7 @@
"source_file": "src/exlab_wizard/api/errors.py",
"source_location": "L246",
"id": "api_errors_keyring_unavailable_handler",
- "community": 30,
+ "community": 31,
"norm_label": "_keyring_unavailable_handler()"
},
{
@@ -56169,7 +57879,7 @@
"source_file": "src/exlab_wizard/api/errors.py",
"source_location": "L255",
"id": "api_errors_schema_major_mismatch_handler",
- "community": 30,
+ "community": 31,
"norm_label": "_schema_major_mismatch_handler()"
},
{
@@ -56178,7 +57888,7 @@
"source_file": "src/exlab_wizard/api/errors.py",
"source_location": "L265",
"id": "api_errors_setup_incomplete_handler",
- "community": 30,
+ "community": 31,
"norm_label": "_setup_incomplete_handler()"
},
{
@@ -56187,7 +57897,7 @@
"source_file": "src/exlab_wizard/api/errors.py",
"source_location": "L289",
"id": "api_errors_template_load_error_handler",
- "community": 30,
+ "community": 31,
"norm_label": "_template_load_error_handler()"
},
{
@@ -56196,7 +57906,7 @@
"source_file": "src/exlab_wizard/api/errors.py",
"source_location": "L303",
"id": "api_errors_http_exception_handler",
- "community": 30,
+ "community": 31,
"norm_label": "_http_exception_handler()"
},
{
@@ -56205,7 +57915,7 @@
"source_file": "src/exlab_wizard/api/errors.py",
"source_location": "L336",
"id": "api_errors_status_to_code",
- "community": 30,
+ "community": 31,
"norm_label": "_status_to_code()"
},
{
@@ -56214,7 +57924,7 @@
"source_file": "src/exlab_wizard/api/errors.py",
"source_location": "L349",
"id": "api_errors_generic_handler",
- "community": 30,
+ "community": 31,
"norm_label": "_generic_handler()"
},
{
@@ -56223,7 +57933,7 @@
"source_file": "src/exlab_wizard/api/errors.py",
"source_location": "L368",
"id": "api_errors_register_exception_handlers",
- "community": 30,
+ "community": 31,
"norm_label": "register_exception_handlers()"
},
{
@@ -56232,7 +57942,7 @@
"source_file": "src/exlab_wizard/api/errors.py",
"source_location": "L395",
"id": "api_errors_register",
- "community": 30,
+ "community": 31,
"norm_label": "_register()"
},
{
@@ -56241,7 +57951,7 @@
"source_file": "src/exlab_wizard/api/errors.py",
"source_location": "L1",
"id": "api_errors_rationale_1",
- "community": 30,
+ "community": 31,
"norm_label": "error envelope helpers + fastapi exception handlers. backend spec \u00a74.6.3. every"
},
{
@@ -56250,7 +57960,7 @@
"source_file": "src/exlab_wizard/api/errors.py",
"source_location": "L97",
"id": "api_errors_rationale_97",
- "community": 30,
+ "community": 31,
"norm_label": "return the request's ``x-trace-id`` header, else a fresh hex id. server-gen"
},
{
@@ -56259,7 +57969,7 @@
"source_file": "src/exlab_wizard/api/errors.py",
"source_location": "L118",
"id": "api_errors_rationale_118",
- "community": 30,
+ "community": 31,
"norm_label": "build the \u00a74.6.3 envelope dict. ``code`` is validated against :data:`error_"
},
{
@@ -56268,7 +57978,7 @@
"source_file": "src/exlab_wizard/api/errors.py",
"source_location": "L150",
"id": "api_errors_rationale_150",
- "community": 30,
+ "community": 31,
"norm_label": "build a fastapi jsonresponse carrying the \u00a74.6.3 envelope. ``extra`` is mer"
},
{
@@ -56277,7 +57987,7 @@
"source_file": "src/exlab_wizard/api/errors.py",
"source_location": "L176",
"id": "api_errors_rationale_176",
- "community": 30,
+ "community": 31,
"norm_label": "translate :class:`exlab_wizard.errors.validationerror` to envelope. the con"
},
{
@@ -56286,7 +57996,7 @@
"source_file": "src/exlab_wizard/api/errors.py",
"source_location": "L200",
"id": "api_errors_rationale_200",
- "community": 30,
+ "community": 31,
"norm_label": "translate pydantic validation errors to the \u00a74.6.3 envelope. fastapi raises"
},
{
@@ -56295,7 +58005,7 @@
"source_file": "src/exlab_wizard/api/errors.py",
"source_location": "L229",
"id": "api_errors_rationale_229",
- "community": 30,
+ "community": 31,
"norm_label": "strip pydantic error dicts of unhashable / large fields."
},
{
@@ -56304,7 +58014,7 @@
"source_file": "src/exlab_wizard/api/errors.py",
"source_location": "L266",
"id": "api_errors_rationale_266",
- "community": 30,
+ "community": 31,
"norm_label": "translate :class:`setupincompleteerror` to the \u00a74.9.2 envelope. the control"
},
{
@@ -56313,7 +58023,7 @@
"source_file": "src/exlab_wizard/api/errors.py",
"source_location": "L304",
"id": "api_errors_rationale_304",
- "community": 30,
+ "community": 31,
"norm_label": "translate an :class:`httpexception` into the \u00a74.6.3 envelope. routers raise"
},
{
@@ -56322,7 +58032,7 @@
"source_file": "src/exlab_wizard/api/errors.py",
"source_location": "L337",
"id": "api_errors_rationale_337",
- "community": 30,
+ "community": 31,
"norm_label": "best-effort default code for a bare ``httpexception``."
},
{
@@ -56331,7 +58041,7 @@
"source_file": "src/exlab_wizard/api/errors.py",
"source_location": "L350",
"id": "api_errors_rationale_350",
- "community": 30,
+ "community": 31,
"norm_label": "catch-all 500 handler. backend spec \u00a74.6.3 last paragraph. the exception's"
},
{
@@ -56340,7 +58050,7 @@
"source_file": "src/exlab_wizard/api/errors.py",
"source_location": "L369",
"id": "api_errors_rationale_369",
- "community": 30,
+ "community": 31,
"norm_label": "attach the \u00a74.6.3 envelope handlers to a fastapi app. registered in priorit"
},
{
@@ -56349,7 +58059,7 @@
"source_file": "src/exlab_wizard/api/errors.py",
"source_location": "L400",
"id": "api_errors_rationale_400",
- "community": 30,
+ "community": 31,
"norm_label": "wrap ``app.add_exception_handler`` so the handler is accepted as ``any``. s"
},
{
@@ -56358,7 +58068,7 @@
"source_file": "src/exlab_wizard/api/routers/browse.py",
"source_location": "L1",
"id": "src_exlab_wizard_api_routers_browse_py",
- "community": 25,
+ "community": 16,
"norm_label": "browse.py"
},
{
@@ -56367,7 +58077,7 @@
"source_file": "src/exlab_wizard/api/routers/browse.py",
"source_location": "L67",
"id": "routers_browse_runnode",
- "community": 7,
+ "community": 16,
"norm_label": "runnode"
},
{
@@ -56376,7 +58086,7 @@
"source_file": "src/exlab_wizard/api/routers/browse.py",
"source_location": "L77",
"id": "routers_browse_projectnode",
- "community": 7,
+ "community": 16,
"norm_label": "projectnode"
},
{
@@ -56385,7 +58095,7 @@
"source_file": "src/exlab_wizard/api/routers/browse.py",
"source_location": "L91",
"id": "routers_browse_equipmentnode",
- "community": 25,
+ "community": 16,
"norm_label": "equipmentnode"
},
{
@@ -56394,7 +58104,7 @@
"source_file": "src/exlab_wizard/api/routers/browse.py",
"source_location": "L109",
"id": "routers_browse_relayequipmentnode",
- "community": 25,
+ "community": 16,
"norm_label": "relayequipmentnode"
},
{
@@ -56403,7 +58113,7 @@
"source_file": "src/exlab_wizard/api/routers/browse.py",
"source_location": "L125",
"id": "routers_browse_treeresponse",
- "community": 7,
+ "community": 0,
"norm_label": "treeresponse"
},
{
@@ -56430,7 +58140,7 @@
"source_file": "src/exlab_wizard/api/routers/browse.py",
"source_location": "L165",
"id": "routers_browse_rundetail",
- "community": 7,
+ "community": 0,
"norm_label": "rundetail"
},
{
@@ -56439,7 +58149,7 @@
"source_file": "src/exlab_wizard/api/routers/browse.py",
"source_location": "L180",
"id": "routers_browse_runlogentry",
- "community": 25,
+ "community": 16,
"norm_label": "runlogentry"
},
{
@@ -56448,7 +58158,7 @@
"source_file": "src/exlab_wizard/api/routers/browse.py",
"source_location": "L199",
"id": "routers_browse_runlogresponse",
- "community": 7,
+ "community": 6,
"norm_label": "runlogresponse"
},
{
@@ -56457,7 +58167,7 @@
"source_file": "src/exlab_wizard/api/routers/browse.py",
"source_location": "L214",
"id": "routers_browse_build_browse_router",
- "community": 25,
+ "community": 16,
"norm_label": "build_browse_router()"
},
{
@@ -56466,7 +58176,7 @@
"source_file": "src/exlab_wizard/api/routers/browse.py",
"source_location": "L341",
"id": "routers_browse_run_log_from_queue",
- "community": 25,
+ "community": 16,
"norm_label": "_run_log_from_queue()"
},
{
@@ -56475,7 +58185,7 @@
"source_file": "src/exlab_wizard/api/routers/browse.py",
"source_location": "L375",
"id": "routers_browse_path_is_under_allowed_root",
- "community": 25,
+ "community": 16,
"norm_label": "_path_is_under_allowed_root()"
},
{
@@ -56484,7 +58194,7 @@
"source_file": "src/exlab_wizard/api/routers/browse.py",
"source_location": "L405",
"id": "routers_browse_build_equipment_node",
- "community": 25,
+ "community": 16,
"norm_label": "_build_equipment_node()"
},
{
@@ -56493,7 +58203,7 @@
"source_file": "src/exlab_wizard/api/routers/browse.py",
"source_location": "L420",
"id": "routers_browse_build_received_equipment_nodes",
- "community": 25,
+ "community": 16,
"norm_label": "build_received_equipment_nodes()"
},
{
@@ -56502,7 +58212,7 @@
"source_file": "src/exlab_wizard/api/routers/browse.py",
"source_location": "L463",
"id": "routers_browse_relay_label_from_first_run",
- "community": 25,
+ "community": 16,
"norm_label": "_relay_label_from_first_run()"
},
{
@@ -56511,7 +58221,7 @@
"source_file": "src/exlab_wizard/api/routers/browse.py",
"source_location": "L494",
"id": "routers_browse_find_run_root",
- "community": 25,
+ "community": 16,
"norm_label": "_find_run_root()"
},
{
@@ -56520,7 +58230,7 @@
"source_file": "src/exlab_wizard/api/routers/browse.py",
"source_location": "L515",
"id": "routers_browse_read_sync_state",
- "community": 25,
+ "community": 16,
"norm_label": "_read_sync_state()"
},
{
@@ -56529,7 +58239,7 @@
"source_file": "src/exlab_wizard/api/routers/browse.py",
"source_location": "L531",
"id": "routers_browse_file_state_from_record",
- "community": 25,
+ "community": 16,
"norm_label": "_file_state_from_record()"
},
{
@@ -56538,7 +58248,7 @@
"source_file": "src/exlab_wizard/api/routers/browse.py",
"source_location": "L550",
"id": "routers_browse_per_file_sync_status",
- "community": 25,
+ "community": 16,
"norm_label": "_per_file_sync_status()"
},
{
@@ -56547,7 +58257,7 @@
"source_file": "src/exlab_wizard/api/routers/browse.py",
"source_location": "L571",
"id": "routers_browse_run_relative_posix",
- "community": 25,
+ "community": 16,
"norm_label": "_run_relative_posix()"
},
{
@@ -56556,7 +58266,7 @@
"source_file": "src/exlab_wizard/api/routers/browse.py",
"source_location": "L579",
"id": "routers_browse_iter_run_or_project_subdirs",
- "community": 25,
+ "community": 16,
"norm_label": "_iter_run_or_project_subdirs()"
},
{
@@ -56565,7 +58275,7 @@
"source_file": "src/exlab_wizard/api/routers/browse.py",
"source_location": "L602",
"id": "routers_browse_scan_projects",
- "community": 25,
+ "community": 16,
"norm_label": "_scan_projects()"
},
{
@@ -56574,7 +58284,7 @@
"source_file": "src/exlab_wizard/api/routers/browse.py",
"source_location": "L610",
"id": "routers_browse_build_project_node",
- "community": 25,
+ "community": 16,
"norm_label": "_build_project_node()"
},
{
@@ -56583,7 +58293,7 @@
"source_file": "src/exlab_wizard/api/routers/browse.py",
"source_location": "L639",
"id": "routers_browse_scan_run_children",
- "community": 25,
+ "community": 16,
"norm_label": "_scan_run_children()"
},
{
@@ -56592,7 +58302,7 @@
"source_file": "src/exlab_wizard/api/routers/browse.py",
"source_location": "L652",
"id": "routers_browse_build_run_node",
- "community": 25,
+ "community": 16,
"norm_label": "_build_run_node()"
},
{
@@ -56601,7 +58311,7 @@
"source_file": "src/exlab_wizard/api/routers/browse.py",
"source_location": "L675",
"id": "routers_browse_run_rollup_status",
- "community": 25,
+ "community": 16,
"norm_label": "_run_rollup_status()"
},
{
@@ -56610,7 +58320,7 @@
"source_file": "src/exlab_wizard/api/routers/browse.py",
"source_location": "L696",
"id": "routers_browse_read_readme",
- "community": 25,
+ "community": 16,
"norm_label": "_read_readme()"
},
{
@@ -56619,7 +58329,7 @@
"source_file": "src/exlab_wizard/api/routers/browse.py",
"source_location": "L712",
"id": "routers_browse_scan_folder_sync",
- "community": 25,
+ "community": 16,
"norm_label": "scan_folder_sync()"
},
{
@@ -56628,7 +58338,7 @@
"source_file": "src/exlab_wizard/api/routers/browse.py",
"source_location": "L808",
"id": "routers_browse_tombstone_entries",
- "community": 25,
+ "community": 16,
"norm_label": "_tombstone_entries()"
},
{
@@ -56637,7 +58347,7 @@
"source_file": "src/exlab_wizard/api/routers/browse.py",
"source_location": "L853",
"id": "routers_browse_build_hierarchy_dict",
- "community": 25,
+ "community": 16,
"norm_label": "build_hierarchy_dict()"
},
{
@@ -56646,7 +58356,7 @@
"source_file": "src/exlab_wizard/api/routers/browse.py",
"source_location": "L887",
"id": "routers_browse_projects_for_ui_tree",
- "community": 25,
+ "community": 16,
"norm_label": "_projects_for_ui_tree()"
},
{
@@ -56655,7 +58365,7 @@
"source_file": "src/exlab_wizard/api/routers/browse.py",
"source_location": "L1",
"id": "routers_browse_rationale_1",
- "community": 25,
+ "community": 16,
"norm_label": "``/tree`` and ``/run/{path}`` browse endpoints. backend spec \u00a74.6.1. two endpoi"
},
{
@@ -56664,7 +58374,7 @@
"source_file": "src/exlab_wizard/api/routers/browse.py",
"source_location": "L92",
"id": "routers_browse_rationale_92",
- "community": 25,
+ "community": 16,
"norm_label": "an owned-equipment node in the tree (redesign \u00a73.3). ``sync_mode`` (\"nas\" |"
},
{
@@ -56673,7 +58383,7 @@
"source_file": "src/exlab_wizard/api/routers/browse.py",
"source_location": "L110",
"id": "routers_browse_rationale_110",
- "community": 25,
+ "community": 16,
"norm_label": "a received-equipment node auto-discovered from the staging area. redesign \u00a7"
},
{
@@ -56700,7 +58410,7 @@
"source_file": "src/exlab_wizard/api/routers/browse.py",
"source_location": "L181",
"id": "routers_browse_rationale_181",
- "community": 25,
+ "community": 16,
"norm_label": "one row in the ``get /run/{path}/log`` response. the orchestrator does not"
},
{
@@ -56709,7 +58419,7 @@
"source_file": "src/exlab_wizard/api/routers/browse.py",
"source_location": "L200",
"id": "routers_browse_rationale_200",
- "community": 7,
+ "community": 6,
"norm_label": "``get /run/{path}/log`` response (redesign \u00a74.6 view-log surface)."
},
{
@@ -56718,7 +58428,7 @@
"source_file": "src/exlab_wizard/api/routers/browse.py",
"source_location": "L215",
"id": "routers_browse_rationale_215",
- "community": 25,
+ "community": 16,
"norm_label": "construct the ``/tree`` + ``/run`` router."
},
{
@@ -56727,7 +58437,7 @@
"source_file": "src/exlab_wizard/api/routers/browse.py",
"source_location": "L342",
"id": "routers_browse_rationale_342",
- "community": 25,
+ "community": 16,
"norm_label": "derive a run's per-run log from its sync-queue job. returns ``(history, cur"
},
{
@@ -56736,7 +58446,7 @@
"source_file": "src/exlab_wizard/api/routers/browse.py",
"source_location": "L376",
"id": "routers_browse_rationale_376",
- "community": 25,
+ "community": 16,
"norm_label": "return true if ``path`` is under any of the configured roots. redesign \u00a75 /"
},
{
@@ -56745,7 +58455,7 @@
"source_file": "src/exlab_wizard/api/routers/browse.py",
"source_location": "L421",
"id": "routers_browse_rationale_421",
- "community": 25,
+ "community": 16,
"norm_label": "walk the staging root and surface received-equipment nodes. redesign \u00a73.3:"
},
{
@@ -56754,7 +58464,7 @@
"source_file": "src/exlab_wizard/api/routers/browse.py",
"source_location": "L464",
"id": "routers_browse_rationale_464",
- "community": 25,
+ "community": 16,
"norm_label": "best-effort: read the first creation.json under this equipment to pick up th"
},
{
@@ -56763,7 +58473,7 @@
"source_file": "src/exlab_wizard/api/routers/browse.py",
"source_location": "L495",
"id": "routers_browse_rationale_495",
- "community": 25,
+ "community": 16,
"norm_label": "walk up from ``folder`` to the nearest run directory, or ``none``. a run di"
},
{
@@ -56772,7 +58482,7 @@
"source_file": "src/exlab_wizard/api/routers/browse.py",
"source_location": "L516",
"id": "routers_browse_rationale_516",
- "community": 25,
+ "community": 16,
"norm_label": "read a run's ``sync_state.json`` via :class:`syncstatewriter`. returns the"
},
{
@@ -56781,7 +58491,7 @@
"source_file": "src/exlab_wizard/api/routers/browse.py",
"source_location": "L532",
"id": "routers_browse_rationale_532",
- "community": 25,
+ "community": 16,
"norm_label": "map a ``sync_state.json`` record + on-disk presence to a gui state. the fiv"
},
{
@@ -56790,7 +58500,7 @@
"source_file": "src/exlab_wizard/api/routers/browse.py",
"source_location": "L551",
"id": "routers_browse_rationale_551",
- "community": 25,
+ "community": 16,
"norm_label": "return the per-file gui sync state for a folder-list row. operator-free per"
},
{
@@ -56799,7 +58509,7 @@
"source_file": "src/exlab_wizard/api/routers/browse.py",
"source_location": "L572",
"id": "routers_browse_rationale_572",
- "community": 25,
+ "community": 16,
"norm_label": "return ``path`` relative to ``run_root`` as a posix string, or ``none``."
},
{
@@ -56808,7 +58518,7 @@
"source_file": "src/exlab_wizard/api/routers/browse.py",
"source_location": "L580",
"id": "routers_browse_rationale_580",
- "community": 25,
+ "community": 16,
"norm_label": "return name-sorted real subdirectories of ``parent``, sans the cache. hides"
},
{
@@ -56817,7 +58527,7 @@
"source_file": "src/exlab_wizard/api/routers/browse.py",
"source_location": "L603",
"id": "routers_browse_rationale_603",
- "community": 25,
+ "community": 16,
"norm_label": "return a sorted list of project nodes under an equipment dir."
},
{
@@ -56826,7 +58536,7 @@
"source_file": "src/exlab_wizard/api/routers/browse.py",
"source_location": "L653",
"id": "routers_browse_rationale_653",
- "community": 25,
+ "community": 16,
"norm_label": "build a tree run node, deriving its rollup from ``sync_state.json``. operat"
},
{
@@ -56835,7 +58545,7 @@
"source_file": "src/exlab_wizard/api/routers/browse.py",
"source_location": "L676",
"id": "routers_browse_rationale_676",
- "community": 25,
+ "community": 16,
"norm_label": "return a run's derived ``runsyncstate`` rollup value, or ``none``. reads ``"
},
{
@@ -56844,7 +58554,7 @@
"source_file": "src/exlab_wizard/api/routers/browse.py",
"source_location": "L697",
"id": "routers_browse_rationale_697",
- "community": 25,
+ "community": 16,
"norm_label": "return the run's readme.md text, or ``none`` if absent / unreadable."
},
{
@@ -56853,7 +58563,7 @@
"source_file": "src/exlab_wizard/api/routers/browse.py",
"source_location": "L713",
"id": "routers_browse_rationale_713",
- "community": 25,
+ "community": 16,
"norm_label": "synchronous core of the ``get /folder/{path}`` endpoint. extracted so the n"
},
{
@@ -56862,7 +58572,7 @@
"source_file": "src/exlab_wizard/api/routers/browse.py",
"source_location": "L814",
"id": "routers_browse_rationale_814",
- "community": 25,
+ "community": 16,
"norm_label": "build \"on nas\" tombstone rows for cleared-run files absent on disk. operato"
},
{
@@ -56871,7 +58581,7 @@
"source_file": "src/exlab_wizard/api/routers/browse.py",
"source_location": "L854",
"id": "routers_browse_rationale_854",
- "community": 25,
+ "community": 16,
"norm_label": "compose the nested hierarchy dict that ``ui.components.tree.build_tree`` expects"
},
{
@@ -56880,7 +58590,7 @@
"source_file": "src/exlab_wizard/api/routers/sessions.py",
"source_location": "L1",
"id": "src_exlab_wizard_api_routers_sessions_py",
- "community": 16,
+ "community": 53,
"norm_label": "sessions.py"
},
{
@@ -56889,7 +58599,7 @@
"source_file": "src/exlab_wizard/api/routers/sessions.py",
"source_location": "L63",
"id": "routers_sessions_projectsessionbody",
- "community": 16,
+ "community": 53,
"norm_label": "_projectsessionbody"
},
{
@@ -56898,7 +58608,7 @@
"source_file": "src/exlab_wizard/api/routers/sessions.py",
"source_location": "L83",
"id": "routers_sessions_runsessionbody",
- "community": 16,
+ "community": 53,
"norm_label": "_runsessionbody"
},
{
@@ -56907,7 +58617,7 @@
"source_file": "src/exlab_wizard/api/routers/sessions.py",
"source_location": "L105",
"id": "routers_sessions_sessionhandleresponse",
- "community": 16,
+ "community": 53,
"norm_label": "sessionhandleresponse"
},
{
@@ -56916,7 +58626,7 @@
"source_file": "src/exlab_wizard/api/routers/sessions.py",
"source_location": "L119",
"id": "routers_sessions_resumebody",
- "community": 16,
+ "community": 53,
"norm_label": "_resumebody"
},
{
@@ -56925,7 +58635,7 @@
"source_file": "src/exlab_wizard/api/routers/sessions.py",
"source_location": "L127",
"id": "routers_sessions_cancelbody",
- "community": 16,
+ "community": 53,
"norm_label": "_cancelbody"
},
{
@@ -56934,7 +58644,7 @@
"source_file": "src/exlab_wizard/api/routers/sessions.py",
"source_location": "L140",
"id": "routers_sessions_build_sessions_router",
- "community": 16,
+ "community": 94,
"norm_label": "build_sessions_router()"
},
{
@@ -56943,7 +58653,7 @@
"source_file": "src/exlab_wizard/api/routers/sessions.py",
"source_location": "L284",
"id": "routers_sessions_build_project_request",
- "community": 16,
+ "community": 53,
"norm_label": "_build_project_request()"
},
{
@@ -56952,7 +58662,7 @@
"source_file": "src/exlab_wizard/api/routers/sessions.py",
"source_location": "L297",
"id": "routers_sessions_build_run_request",
- "community": 16,
+ "community": 53,
"norm_label": "_build_run_request()"
},
{
@@ -56961,7 +58671,7 @@
"source_file": "src/exlab_wizard/api/routers/sessions.py",
"source_location": "L316",
"id": "routers_sessions_handle_to_response",
- "community": 16,
+ "community": 53,
"norm_label": "_handle_to_response()"
},
{
@@ -56970,7 +58680,7 @@
"source_file": "src/exlab_wizard/api/routers/sessions.py",
"source_location": "L336",
"id": "routers_sessions_stream_session_events",
- "community": 16,
+ "community": 64,
"norm_label": "_stream_session_events()"
},
{
@@ -56979,7 +58689,7 @@
"source_file": "src/exlab_wizard/api/routers/sessions.py",
"source_location": "L1",
"id": "routers_sessions_rationale_1",
- "community": 16,
+ "community": 53,
"norm_label": "``/sessions`` router. backend spec \u00a74.6.1, \u00a74.6.2. endpoints: * ``post /sessio"
},
{
@@ -56988,7 +58698,7 @@
"source_file": "src/exlab_wizard/api/routers/sessions.py",
"source_location": "L64",
"id": "routers_sessions_rationale_64",
- "community": 16,
+ "community": 53,
"norm_label": "body for a project-creation session. the ``kind`` discriminator selects thi"
},
{
@@ -56997,7 +58707,7 @@
"source_file": "src/exlab_wizard/api/routers/sessions.py",
"source_location": "L84",
"id": "routers_sessions_rationale_84",
- "community": 16,
+ "community": 53,
"norm_label": "body for a run / test-run creation session."
},
{
@@ -57006,7 +58716,7 @@
"source_file": "src/exlab_wizard/api/routers/sessions.py",
"source_location": "L106",
"id": "routers_sessions_rationale_106",
- "community": 16,
+ "community": 53,
"norm_label": "response shape for the create / status endpoints."
},
{
@@ -57015,7 +58725,7 @@
"source_file": "src/exlab_wizard/api/routers/sessions.py",
"source_location": "L120",
"id": "routers_sessions_rationale_120",
- "community": 16,
+ "community": 53,
"norm_label": "``post /sessions/{id}/resume`` body."
},
{
@@ -57024,7 +58734,7 @@
"source_file": "src/exlab_wizard/api/routers/sessions.py",
"source_location": "L128",
"id": "routers_sessions_rationale_128",
- "community": 16,
+ "community": 53,
"norm_label": "``post /sessions/{id}/cancel`` body."
},
{
@@ -57033,7 +58743,7 @@
"source_file": "src/exlab_wizard/api/routers/sessions.py",
"source_location": "L141",
"id": "routers_sessions_rationale_141",
- "community": 16,
+ "community": 94,
"norm_label": "construct the ``/sessions`` router. routes are gated by the setup-state dep"
},
{
@@ -57042,7 +58752,7 @@
"source_file": "src/exlab_wizard/api/routers/sessions.py",
"source_location": "L317",
"id": "routers_sessions_rationale_317",
- "community": 16,
+ "community": 53,
"norm_label": "build the response model from a controller :class:`sessionhandle` and the live s"
},
{
@@ -57051,7 +58761,7 @@
"source_file": "src/exlab_wizard/api/routers/sessions.py",
"source_location": "L341",
"id": "routers_sessions_rationale_341",
- "community": 16,
+ "community": 64,
"norm_label": "pump events from the controller's queue into the websocket. each frame from"
},
{
@@ -57060,7 +58770,7 @@
"source_file": "src/exlab_wizard/api/routers/config.py",
"source_location": "L1",
"id": "src_exlab_wizard_api_routers_config_py",
- "community": 352,
+ "community": 426,
"norm_label": "config.py"
},
{
@@ -57087,7 +58797,7 @@
"source_file": "src/exlab_wizard/api/routers/config.py",
"source_location": "L74",
"id": "routers_config_build_config_router",
- "community": 352,
+ "community": 94,
"norm_label": "build_config_router()"
},
{
@@ -57096,7 +58806,7 @@
"source_file": "src/exlab_wizard/api/routers/config.py",
"source_location": "L163",
"id": "routers_config_await_or_call",
- "community": 352,
+ "community": 426,
"norm_label": "_await_or_call()"
},
{
@@ -57105,7 +58815,7 @@
"source_file": "src/exlab_wizard/api/routers/config.py",
"source_location": "L171",
"id": "routers_config_apply_live_config",
- "community": 97,
+ "community": 101,
"norm_label": "_apply_live_config()"
},
{
@@ -57114,7 +58824,7 @@
"source_file": "src/exlab_wizard/api/routers/config.py",
"source_location": "L1",
"id": "routers_config_rationale_1",
- "community": 352,
+ "community": 426,
"norm_label": "``/config`` router. backend spec \u00a74.6.1, \u00a74.9. endpoints: * ``get /config`` --"
},
{
@@ -57141,7 +58851,7 @@
"source_file": "src/exlab_wizard/api/routers/config.py",
"source_location": "L75",
"id": "routers_config_rationale_75",
- "community": 352,
+ "community": 94,
"norm_label": "construct the ``/config`` router. routes are always available."
},
{
@@ -57150,7 +58860,7 @@
"source_file": "src/exlab_wizard/api/routers/config.py",
"source_location": "L164",
"id": "routers_config_rationale_164",
- "community": 352,
+ "community": 426,
"norm_label": "invoke a saver that may be sync or async."
},
{
@@ -57159,7 +58869,7 @@
"source_file": "src/exlab_wizard/api/routers/config.py",
"source_location": "L172",
"id": "routers_config_rationale_172",
- "community": 97,
+ "community": 101,
"norm_label": "push ``cfg`` into the running components, then keep it as the live config."
},
{
@@ -57168,7 +58878,7 @@
"source_file": "src/exlab_wizard/api/routers/__init__.py",
"source_location": "L1",
"id": "src_exlab_wizard_api_routers_init_py",
- "community": 525,
+ "community": 548,
"norm_label": "__init__.py"
},
{
@@ -57177,7 +58887,7 @@
"source_file": "src/exlab_wizard/api/routers/__init__.py",
"source_location": "L1",
"id": "routers_init_rationale_1",
- "community": 525,
+ "community": 548,
"norm_label": "api routers package. backend spec \u00a74."
},
{
@@ -57186,7 +58896,7 @@
"source_file": "src/exlab_wizard/api/routers/operations.py",
"source_location": "L1",
"id": "src_exlab_wizard_api_routers_operations_py",
- "community": 288,
+ "community": 290,
"norm_label": "operations.py"
},
{
@@ -57195,7 +58905,7 @@
"source_file": "src/exlab_wizard/api/routers/operations.py",
"source_location": "L36",
"id": "routers_operations_operationentry",
- "community": 288,
+ "community": 290,
"norm_label": "operationentry"
},
{
@@ -57204,7 +58914,7 @@
"source_file": "src/exlab_wizard/api/routers/operations.py",
"source_location": "L51",
"id": "routers_operations_operationsresponse",
- "community": 288,
+ "community": 290,
"norm_label": "operationsresponse"
},
{
@@ -57213,7 +58923,7 @@
"source_file": "src/exlab_wizard/api/routers/operations.py",
"source_location": "L59",
"id": "routers_operations_build_operations_router",
- "community": 288,
+ "community": 290,
"norm_label": "build_operations_router()"
},
{
@@ -57222,7 +58932,7 @@
"source_file": "src/exlab_wizard/api/routers/operations.py",
"source_location": "L89",
"id": "routers_operations_session_to_entry",
- "community": 288,
+ "community": 290,
"norm_label": "_session_to_entry()"
},
{
@@ -57231,7 +58941,7 @@
"source_file": "src/exlab_wizard/api/routers/operations.py",
"source_location": "L1",
"id": "routers_operations_rationale_1",
- "community": 288,
+ "community": 290,
"norm_label": "``/operations`` router. backend spec \u00a74.6.1, frontend \u00a79.5. lists all in-flight"
},
{
@@ -57240,7 +58950,7 @@
"source_file": "src/exlab_wizard/api/routers/operations.py",
"source_location": "L37",
"id": "routers_operations_rationale_37",
- "community": 288,
+ "community": 290,
"norm_label": "one row in the operations panel. backend spec \u00a74.6.1, frontend \u00a79.5."
},
{
@@ -57249,7 +58959,7 @@
"source_file": "src/exlab_wizard/api/routers/operations.py",
"source_location": "L52",
"id": "routers_operations_rationale_52",
- "community": 288,
+ "community": 290,
"norm_label": "``get /operations`` response."
},
{
@@ -57258,7 +58968,7 @@
"source_file": "src/exlab_wizard/api/routers/operations.py",
"source_location": "L60",
"id": "routers_operations_rationale_60",
- "community": 288,
+ "community": 290,
"norm_label": "construct the ``/operations`` router."
},
{
@@ -57267,7 +58977,7 @@
"source_file": "src/exlab_wizard/api/routers/problems.py",
"source_location": "L1",
"id": "src_exlab_wizard_api_routers_problems_py",
- "community": 127,
+ "community": 0,
"norm_label": "problems.py"
},
{
@@ -57276,7 +58986,7 @@
"source_file": "src/exlab_wizard/api/routers/problems.py",
"source_location": "L67",
"id": "routers_problems_findingresponse",
- "community": 127,
+ "community": 0,
"norm_label": "findingresponse"
},
{
@@ -57285,7 +58995,7 @@
"source_file": "src/exlab_wizard/api/routers/problems.py",
"source_location": "L83",
"id": "routers_problems_problemsresponse",
- "community": 127,
+ "community": 0,
"norm_label": "problemsresponse"
},
{
@@ -57294,7 +59004,7 @@
"source_file": "src/exlab_wizard/api/routers/problems.py",
"source_location": "L92",
"id": "routers_problems_overriderequest",
- "community": 127,
+ "community": 0,
"norm_label": "overriderequest"
},
{
@@ -57303,7 +59013,7 @@
"source_file": "src/exlab_wizard/api/routers/problems.py",
"source_location": "L103",
"id": "routers_problems_overrideresponse",
- "community": 127,
+ "community": 0,
"norm_label": "overrideresponse"
},
{
@@ -57312,7 +59022,7 @@
"source_file": "src/exlab_wizard/api/routers/problems.py",
"source_location": "L117",
"id": "routers_problems_revokerequest",
- "community": 127,
+ "community": 0,
"norm_label": "revokerequest"
},
{
@@ -57321,7 +59031,7 @@
"source_file": "src/exlab_wizard/api/routers/problems.py",
"source_location": "L127",
"id": "routers_problems_tombstoneresponse",
- "community": 127,
+ "community": 0,
"norm_label": "tombstoneresponse"
},
{
@@ -57330,7 +59040,7 @@
"source_file": "src/exlab_wizard/api/routers/problems.py",
"source_location": "L138",
"id": "routers_problems_refreshresponse",
- "community": 127,
+ "community": 0,
"norm_label": "refreshresponse"
},
{
@@ -57339,7 +59049,7 @@
"source_file": "src/exlab_wizard/api/routers/problems.py",
"source_location": "L152",
"id": "routers_problems_build_problems_router",
- "community": 127,
+ "community": 94,
"norm_label": "build_problems_router()"
},
{
@@ -57348,7 +59058,7 @@
"source_file": "src/exlab_wizard/api/routers/problems.py",
"source_location": "L292",
"id": "routers_problems_build_scope",
- "community": 398,
+ "community": 29,
"norm_label": "_build_scope()"
},
{
@@ -57357,7 +59067,7 @@
"source_file": "src/exlab_wizard/api/routers/problems.py",
"source_location": "L321",
"id": "routers_problems_matches_filters",
- "community": 127,
+ "community": 0,
"norm_label": "_matches_filters()"
},
{
@@ -57366,7 +59076,7 @@
"source_file": "src/exlab_wizard/api/routers/problems.py",
"source_location": "L327",
"id": "routers_problems_last_audit_at",
- "community": 123,
+ "community": 25,
"norm_label": "_last_audit_at()"
},
{
@@ -57375,7 +59085,7 @@
"source_file": "src/exlab_wizard/api/routers/problems.py",
"source_location": "L334",
"id": "routers_problems_require_validator",
- "community": 127,
+ "community": 82,
"norm_label": "_require_validator()"
},
{
@@ -57384,7 +59094,7 @@
"source_file": "src/exlab_wizard/api/routers/problems.py",
"source_location": "L348",
"id": "routers_problems_require_cache_writer",
- "community": 127,
+ "community": 82,
"norm_label": "_require_cache_writer()"
},
{
@@ -57393,7 +59103,7 @@
"source_file": "src/exlab_wizard/api/routers/problems.py",
"source_location": "L362",
"id": "routers_problems_require_creation_json",
- "community": 127,
+ "community": 16,
"norm_label": "_require_creation_json()"
},
{
@@ -57402,7 +59112,7 @@
"source_file": "src/exlab_wizard/api/routers/problems.py",
"source_location": "L381",
"id": "routers_problems_stream_audit_channel",
- "community": 16,
+ "community": 64,
"norm_label": "_stream_audit_channel()"
},
{
@@ -57411,7 +59121,7 @@
"source_file": "src/exlab_wizard/api/routers/problems.py",
"source_location": "L1",
"id": "routers_problems_rationale_1",
- "community": 127,
+ "community": 0,
"norm_label": "``/problems`` router. backend spec \u00a74.6.1, \u00a711.8. endpoints: * ``get /problems"
},
{
@@ -57420,7 +59130,7 @@
"source_file": "src/exlab_wizard/api/routers/problems.py",
"source_location": "L68",
"id": "routers_problems_rationale_68",
- "community": 127,
+ "community": 0,
"norm_label": "one finding row in the \u00a711.8 schema."
},
{
@@ -57429,7 +59139,7 @@
"source_file": "src/exlab_wizard/api/routers/problems.py",
"source_location": "L84",
"id": "routers_problems_rationale_84",
- "community": 127,
+ "community": 0,
"norm_label": "``get /problems`` response."
},
{
@@ -57438,7 +59148,7 @@
"source_file": "src/exlab_wizard/api/routers/problems.py",
"source_location": "L93",
"id": "routers_problems_rationale_93",
- "community": 127,
+ "community": 0,
"norm_label": "``post /problems/{run_path}/override`` body. backend spec \u00a711.3."
},
{
@@ -57447,7 +59157,7 @@
"source_file": "src/exlab_wizard/api/routers/problems.py",
"source_location": "L104",
"id": "routers_problems_rationale_104",
- "community": 127,
+ "community": 0,
"norm_label": "override append response."
},
{
@@ -57456,7 +59166,7 @@
"source_file": "src/exlab_wizard/api/routers/problems.py",
"source_location": "L118",
"id": "routers_problems_rationale_118",
- "community": 127,
+ "community": 0,
"norm_label": "``post /problems/{run_path}/override/revoke`` body. backend spec \u00a711.3."
},
{
@@ -57465,7 +59175,7 @@
"source_file": "src/exlab_wizard/api/routers/problems.py",
"source_location": "L139",
"id": "routers_problems_rationale_139",
- "community": 127,
+ "community": 0,
"norm_label": "``post /problems/refresh`` response."
},
{
@@ -57474,7 +59184,7 @@
"source_file": "src/exlab_wizard/api/routers/problems.py",
"source_location": "L153",
"id": "routers_problems_rationale_153",
- "community": 127,
+ "community": 94,
"norm_label": "construct the ``/problems`` router."
},
{
@@ -57483,7 +59193,7 @@
"source_file": "src/exlab_wizard/api/routers/problems.py",
"source_location": "L363",
"id": "routers_problems_rationale_363",
- "community": 127,
+ "community": 16,
"norm_label": "resolve a ``run_path`` to its ``creation.json`` or raise 404. used by the o"
},
{
@@ -57492,7 +59202,7 @@
"source_file": "src/exlab_wizard/api/routers/problems.py",
"source_location": "L382",
"id": "routers_problems_rationale_382",
- "community": 16,
+ "community": 64,
"norm_label": "forward each delta frame the audit channel publishes. the channel exposes a"
},
{
@@ -57501,7 +59211,7 @@
"source_file": "src/exlab_wizard/api/routers/staging.py",
"source_location": "L1",
"id": "src_exlab_wizard_api_routers_staging_py",
- "community": 7,
+ "community": 6,
"norm_label": "staging.py"
},
{
@@ -57510,7 +59220,7 @@
"source_file": "src/exlab_wizard/api/routers/staging.py",
"source_location": "L59",
"id": "routers_staging_stagedrunrow",
- "community": 7,
+ "community": 6,
"norm_label": "stagedrunrow"
},
{
@@ -57519,7 +59229,7 @@
"source_file": "src/exlab_wizard/api/routers/staging.py",
"source_location": "L75",
"id": "routers_staging_staginglistresponse",
- "community": 7,
+ "community": 6,
"norm_label": "staginglistresponse"
},
{
@@ -57528,7 +59238,7 @@
"source_file": "src/exlab_wizard/api/routers/staging.py",
"source_location": "L83",
"id": "routers_staging_forcesyncresponse",
- "community": 7,
+ "community": 6,
"norm_label": "forcesyncresponse"
},
{
@@ -57537,7 +59247,7 @@
"source_file": "src/exlab_wizard/api/routers/staging.py",
"source_location": "L93",
"id": "routers_staging_clearresponse",
- "community": 7,
+ "community": 6,
"norm_label": "clearresponse"
},
{
@@ -57546,7 +59256,7 @@
"source_file": "src/exlab_wizard/api/routers/staging.py",
"source_location": "L103",
"id": "routers_staging_clearverifiedresponse",
- "community": 7,
+ "community": 6,
"norm_label": "clearverifiedresponse"
},
{
@@ -57555,7 +59265,7 @@
"source_file": "src/exlab_wizard/api/routers/staging.py",
"source_location": "L111",
"id": "routers_staging_keeplocalrequest",
- "community": 7,
+ "community": 6,
"norm_label": "keeplocalrequest"
},
{
@@ -57564,7 +59274,7 @@
"source_file": "src/exlab_wizard/api/routers/staging.py",
"source_location": "L126",
"id": "routers_staging_keeplocalresponse",
- "community": 7,
+ "community": 6,
"norm_label": "keeplocalresponse"
},
{
@@ -57573,7 +59283,7 @@
"source_file": "src/exlab_wizard/api/routers/staging.py",
"source_location": "L141",
"id": "routers_staging_build_staging_router",
- "community": 7,
+ "community": 94,
"norm_label": "build_staging_router()"
},
{
@@ -57582,7 +59292,7 @@
"source_file": "src/exlab_wizard/api/routers/staging.py",
"source_location": "L315",
"id": "routers_staging_row_from_summary",
- "community": 7,
+ "community": 6,
"norm_label": "_row_from_summary()"
},
{
@@ -57591,7 +59301,7 @@
"source_file": "src/exlab_wizard/api/routers/staging.py",
"source_location": "L329",
"id": "routers_staging_is_real_run",
- "community": 25,
+ "community": 16,
"norm_label": "_is_real_run()"
},
{
@@ -57600,7 +59310,7 @@
"source_file": "src/exlab_wizard/api/routers/staging.py",
"source_location": "L352",
"id": "routers_staging_require_config",
- "community": 7,
+ "community": 6,
"norm_label": "_require_config()"
},
{
@@ -57609,7 +59319,7 @@
"source_file": "src/exlab_wizard/api/routers/staging.py",
"source_location": "L370",
"id": "routers_staging_require_nas_sync",
- "community": 7,
+ "community": 6,
"norm_label": "_require_nas_sync()"
},
{
@@ -57618,7 +59328,7 @@
"source_file": "src/exlab_wizard/api/routers/staging.py",
"source_location": "L1",
"id": "routers_staging_rationale_1",
- "community": 7,
+ "community": 6,
"norm_label": "``/staging`` router. backend spec \u00a713.7, \u00a713.8. four endpoints back the orchest"
},
{
@@ -57627,7 +59337,7 @@
"source_file": "src/exlab_wizard/api/routers/staging.py",
"source_location": "L60",
"id": "routers_staging_rationale_60",
- "community": 7,
+ "community": 6,
"norm_label": "one staging-panel row. backend spec \u00a713.8."
},
{
@@ -57636,7 +59346,7 @@
"source_file": "src/exlab_wizard/api/routers/staging.py",
"source_location": "L76",
"id": "routers_staging_rationale_76",
- "community": 7,
+ "community": 6,
"norm_label": "``get /staging`` response."
},
{
@@ -57645,7 +59355,7 @@
"source_file": "src/exlab_wizard/api/routers/staging.py",
"source_location": "L84",
"id": "routers_staging_rationale_84",
- "community": 7,
+ "community": 6,
"norm_label": "``post /staging/{run_path}/force-sync`` response."
},
{
@@ -57654,7 +59364,7 @@
"source_file": "src/exlab_wizard/api/routers/staging.py",
"source_location": "L94",
"id": "routers_staging_rationale_94",
- "community": 7,
+ "community": 6,
"norm_label": "``post /staging/{run_path}/clear`` response."
},
{
@@ -57663,7 +59373,7 @@
"source_file": "src/exlab_wizard/api/routers/staging.py",
"source_location": "L104",
"id": "routers_staging_rationale_104",
- "community": 7,
+ "community": 6,
"norm_label": "``post /staging/clear-verified`` response (redesign \u00a74.6)."
},
{
@@ -57672,7 +59382,7 @@
"source_file": "src/exlab_wizard/api/routers/staging.py",
"source_location": "L112",
"id": "routers_staging_rationale_112",
- "community": 7,
+ "community": 6,
"norm_label": "``post /staging/{run_path}/keep-local`` request body. operator-free per-fil"
},
{
@@ -57681,7 +59391,7 @@
"source_file": "src/exlab_wizard/api/routers/staging.py",
"source_location": "L127",
"id": "routers_staging_rationale_127",
- "community": 7,
+ "community": 6,
"norm_label": "``post /staging/{run_path}/keep-local`` response."
},
{
@@ -57690,7 +59400,7 @@
"source_file": "src/exlab_wizard/api/routers/staging.py",
"source_location": "L142",
"id": "routers_staging_rationale_142",
- "community": 7,
+ "community": 94,
"norm_label": "construct the ``/staging`` router. backend spec \u00a713.7, \u00a713.8."
},
{
@@ -57699,7 +59409,7 @@
"source_file": "src/exlab_wizard/api/routers/staging.py",
"source_location": "L330",
"id": "routers_staging_rationale_330",
- "community": 25,
+ "community": 16,
"norm_label": "return true when ``run_path`` is a real run inside an allowed root. a \"real"
},
{
@@ -57708,16 +59418,70 @@
"source_file": "src/exlab_wizard/api/routers/staging.py",
"source_location": "L353",
"id": "routers_staging_rationale_353",
- "community": 7,
+ "community": 6,
"norm_label": "return the live :class:`config` or raise 503 when no config is wired. redes"
},
+ {
+ "label": "__init__.py",
+ "file_type": "code",
+ "source_file": "src/exlab_wizard/dev/__init__.py",
+ "source_location": "L1",
+ "id": "src_exlab_wizard_dev_init_py",
+ "community": 549,
+ "norm_label": "__init__.py"
+ },
+ {
+ "label": "Developer utilities. Not part of the shipped application surface. Modules here",
+ "file_type": "rationale",
+ "source_file": "src/exlab_wizard/dev/__init__.py",
+ "source_location": "L1",
+ "id": "dev_init_rationale_1",
+ "community": 549,
+ "norm_label": "developer utilities. not part of the shipped application surface. modules here"
+ },
+ {
+ "label": "seed.py",
+ "file_type": "code",
+ "source_file": "src/exlab_wizard/dev/seed.py",
+ "source_location": "L1",
+ "id": "src_exlab_wizard_dev_seed_py",
+ "community": 239,
+ "norm_label": "seed.py"
+ },
+ {
+ "label": "main()",
+ "file_type": "code",
+ "source_file": "src/exlab_wizard/dev/seed.py",
+ "source_location": "L15",
+ "id": "dev_seed_main",
+ "community": 239,
+ "norm_label": "main()"
+ },
+ {
+ "label": "Standalone sample-data seeder -- ``python -m exlab_wizard.dev.seed``. Forces th",
+ "file_type": "rationale",
+ "source_file": "src/exlab_wizard/dev/seed.py",
+ "source_location": "L1",
+ "id": "dev_seed_rationale_1",
+ "community": 239,
+ "norm_label": "standalone sample-data seeder -- ``python -m exlab_wizard.dev.seed``. forces th"
+ },
+ {
+ "label": "Regenerate the ``-test`` sample-data tree from scratch. Returns the process",
+ "file_type": "rationale",
+ "source_file": "src/exlab_wizard/dev/seed.py",
+ "source_location": "L16",
+ "id": "dev_seed_rationale_16",
+ "community": 239,
+ "norm_label": "regenerate the ``-test`` sample-data tree from scratch. returns the process"
+ },
{
"label": "queue.py",
"file_type": "code",
"source_file": "src/exlab_wizard/sync/queue.py",
"source_location": "L1",
"id": "src_exlab_wizard_sync_queue_py",
- "community": 174,
+ "community": 3,
"norm_label": "queue.py"
},
{
@@ -57726,7 +59490,7 @@
"source_file": "src/exlab_wizard/sync/queue.py",
"source_location": "L69",
"id": "sync_queue_syncjobstate",
- "community": 174,
+ "community": 3,
"norm_label": "syncjobstate"
},
{
@@ -57735,7 +59499,7 @@
"source_file": "src/exlab_wizard/sync/queue.py",
"source_location": "L116",
"id": "sync_queue_syncjobrow",
- "community": 174,
+ "community": 3,
"norm_label": "syncjobrow"
},
{
@@ -57744,7 +59508,7 @@
"source_file": "src/exlab_wizard/sync/queue.py",
"source_location": "L134",
"id": "sync_queue_decode_files",
- "community": 174,
+ "community": 3,
"norm_label": "_decode_files()"
},
{
@@ -57753,7 +59517,7 @@
"source_file": "src/exlab_wizard/sync/queue.py",
"source_location": "L151",
"id": "sync_queue_encode_files",
- "community": 98,
+ "community": 424,
"norm_label": "_encode_files()"
},
{
@@ -57762,7 +59526,7 @@
"source_file": "src/exlab_wizard/sync/queue.py",
"source_location": "L156",
"id": "sync_queue_row_to_job",
- "community": 174,
+ "community": 3,
"norm_label": "_row_to_job()"
},
{
@@ -57771,7 +59535,7 @@
"source_file": "src/exlab_wizard/sync/queue.py",
"source_location": "L175",
"id": "sync_queue_compute_next_attempt_at",
- "community": 313,
+ "community": 265,
"norm_label": "compute_next_attempt_at()"
},
{
@@ -57780,7 +59544,7 @@
"source_file": "src/exlab_wizard/sync/queue.py",
"source_location": "L190",
"id": "sync_queue_syncqueue",
- "community": 98,
+ "community": 264,
"norm_label": "syncqueue"
},
{
@@ -57789,7 +59553,7 @@
"source_file": "src/exlab_wizard/sync/queue.py",
"source_location": "L197",
"id": "sync_queue_syncqueue_init",
- "community": 98,
+ "community": 264,
"norm_label": ".__init__()"
},
{
@@ -57798,7 +59562,7 @@
"source_file": "src/exlab_wizard/sync/queue.py",
"source_location": "L202",
"id": "sync_queue_db_path",
- "community": 174,
+ "community": 3,
"norm_label": "db_path()"
},
{
@@ -57807,7 +59571,7 @@
"source_file": "src/exlab_wizard/sync/queue.py",
"source_location": "L229",
"id": "sync_queue_syncqueue_close",
- "community": 98,
+ "community": 272,
"norm_label": ".close()"
},
{
@@ -57816,7 +59580,7 @@
"source_file": "src/exlab_wizard/sync/queue.py",
"source_location": "L235",
"id": "sync_queue_syncqueue_require_conn",
- "community": 98,
+ "community": 272,
"norm_label": "._require_conn()"
},
{
@@ -57825,7 +59589,7 @@
"source_file": "src/exlab_wizard/sync/queue.py",
"source_location": "L241",
"id": "sync_queue_syncqueue_require_job",
- "community": 98,
+ "community": 312,
"norm_label": "._require_job()"
},
{
@@ -57834,7 +59598,7 @@
"source_file": "src/exlab_wizard/sync/queue.py",
"source_location": "L256",
"id": "sync_queue_syncqueue_insert",
- "community": 98,
+ "community": 424,
"norm_label": ".insert()"
},
{
@@ -57843,7 +59607,7 @@
"source_file": "src/exlab_wizard/sync/queue.py",
"source_location": "L310",
"id": "sync_queue_syncqueue_get_by_id",
- "community": 98,
+ "community": 312,
"norm_label": ".get_by_id()"
},
{
@@ -57852,7 +59616,7 @@
"source_file": "src/exlab_wizard/sync/queue.py",
"source_location": "L323",
"id": "sync_queue_syncqueue_get_by_run_path",
- "community": 98,
+ "community": 272,
"norm_label": ".get_by_run_path()"
},
{
@@ -57861,7 +59625,7 @@
"source_file": "src/exlab_wizard/sync/queue.py",
"source_location": "L336",
"id": "sync_queue_syncqueue_list_in_state",
- "community": 98,
+ "community": 272,
"norm_label": ".list_in_state()"
},
{
@@ -57870,7 +59634,7 @@
"source_file": "src/exlab_wizard/sync/queue.py",
"source_location": "L347",
"id": "sync_queue_syncqueue_list_all",
- "community": 98,
+ "community": 272,
"norm_label": ".list_all()"
},
{
@@ -57879,7 +59643,7 @@
"source_file": "src/exlab_wizard/sync/queue.py",
"source_location": "L357",
"id": "sync_queue_syncqueue_transition",
- "community": 98,
+ "community": 265,
"norm_label": ".transition()"
},
{
@@ -57888,7 +59652,7 @@
"source_file": "src/exlab_wizard/sync/queue.py",
"source_location": "L425",
"id": "sync_queue_syncqueue_record_failure",
- "community": 98,
+ "community": 265,
"norm_label": ".record_failure()"
},
{
@@ -57897,7 +59661,7 @@
"source_file": "src/exlab_wizard/sync/queue.py",
"source_location": "L475",
"id": "sync_queue_syncqueue_reset_to_queued",
- "community": 98,
+ "community": 312,
"norm_label": ".reset_to_queued()"
},
{
@@ -57906,7 +59670,7 @@
"source_file": "src/exlab_wizard/sync/queue.py",
"source_location": "L500",
"id": "sync_queue_syncqueue_requeue_with_files",
- "community": 98,
+ "community": 312,
"norm_label": ".requeue_with_files()"
},
{
@@ -57915,7 +59679,7 @@
"source_file": "src/exlab_wizard/sync/queue.py",
"source_location": "L534",
"id": "sync_queue_syncqueue_delete",
- "community": 98,
+ "community": 272,
"norm_label": ".delete()"
},
{
@@ -57924,7 +59688,7 @@
"source_file": "src/exlab_wizard/sync/queue.py",
"source_location": "L541",
"id": "sync_queue_is_terminal",
- "community": 174,
+ "community": 3,
"norm_label": "is_terminal()"
},
{
@@ -57933,7 +59697,7 @@
"source_file": "src/exlab_wizard/sync/queue.py",
"source_location": "L1",
"id": "sync_queue_rationale_1",
- "community": 174,
+ "community": 3,
"norm_label": "durable sqlite-backed sync-job queue. backend spec \u00a77.1.1, \u00a77.1.2, \u00a77.1.5. the"
},
{
@@ -57942,7 +59706,7 @@
"source_file": "src/exlab_wizard/sync/queue.py",
"source_location": "L70",
"id": "sync_queue_rationale_70",
- "community": 174,
+ "community": 3,
"norm_label": "state machine for a sync job. backend spec \u00a77.1.2."
},
{
@@ -57951,7 +59715,7 @@
"source_file": "src/exlab_wizard/sync/queue.py",
"source_location": "L117",
"id": "sync_queue_rationale_117",
- "community": 174,
+ "community": 3,
"norm_label": "one row in the ``jobs`` table. backend spec \u00a77.1.1."
},
{
@@ -57960,7 +59724,7 @@
"source_file": "src/exlab_wizard/sync/queue.py",
"source_location": "L135",
"id": "sync_queue_rationale_135",
- "community": 174,
+ "community": 3,
"norm_label": "decode the ``files`` json column into a tuple of run-relative paths. a ``nu"
},
{
@@ -57969,7 +59733,7 @@
"source_file": "src/exlab_wizard/sync/queue.py",
"source_location": "L152",
"id": "sync_queue_rationale_152",
- "community": 98,
+ "community": 424,
"norm_label": "encode a run-relative path tuple into the ``files`` json column."
},
{
@@ -57978,7 +59742,7 @@
"source_file": "src/exlab_wizard/sync/queue.py",
"source_location": "L157",
"id": "sync_queue_rationale_157",
- "community": 174,
+ "community": 3,
"norm_label": "materialize an ``aiosqlite.row`` (or tuple) into a :class:`syncjobrow`."
},
{
@@ -57987,7 +59751,7 @@
"source_file": "src/exlab_wizard/sync/queue.py",
"source_location": "L176",
"id": "sync_queue_rationale_176",
- "community": 313,
+ "community": 265,
"norm_label": "return the iso timestamp of the next retry attempt. ``attempts_after`` is t"
},
{
@@ -57996,7 +59760,7 @@
"source_file": "src/exlab_wizard/sync/queue.py",
"source_location": "L191",
"id": "sync_queue_rationale_191",
- "community": 98,
+ "community": 264,
"norm_label": "async sqlite-backed durable sync queue. backend spec \u00a77.1.1. use :meth:`ini"
},
{
@@ -58005,7 +59769,7 @@
"source_file": "src/exlab_wizard/sync/queue.py",
"source_location": "L203",
"id": "sync_queue_rationale_203",
- "community": 630,
+ "community": 655,
"norm_label": "the on-disk path of the queue database file."
},
{
@@ -58014,7 +59778,7 @@
"source_file": "src/exlab_wizard/sync/queue.py",
"source_location": "L207",
"id": "sync_queue_rationale_207",
- "community": 98,
+ "community": 264,
"norm_label": "open the connection, ensure the schema, and replay in-flight rows. repl"
},
{
@@ -58023,7 +59787,7 @@
"source_file": "src/exlab_wizard/sync/queue.py",
"source_location": "L230",
"id": "sync_queue_rationale_230",
- "community": 98,
+ "community": 272,
"norm_label": "close the underlying connection (idempotent)."
},
{
@@ -58032,7 +59796,7 @@
"source_file": "src/exlab_wizard/sync/queue.py",
"source_location": "L242",
"id": "sync_queue_rationale_242",
- "community": 98,
+ "community": 312,
"norm_label": "return the row for ``job_id`` or raise ``valueerror``. centralizes the"
},
{
@@ -58041,7 +59805,7 @@
"source_file": "src/exlab_wizard/sync/queue.py",
"source_location": "L265",
"id": "sync_queue_rationale_265",
- "community": 98,
+ "community": 424,
"norm_label": "insert a new ``queued`` row for ``run_path``. ``files`` is the per-file"
},
{
@@ -58050,7 +59814,7 @@
"source_file": "src/exlab_wizard/sync/queue.py",
"source_location": "L311",
"id": "sync_queue_rationale_311",
- "community": 98,
+ "community": 312,
"norm_label": "return the row with the given ``job_id`` or ``none``."
},
{
@@ -58059,7 +59823,7 @@
"source_file": "src/exlab_wizard/sync/queue.py",
"source_location": "L324",
"id": "sync_queue_rationale_324",
- "community": 98,
+ "community": 272,
"norm_label": "return the row whose ``run_path`` matches, or ``none``."
},
{
@@ -58068,7 +59832,7 @@
"source_file": "src/exlab_wizard/sync/queue.py",
"source_location": "L337",
"id": "sync_queue_rationale_337",
- "community": 98,
+ "community": 272,
"norm_label": "return every row currently in ``state`` ordered by ``enqueued_at``."
},
{
@@ -58077,7 +59841,7 @@
"source_file": "src/exlab_wizard/sync/queue.py",
"source_location": "L348",
"id": "sync_queue_rationale_348",
- "community": 98,
+ "community": 272,
"norm_label": "return every row in the queue ordered by ``enqueued_at``."
},
{
@@ -58086,7 +59850,7 @@
"source_file": "src/exlab_wizard/sync/queue.py",
"source_location": "L370",
"id": "sync_queue_rationale_370",
- "community": 98,
+ "community": 265,
"norm_label": "transition a job to ``new_state`` and patch the auxiliary columns. the"
},
{
@@ -58095,7 +59859,7 @@
"source_file": "src/exlab_wizard/sync/queue.py",
"source_location": "L433",
"id": "sync_queue_rationale_433",
- "community": 98,
+ "community": 265,
"norm_label": "record a transport failure on ``job_id``. if ``terminal`` is true (auth"
},
{
@@ -58104,7 +59868,7 @@
"source_file": "src/exlab_wizard/sync/queue.py",
"source_location": "L476",
"id": "sync_queue_rationale_476",
- "community": 98,
+ "community": 312,
"norm_label": "reset a ``failed`` job back to ``queued`` for a manual retry. per \u00a77.1."
},
{
@@ -58113,7 +59877,7 @@
"source_file": "src/exlab_wizard/sync/queue.py",
"source_location": "L505",
"id": "sync_queue_rationale_505",
- "community": 98,
+ "community": 312,
"norm_label": "reset a terminal job back to ``queued`` carrying a new ``files`` list."
},
{
@@ -58122,7 +59886,7 @@
"source_file": "src/exlab_wizard/sync/queue.py",
"source_location": "L535",
"id": "sync_queue_rationale_535",
- "community": 98,
+ "community": 272,
"norm_label": "remove a job row entirely. used by the cleanup reaper after cleaned."
},
{
@@ -58131,7 +59895,7 @@
"source_file": "src/exlab_wizard/sync/queue.py",
"source_location": "L542",
"id": "sync_queue_rationale_542",
- "community": 631,
+ "community": 656,
"norm_label": "return true if the state is a terminal state (no further work)."
},
{
@@ -58140,7 +59904,7 @@
"source_file": "src/exlab_wizard/sync/manifest.py",
"source_location": "L1",
"id": "src_exlab_wizard_sync_manifest_py",
- "community": 110,
+ "community": 115,
"norm_label": "manifest.py"
},
{
@@ -58149,7 +59913,7 @@
"source_file": "src/exlab_wizard/sync/manifest.py",
"source_location": "L27",
"id": "sync_manifest_remoteentry",
- "community": 110,
+ "community": 115,
"norm_label": "remoteentry"
},
{
@@ -58158,7 +59922,7 @@
"source_file": "src/exlab_wizard/sync/manifest.py",
"source_location": "L36",
"id": "sync_manifest_remotemanifest",
- "community": 110,
+ "community": 115,
"norm_label": "remotemanifest"
},
{
@@ -58167,7 +59931,7 @@
"source_file": "src/exlab_wizard/sync/manifest.py",
"source_location": "L41",
"id": "sync_manifest_remotemanifest_size_matches",
- "community": 110,
+ "community": 115,
"norm_label": ".size_matches()"
},
{
@@ -58176,7 +59940,7 @@
"source_file": "src/exlab_wizard/sync/manifest.py",
"source_location": "L46",
"id": "sync_manifest_remotemanifest_has",
- "community": 110,
+ "community": 115,
"norm_label": ".has()"
},
{
@@ -58185,7 +59949,7 @@
"source_file": "src/exlab_wizard/sync/manifest.py",
"source_location": "L50",
"id": "sync_manifest_remotemanifest_matches",
- "community": 110,
+ "community": 115,
"norm_label": ".matches()"
},
{
@@ -58194,7 +59958,7 @@
"source_file": "src/exlab_wizard/sync/manifest.py",
"source_location": "L69",
"id": "sync_manifest_to_epoch",
- "community": 110,
+ "community": 115,
"norm_label": "_to_epoch()"
},
{
@@ -58203,7 +59967,7 @@
"source_file": "src/exlab_wizard/sync/manifest.py",
"source_location": "L83",
"id": "sync_manifest_parse_lsjson",
- "community": 110,
+ "community": 115,
"norm_label": "parse_lsjson()"
},
{
@@ -58212,7 +59976,7 @@
"source_file": "src/exlab_wizard/sync/manifest.py",
"source_location": "L1",
"id": "sync_manifest_rationale_1",
- "community": 110,
+ "community": 115,
"norm_label": "parser for ``rclone lsjson`` output into a run-relative remote manifest. sole o"
},
{
@@ -58221,7 +59985,7 @@
"source_file": "src/exlab_wizard/sync/manifest.py",
"source_location": "L28",
"id": "sync_manifest_rationale_28",
- "community": 110,
+ "community": 115,
"norm_label": "one file on the remote. ``mod_time`` is the rfc3339 string as emitted."
},
{
@@ -58230,7 +59994,7 @@
"source_file": "src/exlab_wizard/sync/manifest.py",
"source_location": "L37",
"id": "sync_manifest_rationale_37",
- "community": 110,
+ "community": 115,
"norm_label": "run-relative view of a remote subtree. keyed by posix rel-path."
},
{
@@ -58239,7 +60003,7 @@
"source_file": "src/exlab_wizard/sync/manifest.py",
"source_location": "L42",
"id": "sync_manifest_rationale_42",
- "community": 110,
+ "community": 115,
"norm_label": "true iff ``rel_path`` is present and its remote size equals local."
},
{
@@ -58248,7 +60012,7 @@
"source_file": "src/exlab_wizard/sync/manifest.py",
"source_location": "L47",
"id": "sync_manifest_rationale_47",
- "community": 110,
+ "community": 115,
"norm_label": "true iff ``rel_path`` is present on the remote (existence probe)."
},
{
@@ -58257,7 +60021,7 @@
"source_file": "src/exlab_wizard/sync/manifest.py",
"source_location": "L53",
"id": "sync_manifest_rationale_53",
- "community": 110,
+ "community": 115,
"norm_label": "the single reconcile predicate: present and size-equal and modtime close."
},
{
@@ -58266,7 +60030,7 @@
"source_file": "src/exlab_wizard/sync/manifest.py",
"source_location": "L70",
"id": "sync_manifest_rationale_70",
- "community": 632,
+ "community": 657,
"norm_label": "parse an rfc3339 ``modtime`` to epoch seconds, or ``none`` if unparseable."
},
{
@@ -58275,7 +60039,7 @@
"source_file": "src/exlab_wizard/sync/manifest.py",
"source_location": "L84",
"id": "sync_manifest_rationale_84",
- "community": 110,
+ "community": 115,
"norm_label": "parse ``rclone lsjson`` array text into a :class:`remotemanifest`. director"
},
{
@@ -58284,7 +60048,7 @@
"source_file": "src/exlab_wizard/sync/nas_client.py",
"source_location": "L1",
"id": "src_exlab_wizard_sync_nas_client_py",
- "community": 53,
+ "community": 3,
"norm_label": "nas_client.py"
},
{
@@ -58293,7 +60057,7 @@
"source_file": "src/exlab_wizard/sync/nas_client.py",
"source_location": "L93",
"id": "sync_nas_client_syncjobhandle",
- "community": 174,
+ "community": 3,
"norm_label": "syncjobhandle"
},
{
@@ -58302,7 +60066,7 @@
"source_file": "src/exlab_wizard/sync/nas_client.py",
"source_location": "L112",
"id": "sync_nas_client_remote_subpath",
- "community": 53,
+ "community": 3,
"norm_label": "_remote_subpath()"
},
{
@@ -58311,7 +60075,7 @@
"source_file": "src/exlab_wizard/sync/nas_client.py",
"source_location": "L125",
"id": "sync_nas_client_build_driver",
- "community": 53,
+ "community": 3,
"norm_label": "_build_driver()"
},
{
@@ -58320,7 +60084,7 @@
"source_file": "src/exlab_wizard/sync/nas_client.py",
"source_location": "L147",
"id": "sync_nas_client_remoteresolution",
- "community": 174,
+ "community": 3,
"norm_label": "_remoteresolution"
},
{
@@ -58329,7 +60093,7 @@
"source_file": "src/exlab_wizard/sync/nas_client.py",
"source_location": "L168",
"id": "sync_nas_client_nassyncclient",
- "community": 18,
+ "community": 8,
"norm_label": "nassyncclient"
},
{
@@ -58338,7 +60102,7 @@
"source_file": "src/exlab_wizard/sync/nas_client.py",
"source_location": "L188",
"id": "sync_nas_client_nassyncclient_init",
- "community": 286,
+ "community": 8,
"norm_label": ".__init__()"
},
{
@@ -58347,7 +60111,7 @@
"source_file": "src/exlab_wizard/sync/nas_client.py",
"source_location": "L227",
"id": "sync_nas_client_nassyncclient_apply_config",
- "community": 446,
+ "community": 8,
"norm_label": ".apply_config()"
},
{
@@ -58356,7 +60120,7 @@
"source_file": "src/exlab_wizard/sync/nas_client.py",
"source_location": "L248",
"id": "sync_nas_client_nassyncclient_close",
- "community": 188,
+ "community": 3,
"norm_label": ".close()"
},
{
@@ -58365,7 +60129,7 @@
"source_file": "src/exlab_wizard/sync/nas_client.py",
"source_location": "L261",
"id": "sync_nas_client_nassyncclient_enqueue",
- "community": 272,
+ "community": 3,
"norm_label": ".enqueue()"
},
{
@@ -58374,7 +60138,7 @@
"source_file": "src/exlab_wizard/sync/nas_client.py",
"source_location": "L355",
"id": "sync_nas_client_nassyncclient_status",
- "community": 452,
+ "community": 8,
"norm_label": ".status()"
},
{
@@ -58383,7 +60147,7 @@
"source_file": "src/exlab_wizard/sync/nas_client.py",
"source_location": "L366",
"id": "sync_nas_client_nassyncclient_retry",
- "community": 450,
+ "community": 8,
"norm_label": ".retry()"
},
{
@@ -58392,7 +60156,7 @@
"source_file": "src/exlab_wizard/sync/nas_client.py",
"source_location": "L371",
"id": "sync_nas_client_nassyncclient_force_verify",
- "community": 188,
+ "community": 3,
"norm_label": ".force_verify()"
},
{
@@ -58401,7 +60165,7 @@
"source_file": "src/exlab_wizard/sync/nas_client.py",
"source_location": "L416",
"id": "sync_nas_client_nassyncclient_worker_loop",
- "community": 286,
+ "community": 8,
"norm_label": "._worker_loop()"
},
{
@@ -58410,7 +60174,7 @@
"source_file": "src/exlab_wizard/sync/nas_client.py",
"source_location": "L436",
"id": "sync_nas_client_nassyncclient_next_due_job",
- "community": 286,
+ "community": 8,
"norm_label": "._next_due_job()"
},
{
@@ -58419,7 +60183,7 @@
"source_file": "src/exlab_wizard/sync/nas_client.py",
"source_location": "L447",
"id": "sync_nas_client_nassyncclient_drive_job",
- "community": 53,
+ "community": 3,
"norm_label": "._drive_job()"
},
{
@@ -58428,7 +60192,7 @@
"source_file": "src/exlab_wizard/sync/nas_client.py",
"source_location": "L619",
"id": "sync_nas_client_nassyncclient_handle_verify_transport_error",
- "community": 53,
+ "community": 3,
"norm_label": "._handle_verify_transport_error()"
},
{
@@ -58437,7 +60201,7 @@
"source_file": "src/exlab_wizard/sync/nas_client.py",
"source_location": "L652",
"id": "sync_nas_client_nassyncclient_resolve_remote",
- "community": 53,
+ "community": 3,
"norm_label": "._resolve_remote()"
},
{
@@ -58446,7 +60210,7 @@
"source_file": "src/exlab_wizard/sync/nas_client.py",
"source_location": "L673",
"id": "sync_nas_client_nassyncclient_target_for_equipment",
- "community": 53,
+ "community": 3,
"norm_label": "._target_for_equipment()"
},
{
@@ -58455,7 +60219,7 @@
"source_file": "src/exlab_wizard/sync/nas_client.py",
"source_location": "L684",
"id": "sync_nas_client_nassyncclient_driver_for_equipment",
- "community": 53,
+ "community": 3,
"norm_label": "._driver_for_equipment()"
},
{
@@ -58464,7 +60228,7 @@
"source_file": "src/exlab_wizard/sync/nas_client.py",
"source_location": "L696",
"id": "sync_nas_client_nassyncclient_build_push",
- "community": 53,
+ "community": 3,
"norm_label": "._build_push()"
},
{
@@ -58473,7 +60237,7 @@
"source_file": "src/exlab_wizard/sync/nas_client.py",
"source_location": "L722",
"id": "sync_nas_client_nassyncclient_build_check",
- "community": 188,
+ "community": 3,
"norm_label": "._build_check()"
},
{
@@ -58482,7 +60246,7 @@
"source_file": "src/exlab_wizard/sync/nas_client.py",
"source_location": "L741",
"id": "sync_nas_client_nassyncclient_build_lsjson",
- "community": 53,
+ "community": 3,
"norm_label": "._build_lsjson()"
},
{
@@ -58491,7 +60255,7 @@
"source_file": "src/exlab_wizard/sync/nas_client.py",
"source_location": "L766",
"id": "sync_nas_client_nassyncclient_compute_local_shas",
- "community": 53,
+ "community": 3,
"norm_label": "._compute_local_shas()"
},
{
@@ -58500,7 +60264,7 @@
"source_file": "src/exlab_wizard/sync/nas_client.py",
"source_location": "L809",
"id": "sync_nas_client_nassyncclient_handle_push_failure",
- "community": 53,
+ "community": 3,
"norm_label": "._handle_push_failure()"
},
{
@@ -58509,7 +60273,7 @@
"source_file": "src/exlab_wizard/sync/nas_client.py",
"source_location": "L834",
"id": "sync_nas_client_discover_run_files",
- "community": 53,
+ "community": 3,
"norm_label": "_discover_run_files()"
},
{
@@ -58518,7 +60282,7 @@
"source_file": "src/exlab_wizard/sync/nas_client.py",
"source_location": "L859",
"id": "sync_nas_client_file_signature",
- "community": 53,
+ "community": 3,
"norm_label": "_file_signature()"
},
{
@@ -58527,7 +60291,7 @@
"source_file": "src/exlab_wizard/sync/nas_client.py",
"source_location": "L868",
"id": "sync_nas_client_write_files_from",
- "community": 188,
+ "community": 3,
"norm_label": "_write_files_from()"
},
{
@@ -58536,7 +60300,7 @@
"source_file": "src/exlab_wizard/sync/nas_client.py",
"source_location": "L887",
"id": "sync_nas_client_nassyncclient_maybe_cleanup",
- "community": 188,
+ "community": 3,
"norm_label": "._maybe_cleanup()"
},
{
@@ -58545,7 +60309,7 @@
"source_file": "src/exlab_wizard/sync/nas_client.py",
"source_location": "L988",
"id": "sync_nas_client_nassyncclient_delete_local",
- "community": 246,
+ "community": 3,
"norm_label": "._delete_local()"
},
{
@@ -58554,7 +60318,7 @@
"source_file": "src/exlab_wizard/sync/nas_client.py",
"source_location": "L1009",
"id": "sync_nas_client_nassyncclient_infer_equipment_id",
- "community": 272,
+ "community": 3,
"norm_label": "._infer_equipment_id()"
},
{
@@ -58563,7 +60327,7 @@
"source_file": "src/exlab_wizard/sync/nas_client.py",
"source_location": "L1032",
"id": "sync_nas_client_compute_nas_path",
- "community": 272,
+ "community": 3,
"norm_label": "_compute_nas_path()"
},
{
@@ -58572,7 +60336,7 @@
"source_file": "src/exlab_wizard/sync/nas_client.py",
"source_location": "L1036",
"id": "sync_nas_client_nassyncclient_mark_blocked",
- "community": 272,
+ "community": 3,
"norm_label": "._mark_blocked()"
},
{
@@ -58581,7 +60345,7 @@
"source_file": "src/exlab_wizard/sync/nas_client.py",
"source_location": "L1045",
"id": "sync_nas_client_nassyncclient_mark_synced",
- "community": 53,
+ "community": 3,
"norm_label": "._mark_synced()"
},
{
@@ -58590,7 +60354,7 @@
"source_file": "src/exlab_wizard/sync/nas_client.py",
"source_location": "L1058",
"id": "sync_nas_client_nassyncclient_mark_cleaned",
- "community": 188,
+ "community": 3,
"norm_label": "._mark_cleaned()"
},
{
@@ -58599,7 +60363,7 @@
"source_file": "src/exlab_wizard/sync/nas_client.py",
"source_location": "L1",
"id": "sync_nas_client_rationale_1",
- "community": 53,
+ "community": 3,
"norm_label": "nas sync client. backend spec \u00a77.1, \u00a77.3. the :class:`nassyncclient` is the pub"
},
{
@@ -58608,7 +60372,7 @@
"source_file": "src/exlab_wizard/sync/nas_client.py",
"source_location": "L94",
"id": "sync_nas_client_rationale_94",
- "community": 174,
+ "community": 3,
"norm_label": "lightweight handle returned by :meth:`nassyncclient.enqueue`. ``job_id`` is"
},
{
@@ -58617,7 +60381,7 @@
"source_file": "src/exlab_wizard/sync/nas_client.py",
"source_location": "L113",
"id": "sync_nas_client_rationale_113",
- "community": 53,
+ "community": 3,
"norm_label": "compose the run-relative ``//`` path. le"
},
{
@@ -58626,7 +60390,7 @@
"source_file": "src/exlab_wizard/sync/nas_client.py",
"source_location": "L126",
"id": "sync_nas_client_rationale_126",
- "community": 53,
+ "community": 3,
"norm_label": "construct a :class:`rclonedriver` for a named remote. the named remote live"
},
{
@@ -58635,7 +60399,7 @@
"source_file": "src/exlab_wizard/sync/nas_client.py",
"source_location": "L148",
"id": "sync_nas_client_rationale_148",
- "community": 174,
+ "community": 3,
"norm_label": "the ``(remote, base_root, perf)`` an equipment's ops resolve to. computed o"
},
{
@@ -58644,7 +60408,7 @@
"source_file": "src/exlab_wizard/sync/nas_client.py",
"source_location": "L169",
"id": "sync_nas_client_rationale_169",
- "community": 18,
+ "community": 8,
"norm_label": "durable, per-equipment nas sync queue with pre-sync gate. backend spec \u00a77.1"
},
{
@@ -58653,7 +60417,7 @@
"source_file": "src/exlab_wizard/sync/nas_client.py",
"source_location": "L228",
"id": "sync_nas_client_rationale_228",
- "community": 446,
+ "community": 8,
"norm_label": "swap the cached config + equipment map in place (no relaunch). the ``eq"
},
{
@@ -58662,7 +60426,7 @@
"source_file": "src/exlab_wizard/sync/nas_client.py",
"source_location": "L243",
"id": "sync_nas_client_rationale_243",
- "community": 286,
+ "community": 8,
"norm_label": "open the queue and start the worker task. backend spec \u00a77.1.2."
},
{
@@ -58671,7 +60435,7 @@
"source_file": "src/exlab_wizard/sync/nas_client.py",
"source_location": "L249",
"id": "sync_nas_client_rationale_249",
- "community": 188,
+ "community": 3,
"norm_label": "stop the worker and close the queue db. idempotent."
},
{
@@ -58680,7 +60444,7 @@
"source_file": "src/exlab_wizard/sync/nas_client.py",
"source_location": "L266",
"id": "sync_nas_client_rationale_266",
- "community": 272,
+ "community": 3,
"norm_label": "pre-sync gate -> if hard-tier finding without override, mark ``sync_stat"
},
{
@@ -58689,7 +60453,7 @@
"source_file": "src/exlab_wizard/sync/nas_client.py",
"source_location": "L356",
"id": "sync_nas_client_rationale_356",
- "community": 452,
+ "community": 8,
"norm_label": "return the queue state of the job for ``run_path``. ``\"none\"`` when no"
},
{
@@ -58698,7 +60462,7 @@
"source_file": "src/exlab_wizard/sync/nas_client.py",
"source_location": "L367",
"id": "sync_nas_client_rationale_367",
- "community": 450,
+ "community": 8,
"norm_label": "re-arm a ``failed`` job. backend spec \u00a77.1.5 (problems-tab retry)."
},
{
@@ -58707,7 +60471,7 @@
"source_file": "src/exlab_wizard/sync/nas_client.py",
"source_location": "L372",
"id": "sync_nas_client_rationale_372",
- "community": 188,
+ "community": 3,
"norm_label": "re-run ``rclone check --download`` against the configured remote. used"
},
{
@@ -58716,7 +60480,7 @@
"source_file": "src/exlab_wizard/sync/nas_client.py",
"source_location": "L417",
"id": "sync_nas_client_rationale_417",
- "community": 286,
+ "community": 8,
"norm_label": "pick the next due job and drive it through the state machine."
},
{
@@ -58725,7 +60489,7 @@
"source_file": "src/exlab_wizard/sync/nas_client.py",
"source_location": "L437",
"id": "sync_nas_client_rationale_437",
- "community": 286,
+ "community": 8,
"norm_label": "return the next queued row whose backoff has passed (or none)."
},
{
@@ -58734,7 +60498,7 @@
"source_file": "src/exlab_wizard/sync/nas_client.py",
"source_location": "L448",
"id": "sync_nas_client_rationale_448",
- "community": 53,
+ "community": 3,
"norm_label": "drive ``job`` from queued through one transport+verify pass. worker sem"
},
{
@@ -58743,7 +60507,7 @@
"source_file": "src/exlab_wizard/sync/nas_client.py",
"source_location": "L620",
"id": "sync_nas_client_rationale_620",
- "community": 53,
+ "community": 3,
"norm_label": "route a verify-phase ``transporterror`` per spec \u00a77.1.5. mirrors the pu"
},
{
@@ -58752,7 +60516,7 @@
"source_file": "src/exlab_wizard/sync/nas_client.py",
"source_location": "L653",
"id": "sync_nas_client_rationale_653",
- "community": 53,
+ "community": 3,
"norm_label": "resolve the ``(remote, base_root, perf)`` triple for ``equipment``. the"
},
{
@@ -58761,7 +60525,7 @@
"source_file": "src/exlab_wizard/sync/nas_client.py",
"source_location": "L674",
"id": "sync_nas_client_rationale_674",
- "community": 53,
+ "community": 3,
"norm_label": "compose the rclone target ``:///``. th"
},
{
@@ -58770,7 +60534,7 @@
"source_file": "src/exlab_wizard/sync/nas_client.py",
"source_location": "L685",
"id": "sync_nas_client_rationale_685",
- "community": 53,
+ "community": 3,
"norm_label": "build the :class:`rclonedriver` for ``equipment``. the perf dials come"
},
{
@@ -58779,7 +60543,7 @@
"source_file": "src/exlab_wizard/sync/nas_client.py",
"source_location": "L697",
"id": "sync_nas_client_rationale_697",
- "community": 53,
+ "community": 3,
"norm_label": "resolve the push callable for ``equipment``. tests can inject a custom"
},
{
@@ -58788,7 +60552,7 @@
"source_file": "src/exlab_wizard/sync/nas_client.py",
"source_location": "L723",
"id": "sync_nas_client_rationale_723",
- "community": 188,
+ "community": 3,
"norm_label": "resolve the ``rclone check --download`` callable for ``equipment``. tes"
},
{
@@ -58797,7 +60561,7 @@
"source_file": "src/exlab_wizard/sync/nas_client.py",
"source_location": "L742",
"id": "sync_nas_client_rationale_742",
- "community": 53,
+ "community": 3,
"norm_label": "resolve the cheap ``rclone lsjson`` reconcile probe for ``equipment``."
},
{
@@ -58806,7 +60570,7 @@
"source_file": "src/exlab_wizard/sync/nas_client.py",
"source_location": "L771",
"id": "sync_nas_client_rationale_771",
- "community": 53,
+ "community": 3,
"norm_label": "compute the sha-256 hex digest of each file in ``files``. slot a of the"
},
{
@@ -58815,7 +60579,7 @@
"source_file": "src/exlab_wizard/sync/nas_client.py",
"source_location": "L810",
"id": "sync_nas_client_rationale_810",
- "community": 53,
+ "community": 3,
"norm_label": "translate a transport failure into a queue update."
},
{
@@ -58824,7 +60588,7 @@
"source_file": "src/exlab_wizard/sync/nas_client.py",
"source_location": "L835",
"id": "sync_nas_client_rationale_835",
- "community": 633,
+ "community": 658,
"norm_label": "return every non-cache regular file under ``run_path`` as posix rel paths."
},
{
@@ -58833,7 +60597,7 @@
"source_file": "src/exlab_wizard/sync/nas_client.py",
"source_location": "L860",
"id": "sync_nas_client_rationale_860",
- "community": 634,
+ "community": 659,
"norm_label": "return the ``(st_size, st_mtime_ns)`` signature for ``path``."
},
{
@@ -58842,7 +60606,7 @@
"source_file": "src/exlab_wizard/sync/nas_client.py",
"source_location": "L869",
"id": "sync_nas_client_rationale_869",
- "community": 635,
+ "community": 660,
"norm_label": "write a transport ``--files-from`` list and return its path. one run-re"
},
{
@@ -58851,7 +60615,7 @@
"source_file": "src/exlab_wizard/sync/nas_client.py",
"source_location": "L888",
"id": "sync_nas_client_rationale_888",
- "community": 188,
+ "community": 3,
"norm_label": "apply the \u00a77.1.6 interlocks; if all pass, run the cleanup. operator-fre"
},
{
@@ -58860,7 +60624,7 @@
"source_file": "src/exlab_wizard/sync/nas_client.py",
"source_location": "L993",
"id": "sync_nas_client_rationale_993",
- "community": 246,
+ "community": 3,
"norm_label": "delete ``run_path`` data files honoring ``retain_cache`` and ``keep_local``."
},
{
@@ -58869,7 +60633,7 @@
"source_file": "src/exlab_wizard/sync/nas_client.py",
"source_location": "L1010",
"id": "sync_nas_client_rationale_1010",
- "community": 272,
+ "community": 3,
"norm_label": "return the equipment id for a run path. prefers an explicit equipment i"
},
{
@@ -58878,7 +60642,7 @@
"source_file": "src/exlab_wizard/sync/nas_client.py",
"source_location": "L1033",
"id": "sync_nas_client_rationale_1033",
- "community": 636,
+ "community": 661,
"norm_label": "return the recorded nas-side path from a creation payload."
},
{
@@ -58887,7 +60651,7 @@
"source_file": "src/exlab_wizard/sync/nas_client.py",
"source_location": "L1037",
"id": "sync_nas_client_rationale_1037",
- "community": 272,
+ "community": 3,
"norm_label": "mutate ``creation.json`` ``sync_status`` to ``blocked_by_validation``."
},
{
@@ -58896,7 +60660,7 @@
"source_file": "src/exlab_wizard/sync/nas_client.py",
"source_location": "L1046",
"id": "sync_nas_client_rationale_1046",
- "community": 53,
+ "community": 3,
"norm_label": "mutate ``creation.json`` ``sync_status`` to ``synced``. backend spec \u00a77.1.4."
},
{
@@ -58905,7 +60669,7 @@
"source_file": "src/exlab_wizard/sync/nas_client.py",
"source_location": "L1059",
"id": "sync_nas_client_rationale_1059",
- "community": 188,
+ "community": 3,
"norm_label": "mutate ``creation.json`` ``sync_status`` to ``cleaned``. backend spec \u00a77.1.10."
},
{
@@ -58914,7 +60678,7 @@
"source_file": "src/exlab_wizard/sync/__init__.py",
"source_location": "L1",
"id": "src_exlab_wizard_sync_init_py",
- "community": 445,
+ "community": 482,
"norm_label": "__init__.py"
},
{
@@ -58923,7 +60687,7 @@
"source_file": "src/exlab_wizard/sync/cleanup.py",
"source_location": "L1",
"id": "src_exlab_wizard_sync_cleanup_py",
- "community": 115,
+ "community": 120,
"norm_label": "cleanup.py"
},
{
@@ -58932,7 +60696,7 @@
"source_file": "src/exlab_wizard/sync/cleanup.py",
"source_location": "L39",
"id": "sync_cleanup_has_recent_revocation",
- "community": 115,
+ "community": 120,
"norm_label": "has_recent_revocation()"
},
{
@@ -58941,7 +60705,7 @@
"source_file": "src/exlab_wizard/sync/cleanup.py",
"source_location": "L65",
"id": "sync_cleanup_cleanup_interlocks_satisfied",
- "community": 115,
+ "community": 120,
"norm_label": "cleanup_interlocks_satisfied()"
},
{
@@ -58950,7 +60714,7 @@
"source_file": "src/exlab_wizard/sync/cleanup.py",
"source_location": "L1",
"id": "sync_cleanup_rationale_1",
- "community": 115,
+ "community": 120,
"norm_label": "cleanup safety interlocks. backend spec \u00a77.1.6. the cleanup reaper deletes loca"
},
{
@@ -58959,7 +60723,7 @@
"source_file": "src/exlab_wizard/sync/cleanup.py",
"source_location": "L45",
"id": "sync_cleanup_rationale_45",
- "community": 115,
+ "community": 120,
"norm_label": "return true if any tombstone was recorded within ``min_age_hours``. a tombs"
},
{
@@ -58968,7 +60732,7 @@
"source_file": "src/exlab_wizard/sync/cleanup.py",
"source_location": "L74",
"id": "sync_cleanup_rationale_74",
- "community": 115,
+ "community": 120,
"norm_label": "evaluate every \u00a77.1.6 interlock; return true iff all pass. logs a debug ent"
},
{
@@ -58977,7 +60741,7 @@
"source_file": "src/exlab_wizard/sync/bandwidth.py",
"source_location": "L1",
"id": "src_exlab_wizard_sync_bandwidth_py",
- "community": 80,
+ "community": 89,
"norm_label": "bandwidth.py"
},
{
@@ -58986,7 +60750,7 @@
"source_file": "src/exlab_wizard/sync/bandwidth.py",
"source_location": "L41",
"id": "sync_bandwidth_mbps_to_kibps",
- "community": 80,
+ "community": 89,
"norm_label": "mbps_to_kibps()"
},
{
@@ -58995,7 +60759,7 @@
"source_file": "src/exlab_wizard/sync/bandwidth.py",
"source_location": "L55",
"id": "sync_bandwidth_parse_hhmm",
- "community": 80,
+ "community": 89,
"norm_label": "_parse_hhmm()"
},
{
@@ -59004,7 +60768,7 @@
"source_file": "src/exlab_wizard/sync/bandwidth.py",
"source_location": "L63",
"id": "sync_bandwidth_is_window_active",
- "community": 80,
+ "community": 89,
"norm_label": "is_window_active()"
},
{
@@ -59013,7 +60777,7 @@
"source_file": "src/exlab_wizard/sync/bandwidth.py",
"source_location": "L84",
"id": "sync_bandwidth_effective_bandwidth_limit_kibps",
- "community": 80,
+ "community": 89,
"norm_label": "effective_bandwidth_limit_kibps()"
},
{
@@ -59022,7 +60786,7 @@
"source_file": "src/exlab_wizard/sync/bandwidth.py",
"source_location": "L1",
"id": "sync_bandwidth_rationale_1",
- "community": 80,
+ "community": 89,
"norm_label": "bandwidth schedule evaluator. backend spec \u00a77.1.7. the \u00a77.1.7 bandwidth limiter"
},
{
@@ -59031,7 +60795,7 @@
"source_file": "src/exlab_wizard/sync/bandwidth.py",
"source_location": "L42",
"id": "sync_bandwidth_rationale_42",
- "community": 80,
+ "community": 89,
"norm_label": "convert ``upload_mbps`` (megabits/s) into ``--bwlimit`` kib/s. per \u00a77.1.7:"
},
{
@@ -59040,7 +60804,7 @@
"source_file": "src/exlab_wizard/sync/bandwidth.py",
"source_location": "L56",
"id": "sync_bandwidth_rationale_56",
- "community": 80,
+ "community": 89,
"norm_label": "parse an ``hh:mm`` string. pydantic validated it on input; :func:`is_window_"
},
{
@@ -59049,7 +60813,7 @@
"source_file": "src/exlab_wizard/sync/bandwidth.py",
"source_location": "L64",
"id": "sync_bandwidth_rationale_64",
- "community": 80,
+ "community": 89,
"norm_label": "return true iff ``now_local`` is inside ``window``. the window is defined b"
},
{
@@ -59058,7 +60822,7 @@
"source_file": "src/exlab_wizard/sync/bandwidth.py",
"source_location": "L89",
"id": "sync_bandwidth_rationale_89",
- "community": 80,
+ "community": 89,
"norm_label": "return the effective ``--bwlimit`` in kib/s for ``now_local``. decision tre"
},
{
@@ -59067,7 +60831,7 @@
"source_file": "src/exlab_wizard/sync/pre_sync_gate.py",
"source_location": "L1",
"id": "src_exlab_wizard_sync_pre_sync_gate_py",
- "community": 179,
+ "community": 189,
"norm_label": "pre_sync_gate.py"
},
{
@@ -59076,7 +60840,7 @@
"source_file": "src/exlab_wizard/sync/pre_sync_gate.py",
"source_location": "L32",
"id": "sync_pre_sync_gate_file_names_in_run",
- "community": 179,
+ "community": 189,
"norm_label": "_file_names_in_run()"
},
{
@@ -59085,7 +60849,7 @@
"source_file": "src/exlab_wizard/sync/pre_sync_gate.py",
"source_location": "L46",
"id": "sync_pre_sync_gate_is_eligible",
- "community": 179,
+ "community": 189,
"norm_label": "is_eligible()"
},
{
@@ -59094,7 +60858,7 @@
"source_file": "src/exlab_wizard/sync/pre_sync_gate.py",
"source_location": "L1",
"id": "sync_pre_sync_gate_rationale_1",
- "community": 179,
+ "community": 189,
"norm_label": "pre-sync gate. backend spec \u00a77.3. the pre-sync gate is the contract by which va"
},
{
@@ -59103,7 +60867,7 @@
"source_file": "src/exlab_wizard/sync/pre_sync_gate.py",
"source_location": "L33",
"id": "sync_pre_sync_gate_rationale_33",
- "community": 179,
+ "community": 189,
"norm_label": "return the bare file names directly under ``run_path``. the pre-sync gate i"
},
{
@@ -59112,7 +60876,7 @@
"source_file": "src/exlab_wizard/sync/pre_sync_gate.py",
"source_location": "L52",
"id": "sync_pre_sync_gate_rationale_52",
- "community": 179,
+ "community": 189,
"norm_label": "evaluate the \u00a77.3 eligibility rule for a run. returns ``(true, [])`` iff th"
},
{
@@ -59121,7 +60885,7 @@
"source_file": "src/exlab_wizard/sync/verifier.py",
"source_location": "L1",
"id": "src_exlab_wizard_sync_verifier_py",
- "community": 265,
+ "community": 293,
"norm_label": "verifier.py"
},
{
@@ -59130,7 +60894,7 @@
"source_file": "src/exlab_wizard/sync/verifier.py",
"source_location": "L42",
"id": "sync_verifier_verifyresult",
- "community": 265,
+ "community": 3,
"norm_label": "verifyresult"
},
{
@@ -59139,7 +60903,7 @@
"source_file": "src/exlab_wizard/sync/verifier.py",
"source_location": "L72",
"id": "sync_verifier_from_check_result",
- "community": 265,
+ "community": 293,
"norm_label": "from_check_result()"
},
{
@@ -59148,7 +60912,7 @@
"source_file": "src/exlab_wizard/sync/verifier.py",
"source_location": "L93",
"id": "sync_verifier_verifier",
- "community": 265,
+ "community": 293,
"norm_label": "verifier"
},
{
@@ -59157,7 +60921,7 @@
"source_file": "src/exlab_wizard/sync/verifier.py",
"source_location": "L102",
"id": "sync_verifier_verifier_init",
- "community": 265,
+ "community": 293,
"norm_label": ".__init__()"
},
{
@@ -59166,7 +60930,7 @@
"source_file": "src/exlab_wizard/sync/verifier.py",
"source_location": "L109",
"id": "sync_verifier_verifier_verify",
- "community": 265,
+ "community": 293,
"norm_label": ".verify()"
},
{
@@ -59175,7 +60939,7 @@
"source_file": "src/exlab_wizard/sync/verifier.py",
"source_location": "L1",
"id": "sync_verifier_rationale_1",
- "community": 265,
+ "community": 293,
"norm_label": "sha-256 verifier wrapper around ``rclone check --download``. rclone-only nas sy"
},
{
@@ -59184,7 +60948,7 @@
"source_file": "src/exlab_wizard/sync/verifier.py",
"source_location": "L43",
"id": "sync_verifier_rationale_43",
- "community": 265,
+ "community": 3,
"norm_label": "outcome of one ``rclone check --download`` pass against a remote. ``ok`` is"
},
{
@@ -59193,7 +60957,7 @@
"source_file": "src/exlab_wizard/sync/verifier.py",
"source_location": "L73",
"id": "sync_verifier_rationale_73",
- "community": 637,
+ "community": 662,
"norm_label": "translate a successful ``rclone check`` into a :class:`verifyresult`. `"
},
{
@@ -59202,7 +60966,7 @@
"source_file": "src/exlab_wizard/sync/verifier.py",
"source_location": "L94",
"id": "sync_verifier_rationale_94",
- "community": 265,
+ "community": 293,
"norm_label": "verifier: ``rclone check`` wrapper, no python sha pipeline. constructed wit"
},
{
@@ -59211,7 +60975,7 @@
"source_file": "src/exlab_wizard/sync/verifier.py",
"source_location": "L116",
"id": "sync_verifier_rationale_116",
- "community": 265,
+ "community": 293,
"norm_label": "run ``rclone check --download`` over ``files_from`` and translate. rais"
},
{
@@ -59220,7 +60984,7 @@
"source_file": "src/exlab_wizard/sync/run_delete.py",
"source_location": "L1",
"id": "src_exlab_wizard_sync_run_delete_py",
- "community": 246,
+ "community": 11,
"norm_label": "run_delete.py"
},
{
@@ -59229,7 +60993,7 @@
"source_file": "src/exlab_wizard/sync/run_delete.py",
"source_location": "L38",
"id": "sync_run_delete_delete_run_files",
- "community": 246,
+ "community": 11,
"norm_label": "delete_run_files()"
},
{
@@ -59238,7 +61002,7 @@
"source_file": "src/exlab_wizard/sync/run_delete.py",
"source_location": "L94",
"id": "sync_run_delete_prune_empty_dirs",
- "community": 246,
+ "community": 11,
"norm_label": "_prune_empty_dirs()"
},
{
@@ -59247,7 +61011,7 @@
"source_file": "src/exlab_wizard/sync/run_delete.py",
"source_location": "L1",
"id": "sync_run_delete_rationale_1",
- "community": 246,
+ "community": 11,
"norm_label": "keep-local-aware, symlink-safe deletion of a run's staging copy. operator-free"
},
{
@@ -59256,7 +61020,7 @@
"source_file": "src/exlab_wizard/sync/run_delete.py",
"source_location": "L44",
"id": "sync_run_delete_rationale_44",
- "community": 246,
+ "community": 11,
"norm_label": "delete ``run_path`` data files honoring ``retain_cache`` and ``keep_local``."
},
{
@@ -59265,7 +61029,7 @@
"source_file": "src/exlab_wizard/sync/run_delete.py",
"source_location": "L95",
"id": "sync_run_delete_rationale_95",
- "community": 246,
+ "community": 11,
"norm_label": "remove now-empty real directories under ``run_path`` (deepest first). the r"
},
{
@@ -59274,7 +61038,7 @@
"source_file": "src/exlab_wizard/sync/transports/__init__.py",
"source_location": "L1",
"id": "src_exlab_wizard_sync_transports_init_py",
- "community": 90,
+ "community": 104,
"norm_label": "__init__.py"
},
{
@@ -59283,7 +61047,7 @@
"source_file": "src/exlab_wizard/sync/transports/__init__.py",
"source_location": "L21",
"id": "transports_init_transporterrorkind",
- "community": 90,
+ "community": 104,
"norm_label": "transporterrorkind"
},
{
@@ -59292,7 +61056,7 @@
"source_file": "src/exlab_wizard/sync/transports/__init__.py",
"source_location": "L45",
"id": "transports_init_transportresult",
- "community": 90,
+ "community": 104,
"norm_label": "transportresult"
},
{
@@ -59301,7 +61065,7 @@
"source_file": "src/exlab_wizard/sync/transports/__init__.py",
"source_location": "L60",
"id": "transports_init_transporterror",
- "community": 90,
+ "community": 104,
"norm_label": "transporterror"
},
{
@@ -59310,7 +61074,7 @@
"source_file": "src/exlab_wizard/sync/transports/__init__.py",
"source_location": "L80",
"id": "transports_init_transporterror_init",
- "community": 90,
+ "community": 104,
"norm_label": ".__init__()"
},
{
@@ -59319,7 +61083,7 @@
"source_file": "src/exlab_wizard/sync/transports/__init__.py",
"source_location": "L1",
"id": "transports_init_rationale_1",
- "community": 90,
+ "community": 104,
"norm_label": "sync transports package. backend spec \u00a77.1.3. each transport is a thin async wr"
},
{
@@ -59328,7 +61092,7 @@
"source_file": "src/exlab_wizard/sync/transports/__init__.py",
"source_location": "L22",
"id": "transports_init_rationale_22",
- "community": 90,
+ "community": 104,
"norm_label": "kind of failure that the queue worker uses to drive the retry policy. backe"
},
{
@@ -59337,7 +61101,7 @@
"source_file": "src/exlab_wizard/sync/transports/__init__.py",
"source_location": "L46",
"id": "transports_init_rationale_46",
- "community": 90,
+ "community": 104,
"norm_label": "outcome of a transport push. ``ok`` is true iff the transport reported succ"
},
{
@@ -59346,7 +61110,7 @@
"source_file": "src/exlab_wizard/sync/transports/__init__.py",
"source_location": "L61",
"id": "transports_init_rationale_61",
- "community": 90,
+ "community": 104,
"norm_label": "raised when a transport probe cannot complete. distinct from :class:`transp"
},
{
@@ -59355,7 +61119,7 @@
"source_file": "src/exlab_wizard/sync/transports/rclone.py",
"source_location": "L1",
"id": "src_exlab_wizard_sync_transports_rclone_py",
- "community": 189,
+ "community": 232,
"norm_label": "rclone.py"
},
{
@@ -59364,7 +61128,7 @@
"source_file": "src/exlab_wizard/sync/transports/rclone.py",
"source_location": "L58",
"id": "transports_rclone_classify_failure",
- "community": 90,
+ "community": 104,
"norm_label": "_classify_failure()"
},
{
@@ -59373,7 +61137,7 @@
"source_file": "src/exlab_wizard/sync/transports/rclone.py",
"source_location": "L82",
"id": "transports_rclone_checkresult",
- "community": 189,
+ "community": 232,
"norm_label": "checkresult"
},
{
@@ -59382,7 +61146,7 @@
"source_file": "src/exlab_wizard/sync/transports/rclone.py",
"source_location": "L105",
"id": "transports_rclone_aboutresult",
- "community": 90,
+ "community": 232,
"norm_label": "aboutresult"
},
{
@@ -59391,7 +61155,7 @@
"source_file": "src/exlab_wizard/sync/transports/rclone.py",
"source_location": "L124",
"id": "transports_rclone_rclonedriver",
- "community": 38,
+ "community": 68,
"norm_label": "rclonedriver"
},
{
@@ -59400,7 +61164,7 @@
"source_file": "src/exlab_wizard/sync/transports/rclone.py",
"source_location": "L127",
"id": "transports_rclone_rclonedriver_init",
- "community": 38,
+ "community": 68,
"norm_label": ".__init__()"
},
{
@@ -59409,7 +61173,7 @@
"source_file": "src/exlab_wizard/sync/transports/rclone.py",
"source_location": "L140",
"id": "transports_rclone_rclonedriver_global_flags",
- "community": 90,
+ "community": 104,
"norm_label": "._global_flags()"
},
{
@@ -59418,7 +61182,7 @@
"source_file": "src/exlab_wizard/sync/transports/rclone.py",
"source_location": "L147",
"id": "transports_rclone_rclonedriver_checkers_flags",
- "community": 90,
+ "community": 104,
"norm_label": "._checkers_flags()"
},
{
@@ -59427,7 +61191,7 @@
"source_file": "src/exlab_wizard/sync/transports/rclone.py",
"source_location": "L158",
"id": "transports_rclone_rclonedriver_push",
- "community": 90,
+ "community": 104,
"norm_label": ".push()"
},
{
@@ -59436,7 +61200,7 @@
"source_file": "src/exlab_wizard/sync/transports/rclone.py",
"source_location": "L210",
"id": "transports_rclone_rclonedriver_check",
- "community": 188,
+ "community": 104,
"norm_label": ".check()"
},
{
@@ -59445,7 +61209,7 @@
"source_file": "src/exlab_wizard/sync/transports/rclone.py",
"source_location": "L291",
"id": "transports_rclone_rclonedriver_about",
- "community": 90,
+ "community": 104,
"norm_label": ".about()"
},
{
@@ -59454,7 +61218,7 @@
"source_file": "src/exlab_wizard/sync/transports/rclone.py",
"source_location": "L325",
"id": "transports_rclone_rclonedriver_lsjson",
- "community": 90,
+ "community": 104,
"norm_label": ".lsjson()"
},
{
@@ -59463,7 +61227,7 @@
"source_file": "src/exlab_wizard/sync/transports/rclone.py",
"source_location": "L351",
"id": "transports_rclone_rclonedriver_listremotes",
- "community": 90,
+ "community": 104,
"norm_label": ".listremotes()"
},
{
@@ -59472,7 +61236,7 @@
"source_file": "src/exlab_wizard/sync/transports/rclone.py",
"source_location": "L373",
"id": "transports_rclone_parse_combined",
- "community": 189,
+ "community": 232,
"norm_label": "_parse_combined()"
},
{
@@ -59481,7 +61245,7 @@
"source_file": "src/exlab_wizard/sync/transports/rclone.py",
"source_location": "L1",
"id": "transports_rclone_rationale_1",
- "community": 189,
+ "community": 232,
"norm_label": "rclone transport driver. backend spec \u00a77.1.3. single transport binary for the n"
},
{
@@ -59490,7 +61254,7 @@
"source_file": "src/exlab_wizard/sync/transports/rclone.py",
"source_location": "L59",
"id": "transports_rclone_rationale_59",
- "community": 90,
+ "community": 104,
"norm_label": "map a (returncode, stderr) into a :class:`transporterrorkind`. auth failure"
},
{
@@ -59499,7 +61263,7 @@
"source_file": "src/exlab_wizard/sync/transports/rclone.py",
"source_location": "L83",
"id": "transports_rclone_rationale_83",
- "community": 189,
+ "community": 232,
"norm_label": "parsed result of a ``rclone check --combined`` run. the combined-output for"
},
{
@@ -59508,7 +61272,7 @@
"source_file": "src/exlab_wizard/sync/transports/rclone.py",
"source_location": "L106",
"id": "transports_rclone_rationale_106",
- "community": 90,
+ "community": 232,
"norm_label": "outcome of ``rclone about --json``. surfaces as the equipment-prob"
},
{
@@ -59517,7 +61281,7 @@
"source_file": "src/exlab_wizard/sync/transports/rclone.py",
"source_location": "L125",
"id": "transports_rclone_rationale_125",
- "community": 38,
+ "community": 68,
"norm_label": "rclone transport driver. backend spec \u00a77.1.3."
},
{
@@ -59526,7 +61290,7 @@
"source_file": "src/exlab_wizard/sync/transports/rclone.py",
"source_location": "L141",
"id": "transports_rclone_rationale_141",
- "community": 90,
+ "community": 111,
"norm_label": "flags valid on every rclone subcommand we invoke."
},
{
@@ -59535,7 +61299,7 @@
"source_file": "src/exlab_wizard/sync/transports/rclone.py",
"source_location": "L148",
"id": "transports_rclone_rationale_148",
- "community": 90,
+ "community": 104,
"norm_label": "``--checkers `` when the parallelism dial is set, else empty. shared"
},
{
@@ -59544,7 +61308,7 @@
"source_file": "src/exlab_wizard/sync/transports/rclone.py",
"source_location": "L166",
"id": "transports_rclone_rationale_166",
- "community": 90,
+ "community": 104,
"norm_label": "run ``rclone copy --checksum`` from ``local`` to ``remote``. ``remote``"
},
{
@@ -59553,7 +61317,7 @@
"source_file": "src/exlab_wizard/sync/transports/rclone.py",
"source_location": "L217",
"id": "transports_rclone_rationale_217",
- "community": 188,
+ "community": 104,
"norm_label": "run ``rclone check --download --files-from --combined`` over ``files_from``."
},
{
@@ -59562,7 +61326,7 @@
"source_file": "src/exlab_wizard/sync/transports/rclone.py",
"source_location": "L295",
"id": "transports_rclone_rationale_295",
- "community": 90,
+ "community": 104,
"norm_label": "run ``rclone about --json`` -- the equipment probe. used by th"
},
{
@@ -59571,7 +61335,7 @@
"source_file": "src/exlab_wizard/sync/transports/rclone.py",
"source_location": "L326",
"id": "transports_rclone_rationale_326",
- "community": 90,
+ "community": 104,
"norm_label": "run ``rclone lsjson`` (read-only) and return the raw json array text. l"
},
{
@@ -59580,7 +61344,7 @@
"source_file": "src/exlab_wizard/sync/transports/rclone.py",
"source_location": "L352",
"id": "transports_rclone_rationale_352",
- "community": 90,
+ "community": 104,
"norm_label": "return the remote names defined in rclone.conf (each incl. trailing ``:``)"
},
{
@@ -59589,7 +61353,7 @@
"source_file": "src/exlab_wizard/sync/transports/rclone.py",
"source_location": "L374",
"id": "transports_rclone_rationale_374",
- "community": 189,
+ "community": 232,
"norm_label": "parse ``rclone check --combined`` output into a :class:`checkresult`. each"
},
{
@@ -59598,7 +61362,7 @@
"source_file": "src/exlab_wizard/sync/transports/_run.py",
"source_location": "L1",
"id": "src_exlab_wizard_sync_transports_run_py",
- "community": 147,
+ "community": 167,
"norm_label": "_run.py"
},
{
@@ -59607,7 +61371,7 @@
"source_file": "src/exlab_wizard/sync/transports/_run.py",
"source_location": "L27",
"id": "transports_run_run_subprocess",
- "community": 147,
+ "community": 167,
"norm_label": "run_subprocess()"
},
{
@@ -59616,7 +61380,7 @@
"source_file": "src/exlab_wizard/sync/transports/_run.py",
"source_location": "L1",
"id": "transports_run_rationale_1",
- "community": 147,
+ "community": 167,
"norm_label": "shared asyncio subprocess helper for transport drivers. backend spec \u00a77.1.3. th"
},
{
@@ -59625,7 +61389,7 @@
"source_file": "src/exlab_wizard/sync/transports/_run.py",
"source_location": "L28",
"id": "transports_run_rationale_28",
- "community": 147,
+ "community": 167,
"norm_label": "launch ``cmd`` and return ``(returncode, stdout, stderr)`` as text. the chi"
},
{
@@ -59634,7 +61398,7 @@
"source_file": "src/exlab_wizard/logging/handlers.py",
"source_location": "L1",
"id": "src_exlab_wizard_logging_handlers_py",
- "community": 141,
+ "community": 154,
"norm_label": "handlers.py"
},
{
@@ -59643,7 +61407,7 @@
"source_file": "src/exlab_wizard/logging/handlers.py",
"source_location": "L37",
"id": "logging_handlers_equipmentscopedfilehandler",
- "community": 141,
+ "community": 154,
"norm_label": "equipmentscopedfilehandler"
},
{
@@ -59652,7 +61416,7 @@
"source_file": "src/exlab_wizard/logging/handlers.py",
"source_location": "L57",
"id": "logging_handlers_equipmentscopedfilehandler_init",
- "community": 141,
+ "community": 154,
"norm_label": ".__init__()"
},
{
@@ -59661,7 +61425,7 @@
"source_file": "src/exlab_wizard/logging/handlers.py",
"source_location": "L74",
"id": "logging_handlers_equipmentscopedfilehandler_emit",
- "community": 141,
+ "community": 154,
"norm_label": ".emit()"
},
{
@@ -59670,7 +61434,7 @@
"source_file": "src/exlab_wizard/logging/handlers.py",
"source_location": "L90",
"id": "logging_handlers_equipmentscopedfilehandler_close",
- "community": 141,
+ "community": 154,
"norm_label": ".close()"
},
{
@@ -59679,7 +61443,7 @@
"source_file": "src/exlab_wizard/logging/handlers.py",
"source_location": "L105",
"id": "logging_handlers_equipmentscopedfilehandler_open_for",
- "community": 141,
+ "community": 154,
"norm_label": "._open_for()"
},
{
@@ -59688,7 +61452,7 @@
"source_file": "src/exlab_wizard/logging/handlers.py",
"source_location": "L124",
"id": "logging_handlers_equipmentscopedfilehandler_compose_path",
- "community": 141,
+ "community": 154,
"norm_label": "._compose_path()"
},
{
@@ -59697,7 +61461,7 @@
"source_file": "src/exlab_wizard/logging/handlers.py",
"source_location": "L139",
"id": "logging_handlers_openlogfile",
- "community": 141,
+ "community": 154,
"norm_label": "_openlogfile"
},
{
@@ -59706,7 +61470,7 @@
"source_file": "src/exlab_wizard/logging/handlers.py",
"source_location": "L152",
"id": "logging_handlers_openlogfile_init",
- "community": 141,
+ "community": 154,
"norm_label": ".__init__()"
},
{
@@ -59715,7 +61479,7 @@
"source_file": "src/exlab_wizard/logging/handlers.py",
"source_location": "L158",
"id": "logging_handlers_open",
- "community": 141,
+ "community": 154,
"norm_label": "open()"
},
{
@@ -59724,7 +61488,7 @@
"source_file": "src/exlab_wizard/logging/handlers.py",
"source_location": "L183",
"id": "logging_handlers_openlogfile_write",
- "community": 141,
+ "community": 154,
"norm_label": ".write()"
},
{
@@ -59733,7 +61497,7 @@
"source_file": "src/exlab_wizard/logging/handlers.py",
"source_location": "L189",
"id": "logging_handlers_openlogfile_fsync",
- "community": 141,
+ "community": 154,
"norm_label": ".fsync()"
},
{
@@ -59742,7 +61506,7 @@
"source_file": "src/exlab_wizard/logging/handlers.py",
"source_location": "L197",
"id": "logging_handlers_openlogfile_close",
- "community": 141,
+ "community": 154,
"norm_label": ".close()"
},
{
@@ -59751,7 +61515,7 @@
"source_file": "src/exlab_wizard/logging/handlers.py",
"source_location": "L1",
"id": "logging_handlers_rationale_1",
- "community": 141,
+ "community": 154,
"norm_label": "equipment-scoped file handler. backend spec \u00a716.2.4. the :class:`equipmentscope"
},
{
@@ -59760,7 +61524,7 @@
"source_file": "src/exlab_wizard/logging/handlers.py",
"source_location": "L38",
"id": "logging_handlers_rationale_38",
- "community": 141,
+ "community": 154,
"norm_label": "per-equipment ``wizard..log`` writer. resolves ``///.exlab-wizard/wizard..log``."
},
{
@@ -59805,7 +61569,7 @@
"source_file": "src/exlab_wizard/logging/handlers.py",
"source_location": "L140",
"id": "logging_handlers_rationale_140",
- "community": 141,
+ "community": 154,
"norm_label": "append-mode log file with platform-appropriate share / append flags. the wr"
},
{
@@ -59814,7 +61578,7 @@
"source_file": "src/exlab_wizard/logging/handlers.py",
"source_location": "L159",
"id": "logging_handlers_rationale_159",
- "community": 638,
+ "community": 663,
"norm_label": "open ``path`` in append mode with the platform-appropriate flags."
},
{
@@ -59823,7 +61587,7 @@
"source_file": "src/exlab_wizard/logging/handlers.py",
"source_location": "L184",
"id": "logging_handlers_rationale_184",
- "community": 141,
+ "community": 154,
"norm_label": "append ``line`` (already newline-terminated) to the file."
},
{
@@ -59832,7 +61596,7 @@
"source_file": "src/exlab_wizard/logging/handlers.py",
"source_location": "L190",
"id": "logging_handlers_rationale_190",
- "community": 141,
+ "community": 154,
"norm_label": "``os.fsync`` the underlying file descriptor. called only on ``error``-l"
},
{
@@ -59841,7 +61605,7 @@
"source_file": "src/exlab_wizard/logging/handlers.py",
"source_location": "L198",
"id": "logging_handlers_rationale_198",
- "community": 141,
+ "community": 154,
"norm_label": "flush and close the file. idempotent."
},
{
@@ -59850,7 +61614,7 @@
"source_file": "src/exlab_wizard/logging/__init__.py",
"source_location": "L1",
"id": "src_exlab_wizard_logging_init_py",
- "community": 526,
+ "community": 550,
"norm_label": "__init__.py"
},
{
@@ -59859,7 +61623,7 @@
"source_file": "src/exlab_wizard/logging/__init__.py",
"source_location": "L1",
"id": "logging_init_rationale_1",
- "community": 526,
+ "community": 550,
"norm_label": "canonical logger package. backend spec \u00a716. this package owns the runtime logge"
},
{
@@ -59868,7 +61632,7 @@
"source_file": "src/exlab_wizard/logging/format.py",
"source_location": "L1",
"id": "src_exlab_wizard_logging_format_py",
- "community": 329,
+ "community": 335,
"norm_label": "format.py"
},
{
@@ -59877,7 +61641,7 @@
"source_file": "src/exlab_wizard/logging/format.py",
"source_location": "L71",
"id": "logging_format_structuredtagformatter",
- "community": 113,
+ "community": 123,
"norm_label": "structuredtagformatter"
},
{
@@ -59886,7 +61650,7 @@
"source_file": "src/exlab_wizard/logging/format.py",
"source_location": "L90",
"id": "logging_format_structuredtagformatter_format",
- "community": 329,
+ "community": 335,
"norm_label": ".format()"
},
{
@@ -59895,7 +61659,7 @@
"source_file": "src/exlab_wizard/logging/format.py",
"source_location": "L104",
"id": "logging_format_format_utc_timestamp",
- "community": 329,
+ "community": 335,
"norm_label": "_format_utc_timestamp()"
},
{
@@ -59904,7 +61668,7 @@
"source_file": "src/exlab_wizard/logging/format.py",
"source_location": "L115",
"id": "logging_format_render_tags",
- "community": 329,
+ "community": 335,
"norm_label": "_render_tags()"
},
{
@@ -59913,7 +61677,7 @@
"source_file": "src/exlab_wizard/logging/format.py",
"source_location": "L135",
"id": "logging_format_redact_secret",
- "community": 113,
+ "community": 123,
"norm_label": "redact_secret()"
},
{
@@ -59922,7 +61686,7 @@
"source_file": "src/exlab_wizard/logging/format.py",
"source_location": "L1",
"id": "logging_format_rationale_1",
- "community": 329,
+ "community": 335,
"norm_label": "structured log formatter and secret-redaction helpers. backend spec \u00a716.4, \u00a716.1"
},
{
@@ -59931,7 +61695,7 @@
"source_file": "src/exlab_wizard/logging/format.py",
"source_location": "L72",
"id": "logging_format_rationale_72",
- "community": 113,
+ "community": 123,
"norm_label": "formatter that renders the \u00a716.4 structured-tag log line. reads the active"
},
{
@@ -59940,7 +61704,7 @@
"source_file": "src/exlab_wizard/logging/format.py",
"source_location": "L105",
"id": "logging_format_rationale_105",
- "community": 329,
+ "community": 335,
"norm_label": "render ``epoch_seconds`` as a utc iso 8601 timestamp with ``z`` suffix. exa"
},
{
@@ -59949,7 +61713,7 @@
"source_file": "src/exlab_wizard/logging/format.py",
"source_location": "L116",
"id": "logging_format_rationale_116",
- "community": 329,
+ "community": 335,
"norm_label": "render the active context as ``[host:..] [equip:..] ...``. returns the empt"
},
{
@@ -59958,7 +61722,7 @@
"source_file": "src/exlab_wizard/logging/format.py",
"source_location": "L136",
"id": "logging_format_rationale_136",
- "community": 113,
+ "community": 123,
"norm_label": "mask credential-bearing substrings inside ``value``. replaces three classes"
},
{
@@ -59967,7 +61731,7 @@
"source_file": "src/exlab_wizard/logging/context.py",
"source_location": "L1",
"id": "src_exlab_wizard_logging_context_py",
- "community": 136,
+ "community": 144,
"norm_label": "context.py"
},
{
@@ -59976,7 +61740,7 @@
"source_file": "src/exlab_wizard/logging/context.py",
"source_location": "L68",
"id": "logging_context_set_run_context",
- "community": 190,
+ "community": 196,
"norm_label": "set_run_context()"
},
{
@@ -59985,7 +61749,7 @@
"source_file": "src/exlab_wizard/logging/context.py",
"source_location": "L114",
"id": "logging_context_get_run_context",
- "community": 136,
+ "community": 144,
"norm_label": "get_run_context()"
},
{
@@ -59994,7 +61758,7 @@
"source_file": "src/exlab_wizard/logging/context.py",
"source_location": "L124",
"id": "logging_context_clear_run_context",
- "community": 136,
+ "community": 144,
"norm_label": "clear_run_context()"
},
{
@@ -60003,7 +61767,7 @@
"source_file": "src/exlab_wizard/logging/context.py",
"source_location": "L1",
"id": "logging_context_rationale_1",
- "community": 136,
+ "community": 144,
"norm_label": "per-task structured-tag context vars for the logging system. backend spec \u00a716.2."
},
{
@@ -60012,7 +61776,7 @@
"source_file": "src/exlab_wizard/logging/context.py",
"source_location": "L76",
"id": "logging_context_rationale_76",
- "community": 190,
+ "community": 196,
"norm_label": "push the supplied context vars on entry and reset them on exit. vars whose"
},
{
@@ -60021,7 +61785,7 @@
"source_file": "src/exlab_wizard/logging/context.py",
"source_location": "L115",
"id": "logging_context_rationale_115",
- "community": 136,
+ "community": 144,
"norm_label": "return a snapshot of the active context as a plain ``dict``. used by the fo"
},
{
@@ -60030,7 +61794,7 @@
"source_file": "src/exlab_wizard/logging/context.py",
"source_location": "L125",
"id": "logging_context_rationale_125",
- "community": 136,
+ "community": 144,
"norm_label": "reset every context var to ``none``. provided for test fixtures that want t"
},
{
@@ -60039,7 +61803,7 @@
"source_file": "src/exlab_wizard/logging/manager.py",
"source_location": "L1",
"id": "src_exlab_wizard_logging_manager_py",
- "community": 29,
+ "community": 19,
"norm_label": "manager.py"
},
{
@@ -60048,7 +61812,7 @@
"source_file": "src/exlab_wizard/logging/manager.py",
"source_location": "L70",
"id": "logging_manager_get_logger",
- "community": 29,
+ "community": 19,
"norm_label": "get_logger()"
},
{
@@ -60057,7 +61821,7 @@
"source_file": "src/exlab_wizard/logging/manager.py",
"source_location": "L88",
"id": "logging_manager_configure_logging",
- "community": 29,
+ "community": 19,
"norm_label": "configure_logging()"
},
{
@@ -60066,7 +61830,7 @@
"source_file": "src/exlab_wizard/logging/manager.py",
"source_location": "L155",
"id": "logging_manager_shutdown_logging",
- "community": 29,
+ "community": 19,
"norm_label": "_shutdown_logging()"
},
{
@@ -60075,7 +61839,7 @@
"source_file": "src/exlab_wizard/logging/manager.py",
"source_location": "L170",
"id": "logging_manager_teardown_locked",
- "community": 29,
+ "community": 19,
"norm_label": "_teardown_locked()"
},
{
@@ -60084,7 +61848,7 @@
"source_file": "src/exlab_wizard/logging/manager.py",
"source_location": "L189",
"id": "logging_manager_resolve_threshold",
- "community": 29,
+ "community": 19,
"norm_label": "_resolve_threshold()"
},
{
@@ -60093,7 +61857,7 @@
"source_file": "src/exlab_wizard/logging/manager.py",
"source_location": "L204",
"id": "logging_manager_resolve_rotation",
- "community": 29,
+ "community": 19,
"norm_label": "_resolve_rotation()"
},
{
@@ -60102,7 +61866,7 @@
"source_file": "src/exlab_wizard/logging/manager.py",
"source_location": "L214",
"id": "logging_manager_resolve_local_root",
- "community": 29,
+ "community": 19,
"norm_label": "_resolve_local_root()"
},
{
@@ -60111,7 +61875,7 @@
"source_file": "src/exlab_wizard/logging/manager.py",
"source_location": "L225",
"id": "logging_manager_build_real_handlers",
- "community": 29,
+ "community": 19,
"norm_label": "_build_real_handlers()"
},
{
@@ -60120,7 +61884,7 @@
"source_file": "src/exlab_wizard/logging/manager.py",
"source_location": "L1",
"id": "logging_manager_rationale_1",
- "community": 29,
+ "community": 19,
"norm_label": "canonical logger factory + configuration. backend spec \u00a716.2.1, \u00a716.2.2, \u00a716.2.5"
},
{
@@ -60129,7 +61893,7 @@
"source_file": "src/exlab_wizard/logging/manager.py",
"source_location": "L71",
"id": "logging_manager_rationale_71",
- "community": 29,
+ "community": 19,
"norm_label": "return a logger for ``name``. the only place in the codebase that may call"
},
{
@@ -60138,7 +61902,7 @@
"source_file": "src/exlab_wizard/logging/manager.py",
"source_location": "L89",
"id": "logging_manager_rationale_89",
- "community": 29,
+ "community": 19,
"norm_label": "install the \u00a716.2.5 queue-based handler chain. idempotent: calling this a s"
},
{
@@ -60147,7 +61911,7 @@
"source_file": "src/exlab_wizard/logging/manager.py",
"source_location": "L156",
"id": "logging_manager_rationale_156",
- "community": 29,
+ "community": 19,
"norm_label": "drain the queue, stop the listener thread, and detach the queue handler. ca"
},
{
@@ -60156,7 +61920,7 @@
"source_file": "src/exlab_wizard/logging/manager.py",
"source_location": "L171",
"id": "logging_manager_rationale_171",
- "community": 29,
+ "community": 19,
"norm_label": "tear down the active listener. must be called with ``_state_lock`` held."
},
{
@@ -60165,7 +61929,7 @@
"source_file": "src/exlab_wizard/logging/manager.py",
"source_location": "L190",
"id": "logging_manager_rationale_190",
- "community": 29,
+ "community": 19,
"norm_label": "return the numeric level threshold for the root logger. ``loggingconfig`` a"
},
{
@@ -60174,7 +61938,7 @@
"source_file": "src/exlab_wizard/logging/manager.py",
"source_location": "L205",
"id": "logging_manager_rationale_205",
- "community": 29,
+ "community": 19,
"norm_label": "return ``(central_log_max_mb, central_log_keep)`` from ``config`` or defaults."
},
{
@@ -60183,7 +61947,7 @@
"source_file": "src/exlab_wizard/logging/manager.py",
"source_location": "L215",
"id": "logging_manager_rationale_215",
- "community": 29,
+ "community": 19,
"norm_label": "return the configured ``local_root`` for the equipment-scoped handler. phas"
},
{
@@ -60192,7 +61956,7 @@
"source_file": "src/exlab_wizard/logging/manager.py",
"source_location": "L232",
"id": "logging_manager_rationale_232",
- "community": 29,
+ "community": 19,
"norm_label": "build the listener's downstream handler chain. order is fixed: equipment-sc"
},
{
@@ -60201,7 +61965,7 @@
"source_file": "src/exlab_wizard/orchestrator/quiescence_poller.py",
"source_location": "L1",
"id": "src_exlab_wizard_orchestrator_quiescence_poller_py",
- "community": 8,
+ "community": 13,
"norm_label": "quiescence_poller.py"
},
{
@@ -60210,7 +61974,7 @@
"source_file": "src/exlab_wizard/orchestrator/quiescence_poller.py",
"source_location": "L73",
"id": "orchestrator_quiescence_poller_nassynclike",
- "community": 8,
+ "community": 13,
"norm_label": "nassynclike"
},
{
@@ -60219,7 +61983,7 @@
"source_file": "src/exlab_wizard/orchestrator/quiescence_poller.py",
"source_location": "L83",
"id": "orchestrator_quiescence_poller_nassynclike_enqueue",
- "community": 8,
+ "community": 13,
"norm_label": ".enqueue()"
},
{
@@ -60228,7 +61992,7 @@
"source_file": "src/exlab_wizard/orchestrator/quiescence_poller.py",
"source_location": "L84",
"id": "orchestrator_quiescence_poller_nassynclike_status",
- "community": 8,
+ "community": 13,
"norm_label": ".status()"
},
{
@@ -60237,7 +62001,7 @@
"source_file": "src/exlab_wizard/orchestrator/quiescence_poller.py",
"source_location": "L85",
"id": "orchestrator_quiescence_poller_nassynclike_get_by_run_path",
- "community": 8,
+ "community": 13,
"norm_label": ".get_by_run_path()"
},
{
@@ -60246,7 +62010,7 @@
"source_file": "src/exlab_wizard/orchestrator/quiescence_poller.py",
"source_location": "L86",
"id": "orchestrator_quiescence_poller_nassynclike_list_all",
- "community": 8,
+ "community": 13,
"norm_label": ".list_all()"
},
{
@@ -60255,7 +62019,7 @@
"source_file": "src/exlab_wizard/orchestrator/quiescence_poller.py",
"source_location": "L90",
"id": "orchestrator_quiescence_poller_filesnapshot",
- "community": 8,
+ "community": 13,
"norm_label": "filesnapshot"
},
{
@@ -60264,7 +62028,7 @@
"source_file": "src/exlab_wizard/orchestrator/quiescence_poller.py",
"source_location": "L103",
"id": "orchestrator_quiescence_poller_quiescencesyncpoller",
- "community": 8,
+ "community": 13,
"norm_label": "quiescencesyncpoller"
},
{
@@ -60273,7 +62037,7 @@
"source_file": "src/exlab_wizard/orchestrator/quiescence_poller.py",
"source_location": "L115",
"id": "orchestrator_quiescence_poller_quiescencesyncpoller_init",
- "community": 8,
+ "community": 13,
"norm_label": ".__init__()"
},
{
@@ -60282,7 +62046,7 @@
"source_file": "src/exlab_wizard/orchestrator/quiescence_poller.py",
"source_location": "L131",
"id": "orchestrator_quiescence_poller_quiescencesyncpoller_apply_config",
- "community": 8,
+ "community": 13,
"norm_label": ".apply_config()"
},
{
@@ -60291,7 +62055,7 @@
"source_file": "src/exlab_wizard/orchestrator/quiescence_poller.py",
"source_location": "L144",
"id": "orchestrator_quiescence_poller_quiescencesyncpoller_start",
- "community": 8,
+ "community": 13,
"norm_label": ".start()"
},
{
@@ -60300,7 +62064,7 @@
"source_file": "src/exlab_wizard/orchestrator/quiescence_poller.py",
"source_location": "L160",
"id": "orchestrator_quiescence_poller_quiescencesyncpoller_stop",
- "community": 8,
+ "community": 13,
"norm_label": ".stop()"
},
{
@@ -60309,7 +62073,7 @@
"source_file": "src/exlab_wizard/orchestrator/quiescence_poller.py",
"source_location": "L173",
"id": "orchestrator_quiescence_poller_quiescencesyncpoller_loop",
- "community": 8,
+ "community": 13,
"norm_label": "._loop()"
},
{
@@ -60318,7 +62082,7 @@
"source_file": "src/exlab_wizard/orchestrator/quiescence_poller.py",
"source_location": "L194",
"id": "orchestrator_quiescence_poller_quiescencesyncpoller_poll_once",
- "community": 8,
+ "community": 13,
"norm_label": ".poll_once()"
},
{
@@ -60327,7 +62091,7 @@
"source_file": "src/exlab_wizard/orchestrator/quiescence_poller.py",
"source_location": "L243",
"id": "orchestrator_quiescence_poller_quiescencesyncpoller_discover_runs",
- "community": 130,
+ "community": 11,
"norm_label": "._discover_runs()"
},
{
@@ -60336,7 +62100,7 @@
"source_file": "src/exlab_wizard/orchestrator/quiescence_poller.py",
"source_location": "L283",
"id": "orchestrator_quiescence_poller_quiescencesyncpoller_iter_run_files",
- "community": 8,
+ "community": 13,
"norm_label": "._iter_run_files()"
},
{
@@ -60345,7 +62109,7 @@
"source_file": "src/exlab_wizard/orchestrator/quiescence_poller.py",
"source_location": "L315",
"id": "orchestrator_quiescence_poller_signature",
- "community": 8,
+ "community": 13,
"norm_label": "_signature()"
},
{
@@ -60354,7 +62118,7 @@
"source_file": "src/exlab_wizard/orchestrator/quiescence_poller.py",
"source_location": "L323",
"id": "orchestrator_quiescence_poller_quiescencesyncpoller_eligible_files",
- "community": 8,
+ "community": 13,
"norm_label": "._eligible_files()"
},
{
@@ -60363,7 +62127,7 @@
"source_file": "src/exlab_wizard/orchestrator/quiescence_poller.py",
"source_location": "L362",
"id": "orchestrator_quiescence_poller_matches_any_glob",
- "community": 8,
+ "community": 13,
"norm_label": "_matches_any_glob()"
},
{
@@ -60372,7 +62136,7 @@
"source_file": "src/exlab_wizard/orchestrator/quiescence_poller.py",
"source_location": "L367",
"id": "orchestrator_quiescence_poller_safe_resolve",
- "community": 8,
+ "community": 13,
"norm_label": "_safe_resolve()"
},
{
@@ -60381,7 +62145,7 @@
"source_file": "src/exlab_wizard/orchestrator/quiescence_poller.py",
"source_location": "L1",
"id": "orchestrator_quiescence_poller_rationale_1",
- "community": 8,
+ "community": 13,
"norm_label": "operator-free, per-file quiescence-driven nas sync poller. operator-free per-fi"
},
{
@@ -60390,7 +62154,7 @@
"source_file": "src/exlab_wizard/orchestrator/quiescence_poller.py",
"source_location": "L74",
"id": "orchestrator_quiescence_poller_rationale_74",
- "community": 8,
+ "community": 13,
"norm_label": "the nas-sync surface the poller and the phase 3 staging code use. ``enqueue"
},
{
@@ -60399,7 +62163,7 @@
"source_file": "src/exlab_wizard/orchestrator/quiescence_poller.py",
"source_location": "L91",
"id": "orchestrator_quiescence_poller_rationale_91",
- "community": 8,
+ "community": 13,
"norm_label": "one file's observation record carried forward across sweeps. * ``signature`"
},
{
@@ -60408,7 +62172,7 @@
"source_file": "src/exlab_wizard/orchestrator/quiescence_poller.py",
"source_location": "L104",
"id": "orchestrator_quiescence_poller_rationale_104",
- "community": 8,
+ "community": 13,
"norm_label": "polls every run pending nas sync and enqueues runs with eligible files. con"
},
{
@@ -60417,7 +62181,7 @@
"source_file": "src/exlab_wizard/orchestrator/quiescence_poller.py",
"source_location": "L132",
"id": "orchestrator_quiescence_poller_rationale_132",
- "community": 8,
+ "community": 13,
"norm_label": "swap the cached config in place so a live settings save applies. ``poll"
},
{
@@ -60426,7 +62190,7 @@
"source_file": "src/exlab_wizard/orchestrator/quiescence_poller.py",
"source_location": "L145",
"id": "orchestrator_quiescence_poller_rationale_145",
- "community": 8,
+ "community": 13,
"norm_label": "start the background polling task. idempotent. returns immediately; the"
},
{
@@ -60435,7 +62199,7 @@
"source_file": "src/exlab_wizard/orchestrator/quiescence_poller.py",
"source_location": "L161",
"id": "orchestrator_quiescence_poller_rationale_161",
- "community": 8,
+ "community": 13,
"norm_label": "cancel the background task and wait for it to exit. idempotent."
},
{
@@ -60444,7 +62208,7 @@
"source_file": "src/exlab_wizard/orchestrator/quiescence_poller.py",
"source_location": "L195",
"id": "orchestrator_quiescence_poller_rationale_195",
- "community": 8,
+ "community": 13,
"norm_label": "run one discovery + quiescence + enqueue sweep. ``now_monotonic`` is in"
},
{
@@ -60453,7 +62217,7 @@
"source_file": "src/exlab_wizard/orchestrator/quiescence_poller.py",
"source_location": "L244",
"id": "orchestrator_quiescence_poller_rationale_244",
- "community": 130,
+ "community": 11,
"norm_label": "return every run-leaf directory pending nas sync. stage-mode runs sit u"
},
{
@@ -60462,7 +62226,7 @@
"source_file": "src/exlab_wizard/orchestrator/quiescence_poller.py",
"source_location": "L284",
"id": "orchestrator_quiescence_poller_rationale_284",
- "community": 8,
+ "community": 13,
"norm_label": "return every non-ignored file under ``run_path``. skips the ``.exlab-wi"
},
{
@@ -60471,7 +62235,7 @@
"source_file": "src/exlab_wizard/orchestrator/quiescence_poller.py",
"source_location": "L316",
"id": "orchestrator_quiescence_poller_rationale_316",
- "community": 639,
+ "community": 664,
"norm_label": "return ``(st_size, st_mtime_ns)`` for ``file_path`` or none."
},
{
@@ -60480,7 +62244,7 @@
"source_file": "src/exlab_wizard/orchestrator/quiescence_poller.py",
"source_location": "L328",
"id": "orchestrator_quiescence_poller_rationale_328",
- "community": 8,
+ "community": 13,
"norm_label": "return the run-relative paths of quiet files needing a (re-)sync. a qui"
},
{
@@ -60489,7 +62253,7 @@
"source_file": "src/exlab_wizard/orchestrator/quiescence_poller.py",
"source_location": "L363",
"id": "orchestrator_quiescence_poller_rationale_363",
- "community": 8,
+ "community": 13,
"norm_label": "return true if ``name`` matches any glob in ``globs``."
},
{
@@ -60498,7 +62262,7 @@
"source_file": "src/exlab_wizard/orchestrator/quiescence_poller.py",
"source_location": "L368",
"id": "orchestrator_quiescence_poller_rationale_368",
- "community": 8,
+ "community": 13,
"norm_label": "resolve ``path`` for de-dup, falling back to the path itself."
},
{
@@ -60507,7 +62271,7 @@
"source_file": "src/exlab_wizard/orchestrator/_scan.py",
"source_location": "L1",
"id": "src_exlab_wizard_orchestrator_scan_py",
- "community": 130,
+ "community": 11,
"norm_label": "_scan.py"
},
{
@@ -60516,7 +62280,7 @@
"source_file": "src/exlab_wizard/orchestrator/_scan.py",
"source_location": "L30",
"id": "orchestrator_scan_iter_subdirs",
- "community": 130,
+ "community": 11,
"norm_label": "iter_subdirs()"
},
{
@@ -60525,7 +62289,7 @@
"source_file": "src/exlab_wizard/orchestrator/_scan.py",
"source_location": "L55",
"id": "orchestrator_scan_walk_equipment_run_leaves",
- "community": 130,
+ "community": 11,
"norm_label": "walk_equipment_run_leaves()"
},
{
@@ -60534,7 +62298,7 @@
"source_file": "src/exlab_wizard/orchestrator/_scan.py",
"source_location": "L89",
"id": "orchestrator_scan_walk_run_leaves",
- "community": 130,
+ "community": 11,
"norm_label": "walk_run_leaves()"
},
{
@@ -60543,7 +62307,7 @@
"source_file": "src/exlab_wizard/orchestrator/_scan.py",
"source_location": "L105",
"id": "orchestrator_scan_count_files_and_bytes",
- "community": 130,
+ "community": 11,
"norm_label": "count_files_and_bytes()"
},
{
@@ -60552,7 +62316,7 @@
"source_file": "src/exlab_wizard/orchestrator/_scan.py",
"source_location": "L1",
"id": "orchestrator_scan_rationale_1",
- "community": 130,
+ "community": 11,
"norm_label": "shared filesystem helpers for the orchestrator. backend spec \u00a713.2. both :mod:`"
},
{
@@ -60561,7 +62325,7 @@
"source_file": "src/exlab_wizard/orchestrator/_scan.py",
"source_location": "L31",
"id": "orchestrator_scan_rationale_31",
- "community": 130,
+ "community": 11,
"norm_label": "return immediate sub-directories of ``parent``. skips ``.exlab-wizard/``, h"
},
{
@@ -60570,7 +62334,7 @@
"source_file": "src/exlab_wizard/orchestrator/_scan.py",
"source_location": "L56",
"id": "orchestrator_scan_rationale_56",
- "community": 130,
+ "community": 11,
"norm_label": "return every ``run_*`` / ``testrun_*`` directory under one equipment dir. `"
},
{
@@ -60579,7 +62343,7 @@
"source_file": "src/exlab_wizard/orchestrator/_scan.py",
"source_location": "L90",
"id": "orchestrator_scan_rationale_90",
- "community": 130,
+ "community": 11,
"norm_label": "return every ``run_*`` / ``testrun_*`` directory under ``staging_root``. pe"
},
{
@@ -60588,7 +62352,7 @@
"source_file": "src/exlab_wizard/orchestrator/_scan.py",
"source_location": "L106",
"id": "orchestrator_scan_rationale_106",
- "community": 130,
+ "community": 11,
"norm_label": "sum file count + total bytes under ``run_path``. with ``exclude_cache=true`"
},
{
@@ -60597,7 +62361,7 @@
"source_file": "src/exlab_wizard/orchestrator/__init__.py",
"source_location": "L1",
"id": "src_exlab_wizard_orchestrator_init_py",
- "community": 527,
+ "community": 551,
"norm_label": "__init__.py"
},
{
@@ -60606,7 +62370,7 @@
"source_file": "src/exlab_wizard/orchestrator/__init__.py",
"source_location": "L1",
"id": "orchestrator_init_rationale_1",
- "community": 527,
+ "community": 551,
"norm_label": "orchestrator-mode runtime. backend spec \u00a712, \u00a713. this package implements the o"
},
{
@@ -60615,7 +62379,7 @@
"source_file": "src/exlab_wizard/orchestrator/staging_clear.py",
"source_location": "L1",
"id": "src_exlab_wizard_orchestrator_staging_clear_py",
- "community": 246,
+ "community": 11,
"norm_label": "staging_clear.py"
},
{
@@ -60624,7 +62388,7 @@
"source_file": "src/exlab_wizard/orchestrator/staging_clear.py",
"source_location": "L33",
"id": "orchestrator_staging_clear_clear_run_dir",
- "community": 246,
+ "community": 11,
"norm_label": "clear_run_dir()"
},
{
@@ -60633,7 +62397,7 @@
"source_file": "src/exlab_wizard/orchestrator/staging_clear.py",
"source_location": "L1",
"id": "orchestrator_staging_clear_rationale_1",
- "community": 246,
+ "community": 11,
"norm_label": "operator-facing staging-clear helper. backend spec \u00a713.7. the operator-free per"
},
{
@@ -60642,7 +62406,7 @@
"source_file": "src/exlab_wizard/orchestrator/staging_clear.py",
"source_location": "L34",
"id": "orchestrator_staging_clear_rationale_34",
- "community": 246,
+ "community": 11,
"norm_label": "delete a staged run's data files; return ``(file_count, bytes_freed)``. ide"
},
{
@@ -60651,7 +62415,7 @@
"source_file": "src/exlab_wizard/orchestrator/staging_query.py",
"source_location": "L1",
"id": "src_exlab_wizard_orchestrator_staging_query_py",
- "community": 213,
+ "community": 11,
"norm_label": "staging_query.py"
},
{
@@ -60660,7 +62424,7 @@
"source_file": "src/exlab_wizard/orchestrator/staging_query.py",
"source_location": "L44",
"id": "orchestrator_staging_query_stagedrunsummary",
- "community": 7,
+ "community": 6,
"norm_label": "stagedrunsummary"
},
{
@@ -60669,7 +62433,7 @@
"source_file": "src/exlab_wizard/orchestrator/staging_query.py",
"source_location": "L73",
"id": "orchestrator_staging_query_list_staged_runs",
- "community": 131,
+ "community": 11,
"norm_label": "list_staged_runs()"
},
{
@@ -60678,7 +62442,7 @@
"source_file": "src/exlab_wizard/orchestrator/staging_query.py",
"source_location": "L119",
"id": "orchestrator_staging_query_summarize_run",
- "community": 213,
+ "community": 11,
"norm_label": "_summarize_run()"
},
{
@@ -60687,7 +62451,7 @@
"source_file": "src/exlab_wizard/orchestrator/staging_query.py",
"source_location": "L149",
"id": "orchestrator_staging_query_rollup_value",
- "community": 213,
+ "community": 11,
"norm_label": "_rollup_value()"
},
{
@@ -60696,7 +62460,7 @@
"source_file": "src/exlab_wizard/orchestrator/staging_query.py",
"source_location": "L165",
"id": "orchestrator_staging_query_path_identity",
- "community": 213,
+ "community": 11,
"norm_label": "_path_identity()"
},
{
@@ -60705,7 +62469,7 @@
"source_file": "src/exlab_wizard/orchestrator/staging_query.py",
"source_location": "L189",
"id": "orchestrator_staging_query_dir_mtime_iso",
- "community": 213,
+ "community": 11,
"norm_label": "_dir_mtime_iso()"
},
{
@@ -60714,7 +62478,7 @@
"source_file": "src/exlab_wizard/orchestrator/staging_query.py",
"source_location": "L198",
"id": "orchestrator_staging_query_parse_iso",
- "community": 213,
+ "community": 11,
"norm_label": "_parse_iso()"
},
{
@@ -60723,7 +62487,7 @@
"source_file": "src/exlab_wizard/orchestrator/staging_query.py",
"source_location": "L204",
"id": "orchestrator_staging_query_iso_to_epoch",
- "community": 213,
+ "community": 11,
"norm_label": "_iso_to_epoch()"
},
{
@@ -60732,7 +62496,7 @@
"source_file": "src/exlab_wizard/orchestrator/staging_query.py",
"source_location": "L1",
"id": "orchestrator_staging_query_rationale_1",
- "community": 213,
+ "community": 11,
"norm_label": "read-only enumeration of runs pending nas sync. backend spec \u00a713.8. the orchest"
},
{
@@ -60741,7 +62505,7 @@
"source_file": "src/exlab_wizard/orchestrator/staging_query.py",
"source_location": "L45",
"id": "orchestrator_staging_query_rationale_45",
- "community": 7,
+ "community": 6,
"norm_label": "one row in the orchestrator's staging panel. backend spec \u00a713.8: * ``p"
},
{
@@ -60750,7 +62514,7 @@
"source_file": "src/exlab_wizard/orchestrator/staging_query.py",
"source_location": "L80",
"id": "orchestrator_staging_query_rationale_80",
- "community": 131,
+ "community": 11,
"norm_label": "enumerate every staged run with its derived lifecycle state. ``staging_root"
},
{
@@ -60759,7 +62523,7 @@
"source_file": "src/exlab_wizard/orchestrator/staging_query.py",
"source_location": "L125",
"id": "orchestrator_staging_query_rationale_125",
- "community": 213,
+ "community": 11,
"norm_label": "build a :class:`stagedrunsummary` for ``run_path``. equipment id / project"
},
{
@@ -60768,7 +62532,7 @@
"source_file": "src/exlab_wizard/orchestrator/staging_query.py",
"source_location": "L150",
"id": "orchestrator_staging_query_rationale_150",
- "community": 213,
+ "community": 11,
"norm_label": "return the derived ``sync_state.json`` rollup for ``run_path``. reads the r"
},
{
@@ -60777,7 +62541,7 @@
"source_file": "src/exlab_wizard/orchestrator/staging_query.py",
"source_location": "L166",
"id": "orchestrator_staging_query_rationale_166",
- "community": 213,
+ "community": 11,
"norm_label": "return ``(equipment_id, project_name, run_kind)`` from the run path. falls"
},
{
@@ -60786,7 +62550,7 @@
"source_file": "src/exlab_wizard/orchestrator/staging_query.py",
"source_location": "L190",
"id": "orchestrator_staging_query_rationale_190",
- "community": 213,
+ "community": 11,
"norm_label": "return the run directory mtime as a utc iso-8601 string."
},
{
@@ -60795,7 +62559,7 @@
"source_file": "src/exlab_wizard/orchestrator/staging_query.py",
"source_location": "L199",
"id": "orchestrator_staging_query_rationale_199",
- "community": 213,
+ "community": 11,
"norm_label": "parse an iso-8601 ``z``-suffixed timestamp; fall back on error."
},
{
@@ -60804,164 +62568,47 @@
"source_file": "src/exlab_wizard/orchestrator/staging_query.py",
"source_location": "L205",
"id": "orchestrator_staging_query_rationale_205",
- "community": 213,
+ "community": 11,
"norm_label": "sort key helper -- returns 0.0 if ``value`` cannot be parsed."
},
{
- "label": "RESUME.md",
+ "label": "README.md",
"file_type": "document",
- "source_file": "RESUME.md",
+ "source_file": "README.md",
"source_location": "L1",
- "id": "resume_md",
- "community": 230,
- "norm_label": "resume.md"
+ "id": "readme_md",
+ "community": 214,
+ "norm_label": "readme.md"
},
{
- "label": "RESUME \u2014 Main-window UI refresh (Phase 4 done; post-demo UI batch committed)",
+ "label": "ExLabWizard",
"file_type": "document",
- "source_file": "RESUME.md",
+ "source_file": "README.md",
"source_location": "L1",
- "id": "exlabwizard_resume_resume_main_window_ui_refresh_phase_4_done_post_demo_ui_batch_committed",
- "community": 230,
- "norm_label": "resume \u2014 main-window ui refresh (phase 4 done; post-demo ui batch committed)"
+ "id": "exlabwizard_readme_exlabwizard",
+ "community": 214,
+ "norm_label": "exlabwizard"
},
{
- "label": "\u23e9 CURRENT STATE (2026-05-29, session 2)",
+ "label": "Context",
"file_type": "document",
- "source_file": "RESUME.md",
- "source_location": "L7",
- "id": "exlabwizard_resume_current_state_2026_05_29_session_2",
- "community": 230,
- "norm_label": "\u23e9 current state (2026-05-29, session 2)"
+ "source_file": "README.md",
+ "source_location": "L10",
+ "id": "exlabwizard_readme_context",
+ "community": 214,
+ "norm_label": "context"
},
{
- "label": "How to work (lessons from this session \u2014 important)",
+ "label": "Installation",
"file_type": "document",
- "source_file": "RESUME.md",
- "source_location": "L47",
- "id": "exlabwizard_resume_how_to_work_lessons_from_this_session_important",
- "community": 230,
- "norm_label": "how to work (lessons from this session \u2014 important)"
+ "source_file": "README.md",
+ "source_location": "L20",
+ "id": "exlabwizard_readme_installation",
+ "community": 214,
+ "norm_label": "installation"
},
{
- "label": "Where things stand",
- "file_type": "document",
- "source_file": "RESUME.md",
- "source_location": "L70",
- "id": "exlabwizard_resume_where_things_stand",
- "community": 230,
- "norm_label": "where things stand"
- },
- {
- "label": "Committed (clean) \u2014 Phases 1\u20133",
- "file_type": "document",
- "source_file": "RESUME.md",
- "source_location": "L78",
- "id": "exlabwizard_resume_committed_clean_phases_1_3",
- "community": 230,
- "norm_label": "committed (clean) \u2014 phases 1\u20133"
- },
- {
- "label": "UNCOMMITTED partial Phase 4 (working tree, additive + backward-compatible)",
- "file_type": "document",
- "source_file": "RESUME.md",
- "source_location": "L86",
- "id": "exlabwizard_resume_uncommitted_partial_phase_4_working_tree_additive_backward_compatible",
- "community": 230,
- "norm_label": "uncommitted partial phase 4 (working tree, additive + backward-compatible)"
- },
- {
- "label": "Phase 4 remaining work (Option B \u2014 selection \u2192 metadata)",
- "file_type": "document",
- "source_file": "RESUME.md",
- "source_location": "L100",
- "id": "exlabwizard_resume_phase_4_remaining_work_option_b_selection_metadata",
- "community": 230,
- "norm_label": "phase 4 remaining work (option b \u2014 selection \u2192 metadata)"
- },
- {
- "label": "Tests to add (Phase 4)",
- "file_type": "document",
- "source_file": "RESUME.md",
- "source_location": "L148",
- "id": "exlabwizard_resume_tests_to_add_phase_4",
- "community": 230,
- "norm_label": "tests to add (phase 4)"
- },
- {
- "label": "Demo checkpoint (task #6, after Phase 4 verifies green)",
- "file_type": "document",
- "source_file": "RESUME.md",
- "source_location": "L158",
- "id": "exlabwizard_resume_demo_checkpoint_task_6_after_phase_4_verifies_green",
- "community": 230,
- "norm_label": "demo checkpoint (task #6, after phase 4 verifies green)"
- },
- {
- "label": "Code-review findings to honor (from earlier passes)",
- "file_type": "document",
- "source_file": "RESUME.md",
- "source_location": "L164",
- "id": "exlabwizard_resume_code_review_findings_to_honor_from_earlier_passes",
- "community": 230,
- "norm_label": "code-review findings to honor (from earlier passes)"
- },
- {
- "label": "Quick resume verification (run sequentially, one at a time)",
- "file_type": "document",
- "source_file": "RESUME.md",
- "source_location": "L171",
- "id": "exlabwizard_resume_quick_resume_verification_run_sequentially_one_at_a_time",
- "community": 230,
- "norm_label": "quick resume verification (run sequentially, one at a time)"
- },
- {
- "label": "code:block1 (git branch --show-current # feature/gui-imrprovemen)",
- "file_type": "document",
- "source_file": "RESUME.md",
- "source_location": "L172",
- "id": "exlabwizard_resume_codeblock_1",
- "community": 230,
- "norm_label": "code:block1 (git branch --show-current # feature/gui-imrprovemen)"
- },
- {
- "label": "README.md",
- "file_type": "document",
- "source_file": "README.md",
- "source_location": "L1",
- "id": "readme_md",
- "community": 214,
- "norm_label": "readme.md"
- },
- {
- "label": "ExLabWizard",
- "file_type": "document",
- "source_file": "README.md",
- "source_location": "L1",
- "id": "exlabwizard_readme_exlabwizard",
- "community": 214,
- "norm_label": "exlabwizard"
- },
- {
- "label": "Context",
- "file_type": "document",
- "source_file": "README.md",
- "source_location": "L10",
- "id": "exlabwizard_readme_context",
- "community": 214,
- "norm_label": "context"
- },
- {
- "label": "Installation",
- "file_type": "document",
- "source_file": "README.md",
- "source_location": "L20",
- "id": "exlabwizard_readme_installation",
- "community": 214,
- "norm_label": "installation"
- },
- {
- "label": "Prerequisites",
+ "label": "Prerequisites",
"file_type": "document",
"source_file": "README.md",
"source_location": "L22",
@@ -61083,7 +62730,7 @@
"source_file": "DESIGN.md",
"source_location": "L1",
"id": "design_md",
- "community": 314,
+ "community": 313,
"norm_label": "design.md"
},
{
@@ -61092,7 +62739,7 @@
"source_file": "DESIGN.md",
"source_location": "L1",
"id": "exlabwizard_design_frontend_design_style_guide",
- "community": 314,
+ "community": 313,
"norm_label": "frontend design style guide"
},
{
@@ -61101,7 +62748,7 @@
"source_file": "DESIGN.md",
"source_location": "L12",
"id": "exlabwizard_design_absolute_constraints",
- "community": 314,
+ "community": 313,
"norm_label": "absolute constraints"
},
{
@@ -61110,7 +62757,7 @@
"source_file": "DESIGN.md",
"source_location": "L37",
"id": "exlabwizard_design_00_logo_and_branding",
- "community": 314,
+ "community": 313,
"norm_label": "00 -- logo and branding"
},
{
@@ -61119,7 +62766,7 @@
"source_file": "DESIGN.md",
"source_location": "L44",
"id": "exlabwizard_design_01_color_palette",
- "community": 335,
+ "community": 337,
"norm_label": "01 -- color palette"
},
{
@@ -61128,7 +62775,7 @@
"source_file": "DESIGN.md",
"source_location": "L46",
"id": "exlabwizard_design_primary_colors_ui_only",
- "community": 335,
+ "community": 337,
"norm_label": "primary colors -- ui only"
},
{
@@ -61137,7 +62784,7 @@
"source_file": "DESIGN.md",
"source_location": "L59",
"id": "exlabwizard_design_data_colors_okabe_ito_visualization_only",
- "community": 335,
+ "community": 337,
"norm_label": "data colors -- okabe-ito -- visualization only"
},
{
@@ -61146,7 +62793,7 @@
"source_file": "DESIGN.md",
"source_location": "L90",
"id": "exlabwizard_design_surface_neutral_tokens",
- "community": 335,
+ "community": 337,
"norm_label": "surface & neutral tokens"
},
{
@@ -61155,7 +62802,7 @@
"source_file": "DESIGN.md",
"source_location": "L100",
"id": "exlabwizard_design_main_window_surface_interaction_tokens_2026_05_29_ui_refresh",
- "community": 335,
+ "community": 337,
"norm_label": "main-window surface & interaction tokens (2026-05-29 ui refresh)"
},
{
@@ -61164,7 +62811,7 @@
"source_file": "DESIGN.md",
"source_location": "L117",
"id": "exlabwizard_design_semantic_color_assignments",
- "community": 335,
+ "community": 337,
"norm_label": "semantic color assignments"
},
{
@@ -61173,7 +62820,7 @@
"source_file": "DESIGN.md",
"source_location": "L126",
"id": "exlabwizard_design_color_selection_decision_logic",
- "community": 335,
+ "community": 337,
"norm_label": "color selection decision logic"
},
{
@@ -61182,7 +62829,7 @@
"source_file": "DESIGN.md",
"source_location": "L148",
"id": "exlabwizard_design_02_typography",
- "community": 362,
+ "community": 363,
"norm_label": "02 -- typography"
},
{
@@ -61191,7 +62838,7 @@
"source_file": "DESIGN.md",
"source_location": "L153",
"id": "exlabwizard_design_codeblock_1",
- "community": 362,
+ "community": 363,
"norm_label": "code:css (--font-display: 'dm serif display', georgia, serif;)"
},
{
@@ -61200,7 +62847,7 @@
"source_file": "DESIGN.md",
"source_location": "L161",
"id": "exlabwizard_design_codeblock_2",
- "community": 362,
+ "community": 363,
"norm_label": "code:html (/)"
},
{
@@ -63324,7 +64998,7 @@
"source_file": "docs/source/superpowers/specs/2026-05-14-gui-orchestrator-redesign-design.md",
"source_location": "L141",
"id": "specs_2026_05_14_gui_orchestrator_redesign_design_4_main_window_redesign",
- "community": 102,
+ "community": 105,
"norm_label": "4. main window redesign"
},
{
@@ -63333,7 +65007,7 @@
"source_file": "docs/source/superpowers/specs/2026-05-14-gui-orchestrator-redesign-design.md",
"source_location": "L143",
"id": "specs_2026_05_14_gui_orchestrator_redesign_design_4_1_layout",
- "community": 102,
+ "community": 105,
"norm_label": "4.1 layout"
},
{
@@ -63342,7 +65016,7 @@
"source_file": "docs/source/superpowers/specs/2026-05-14-gui-orchestrator-redesign-design.md",
"source_location": "L147",
"id": "specs_2026_05_14_gui_orchestrator_redesign_design_codeblock_2",
- "community": 102,
+ "community": 105,
"norm_label": "code:block2 (\u250c\u2500 header toolbar: new project \u00b7 new run \u00b7 new test run \u00b7 ad)"
},
{
@@ -63351,7 +65025,7 @@
"source_file": "docs/source/superpowers/specs/2026-05-14-gui-orchestrator-redesign-design.md",
"source_location": "L162",
"id": "specs_2026_05_14_gui_orchestrator_redesign_design_4_2_left_tree",
- "community": 102,
+ "community": 105,
"norm_label": "4.2 left \u2014 tree"
},
{
@@ -63360,7 +65034,7 @@
"source_file": "docs/source/superpowers/specs/2026-05-14-gui-orchestrator-redesign-design.md",
"source_location": "L174",
"id": "specs_2026_05_14_gui_orchestrator_redesign_design_4_3_centre_live_file_list",
- "community": 102,
+ "community": 105,
"norm_label": "4.3 centre \u2014 live file list"
},
{
@@ -63369,7 +65043,7 @@
"source_file": "docs/source/superpowers/specs/2026-05-14-gui-orchestrator-redesign-design.md",
"source_location": "L189",
"id": "specs_2026_05_14_gui_orchestrator_redesign_design_4_4_right_metadata_problems_pane_collapsible",
- "community": 102,
+ "community": 105,
"norm_label": "4.4 right \u2014 metadata / problems pane (collapsible)"
},
{
@@ -63378,7 +65052,7 @@
"source_file": "docs/source/superpowers/specs/2026-05-14-gui-orchestrator-redesign-design.md",
"source_location": "L211",
"id": "specs_2026_05_14_gui_orchestrator_redesign_design_4_5_travelling_problem_badge",
- "community": 102,
+ "community": 105,
"norm_label": "4.5 travelling problem badge"
},
{
@@ -63387,7 +65061,7 @@
"source_file": "docs/source/superpowers/specs/2026-05-14-gui-orchestrator-redesign-design.md",
"source_location": "L222",
"id": "specs_2026_05_14_gui_orchestrator_redesign_design_4_6_footer_status_bar_relocated_staging_actions",
- "community": 102,
+ "community": 105,
"norm_label": "4.6 footer status bar & relocated staging actions"
},
{
@@ -63396,7 +65070,7 @@
"source_file": "docs/source/superpowers/specs/2026-05-14-gui-orchestrator-redesign-design.md",
"source_location": "L239",
"id": "specs_2026_05_14_gui_orchestrator_redesign_design_4_7_header_toolbar_breadcrumb",
- "community": 102,
+ "community": 105,
"norm_label": "4.7 header toolbar & breadcrumb"
},
{
@@ -63405,7 +65079,7 @@
"source_file": "docs/source/superpowers/specs/2026-05-14-gui-orchestrator-redesign-design.md",
"source_location": "L248",
"id": "specs_2026_05_14_gui_orchestrator_redesign_design_5_live_file_feed_approach_1_poll_only",
- "community": 102,
+ "community": 105,
"norm_label": "5. live file feed (approach 1 \u2014 poll-only)"
},
{
@@ -63414,7 +65088,7 @@
"source_file": "docs/source/superpowers/specs/2026-05-14-gui-orchestrator-redesign-design.md",
"source_location": "L276",
"id": "specs_2026_05_14_gui_orchestrator_redesign_design_6_add_equipment_wizard",
- "community": 102,
+ "community": 105,
"norm_label": "6. add-equipment wizard"
},
{
@@ -63423,7 +65097,7 @@
"source_file": "docs/source/superpowers/specs/2026-05-14-gui-orchestrator-redesign-design.md",
"source_location": "L299",
"id": "specs_2026_05_14_gui_orchestrator_redesign_design_7_interaction_decisions",
- "community": 102,
+ "community": 105,
"norm_label": "7. interaction decisions"
},
{
@@ -63432,7 +65106,7 @@
"source_file": "docs/source/superpowers/specs/2026-05-14-gui-orchestrator-redesign-design.md",
"source_location": "L313",
"id": "specs_2026_05_14_gui_orchestrator_redesign_design_8_configuration_schema_changes",
- "community": 102,
+ "community": 105,
"norm_label": "8. configuration schema changes"
},
{
@@ -63441,7 +65115,7 @@
"source_file": "docs/source/superpowers/specs/2026-05-14-gui-orchestrator-redesign-design.md",
"source_location": "L327",
"id": "specs_2026_05_14_gui_orchestrator_redesign_design_9_code_impact_map",
- "community": 102,
+ "community": 105,
"norm_label": "9. code impact map"
},
{
@@ -63450,7 +65124,7 @@
"source_file": "docs/source/superpowers/specs/2026-05-14-gui-orchestrator-redesign-design.md",
"source_location": "L349",
"id": "specs_2026_05_14_gui_orchestrator_redesign_design_9_1_gui_wiring",
- "community": 102,
+ "community": 105,
"norm_label": "9.1 gui wiring"
},
{
@@ -63459,7 +65133,7 @@
"source_file": "docs/source/superpowers/specs/2026-05-14-gui-orchestrator-redesign-design.md",
"source_location": "L401",
"id": "specs_2026_05_14_gui_orchestrator_redesign_design_10_error_handling",
- "community": 102,
+ "community": 105,
"norm_label": "10. error handling"
},
{
@@ -63468,7 +65142,7 @@
"source_file": "docs/source/superpowers/specs/2026-05-14-gui-orchestrator-redesign-design.md",
"source_location": "L430",
"id": "specs_2026_05_14_gui_orchestrator_redesign_design_11_testing_strategy",
- "community": 102,
+ "community": 105,
"norm_label": "11. testing strategy"
},
{
@@ -63477,7 +65151,7 @@
"source_file": "docs/source/superpowers/specs/2026-05-14-gui-orchestrator-redesign-design.md",
"source_location": "L477",
"id": "specs_2026_05_14_gui_orchestrator_redesign_design_12_future_v1_x",
- "community": 102,
+ "community": 105,
"norm_label": "12. future (v1.x)"
},
{
@@ -63486,7 +65160,7 @@
"source_file": "docs/source/plugin_guide/manifest_schema.md",
"source_location": "L1",
"id": "docs_source_plugin_guide_manifest_schema_md",
- "community": 267,
+ "community": 273,
"norm_label": "manifest_schema.md"
},
{
@@ -63495,7 +65169,7 @@
"source_file": "docs/source/plugin_guide/manifest_schema.md",
"source_location": "L1",
"id": "plugin_guide_manifest_schema_manifest_schema",
- "community": 267,
+ "community": 273,
"norm_label": "manifest schema"
},
{
@@ -63504,7 +65178,7 @@
"source_file": "docs/source/plugin_guide/manifest_schema.md",
"source_location": "L9",
"id": "plugin_guide_manifest_schema_required_identity_fields",
- "community": 267,
+ "community": 273,
"norm_label": "required identity fields"
},
{
@@ -63513,7 +65187,7 @@
"source_file": "docs/source/plugin_guide/manifest_schema.md",
"source_location": "L11",
"id": "plugin_guide_manifest_schema_codeblock_1",
- "community": 267,
+ "community": 273,
"norm_label": "code:yaml (name: \"xlsx_field_filler\")"
},
{
@@ -63522,7 +65196,7 @@
"source_file": "docs/source/plugin_guide/manifest_schema.md",
"source_location": "L18",
"id": "plugin_guide_manifest_schema_required_dispatch_fields",
- "community": 267,
+ "community": 273,
"norm_label": "required dispatch fields"
},
{
@@ -63531,7 +65205,7 @@
"source_file": "docs/source/plugin_guide/manifest_schema.md",
"source_location": "L20",
"id": "plugin_guide_manifest_schema_codeblock_2",
- "community": 267,
+ "community": 273,
"norm_label": "code:yaml (supported_extensions: [\".xlsx\"] # file-extension or \"readm)"
},
{
@@ -63540,7 +65214,7 @@
"source_file": "docs/source/plugin_guide/manifest_schema.md",
"source_location": "L30",
"id": "plugin_guide_manifest_schema_optional_declaration_block",
- "community": 267,
+ "community": 273,
"norm_label": "optional declaration block"
},
{
@@ -63549,7 +65223,7 @@
"source_file": "docs/source/plugin_guide/manifest_schema.md",
"source_location": "L32",
"id": "plugin_guide_manifest_schema_codeblock_3",
- "community": 267,
+ "community": 273,
"norm_label": "code:yaml (required_variables:)"
},
{
@@ -63558,7 +65232,7 @@
"source_file": "docs/source/plugin_guide/manifest_schema.md",
"source_location": "L48",
"id": "plugin_guide_manifest_schema_optional_execution_policy",
- "community": 267,
+ "community": 273,
"norm_label": "optional execution policy"
},
{
@@ -63567,7 +65241,7 @@
"source_file": "docs/source/plugin_guide/manifest_schema.md",
"source_location": "L50",
"id": "plugin_guide_manifest_schema_codeblock_4",
- "community": 267,
+ "community": 273,
"norm_label": "code:yaml (isolation:)"
},
{
@@ -63576,7 +65250,7 @@
"source_file": "docs/source/plugin_guide/manifest_schema.md",
"source_location": "L61",
"id": "plugin_guide_manifest_schema_discovery_rules",
- "community": 267,
+ "community": 273,
"norm_label": "discovery rules"
},
{
@@ -63585,7 +65259,7 @@
"source_file": "docs/source/plugin_guide/ipc_envelope.md",
"source_location": "L1",
"id": "docs_source_plugin_guide_ipc_envelope_md",
- "community": 318,
+ "community": 317,
"norm_label": "ipc_envelope.md"
},
{
@@ -63594,7 +65268,7 @@
"source_file": "docs/source/plugin_guide/ipc_envelope.md",
"source_location": "L1",
"id": "plugin_guide_ipc_envelope_ipc_envelope",
- "community": 318,
+ "community": 317,
"norm_label": "ipc envelope"
},
{
@@ -63603,7 +65277,7 @@
"source_file": "docs/source/plugin_guide/ipc_envelope.md",
"source_location": "L12",
"id": "plugin_guide_ipc_envelope_stdin_host_to_worker",
- "community": 318,
+ "community": 317,
"norm_label": "stdin (host to worker)"
},
{
@@ -63612,7 +65286,7 @@
"source_file": "docs/source/plugin_guide/ipc_envelope.md",
"source_location": "L16",
"id": "plugin_guide_ipc_envelope_codeblock_1",
- "community": 318,
+ "community": 317,
"norm_label": "code:json ({)"
},
{
@@ -63621,7 +65295,7 @@
"source_file": "docs/source/plugin_guide/ipc_envelope.md",
"source_location": "L31",
"id": "plugin_guide_ipc_envelope_stdout_worker_to_host",
- "community": 318,
+ "community": 317,
"norm_label": "stdout (worker to host)"
},
{
@@ -63630,7 +65304,7 @@
"source_file": "docs/source/plugin_guide/ipc_envelope.md",
"source_location": "L35",
"id": "plugin_guide_ipc_envelope_codeblock_2",
- "community": 318,
+ "community": 317,
"norm_label": "code:json ({)"
},
{
@@ -63639,7 +65313,7 @@
"source_file": "docs/source/plugin_guide/ipc_envelope.md",
"source_location": "L54",
"id": "plugin_guide_ipc_envelope_stderr_structured_log_channel",
- "community": 318,
+ "community": 317,
"norm_label": "stderr (structured log channel)"
},
{
@@ -63648,7 +65322,7 @@
"source_file": "docs/source/plugin_guide/ipc_envelope.md",
"source_location": "L61",
"id": "plugin_guide_ipc_envelope_exit_codes",
- "community": 318,
+ "community": 317,
"norm_label": "exit codes"
},
{
@@ -63657,7 +65331,7 @@
"source_file": "docs/source/plugin_guide/index.md",
"source_location": "L1",
"id": "docs_source_plugin_guide_index_md",
- "community": 342,
+ "community": 344,
"norm_label": "index.md"
},
{
@@ -63666,7 +65340,7 @@
"source_file": "docs/source/plugin_guide/index.md",
"source_location": "L1",
"id": "plugin_guide_index_plugin_author_guide",
- "community": 342,
+ "community": 344,
"norm_label": "plugin author guide"
},
{
@@ -63675,7 +65349,7 @@
"source_file": "docs/source/plugin_guide/index.md",
"source_location": "L9",
"id": "plugin_guide_index_what_plugins_do",
- "community": 342,
+ "community": 344,
"norm_label": "what plugins do"
},
{
@@ -63684,7 +65358,7 @@
"source_file": "docs/source/plugin_guide/index.md",
"source_location": "L21",
"id": "plugin_guide_index_where_plugins_fit_in_the_pipeline",
- "community": 342,
+ "community": 344,
"norm_label": "where plugins fit in the pipeline"
},
{
@@ -63693,7 +65367,7 @@
"source_file": "docs/source/plugin_guide/index.md",
"source_location": "L27",
"id": "plugin_guide_index_codeblock_1",
- "community": 342,
+ "community": 344,
"norm_label": "code:block1 (creation controller)"
},
{
@@ -63702,7 +65376,7 @@
"source_file": "docs/source/plugin_guide/index.md",
"source_location": "L43",
"id": "plugin_guide_index_codeblock_2",
- "community": 342,
+ "community": 344,
"norm_label": "code:{toctree} (:maxdepth: 1)"
},
{
@@ -63711,7 +65385,7 @@
"source_file": "docs/source/plugin_guide/index.md",
"source_location": "L52",
"id": "plugin_guide_index_where_to_look_in_the_codebase",
- "community": 342,
+ "community": 344,
"norm_label": "where to look in the codebase"
},
{
@@ -63720,7 +65394,7 @@
"source_file": "docs/source/plugin_guide/worked_examples.md",
"source_location": "L1",
"id": "docs_source_plugin_guide_worked_examples_md",
- "community": 343,
+ "community": 345,
"norm_label": "worked_examples.md"
},
{
@@ -63729,7 +65403,7 @@
"source_file": "docs/source/plugin_guide/worked_examples.md",
"source_location": "L1",
"id": "plugin_guide_worked_examples_worked_examples",
- "community": 343,
+ "community": 345,
"norm_label": "worked examples"
},
{
@@ -63738,7 +65412,7 @@
"source_file": "docs/source/plugin_guide/worked_examples.md",
"source_location": "L8",
"id": "plugin_guide_worked_examples_hello_plugin",
- "community": 343,
+ "community": 345,
"norm_label": "hello plugin"
},
{
@@ -63747,7 +65421,7 @@
"source_file": "docs/source/plugin_guide/worked_examples.md",
"source_location": "L19",
"id": "plugin_guide_worked_examples_xlsx_field_filler",
- "community": 343,
+ "community": 345,
"norm_label": "xlsx_field_filler"
},
{
@@ -63756,7 +65430,7 @@
"source_file": "docs/source/plugin_guide/worked_examples.md",
"source_location": "L39",
"id": "plugin_guide_worked_examples_docx_variable_replacer",
- "community": 343,
+ "community": 345,
"norm_label": "docx_variable_replacer"
},
{
@@ -63765,7 +65439,7 @@
"source_file": "docs/source/plugin_guide/worked_examples.md",
"source_location": "L49",
"id": "plugin_guide_worked_examples_where_to_look_in_the_codebase",
- "community": 343,
+ "community": 345,
"norm_label": "where to look in the codebase"
},
{
@@ -63774,7 +65448,7 @@
"source_file": "docs/source/plugin_guide/worked_examples.md",
"source_location": "L62",
"id": "plugin_guide_worked_examples_codeblock_1",
- "community": 343,
+ "community": 345,
"norm_label": "code:block1 (pip install -e .[plugin-examples])"
},
{
@@ -63783,7 +65457,7 @@
"source_file": "docs/setup/rclone-remote-setup.md",
"source_location": "L1",
"id": "docs_setup_rclone_remote_setup_md",
- "community": 75,
+ "community": 84,
"norm_label": "rclone-remote-setup.md"
},
{
@@ -63792,7 +65466,7 @@
"source_file": "docs/setup/rclone-remote-setup.md",
"source_location": "L1",
"id": "setup_rclone_remote_setup_setting_up_your_rclone_remote_s",
- "community": 75,
+ "community": 84,
"norm_label": "setting up your rclone remote(s)"
},
{
@@ -63801,7 +65475,7 @@
"source_file": "docs/setup/rclone-remote-setup.md",
"source_location": "L10",
"id": "setup_rclone_remote_setup_why_this_approach",
- "community": 75,
+ "community": 84,
"norm_label": "why this approach"
},
{
@@ -63810,7 +65484,7 @@
"source_file": "docs/setup/rclone-remote-setup.md",
"source_location": "L24",
"id": "setup_rclone_remote_setup_prerequisites",
- "community": 75,
+ "community": 84,
"norm_label": "prerequisites"
},
{
@@ -63819,7 +65493,7 @@
"source_file": "docs/setup/rclone-remote-setup.md",
"source_location": "L29",
"id": "setup_rclone_remote_setup_codeblock_1",
- "community": 75,
+ "community": 84,
"norm_label": "code:bash (# macos)"
},
{
@@ -63828,7 +65502,7 @@
"source_file": "docs/setup/rclone-remote-setup.md",
"source_location": "L41",
"id": "setup_rclone_remote_setup_codeblock_2",
- "community": 75,
+ "community": 84,
"norm_label": "code:bash (rclone version)"
},
{
@@ -63837,7 +65511,7 @@
"source_file": "docs/setup/rclone-remote-setup.md",
"source_location": "L47",
"id": "setup_rclone_remote_setup_creating_a_remote_with_rclone_config",
- "community": 75,
+ "community": 84,
"norm_label": "creating a remote with `rclone config`"
},
{
@@ -63846,7 +65520,7 @@
"source_file": "docs/setup/rclone-remote-setup.md",
"source_location": "L52",
"id": "setup_rclone_remote_setup_sftp_remote",
- "community": 75,
+ "community": 84,
"norm_label": "sftp remote"
},
{
@@ -63855,7 +65529,7 @@
"source_file": "docs/setup/rclone-remote-setup.md",
"source_location": "L54",
"id": "setup_rclone_remote_setup_codeblock_3",
- "community": 75,
+ "community": 84,
"norm_label": "code:block3 ($ rclone config)"
},
{
@@ -63864,7 +65538,7 @@
"source_file": "docs/setup/rclone-remote-setup.md",
"source_location": "L89",
"id": "setup_rclone_remote_setup_codeblock_4",
- "community": 75,
+ "community": 84,
"norm_label": "code:ini ([lab-nas])"
},
{
@@ -63873,7 +65547,7 @@
"source_file": "docs/setup/rclone-remote-setup.md",
"source_location": "L99",
"id": "setup_rclone_remote_setup_codeblock_5",
- "community": 75,
+ "community": 84,
"norm_label": "code:bash (rclone lsd lab-nas:)"
},
{
@@ -63882,7 +65556,7 @@
"source_file": "docs/setup/rclone-remote-setup.md",
"source_location": "L103",
"id": "setup_rclone_remote_setup_smb_samba_remote",
- "community": 75,
+ "community": 84,
"norm_label": "smb / samba remote"
},
{
@@ -63891,7 +65565,7 @@
"source_file": "docs/setup/rclone-remote-setup.md",
"source_location": "L105",
"id": "setup_rclone_remote_setup_codeblock_6",
- "community": 75,
+ "community": 84,
"norm_label": "code:block6 ($ rclone config)"
},
{
@@ -63900,7 +65574,7 @@
"source_file": "docs/setup/rclone-remote-setup.md",
"source_location": "L127",
"id": "setup_rclone_remote_setup_codeblock_7",
- "community": 75,
+ "community": 84,
"norm_label": "code:ini ([lab-smb])"
},
{
@@ -63909,7 +65583,7 @@
"source_file": "docs/setup/rclone-remote-setup.md",
"source_location": "L137",
"id": "setup_rclone_remote_setup_codeblock_8",
- "community": 75,
+ "community": 84,
"norm_label": "code:bash (rclone lsd lab-smb:labshare)"
},
{
@@ -63918,7 +65592,7 @@
"source_file": "docs/setup/rclone-remote-setup.md",
"source_location": "L143",
"id": "setup_rclone_remote_setup_wiring_the_remote_to_exlab_wizard",
- "community": 75,
+ "community": 84,
"norm_label": "wiring the remote to exlab-wizard"
},
{
@@ -63927,7 +65601,7 @@
"source_file": "docs/setup/rclone-remote-setup.md",
"source_location": "L147",
"id": "setup_rclone_remote_setup_codeblock_9",
- "community": 75,
+ "community": 84,
"norm_label": "code:yaml (nas:)"
},
{
@@ -63936,7 +65610,7 @@
"source_file": "docs/setup/rclone-remote-setup.md",
"source_location": "L161",
"id": "setup_rclone_remote_setup_codeblock_10",
- "community": 75,
+ "community": 84,
"norm_label": "code:block10 (:///)"
},
{
@@ -63945,7 +65619,7 @@
"source_file": "docs/setup/rclone-remote-setup.md",
"source_location": "L170",
"id": "setup_rclone_remote_setup_verifying_the_connection",
- "community": 75,
+ "community": 84,
"norm_label": "verifying the connection"
},
{
@@ -63954,7 +65628,7 @@
"source_file": "docs/setup/rclone-remote-setup.md",
"source_location": "L178",
"id": "setup_rclone_remote_setup_codeblock_11",
- "community": 75,
+ "community": 84,
"norm_label": "code:bash (# confirm the remote answers)"
},
{
@@ -63963,7 +65637,7 @@
"source_file": "docs/setup/rclone-remote-setup.md",
"source_location": "L189",
"id": "setup_rclone_remote_setup_codeblock_12",
- "community": 75,
+ "community": 84,
"norm_label": "code:bash (rclone --config /path/to/rclone.conf about lab-nas:)"
},
{
@@ -63972,7 +65646,7 @@
"source_file": "docs/setup/rclone-remote-setup.md",
"source_location": "L195",
"id": "setup_rclone_remote_setup_performance_and_memory_tuning",
- "community": 75,
+ "community": 84,
"norm_label": "performance and memory tuning"
},
{
@@ -63981,7 +65655,7 @@
"source_file": "docs/setup/rclone-remote-setup.md",
"source_location": "L201",
"id": "setup_rclone_remote_setup_codeblock_13",
- "community": 75,
+ "community": 84,
"norm_label": "code:yaml (nas:)"
},
{
@@ -63990,7 +65664,7 @@
"source_file": "docs/setup/rclone-remote-setup.md",
"source_location": "L216",
"id": "setup_rclone_remote_setup_codeblock_14",
- "community": 75,
+ "community": 84,
"norm_label": "code:yaml (nas:)"
},
{
@@ -63999,7 +65673,7 @@
"source_file": "docs/setup/rclone-remote-setup.md",
"source_location": "L231",
"id": "setup_rclone_remote_setup_modtime_tolerance",
- "community": 75,
+ "community": 84,
"norm_label": "modtime tolerance"
},
{
@@ -64008,7 +65682,7 @@
"source_file": "docs/setup/rclone-remote-setup.md",
"source_location": "L237",
"id": "setup_rclone_remote_setup_codeblock_15",
- "community": 75,
+ "community": 84,
"norm_label": "code:yaml (nas:)"
},
{
@@ -64017,7 +65691,7 @@
"source_file": "docs/setup/rclone-remote-setup.md",
"source_location": "L244",
"id": "setup_rclone_remote_setup_pinning_the_rclone_conf_path",
- "community": 75,
+ "community": 84,
"norm_label": "pinning the rclone.conf path"
},
{
@@ -64026,7 +65700,7 @@
"source_file": "docs/setup/rclone-remote-setup.md",
"source_location": "L252",
"id": "setup_rclone_remote_setup_codeblock_16",
- "community": 75,
+ "community": 84,
"norm_label": "code:yaml (nas:)"
},
{
@@ -64035,7 +65709,7 @@
"source_file": "docs/setup/rclone-remote-setup.md",
"source_location": "L265",
"id": "setup_rclone_remote_setup_encrypted_rclone_conf",
- "community": 75,
+ "community": 84,
"norm_label": "encrypted rclone.conf"
},
{
@@ -64044,7 +65718,7 @@
"source_file": "docs/setup/rclone-remote-setup.md",
"source_location": "L274",
"id": "setup_rclone_remote_setup_stage_mode_devices_orchestrator_hop",
- "community": 75,
+ "community": 84,
"norm_label": "stage-mode devices (orchestrator hop)"
},
{
@@ -64053,7 +65727,7 @@
"source_file": "docs/setup/rclone-remote-setup.md",
"source_location": "L281",
"id": "setup_rclone_remote_setup_codeblock_17",
- "community": 75,
+ "community": 84,
"norm_label": "code:yaml (orchestrator:)"
},
{
@@ -64062,7 +65736,7 @@
"source_file": "docs/setup/rclone-remote-setup.md",
"source_location": "L296",
"id": "setup_rclone_remote_setup_codeblock_18",
- "community": 75,
+ "community": 84,
"norm_label": "code:block18 (:/// tuple[str, ...]:)"
},
{
@@ -64314,7 +65988,7 @@
"source_file": "docs/superpowers/plans/2026-05-28-rclone-conf-nas-sync.md",
"source_location": "L442",
"id": "plans_2026_05_28_rclone_conf_nas_sync_codeblock_16",
- "community": 239,
+ "community": 243,
"norm_label": "code:bash (git add src/exlab_wizard/sync/transports/rclone.py tests/uni)"
},
{
@@ -64323,7 +65997,7 @@
"source_file": "docs/superpowers/plans/2026-05-28-rclone-conf-nas-sync.md",
"source_location": "L449",
"id": "plans_2026_05_28_rclone_conf_nas_sync_phase_3_manifest_module_parser",
- "community": 386,
+ "community": 383,
"norm_label": "phase 3 \u2014 manifest module + parser"
},
{
@@ -64332,7 +66006,7 @@
"source_file": "docs/superpowers/plans/2026-05-28-rclone-conf-nas-sync.md",
"source_location": "L451",
"id": "plans_2026_05_28_rclone_conf_nas_sync_task_3_1_sync_manifest_py_with_parse_lsjson",
- "community": 386,
+ "community": 383,
"norm_label": "task 3.1: `sync/manifest.py` with `parse_lsjson`"
},
{
@@ -64341,7 +66015,7 @@
"source_file": "docs/superpowers/plans/2026-05-28-rclone-conf-nas-sync.md",
"source_location": "L459",
"id": "plans_2026_05_28_rclone_conf_nas_sync_codeblock_17",
- "community": 386,
+ "community": 383,
"norm_label": "code:python (# tests/unit/sync/test_manifest.py)"
},
{
@@ -64350,7 +66024,7 @@
"source_file": "docs/superpowers/plans/2026-05-28-rclone-conf-nas-sync.md",
"source_location": "L520",
"id": "plans_2026_05_28_rclone_conf_nas_sync_codeblock_18",
- "community": 386,
+ "community": 383,
"norm_label": "code:python (# src/exlab_wizard/sync/manifest.py)"
},
{
@@ -64359,7 +66033,7 @@
"source_file": "docs/superpowers/plans/2026-05-28-rclone-conf-nas-sync.md",
"source_location": "L653",
"id": "plans_2026_05_28_rclone_conf_nas_sync_codeblock_19",
- "community": 386,
+ "community": 383,
"norm_label": "code:bash (git add src/exlab_wizard/sync/manifest.py tests/unit/sync/te)"
},
{
@@ -64368,7 +66042,7 @@
"source_file": "docs/superpowers/plans/2026-05-28-rclone-conf-nas-sync.md",
"source_location": "L660",
"id": "plans_2026_05_28_rclone_conf_nas_sync_phase_4_sync_client_named_remote_lsjson_reconcile_cleanup_hash_gate",
- "community": 240,
+ "community": 244,
"norm_label": "phase 4 \u2014 sync client: named remote, lsjson reconcile, cleanup hash-gate"
},
{
@@ -64377,7 +66051,7 @@
"source_file": "docs/superpowers/plans/2026-05-28-rclone-conf-nas-sync.md",
"source_location": "L664",
"id": "plans_2026_05_28_rclone_conf_nas_sync_task_4_1_named_remote_target_builder_driver_construction_from_nas_config",
- "community": 384,
+ "community": 381,
"norm_label": "task 4.1: named-remote target builder + driver construction from `nas:` config"
},
{
@@ -64386,7 +66060,7 @@
"source_file": "docs/superpowers/plans/2026-05-28-rclone-conf-nas-sync.md",
"source_location": "L672",
"id": "plans_2026_05_28_rclone_conf_nas_sync_codeblock_20",
- "community": 384,
+ "community": 381,
"norm_label": "code:python (# tests/unit/sync/test_nas_client.py \u2014 add (uses existing he)"
},
{
@@ -64395,7 +66069,7 @@
"source_file": "docs/superpowers/plans/2026-05-28-rclone-conf-nas-sync.md",
"source_location": "L697",
"id": "plans_2026_05_28_rclone_conf_nas_sync_codeblock_21",
- "community": 384,
+ "community": 381,
"norm_label": "code:python (def _build_target_for_run(*, remote: str, base_root: str, eq)"
},
{
@@ -64404,7 +66078,7 @@
"source_file": "docs/superpowers/plans/2026-05-28-rclone-conf-nas-sync.md",
"source_location": "L722",
"id": "plans_2026_05_28_rclone_conf_nas_sync_codeblock_22",
- "community": 384,
+ "community": 381,
"norm_label": "code:python (def _build_push(self, equipment: equipmentconfig) -> callabl)"
},
{
@@ -64413,7 +66087,7 @@
"source_file": "docs/superpowers/plans/2026-05-28-rclone-conf-nas-sync.md",
"source_location": "L751",
"id": "plans_2026_05_28_rclone_conf_nas_sync_codeblock_23",
- "community": 384,
+ "community": 381,
"norm_label": "code:bash (git add src/exlab_wizard/sync/nas_client.py tests/unit/sync/)"
},
{
@@ -64422,7 +66096,7 @@
"source_file": "docs/superpowers/plans/2026-05-28-rclone-conf-nas-sync.md",
"source_location": "L758",
"id": "plans_2026_05_28_rclone_conf_nas_sync_task_4_2_verifier_py_drop_env_mask_for_log",
- "community": 240,
+ "community": 244,
"norm_label": "task 4.2: `verifier.py` \u2014 drop `env`/`mask_for_log`"
},
{
@@ -64431,7 +66105,7 @@
"source_file": "docs/superpowers/plans/2026-05-28-rclone-conf-nas-sync.md",
"source_location": "L766",
"id": "plans_2026_05_28_rclone_conf_nas_sync_codeblock_24",
- "community": 240,
+ "community": 244,
"norm_label": "code:python (# tests/unit/sync/test_transports.py \u2014 add (verifier is smal)"
},
{
@@ -64440,7 +66114,7 @@
"source_file": "docs/superpowers/plans/2026-05-28-rclone-conf-nas-sync.md",
"source_location": "L800",
"id": "plans_2026_05_28_rclone_conf_nas_sync_codeblock_25",
- "community": 240,
+ "community": 244,
"norm_label": "code:bash (git add src/exlab_wizard/sync/verifier.py tests/unit/sync/te)"
},
{
@@ -64449,7 +66123,7 @@
"source_file": "docs/superpowers/plans/2026-05-28-rclone-conf-nas-sync.md",
"source_location": "L807",
"id": "plans_2026_05_28_rclone_conf_nas_sync_task_4_3_routine_post_push_reconcile_via_lsjson_replaces_per_push_download",
- "community": 240,
+ "community": 244,
"norm_label": "task 4.3: routine post-push reconcile via lsjson (replaces per-push `--download`)"
},
{
@@ -64458,7 +66132,7 @@
"source_file": "docs/superpowers/plans/2026-05-28-rclone-conf-nas-sync.md",
"source_location": "L817",
"id": "plans_2026_05_28_rclone_conf_nas_sync_codeblock_26",
- "community": 240,
+ "community": 244,
"norm_label": "code:python (# tests/unit/sync/test_nas_client.py \u2014 add)"
},
{
@@ -64467,7 +66141,7 @@
"source_file": "docs/superpowers/plans/2026-05-28-rclone-conf-nas-sync.md",
"source_location": "L842",
"id": "plans_2026_05_28_rclone_conf_nas_sync_codeblock_27",
- "community": 240,
+ "community": 244,
"norm_label": "code:python (lsjson = self._build_lsjson(equipment))"
},
{
@@ -64476,7 +66150,7 @@
"source_file": "docs/superpowers/plans/2026-05-28-rclone-conf-nas-sync.md",
"source_location": "L892",
"id": "plans_2026_05_28_rclone_conf_nas_sync_codeblock_28",
- "community": 240,
+ "community": 244,
"norm_label": "code:bash (git add src/exlab_wizard/sync/nas_client.py tests/unit/sync/)"
},
{
@@ -64485,7 +66159,7 @@
"source_file": "docs/superpowers/plans/2026-05-28-rclone-conf-nas-sync.md",
"source_location": "L899",
"id": "plans_2026_05_28_rclone_conf_nas_sync_task_4_4_cleanup_hash_gate_real_remote_existence_probe",
- "community": 240,
+ "community": 244,
"norm_label": "task 4.4: cleanup hash-gate + real remote-existence probe"
},
{
@@ -64494,7 +66168,7 @@
"source_file": "docs/superpowers/plans/2026-05-28-rclone-conf-nas-sync.md",
"source_location": "L909",
"id": "plans_2026_05_28_rclone_conf_nas_sync_codeblock_29",
- "community": 240,
+ "community": 244,
"norm_label": "code:python (# tests/unit/sync/test_nas_client.py \u2014 add)"
},
{
@@ -64503,7 +66177,7 @@
"source_file": "docs/superpowers/plans/2026-05-28-rclone-conf-nas-sync.md",
"source_location": "L931",
"id": "plans_2026_05_28_rclone_conf_nas_sync_codeblock_30",
- "community": 240,
+ "community": 244,
"norm_label": "code:python (# integrity gate: never delete local bytes that have not bee)"
},
{
@@ -64512,7 +66186,7 @@
"source_file": "docs/superpowers/plans/2026-05-28-rclone-conf-nas-sync.md",
"source_location": "L965",
"id": "plans_2026_05_28_rclone_conf_nas_sync_codeblock_31",
- "community": 240,
+ "community": 244,
"norm_label": "code:bash (git add src/exlab_wizard/sync/nas_client.py tests/unit/sync/)"
},
{
@@ -64521,7 +66195,7 @@
"source_file": "docs/superpowers/plans/2026-05-28-rclone-conf-nas-sync.md",
"source_location": "L972",
"id": "plans_2026_05_28_rclone_conf_nas_sync_task_4_5_force_verify_drop_env_threading",
- "community": 240,
+ "community": 244,
"norm_label": "task 4.5: `force_verify` \u2014 drop env threading"
},
{
@@ -64530,7 +66204,7 @@
"source_file": "docs/superpowers/plans/2026-05-28-rclone-conf-nas-sync.md",
"source_location": "L985",
"id": "plans_2026_05_28_rclone_conf_nas_sync_codeblock_32",
- "community": 240,
+ "community": 244,
"norm_label": "code:bash (git add tests/unit/sync/test_nas_client.py)"
},
{
@@ -64539,7 +66213,7 @@
"source_file": "docs/superpowers/plans/2026-05-28-rclone-conf-nas-sync.md",
"source_location": "L992",
"id": "plans_2026_05_28_rclone_conf_nas_sync_phase_5_setup_gate_credential_removal",
- "community": 247,
+ "community": 249,
"norm_label": "phase 5 \u2014 setup gate + credential removal"
},
{
@@ -64548,7 +66222,7 @@
"source_file": "docs/superpowers/plans/2026-05-28-rclone-conf-nas-sync.md",
"source_location": "L994",
"id": "plans_2026_05_28_rclone_conf_nas_sync_task_5_1_repurpose_setup_state_enums",
- "community": 247,
+ "community": 249,
"norm_label": "task 5.1: repurpose setup-state enums"
},
{
@@ -64557,7 +66231,7 @@
"source_file": "docs/superpowers/plans/2026-05-28-rclone-conf-nas-sync.md",
"source_location": "L1002",
"id": "plans_2026_05_28_rclone_conf_nas_sync_codeblock_33",
- "community": 247,
+ "community": 249,
"norm_label": "code:python (# tests/unit/constants/test_enums.py \u2014 add)"
},
{
@@ -64566,7 +66240,7 @@
"source_file": "docs/superpowers/plans/2026-05-28-rclone-conf-nas-sync.md",
"source_location": "L1028",
"id": "plans_2026_05_28_rclone_conf_nas_sync_codeblock_34",
- "community": 247,
+ "community": 249,
"norm_label": "code:bash (git add src/exlab_wizard/constants/enums.py tests/unit/const)"
},
{
@@ -64575,7 +66249,7 @@
"source_file": "docs/superpowers/plans/2026-05-28-rclone-conf-nas-sync.md",
"source_location": "L1035",
"id": "plans_2026_05_28_rclone_conf_nas_sync_task_5_2_rewrite_the_nas_setup_gate_in_paths_py",
- "community": 247,
+ "community": 249,
"norm_label": "task 5.2: rewrite the nas setup-gate in `paths.py`"
},
{
@@ -64584,7 +66258,7 @@
"source_file": "docs/superpowers/plans/2026-05-28-rclone-conf-nas-sync.md",
"source_location": "L1045",
"id": "plans_2026_05_28_rclone_conf_nas_sync_codeblock_35",
- "community": 247,
+ "community": 249,
"norm_label": "code:python (# tests/unit/test_paths.py \u2014 add)"
},
{
@@ -64593,7 +66267,7 @@
"source_file": "docs/superpowers/plans/2026-05-28-rclone-conf-nas-sync.md",
"source_location": "L1088",
"id": "plans_2026_05_28_rclone_conf_nas_sync_codeblock_36",
- "community": 247,
+ "community": 249,
"norm_label": "code:python (def _nas_in_use(config: config) -> bool:)"
},
{
@@ -64602,7 +66276,7 @@
"source_file": "docs/superpowers/plans/2026-05-28-rclone-conf-nas-sync.md",
"source_location": "L1109",
"id": "plans_2026_05_28_rclone_conf_nas_sync_codeblock_37",
- "community": 247,
+ "community": 249,
"norm_label": "code:python (remote_lookup = nas_remote_available if nas_remote_available)"
},
{
@@ -64611,7 +66285,7 @@
"source_file": "docs/superpowers/plans/2026-05-28-rclone-conf-nas-sync.md",
"source_location": "L1117",
"id": "plans_2026_05_28_rclone_conf_nas_sync_codeblock_38",
- "community": 247,
+ "community": 249,
"norm_label": "code:python (def _missing_nas_fields(config: config | none) -> list[dict[)"
},
{
@@ -64620,7 +66294,7 @@
"source_file": "docs/superpowers/plans/2026-05-28-rclone-conf-nas-sync.md",
"source_location": "L1133",
"id": "plans_2026_05_28_rclone_conf_nas_sync_codeblock_39",
- "community": 247,
+ "community": 249,
"norm_label": "code:bash (git add src/exlab_wizard/paths.py tests/unit/test_paths.py)"
},
{
@@ -64629,7 +66303,7 @@
"source_file": "docs/superpowers/plans/2026-05-28-rclone-conf-nas-sync.md",
"source_location": "L1140",
"id": "plans_2026_05_28_rclone_conf_nas_sync_task_5_3_tray_probe_nas_sync_wiring_password_presence_removal",
- "community": 385,
+ "community": 382,
"norm_label": "task 5.3: tray probe + nas-sync wiring + password-presence removal"
},
{
@@ -64638,7 +66312,7 @@
"source_file": "docs/superpowers/plans/2026-05-28-rclone-conf-nas-sync.md",
"source_location": "L1148",
"id": "plans_2026_05_28_rclone_conf_nas_sync_codeblock_40",
- "community": 385,
+ "community": 382,
"norm_label": "code:python (# tests/unit/tray/test_dependencies.py \u2014 add/replace probe t)"
},
{
@@ -64647,7 +66321,7 @@
"source_file": "docs/superpowers/plans/2026-05-28-rclone-conf-nas-sync.md",
"source_location": "L1170",
"id": "plans_2026_05_28_rclone_conf_nas_sync_codeblock_41",
- "community": 385,
+ "community": 382,
"norm_label": "code:python (async def _probe(equipment: any) -> dict[str, any]:)"
},
{
@@ -64656,7 +66330,7 @@
"source_file": "docs/superpowers/plans/2026-05-28-rclone-conf-nas-sync.md",
"source_location": "L1190",
"id": "plans_2026_05_28_rclone_conf_nas_sync_codeblock_42",
- "community": 385,
+ "community": 382,
"norm_label": "code:python (def _hydrate_nas_remotes(config: any) -> tuple[str, ...]:)"
},
{
@@ -64665,7 +66339,7 @@
"source_file": "docs/superpowers/plans/2026-05-28-rclone-conf-nas-sync.md",
"source_location": "L1217",
"id": "plans_2026_05_28_rclone_conf_nas_sync_codeblock_43",
- "community": 385,
+ "community": 382,
"norm_label": "code:bash (git add src/exlab_wizard/tray/dependencies.py tests/unit/tra)"
},
{
@@ -64674,7 +66348,7 @@
"source_file": "docs/superpowers/plans/2026-05-28-rclone-conf-nas-sync.md",
"source_location": "L1224",
"id": "plans_2026_05_28_rclone_conf_nas_sync_task_5_4_api_surfaces_drop_nas_password_present_thread_nas_remote_available",
- "community": 247,
+ "community": 249,
"norm_label": "task 5.4: api surfaces \u2014 drop `nas_password_present`, thread `nas_remote_available`"
},
{
@@ -64683,7 +66357,7 @@
"source_file": "docs/superpowers/plans/2026-05-28-rclone-conf-nas-sync.md",
"source_location": "L1236",
"id": "plans_2026_05_28_rclone_conf_nas_sync_codeblock_44",
- "community": 247,
+ "community": 249,
"norm_label": "code:python (nas_remote_available: callable[[str], bool] = field(default=)"
},
{
@@ -64692,7 +66366,7 @@
"source_file": "docs/superpowers/plans/2026-05-28-rclone-conf-nas-sync.md",
"source_location": "L1245",
"id": "plans_2026_05_28_rclone_conf_nas_sync_codeblock_45",
- "community": 247,
+ "community": 249,
"norm_label": "code:bash (git add src/exlab_wizard/api/ tests/unit/api/)"
},
{
@@ -64701,7 +66375,7 @@
"source_file": "docs/superpowers/plans/2026-05-28-rclone-conf-nas-sync.md",
"source_location": "L1252",
"id": "plans_2026_05_28_rclone_conf_nas_sync_phase_6_ui",
- "community": 383,
+ "community": 380,
"norm_label": "phase 6 \u2014 ui"
},
{
@@ -64710,7 +66384,7 @@
"source_file": "docs/superpowers/plans/2026-05-28-rclone-conf-nas-sync.md",
"source_location": "L1254",
"id": "plans_2026_05_28_rclone_conf_nas_sync_task_6_1_settings_nas_remote_section_replaces_nas_credentials",
- "community": 383,
+ "community": 380,
"norm_label": "task 6.1: settings \"nas remote\" section (replaces nas credentials)"
},
{
@@ -64719,7 +66393,7 @@
"source_file": "docs/superpowers/plans/2026-05-28-rclone-conf-nas-sync.md",
"source_location": "L1269",
"id": "plans_2026_05_28_rclone_conf_nas_sync_codeblock_46",
- "community": 383,
+ "community": 380,
"norm_label": "code:bash (git add src/exlab_wizard/ui/pages/settings.py src/exlab_wiza)"
},
{
@@ -64728,7 +66402,7 @@
"source_file": "docs/superpowers/plans/2026-05-28-rclone-conf-nas-sync.md",
"source_location": "L1275",
"id": "plans_2026_05_28_rclone_conf_nas_sync_task_6_2_equipment_wizard_form_drop_transport_fields_main_page_banner_copy",
- "community": 383,
+ "community": 380,
"norm_label": "task 6.2: equipment wizard/form \u2014 drop transport fields; main-page banner copy"
},
{
@@ -64737,7 +66411,7 @@
"source_file": "docs/superpowers/plans/2026-05-28-rclone-conf-nas-sync.md",
"source_location": "L1286",
"id": "plans_2026_05_28_rclone_conf_nas_sync_codeblock_47",
- "community": 383,
+ "community": 380,
"norm_label": "code:bash (git add src/exlab_wizard/ui/ tests/unit/ui/)"
},
{
@@ -64746,7 +66420,7 @@
"source_file": "docs/superpowers/plans/2026-05-28-rclone-conf-nas-sync.md",
"source_location": "L1293",
"id": "plans_2026_05_28_rclone_conf_nas_sync_phase_7_remove_dead_code_clean_break",
- "community": 366,
+ "community": 367,
"norm_label": "phase 7 \u2014 remove dead code (clean break)"
},
{
@@ -64755,7 +66429,7 @@
"source_file": "docs/superpowers/plans/2026-05-28-rclone-conf-nas-sync.md",
"source_location": "L1295",
"id": "plans_2026_05_28_rclone_conf_nas_sync_task_7_1_remove_the_transport_union_equipmentconfig_transport",
- "community": 366,
+ "community": 367,
"norm_label": "task 7.1: remove the transport union + equipmentconfig.transport"
},
{
@@ -64764,7 +66438,7 @@
"source_file": "docs/superpowers/plans/2026-05-28-rclone-conf-nas-sync.md",
"source_location": "L1303",
"id": "plans_2026_05_28_rclone_conf_nas_sync_codeblock_48",
- "community": 366,
+ "community": 367,
"norm_label": "code:python (def test_nas_mode_equipment_needs_no_transport_block():)"
},
{
@@ -64773,7 +66447,7 @@
"source_file": "docs/superpowers/plans/2026-05-28-rclone-conf-nas-sync.md",
"source_location": "L1318",
"id": "plans_2026_05_28_rclone_conf_nas_sync_codeblock_49",
- "community": 366,
+ "community": 367,
"norm_label": "code:bash (git add src/exlab_wizard/config/models.py tests/unit/config/)"
},
{
@@ -64782,7 +66456,7 @@
"source_file": "docs/superpowers/plans/2026-05-28-rclone-conf-nas-sync.md",
"source_location": "L1323",
"id": "plans_2026_05_28_rclone_conf_nas_sync_task_7_2_remove_build_rclone_env_obscure_pass_env_keys_for_keyring_helper_env_plumbing",
- "community": 366,
+ "community": 367,
"norm_label": "task 7.2: remove `build_rclone_env`/`obscure`/`pass_env_keys_for` + keyring helper + env plumbing"
},
{
@@ -64791,7 +66465,7 @@
"source_file": "docs/superpowers/plans/2026-05-28-rclone-conf-nas-sync.md",
"source_location": "L1334",
"id": "plans_2026_05_28_rclone_conf_nas_sync_codeblock_50",
- "community": 366,
+ "community": 367,
"norm_label": "code:bash (git add -a)"
},
{
@@ -64800,7 +66474,7 @@
"source_file": "docs/superpowers/plans/2026-05-28-rclone-conf-nas-sync.md",
"source_location": "L1341",
"id": "plans_2026_05_28_rclone_conf_nas_sync_phase_8_orchestrator_staging_via_rclone_confirmed_in_scope",
- "community": 344,
+ "community": 346,
"norm_label": "phase 8 \u2014 orchestrator staging via rclone (confirmed in scope)"
},
{
@@ -64809,7 +66483,7 @@
"source_file": "docs/superpowers/plans/2026-05-28-rclone-conf-nas-sync.md",
"source_location": "L1345",
"id": "plans_2026_05_28_rclone_conf_nas_sync_task_8_1_staging_config_orchestrator_staging_remote_staging_base_root",
- "community": 344,
+ "community": 346,
"norm_label": "task 8.1: staging config \u2014 `orchestrator.staging_remote` / `staging_base_root`"
},
{
@@ -64818,7 +66492,7 @@
"source_file": "docs/superpowers/plans/2026-05-28-rclone-conf-nas-sync.md",
"source_location": "L1353",
"id": "plans_2026_05_28_rclone_conf_nas_sync_task_8_2_stage_mode_push_routes_through_rclone",
- "community": 344,
+ "community": 346,
"norm_label": "task 8.2: stage-mode push routes through rclone"
},
{
@@ -64827,7 +66501,7 @@
"source_file": "docs/superpowers/plans/2026-05-28-rclone-conf-nas-sync.md",
"source_location": "L1363",
"id": "plans_2026_05_28_rclone_conf_nas_sync_phase_9_fixtures_integration_docker_docs",
- "community": 365,
+ "community": 368,
"norm_label": "phase 9 \u2014 fixtures, integration, docker, docs"
},
{
@@ -64836,7 +66510,7 @@
"source_file": "docs/superpowers/plans/2026-05-28-rclone-conf-nas-sync.md",
"source_location": "L1365",
"id": "plans_2026_05_28_rclone_conf_nas_sync_task_9_1_teach_stub_rclone_lsjson_listremotes_drop_env_require",
- "community": 365,
+ "community": 368,
"norm_label": "task 9.1: teach `stub_rclone` lsjson + listremotes; drop env-require"
},
{
@@ -64845,7 +66519,7 @@
"source_file": "docs/superpowers/plans/2026-05-28-rclone-conf-nas-sync.md",
"source_location": "L1376",
"id": "plans_2026_05_28_rclone_conf_nas_sync_codeblock_51",
- "community": 365,
+ "community": 368,
"norm_label": "code:python (if verb == \"lsjson\":)"
},
{
@@ -64854,7 +66528,7 @@
"source_file": "docs/superpowers/plans/2026-05-28-rclone-conf-nas-sync.md",
"source_location": "L1404",
"id": "plans_2026_05_28_rclone_conf_nas_sync_task_9_2_integration_e2e_docker_rclone_conf",
- "community": 365,
+ "community": 368,
"norm_label": "task 9.2: integration + e2e + docker `rclone.conf`"
},
{
@@ -64863,7 +66537,7 @@
"source_file": "docs/superpowers/plans/2026-05-28-rclone-conf-nas-sync.md",
"source_location": "L1412",
"id": "plans_2026_05_28_rclone_conf_nas_sync_task_9_3_docs",
- "community": 365,
+ "community": 368,
"norm_label": "task 9.3: docs"
},
{
@@ -64872,7 +66546,7 @@
"source_file": "docs/superpowers/plans/2026-05-28-rclone-conf-nas-sync.md",
"source_location": "L1420",
"id": "plans_2026_05_28_rclone_conf_nas_sync_task_9_4_full_suite_lint_type_gate",
- "community": 365,
+ "community": 368,
"norm_label": "task 9.4: full-suite + lint/type gate"
},
{
@@ -64881,7 +66555,7 @@
"source_file": "docs/superpowers/plans/2026-05-28-rclone-conf-nas-sync.md",
"source_location": "L1430",
"id": "plans_2026_05_28_rclone_conf_nas_sync_self_review_completed_during_authoring",
- "community": 344,
+ "community": 346,
"norm_label": "self-review (completed during authoring)"
},
{
@@ -64890,7 +66564,7 @@
"source_file": "docs/superpowers/specs/2026-05-21-operator-free-per-file-nas-sync-design.md",
"source_location": "L1",
"id": "docs_superpowers_specs_2026_05_21_operator_free_per_file_nas_sync_design_md",
- "community": 183,
+ "community": 190,
"norm_label": "2026-05-21-operator-free-per-file-nas-sync-design.md"
},
{
@@ -64899,7 +66573,7 @@
"source_file": "docs/superpowers/specs/2026-05-21-operator-free-per-file-nas-sync-design.md",
"source_location": "L1",
"id": "specs_2026_05_21_operator_free_per_file_nas_sync_design_operator_free_per_file_quiescence_driven_nas_sync_design",
- "community": 183,
+ "community": 190,
"norm_label": "operator-free, per-file quiescence-driven nas sync \u2014 design"
},
{
@@ -64908,7 +66582,7 @@
"source_file": "docs/superpowers/specs/2026-05-21-operator-free-per-file-nas-sync-design.md",
"source_location": "L7",
"id": "specs_2026_05_21_operator_free_per_file_nas_sync_design_context",
- "community": 183,
+ "community": 190,
"norm_label": "context"
},
{
@@ -64917,7 +66591,7 @@
"source_file": "docs/superpowers/specs/2026-05-21-operator-free-per-file-nas-sync-design.md",
"source_location": "L23",
"id": "specs_2026_05_21_operator_free_per_file_nas_sync_design_goals",
- "community": 183,
+ "community": 190,
"norm_label": "goals"
},
{
@@ -64926,7 +66600,7 @@
"source_file": "docs/superpowers/specs/2026-05-21-operator-free-per-file-nas-sync-design.md",
"source_location": "L31",
"id": "specs_2026_05_21_operator_free_per_file_nas_sync_design_non_goals",
- "community": 183,
+ "community": 190,
"norm_label": "non-goals"
},
{
@@ -64935,7 +66609,7 @@
"source_file": "docs/superpowers/specs/2026-05-21-operator-free-per-file-nas-sync-design.md",
"source_location": "L38",
"id": "specs_2026_05_21_operator_free_per_file_nas_sync_design_the_model",
- "community": 183,
+ "community": 190,
"norm_label": "the model"
},
{
@@ -64944,7 +66618,7 @@
"source_file": "docs/superpowers/specs/2026-05-21-operator-free-per-file-nas-sync-design.md",
"source_location": "L63",
"id": "specs_2026_05_21_operator_free_per_file_nas_sync_design_config_changes_config_models_py",
- "community": 183,
+ "community": 190,
"norm_label": "config changes (`config/models.py`)"
},
{
@@ -64953,7 +66627,7 @@
"source_file": "docs/superpowers/specs/2026-05-21-operator-free-per-file-nas-sync-design.md",
"source_location": "L86",
"id": "specs_2026_05_21_operator_free_per_file_nas_sync_design_run_lifecycle_rollup_approach_1",
- "community": 183,
+ "community": 190,
"norm_label": "run lifecycle \u2014 rollup (approach 1)"
},
{
@@ -64962,7 +66636,7 @@
"source_file": "docs/superpowers/specs/2026-05-21-operator-free-per-file-nas-sync-design.md",
"source_location": "L101",
"id": "specs_2026_05_21_operator_free_per_file_nas_sync_design_per_file_sync_state_sync_state_json",
- "community": 183,
+ "community": 190,
"norm_label": "per-file sync state \u2014 `sync_state.json`"
},
{
@@ -64971,7 +66645,7 @@
"source_file": "docs/superpowers/specs/2026-05-21-operator-free-per-file-nas-sync-design.md",
"source_location": "L107",
"id": "specs_2026_05_21_operator_free_per_file_nas_sync_design_codeblock_1",
- "community": 183,
+ "community": 190,
"norm_label": "code:block1 ({)"
},
{
@@ -64980,7 +66654,7 @@
"source_file": "docs/superpowers/specs/2026-05-21-operator-free-per-file-nas-sync-design.md",
"source_location": "L124",
"id": "specs_2026_05_21_operator_free_per_file_nas_sync_design_ingest_json_contract_risk_2_resolution",
- "community": 183,
+ "community": 190,
"norm_label": "`ingest.json` contract (risk 2 resolution)"
},
{
@@ -64989,7 +66663,7 @@
"source_file": "docs/superpowers/specs/2026-05-21-operator-free-per-file-nas-sync-design.md",
"source_location": "L137",
"id": "specs_2026_05_21_operator_free_per_file_nas_sync_design_keep_local_per_file",
- "community": 183,
+ "community": 190,
"norm_label": "`keep-local` (per-file)"
},
{
@@ -64998,7 +66672,7 @@
"source_file": "docs/superpowers/specs/2026-05-21-operator-free-per-file-nas-sync-design.md",
"source_location": "L146",
"id": "specs_2026_05_21_operator_free_per_file_nas_sync_design_gui_per_file_display_state",
- "community": 183,
+ "community": 190,
"norm_label": "gui per-file display state"
},
{
@@ -65007,7 +66681,7 @@
"source_file": "docs/superpowers/specs/2026-05-21-operator-free-per-file-nas-sync-design.md",
"source_location": "L167",
"id": "specs_2026_05_21_operator_free_per_file_nas_sync_design_failure_handling",
- "community": 183,
+ "community": 190,
"norm_label": "failure handling"
},
{
@@ -65016,7 +66690,7 @@
"source_file": "docs/superpowers/specs/2026-05-21-operator-free-per-file-nas-sync-design.md",
"source_location": "L176",
"id": "specs_2026_05_21_operator_free_per_file_nas_sync_design_cleanup_rollup",
- "community": 183,
+ "community": 190,
"norm_label": "cleanup \u2014 rollup"
},
{
@@ -65025,7 +66699,7 @@
"source_file": "docs/superpowers/specs/2026-05-21-operator-free-per-file-nas-sync-design.md",
"source_location": "L183",
"id": "specs_2026_05_21_operator_free_per_file_nas_sync_design_transport_batching_risk_1_resolution",
- "community": 183,
+ "community": 190,
"norm_label": "transport batching (risk 1 resolution)"
},
{
@@ -65034,7 +66708,7 @@
"source_file": "docs/superpowers/specs/2026-05-21-operator-free-per-file-nas-sync-design.md",
"source_location": "L203",
"id": "specs_2026_05_21_operator_free_per_file_nas_sync_design_components_touched",
- "community": 183,
+ "community": 190,
"norm_label": "components touched"
},
{
@@ -65043,7 +66717,7 @@
"source_file": "docs/superpowers/specs/2026-05-21-operator-free-per-file-nas-sync-design.md",
"source_location": "L228",
"id": "specs_2026_05_21_operator_free_per_file_nas_sync_design_testing",
- "community": 183,
+ "community": 190,
"norm_label": "testing"
},
{
@@ -65052,7 +66726,7 @@
"source_file": "docs/superpowers/specs/2026-05-21-operator-free-per-file-nas-sync-design.md",
"source_location": "L244",
"id": "specs_2026_05_21_operator_free_per_file_nas_sync_design_migration",
- "community": 183,
+ "community": 190,
"norm_label": "migration"
},
{
@@ -65061,43 +66735,250 @@
"source_file": "docs/superpowers/specs/2026-05-21-operator-free-per-file-nas-sync-design.md",
"source_location": "L252",
"id": "specs_2026_05_21_operator_free_per_file_nas_sync_design_open_questions_out_of_scope",
- "community": 183,
+ "community": 190,
"norm_label": "open questions / out of scope"
},
{
- "label": "2026-05-28-rclone-conf-nas-sync-design.md",
+ "label": "2026-05-29-hide-orchestrator-staging-design.md",
"file_type": "document",
- "source_file": "docs/superpowers/specs/2026-05-28-rclone-conf-nas-sync-design.md",
+ "source_file": "docs/superpowers/specs/2026-05-29-hide-orchestrator-staging-design.md",
"source_location": "L1",
- "id": "docs_superpowers_specs_2026_05_28_rclone_conf_nas_sync_design_md",
- "community": 111,
- "norm_label": "2026-05-28-rclone-conf-nas-sync-design.md"
+ "id": "docs_superpowers_specs_2026_05_29_hide_orchestrator_staging_design_md",
+ "community": 155,
+ "norm_label": "2026-05-29-hide-orchestrator-staging-design.md"
},
{
- "label": "rclone.conf-based NAS sync",
+ "label": "Hide orchestrator / staging from the UI \u2014 Design Spec",
"file_type": "document",
- "source_file": "docs/superpowers/specs/2026-05-28-rclone-conf-nas-sync-design.md",
+ "source_file": "docs/superpowers/specs/2026-05-29-hide-orchestrator-staging-design.md",
"source_location": "L1",
- "id": "specs_2026_05_28_rclone_conf_nas_sync_design_rclone_conf_based_nas_sync",
- "community": 111,
- "norm_label": "rclone.conf-based nas sync"
+ "id": "specs_2026_05_29_hide_orchestrator_staging_design_hide_orchestrator_staging_from_the_ui_design_spec",
+ "community": 155,
+ "norm_label": "hide orchestrator / staging from the ui \u2014 design spec"
},
{
- "label": "Summary",
+ "label": "1. Summary",
"file_type": "document",
- "source_file": "docs/superpowers/specs/2026-05-28-rclone-conf-nas-sync-design.md",
- "source_location": "L10",
- "id": "specs_2026_05_28_rclone_conf_nas_sync_design_summary",
- "community": 111,
- "norm_label": "summary"
+ "source_file": "docs/superpowers/specs/2026-05-29-hide-orchestrator-staging-design.md",
+ "source_location": "L14",
+ "id": "specs_2026_05_29_hide_orchestrator_staging_design_1_summary",
+ "community": 155,
+ "norm_label": "1. summary"
},
{
- "label": "Motivation / goals",
+ "label": "Why hide rather than a feature flag",
"file_type": "document",
- "source_file": "docs/superpowers/specs/2026-05-28-rclone-conf-nas-sync-design.md",
- "source_location": "L35",
+ "source_file": "docs/superpowers/specs/2026-05-29-hide-orchestrator-staging-design.md",
+ "source_location": "L45",
+ "id": "specs_2026_05_29_hide_orchestrator_staging_design_why_hide_rather_than_a_feature_flag",
+ "community": 155,
+ "norm_label": "why hide rather than a feature flag"
+ },
+ {
+ "label": "Critical implementation note \u2014 do not delete the `orchestrator/` package",
+ "file_type": "document",
+ "source_file": "docs/superpowers/specs/2026-05-29-hide-orchestrator-staging-design.md",
+ "source_location": "L51",
+ "id": "specs_2026_05_29_hide_orchestrator_staging_design_critical_implementation_note_do_not_delete_the_orchestrator_package",
+ "community": 155,
+ "norm_label": "critical implementation note \u2014 do not delete the `orchestrator/` package"
+ },
+ {
+ "label": "2. Goals & non-goals",
+ "file_type": "document",
+ "source_file": "docs/superpowers/specs/2026-05-29-hide-orchestrator-staging-design.md",
+ "source_location": "L61",
+ "id": "specs_2026_05_29_hide_orchestrator_staging_design_2_goals_non_goals",
+ "community": 155,
+ "norm_label": "2. goals & non-goals"
+ },
+ {
+ "label": "Goals",
+ "file_type": "document",
+ "source_file": "docs/superpowers/specs/2026-05-29-hide-orchestrator-staging-design.md",
+ "source_location": "L63",
+ "id": "specs_2026_05_29_hide_orchestrator_staging_design_goals",
+ "community": 155,
+ "norm_label": "goals"
+ },
+ {
+ "label": "Non-goals",
+ "file_type": "document",
+ "source_file": "docs/superpowers/specs/2026-05-29-hide-orchestrator-staging-design.md",
+ "source_location": "L75",
+ "id": "specs_2026_05_29_hide_orchestrator_staging_design_non_goals",
+ "community": 155,
+ "norm_label": "non-goals"
+ },
+ {
+ "label": "3. Design",
+ "file_type": "document",
+ "source_file": "docs/superpowers/specs/2026-05-29-hide-orchestrator-staging-design.md",
+ "source_location": "L92",
+ "id": "specs_2026_05_29_hide_orchestrator_staging_design_3_design",
+ "community": 155,
+ "norm_label": "3. design"
+ },
+ {
+ "label": "3.1 Add-Equipment wizard \u2014 `ui/pages/wizard_equipment.py`",
+ "file_type": "document",
+ "source_file": "docs/superpowers/specs/2026-05-29-hide-orchestrator-staging-design.md",
+ "source_location": "L96",
+ "id": "specs_2026_05_29_hide_orchestrator_staging_design_3_1_add_equipment_wizard_ui_pages_wizard_equipment_py",
+ "community": 155,
+ "norm_label": "3.1 add-equipment wizard \u2014 `ui/pages/wizard_equipment.py`"
+ },
+ {
+ "label": "3.2 Settings section \u2014 `ui/pages/settings.py`",
+ "file_type": "document",
+ "source_file": "docs/superpowers/specs/2026-05-29-hide-orchestrator-staging-design.md",
+ "source_location": "L114",
+ "id": "specs_2026_05_29_hide_orchestrator_staging_design_3_2_settings_section_ui_pages_settings_py",
+ "community": 155,
+ "norm_label": "3.2 settings section \u2014 `ui/pages/settings.py`"
+ },
+ {
+ "label": "3.3 Staging route \u2014 `ui/mount.py`",
+ "file_type": "document",
+ "source_file": "docs/superpowers/specs/2026-05-29-hide-orchestrator-staging-design.md",
+ "source_location": "L132",
+ "id": "specs_2026_05_29_hide_orchestrator_staging_design_3_3_staging_route_ui_mount_py",
+ "community": 155,
+ "norm_label": "3.3 staging route \u2014 `ui/mount.py`"
+ },
+ {
+ "label": "3.4 Main-window footer \u2014 `ui/pages/main.py`",
+ "file_type": "document",
+ "source_file": "docs/superpowers/specs/2026-05-29-hide-orchestrator-staging-design.md",
+ "source_location": "L146",
+ "id": "specs_2026_05_29_hide_orchestrator_staging_design_3_4_main_window_footer_ui_pages_main_py",
+ "community": 155,
+ "norm_label": "3.4 main-window footer \u2014 `ui/pages/main.py`"
+ },
+ {
+ "label": "3.5 What stays dormant (explicitly untouched)",
+ "file_type": "document",
+ "source_file": "docs/superpowers/specs/2026-05-29-hide-orchestrator-staging-design.md",
+ "source_location": "L158",
+ "id": "specs_2026_05_29_hide_orchestrator_staging_design_3_5_what_stays_dormant_explicitly_untouched",
+ "community": 155,
+ "norm_label": "3.5 what stays dormant (explicitly untouched)"
+ },
+ {
+ "label": "3.6 Reversibility contract",
+ "file_type": "document",
+ "source_file": "docs/superpowers/specs/2026-05-29-hide-orchestrator-staging-design.md",
+ "source_location": "L173",
+ "id": "specs_2026_05_29_hide_orchestrator_staging_design_3_6_reversibility_contract",
+ "community": 155,
+ "norm_label": "3.6 reversibility contract"
+ },
+ {
+ "label": "4. `CLAUDE.md` update",
+ "file_type": "document",
+ "source_file": "docs/superpowers/specs/2026-05-29-hide-orchestrator-staging-design.md",
+ "source_location": "L181",
+ "id": "specs_2026_05_29_hide_orchestrator_staging_design_4_claude_md_update",
+ "community": 155,
+ "norm_label": "4. `claude.md` update"
+ },
+ {
+ "label": "code:markdown (## Orchestrator / staging is intentionally hidden (not remov)",
+ "file_type": "document",
+ "source_file": "docs/superpowers/specs/2026-05-29-hide-orchestrator-staging-design.md",
+ "source_location": "L188",
+ "id": "specs_2026_05_29_hide_orchestrator_staging_design_codeblock_1",
+ "community": 155,
+ "norm_label": "code:markdown (## orchestrator / staging is intentionally hidden (not remov)"
+ },
+ {
+ "label": "5. Testing",
+ "file_type": "document",
+ "source_file": "docs/superpowers/specs/2026-05-29-hide-orchestrator-staging-design.md",
+ "source_location": "L218",
+ "id": "specs_2026_05_29_hide_orchestrator_staging_design_5_testing",
+ "community": 155,
+ "norm_label": "5. testing"
+ },
+ {
+ "label": "Tests that must change",
+ "file_type": "document",
+ "source_file": "docs/superpowers/specs/2026-05-29-hide-orchestrator-staging-design.md",
+ "source_location": "L220",
+ "id": "specs_2026_05_29_hide_orchestrator_staging_design_tests_that_must_change",
+ "community": 155,
+ "norm_label": "tests that must change"
+ },
+ {
+ "label": "Tests that stay GREEN unchanged (by design)",
+ "file_type": "document",
+ "source_file": "docs/superpowers/specs/2026-05-29-hide-orchestrator-staging-design.md",
+ "source_location": "L235",
+ "id": "specs_2026_05_29_hide_orchestrator_staging_design_tests_that_stay_green_unchanged_by_design",
+ "community": 155,
+ "norm_label": "tests that stay green unchanged (by design)"
+ },
+ {
+ "label": "Tests to add",
+ "file_type": "document",
+ "source_file": "docs/superpowers/specs/2026-05-29-hide-orchestrator-staging-design.md",
+ "source_location": "L241",
+ "id": "specs_2026_05_29_hide_orchestrator_staging_design_tests_to_add",
+ "community": 155,
+ "norm_label": "tests to add"
+ },
+ {
+ "label": "Verification",
+ "file_type": "document",
+ "source_file": "docs/superpowers/specs/2026-05-29-hide-orchestrator-staging-design.md",
+ "source_location": "L249",
+ "id": "specs_2026_05_29_hide_orchestrator_staging_design_verification",
+ "community": 155,
+ "norm_label": "verification"
+ },
+ {
+ "label": "6. Risks / notes",
+ "file_type": "document",
+ "source_file": "docs/superpowers/specs/2026-05-29-hide-orchestrator-staging-design.md",
+ "source_location": "L255",
+ "id": "specs_2026_05_29_hide_orchestrator_staging_design_6_risks_notes",
+ "community": 155,
+ "norm_label": "6. risks / notes"
+ },
+ {
+ "label": "2026-05-28-rclone-conf-nas-sync-design.md",
+ "file_type": "document",
+ "source_file": "docs/superpowers/specs/2026-05-28-rclone-conf-nas-sync-design.md",
+ "source_location": "L1",
+ "id": "docs_superpowers_specs_2026_05_28_rclone_conf_nas_sync_design_md",
+ "community": 118,
+ "norm_label": "2026-05-28-rclone-conf-nas-sync-design.md"
+ },
+ {
+ "label": "rclone.conf-based NAS sync",
+ "file_type": "document",
+ "source_file": "docs/superpowers/specs/2026-05-28-rclone-conf-nas-sync-design.md",
+ "source_location": "L1",
+ "id": "specs_2026_05_28_rclone_conf_nas_sync_design_rclone_conf_based_nas_sync",
+ "community": 118,
+ "norm_label": "rclone.conf-based nas sync"
+ },
+ {
+ "label": "Summary",
+ "file_type": "document",
+ "source_file": "docs/superpowers/specs/2026-05-28-rclone-conf-nas-sync-design.md",
+ "source_location": "L10",
+ "id": "specs_2026_05_28_rclone_conf_nas_sync_design_summary",
+ "community": 118,
+ "norm_label": "summary"
+ },
+ {
+ "label": "Motivation / goals",
+ "file_type": "document",
+ "source_file": "docs/superpowers/specs/2026-05-28-rclone-conf-nas-sync-design.md",
+ "source_location": "L35",
"id": "specs_2026_05_28_rclone_conf_nas_sync_design_motivation_goals",
- "community": 111,
+ "community": 118,
"norm_label": "motivation / goals"
},
{
@@ -65106,7 +66987,7 @@
"source_file": "docs/superpowers/specs/2026-05-28-rclone-conf-nas-sync-design.md",
"source_location": "L51",
"id": "specs_2026_05_28_rclone_conf_nas_sync_design_non_goals",
- "community": 111,
+ "community": 118,
"norm_label": "non-goals"
},
{
@@ -65115,7 +66996,7 @@
"source_file": "docs/superpowers/specs/2026-05-28-rclone-conf-nas-sync-design.md",
"source_location": "L62",
"id": "specs_2026_05_28_rclone_conf_nas_sync_design_decisions_from_brainstorming",
- "community": 111,
+ "community": 118,
"norm_label": "decisions (from brainstorming)"
},
{
@@ -65124,7 +67005,7 @@
"source_file": "docs/superpowers/specs/2026-05-28-rclone-conf-nas-sync-design.md",
"source_location": "L73",
"id": "specs_2026_05_28_rclone_conf_nas_sync_design_config_schema",
- "community": 111,
+ "community": 118,
"norm_label": "config schema"
},
{
@@ -65133,7 +67014,7 @@
"source_file": "docs/superpowers/specs/2026-05-28-rclone-conf-nas-sync-design.md",
"source_location": "L75",
"id": "specs_2026_05_28_rclone_conf_nas_sync_design_before_per_equipment_credential_injected",
- "community": 111,
+ "community": 118,
"norm_label": "before (per-equipment, credential-injected)"
},
{
@@ -65142,7 +67023,7 @@
"source_file": "docs/superpowers/specs/2026-05-28-rclone-conf-nas-sync-design.md",
"source_location": "L77",
"id": "specs_2026_05_28_rclone_conf_nas_sync_design_codeblock_1",
- "community": 111,
+ "community": 118,
"norm_label": "code:yaml (equipment:)"
},
{
@@ -65151,7 +67032,7 @@
"source_file": "docs/superpowers/specs/2026-05-28-rclone-conf-nas-sync-design.md",
"source_location": "L93",
"id": "specs_2026_05_28_rclone_conf_nas_sync_design_after_named_remote_global_base_root",
- "community": 111,
+ "community": 118,
"norm_label": "after (named remote + global base root)"
},
{
@@ -65160,7 +67041,7 @@
"source_file": "docs/superpowers/specs/2026-05-28-rclone-conf-nas-sync-design.md",
"source_location": "L95",
"id": "specs_2026_05_28_rclone_conf_nas_sync_design_codeblock_2",
- "community": 111,
+ "community": 118,
"norm_label": "code:yaml (nas:)"
},
{
@@ -65169,7 +67050,7 @@
"source_file": "docs/superpowers/specs/2026-05-28-rclone-conf-nas-sync-design.md",
"source_location": "L137",
"id": "specs_2026_05_28_rclone_conf_nas_sync_design_architecture_by_surface",
- "community": 111,
+ "community": 118,
"norm_label": "architecture by surface"
},
{
@@ -65178,7 +67059,7 @@
"source_file": "docs/superpowers/specs/2026-05-28-rclone-conf-nas-sync-design.md",
"source_location": "L139",
"id": "specs_2026_05_28_rclone_conf_nas_sync_design_1_transport_driver_sync_transports_rclone_py_single_reusable_rclone_ops_surface",
- "community": 111,
+ "community": 118,
"norm_label": "1. transport driver \u2014 `sync/transports/rclone.py` (single reusable rclone-ops surface)"
},
{
@@ -65187,7 +67068,7 @@
"source_file": "docs/superpowers/specs/2026-05-28-rclone-conf-nas-sync-design.md",
"source_location": "L171",
"id": "specs_2026_05_28_rclone_conf_nas_sync_design_2_manifest_parser_new_sync_manifest_py",
- "community": 111,
+ "community": 118,
"norm_label": "2. manifest + parser \u2014 new `sync/manifest.py`"
},
{
@@ -65196,7 +67077,7 @@
"source_file": "docs/superpowers/specs/2026-05-28-rclone-conf-nas-sync-design.md",
"source_location": "L173",
"id": "specs_2026_05_28_rclone_conf_nas_sync_design_codeblock_3",
- "community": 111,
+ "community": 118,
"norm_label": "code:python (@dataclass(frozen=true, slots=true))"
},
{
@@ -65205,7 +67086,7 @@
"source_file": "docs/superpowers/specs/2026-05-28-rclone-conf-nas-sync-design.md",
"source_location": "L199",
"id": "specs_2026_05_28_rclone_conf_nas_sync_design_3_sync_client_verify_cleanup_flow_sync_nas_client_py_sync_verifier_py_sync_cleanup_py",
- "community": 111,
+ "community": 118,
"norm_label": "3. sync client + verify/cleanup flow \u2014 `sync/nas_client.py`, `sync/verifier.py`, `sync/cleanup.py`"
},
{
@@ -65214,7 +67095,7 @@
"source_file": "docs/superpowers/specs/2026-05-28-rclone-conf-nas-sync-design.md",
"source_location": "L225",
"id": "specs_2026_05_28_rclone_conf_nas_sync_design_4_verify_cleanup_flow",
- "community": 111,
+ "community": 118,
"norm_label": "4. verify / cleanup flow"
},
{
@@ -65223,7 +67104,7 @@
"source_file": "docs/superpowers/specs/2026-05-28-rclone-conf-nas-sync-design.md",
"source_location": "L227",
"id": "specs_2026_05_28_rclone_conf_nas_sync_design_codeblock_4",
- "community": 111,
+ "community": 118,
"norm_label": "code:block4 (push (rclone copy --checksum --transfers n))"
},
{
@@ -65232,7 +67113,7 @@
"source_file": "docs/superpowers/specs/2026-05-28-rclone-conf-nas-sync-design.md",
"source_location": "L237",
"id": "specs_2026_05_28_rclone_conf_nas_sync_design_5_credentials_setup_gate_paths_py_constants_api_tray",
- "community": 111,
+ "community": 118,
"norm_label": "5. credentials / setup gate \u2014 `paths.py`, `constants/`, `api/`, `tray/`"
},
{
@@ -65241,7 +67122,7 @@
"source_file": "docs/superpowers/specs/2026-05-28-rclone-conf-nas-sync-design.md",
"source_location": "L255",
"id": "specs_2026_05_28_rclone_conf_nas_sync_design_6_ui_ui_pages_settings_py_ui_mount_py_ui_pages_main_py_ui_pages_wizard_equipment_py_ui_equipment_form_py",
- "community": 111,
+ "community": 118,
"norm_label": "6. ui \u2014 `ui/pages/settings.py`, `ui/mount.py`, `ui/pages/main.py`, `ui/pages/wizard_equipment.py`, `ui/equipment_form.py`"
},
{
@@ -65250,7 +67131,7 @@
"source_file": "docs/superpowers/specs/2026-05-28-rclone-conf-nas-sync-design.md",
"source_location": "L267",
"id": "specs_2026_05_28_rclone_conf_nas_sync_design_7_orchestrator_staging_hop",
- "community": 111,
+ "community": 118,
"norm_label": "7. orchestrator / staging hop"
},
{
@@ -65259,7 +67140,7 @@
"source_file": "docs/superpowers/specs/2026-05-28-rclone-conf-nas-sync-design.md",
"source_location": "L290",
"id": "specs_2026_05_28_rclone_conf_nas_sync_design_8_docs",
- "community": 111,
+ "community": 118,
"norm_label": "8. docs"
},
{
@@ -65268,7 +67149,7 @@
"source_file": "docs/superpowers/specs/2026-05-28-rclone-conf-nas-sync-design.md",
"source_location": "L301",
"id": "specs_2026_05_28_rclone_conf_nas_sync_design_9_tests",
- "community": 111,
+ "community": 118,
"norm_label": "9. tests"
},
{
@@ -65277,7 +67158,7 @@
"source_file": "docs/superpowers/specs/2026-05-28-rclone-conf-nas-sync-design.md",
"source_location": "L320",
"id": "specs_2026_05_28_rclone_conf_nas_sync_design_memory_storage_analysis_constrained_machines",
- "community": 111,
+ "community": 118,
"norm_label": "memory / storage analysis (constrained machines)"
},
{
@@ -65286,7 +67167,7 @@
"source_file": "docs/superpowers/specs/2026-05-28-rclone-conf-nas-sync-design.md",
"source_location": "L332",
"id": "specs_2026_05_28_rclone_conf_nas_sync_design_migration_breaking_changes",
- "community": 111,
+ "community": 118,
"norm_label": "migration / breaking changes"
},
{
@@ -65295,7 +67176,7 @@
"source_file": "docs/superpowers/specs/2026-05-28-rclone-conf-nas-sync-design.md",
"source_location": "L341",
"id": "specs_2026_05_28_rclone_conf_nas_sync_design_resolved_decisions",
- "community": 111,
+ "community": 118,
"norm_label": "resolved decisions"
},
{
@@ -65304,7 +67185,7 @@
"source_file": "docs/superpowers/specs/2026-05-28-rclone-conf-nas-sync-design.md",
"source_location": "L353",
"id": "specs_2026_05_28_rclone_conf_nas_sync_design_full_surface_inventory",
- "community": 111,
+ "community": 118,
"norm_label": "full surface inventory"
},
{
@@ -65313,16 +67194,115 @@
"source_file": "docs/superpowers/specs/2026-05-28-rclone-conf-nas-sync-design.md",
"source_location": "L374",
"id": "specs_2026_05_28_rclone_conf_nas_sync_design_risks",
- "community": 111,
+ "community": 118,
"norm_label": "risks"
},
+ {
+ "label": "2026-05-29-main-window-ui-refresh-remaining-work.md",
+ "file_type": "document",
+ "source_file": "docs/superpowers/specs/2026-05-29-main-window-ui-refresh-remaining-work.md",
+ "source_location": "L1",
+ "id": "docs_superpowers_specs_2026_05_29_main_window_ui_refresh_remaining_work_md",
+ "community": 274,
+ "norm_label": "2026-05-29-main-window-ui-refresh-remaining-work.md"
+ },
+ {
+ "label": "Main-window UI refresh \u2014 Remaining work (v2)",
+ "file_type": "document",
+ "source_file": "docs/superpowers/specs/2026-05-29-main-window-ui-refresh-remaining-work.md",
+ "source_location": "L1",
+ "id": "specs_2026_05_29_main_window_ui_refresh_remaining_work_main_window_ui_refresh_remaining_work_v2",
+ "community": 274,
+ "norm_label": "main-window ui refresh \u2014 remaining work (v2)"
+ },
+ {
+ "label": "1. What has shipped (committed on the branch)",
+ "file_type": "document",
+ "source_file": "docs/superpowers/specs/2026-05-29-main-window-ui-refresh-remaining-work.md",
+ "source_location": "L21",
+ "id": "specs_2026_05_29_main_window_ui_refresh_remaining_work_1_what_has_shipped_committed_on_the_branch",
+ "community": 274,
+ "norm_label": "1. what has shipped (committed on the branch)"
+ },
+ {
+ "label": "2. Divergences from the approved design spec (must be reconciled)",
+ "file_type": "document",
+ "source_file": "docs/superpowers/specs/2026-05-29-main-window-ui-refresh-remaining-work.md",
+ "source_location": "L65",
+ "id": "specs_2026_05_29_main_window_ui_refresh_remaining_work_2_divergences_from_the_approved_design_spec_must_be_reconciled",
+ "community": 274,
+ "norm_label": "2. divergences from the approved design spec (must be reconciled)"
+ },
+ {
+ "label": "A. Spec reconciliation \u2705 DONE",
+ "file_type": "document",
+ "source_file": "docs/superpowers/specs/2026-05-29-main-window-ui-refresh-remaining-work.md",
+ "source_location": "L102",
+ "id": "specs_2026_05_29_main_window_ui_refresh_remaining_work_a_spec_reconciliation_done",
+ "community": 274,
+ "norm_label": "a. spec reconciliation \u2705 done"
+ },
+ {
+ "label": "B. Phase 5 \u2014 Polish (reconcile each item with the popover)",
+ "file_type": "document",
+ "source_file": "docs/superpowers/specs/2026-05-29-main-window-ui-refresh-remaining-work.md",
+ "source_location": "L115",
+ "id": "specs_2026_05_29_main_window_ui_refresh_remaining_work_b_phase_5_polish_reconcile_each_item_with_the_popover",
+ "community": 274,
+ "norm_label": "b. phase 5 \u2014 polish (reconcile each item with the popover)"
+ },
+ {
+ "label": "C. Phase 6 \u2014 e2e + final verification \u2705 DONE (`e72cd73`)",
+ "file_type": "document",
+ "source_file": "docs/superpowers/specs/2026-05-29-main-window-ui-refresh-remaining-work.md",
+ "source_location": "L174",
+ "id": "specs_2026_05_29_main_window_ui_refresh_remaining_work_c_phase_6_e2e_final_verification_done_e72cd73",
+ "community": 274,
+ "norm_label": "c. phase 6 \u2014 e2e + final verification \u2705 done (`e72cd73`)"
+ },
+ {
+ "label": "D. Cleanup / tech-debt",
+ "file_type": "document",
+ "source_file": "docs/superpowers/specs/2026-05-29-main-window-ui-refresh-remaining-work.md",
+ "source_location": "L233",
+ "id": "specs_2026_05_29_main_window_ui_refresh_remaining_work_d_cleanup_tech_debt",
+ "community": 274,
+ "norm_label": "d. cleanup / tech-debt"
+ },
+ {
+ "label": "E. Risks & open questions",
+ "file_type": "document",
+ "source_file": "docs/superpowers/specs/2026-05-29-main-window-ui-refresh-remaining-work.md",
+ "source_location": "L250",
+ "id": "specs_2026_05_29_main_window_ui_refresh_remaining_work_e_risks_open_questions",
+ "community": 274,
+ "norm_label": "e. risks & open questions"
+ },
+ {
+ "label": "F. Deferred / out of scope (from design spec \u00a711)",
+ "file_type": "document",
+ "source_file": "docs/superpowers/specs/2026-05-29-main-window-ui-refresh-remaining-work.md",
+ "source_location": "L271",
+ "id": "specs_2026_05_29_main_window_ui_refresh_remaining_work_f_deferred_out_of_scope_from_design_spec_11",
+ "community": 274,
+ "norm_label": "f. deferred / out of scope (from design spec \u00a711)"
+ },
+ {
+ "label": "Working notes (carry forward)",
+ "file_type": "document",
+ "source_file": "docs/superpowers/specs/2026-05-29-main-window-ui-refresh-remaining-work.md",
+ "source_location": "L280",
+ "id": "specs_2026_05_29_main_window_ui_refresh_remaining_work_working_notes_carry_forward",
+ "community": 274,
+ "norm_label": "working notes (carry forward)"
+ },
{
"label": "2026-05-26-rclone-only-nas-sync-design.md",
"file_type": "document",
"source_file": "docs/superpowers/specs/2026-05-26-rclone-only-nas-sync-design.md",
"source_location": "L1",
"id": "docs_superpowers_specs_2026_05_26_rclone_only_nas_sync_design_md",
- "community": 124,
+ "community": 130,
"norm_label": "2026-05-26-rclone-only-nas-sync-design.md"
},
{
@@ -65331,7 +67311,7 @@
"source_file": "docs/superpowers/specs/2026-05-26-rclone-only-nas-sync-design.md",
"source_location": "L1",
"id": "specs_2026_05_26_rclone_only_nas_sync_design_rclone_only_nas_sync_with_password_auth_sftp_smb",
- "community": 124,
+ "community": 130,
"norm_label": "rclone-only nas sync with password auth (sftp + smb)"
},
{
@@ -65340,7 +67320,7 @@
"source_file": "docs/superpowers/specs/2026-05-26-rclone-only-nas-sync-design.md",
"source_location": "L9",
"id": "specs_2026_05_26_rclone_only_nas_sync_design_context",
- "community": 124,
+ "community": 130,
"norm_label": "context"
},
{
@@ -65349,7 +67329,7 @@
"source_file": "docs/superpowers/specs/2026-05-26-rclone-only-nas-sync-design.md",
"source_location": "L43",
"id": "specs_2026_05_26_rclone_only_nas_sync_design_goals",
- "community": 124,
+ "community": 130,
"norm_label": "goals"
},
{
@@ -65358,7 +67338,7 @@
"source_file": "docs/superpowers/specs/2026-05-26-rclone-only-nas-sync-design.md",
"source_location": "L63",
"id": "specs_2026_05_26_rclone_only_nas_sync_design_non_goals",
- "community": 124,
+ "community": 130,
"norm_label": "non-goals"
},
{
@@ -65367,7 +67347,7 @@
"source_file": "docs/superpowers/specs/2026-05-26-rclone-only-nas-sync-design.md",
"source_location": "L77",
"id": "specs_2026_05_26_rclone_only_nas_sync_design_architecture",
- "community": 124,
+ "community": 130,
"norm_label": "architecture"
},
{
@@ -65376,7 +67356,7 @@
"source_file": "docs/superpowers/specs/2026-05-26-rclone-only-nas-sync-design.md",
"source_location": "L79",
"id": "specs_2026_05_26_rclone_only_nas_sync_design_codeblock_1",
- "community": 124,
+ "community": 130,
"norm_label": "code:block1 (+-------------------------------+)"
},
{
@@ -65385,7 +67365,7 @@
"source_file": "docs/superpowers/specs/2026-05-26-rclone-only-nas-sync-design.md",
"source_location": "L117",
"id": "specs_2026_05_26_rclone_only_nas_sync_design_components",
- "community": 124,
+ "community": 130,
"norm_label": "components"
},
{
@@ -65394,7 +67374,7 @@
"source_file": "docs/superpowers/specs/2026-05-26-rclone-only-nas-sync-design.md",
"source_location": "L119",
"id": "specs_2026_05_26_rclone_only_nas_sync_design_1_config_models",
- "community": 124,
+ "community": 130,
"norm_label": "1. config models"
},
{
@@ -65403,7 +67383,7 @@
"source_file": "docs/superpowers/specs/2026-05-26-rclone-only-nas-sync-design.md",
"source_location": "L128",
"id": "specs_2026_05_26_rclone_only_nas_sync_design_codeblock_2",
- "community": 124,
+ "community": 130,
"norm_label": "code:python (class rclonesftptransport(basemodel):)"
},
{
@@ -65412,7 +67392,7 @@
"source_file": "docs/superpowers/specs/2026-05-26-rclone-only-nas-sync-design.md",
"source_location": "L159",
"id": "specs_2026_05_26_rclone_only_nas_sync_design_2_keyring_dependencies_setup_gate",
- "community": 124,
+ "community": 130,
"norm_label": "2. keyring + dependencies + setup gate"
},
{
@@ -65421,7 +67401,7 @@
"source_file": "docs/superpowers/specs/2026-05-26-rclone-only-nas-sync-design.md",
"source_location": "L197",
"id": "specs_2026_05_26_rclone_only_nas_sync_design_3_rclone_driver",
- "community": 124,
+ "community": 130,
"norm_label": "3. rclone driver"
},
{
@@ -65430,7 +67410,7 @@
"source_file": "docs/superpowers/specs/2026-05-26-rclone-only-nas-sync-design.md",
"source_location": "L203",
"id": "specs_2026_05_26_rclone_only_nas_sync_design_codeblock_3",
- "community": 124,
+ "community": 130,
"norm_label": "code:python (class rclonedriver:)"
},
{
@@ -65439,7 +67419,7 @@
"source_file": "docs/superpowers/specs/2026-05-26-rclone-only-nas-sync-design.md",
"source_location": "L246",
"id": "specs_2026_05_26_rclone_only_nas_sync_design_codeblock_4",
- "community": 124,
+ "community": 130,
"norm_label": "code:python (def build_rclone_env()"
},
{
@@ -65448,7 +67428,7 @@
"source_file": "docs/superpowers/specs/2026-05-26-rclone-only-nas-sync-design.md",
"source_location": "L261",
"id": "specs_2026_05_26_rclone_only_nas_sync_design_4_nas_sync_client",
- "community": 124,
+ "community": 130,
"norm_label": "4. nas sync client"
},
{
@@ -65457,7 +67437,7 @@
"source_file": "docs/superpowers/specs/2026-05-26-rclone-only-nas-sync-design.md",
"source_location": "L299",
"id": "specs_2026_05_26_rclone_only_nas_sync_design_5_verifier_collapse",
- "community": 124,
+ "community": 130,
"norm_label": "5. verifier collapse"
},
{
@@ -65466,7 +67446,7 @@
"source_file": "docs/superpowers/specs/2026-05-26-rclone-only-nas-sync-design.md",
"source_location": "L312",
"id": "specs_2026_05_26_rclone_only_nas_sync_design_codeblock_5",
- "community": 124,
+ "community": 130,
"norm_label": "code:python (class verifier:)"
},
{
@@ -65475,7 +67455,7 @@
"source_file": "docs/superpowers/specs/2026-05-26-rclone-only-nas-sync-design.md",
"source_location": "L344",
"id": "specs_2026_05_26_rclone_only_nas_sync_design_6_wizard_settings_ui",
- "community": 124,
+ "community": 130,
"norm_label": "6. wizard + settings ui"
},
{
@@ -65484,7 +67464,7 @@
"source_file": "docs/superpowers/specs/2026-05-26-rclone-only-nas-sync-design.md",
"source_location": "L390",
"id": "specs_2026_05_26_rclone_only_nas_sync_design_7_sync_state_schema",
- "community": 124,
+ "community": 130,
"norm_label": "7. sync state schema"
},
{
@@ -65493,7 +67473,7 @@
"source_file": "docs/superpowers/specs/2026-05-26-rclone-only-nas-sync-design.md",
"source_location": "L395",
"id": "specs_2026_05_26_rclone_only_nas_sync_design_codeblock_6",
- "community": 124,
+ "community": 130,
"norm_label": "code:python (class filesyncrecord(struct):)"
},
{
@@ -65502,7 +67482,7 @@
"source_file": "docs/superpowers/specs/2026-05-26-rclone-only-nas-sync-design.md",
"source_location": "L407",
"id": "specs_2026_05_26_rclone_only_nas_sync_design_8_error_classification",
- "community": 124,
+ "community": 130,
"norm_label": "8. error classification"
},
{
@@ -65511,7 +67491,7 @@
"source_file": "docs/superpowers/specs/2026-05-26-rclone-only-nas-sync-design.md",
"source_location": "L417",
"id": "specs_2026_05_26_rclone_only_nas_sync_design_data_flow_one_sync_cycle",
- "community": 124,
+ "community": 130,
"norm_label": "data flow (one sync cycle)"
},
{
@@ -65520,7 +67500,7 @@
"source_file": "docs/superpowers/specs/2026-05-26-rclone-only-nas-sync-design.md",
"source_location": "L444",
"id": "specs_2026_05_26_rclone_only_nas_sync_design_error_handling",
- "community": 124,
+ "community": 130,
"norm_label": "error handling"
},
{
@@ -65529,7 +67509,7 @@
"source_file": "docs/superpowers/specs/2026-05-26-rclone-only-nas-sync-design.md",
"source_location": "L460",
"id": "specs_2026_05_26_rclone_only_nas_sync_design_testing",
- "community": 124,
+ "community": 130,
"norm_label": "testing"
},
{
@@ -65538,7 +67518,7 @@
"source_file": "docs/superpowers/specs/2026-05-26-rclone-only-nas-sync-design.md",
"source_location": "L489",
"id": "specs_2026_05_26_rclone_only_nas_sync_design_open_follow_up_slot_b_drift_audit",
- "community": 124,
+ "community": 130,
"norm_label": "open follow-up: slot b (drift audit)"
},
{
@@ -65547,7 +67527,7 @@
"source_file": "docs/superpowers/specs/2026-05-26-rclone-only-nas-sync-design.md",
"source_location": "L500",
"id": "specs_2026_05_26_rclone_only_nas_sync_design_risks_notes",
- "community": 124,
+ "community": 130,
"norm_label": "risks / notes"
},
{
@@ -65556,7 +67536,7 @@
"source_file": "docs/superpowers/specs/2026-05-28-staging-root-opt-in-design.md",
"source_location": "L1",
"id": "docs_superpowers_specs_2026_05_28_staging_root_opt_in_design_md",
- "community": 161,
+ "community": 169,
"norm_label": "2026-05-28-staging-root-opt-in-design.md"
},
{
@@ -65565,7 +67545,7 @@
"source_file": "docs/superpowers/specs/2026-05-28-staging-root-opt-in-design.md",
"source_location": "L1",
"id": "specs_2026_05_28_staging_root_opt_in_design_opt_in_staging_root_design_spec",
- "community": 161,
+ "community": 169,
"norm_label": "opt-in `staging_root` \u2014 design spec"
},
{
@@ -65574,7 +67554,7 @@
"source_file": "docs/superpowers/specs/2026-05-28-staging-root-opt-in-design.md",
"source_location": "L12",
"id": "specs_2026_05_28_staging_root_opt_in_design_1_summary",
- "community": 161,
+ "community": 169,
"norm_label": "1. summary"
},
{
@@ -65583,7 +67563,7 @@
"source_file": "docs/superpowers/specs/2026-05-28-staging-root-opt-in-design.md",
"source_location": "L39",
"id": "specs_2026_05_28_staging_root_opt_in_design_2_goals_non_goals",
- "community": 161,
+ "community": 169,
"norm_label": "2. goals & non-goals"
},
{
@@ -65592,7 +67572,7 @@
"source_file": "docs/superpowers/specs/2026-05-28-staging-root-opt-in-design.md",
"source_location": "L41",
"id": "specs_2026_05_28_staging_root_opt_in_design_goals",
- "community": 161,
+ "community": 169,
"norm_label": "goals"
},
{
@@ -65601,7 +67581,7 @@
"source_file": "docs/superpowers/specs/2026-05-28-staging-root-opt-in-design.md",
"source_location": "L50",
"id": "specs_2026_05_28_staging_root_opt_in_design_non_goals",
- "community": 161,
+ "community": 169,
"norm_label": "non-goals"
},
{
@@ -65610,7 +67590,7 @@
"source_file": "docs/superpowers/specs/2026-05-28-staging-root-opt-in-design.md",
"source_location": "L59",
"id": "specs_2026_05_28_staging_root_opt_in_design_3_design",
- "community": 161,
+ "community": 169,
"norm_label": "3. design"
},
{
@@ -65619,7 +67599,7 @@
"source_file": "docs/superpowers/specs/2026-05-28-staging-root-opt-in-design.md",
"source_location": "L61",
"id": "specs_2026_05_28_staging_root_opt_in_design_3_1_setup_state_gate_paths_py",
- "community": 161,
+ "community": 169,
"norm_label": "3.1 setup-state gate \u2014 `paths.py`"
},
{
@@ -65628,7 +67608,7 @@
"source_file": "docs/superpowers/specs/2026-05-28-staging-root-opt-in-design.md",
"source_location": "L76",
"id": "specs_2026_05_28_staging_root_opt_in_design_3_2_suggestion_helper_paths_py",
- "community": 161,
+ "community": 169,
"norm_label": "3.2 suggestion helper \u2014 `paths.py`"
},
{
@@ -65637,7 +67617,7 @@
"source_file": "docs/superpowers/specs/2026-05-28-staging-root-opt-in-design.md",
"source_location": "L95",
"id": "specs_2026_05_28_staging_root_opt_in_design_3_3_settings_ui_ui_pages_settings_py",
- "community": 161,
+ "community": 169,
"norm_label": "3.3 settings ui \u2014 `ui/pages/settings.py`"
},
{
@@ -65646,7 +67626,7 @@
"source_file": "docs/superpowers/specs/2026-05-28-staging-root-opt-in-design.md",
"source_location": "L104",
"id": "specs_2026_05_28_staging_root_opt_in_design_3_4_create_on_save_ui_mount_py_persist_config",
- "community": 161,
+ "community": 169,
"norm_label": "3.4 create-on-save \u2014 `ui/mount.py` `_persist_config`"
},
{
@@ -65655,7 +67635,7 @@
"source_file": "docs/superpowers/specs/2026-05-28-staging-root-opt-in-design.md",
"source_location": "L121",
"id": "specs_2026_05_28_staging_root_opt_in_design_3_5_verified_not_modified",
- "community": 161,
+ "community": 169,
"norm_label": "3.5 verified, not modified"
},
{
@@ -65664,7 +67644,7 @@
"source_file": "docs/superpowers/specs/2026-05-28-staging-root-opt-in-design.md",
"source_location": "L143",
"id": "specs_2026_05_28_staging_root_opt_in_design_3_6_test_mode_unchanged",
- "community": 161,
+ "community": 169,
"norm_label": "3.6 test mode \u2014 unchanged"
},
{
@@ -65673,7 +67653,7 @@
"source_file": "docs/superpowers/specs/2026-05-28-staging-root-opt-in-design.md",
"source_location": "L152",
"id": "specs_2026_05_28_staging_root_opt_in_design_4_data_flow",
- "community": 161,
+ "community": 169,
"norm_label": "4. data flow"
},
{
@@ -65682,7 +67662,7 @@
"source_file": "docs/superpowers/specs/2026-05-28-staging-root-opt-in-design.md",
"source_location": "L156",
"id": "specs_2026_05_28_staging_root_opt_in_design_codeblock_1",
- "community": 161,
+ "community": 169,
"norm_label": "code:block1 (staging_root blank)"
},
{
@@ -65691,7 +67671,7 @@
"source_file": "docs/superpowers/specs/2026-05-28-staging-root-opt-in-design.md",
"source_location": "L171",
"id": "specs_2026_05_28_staging_root_opt_in_design_5_error_handling_edge_cases",
- "community": 161,
+ "community": 169,
"norm_label": "5. error handling & edge cases"
},
{
@@ -65700,7 +67680,7 @@
"source_file": "docs/superpowers/specs/2026-05-28-staging-root-opt-in-design.md",
"source_location": "L183",
"id": "specs_2026_05_28_staging_root_opt_in_design_6_testing",
- "community": 161,
+ "community": 169,
"norm_label": "6. testing"
},
{
@@ -65709,7 +67689,7 @@
"source_file": "docs/superpowers/specs/2026-05-28-staging-root-opt-in-design.md",
"source_location": "L185",
"id": "specs_2026_05_28_staging_root_opt_in_design_tests_unit_test_paths_py",
- "community": 161,
+ "community": 169,
"norm_label": "`tests/unit/test_paths.py`"
},
{
@@ -65718,7 +67698,7 @@
"source_file": "docs/superpowers/specs/2026-05-28-staging-root-opt-in-design.md",
"source_location": "L197",
"id": "specs_2026_05_28_staging_root_opt_in_design_tests_unit_ui_test_settings_page_py",
- "community": 161,
+ "community": 169,
"norm_label": "`tests/unit/ui/test_settings_page.py`"
},
{
@@ -65727,7 +67707,7 @@
"source_file": "docs/superpowers/specs/2026-05-28-staging-root-opt-in-design.md",
"source_location": "L200",
"id": "specs_2026_05_28_staging_root_opt_in_design_tests_unit_ui_test_mount_py_new_cases",
- "community": 161,
+ "community": 169,
"norm_label": "`tests/unit/ui/test_mount.py` (new cases)"
},
{
@@ -65736,7 +67716,7 @@
"source_file": "docs/superpowers/specs/2026-05-28-staging-root-opt-in-design.md",
"source_location": "L206",
"id": "specs_2026_05_28_staging_root_opt_in_design_regression_sweep",
- "community": 161,
+ "community": 169,
"norm_label": "regression sweep"
},
{
@@ -65745,7 +67725,7 @@
"source_file": "docs/superpowers/specs/2026-05-28-staging-root-opt-in-design.md",
"source_location": "L213",
"id": "specs_2026_05_28_staging_root_opt_in_design_7_affected_files",
- "community": 161,
+ "community": 169,
"norm_label": "7. affected files"
},
{
@@ -65754,7 +67734,7 @@
"source_file": "docs/superpowers/specs/2026-05-29-main-window-ui-refresh-design.md",
"source_location": "L1",
"id": "docs_superpowers_specs_2026_05_29_main_window_ui_refresh_design_md",
- "community": 54,
+ "community": 65,
"norm_label": "2026-05-29-main-window-ui-refresh-design.md"
},
{
@@ -65763,340 +67743,340 @@
"source_file": "docs/superpowers/specs/2026-05-29-main-window-ui-refresh-design.md",
"source_location": "L1",
"id": "specs_2026_05_29_main_window_ui_refresh_design_main_window_ui_refresh_design_spec",
- "community": 54,
+ "community": 65,
"norm_label": "main-window ui refresh \u2014 design spec"
},
{
"label": "1. Summary",
"file_type": "document",
"source_file": "docs/superpowers/specs/2026-05-29-main-window-ui-refresh-design.md",
- "source_location": "L19",
+ "source_location": "L35",
"id": "specs_2026_05_29_main_window_ui_refresh_design_1_summary",
- "community": 54,
+ "community": 65,
"norm_label": "1. summary"
},
{
"label": "2. Goals & non-goals",
"file_type": "document",
"source_file": "docs/superpowers/specs/2026-05-29-main-window-ui-refresh-design.md",
- "source_location": "L52",
+ "source_location": "L68",
"id": "specs_2026_05_29_main_window_ui_refresh_design_2_goals_non_goals",
- "community": 54,
+ "community": 65,
"norm_label": "2. goals & non-goals"
},
{
"label": "Goals",
"file_type": "document",
"source_file": "docs/superpowers/specs/2026-05-29-main-window-ui-refresh-design.md",
- "source_location": "L54",
+ "source_location": "L70",
"id": "specs_2026_05_29_main_window_ui_refresh_design_goals",
- "community": 54,
+ "community": 65,
"norm_label": "goals"
},
{
"label": "Non-goals",
"file_type": "document",
"source_file": "docs/superpowers/specs/2026-05-29-main-window-ui-refresh-design.md",
- "source_location": "L66",
+ "source_location": "L82",
"id": "specs_2026_05_29_main_window_ui_refresh_design_non_goals",
- "community": 54,
+ "community": 65,
"norm_label": "non-goals"
},
{
"label": "3. Design tokens (foundation)",
"file_type": "document",
"source_file": "docs/superpowers/specs/2026-05-29-main-window-ui-refresh-design.md",
- "source_location": "L78",
+ "source_location": "L94",
"id": "specs_2026_05_29_main_window_ui_refresh_design_3_design_tokens_foundation",
- "community": 54,
+ "community": 65,
"norm_label": "3. design tokens (foundation)"
},
{
"label": "3.1 New tokens",
"file_type": "document",
"source_file": "docs/superpowers/specs/2026-05-29-main-window-ui-refresh-design.md",
- "source_location": "L86",
+ "source_location": "L102",
"id": "specs_2026_05_29_main_window_ui_refresh_design_3_1_new_tokens",
- "community": 54,
+ "community": 65,
"norm_label": "3.1 new tokens"
},
{
"label": "3.2 Fix latent debt \u2014 referenced-but-undefined variables",
"file_type": "document",
"source_file": "docs/superpowers/specs/2026-05-29-main-window-ui-refresh-design.md",
- "source_location": "L102",
+ "source_location": "L118",
"id": "specs_2026_05_29_main_window_ui_refresh_design_3_2_fix_latent_debt_referenced_but_undefined_variables",
- "community": 54,
+ "community": 65,
"norm_label": "3.2 fix latent debt \u2014 referenced-but-undefined variables"
},
{
"label": "4. Design",
"file_type": "document",
"source_file": "docs/superpowers/specs/2026-05-29-main-window-ui-refresh-design.md",
- "source_location": "L130",
+ "source_location": "L154",
"id": "specs_2026_05_29_main_window_ui_refresh_design_4_design",
- "community": 54,
+ "community": 65,
"norm_label": "4. design"
},
{
"label": "4.1 Panel framing \u2014 `components/framed_pane.py` (new) + `pages/main.py`",
"file_type": "document",
"source_file": "docs/superpowers/specs/2026-05-29-main-window-ui-refresh-design.md",
- "source_location": "L132",
+ "source_location": "L156",
"id": "specs_2026_05_29_main_window_ui_refresh_design_4_1_panel_framing_components_framed_pane_py_new_pages_main_py",
- "community": 54,
+ "community": 65,
"norm_label": "4.1 panel framing \u2014 `components/framed_pane.py` (new) + `pages/main.py`"
},
{
"label": "code:block1 (framed_pane(title: str, *, count: str | None = None, testid:)",
"file_type": "document",
"source_file": "docs/superpowers/specs/2026-05-29-main-window-ui-refresh-design.md",
- "source_location": "L136",
+ "source_location": "L160",
"id": "specs_2026_05_29_main_window_ui_refresh_design_codeblock_1",
- "community": 54,
+ "community": 65,
"norm_label": "code:block1 (framed_pane(title: str, *, count: str | none = none, testid:)"
},
{
"label": "4.2 File list: zebra + row-state precedence \u2014 `components/file_list.py`",
"file_type": "document",
"source_file": "docs/superpowers/specs/2026-05-29-main-window-ui-refresh-design.md",
- "source_location": "L170",
+ "source_location": "L204",
"id": "specs_2026_05_29_main_window_ui_refresh_design_4_2_file_list_zebra_row_state_precedence_components_file_list_py",
- "community": 54,
+ "community": 65,
"norm_label": "4.2 file list: zebra + row-state precedence \u2014 `components/file_list.py`"
},
{
"label": "code:block2 (def row_background(entry, *, is_selected: bool, is_new: bool)",
"file_type": "document",
"source_file": "docs/superpowers/specs/2026-05-29-main-window-ui-refresh-design.md",
- "source_location": "L174",
+ "source_location": "L208",
"id": "specs_2026_05_29_main_window_ui_refresh_design_codeblock_2",
- "community": 54,
+ "community": 65,
"norm_label": "code:block2 (def row_background(entry, *, is_selected: bool, is_new: bool)"
},
{
"label": "4.3 Centre-pane wiring \u2014 `pages/main.py` + `ui/mount.py`",
"file_type": "document",
"source_file": "docs/superpowers/specs/2026-05-29-main-window-ui-refresh-design.md",
- "source_location": "L207",
+ "source_location": "L241",
"id": "specs_2026_05_29_main_window_ui_refresh_design_4_3_centre_pane_wiring_pages_main_py_ui_mount_py",
- "community": 54,
+ "community": 65,
"norm_label": "4.3 centre-pane wiring \u2014 `pages/main.py` + `ui/mount.py`"
},
{
"label": "4.4 Metadata pane: Option B (anchored + nested file/folder) \u2014 `components/metadata_pane.py`",
"file_type": "document",
"source_file": "docs/superpowers/specs/2026-05-29-main-window-ui-refresh-design.md",
- "source_location": "L252",
+ "source_location": "L286",
"id": "specs_2026_05_29_main_window_ui_refresh_design_4_4_metadata_pane_option_b_anchored_nested_file_folder_components_metadata_pane_py",
- "community": 54,
+ "community": 65,
"norm_label": "4.4 metadata pane: option b (anchored + nested file/folder) \u2014 `components/metadata_pane.py`"
},
{
"label": "4.5 Unified selection styling + sync tooltips/legend",
"file_type": "document",
"source_file": "docs/superpowers/specs/2026-05-29-main-window-ui-refresh-design.md",
- "source_location": "L275",
+ "source_location": "L315",
"id": "specs_2026_05_29_main_window_ui_refresh_design_4_5_unified_selection_styling_sync_tooltips_legend",
- "community": 54,
+ "community": 65,
"norm_label": "4.5 unified selection styling + sync tooltips/legend"
},
{
"label": "4.6 Folder aggregates (item count + sync rollup) \u2014 OQ-3, OQ-4 resolved",
"file_type": "document",
"source_file": "docs/superpowers/specs/2026-05-29-main-window-ui-refresh-design.md",
- "source_location": "L325",
+ "source_location": "L365",
"id": "specs_2026_05_29_main_window_ui_refresh_design_4_6_folder_aggregates_item_count_sync_rollup_oq_3_oq_4_resolved",
- "community": 54,
+ "community": 65,
"norm_label": "4.6 folder aggregates (item count + sync rollup) \u2014 oq-3, oq-4 resolved"
},
{
"label": "code:block3 (failed > blocked_by_validation > pending > synced > cleaned)",
"file_type": "document",
"source_file": "docs/superpowers/specs/2026-05-29-main-window-ui-refresh-design.md",
- "source_location": "L357",
+ "source_location": "L397",
"id": "specs_2026_05_29_main_window_ui_refresh_design_codeblock_3",
- "community": 54,
+ "community": 65,
"norm_label": "code:block3 (failed > blocked_by_validation > pending > synced > cleaned)"
},
{
"label": "4.7 Empty states",
"file_type": "document",
"source_file": "docs/superpowers/specs/2026-05-29-main-window-ui-refresh-design.md",
- "source_location": "L366",
+ "source_location": "L406",
"id": "specs_2026_05_29_main_window_ui_refresh_design_4_7_empty_states",
- "community": 54,
+ "community": 65,
"norm_label": "4.7 empty states"
},
{
"label": "4.8 Toolbar grouping + density \u2014 `pages/main.py`",
"file_type": "document",
"source_file": "docs/superpowers/specs/2026-05-29-main-window-ui-refresh-design.md",
- "source_location": "L375",
+ "source_location": "L415",
"id": "specs_2026_05_29_main_window_ui_refresh_design_4_8_toolbar_grouping_density_pages_main_py",
- "community": 54,
+ "community": 65,
"norm_label": "4.8 toolbar grouping + density \u2014 `pages/main.py`"
},
{
"label": "4.9 Search affordances \u2014 `pages/main.py` (left Explorer card)",
"file_type": "document",
"source_file": "docs/superpowers/specs/2026-05-29-main-window-ui-refresh-design.md",
- "source_location": "L393",
+ "source_location": "L433",
"id": "specs_2026_05_29_main_window_ui_refresh_design_4_9_search_affordances_pages_main_py_left_explorer_card",
- "community": 54,
+ "community": 65,
"norm_label": "4.9 search affordances \u2014 `pages/main.py` (left explorer card)"
},
{
"label": "5. Architecture notes & rationale",
"file_type": "document",
"source_file": "docs/superpowers/specs/2026-05-29-main-window-ui-refresh-design.md",
- "source_location": "L415",
+ "source_location": "L455",
"id": "specs_2026_05_29_main_window_ui_refresh_design_5_architecture_notes_rationale",
- "community": 54,
+ "community": 65,
"norm_label": "5. architecture notes & rationale"
},
{
"label": "6. Data flow",
"file_type": "document",
"source_file": "docs/superpowers/specs/2026-05-29-main-window-ui-refresh-design.md",
- "source_location": "L444",
+ "source_location": "L492",
"id": "specs_2026_05_29_main_window_ui_refresh_design_6_data_flow",
- "community": 54,
+ "community": 65,
"norm_label": "6. data flow"
},
{
"label": "code:block4 (Tree selection (URL ?selected=) \u2500\u25ba _classify_node \u2500\u25ba node_ki)",
"file_type": "document",
"source_file": "docs/superpowers/specs/2026-05-29-main-window-ui-refresh-design.md",
- "source_location": "L446",
+ "source_location": "L494",
"id": "specs_2026_05_29_main_window_ui_refresh_design_codeblock_4",
- "community": 54,
+ "community": 65,
"norm_label": "code:block4 (tree selection (url ?selected=) \u2500\u25ba _classify_node \u2500\u25ba node_ki)"
},
{
"label": "7. Error handling & edge cases",
"file_type": "document",
"source_file": "docs/superpowers/specs/2026-05-29-main-window-ui-refresh-design.md",
- "source_location": "L472",
+ "source_location": "L520",
"id": "specs_2026_05_29_main_window_ui_refresh_design_7_error_handling_edge_cases",
- "community": 54,
+ "community": 65,
"norm_label": "7. error handling & edge cases"
},
{
"label": "8. Resolved questions",
"file_type": "document",
"source_file": "docs/superpowers/specs/2026-05-29-main-window-ui-refresh-design.md",
- "source_location": "L499",
+ "source_location": "L547",
"id": "specs_2026_05_29_main_window_ui_refresh_design_8_resolved_questions",
- "community": 54,
+ "community": 65,
"norm_label": "8. resolved questions"
},
{
"label": "9. Testing",
"file_type": "document",
"source_file": "docs/superpowers/specs/2026-05-29-main-window-ui-refresh-design.md",
- "source_location": "L520",
+ "source_location": "L568",
"id": "specs_2026_05_29_main_window_ui_refresh_design_9_testing",
- "community": 54,
+ "community": 65,
"norm_label": "9. testing"
},
{
"label": "`tests/unit/ui/test_design.py`",
"file_type": "document",
"source_file": "docs/superpowers/specs/2026-05-29-main-window-ui-refresh-design.md",
- "source_location": "L525",
+ "source_location": "L573",
"id": "specs_2026_05_29_main_window_ui_refresh_design_tests_unit_ui_test_design_py",
- "community": 54,
+ "community": 65,
"norm_label": "`tests/unit/ui/test_design.py`"
},
{
"label": "`tests/unit/ui/test_file_list.py`",
"file_type": "document",
"source_file": "docs/superpowers/specs/2026-05-29-main-window-ui-refresh-design.md",
- "source_location": "L531",
+ "source_location": "L579",
"id": "specs_2026_05_29_main_window_ui_refresh_design_tests_unit_ui_test_file_list_py",
- "community": 54,
+ "community": 65,
"norm_label": "`tests/unit/ui/test_file_list.py`"
},
{
"label": "`tests/unit/ui/test_metadata_pane.py`",
"file_type": "document",
"source_file": "docs/superpowers/specs/2026-05-29-main-window-ui-refresh-design.md",
- "source_location": "L538",
+ "source_location": "L586",
"id": "specs_2026_05_29_main_window_ui_refresh_design_tests_unit_ui_test_metadata_pane_py",
- "community": 54,
+ "community": 65,
"norm_label": "`tests/unit/ui/test_metadata_pane.py`"
},
{
"label": "`tests/unit/ui/test_sync_rollup.py` (new \u2014 pure)",
"file_type": "document",
"source_file": "docs/superpowers/specs/2026-05-29-main-window-ui-refresh-design.md",
- "source_location": "L545",
+ "source_location": "L593",
"id": "specs_2026_05_29_main_window_ui_refresh_design_tests_unit_ui_test_sync_rollup_py_new_pure",
- "community": 54,
+ "community": 65,
"norm_label": "`tests/unit/ui/test_sync_rollup.py` (new \u2014 pure)"
},
{
"label": "`tests/unit/ui/test_sync_status_icon.py` (extend)",
"file_type": "document",
"source_file": "docs/superpowers/specs/2026-05-29-main-window-ui-refresh-design.md",
- "source_location": "L549",
+ "source_location": "L597",
"id": "specs_2026_05_29_main_window_ui_refresh_design_tests_unit_ui_test_sync_status_icon_py_extend",
- "community": 54,
+ "community": 65,
"norm_label": "`tests/unit/ui/test_sync_status_icon.py` (extend)"
},
{
"label": "`tests/unit/ui/test_status_bar_segment.py` (extend)",
"file_type": "document",
"source_file": "docs/superpowers/specs/2026-05-29-main-window-ui-refresh-design.md",
- "source_location": "L554",
+ "source_location": "L602",
"id": "specs_2026_05_29_main_window_ui_refresh_design_tests_unit_ui_test_status_bar_segment_py_extend",
- "community": 54,
+ "community": 65,
"norm_label": "`tests/unit/ui/test_status_bar_segment.py` (extend)"
},
{
"label": "`tests/unit/ui/test_main_page.py` (extend) / `test_mount.py`",
"file_type": "document",
"source_file": "docs/superpowers/specs/2026-05-29-main-window-ui-refresh-design.md",
- "source_location": "L560",
+ "source_location": "L608",
"id": "specs_2026_05_29_main_window_ui_refresh_design_tests_unit_ui_test_main_page_py_extend_test_mount_py",
- "community": 54,
+ "community": 65,
"norm_label": "`tests/unit/ui/test_main_page.py` (extend) / `test_mount.py`"
},
{
"label": "`tests/e2e/` (smoke)",
"file_type": "document",
"source_file": "docs/superpowers/specs/2026-05-29-main-window-ui-refresh-design.md",
- "source_location": "L577",
+ "source_location": "L625",
"id": "specs_2026_05_29_main_window_ui_refresh_design_tests_e2e_smoke",
- "community": 54,
+ "community": 65,
"norm_label": "`tests/e2e/` (smoke)"
},
{
"label": "Regression sweep",
"file_type": "document",
"source_file": "docs/superpowers/specs/2026-05-29-main-window-ui-refresh-design.md",
- "source_location": "L583",
+ "source_location": "L631",
"id": "specs_2026_05_29_main_window_ui_refresh_design_regression_sweep",
- "community": 54,
+ "community": 65,
"norm_label": "regression sweep"
},
{
"label": "10. Affected files",
"file_type": "document",
"source_file": "docs/superpowers/specs/2026-05-29-main-window-ui-refresh-design.md",
- "source_location": "L590",
+ "source_location": "L638",
"id": "specs_2026_05_29_main_window_ui_refresh_design_10_affected_files",
- "community": 54,
+ "community": 65,
"norm_label": "10. affected files"
},
{
"label": "11. Deferred follow-ups (explicitly out of v1)",
"file_type": "document",
"source_file": "docs/superpowers/specs/2026-05-29-main-window-ui-refresh-design.md",
- "source_location": "L617",
+ "source_location": "L665",
"id": "specs_2026_05_29_main_window_ui_refresh_design_11_deferred_follow_ups_explicitly_out_of_v1",
- "community": 54,
+ "community": 65,
"norm_label": "11. deferred follow-ups (explicitly out of v1)"
},
{
@@ -66105,7 +68085,7 @@
"source_file": "docs/superpowers/specs/2026-05-29-sample-data-generation-design.md",
"source_location": "L1",
"id": "docs_superpowers_specs_2026_05_29_sample_data_generation_design_md",
- "community": 199,
+ "community": 197,
"norm_label": "2026-05-29-sample-data-generation-design.md"
},
{
@@ -66114,7 +68094,7 @@
"source_file": "docs/superpowers/specs/2026-05-29-sample-data-generation-design.md",
"source_location": "L1",
"id": "specs_2026_05_29_sample_data_generation_design_list_driven_sample_data_generation_design_spec",
- "community": 199,
+ "community": 197,
"norm_label": "list-driven sample data generation \u2014 design spec"
},
{
@@ -66123,7 +68103,7 @@
"source_file": "docs/superpowers/specs/2026-05-29-sample-data-generation-design.md",
"source_location": "L15",
"id": "specs_2026_05_29_sample_data_generation_design_1_summary",
- "community": 199,
+ "community": 197,
"norm_label": "1. summary"
},
{
@@ -66132,7 +68112,7 @@
"source_file": "docs/superpowers/specs/2026-05-29-sample-data-generation-design.md",
"source_location": "L42",
"id": "specs_2026_05_29_sample_data_generation_design_key_decisions_resolved_during_brainstorming",
- "community": 199,
+ "community": 197,
"norm_label": "key decisions (resolved during brainstorming)"
},
{
@@ -66141,7 +68121,7 @@
"source_file": "docs/superpowers/specs/2026-05-29-sample-data-generation-design.md",
"source_location": "L56",
"id": "specs_2026_05_29_sample_data_generation_design_2_goals_non_goals",
- "community": 199,
+ "community": 197,
"norm_label": "2. goals & non-goals"
},
{
@@ -66150,7 +68130,7 @@
"source_file": "docs/superpowers/specs/2026-05-29-sample-data-generation-design.md",
"source_location": "L58",
"id": "specs_2026_05_29_sample_data_generation_design_goals",
- "community": 199,
+ "community": 197,
"norm_label": "goals"
},
{
@@ -66159,7 +68139,7 @@
"source_file": "docs/superpowers/specs/2026-05-29-sample-data-generation-design.md",
"source_location": "L74",
"id": "specs_2026_05_29_sample_data_generation_design_non_goals",
- "community": 199,
+ "community": 197,
"norm_label": "non-goals"
},
{
@@ -66168,7 +68148,7 @@
"source_file": "docs/superpowers/specs/2026-05-29-sample-data-generation-design.md",
"source_location": "L97",
"id": "specs_2026_05_29_sample_data_generation_design_3_approaches_considered",
- "community": 199,
+ "community": 197,
"norm_label": "3. approaches considered"
},
{
@@ -66177,7 +68157,7 @@
"source_file": "docs/superpowers/specs/2026-05-29-sample-data-generation-design.md",
"source_location": "L120",
"id": "specs_2026_05_29_sample_data_generation_design_4_sample_list_data_model_pydantic",
- "community": 199,
+ "community": 197,
"norm_label": "4. sample list data model (pydantic)"
},
{
@@ -66186,7 +68166,7 @@
"source_file": "docs/superpowers/specs/2026-05-29-sample-data-generation-design.md",
"source_location": "L129",
"id": "specs_2026_05_29_sample_data_generation_design_codeblock_1",
- "community": 199,
+ "community": 197,
"norm_label": "code:python (class samplefile(basemodel):)"
},
{
@@ -66195,7 +68175,7 @@
"source_file": "docs/superpowers/specs/2026-05-29-sample-data-generation-design.md",
"source_location": "L251",
"id": "specs_2026_05_29_sample_data_generation_design_5_shared_helper_refactor_of_creation_py",
- "community": 199,
+ "community": 197,
"norm_label": "5. shared-helper refactor of `creation.py`"
},
{
@@ -66204,7 +68184,7 @@
"source_file": "docs/superpowers/specs/2026-05-29-sample-data-generation-design.md",
"source_location": "L282",
"id": "specs_2026_05_29_sample_data_generation_design_6_generation_flow",
- "community": 199,
+ "community": 197,
"norm_label": "6. generation flow"
},
{
@@ -66213,7 +68193,7 @@
"source_file": "docs/superpowers/specs/2026-05-29-sample-data-generation-design.md",
"source_location": "L333",
"id": "specs_2026_05_29_sample_data_generation_design_7_safety_guardrails_destructive_wipe",
- "community": 199,
+ "community": 197,
"norm_label": "7. safety guardrails (destructive wipe)"
},
{
@@ -66222,7 +68202,7 @@
"source_file": "docs/superpowers/specs/2026-05-29-sample-data-generation-design.md",
"source_location": "L350",
"id": "specs_2026_05_29_sample_data_generation_design_8_module_layout_entry_points",
- "community": 199,
+ "community": 197,
"norm_label": "8. module layout & entry points"
},
{
@@ -66231,7 +68211,7 @@
"source_file": "docs/superpowers/specs/2026-05-29-sample-data-generation-design.md",
"source_location": "L352",
"id": "specs_2026_05_29_sample_data_generation_design_codeblock_2",
- "community": 199,
+ "community": 197,
"norm_label": "code:block2 (src/exlab_wizard/sample_data/)"
},
{
@@ -66240,7 +68220,7 @@
"source_file": "docs/superpowers/specs/2026-05-29-sample-data-generation-design.md",
"source_location": "L384",
"id": "specs_2026_05_29_sample_data_generation_design_9_error_handling_testing",
- "community": 199,
+ "community": 197,
"norm_label": "9. error handling & testing"
},
{
@@ -66249,7 +68229,7 @@
"source_file": "docs/superpowers/specs/2026-05-29-sample-data-generation-design.md",
"source_location": "L386",
"id": "specs_2026_05_29_sample_data_generation_design_error_handling",
- "community": 199,
+ "community": 197,
"norm_label": "error handling"
},
{
@@ -66258,7 +68238,7 @@
"source_file": "docs/superpowers/specs/2026-05-29-sample-data-generation-design.md",
"source_location": "L394",
"id": "specs_2026_05_29_sample_data_generation_design_testing",
- "community": 199,
+ "community": 197,
"norm_label": "testing"
},
{
@@ -66267,7 +68247,7 @@
"source_file": "docs/superpowers/specs/2026-05-29-sample-data-generation-design.md",
"source_location": "L429",
"id": "specs_2026_05_29_sample_data_generation_design_10_file_level_change_summary",
- "community": 199,
+ "community": 197,
"norm_label": "10. file-level change summary"
},
{
@@ -66276,7 +68256,7 @@
"source_file": "docs/superpowers/specs/2026-05-29-main-window-ui-refresh-mockups/README.md",
"source_location": "L1",
"id": "docs_superpowers_specs_2026_05_29_main_window_ui_refresh_mockups_readme_md",
- "community": 465,
+ "community": 500,
"norm_label": "readme.md"
},
{
@@ -66285,7 +68265,7 @@
"source_file": "docs/superpowers/specs/2026-05-29-main-window-ui-refresh-mockups/README.md",
"source_location": "L1",
"id": "2026_05_29_main_window_ui_refresh_mockups_readme_main_window_ui_refresh_approved_mockups",
- "community": 465,
+ "community": 500,
"norm_label": "main-window ui refresh \u2014 approved mockups"
},
{
@@ -66294,7 +68274,7 @@
"source_file": "docs/superpowers/specs/2026-05-29-main-window-ui-refresh-mockups/README.md",
"source_location": "L18",
"id": "2026_05_29_main_window_ui_refresh_mockups_readme_caveats_for_implementers",
- "community": 465,
+ "community": 500,
"norm_label": "caveats for implementers"
},
{
@@ -66303,7 +68283,7 @@
"source_file": "design_specs/ExLab-Wizard_Frontend_Spec.md",
"source_location": "L1",
"id": "design_specs_exlab_wizard_frontend_spec_md",
- "community": 231,
+ "community": 198,
"norm_label": "exlab-wizard_frontend_spec.md"
},
{
@@ -66312,7 +68292,7 @@
"source_file": "design_specs/ExLab-Wizard_Frontend_Spec.md",
"source_location": "L1",
"id": "design_specs_exlab_wizard_frontend_spec_exlab_wizard_frontend_design_specification",
- "community": 231,
+ "community": 198,
"norm_label": "exlab-wizard: frontend design specification"
},
{
@@ -66321,7 +68301,7 @@
"source_file": "design_specs/ExLab-Wizard_Frontend_Spec.md",
"source_location": "L9",
"id": "design_specs_exlab_wizard_frontend_spec_table_of_contents",
- "community": 231,
+ "community": 198,
"norm_label": "table of contents"
},
{
@@ -66330,7 +68310,7 @@
"source_file": "design_specs/ExLab-Wizard_Frontend_Spec.md",
"source_location": "L27",
"id": "design_specs_exlab_wizard_frontend_spec_1_purpose_and_scope",
- "community": 231,
+ "community": 198,
"norm_label": "1. purpose and scope"
},
{
@@ -66339,7 +68319,7 @@
"source_file": "design_specs/ExLab-Wizard_Frontend_Spec.md",
"source_location": "L39",
"id": "design_specs_exlab_wizard_frontend_spec_2_framework_choice",
- "community": 220,
+ "community": 221,
"norm_label": "2. framework choice"
},
{
@@ -66348,7 +68328,7 @@
"source_file": "design_specs/ExLab-Wizard_Frontend_Spec.md",
"source_location": "L56",
"id": "design_specs_exlab_wizard_frontend_spec_2_1_visual_tokens_and_the_design_system",
- "community": 220,
+ "community": 221,
"norm_label": "2.1 visual tokens and the design system"
},
{
@@ -66357,7 +68337,7 @@
"source_file": "design_specs/ExLab-Wizard_Frontend_Spec.md",
"source_location": "L60",
"id": "design_specs_exlab_wizard_frontend_spec_2_1_1_the_design_py_module",
- "community": 220,
+ "community": 221,
"norm_label": "2.1.1 the `design.py` module"
},
{
@@ -66366,7 +68346,7 @@
"source_file": "design_specs/ExLab-Wizard_Frontend_Spec.md",
"source_location": "L66",
"id": "design_specs_exlab_wizard_frontend_spec_codeblock_1",
- "community": 220,
+ "community": 221,
"norm_label": "code:python (# exlab_wizard/ui/design.py \u2014 mirrors design.md; update both)"
},
{
@@ -66375,7 +68355,7 @@
"source_file": "design_specs/ExLab-Wizard_Frontend_Spec.md",
"source_location": "L123",
"id": "design_specs_exlab_wizard_frontend_spec_2_1_2_what_lives_in_design_md_vs_in_this_spec",
- "community": 220,
+ "community": 221,
"norm_label": "2.1.2 what lives in design.md vs in this spec"
},
{
@@ -66384,7 +68364,7 @@
"source_file": "design_specs/ExLab-Wizard_Frontend_Spec.md",
"source_location": "L130",
"id": "design_specs_exlab_wizard_frontend_spec_2_1_3_exlab_wizard_typography_overrides",
- "community": 220,
+ "community": 221,
"norm_label": "2.1.3 exlab-wizard typography overrides"
},
{
@@ -66393,7 +68373,7 @@
"source_file": "design_specs/ExLab-Wizard_Frontend_Spec.md",
"source_location": "L143",
"id": "design_specs_exlab_wizard_frontend_spec_2_1_4_warning_tier_color_resolves_oq_3",
- "community": 220,
+ "community": 221,
"norm_label": "2.1.4 warning-tier color (resolves oq #3)"
},
{
@@ -66402,7 +68382,7 @@
"source_file": "design_specs/ExLab-Wizard_Frontend_Spec.md",
"source_location": "L160",
"id": "design_specs_exlab_wizard_frontend_spec_2_1_5_css_styling_reference_rule",
- "community": 220,
+ "community": 221,
"norm_label": "2.1.5 css styling reference rule"
},
{
@@ -66411,7 +68391,7 @@
"source_file": "design_specs/ExLab-Wizard_Frontend_Spec.md",
"source_location": "L173",
"id": "design_specs_exlab_wizard_frontend_spec_2_1_6_design_md_absolute_constraints_binding",
- "community": 220,
+ "community": 221,
"norm_label": "2.1.6 design.md absolute constraints (binding)"
},
{
@@ -66420,7 +68400,7 @@
"source_file": "design_specs/ExLab-Wizard_Frontend_Spec.md",
"source_location": "L183",
"id": "design_specs_exlab_wizard_frontend_spec_2_2_notification_taxonomy",
- "community": 220,
+ "community": 221,
"norm_label": "2.2 notification taxonomy"
},
{
@@ -66429,7 +68409,7 @@
"source_file": "design_specs/ExLab-Wizard_Frontend_Spec.md",
"source_location": "L187",
"id": "design_specs_exlab_wizard_frontend_spec_2_2_1_pattern_selection_rule",
- "community": 220,
+ "community": 221,
"norm_label": "2.2.1 pattern selection rule"
},
{
@@ -66438,7 +68418,7 @@
"source_file": "design_specs/ExLab-Wizard_Frontend_Spec.md",
"source_location": "L205",
"id": "design_specs_exlab_wizard_frontend_spec_2_2_2_toast_specifications",
- "community": 220,
+ "community": 221,
"norm_label": "2.2.2 toast specifications"
},
{
@@ -66447,7 +68427,7 @@
"source_file": "design_specs/ExLab-Wizard_Frontend_Spec.md",
"source_location": "L228",
"id": "design_specs_exlab_wizard_frontend_spec_2_2_3_banner_specifications",
- "community": 220,
+ "community": 221,
"norm_label": "2.2.3 banner specifications"
},
{
@@ -66456,7 +68436,7 @@
"source_file": "design_specs/ExLab-Wizard_Frontend_Spec.md",
"source_location": "L252",
"id": "design_specs_exlab_wizard_frontend_spec_2_2_4_inline_message_specifications",
- "community": 220,
+ "community": 221,
"norm_label": "2.2.4 inline message specifications"
},
{
@@ -66465,7 +68445,7 @@
"source_file": "design_specs/ExLab-Wizard_Frontend_Spec.md",
"source_location": "L268",
"id": "design_specs_exlab_wizard_frontend_spec_2_2_5_the_notify_helper_api",
- "community": 220,
+ "community": 221,
"norm_label": "2.2.5 the `notify()` helper api"
},
{
@@ -66474,7 +68454,7 @@
"source_file": "design_specs/ExLab-Wizard_Frontend_Spec.md",
"source_location": "L272",
"id": "design_specs_exlab_wizard_frontend_spec_codeblock_2",
- "community": 220,
+ "community": 221,
"norm_label": "code:python (# action results -> toasts (\u00a72.2.2))"
},
{
@@ -66483,7 +68463,7 @@
"source_file": "design_specs/ExLab-Wizard_Frontend_Spec.md",
"source_location": "L307",
"id": "design_specs_exlab_wizard_frontend_spec_3_main_window",
- "community": 263,
+ "community": 267,
"norm_label": "3. main window"
},
{
@@ -66492,7 +68472,7 @@
"source_file": "design_specs/ExLab-Wizard_Frontend_Spec.md",
"source_location": "L311",
"id": "design_specs_exlab_wizard_frontend_spec_3_1_application_lifecycle_and_first_launch_state",
- "community": 263,
+ "community": 267,
"norm_label": "3.1 application lifecycle and first-launch state"
},
{
@@ -66501,7 +68481,7 @@
"source_file": "design_specs/ExLab-Wizard_Frontend_Spec.md",
"source_location": "L319",
"id": "design_specs_exlab_wizard_frontend_spec_3_1_1_setup_complete_definition",
- "community": 263,
+ "community": 267,
"norm_label": "3.1.1 setup-complete definition"
},
{
@@ -66510,7 +68490,7 @@
"source_file": "design_specs/ExLab-Wizard_Frontend_Spec.md",
"source_location": "L329",
"id": "design_specs_exlab_wizard_frontend_spec_3_1_2_boot_flow",
- "community": 263,
+ "community": 267,
"norm_label": "3.1.2 boot flow"
},
{
@@ -66519,7 +68499,7 @@
"source_file": "design_specs/ExLab-Wizard_Frontend_Spec.md",
"source_location": "L356",
"id": "design_specs_exlab_wizard_frontend_spec_3_1_3_welcome_card_first_launch_only",
- "community": 263,
+ "community": 267,
"norm_label": "3.1.3 welcome card (first launch only)"
},
{
@@ -66528,7 +68508,7 @@
"source_file": "design_specs/ExLab-Wizard_Frontend_Spec.md",
"source_location": "L376",
"id": "design_specs_exlab_wizard_frontend_spec_3_1_4_setup_incomplete_state_on_the_main_window",
- "community": 263,
+ "community": 267,
"norm_label": "3.1.4 setup-incomplete state on the main window"
},
{
@@ -66537,7 +68517,7 @@
"source_file": "design_specs/ExLab-Wizard_Frontend_Spec.md",
"source_location": "L393",
"id": "design_specs_exlab_wizard_frontend_spec_3_1_5_first_launch_defaults",
- "community": 263,
+ "community": 267,
"norm_label": "3.1.5 first-launch defaults"
},
{
@@ -66546,7 +68526,7 @@
"source_file": "design_specs/ExLab-Wizard_Frontend_Spec.md",
"source_location": "L404",
"id": "design_specs_exlab_wizard_frontend_spec_3_1_6_bundled_content_discovery",
- "community": 263,
+ "community": 267,
"norm_label": "3.1.6 bundled content discovery"
},
{
@@ -66555,7 +68535,7 @@
"source_file": "design_specs/ExLab-Wizard_Frontend_Spec.md",
"source_location": "L412",
"id": "design_specs_exlab_wizard_frontend_spec_3_1_7_lims_configuration_online_and_offline_workstations",
- "community": 263,
+ "community": 267,
"norm_label": "3.1.7 lims configuration: online and offline workstations"
},
{
@@ -66564,7 +68544,7 @@
"source_file": "design_specs/ExLab-Wizard_Frontend_Spec.md",
"source_location": "L418",
"id": "design_specs_exlab_wizard_frontend_spec_3_2_layout",
- "community": 263,
+ "community": 267,
"norm_label": "3.2 layout"
},
{
@@ -66573,7 +68553,7 @@
"source_file": "design_specs/ExLab-Wizard_Frontend_Spec.md",
"source_location": "L433",
"id": "design_specs_exlab_wizard_frontend_spec_3_3_refresh_semantics",
- "community": 263,
+ "community": 267,
"norm_label": "3.3 refresh semantics"
},
{
@@ -66582,7 +68562,7 @@
"source_file": "design_specs/ExLab-Wizard_Frontend_Spec.md",
"source_location": "L437",
"id": "design_specs_exlab_wizard_frontend_spec_3_4_tray_icon_and_window_lifecycle",
- "community": 323,
+ "community": 321,
"norm_label": "3.4 tray icon and window lifecycle"
},
{
@@ -66591,7 +68571,7 @@
"source_file": "design_specs/ExLab-Wizard_Frontend_Spec.md",
"source_location": "L441",
"id": "design_specs_exlab_wizard_frontend_spec_3_4_1_tray_menu",
- "community": 323,
+ "community": 321,
"norm_label": "3.4.1 tray menu"
},
{
@@ -66600,7 +68580,7 @@
"source_file": "design_specs/ExLab-Wizard_Frontend_Spec.md",
"source_location": "L453",
"id": "design_specs_exlab_wizard_frontend_spec_3_4_2_status_submenu",
- "community": 323,
+ "community": 321,
"norm_label": "3.4.2 status submenu"
},
{
@@ -66609,7 +68589,7 @@
"source_file": "design_specs/ExLab-Wizard_Frontend_Spec.md",
"source_location": "L469",
"id": "design_specs_exlab_wizard_frontend_spec_3_4_3_window_lifecycle",
- "community": 323,
+ "community": 321,
"norm_label": "3.4.3 window lifecycle"
},
{
@@ -66618,7 +68598,7 @@
"source_file": "design_specs/ExLab-Wizard_Frontend_Spec.md",
"source_location": "L486",
"id": "design_specs_exlab_wizard_frontend_spec_3_4_4_why_this_lifecycle_matters_for_the_lab_workflow",
- "community": 323,
+ "community": 321,
"norm_label": "3.4.4 why this lifecycle matters for the lab workflow"
},
{
@@ -66627,7 +68607,7 @@
"source_file": "design_specs/ExLab-Wizard_Frontend_Spec.md",
"source_location": "L494",
"id": "design_specs_exlab_wizard_frontend_spec_3_4_5_os_notifications",
- "community": 323,
+ "community": 321,
"norm_label": "3.4.5 os notifications"
},
{
@@ -66636,7 +68616,7 @@
"source_file": "design_specs/ExLab-Wizard_Frontend_Spec.md",
"source_location": "L503",
"id": "design_specs_exlab_wizard_frontend_spec_3_4_6_quitting_the_app",
- "community": 323,
+ "community": 321,
"norm_label": "3.4.6 quitting the app"
},
{
@@ -66645,7 +68625,7 @@
"source_file": "design_specs/ExLab-Wizard_Frontend_Spec.md",
"source_location": "L510",
"id": "design_specs_exlab_wizard_frontend_spec_3_4_7_linux_fallback_no_system_tray",
- "community": 323,
+ "community": 321,
"norm_label": "3.4.7 linux fallback (no system tray)"
},
{
@@ -66654,7 +68634,7 @@
"source_file": "design_specs/ExLab-Wizard_Frontend_Spec.md",
"source_location": "L521",
"id": "design_specs_exlab_wizard_frontend_spec_3_5_tree_details_filters_and_status_bar",
- "community": 321,
+ "community": 322,
"norm_label": "3.5 tree details, filters, and status bar"
},
{
@@ -66663,7 +68643,7 @@
"source_file": "design_specs/ExLab-Wizard_Frontend_Spec.md",
"source_location": "L525",
"id": "design_specs_exlab_wizard_frontend_spec_3_5_1_lims_name_resolution",
- "community": 321,
+ "community": 322,
"norm_label": "3.5.1 lims name resolution"
},
{
@@ -66672,7 +68652,7 @@
"source_file": "design_specs/ExLab-Wizard_Frontend_Spec.md",
"source_location": "L535",
"id": "design_specs_exlab_wizard_frontend_spec_3_5_2_tree_node_display_format",
- "community": 321,
+ "community": 322,
"norm_label": "3.5.2 tree node display format"
},
{
@@ -66681,7 +68661,7 @@
"source_file": "design_specs/ExLab-Wizard_Frontend_Spec.md",
"source_location": "L546",
"id": "design_specs_exlab_wizard_frontend_spec_3_5_3_archived_and_deleted_lims_project_handling",
- "community": 321,
+ "community": 322,
"norm_label": "3.5.3 archived and deleted lims-project handling"
},
{
@@ -66690,7 +68670,7 @@
"source_file": "design_specs/ExLab-Wizard_Frontend_Spec.md",
"source_location": "L558",
"id": "design_specs_exlab_wizard_frontend_spec_3_5_4_search_and_filter_chips",
- "community": 321,
+ "community": 322,
"norm_label": "3.5.4 search and filter chips"
},
{
@@ -66699,7 +68679,7 @@
"source_file": "design_specs/ExLab-Wizard_Frontend_Spec.md",
"source_location": "L562",
"id": "design_specs_exlab_wizard_frontend_spec_codeblock_3",
- "community": 321,
+ "community": 322,
"norm_label": "code:block3 ([ search by name, short_id, or run label ... ] [active \u2713] )"
},
{
@@ -66708,7 +68688,7 @@
"source_file": "design_specs/ExLab-Wizard_Frontend_Spec.md",
"source_location": "L580",
"id": "design_specs_exlab_wizard_frontend_spec_3_5_5_status_bar_bottom_of_the_main_window",
- "community": 321,
+ "community": 322,
"norm_label": "3.5.5 status bar (bottom of the main window)"
},
{
@@ -66717,7 +68697,7 @@
"source_file": "design_specs/ExLab-Wizard_Frontend_Spec.md",
"source_location": "L594",
"id": "design_specs_exlab_wizard_frontend_spec_3_5_6_empty_states",
- "community": 321,
+ "community": 322,
"norm_label": "3.5.6 empty states"
},
{
@@ -66726,7 +68706,7 @@
"source_file": "design_specs/ExLab-Wizard_Frontend_Spec.md",
"source_location": "L604",
"id": "design_specs_exlab_wizard_frontend_spec_3_6_detail_pane_right_panel",
- "community": 322,
+ "community": 320,
"norm_label": "3.6 detail pane (right panel)"
},
{
@@ -66735,7 +68715,7 @@
"source_file": "design_specs/ExLab-Wizard_Frontend_Spec.md",
"source_location": "L610",
"id": "design_specs_exlab_wizard_frontend_spec_3_6_1_title_bar",
- "community": 322,
+ "community": 320,
"norm_label": "3.6.1 title bar"
},
{
@@ -66744,7 +68724,7 @@
"source_file": "design_specs/ExLab-Wizard_Frontend_Spec.md",
"source_location": "L622",
"id": "design_specs_exlab_wizard_frontend_spec_3_6_2_project_detail_sections",
- "community": 322,
+ "community": 320,
"norm_label": "3.6.2 project detail sections"
},
{
@@ -66753,7 +68733,7 @@
"source_file": "design_specs/ExLab-Wizard_Frontend_Spec.md",
"source_location": "L633",
"id": "design_specs_exlab_wizard_frontend_spec_3_6_3_run_detail_sections",
- "community": 322,
+ "community": 320,
"norm_label": "3.6.3 run detail sections"
},
{
@@ -66762,7 +68742,7 @@
"source_file": "design_specs/ExLab-Wizard_Frontend_Spec.md",
"source_location": "L646",
"id": "design_specs_exlab_wizard_frontend_spec_3_6_4_validation_and_override_summary",
- "community": 322,
+ "community": 320,
"norm_label": "3.6.4 validation and override summary"
},
{
@@ -66771,7 +68751,7 @@
"source_file": "design_specs/ExLab-Wizard_Frontend_Spec.md",
"source_location": "L654",
"id": "design_specs_exlab_wizard_frontend_spec_codeblock_4",
- "community": 322,
+ "community": 320,
"norm_label": "code:block4 (\u26a0 unresolved placeholder token \u00b7 run_)"
},
{
@@ -66780,7 +68760,7 @@
"source_file": "design_specs/ExLab-Wizard_Frontend_Spec.md",
"source_location": "L668",
"id": "design_specs_exlab_wizard_frontend_spec_3_6_5_action_affordances",
- "community": 322,
+ "community": 320,
"norm_label": "3.6.5 action affordances"
},
{
@@ -66789,7 +68769,7 @@
"source_file": "design_specs/ExLab-Wizard_Frontend_Spec.md",
"source_location": "L690",
"id": "design_specs_exlab_wizard_frontend_spec_3_6_6_empty_selection",
- "community": 322,
+ "community": 320,
"norm_label": "3.6.6 empty selection"
},
{
@@ -66798,7 +68778,7 @@
"source_file": "design_specs/ExLab-Wizard_Frontend_Spec.md",
"source_location": "L698",
"id": "design_specs_exlab_wizard_frontend_spec_3_7_keyboard_shortcuts",
- "community": 263,
+ "community": 267,
"norm_label": "3.7 keyboard shortcuts"
},
{
@@ -66807,7 +68787,7 @@
"source_file": "design_specs/ExLab-Wizard_Frontend_Spec.md",
"source_location": "L723",
"id": "design_specs_exlab_wizard_frontend_spec_4_new_project_wizard",
- "community": 231,
+ "community": 198,
"norm_label": "4. new project wizard"
},
{
@@ -66816,7 +68796,7 @@
"source_file": "design_specs/ExLab-Wizard_Frontend_Spec.md",
"source_location": "L739",
"id": "design_specs_exlab_wizard_frontend_spec_4_1_lims_picker_behavior",
- "community": 231,
+ "community": 198,
"norm_label": "4.1 lims picker behavior"
},
{
@@ -66825,7 +68805,7 @@
"source_file": "design_specs/ExLab-Wizard_Frontend_Spec.md",
"source_location": "L750",
"id": "design_specs_exlab_wizard_frontend_spec_5_new_run_wizard_experimental_and_test_modes",
- "community": 402,
+ "community": 198,
"norm_label": "5. new run wizard (experimental and test modes)"
},
{
@@ -66834,7 +68814,7 @@
"source_file": "design_specs/ExLab-Wizard_Frontend_Spec.md",
"source_location": "L754",
"id": "design_specs_exlab_wizard_frontend_spec_5_1_mode_binding_at_launch",
- "community": 402,
+ "community": 198,
"norm_label": "5.1 mode binding at launch"
},
{
@@ -66843,7 +68823,7 @@
"source_file": "design_specs/ExLab-Wizard_Frontend_Spec.md",
"source_location": "L761",
"id": "design_specs_exlab_wizard_frontend_spec_5_2_steps",
- "community": 402,
+ "community": 198,
"norm_label": "5.2 steps"
},
{
@@ -66852,7 +68832,7 @@
"source_file": "design_specs/ExLab-Wizard_Frontend_Spec.md",
"source_location": "L772",
"id": "design_specs_exlab_wizard_frontend_spec_5_3_visual_differentiation",
- "community": 402,
+ "community": 198,
"norm_label": "5.3 visual differentiation"
},
{
@@ -66861,7 +68841,7 @@
"source_file": "design_specs/ExLab-Wizard_Frontend_Spec.md",
"source_location": "L780",
"id": "design_specs_exlab_wizard_frontend_spec_6_readme_authoring_step",
- "community": 387,
+ "community": 384,
"norm_label": "6. readme authoring step"
},
{
@@ -66870,7 +68850,7 @@
"source_file": "design_specs/ExLab-Wizard_Frontend_Spec.md",
"source_location": "L784",
"id": "design_specs_exlab_wizard_frontend_spec_6_1_layout",
- "community": 387,
+ "community": 384,
"norm_label": "6.1 layout"
},
{
@@ -66879,7 +68859,7 @@
"source_file": "design_specs/ExLab-Wizard_Frontend_Spec.md",
"source_location": "L796",
"id": "design_specs_exlab_wizard_frontend_spec_6_2_pre_fill_rules",
- "community": 387,
+ "community": 384,
"norm_label": "6.2 pre-fill rules"
},
{
@@ -66888,7 +68868,7 @@
"source_file": "design_specs/ExLab-Wizard_Frontend_Spec.md",
"source_location": "L806",
"id": "design_specs_exlab_wizard_frontend_spec_6_3_preview_behavior",
- "community": 387,
+ "community": 384,
"norm_label": "6.3 preview behavior"
},
{
@@ -66897,7 +68877,7 @@
"source_file": "design_specs/ExLab-Wizard_Frontend_Spec.md",
"source_location": "L810",
"id": "design_specs_exlab_wizard_frontend_spec_6_4_required_field_error_messaging",
- "community": 387,
+ "community": 384,
"norm_label": "6.4 required-field error messaging"
},
{
@@ -66906,7 +68886,7 @@
"source_file": "design_specs/ExLab-Wizard_Frontend_Spec.md",
"source_location": "L816",
"id": "design_specs_exlab_wizard_frontend_spec_7_settings_dialog",
- "community": 184,
+ "community": 191,
"norm_label": "7. settings dialog"
},
{
@@ -66915,7 +68895,7 @@
"source_file": "design_specs/ExLab-Wizard_Frontend_Spec.md",
"source_location": "L822",
"id": "design_specs_exlab_wizard_frontend_spec_7_1_modality",
- "community": 184,
+ "community": 191,
"norm_label": "7.1 modality"
},
{
@@ -66924,7 +68904,7 @@
"source_file": "design_specs/ExLab-Wizard_Frontend_Spec.md",
"source_location": "L828",
"id": "design_specs_exlab_wizard_frontend_spec_7_2_layout_sidebar_navigation",
- "community": 184,
+ "community": 191,
"norm_label": "7.2 layout \u2014 sidebar navigation"
},
{
@@ -66933,7 +68913,7 @@
"source_file": "design_specs/ExLab-Wizard_Frontend_Spec.md",
"source_location": "L839",
"id": "design_specs_exlab_wizard_frontend_spec_7_3_save_and_discard_model",
- "community": 184,
+ "community": 191,
"norm_label": "7.3 save and discard model"
},
{
@@ -66942,7 +68922,7 @@
"source_file": "design_specs/ExLab-Wizard_Frontend_Spec.md",
"source_location": "L851",
"id": "design_specs_exlab_wizard_frontend_spec_7_4_reusable_patterns",
- "community": 184,
+ "community": 191,
"norm_label": "7.4 reusable patterns"
},
{
@@ -66951,7 +68931,7 @@
"source_file": "design_specs/ExLab-Wizard_Frontend_Spec.md",
"source_location": "L853",
"id": "design_specs_exlab_wizard_frontend_spec_7_4_1_credential_field",
- "community": 184,
+ "community": 191,
"norm_label": "7.4.1 credential field"
},
{
@@ -66960,7 +68940,7 @@
"source_file": "design_specs/ExLab-Wizard_Frontend_Spec.md",
"source_location": "L865",
"id": "design_specs_exlab_wizard_frontend_spec_7_4_2_test_connection_feedback_panel",
- "community": 184,
+ "community": 191,
"norm_label": "7.4.2 test-connection feedback panel"
},
{
@@ -66969,7 +68949,7 @@
"source_file": "design_specs/ExLab-Wizard_Frontend_Spec.md",
"source_location": "L877",
"id": "design_specs_exlab_wizard_frontend_spec_7_5_paths_section",
- "community": 184,
+ "community": 191,
"norm_label": "7.5 paths section"
},
{
@@ -66978,7 +68958,7 @@
"source_file": "design_specs/ExLab-Wizard_Frontend_Spec.md",
"source_location": "L889",
"id": "design_specs_exlab_wizard_frontend_spec_7_6_lims_section",
- "community": 184,
+ "community": 191,
"norm_label": "7.6 lims section"
},
{
@@ -66987,7 +68967,7 @@
"source_file": "design_specs/ExLab-Wizard_Frontend_Spec.md",
"source_location": "L907",
"id": "design_specs_exlab_wizard_frontend_spec_7_7_equipment_list_section",
- "community": 184,
+ "community": 191,
"norm_label": "7.7 equipment list section"
},
{
@@ -66996,7 +68976,7 @@
"source_file": "design_specs/ExLab-Wizard_Frontend_Spec.md",
"source_location": "L911",
"id": "design_specs_exlab_wizard_frontend_spec_7_7_1_list_table",
- "community": 184,
+ "community": 191,
"norm_label": "7.7.1 list table"
},
{
@@ -67005,7 +68985,7 @@
"source_file": "design_specs/ExLab-Wizard_Frontend_Spec.md",
"source_location": "L929",
"id": "design_specs_exlab_wizard_frontend_spec_7_7_2_add_edit_sub_dialog",
- "community": 184,
+ "community": 191,
"norm_label": "7.7.2 add / edit sub-dialog"
},
{
@@ -67014,7 +68994,7 @@
"source_file": "design_specs/ExLab-Wizard_Frontend_Spec.md",
"source_location": "L951",
"id": "design_specs_exlab_wizard_frontend_spec_7_7_3_bandwidth_schedule_editor",
- "community": 184,
+ "community": 191,
"norm_label": "7.7.3 bandwidth schedule editor"
},
{
@@ -67023,7 +69003,7 @@
"source_file": "design_specs/ExLab-Wizard_Frontend_Spec.md",
"source_location": "L979",
"id": "design_specs_exlab_wizard_frontend_spec_7_8_nas_cleanup_section",
- "community": 184,
+ "community": 191,
"norm_label": "7.8 nas cleanup section"
},
{
@@ -67032,7 +69012,7 @@
"source_file": "design_specs/ExLab-Wizard_Frontend_Spec.md",
"source_location": "L992",
"id": "design_specs_exlab_wizard_frontend_spec_7_9_operators_section",
- "community": 184,
+ "community": 191,
"norm_label": "7.9 operators section"
},
{
@@ -67041,7 +69021,7 @@
"source_file": "design_specs/ExLab-Wizard_Frontend_Spec.md",
"source_location": "L998",
"id": "design_specs_exlab_wizard_frontend_spec_7_10_validator_section",
- "community": 184,
+ "community": 191,
"norm_label": "7.10 validator section"
},
{
@@ -67050,7 +69030,7 @@
"source_file": "design_specs/ExLab-Wizard_Frontend_Spec.md",
"source_location": "L1007",
"id": "design_specs_exlab_wizard_frontend_spec_7_11_logging_section",
- "community": 184,
+ "community": 191,
"norm_label": "7.11 logging section"
},
{
@@ -67059,7 +69039,7 @@
"source_file": "design_specs/ExLab-Wizard_Frontend_Spec.md",
"source_location": "L1017",
"id": "design_specs_exlab_wizard_frontend_spec_7_12_orchestrator_mode_section",
- "community": 184,
+ "community": 191,
"norm_label": "7.12 orchestrator mode section"
},
{
@@ -67068,7 +69048,7 @@
"source_file": "design_specs/ExLab-Wizard_Frontend_Spec.md",
"source_location": "L1031",
"id": "design_specs_exlab_wizard_frontend_spec_7_13_application_section",
- "community": 184,
+ "community": 191,
"norm_label": "7.13 application section"
},
{
@@ -67077,7 +69057,7 @@
"source_file": "design_specs/ExLab-Wizard_Frontend_Spec.md",
"source_location": "L1043",
"id": "design_specs_exlab_wizard_frontend_spec_7_14_setup_incomplete_state",
- "community": 184,
+ "community": 191,
"norm_label": "7.14 setup-incomplete state"
},
{
@@ -67086,7 +69066,7 @@
"source_file": "design_specs/ExLab-Wizard_Frontend_Spec.md",
"source_location": "L1053",
"id": "design_specs_exlab_wizard_frontend_spec_8_orchestrator_mode_surfaces",
- "community": 231,
+ "community": 198,
"norm_label": "8. orchestrator mode surfaces"
},
{
@@ -67095,7 +69075,7 @@
"source_file": "design_specs/ExLab-Wizard_Frontend_Spec.md",
"source_location": "L1057",
"id": "design_specs_exlab_wizard_frontend_spec_8_1_equipment_selector",
- "community": 231,
+ "community": 198,
"norm_label": "8.1 equipment selector"
},
{
@@ -67104,7 +69084,7 @@
"source_file": "design_specs/ExLab-Wizard_Frontend_Spec.md",
"source_location": "L1061",
"id": "design_specs_exlab_wizard_frontend_spec_8_2_staging_panel",
- "community": 231,
+ "community": 198,
"norm_label": "8.2 staging panel"
},
{
@@ -67113,7 +69093,7 @@
"source_file": "design_specs/ExLab-Wizard_Frontend_Spec.md",
"source_location": "L1074",
"id": "design_specs_exlab_wizard_frontend_spec_8_3_clear_verified_runs_action",
- "community": 231,
+ "community": 198,
"norm_label": "8.3 clear verified runs action"
},
{
@@ -67122,7 +69102,7 @@
"source_file": "design_specs/ExLab-Wizard_Frontend_Spec.md",
"source_location": "L1080",
"id": "design_specs_exlab_wizard_frontend_spec_9_plugin_input_escalation",
- "community": 319,
+ "community": 318,
"norm_label": "9. plugin input escalation"
},
{
@@ -67131,7 +69111,7 @@
"source_file": "design_specs/ExLab-Wizard_Frontend_Spec.md",
"source_location": "L1084",
"id": "design_specs_exlab_wizard_frontend_spec_9_1_escalation_dialog_layout",
- "community": 319,
+ "community": 318,
"norm_label": "9.1 escalation dialog layout"
},
{
@@ -67140,7 +69120,7 @@
"source_file": "design_specs/ExLab-Wizard_Frontend_Spec.md",
"source_location": "L1101",
"id": "design_specs_exlab_wizard_frontend_spec_9_2_multiple_consecutive_escalations_from_one_session_sequential",
- "community": 319,
+ "community": 318,
"norm_label": "9.2 multiple consecutive escalations from one session (sequential)"
},
{
@@ -67149,7 +69129,7 @@
"source_file": "design_specs/ExLab-Wizard_Frontend_Spec.md",
"source_location": "L1109",
"id": "design_specs_exlab_wizard_frontend_spec_9_3_mid_plugin_pass_progress_per_plugin_sub_progress",
- "community": 319,
+ "community": 318,
"norm_label": "9.3 mid-plugin-pass progress (per-plugin sub-progress)"
},
{
@@ -67158,7 +69138,7 @@
"source_file": "design_specs/ExLab-Wizard_Frontend_Spec.md",
"source_location": "L1113",
"id": "design_specs_exlab_wizard_frontend_spec_codeblock_5",
- "community": 319,
+ "community": 318,
"norm_label": "code:block5 (running plugins )"
},
{
@@ -67167,7 +69147,7 @@
"source_file": "design_specs/ExLab-Wizard_Frontend_Spec.md",
"source_location": "L1128",
"id": "design_specs_exlab_wizard_frontend_spec_9_4_cancel_during_escalation_confirmation_dialog",
- "community": 319,
+ "community": 318,
"norm_label": "9.4 cancel during escalation -- confirmation dialog"
},
{
@@ -67176,7 +69156,7 @@
"source_file": "design_specs/ExLab-Wizard_Frontend_Spec.md",
"source_location": "L1143",
"id": "design_specs_exlab_wizard_frontend_spec_9_5_disconnect_and_resume_the_in_flight_operations_panel",
- "community": 319,
+ "community": 318,
"norm_label": "9.5 disconnect and resume -- the in-flight operations panel"
},
{
@@ -67185,7 +69165,7 @@
"source_file": "design_specs/ExLab-Wizard_Frontend_Spec.md",
"source_location": "L1170",
"id": "design_specs_exlab_wizard_frontend_spec_9_6_concurrent_suspended_sessions",
- "community": 319,
+ "community": 318,
"norm_label": "9.6 concurrent suspended sessions"
},
{
@@ -67194,7 +69174,7 @@
"source_file": "design_specs/ExLab-Wizard_Frontend_Spec.md",
"source_location": "L1181",
"id": "design_specs_exlab_wizard_frontend_spec_10_error_progress_and_summary_presentation",
- "community": 279,
+ "community": 283,
"norm_label": "10. error, progress, and summary presentation"
},
{
@@ -67203,7 +69183,7 @@
"source_file": "design_specs/ExLab-Wizard_Frontend_Spec.md",
"source_location": "L1183",
"id": "design_specs_exlab_wizard_frontend_spec_10_1_progress",
- "community": 279,
+ "community": 283,
"norm_label": "10.1 progress"
},
{
@@ -67212,7 +69192,7 @@
"source_file": "design_specs/ExLab-Wizard_Frontend_Spec.md",
"source_location": "L1187",
"id": "design_specs_exlab_wizard_frontend_spec_10_2_errors",
- "community": 279,
+ "community": 283,
"norm_label": "10.2 errors"
},
{
@@ -67221,7 +69201,7 @@
"source_file": "design_specs/ExLab-Wizard_Frontend_Spec.md",
"source_location": "L1195",
"id": "design_specs_exlab_wizard_frontend_spec_10_3_success_summary",
- "community": 279,
+ "community": 283,
"norm_label": "10.3 success summary"
},
{
@@ -67230,7 +69210,7 @@
"source_file": "design_specs/ExLab-Wizard_Frontend_Spec.md",
"source_location": "L1205",
"id": "design_specs_exlab_wizard_frontend_spec_10_4_sync_blocked_banner",
- "community": 279,
+ "community": 283,
"norm_label": "10.4 sync-blocked banner"
},
{
@@ -67239,7 +69219,7 @@
"source_file": "design_specs/ExLab-Wizard_Frontend_Spec.md",
"source_location": "L1215",
"id": "design_specs_exlab_wizard_frontend_spec_10_5_recovery_flows",
- "community": 279,
+ "community": 283,
"norm_label": "10.5 recovery flows"
},
{
@@ -67248,7 +69228,7 @@
"source_file": "design_specs/ExLab-Wizard_Frontend_Spec.md",
"source_location": "L1219",
"id": "design_specs_exlab_wizard_frontend_spec_10_5_1_nas_sync_failure_recovery",
- "community": 279,
+ "community": 283,
"norm_label": "10.5.1 nas sync failure recovery"
},
{
@@ -67257,7 +69237,7 @@
"source_file": "design_specs/ExLab-Wizard_Frontend_Spec.md",
"source_location": "L1241",
"id": "design_specs_exlab_wizard_frontend_spec_10_5_2_lims_unreachability_mid_wizard",
- "community": 279,
+ "community": 283,
"norm_label": "10.5.2 lims unreachability mid-wizard"
},
{
@@ -67266,7 +69246,7 @@
"source_file": "design_specs/ExLab-Wizard_Frontend_Spec.md",
"source_location": "L1259",
"id": "design_specs_exlab_wizard_frontend_spec_10_5_3_crash_and_orphan_recovery",
- "community": 279,
+ "community": 283,
"norm_label": "10.5.3 crash and orphan recovery"
},
{
@@ -67275,7 +69255,7 @@
"source_file": "design_specs/ExLab-Wizard_Frontend_Spec.md",
"source_location": "L1276",
"id": "design_specs_exlab_wizard_frontend_spec_10_5_4_pre_flight_checks_before_creation",
- "community": 279,
+ "community": 283,
"norm_label": "10.5.4 pre-flight checks before creation"
},
{
@@ -67284,7 +69264,7 @@
"source_file": "design_specs/ExLab-Wizard_Frontend_Spec.md",
"source_location": "L1290",
"id": "design_specs_exlab_wizard_frontend_spec_11_problems_tab",
- "community": 320,
+ "community": 319,
"norm_label": "11. problems tab"
},
{
@@ -67293,7 +69273,7 @@
"source_file": "design_specs/ExLab-Wizard_Frontend_Spec.md",
"source_location": "L1294",
"id": "design_specs_exlab_wizard_frontend_spec_11_1_layout",
- "community": 320,
+ "community": 319,
"norm_label": "11.1 layout"
},
{
@@ -67302,7 +69282,7 @@
"source_file": "design_specs/ExLab-Wizard_Frontend_Spec.md",
"source_location": "L1319",
"id": "design_specs_exlab_wizard_frontend_spec_11_2_severity_tier_visual_treatment",
- "community": 320,
+ "community": 319,
"norm_label": "11.2 severity tier visual treatment"
},
{
@@ -67311,7 +69291,7 @@
"source_file": "design_specs/ExLab-Wizard_Frontend_Spec.md",
"source_location": "L1325",
"id": "design_specs_exlab_wizard_frontend_spec_11_3_per_row_actions",
- "community": 320,
+ "community": 319,
"norm_label": "11.3 per-row actions"
},
{
@@ -67320,7 +69300,7 @@
"source_file": "design_specs/ExLab-Wizard_Frontend_Spec.md",
"source_location": "L1336",
"id": "design_specs_exlab_wizard_frontend_spec_11_4_empty_state",
- "community": 320,
+ "community": 319,
"norm_label": "11.4 empty state"
},
{
@@ -67329,7 +69309,7 @@
"source_file": "design_specs/ExLab-Wizard_Frontend_Spec.md",
"source_location": "L1344",
"id": "design_specs_exlab_wizard_frontend_spec_11_4_1_new_finding_surfacing_during_the_session",
- "community": 320,
+ "community": 319,
"norm_label": "11.4.1 new-finding surfacing during the session"
},
{
@@ -67338,7 +69318,7 @@
"source_file": "design_specs/ExLab-Wizard_Frontend_Spec.md",
"source_location": "L1354",
"id": "design_specs_exlab_wizard_frontend_spec_11_5_override_and_allow_sync_dialog",
- "community": 320,
+ "community": 319,
"norm_label": "11.5 override-and-allow-sync dialog"
},
{
@@ -67347,7 +69327,7 @@
"source_file": "design_specs/ExLab-Wizard_Frontend_Spec.md",
"source_location": "L1370",
"id": "design_specs_exlab_wizard_frontend_spec_11_6_cross_surface_links",
- "community": 320,
+ "community": 319,
"norm_label": "11.6 cross-surface links"
},
{
@@ -67356,7 +69336,7 @@
"source_file": "design_specs/ExLab-Wizard_Frontend_Spec.md",
"source_location": "L1383",
"id": "design_specs_exlab_wizard_frontend_spec_12_widget_mappings",
- "community": 231,
+ "community": 198,
"norm_label": "12. widget mappings"
},
{
@@ -67365,7 +69345,7 @@
"source_file": "design_specs/ExLab-Wizard_Frontend_Spec.md",
"source_location": "L1387",
"id": "design_specs_exlab_wizard_frontend_spec_12_1_template_variable_form_from_copier_yml_questions",
- "community": 231,
+ "community": 198,
"norm_label": "12.1 template variable form (from `copier.yml` questions)"
},
{
@@ -67374,7 +69354,7 @@
"source_file": "design_specs/ExLab-Wizard_Frontend_Spec.md",
"source_location": "L1397",
"id": "design_specs_exlab_wizard_frontend_spec_12_2_readme_form_fields",
- "community": 231,
+ "community": 198,
"norm_label": "12.2 readme form fields"
},
{
@@ -67383,7 +69363,7 @@
"source_file": "design_specs/ExLab-Wizard_Frontend_Spec.md",
"source_location": "L1407",
"id": "design_specs_exlab_wizard_frontend_spec_12_3_required_field_indication",
- "community": 231,
+ "community": 198,
"norm_label": "12.3 required-field indication"
},
{
@@ -67392,7 +69372,7 @@
"source_file": "design_specs/ExLab-Wizard_Frontend_Spec.md",
"source_location": "L1415",
"id": "design_specs_exlab_wizard_frontend_spec_13_open_questions",
- "community": 231,
+ "community": 198,
"norm_label": "13. open questions"
},
{
@@ -67401,7 +69381,7 @@
"source_file": "design_specs/ExLab-Wizard_Design_Spec.md",
"source_location": "L1",
"id": "design_specs_exlab_wizard_design_spec_md",
- "community": 200,
+ "community": 199,
"norm_label": "exlab-wizard_design_spec.md"
},
{
@@ -67410,7 +69390,7 @@
"source_file": "design_specs/ExLab-Wizard_Design_Spec.md",
"source_location": "L2",
"id": "design_specs_exlab_wizard_design_spec_exlab_wizard_design_specification",
- "community": 200,
+ "community": 199,
"norm_label": "exlab-wizard: design specification"
},
{
@@ -67419,7 +69399,7 @@
"source_file": "design_specs/ExLab-Wizard_Design_Spec.md",
"source_location": "L10",
"id": "design_specs_exlab_wizard_design_spec_table_of_contents",
- "community": 200,
+ "community": 199,
"norm_label": "table of contents"
},
{
@@ -67428,7 +69408,7 @@
"source_file": "design_specs/ExLab-Wizard_Design_Spec.md",
"source_location": "L31",
"id": "design_specs_exlab_wizard_design_spec_1_purpose_and_goals",
- "community": 200,
+ "community": 199,
"norm_label": "1. purpose and goals"
},
{
@@ -67437,7 +69417,7 @@
"source_file": "design_specs/ExLab-Wizard_Design_Spec.md",
"source_location": "L39",
"id": "design_specs_exlab_wizard_design_spec_2_user_capabilities_reference",
- "community": 200,
+ "community": 199,
"norm_label": "2. user capabilities (reference)"
},
{
@@ -67446,7 +69426,7 @@
"source_file": "design_specs/ExLab-Wizard_Design_Spec.md",
"source_location": "L63",
"id": "design_specs_exlab_wizard_design_spec_3_directory_structure_convention",
- "community": 200,
+ "community": 199,
"norm_label": "3. directory structure convention"
},
{
@@ -67455,7 +69435,7 @@
"source_file": "design_specs/ExLab-Wizard_Design_Spec.md",
"source_location": "L71",
"id": "design_specs_exlab_wizard_design_spec_4_backend_architecture",
- "community": 200,
+ "community": 199,
"norm_label": "4. backend architecture"
},
{
@@ -67464,7 +69444,7 @@
"source_file": "design_specs/ExLab-Wizard_Design_Spec.md",
"source_location": "L79",
"id": "design_specs_exlab_wizard_design_spec_5_template_format",
- "community": 200,
+ "community": 199,
"norm_label": "5. template format"
},
{
@@ -67473,7 +69453,7 @@
"source_file": "design_specs/ExLab-Wizard_Design_Spec.md",
"source_location": "L87",
"id": "design_specs_exlab_wizard_design_spec_6_plugin_system",
- "community": 200,
+ "community": 199,
"norm_label": "6. plugin system"
},
{
@@ -67482,7 +69462,7 @@
"source_file": "design_specs/ExLab-Wizard_Design_Spec.md",
"source_location": "L95",
"id": "design_specs_exlab_wizard_design_spec_7_sync_and_database_integration",
- "community": 200,
+ "community": 199,
"norm_label": "7. sync and database integration"
},
{
@@ -67491,7 +69471,7 @@
"source_file": "design_specs/ExLab-Wizard_Design_Spec.md",
"source_location": "L103",
"id": "design_specs_exlab_wizard_design_spec_8_error_handling_principles",
- "community": 200,
+ "community": 199,
"norm_label": "8. error handling principles"
},
{
@@ -67500,7 +69480,7 @@
"source_file": "design_specs/ExLab-Wizard_Design_Spec.md",
"source_location": "L111",
"id": "design_specs_exlab_wizard_design_spec_9_configuration_file",
- "community": 200,
+ "community": 199,
"norm_label": "9. configuration file"
},
{
@@ -67509,7 +69489,7 @@
"source_file": "design_specs/ExLab-Wizard_Design_Spec.md",
"source_location": "L119",
"id": "design_specs_exlab_wizard_design_spec_10_readme_generation",
- "community": 200,
+ "community": 199,
"norm_label": "10. readme generation"
},
{
@@ -67518,7 +69498,7 @@
"source_file": "design_specs/ExLab-Wizard_Design_Spec.md",
"source_location": "L127",
"id": "design_specs_exlab_wizard_design_spec_11_exlab_wizard_cache_folders",
- "community": 200,
+ "community": 199,
"norm_label": "11. `.exlab-wizard` cache folders"
},
{
@@ -67527,7 +69507,7 @@
"source_file": "design_specs/ExLab-Wizard_Design_Spec.md",
"source_location": "L135",
"id": "design_specs_exlab_wizard_design_spec_12_orchestrator_mode_multi_equipment_workstations",
- "community": 200,
+ "community": 199,
"norm_label": "12. orchestrator mode (multi-equipment workstations)"
},
{
@@ -67536,7 +69516,7 @@
"source_file": "design_specs/ExLab-Wizard_Design_Spec.md",
"source_location": "L143",
"id": "design_specs_exlab_wizard_design_spec_13_equipment_to_orchestrator_data_flow",
- "community": 200,
+ "community": 199,
"norm_label": "13. equipment-to-orchestrator data flow"
},
{
@@ -67545,7 +69525,7 @@
"source_file": "design_specs/ExLab-Wizard_Design_Spec.md",
"source_location": "L151",
"id": "design_specs_exlab_wizard_design_spec_15_distribution_and_installation",
- "community": 200,
+ "community": 199,
"norm_label": "15. distribution and installation"
},
{
@@ -67554,7 +69534,7 @@
"source_file": "design_specs/ExLab-Wizard_Design_Spec.md",
"source_location": "L159",
"id": "design_specs_exlab_wizard_design_spec_16_logging_architecture",
- "community": 200,
+ "community": 199,
"norm_label": "16. logging architecture"
},
{
@@ -67563,7 +69543,7 @@
"source_file": "design_specs/ExLab-Wizard_Design_Spec.md",
"source_location": "L167",
"id": "design_specs_exlab_wizard_design_spec_14_open_questions",
- "community": 200,
+ "community": 199,
"norm_label": "14. open questions"
},
{
@@ -67572,7 +69552,7 @@
"source_file": "design_specs/IMPLEMENTATION_PLAN.md",
"source_location": "L1",
"id": "design_specs_implementation_plan_md",
- "community": 106,
+ "community": 114,
"norm_label": "implementation_plan.md"
},
{
@@ -67581,7 +69561,7 @@
"source_file": "design_specs/IMPLEMENTATION_PLAN.md",
"source_location": "L1",
"id": "design_specs_implementation_plan_exlab_wizard_implementation_plan",
- "community": 106,
+ "community": 114,
"norm_label": "exlab-wizard implementation plan"
},
{
@@ -67590,7 +69570,7 @@
"source_file": "design_specs/IMPLEMENTATION_PLAN.md",
"source_location": "L3",
"id": "design_specs_implementation_plan_context",
- "community": 106,
+ "community": 114,
"norm_label": "context"
},
{
@@ -67599,7 +69579,7 @@
"source_file": "design_specs/IMPLEMENTATION_PLAN.md",
"source_location": "L39",
"id": "design_specs_implementation_plan_goals",
- "community": 106,
+ "community": 114,
"norm_label": "goals"
},
{
@@ -67608,7 +69588,7 @@
"source_file": "design_specs/IMPLEMENTATION_PLAN.md",
"source_location": "L57",
"id": "design_specs_implementation_plan_first_action_before_phase_1",
- "community": 106,
+ "community": 114,
"norm_label": "first action (before phase 1)"
},
{
@@ -67617,7 +69597,7 @@
"source_file": "design_specs/IMPLEMENTATION_PLAN.md",
"source_location": "L66",
"id": "design_specs_implementation_plan_subagent_strategy_used_at_every_phase",
- "community": 106,
+ "community": 114,
"norm_label": "subagent strategy (used at every phase)"
},
{
@@ -67626,7 +69606,7 @@
"source_file": "design_specs/IMPLEMENTATION_PLAN.md",
"source_location": "L88",
"id": "design_specs_implementation_plan_per_phase_definition_of_done",
- "community": 106,
+ "community": 114,
"norm_label": "per-phase definition of done"
},
{
@@ -67635,7 +69615,7 @@
"source_file": "design_specs/IMPLEMENTATION_PLAN.md",
"source_location": "L90",
"id": "design_specs_implementation_plan_codeblock_1",
- "community": 106,
+ "community": 114,
"norm_label": "code:block1 (\u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500)"
},
{
@@ -67644,7 +69624,7 @@
"source_file": "design_specs/IMPLEMENTATION_PLAN.md",
"source_location": "L133",
"id": "design_specs_implementation_plan_test_plan_merged_with_spec_4_10_11_8_frontend_1",
- "community": 106,
+ "community": 114,
"norm_label": "test plan (merged with spec \u00a74.10 + \u00a711.8 + frontend \u00a71)"
},
{
@@ -67653,7 +69633,7 @@
"source_file": "design_specs/IMPLEMENTATION_PLAN.md",
"source_location": "L199",
"id": "design_specs_implementation_plan_phase_sequence",
- "community": 106,
+ "community": 114,
"norm_label": "phase sequence"
},
{
@@ -67662,7 +69642,7 @@
"source_file": "design_specs/IMPLEMENTATION_PLAN.md",
"source_location": "L215",
"id": "design_specs_implementation_plan_phase_1_project_scaffolding_constants_foundations",
- "community": 106,
+ "community": 114,
"norm_label": "phase 1: project scaffolding & constants foundations"
},
{
@@ -67671,7 +69651,7 @@
"source_file": "design_specs/IMPLEMENTATION_PLAN.md",
"source_location": "L254",
"id": "design_specs_implementation_plan_phase_2_configuration_system_paths",
- "community": 106,
+ "community": 114,
"norm_label": "phase 2: configuration system & paths"
},
{
@@ -67680,7 +69660,7 @@
"source_file": "design_specs/IMPLEMENTATION_PLAN.md",
"source_location": "L295",
"id": "design_specs_implementation_plan_phase_3_logging_package_cache_writers_schema_models",
- "community": 106,
+ "community": 114,
"norm_label": "phase 3: logging package + cache writers + schema models"
},
{
@@ -67689,7 +69669,7 @@
"source_file": "design_specs/IMPLEMENTATION_PLAN.md",
"source_location": "L335",
"id": "design_specs_implementation_plan_phase_4_validator_engine_rules",
- "community": 106,
+ "community": 114,
"norm_label": "phase 4: validator engine & rules"
},
{
@@ -67698,7 +69678,7 @@
"source_file": "design_specs/IMPLEMENTATION_PLAN.md",
"source_location": "L375",
"id": "design_specs_implementation_plan_phase_5_template_engine_copier",
- "community": 106,
+ "community": 114,
"norm_label": "phase 5: template engine (copier)"
},
{
@@ -67707,7 +69687,7 @@
"source_file": "design_specs/IMPLEMENTATION_PLAN.md",
"source_location": "L406",
"id": "design_specs_implementation_plan_phase_6_plugin_system_host_worker_isolation",
- "community": 106,
+ "community": 114,
"norm_label": "phase 6: plugin system (host + worker + isolation)"
},
{
@@ -67716,7 +69696,7 @@
"source_file": "design_specs/IMPLEMENTATION_PLAN.md",
"source_location": "L459",
"id": "design_specs_implementation_plan_phase_7_creation_controller_state_machine",
- "community": 106,
+ "community": 114,
"norm_label": "phase 7: creation controller & state machine"
},
{
@@ -67725,7 +69705,7 @@
"source_file": "design_specs/IMPLEMENTATION_PLAN.md",
"source_location": "L496",
"id": "design_specs_implementation_plan_phase_8_readme_generator",
- "community": 106,
+ "community": 114,
"norm_label": "phase 8: readme generator"
},
{
@@ -67734,7 +69714,7 @@
"source_file": "design_specs/IMPLEMENTATION_PLAN.md",
"source_location": "L520",
"id": "design_specs_implementation_plan_phase_9_lims_client_cache_keyring",
- "community": 106,
+ "community": 114,
"norm_label": "phase 9: lims client & cache + keyring"
},
{
@@ -67743,7 +69723,7 @@
"source_file": "design_specs/IMPLEMENTATION_PLAN.md",
"source_location": "L558",
"id": "design_specs_implementation_plan_phase_10_nas_sync_client",
- "community": 106,
+ "community": 114,
"norm_label": "phase 10: nas sync client"
},
{
@@ -67752,7 +69732,7 @@
"source_file": "design_specs/IMPLEMENTATION_PLAN.md",
"source_location": "L601",
"id": "design_specs_implementation_plan_phase_11_fastapi_app_routers_websocket_setup_gate",
- "community": 106,
+ "community": 114,
"norm_label": "phase 11: fastapi app + routers + websocket + setup gate"
},
{
@@ -67761,7 +69741,7 @@
"source_file": "design_specs/IMPLEMENTATION_PLAN.md",
"source_location": "L648",
"id": "design_specs_implementation_plan_phase_12_nicegui_frontend_design_tokens_pages_components",
- "community": 106,
+ "community": 114,
"norm_label": "phase 12: nicegui frontend (design tokens, pages, components)"
},
{
@@ -67770,7 +69750,7 @@
"source_file": "design_specs/IMPLEMENTATION_PLAN.md",
"source_location": "L726",
"id": "design_specs_implementation_plan_phase_13_tray_window_processes",
- "community": 106,
+ "community": 114,
"norm_label": "phase 13: tray + window processes"
},
{
@@ -67779,7 +69759,7 @@
"source_file": "design_specs/IMPLEMENTATION_PLAN.md",
"source_location": "L765",
"id": "design_specs_implementation_plan_phase_14_orchestrator_mode_ingest",
- "community": 106,
+ "community": 114,
"norm_label": "phase 14: orchestrator mode + ingest"
},
{
@@ -67788,7 +69768,7 @@
"source_file": "design_specs/IMPLEMENTATION_PLAN.md",
"source_location": "L790",
"id": "design_specs_implementation_plan_phase_15_distribution_pyinstaller_bundling",
- "community": 106,
+ "community": 114,
"norm_label": "phase 15: distribution / pyinstaller bundling"
},
{
@@ -67797,7 +69777,7 @@
"source_file": "design_specs/IMPLEMENTATION_PLAN.md",
"source_location": "L818",
"id": "design_specs_implementation_plan_phase_16_e2e_hardening_pass",
- "community": 106,
+ "community": 114,
"norm_label": "phase 16: e2e hardening pass"
},
{
@@ -67806,7 +69786,7 @@
"source_file": "design_specs/IMPLEMENTATION_PLAN.md",
"source_location": "L839",
"id": "design_specs_implementation_plan_critical_files_reference",
- "community": 106,
+ "community": 114,
"norm_label": "critical files (reference)"
},
{
@@ -67815,7 +69795,7 @@
"source_file": "design_specs/IMPLEMENTATION_PLAN.md",
"source_location": "L862",
"id": "design_specs_implementation_plan_verification_final_state",
- "community": 106,
+ "community": 114,
"norm_label": "verification (final state)"
},
{
@@ -67824,7 +69804,7 @@
"source_file": "design_specs/IMPLEMENTATION_PLAN.md",
"source_location": "L885",
"id": "design_specs_implementation_plan_risks_mitigations",
- "community": 106,
+ "community": 114,
"norm_label": "risks & mitigations"
},
{
@@ -67833,7 +69813,7 @@
"source_file": "design_specs/design_spec_sections/07_Sync_and_Database_Integration.md",
"source_location": "L1",
"id": "design_specs_design_spec_sections_07_sync_and_database_integration_md",
- "community": 37,
+ "community": 45,
"norm_label": "07_sync_and_database_integration.md"
},
{
@@ -67842,7 +69822,7 @@
"source_file": "design_specs/design_spec_sections/07_Sync_and_Database_Integration.md",
"source_location": "L1",
"id": "design_spec_sections_07_sync_and_database_integration_7_sync_and_database_integration",
- "community": 37,
+ "community": 45,
"norm_label": "7. sync and database integration"
},
{
@@ -67851,7 +69831,7 @@
"source_file": "design_specs/design_spec_sections/07_Sync_and_Database_Integration.md",
"source_location": "L7",
"id": "design_spec_sections_07_sync_and_database_integration_7_1_nas_sync_internal_module",
- "community": 37,
+ "community": 45,
"norm_label": "7.1 nas sync (internal module)"
},
{
@@ -67860,7 +69840,7 @@
"source_file": "design_specs/design_spec_sections/07_Sync_and_Database_Integration.md",
"source_location": "L13",
"id": "design_spec_sections_07_sync_and_database_integration_7_1_1_component_model",
- "community": 37,
+ "community": 45,
"norm_label": "7.1.1 component model"
},
{
@@ -67869,7 +69849,7 @@
"source_file": "design_specs/design_spec_sections/07_Sync_and_Database_Integration.md",
"source_location": "L17",
"id": "design_spec_sections_07_sync_and_database_integration_codeblock_1",
- "community": 37,
+ "community": 45,
"norm_label": "code:block1 (\u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500)"
},
{
@@ -67878,7 +69858,7 @@
"source_file": "design_specs/design_spec_sections/07_Sync_and_Database_Integration.md",
"source_location": "L41",
"id": "design_spec_sections_07_sync_and_database_integration_7_1_2_job_lifecycle",
- "community": 37,
+ "community": 45,
"norm_label": "7.1.2 job lifecycle"
},
{
@@ -67887,7 +69867,7 @@
"source_file": "design_specs/design_spec_sections/07_Sync_and_Database_Integration.md",
"source_location": "L45",
"id": "design_spec_sections_07_sync_and_database_integration_codeblock_2",
- "community": 37,
+ "community": 45,
"norm_label": "code:block2 (queued \u2192 running \u2192 awaiting_verify \u2192 verified \u2192 cleanup_elig)"
},
{
@@ -67896,7 +69876,7 @@
"source_file": "design_specs/design_spec_sections/07_Sync_and_Database_Integration.md",
"source_location": "L63",
"id": "design_spec_sections_07_sync_and_database_integration_7_1_3_transport_driver_rclonedriver",
- "community": 37,
+ "community": 45,
"norm_label": "7.1.3 transport driver (`rclonedriver`)"
},
{
@@ -67905,7 +69885,7 @@
"source_file": "design_specs/design_spec_sections/07_Sync_and_Database_Integration.md",
"source_location": "L85",
"id": "design_spec_sections_07_sync_and_database_integration_7_1_4_verify_flow_lsjson_reconcile_cleanup_time_hash_gate",
- "community": 37,
+ "community": 45,
"norm_label": "7.1.4 verify flow (lsjson reconcile + cleanup-time hash gate)"
},
{
@@ -67914,7 +69894,7 @@
"source_file": "design_specs/design_spec_sections/07_Sync_and_Database_Integration.md",
"source_location": "L132",
"id": "design_spec_sections_07_sync_and_database_integration_7_1_5_retry_policy",
- "community": 37,
+ "community": 45,
"norm_label": "7.1.5 retry policy"
},
{
@@ -67923,7 +69903,7 @@
"source_file": "design_specs/design_spec_sections/07_Sync_and_Database_Integration.md",
"source_location": "L143",
"id": "design_spec_sections_07_sync_and_database_integration_7_1_6_cleanup_safety_interlocks",
- "community": 37,
+ "community": 45,
"norm_label": "7.1.6 cleanup safety interlocks"
},
{
@@ -67932,7 +69912,7 @@
"source_file": "design_specs/design_spec_sections/07_Sync_and_Database_Integration.md",
"source_location": "L156",
"id": "design_spec_sections_07_sync_and_database_integration_7_1_7_bandwidth_limiting",
- "community": 37,
+ "community": 45,
"norm_label": "7.1.7 bandwidth limiting"
},
{
@@ -67941,7 +69921,7 @@
"source_file": "design_specs/design_spec_sections/07_Sync_and_Database_Integration.md",
"source_location": "L160",
"id": "design_spec_sections_07_sync_and_database_integration_codeblock_3",
- "community": 37,
+ "community": 45,
"norm_label": "code:yaml (nas:)"
},
{
@@ -67950,7 +69930,7 @@
"source_file": "design_specs/design_spec_sections/07_Sync_and_Database_Integration.md",
"source_location": "L172",
"id": "design_spec_sections_07_sync_and_database_integration_7_1_8_credential_storage",
- "community": 37,
+ "community": 45,
"norm_label": "7.1.8 credential storage"
},
{
@@ -67959,7 +69939,7 @@
"source_file": "design_specs/design_spec_sections/07_Sync_and_Database_Integration.md",
"source_location": "L181",
"id": "design_spec_sections_07_sync_and_database_integration_7_1_9_what_nassync_does_not_do",
- "community": 37,
+ "community": 45,
"norm_label": "7.1.9 what nassync does not do"
},
{
@@ -67968,7 +69948,7 @@
"source_file": "design_specs/design_spec_sections/07_Sync_and_Database_Integration.md",
"source_location": "L188",
"id": "design_spec_sections_07_sync_and_database_integration_7_1_10_cache_file_syncing_and_metadata_only_retention_on_cleanup",
- "community": 37,
+ "community": 45,
"norm_label": "7.1.10 cache file syncing and metadata-only retention on cleanup"
},
{
@@ -67977,7 +69957,7 @@
"source_file": "design_specs/design_spec_sections/07_Sync_and_Database_Integration.md",
"source_location": "L198",
"id": "design_spec_sections_07_sync_and_database_integration_7_2_lims_integration",
- "community": 37,
+ "community": 45,
"norm_label": "7.2 lims integration"
},
{
@@ -67986,7 +69966,7 @@
"source_file": "design_specs/design_spec_sections/07_Sync_and_Database_Integration.md",
"source_location": "L204",
"id": "design_spec_sections_07_sync_and_database_integration_7_2_0_empirical_facts_about_the_lims",
- "community": 37,
+ "community": 45,
"norm_label": "7.2.0 empirical facts about the lims"
},
{
@@ -67995,7 +69975,7 @@
"source_file": "design_specs/design_spec_sections/07_Sync_and_Database_Integration.md",
"source_location": "L215",
"id": "design_spec_sections_07_sync_and_database_integration_7_2_1_project_mapping_mapping_b_committed",
- "community": 37,
+ "community": 45,
"norm_label": "7.2.1 project mapping (mapping b, committed)"
},
{
@@ -68004,7 +69984,7 @@
"source_file": "design_specs/design_spec_sections/07_Sync_and_Database_Integration.md",
"source_location": "L225",
"id": "design_spec_sections_07_sync_and_database_integration_7_2_2_run_level_lims_integration_deferred_to_v1_x",
- "community": 37,
+ "community": 45,
"norm_label": "7.2.2 run-level lims integration (deferred to v1.x)"
},
{
@@ -68013,7 +69993,7 @@
"source_file": "design_specs/design_spec_sections/07_Sync_and_Database_Integration.md",
"source_location": "L233",
"id": "design_spec_sections_07_sync_and_database_integration_7_2_3_limsclient_interface_v1",
- "community": 37,
+ "community": 45,
"norm_label": "7.2.3 `limsclient` interface (v1)"
},
{
@@ -68022,7 +70002,7 @@
"source_file": "design_specs/design_spec_sections/07_Sync_and_Database_Integration.md",
"source_location": "L235",
"id": "design_spec_sections_07_sync_and_database_integration_codeblock_4",
- "community": 37,
+ "community": 45,
"norm_label": "code:python (class limsclient:)"
},
{
@@ -68031,7 +70011,7 @@
"source_file": "design_specs/design_spec_sections/07_Sync_and_Database_Integration.md",
"source_location": "L248",
"id": "design_spec_sections_07_sync_and_database_integration_codeblock_5",
- "community": 37,
+ "community": 45,
"norm_label": "code:python (@dataclass(frozen=true))"
},
{
@@ -68040,7 +70020,7 @@
"source_file": "design_specs/design_spec_sections/07_Sync_and_Database_Integration.md",
"source_location": "L264",
"id": "design_spec_sections_07_sync_and_database_integration_codeblock_6",
- "community": 37,
+ "community": 45,
"norm_label": "code:python (@dataclass(frozen=true))"
},
{
@@ -68049,7 +70029,7 @@
"source_file": "design_specs/design_spec_sections/07_Sync_and_Database_Integration.md",
"source_location": "L278",
"id": "design_spec_sections_07_sync_and_database_integration_7_2_4_project_cache_and_offline_behavior",
- "community": 37,
+ "community": 45,
"norm_label": "7.2.4 project cache and offline behavior"
},
{
@@ -68058,7 +70038,7 @@
"source_file": "design_specs/design_spec_sections/07_Sync_and_Database_Integration.md",
"source_location": "L290",
"id": "design_spec_sections_07_sync_and_database_integration_7_2_5_authentication_cookie_session",
- "community": 37,
+ "community": 45,
"norm_label": "7.2.5 authentication (cookie session)"
},
{
@@ -68067,7 +70047,7 @@
"source_file": "design_specs/design_spec_sections/07_Sync_and_Database_Integration.md",
"source_location": "L301",
"id": "design_spec_sections_07_sync_and_database_integration_7_2_6_asks_for_the_lims_team_deferred",
- "community": 37,
+ "community": 45,
"norm_label": "7.2.6 asks for the lims team (deferred)"
},
{
@@ -68076,7 +70056,7 @@
"source_file": "design_specs/design_spec_sections/07_Sync_and_Database_Integration.md",
"source_location": "L312",
"id": "design_spec_sections_07_sync_and_database_integration_7_2_7_v1_x_run_level_record_specification_target",
- "community": 37,
+ "community": 45,
"norm_label": "7.2.7 v1.x run-level record (specification target)"
},
{
@@ -68085,7 +70065,7 @@
"source_file": "design_specs/design_spec_sections/07_Sync_and_Database_Integration.md",
"source_location": "L342",
"id": "design_spec_sections_07_sync_and_database_integration_7_2_8_what_exlab_wizard_does_not_write_to_lims_in_v1",
- "community": 37,
+ "community": 45,
"norm_label": "7.2.8 what exlab-wizard does not write to lims in v1"
},
{
@@ -68094,7 +70074,7 @@
"source_file": "design_specs/design_spec_sections/07_Sync_and_Database_Integration.md",
"source_location": "L353",
"id": "design_spec_sections_07_sync_and_database_integration_7_2_9_offline_catalogue_nas_shared_lims_project_list",
- "community": 37,
+ "community": 45,
"norm_label": "7.2.9 offline catalogue (nas-shared lims project list)"
},
{
@@ -68103,7 +70083,7 @@
"source_file": "design_specs/design_spec_sections/07_Sync_and_Database_Integration.md",
"source_location": "L359",
"id": "design_spec_sections_07_sync_and_database_integration_7_2_9_1_file_location_and_format",
- "community": 37,
+ "community": 45,
"norm_label": "7.2.9.1 file location and format"
},
{
@@ -68112,7 +70092,7 @@
"source_file": "design_specs/design_spec_sections/07_Sync_and_Database_Integration.md",
"source_location": "L365",
"id": "design_spec_sections_07_sync_and_database_integration_codeblock_7",
- "community": 37,
+ "community": 45,
"norm_label": "code:json ({)"
},
{
@@ -68121,7 +70101,7 @@
"source_file": "design_specs/design_spec_sections/07_Sync_and_Database_Integration.md",
"source_location": "L387",
"id": "design_spec_sections_07_sync_and_database_integration_7_2_9_2_producer_behavior",
- "community": 37,
+ "community": 45,
"norm_label": "7.2.9.2 producer behavior"
},
{
@@ -68130,7 +70110,7 @@
"source_file": "design_specs/design_spec_sections/07_Sync_and_Database_Integration.md",
"source_location": "L399",
"id": "design_spec_sections_07_sync_and_database_integration_7_2_9_3_consumer_behavior",
- "community": 37,
+ "community": 45,
"norm_label": "7.2.9.3 consumer behavior"
},
{
@@ -68139,7 +70119,7 @@
"source_file": "design_specs/design_spec_sections/07_Sync_and_Database_Integration.md",
"source_location": "L418",
"id": "design_spec_sections_07_sync_and_database_integration_7_2_9_4_failure_modes",
- "community": 37,
+ "community": 45,
"norm_label": "7.2.9.4 failure modes"
},
{
@@ -68148,7 +70128,7 @@
"source_file": "design_specs/design_spec_sections/07_Sync_and_Database_Integration.md",
"source_location": "L429",
"id": "design_spec_sections_07_sync_and_database_integration_7_2_9_5_security_and_trust",
- "community": 37,
+ "community": 45,
"norm_label": "7.2.9.5 security and trust"
},
{
@@ -68157,7 +70137,7 @@
"source_file": "design_specs/design_spec_sections/07_Sync_and_Database_Integration.md",
"source_location": "L435",
"id": "design_spec_sections_07_sync_and_database_integration_7_2_9_6_out_of_scope_for_v1",
- "community": 37,
+ "community": 45,
"norm_label": "7.2.9.6 out of scope for v1"
},
{
@@ -68166,7 +70146,7 @@
"source_file": "design_specs/design_spec_sections/07_Sync_and_Database_Integration.md",
"source_location": "L442",
"id": "design_spec_sections_07_sync_and_database_integration_7_3_pre_sync_gate",
- "community": 37,
+ "community": 45,
"norm_label": "7.3 pre-sync gate"
},
{
@@ -68175,7 +70155,7 @@
"source_file": "design_specs/design_spec_sections/07_Sync_and_Database_Integration.md",
"source_location": "L458",
"id": "design_spec_sections_07_sync_and_database_integration_7_4_credential_storage_os_keyring",
- "community": 37,
+ "community": 45,
"norm_label": "7.4 credential storage (os keyring)"
},
{
@@ -68184,7 +70164,7 @@
"source_file": "design_specs/design_spec_sections/07_Sync_and_Database_Integration.md",
"source_location": "L470",
"id": "design_spec_sections_07_sync_and_database_integration_7_4_1_keyring_entry_naming_convention",
- "community": 37,
+ "community": 45,
"norm_label": "7.4.1 keyring entry naming convention"
},
{
@@ -68193,7 +70173,7 @@
"source_file": "design_specs/design_spec_sections/07_Sync_and_Database_Integration.md",
"source_location": "L482",
"id": "design_spec_sections_07_sync_and_database_integration_7_4_2_settings_ui_for_credentials",
- "community": 37,
+ "community": 45,
"norm_label": "7.4.2 settings ui for credentials"
},
{
@@ -68202,7 +70182,7 @@
"source_file": "design_specs/design_spec_sections/07_Sync_and_Database_Integration.md",
"source_location": "L486",
"id": "design_spec_sections_07_sync_and_database_integration_7_4_3_credential_lifecycle",
- "community": 37,
+ "community": 45,
"norm_label": "7.4.3 credential lifecycle"
},
{
@@ -68211,7 +70191,7 @@
"source_file": "design_specs/design_spec_sections/07_Sync_and_Database_Integration.md",
"source_location": "L494",
"id": "design_spec_sections_07_sync_and_database_integration_7_4_4_fallback_when_no_keyring_backend_is_available",
- "community": 37,
+ "community": 45,
"norm_label": "7.4.4 fallback when no keyring backend is available"
},
{
@@ -68220,7 +70200,7 @@
"source_file": "design_specs/design_spec_sections/03_Directory_Structure_Convention.md",
"source_location": "L1",
"id": "design_specs_design_spec_sections_03_directory_structure_convention_md",
- "community": 367,
+ "community": 369,
"norm_label": "03_directory_structure_convention.md"
},
{
@@ -68229,7 +70209,7 @@
"source_file": "design_specs/design_spec_sections/03_Directory_Structure_Convention.md",
"source_location": "L1",
"id": "design_spec_sections_03_directory_structure_convention_3_directory_structure_convention",
- "community": 367,
+ "community": 369,
"norm_label": "3. directory structure convention"
},
{
@@ -68238,7 +70218,7 @@
"source_file": "design_specs/design_spec_sections/03_Directory_Structure_Convention.md",
"source_location": "L7",
"id": "design_spec_sections_03_directory_structure_convention_codeblock_1",
- "community": 367,
+ "community": 369,
"norm_label": "code:block1 (/)"
},
{
@@ -68247,7 +70227,7 @@
"source_file": "design_specs/design_spec_sections/03_Directory_Structure_Convention.md",
"source_location": "L20",
"id": "design_spec_sections_03_directory_structure_convention_codeblock_2",
- "community": 367,
+ "community": 369,
"norm_label": "code:block2 (/data/lab/confocal_01/ucr-000-i-d_wheeldon/runs/run_2026-04-)"
},
{
@@ -68256,7 +70236,7 @@
"source_file": "design_specs/design_spec_sections/03_Directory_Structure_Convention.md",
"source_location": "L28",
"id": "design_spec_sections_03_directory_structure_convention_3_1_equipment_id_format",
- "community": 367,
+ "community": 369,
"norm_label": "3.1 equipment-id format"
},
{
@@ -68265,7 +70245,7 @@
"source_file": "design_specs/design_spec_sections/03_Directory_Structure_Convention.md",
"source_location": "L41",
"id": "design_spec_sections_03_directory_structure_convention_3_2_project_folder_name",
- "community": 367,
+ "community": 369,
"norm_label": "3.2 project-folder name"
},
{
@@ -68274,7 +70254,7 @@
"source_file": "design_specs/design_spec_sections/12_Orchestrator_Mode.md",
"source_location": "L1",
"id": "design_specs_design_spec_sections_12_orchestrator_mode_md",
- "community": 368,
+ "community": 370,
"norm_label": "12_orchestrator_mode.md"
},
{
@@ -68283,7 +70263,7 @@
"source_file": "design_specs/design_spec_sections/12_Orchestrator_Mode.md",
"source_location": "L1",
"id": "design_spec_sections_12_orchestrator_mode_12_orchestrator_mode_multi_equipment_workstations",
- "community": 368,
+ "community": 370,
"norm_label": "12. orchestrator mode (multi-equipment workstations)"
},
{
@@ -68292,7 +70272,7 @@
"source_file": "design_specs/design_spec_sections/12_Orchestrator_Mode.md",
"source_location": "L7",
"id": "design_spec_sections_12_orchestrator_mode_12_1_what_changes_in_orchestrator_mode",
- "community": 368,
+ "community": 370,
"norm_label": "12.1 what changes in orchestrator mode"
},
{
@@ -68301,7 +70281,7 @@
"source_file": "design_specs/design_spec_sections/12_Orchestrator_Mode.md",
"source_location": "L20",
"id": "design_spec_sections_12_orchestrator_mode_12_2_configuration",
- "community": 368,
+ "community": 370,
"norm_label": "12.2 configuration"
},
{
@@ -68310,7 +70290,7 @@
"source_file": "design_specs/design_spec_sections/12_Orchestrator_Mode.md",
"source_location": "L24",
"id": "design_spec_sections_12_orchestrator_mode_12_3_concurrent_run_handling",
- "community": 368,
+ "community": 370,
"norm_label": "12.3 concurrent run handling"
},
{
@@ -68319,7 +70299,7 @@
"source_file": "design_specs/design_spec_sections/12_Orchestrator_Mode.md",
"source_location": "L28",
"id": "design_spec_sections_12_orchestrator_mode_12_4_logging_and_db_changes",
- "community": 368,
+ "community": 370,
"norm_label": "12.4 logging and db changes"
},
{
@@ -68328,7 +70308,7 @@
"source_file": "design_specs/design_spec_sections/06_Plugin_System.md",
"source_location": "L1",
"id": "design_specs_design_spec_sections_06_plugin_system_md",
- "community": 248,
+ "community": 286,
"norm_label": "06_plugin_system.md"
},
{
@@ -68337,7 +70317,7 @@
"source_file": "design_specs/design_spec_sections/06_Plugin_System.md",
"source_location": "L1",
"id": "design_spec_sections_06_plugin_system_6_plugin_system",
- "community": 248,
+ "community": 286,
"norm_label": "6. plugin system"
},
{
@@ -68346,7 +70326,7 @@
"source_file": "design_specs/design_spec_sections/06_Plugin_System.md",
"source_location": "L9",
"id": "design_spec_sections_06_plugin_system_6_0_where_plugins_sit_in_the_pipeline",
- "community": 248,
+ "community": 286,
"norm_label": "6.0 where plugins sit in the pipeline"
},
{
@@ -68355,7 +70335,7 @@
"source_file": "design_specs/design_spec_sections/06_Plugin_System.md",
"source_location": "L11",
"id": "design_spec_sections_06_plugin_system_codeblock_1",
- "community": 248,
+ "community": 286,
"norm_label": "code:block1 (\u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500)"
},
{
@@ -68364,7 +70344,7 @@
"source_file": "design_specs/design_spec_sections/06_Plugin_System.md",
"source_location": "L52",
"id": "design_spec_sections_06_plugin_system_6_1_plugin_contract",
- "community": 280,
+ "community": 284,
"norm_label": "6.1 plugin contract"
},
{
@@ -68373,7 +70353,7 @@
"source_file": "design_specs/design_spec_sections/06_Plugin_System.md",
"source_location": "L56",
"id": "design_spec_sections_06_plugin_system_6_1_1_package_layout",
- "community": 280,
+ "community": 284,
"norm_label": "6.1.1 package layout"
},
{
@@ -68382,7 +70362,7 @@
"source_file": "design_specs/design_spec_sections/06_Plugin_System.md",
"source_location": "L58",
"id": "design_spec_sections_06_plugin_system_codeblock_2",
- "community": 280,
+ "community": 284,
"norm_label": "code:block2 (/)"
},
{
@@ -68391,7 +70371,7 @@
"source_file": "design_specs/design_spec_sections/06_Plugin_System.md",
"source_location": "L70",
"id": "design_spec_sections_06_plugin_system_6_1_2_manifest_yml_schema",
- "community": 280,
+ "community": 284,
"norm_label": "6.1.2 `manifest.yml` schema"
},
{
@@ -68400,7 +70380,7 @@
"source_file": "design_specs/design_spec_sections/06_Plugin_System.md",
"source_location": "L74",
"id": "design_spec_sections_06_plugin_system_codeblock_3",
- "community": 280,
+ "community": 284,
"norm_label": "code:yaml (# required identity fields)"
},
{
@@ -68409,7 +70389,7 @@
"source_file": "design_specs/design_spec_sections/06_Plugin_System.md",
"source_location": "L104",
"id": "design_spec_sections_06_plugin_system_6_1_3_the_plugin_base_class",
- "community": 280,
+ "community": 284,
"norm_label": "6.1.3 the `plugin` base class"
},
{
@@ -68418,7 +70398,7 @@
"source_file": "design_specs/design_spec_sections/06_Plugin_System.md",
"source_location": "L106",
"id": "design_spec_sections_06_plugin_system_codeblock_4",
- "community": 280,
+ "community": 284,
"norm_label": "code:python (# exlab_wizard/plugins/__init__.py -- shipped with the app)"
},
{
@@ -68427,7 +70407,7 @@
"source_file": "design_specs/design_spec_sections/06_Plugin_System.md",
"source_location": "L254",
"id": "design_spec_sections_06_plugin_system_6_1_5_what_plugins_must_not_touch",
- "community": 280,
+ "community": 284,
"norm_label": "6.1.5 what plugins must not touch"
},
{
@@ -68436,7 +70416,7 @@
"source_file": "design_specs/design_spec_sections/06_Plugin_System.md",
"source_location": "L266",
"id": "design_spec_sections_06_plugin_system_6_1_4_the_plugincontext_object",
- "community": 280,
+ "community": 284,
"norm_label": "6.1.4 the `plugincontext` object"
},
{
@@ -68445,7 +70425,7 @@
"source_file": "design_specs/design_spec_sections/06_Plugin_System.md",
"source_location": "L270",
"id": "design_spec_sections_06_plugin_system_codeblock_5",
- "community": 280,
+ "community": 284,
"norm_label": "code:python (@dataclass(frozen=true))"
},
{
@@ -68454,7 +70434,7 @@
"source_file": "design_specs/design_spec_sections/06_Plugin_System.md",
"source_location": "L287",
"id": "design_spec_sections_06_plugin_system_6_2_plugin_registry",
- "community": 345,
+ "community": 347,
"norm_label": "6.2 plugin registry"
},
{
@@ -68463,7 +70443,7 @@
"source_file": "design_specs/design_spec_sections/06_Plugin_System.md",
"source_location": "L289",
"id": "design_spec_sections_06_plugin_system_6_2_1_discovery",
- "community": 345,
+ "community": 347,
"norm_label": "6.2.1 discovery"
},
{
@@ -68472,7 +70452,7 @@
"source_file": "design_specs/design_spec_sections/06_Plugin_System.md",
"source_location": "L308",
"id": "design_spec_sections_06_plugin_system_6_2_2_resolution_per_creation_session",
- "community": 345,
+ "community": 347,
"norm_label": "6.2.2 resolution per creation session"
},
{
@@ -68481,7 +70461,7 @@
"source_file": "design_specs/design_spec_sections/06_Plugin_System.md",
"source_location": "L319",
"id": "design_spec_sections_06_plugin_system_6_2_3_order_control_via_exlab_plugins",
- "community": 345,
+ "community": 347,
"norm_label": "6.2.3 order control via `_exlab_plugins`"
},
{
@@ -68490,7 +70470,7 @@
"source_file": "design_specs/design_spec_sections/06_Plugin_System.md",
"source_location": "L323",
"id": "design_spec_sections_06_plugin_system_codeblock_6",
- "community": 345,
+ "community": 347,
"norm_label": "code:yaml (_exlab_plugins:)"
},
{
@@ -68499,7 +70479,7 @@
"source_file": "design_specs/design_spec_sections/06_Plugin_System.md",
"source_location": "L334",
"id": "design_spec_sections_06_plugin_system_6_2_4_what_gets_recorded_in_creation_json",
- "community": 345,
+ "community": 347,
"norm_label": "6.2.4 what gets recorded in `creation.json`"
},
{
@@ -68508,7 +70488,7 @@
"source_file": "design_specs/design_spec_sections/06_Plugin_System.md",
"source_location": "L338",
"id": "design_spec_sections_06_plugin_system_codeblock_7",
- "community": 345,
+ "community": 347,
"norm_label": "code:json ({)"
},
{
@@ -68517,7 +70497,7 @@
"source_file": "design_specs/design_spec_sections/06_Plugin_System.md",
"source_location": "L354",
"id": "design_spec_sections_06_plugin_system_6_3_subprocess_isolation",
- "community": 293,
+ "community": 297,
"norm_label": "6.3 subprocess isolation"
},
{
@@ -68526,7 +70506,7 @@
"source_file": "design_specs/design_spec_sections/06_Plugin_System.md",
"source_location": "L358",
"id": "design_spec_sections_06_plugin_system_6_3_1_process_model",
- "community": 293,
+ "community": 297,
"norm_label": "6.3.1 process model"
},
{
@@ -68535,7 +70515,7 @@
"source_file": "design_specs/design_spec_sections/06_Plugin_System.md",
"source_location": "L370",
"id": "design_spec_sections_06_plugin_system_6_3_2_ipc_envelope",
- "community": 293,
+ "community": 297,
"norm_label": "6.3.2 ipc envelope"
},
{
@@ -68544,7 +70524,7 @@
"source_file": "design_specs/design_spec_sections/06_Plugin_System.md",
"source_location": "L376",
"id": "design_spec_sections_06_plugin_system_codeblock_8",
- "community": 293,
+ "community": 297,
"norm_label": "code:json ({)"
},
{
@@ -68553,7 +70533,7 @@
"source_file": "design_specs/design_spec_sections/06_Plugin_System.md",
"source_location": "L387",
"id": "design_spec_sections_06_plugin_system_codeblock_9",
- "community": 293,
+ "community": 297,
"norm_label": "code:json ({)"
},
{
@@ -68562,7 +70542,7 @@
"source_file": "design_specs/design_spec_sections/06_Plugin_System.md",
"source_location": "L401",
"id": "design_spec_sections_06_plugin_system_6_3_3_resource_limits",
- "community": 293,
+ "community": 297,
"norm_label": "6.3.3 resource limits"
},
{
@@ -68571,7 +70551,7 @@
"source_file": "design_specs/design_spec_sections/06_Plugin_System.md",
"source_location": "L422",
"id": "design_spec_sections_06_plugin_system_6_3_4_failure_handling",
- "community": 293,
+ "community": 297,
"norm_label": "6.3.4 failure handling"
},
{
@@ -68580,7 +70560,7 @@
"source_file": "design_specs/design_spec_sections/06_Plugin_System.md",
"source_location": "L439",
"id": "design_spec_sections_06_plugin_system_6_3_6_validation_worker_subprocess_mode_validate",
- "community": 293,
+ "community": 297,
"norm_label": "6.3.6 validation-worker subprocess (mode = `validate`)"
},
{
@@ -68589,7 +70569,7 @@
"source_file": "design_specs/design_spec_sections/06_Plugin_System.md",
"source_location": "L460",
"id": "design_spec_sections_06_plugin_system_6_3_5_security_model_what_isolation_does_and_does_not_solve",
- "community": 293,
+ "community": 297,
"norm_label": "6.3.5 security model: what isolation does and does not solve"
},
{
@@ -68598,7 +70578,7 @@
"source_file": "design_specs/design_spec_sections/06_Plugin_System.md",
"source_location": "L487",
"id": "design_spec_sections_06_plugin_system_6_4_plugin_input_escalation_plugininputrequired",
- "community": 248,
+ "community": 501,
"norm_label": "6.4 plugin input escalation (`plugininputrequired`)"
},
{
@@ -68607,7 +70587,7 @@
"source_file": "design_specs/design_spec_sections/06_Plugin_System.md",
"source_location": "L494",
"id": "design_spec_sections_06_plugin_system_6_4_1_suspend_resume_flow",
- "community": 248,
+ "community": 501,
"norm_label": "6.4.1 suspend / resume flow"
},
{
@@ -68616,7 +70596,7 @@
"source_file": "design_specs/design_spec_sections/06_Plugin_System.md",
"source_location": "L504",
"id": "design_spec_sections_06_plugin_system_6_4_2_resume_contract_what_the_plugin_author_must_guarantee",
- "community": 248,
+ "community": 501,
"norm_label": "6.4.2 resume contract (what the plugin author must guarantee)"
},
{
@@ -68625,7 +70605,7 @@
"source_file": "design_specs/design_spec_sections/06_Plugin_System.md",
"source_location": "L517",
"id": "design_spec_sections_06_plugin_system_6_5_base_plugin_scaffold_hello_plugin",
- "community": 281,
+ "community": 285,
"norm_label": "6.5 base plugin scaffold (`hello_plugin`)"
},
{
@@ -68634,7 +70614,7 @@
"source_file": "design_specs/design_spec_sections/06_Plugin_System.md",
"source_location": "L521",
"id": "design_spec_sections_06_plugin_system_6_5_1_directory",
- "community": 281,
+ "community": 285,
"norm_label": "6.5.1 directory"
},
{
@@ -68643,7 +70623,7 @@
"source_file": "design_specs/design_spec_sections/06_Plugin_System.md",
"source_location": "L523",
"id": "design_spec_sections_06_plugin_system_codeblock_10",
- "community": 281,
+ "community": 285,
"norm_label": "code:block10 (hello_plugin/)"
},
{
@@ -68652,7 +70632,7 @@
"source_file": "design_specs/design_spec_sections/06_Plugin_System.md",
"source_location": "L531",
"id": "design_spec_sections_06_plugin_system_6_5_2_init_py",
- "community": 281,
+ "community": 285,
"norm_label": "6.5.2 `__init__.py`"
},
{
@@ -68661,7 +70641,7 @@
"source_file": "design_specs/design_spec_sections/06_Plugin_System.md",
"source_location": "L533",
"id": "design_spec_sections_06_plugin_system_codeblock_11",
- "community": 281,
+ "community": 285,
"norm_label": "code:python (\"\"\"hello_plugin -- minimal example plugin for exlab-wizard.)"
},
{
@@ -68670,7 +70650,7 @@
"source_file": "design_specs/design_spec_sections/06_Plugin_System.md",
"source_location": "L544",
"id": "design_spec_sections_06_plugin_system_6_5_3_manifest_yml",
- "community": 281,
+ "community": 285,
"norm_label": "6.5.3 `manifest.yml`"
},
{
@@ -68679,7 +70659,7 @@
"source_file": "design_specs/design_spec_sections/06_Plugin_System.md",
"source_location": "L546",
"id": "design_spec_sections_06_plugin_system_codeblock_12",
- "community": 281,
+ "community": 285,
"norm_label": "code:yaml (name: \"hello_plugin\")"
},
{
@@ -68688,7 +70668,7 @@
"source_file": "design_specs/design_spec_sections/06_Plugin_System.md",
"source_location": "L564",
"id": "design_spec_sections_06_plugin_system_6_5_4_plugin_py",
- "community": 281,
+ "community": 285,
"norm_label": "6.5.4 `plugin.py`"
},
{
@@ -68697,7 +70677,7 @@
"source_file": "design_specs/design_spec_sections/06_Plugin_System.md",
"source_location": "L566",
"id": "design_spec_sections_06_plugin_system_codeblock_13",
- "community": 281,
+ "community": 285,
"norm_label": "code:python (from pathlib import path)"
},
{
@@ -68706,7 +70686,7 @@
"source_file": "design_specs/design_spec_sections/06_Plugin_System.md",
"source_location": "L598",
"id": "design_spec_sections_06_plugin_system_6_5_5_readme_md",
- "community": 281,
+ "community": 285,
"norm_label": "6.5.5 `readme.md`"
},
{
@@ -68715,7 +70695,7 @@
"source_file": "design_specs/design_spec_sections/06_Plugin_System.md",
"source_location": "L602",
"id": "design_spec_sections_06_plugin_system_6_6_worked_example_xlsx_field_filler",
- "community": 346,
+ "community": 348,
"norm_label": "6.6 worked example: `xlsx_field_filler`"
},
{
@@ -68724,7 +70704,7 @@
"source_file": "design_specs/design_spec_sections/06_Plugin_System.md",
"source_location": "L606",
"id": "design_spec_sections_06_plugin_system_6_6_1_what_it_does",
- "community": 346,
+ "community": 348,
"norm_label": "6.6.1 what it does"
},
{
@@ -68733,7 +70713,7 @@
"source_file": "design_specs/design_spec_sections/06_Plugin_System.md",
"source_location": "L610",
"id": "design_spec_sections_06_plugin_system_6_6_2_manifest_yml",
- "community": 346,
+ "community": 348,
"norm_label": "6.6.2 `manifest.yml`"
},
{
@@ -68742,7 +70722,7 @@
"source_file": "design_specs/design_spec_sections/06_Plugin_System.md",
"source_location": "L612",
"id": "design_spec_sections_06_plugin_system_codeblock_14",
- "community": 346,
+ "community": 348,
"norm_label": "code:yaml (name: \"xlsx_field_filler\")"
},
{
@@ -68751,7 +70731,7 @@
"source_file": "design_specs/design_spec_sections/06_Plugin_System.md",
"source_location": "L635",
"id": "design_spec_sections_06_plugin_system_6_6_3_plugin_py",
- "community": 346,
+ "community": 348,
"norm_label": "6.6.3 `plugin.py`"
},
{
@@ -68760,7 +70740,7 @@
"source_file": "design_specs/design_spec_sections/06_Plugin_System.md",
"source_location": "L637",
"id": "design_spec_sections_06_plugin_system_codeblock_15",
- "community": 346,
+ "community": 348,
"norm_label": "code:python (from pathlib import path)"
},
{
@@ -68769,7 +70749,7 @@
"source_file": "design_specs/design_spec_sections/06_Plugin_System.md",
"source_location": "L809",
"id": "design_spec_sections_06_plugin_system_6_6_4_what_this_exercises",
- "community": 346,
+ "community": 348,
"norm_label": "6.6.4 what this exercises"
},
{
@@ -68778,7 +70758,7 @@
"source_file": "design_specs/design_spec_sections/06_Plugin_System.md",
"source_location": "L825",
"id": "design_spec_sections_06_plugin_system_6_7_example_plugins_illustrative_catalog",
- "community": 248,
+ "community": 286,
"norm_label": "6.7 example plugins (illustrative catalog)"
},
{
@@ -68787,7 +70767,7 @@
"source_file": "design_specs/design_spec_sections/06_Plugin_System.md",
"source_location": "L835",
"id": "design_spec_sections_06_plugin_system_6_8_plugin_authoring_checklist",
- "community": 248,
+ "community": 286,
"norm_label": "6.8 plugin authoring checklist"
},
{
@@ -68796,7 +70776,7 @@
"source_file": "design_specs/design_spec_sections/06_Plugin_System.md",
"source_location": "L849",
"id": "design_spec_sections_06_plugin_system_6_9_lint_cli_exlab_wizard_plugins_lint",
- "community": 248,
+ "community": 286,
"norm_label": "6.9 lint cli: `exlab-wizard plugins lint`"
},
{
@@ -68805,7 +70785,7 @@
"source_file": "design_specs/design_spec_sections/06_Plugin_System.md",
"source_location": "L855",
"id": "design_spec_sections_06_plugin_system_codeblock_16",
- "community": 248,
+ "community": 286,
"norm_label": "code:block16 (exlab-wizard plugins lint )"
},
{
@@ -68814,7 +70794,7 @@
"source_file": "design_specs/design_spec_sections/06_Plugin_System.md",
"source_location": "L899",
"id": "design_spec_sections_06_plugin_system_6_10_test_debug_cli_exlab_wizard_plugins_exec",
- "community": 248,
+ "community": 286,
"norm_label": "6.10 test / debug cli: `exlab-wizard plugins exec`"
},
{
@@ -68823,7 +70803,7 @@
"source_file": "design_specs/design_spec_sections/06_Plugin_System.md",
"source_location": "L905",
"id": "design_spec_sections_06_plugin_system_codeblock_17",
- "community": 248,
+ "community": 286,
"norm_label": "code:block17 (exlab-wizard plugins exec --against /)"
},
{
@@ -69507,7 +71487,7 @@
"source_file": "design_specs/design_spec_sections/11_Cache_Folders.md",
"source_location": "L50",
"id": "design_spec_sections_11_cache_folders_11_2_file_inventory_per_level",
- "community": 76,
+ "community": 85,
"norm_label": "11.2 file inventory per level"
},
{
@@ -69516,7 +71496,7 @@
"source_file": "design_specs/design_spec_sections/11_Cache_Folders.md",
"source_location": "L93",
"id": "design_spec_sections_11_cache_folders_11_3_creation_json_schema",
- "community": 76,
+ "community": 85,
"norm_label": "11.3 `creation.json` schema"
},
{
@@ -69525,7 +71505,7 @@
"source_file": "design_specs/design_spec_sections/11_Cache_Folders.md",
"source_location": "L97",
"id": "design_spec_sections_11_cache_folders_codeblock_2",
- "community": 76,
+ "community": 85,
"norm_label": "code:json ({)"
},
{
@@ -69534,7 +71514,7 @@
"source_file": "design_specs/design_spec_sections/11_Cache_Folders.md",
"source_location": "L167",
"id": "design_spec_sections_11_cache_folders_codeblock_3",
- "community": 76,
+ "community": 85,
"norm_label": "code:json ({)"
},
{
@@ -69543,7 +71523,7 @@
"source_file": "design_specs/design_spec_sections/11_Cache_Folders.md",
"source_location": "L181",
"id": "design_spec_sections_11_cache_folders_codeblock_4",
- "community": 76,
+ "community": 85,
"norm_label": "code:json ({)"
},
{
@@ -69552,7 +71532,7 @@
"source_file": "design_specs/design_spec_sections/11_Cache_Folders.md",
"source_location": "L206",
"id": "design_spec_sections_11_cache_folders_codeblock_5",
- "community": 76,
+ "community": 85,
"norm_label": "code:block5 ({ entry \u2208 validation_overrides)"
},
{
@@ -69561,7 +71541,7 @@
"source_file": "design_specs/design_spec_sections/11_Cache_Folders.md",
"source_location": "L220",
"id": "design_spec_sections_11_cache_folders_codeblock_6",
- "community": 76,
+ "community": 85,
"norm_label": "code:block6 (\"paths\": {)"
},
{
@@ -69570,7 +71550,7 @@
"source_file": "design_specs/design_spec_sections/11_Cache_Folders.md",
"source_location": "L227",
"id": "design_spec_sections_11_cache_folders_schema_version_history",
- "community": 76,
+ "community": 85,
"norm_label": "schema-version history"
},
{
@@ -69579,7 +71559,7 @@
"source_file": "design_specs/design_spec_sections/11_Cache_Folders.md",
"source_location": "L243",
"id": "design_spec_sections_11_cache_folders_11_4_readme_fields_json_schema",
- "community": 76,
+ "community": 85,
"norm_label": "11.4 `readme_fields.json` schema"
},
{
@@ -69588,7 +71568,7 @@
"source_file": "design_specs/design_spec_sections/11_Cache_Folders.md",
"source_location": "L249",
"id": "design_spec_sections_11_cache_folders_codeblock_7",
- "community": 76,
+ "community": 85,
"norm_label": "code:json ({)"
},
{
@@ -69597,7 +71577,7 @@
"source_file": "design_specs/design_spec_sections/11_Cache_Folders.md",
"source_location": "L285",
"id": "design_spec_sections_11_cache_folders_11_4_1_equipment_json_schema",
- "community": 76,
+ "community": 85,
"norm_label": "11.4.1 `equipment.json` schema"
},
{
@@ -69606,7 +71586,7 @@
"source_file": "design_specs/design_spec_sections/11_Cache_Folders.md",
"source_location": "L287",
"id": "design_spec_sections_11_cache_folders_codeblock_8",
- "community": 76,
+ "community": 85,
"norm_label": "code:json ({)"
},
{
@@ -69615,7 +71595,7 @@
"source_file": "design_specs/design_spec_sections/11_Cache_Folders.md",
"source_location": "L311",
"id": "design_spec_sections_11_cache_folders_11_4_2_test_runs_json_schema",
- "community": 76,
+ "community": 85,
"norm_label": "11.4.2 `test_runs.json` schema"
},
{
@@ -69624,7 +71604,7 @@
"source_file": "design_specs/design_spec_sections/11_Cache_Folders.md",
"source_location": "L313",
"id": "design_spec_sections_11_cache_folders_codeblock_9",
- "community": 76,
+ "community": 85,
"norm_label": "code:json ({)"
},
{
@@ -69633,7 +71613,7 @@
"source_file": "design_specs/design_spec_sections/11_Cache_Folders.md",
"source_location": "L327",
"id": "design_spec_sections_11_cache_folders_11_4_3_runs_json_schema",
- "community": 76,
+ "community": 85,
"norm_label": "11.4.3 `runs.json` schema"
},
{
@@ -69642,7 +71622,7 @@
"source_file": "design_specs/design_spec_sections/11_Cache_Folders.md",
"source_location": "L329",
"id": "design_spec_sections_11_cache_folders_codeblock_10",
- "community": 76,
+ "community": 85,
"norm_label": "code:json ({)"
},
{
@@ -69651,7 +71631,7 @@
"source_file": "design_specs/design_spec_sections/11_Cache_Folders.md",
"source_location": "L343",
"id": "design_spec_sections_11_cache_folders_11_5_wizard_hostname_log_format",
- "community": 76,
+ "community": 85,
"norm_label": "11.5 `wizard..log` format"
},
{
@@ -69660,7 +71640,7 @@
"source_file": "design_specs/design_spec_sections/11_Cache_Folders.md",
"source_location": "L351",
"id": "design_spec_sections_11_cache_folders_codeblock_11",
- "community": 76,
+ "community": 85,
"norm_label": "code:block11 (2026-04-17t14:31:55z [info ] [host:labpc-04] [equip:confocal)"
},
{
@@ -69669,7 +71649,7 @@
"source_file": "design_specs/design_spec_sections/11_Cache_Folders.md",
"source_location": "L366",
"id": "design_spec_sections_11_cache_folders_11_5_1_log_levels_rotation_and_the_central_app_log",
- "community": 76,
+ "community": 85,
"norm_label": "11.5.1 log levels, rotation, and the central app log"
},
{
@@ -69678,7 +71658,7 @@
"source_file": "design_specs/design_spec_sections/11_Cache_Folders.md",
"source_location": "L397",
"id": "design_spec_sections_11_cache_folders_11_6_nas_sync_behavior_for_cache_files",
- "community": 76,
+ "community": 85,
"norm_label": "11.6 nas sync behavior for cache files"
},
{
@@ -69687,7 +71667,7 @@
"source_file": "design_specs/design_spec_sections/11_Cache_Folders.md",
"source_location": "L401",
"id": "design_spec_sections_11_cache_folders_11_7_discovery_and_validation_use_cases",
- "community": 76,
+ "community": 85,
"norm_label": "11.7 discovery and validation use cases"
},
{
@@ -69696,7 +71676,7 @@
"source_file": "design_specs/design_spec_sections/11_Cache_Folders.md",
"source_location": "L413",
"id": "design_spec_sections_11_cache_folders_11_8_validator_engine_and_problem_query_contract",
- "community": 76,
+ "community": 85,
"norm_label": "11.8 validator engine and problem query contract"
},
{
@@ -69705,7 +71685,7 @@
"source_file": "design_specs/design_spec_sections/11_Cache_Folders.md",
"source_location": "L430",
"id": "design_spec_sections_11_cache_folders_codeblock_12",
- "community": 76,
+ "community": 85,
"norm_label": "code:json ({)"
},
{
@@ -69714,7 +71694,7 @@
"source_file": "design_specs/design_spec_sections/11_Cache_Folders.md",
"source_location": "L452",
"id": "design_spec_sections_11_cache_folders_11_9_schema_versioning_and_migration_policy",
- "community": 76,
+ "community": 85,
"norm_label": "11.9 schema versioning and migration policy"
},
{
@@ -69723,7 +71703,7 @@
"source_file": "design_specs/design_spec_sections/11_Cache_Folders.md",
"source_location": "L456",
"id": "design_spec_sections_11_cache_folders_11_9_1_versioning_rules",
- "community": 76,
+ "community": 85,
"norm_label": "11.9.1 versioning rules"
},
{
@@ -69732,7 +71712,7 @@
"source_file": "design_specs/design_spec_sections/11_Cache_Folders.md",
"source_location": "L462",
"id": "design_spec_sections_11_cache_folders_11_9_2_reader_policy",
- "community": 76,
+ "community": 85,
"norm_label": "11.9.2 reader policy"
},
{
@@ -69741,7 +71721,7 @@
"source_file": "design_specs/design_spec_sections/11_Cache_Folders.md",
"source_location": "L472",
"id": "design_spec_sections_11_cache_folders_11_9_3_writer_policy",
- "community": 76,
+ "community": 85,
"norm_label": "11.9.3 writer policy"
},
{
@@ -69750,7 +71730,7 @@
"source_file": "design_specs/design_spec_sections/11_Cache_Folders.md",
"source_location": "L480",
"id": "design_spec_sections_11_cache_folders_11_9_4_cross_major_migration_v1_v2",
- "community": 76,
+ "community": 85,
"norm_label": "11.9.4 cross-major migration (v1 \u2192 v2)"
},
{
@@ -69759,7 +71739,7 @@
"source_file": "design_specs/design_spec_sections/11_Cache_Folders.md",
"source_location": "L488",
"id": "design_spec_sections_11_cache_folders_11_9_5_directory_layout_migration_v0_5_v0_6",
- "community": 76,
+ "community": 85,
"norm_label": "11.9.5 directory-layout migration (v0.5 \u2192 v0.6)"
},
{
@@ -69768,7 +71748,7 @@
"source_file": "design_specs/design_spec_sections/11_Cache_Folders.md",
"source_location": "L492",
"id": "design_spec_sections_11_cache_folders_11_9_6_what_about_config_yaml",
- "community": 76,
+ "community": 85,
"norm_label": "11.9.6 what about `config.yaml`?"
},
{
@@ -69777,7 +71757,7 @@
"source_file": "design_specs/design_spec_sections/05_Template_Format.md",
"source_location": "L1",
"id": "design_specs_design_spec_sections_05_template_format_md",
- "community": 232,
+ "community": 234,
"norm_label": "05_template_format.md"
},
{
@@ -69786,7 +71766,7 @@
"source_file": "design_specs/design_spec_sections/05_Template_Format.md",
"source_location": "L1",
"id": "design_spec_sections_05_template_format_5_template_format",
- "community": 232,
+ "community": 234,
"norm_label": "5. template format"
},
{
@@ -69795,7 +71775,7 @@
"source_file": "design_specs/design_spec_sections/05_Template_Format.md",
"source_location": "L9",
"id": "design_spec_sections_05_template_format_5_0_template_locations_global_and_per_equipment",
- "community": 232,
+ "community": 234,
"norm_label": "5.0 template locations (global and per-equipment)"
},
{
@@ -69804,7 +71784,7 @@
"source_file": "design_specs/design_spec_sections/05_Template_Format.md",
"source_location": "L32",
"id": "design_spec_sections_05_template_format_5_1_template_structure",
- "community": 232,
+ "community": 234,
"norm_label": "5.1 template structure"
},
{
@@ -69813,7 +71793,7 @@
"source_file": "design_specs/design_spec_sections/05_Template_Format.md",
"source_location": "L36",
"id": "design_spec_sections_05_template_format_codeblock_1",
- "community": 232,
+ "community": 234,
"norm_label": "code:block1 (my_template/)"
},
{
@@ -69822,7 +71802,7 @@
"source_file": "design_specs/design_spec_sections/05_Template_Format.md",
"source_location": "L48",
"id": "design_spec_sections_05_template_format_5_2_copier_manifest_copier_yml",
- "community": 232,
+ "community": 234,
"norm_label": "5.2 copier manifest (`copier.yml`)"
},
{
@@ -69831,7 +71811,7 @@
"source_file": "design_specs/design_spec_sections/05_Template_Format.md",
"source_location": "L52",
"id": "design_spec_sections_05_template_format_codeblock_2",
- "community": 232,
+ "community": 234,
"norm_label": "code:yaml (# --- copier settings ---)"
},
{
@@ -69840,7 +71820,7 @@
"source_file": "design_specs/design_spec_sections/05_Template_Format.md",
"source_location": "L100",
"id": "design_spec_sections_05_template_format_5_3_copier_python_api_integration",
- "community": 232,
+ "community": 234,
"norm_label": "5.3 copier python api integration"
},
{
@@ -69849,7 +71829,7 @@
"source_file": "design_specs/design_spec_sections/05_Template_Format.md",
"source_location": "L104",
"id": "design_spec_sections_05_template_format_codeblock_3",
- "community": 232,
+ "community": 234,
"norm_label": "code:python (# illustrative -- not implementation code)"
},
{
@@ -69858,7 +71838,7 @@
"source_file": "design_specs/design_spec_sections/05_Template_Format.md",
"source_location": "L125",
"id": "design_spec_sections_05_template_format_5_4_copier_answers_file_exlab_answers_yml",
- "community": 232,
+ "community": 234,
"norm_label": "5.4 copier answers file (`.exlab-answers.yml`)"
},
{
@@ -69867,7 +71847,7 @@
"source_file": "design_specs/design_spec_sections/05_Template_Format.md",
"source_location": "L136",
"id": "design_spec_sections_05_template_format_5_5_plugin_pass_post_render_controller_driven",
- "community": 232,
+ "community": 234,
"norm_label": "5.5 plugin pass (post-render, controller-driven)"
},
{
@@ -69876,7 +71856,7 @@
"source_file": "design_specs/design_spec_sections/05_Template_Format.md",
"source_location": "L155",
"id": "design_spec_sections_05_template_format_5_6_jinja2_templating_in_file_contents",
- "community": 232,
+ "community": 234,
"norm_label": "5.6 jinja2 templating in file contents"
},
{
@@ -69885,7 +71865,7 @@
"source_file": "design_specs/design_spec_sections/05_Template_Format.md",
"source_location": "L165",
"id": "design_spec_sections_05_template_format_5_7_template_versioning",
- "community": 232,
+ "community": 234,
"norm_label": "5.7 template versioning"
},
{
@@ -69894,7 +71874,7 @@
"source_file": "design_specs/design_spec_sections/05_Template_Format.md",
"source_location": "L175",
"id": "design_spec_sections_05_template_format_5_8_lint_cli_exlab_wizard_templates_lint",
- "community": 232,
+ "community": 234,
"norm_label": "5.8 lint cli: `exlab-wizard templates lint`"
},
{
@@ -69903,7 +71883,7 @@
"source_file": "design_specs/design_spec_sections/05_Template_Format.md",
"source_location": "L181",
"id": "design_spec_sections_05_template_format_codeblock_4",
- "community": 232,
+ "community": 234,
"norm_label": "code:block4 (exlab-wizard templates lint )"
},
{
@@ -69912,7 +71892,7 @@
"source_file": "design_specs/design_spec_sections/13_Equipment_to_Orchestrator_Data_Flow.md",
"source_location": "L1",
"id": "design_specs_design_spec_sections_13_equipment_to_orchestrator_data_flow_md",
- "community": 241,
+ "community": 246,
"norm_label": "13_equipment_to_orchestrator_data_flow.md"
},
{
@@ -69921,7 +71901,7 @@
"source_file": "design_specs/design_spec_sections/13_Equipment_to_Orchestrator_Data_Flow.md",
"source_location": "L1",
"id": "design_spec_sections_13_equipment_to_orchestrator_data_flow_13_equipment_to_orchestrator_data_flow",
- "community": 241,
+ "community": 246,
"norm_label": "13. equipment-to-orchestrator data flow"
},
{
@@ -69930,7 +71910,7 @@
"source_file": "design_specs/design_spec_sections/13_Equipment_to_Orchestrator_Data_Flow.md",
"source_location": "L7",
"id": "design_spec_sections_13_equipment_to_orchestrator_data_flow_13_1_topology",
- "community": 241,
+ "community": 246,
"norm_label": "13.1 topology"
},
{
@@ -69939,7 +71919,7 @@
"source_file": "design_specs/design_spec_sections/13_Equipment_to_Orchestrator_Data_Flow.md",
"source_location": "L9",
"id": "design_spec_sections_13_equipment_to_orchestrator_data_flow_codeblock_1",
- "community": 241,
+ "community": 246,
"norm_label": "code:block1 ([equipment machine a] --push--> [orchestrator /staging/equ)"
},
{
@@ -69948,7 +71928,7 @@
"source_file": "design_specs/design_spec_sections/13_Equipment_to_Orchestrator_Data_Flow.md",
"source_location": "L26",
"id": "design_spec_sections_13_equipment_to_orchestrator_data_flow_13_2_staging_area_layout",
- "community": 241,
+ "community": 246,
"norm_label": "13.2 staging area layout"
},
{
@@ -69957,7 +71937,7 @@
"source_file": "design_specs/design_spec_sections/13_Equipment_to_Orchestrator_Data_Flow.md",
"source_location": "L28",
"id": "design_spec_sections_13_equipment_to_orchestrator_data_flow_codeblock_2",
- "community": 241,
+ "community": 246,
"norm_label": "code:block2 (/staging/)"
},
{
@@ -69966,7 +71946,7 @@
"source_file": "design_specs/design_spec_sections/13_Equipment_to_Orchestrator_Data_Flow.md",
"source_location": "L52",
"id": "design_spec_sections_13_equipment_to_orchestrator_data_flow_13_3_run_lifecycle_states",
- "community": 241,
+ "community": 246,
"norm_label": "13.3 run lifecycle states"
},
{
@@ -69975,7 +71955,7 @@
"source_file": "design_specs/design_spec_sections/13_Equipment_to_Orchestrator_Data_Flow.md",
"source_location": "L64",
"id": "design_spec_sections_13_equipment_to_orchestrator_data_flow_13_4_ingest_json_schema",
- "community": 241,
+ "community": 246,
"norm_label": "13.4 `ingest.json` schema"
},
{
@@ -69984,7 +71964,7 @@
"source_file": "design_specs/design_spec_sections/13_Equipment_to_Orchestrator_Data_Flow.md",
"source_location": "L66",
"id": "design_spec_sections_13_equipment_to_orchestrator_data_flow_codeblock_3",
- "community": 241,
+ "community": 246,
"norm_label": "code:json ({)"
},
{
@@ -69993,7 +71973,7 @@
"source_file": "design_specs/design_spec_sections/13_Equipment_to_Orchestrator_Data_Flow.md",
"source_location": "L108",
"id": "design_spec_sections_13_equipment_to_orchestrator_data_flow_13_5_run_completeness_signal",
- "community": 241,
+ "community": 246,
"norm_label": "13.5 run completeness signal"
},
{
@@ -70002,7 +71982,7 @@
"source_file": "design_specs/design_spec_sections/13_Equipment_to_Orchestrator_Data_Flow.md",
"source_location": "L119",
"id": "design_spec_sections_13_equipment_to_orchestrator_data_flow_13_6_transport_handling",
- "community": 241,
+ "community": 246,
"norm_label": "13.6 transport handling"
},
{
@@ -70011,7 +71991,7 @@
"source_file": "design_specs/design_spec_sections/13_Equipment_to_Orchestrator_Data_Flow.md",
"source_location": "L123",
"id": "design_spec_sections_13_equipment_to_orchestrator_data_flow_13_7_staging_cleanup",
- "community": 241,
+ "community": 246,
"norm_label": "13.7 staging cleanup"
},
{
@@ -70020,7 +72000,7 @@
"source_file": "design_specs/design_spec_sections/13_Equipment_to_Orchestrator_Data_Flow.md",
"source_location": "L127",
"id": "design_spec_sections_13_equipment_to_orchestrator_data_flow_codeblock_4",
- "community": 241,
+ "community": 246,
"norm_label": "code:yaml (orchestrator:)"
},
{
@@ -70029,7 +72009,7 @@
"source_file": "design_specs/design_spec_sections/13_Equipment_to_Orchestrator_Data_Flow.md",
"source_location": "L140",
"id": "design_spec_sections_13_equipment_to_orchestrator_data_flow_13_8_staging_state_query_backend_contract",
- "community": 241,
+ "community": 246,
"norm_label": "13.8 staging state query (backend contract)"
},
{
@@ -70038,7 +72018,7 @@
"source_file": "design_specs/design_spec_sections/08_Error_Handling_Principles.md",
"source_location": "L1",
"id": "design_specs_design_spec_sections_08_error_handling_principles_md",
- "community": 294,
+ "community": 298,
"norm_label": "08_error_handling_principles.md"
},
{
@@ -70047,7 +72027,7 @@
"source_file": "design_specs/design_spec_sections/08_Error_Handling_Principles.md",
"source_location": "L1",
"id": "design_spec_sections_08_error_handling_principles_8_error_handling_principles",
- "community": 294,
+ "community": 298,
"norm_label": "8. error handling principles"
},
{
@@ -70056,7 +72036,7 @@
"source_file": "design_specs/design_spec_sections/08_Error_Handling_Principles.md",
"source_location": "L11",
"id": "design_spec_sections_08_error_handling_principles_8_1_path_validation_rules",
- "community": 294,
+ "community": 298,
"norm_label": "8.1 path validation rules"
},
{
@@ -70065,7 +72045,7 @@
"source_file": "design_specs/design_spec_sections/08_Error_Handling_Principles.md",
"source_location": "L15",
"id": "design_spec_sections_08_error_handling_principles_8_1_1_unresolved_placeholder_rule_hard_tier",
- "community": 294,
+ "community": 298,
"norm_label": "8.1.1 unresolved-placeholder rule (hard tier)"
},
{
@@ -70074,7 +72054,7 @@
"source_file": "design_specs/design_spec_sections/08_Error_Handling_Principles.md",
"source_location": "L39",
"id": "design_spec_sections_08_error_handling_principles_8_1_2_illegal_filesystem_character_rule_hard_tier",
- "community": 294,
+ "community": 298,
"norm_label": "8.1.2 illegal-filesystem-character rule (hard tier)"
},
{
@@ -70083,7 +72063,7 @@
"source_file": "design_specs/design_spec_sections/08_Error_Handling_Principles.md",
"source_location": "L51",
"id": "design_spec_sections_08_error_handling_principles_8_1_3_mode_prefix_mismatch_rule_hard_tier",
- "community": 294,
+ "community": 298,
"norm_label": "8.1.3 mode-prefix mismatch rule (hard tier)"
},
{
@@ -70092,7 +72072,7 @@
"source_file": "design_specs/design_spec_sections/08_Error_Handling_Principles.md",
"source_location": "L60",
"id": "design_spec_sections_08_error_handling_principles_8_1_4_orphan_rule_soft_tier",
- "community": 294,
+ "community": 298,
"norm_label": "8.1.4 orphan rule (soft tier)"
},
{
@@ -70101,7 +72081,7 @@
"source_file": "design_specs/design_spec_sections/08_Error_Handling_Principles.md",
"source_location": "L66",
"id": "design_spec_sections_08_error_handling_principles_8_1_5_missing_required_field_rule_soft_tier",
- "community": 294,
+ "community": 298,
"norm_label": "8.1.5 missing-required-field rule (soft tier)"
},
{
@@ -70110,7 +72090,7 @@
"source_file": "design_specs/design_spec_sections/08_Error_Handling_Principles.md",
"source_location": "L70",
"id": "design_spec_sections_08_error_handling_principles_8_1_6_tier_mapping",
- "community": 294,
+ "community": 298,
"norm_label": "8.1.6 tier mapping"
},
{
@@ -70119,7 +72099,7 @@
"source_file": "design_specs/design_spec_sections/10_README_Generation.md",
"source_location": "L1",
"id": "design_specs_design_spec_sections_10_readme_generation_md",
- "community": 221,
+ "community": 222,
"norm_label": "10_readme_generation.md"
},
{
@@ -70128,7 +72108,7 @@
"source_file": "design_specs/design_spec_sections/10_README_Generation.md",
"source_location": "L1",
"id": "design_spec_sections_10_readme_generation_10_readme_generation",
- "community": 221,
+ "community": 222,
"norm_label": "10. readme generation"
},
{
@@ -70137,7 +72117,7 @@
"source_file": "design_specs/design_spec_sections/10_README_Generation.md",
"source_location": "L9",
"id": "design_spec_sections_10_readme_generation_10_1_when_it_runs",
- "community": 221,
+ "community": 222,
"norm_label": "10.1 when it runs"
},
{
@@ -70146,7 +72126,7 @@
"source_file": "design_specs/design_spec_sections/10_README_Generation.md",
"source_location": "L15",
"id": "design_spec_sections_10_readme_generation_codeblock_1",
- "community": 221,
+ "community": 222,
"norm_label": "code:yaml (# in a template's copier.yml)"
},
{
@@ -70155,7 +72135,7 @@
"source_file": "design_specs/design_spec_sections/10_README_Generation.md",
"source_location": "L26",
"id": "design_spec_sections_10_readme_generation_10_2_field_sources_merged_layers",
- "community": 221,
+ "community": 222,
"norm_label": "10.2 field sources (merged layers)"
},
{
@@ -70164,7 +72144,7 @@
"source_file": "design_specs/design_spec_sections/10_README_Generation.md",
"source_location": "L39",
"id": "design_spec_sections_10_readme_generation_10_3_field_types",
- "community": 221,
+ "community": 222,
"norm_label": "10.3 field types"
},
{
@@ -70173,7 +72153,7 @@
"source_file": "design_specs/design_spec_sections/10_README_Generation.md",
"source_location": "L53",
"id": "design_spec_sections_10_readme_generation_codeblock_2",
- "community": 221,
+ "community": 222,
"norm_label": "code:yaml (_exlab_readme:)"
},
{
@@ -70182,7 +72162,7 @@
"source_file": "design_specs/design_spec_sections/10_README_Generation.md",
"source_location": "L72",
"id": "design_spec_sections_10_readme_generation_10_4_user_added_custom_fields",
- "community": 221,
+ "community": 222,
"norm_label": "10.4 user-added custom fields"
},
{
@@ -70191,7 +72171,7 @@
"source_file": "design_specs/design_spec_sections/10_README_Generation.md",
"source_location": "L80",
"id": "design_spec_sections_10_readme_generation_10_5_pre_fill_behavior",
- "community": 221,
+ "community": 222,
"norm_label": "10.5 pre-fill behavior"
},
{
@@ -70200,7 +72180,7 @@
"source_file": "design_specs/design_spec_sections/10_README_Generation.md",
"source_location": "L86",
"id": "design_spec_sections_10_readme_generation_10_6_auto_filled_system_fields",
- "community": 221,
+ "community": 222,
"norm_label": "10.6 auto-filled system fields"
},
{
@@ -70209,7 +72189,7 @@
"source_file": "design_specs/design_spec_sections/10_README_Generation.md",
"source_location": "L101",
"id": "design_spec_sections_10_readme_generation_10_7_output_format",
- "community": 221,
+ "community": 222,
"norm_label": "10.7 output format"
},
{
@@ -70218,7 +72198,7 @@
"source_file": "design_specs/design_spec_sections/10_README_Generation.md",
"source_location": "L115",
"id": "design_spec_sections_10_readme_generation_codeblock_3",
- "community": 221,
+ "community": 222,
"norm_label": "code:markdown (---)"
},
{
@@ -70227,7 +72207,7 @@
"source_file": "design_specs/design_spec_sections/10_README_Generation.md",
"source_location": "L169",
"id": "design_spec_sections_10_readme_generation_10_7_1_machine_query_examples",
- "community": 221,
+ "community": 222,
"norm_label": "10.7.1 machine query examples"
},
{
@@ -70236,7 +72216,7 @@
"source_file": "design_specs/design_spec_sections/10_README_Generation.md",
"source_location": "L173",
"id": "design_spec_sections_10_readme_generation_codeblock_4",
- "community": 221,
+ "community": 222,
"norm_label": "code:python (# illustrative -- not implementation code)"
},
{
@@ -70245,7 +72225,7 @@
"source_file": "design_specs/design_spec_sections/10_README_Generation.md",
"source_location": "L209",
"id": "design_spec_sections_10_readme_generation_10_7_2_prose_body",
- "community": 221,
+ "community": 222,
"norm_label": "10.7.2 prose body"
},
{
@@ -70254,7 +72234,7 @@
"source_file": "design_specs/design_spec_sections/10_README_Generation.md",
"source_location": "L215",
"id": "design_spec_sections_10_readme_generation_10_8_readme_plugin_hook_removed_in_v0_7",
- "community": 221,
+ "community": 222,
"norm_label": "10.8 readme plugin hook (removed in v0.7)"
},
{
@@ -70263,7 +72243,7 @@
"source_file": "design_specs/design_spec_sections/16_Logging.md",
"source_location": "L1",
"id": "design_specs_design_spec_sections_16_logging_md",
- "community": 116,
+ "community": 124,
"norm_label": "16_logging.md"
},
{
@@ -70272,7 +72252,7 @@
"source_file": "design_specs/design_spec_sections/16_Logging.md",
"source_location": "L1",
"id": "design_spec_sections_16_logging_16_logging_architecture",
- "community": 116,
+ "community": 124,
"norm_label": "16. logging architecture"
},
{
@@ -70281,7 +72261,7 @@
"source_file": "design_specs/design_spec_sections/16_Logging.md",
"source_location": "L14",
"id": "design_spec_sections_16_logging_16_1_goals",
- "community": 116,
+ "community": 124,
"norm_label": "16.1 goals"
},
{
@@ -70290,7 +72270,7 @@
"source_file": "design_specs/design_spec_sections/16_Logging.md",
"source_location": "L23",
"id": "design_spec_sections_16_logging_16_2_the_logging_package",
- "community": 116,
+ "community": 124,
"norm_label": "16.2 the `logging/` package"
},
{
@@ -70299,7 +72279,7 @@
"source_file": "design_specs/design_spec_sections/16_Logging.md",
"source_location": "L25",
"id": "design_spec_sections_16_logging_codeblock_1",
- "community": 116,
+ "community": 124,
"norm_label": "code:block1 (exlab_wizard/logging/)"
},
{
@@ -70308,7 +72288,7 @@
"source_file": "design_specs/design_spec_sections/16_Logging.md",
"source_location": "L34",
"id": "design_spec_sections_16_logging_16_2_1_the_get_logger_name_entry_point",
- "community": 116,
+ "community": 124,
"norm_label": "16.2.1 the `get_logger(name)` entry point"
},
{
@@ -70317,7 +72297,7 @@
"source_file": "design_specs/design_spec_sections/16_Logging.md",
"source_location": "L38",
"id": "design_spec_sections_16_logging_codeblock_2",
- "community": 116,
+ "community": 124,
"norm_label": "code:python (from exlab_wizard.logging import get_logger)"
},
{
@@ -70326,7 +72306,7 @@
"source_file": "design_specs/design_spec_sections/16_Logging.md",
"source_location": "L55",
"id": "design_spec_sections_16_logging_16_2_2_configure_logging_config_at_startup",
- "community": 116,
+ "community": 124,
"norm_label": "16.2.2 `configure_logging(config)` at startup"
},
{
@@ -70335,7 +72315,7 @@
"source_file": "design_specs/design_spec_sections/16_Logging.md",
"source_location": "L59",
"id": "design_spec_sections_16_logging_codeblock_3",
- "community": 116,
+ "community": 124,
"norm_label": "code:python (from exlab_wizard.logging import configure_logging)"
},
{
@@ -70344,7 +72324,7 @@
"source_file": "design_specs/design_spec_sections/16_Logging.md",
"source_location": "L72",
"id": "design_spec_sections_16_logging_16_2_3_context_vars",
- "community": 116,
+ "community": 124,
"norm_label": "16.2.3 context vars"
},
{
@@ -70353,7 +72333,7 @@
"source_file": "design_specs/design_spec_sections/16_Logging.md",
"source_location": "L76",
"id": "design_spec_sections_16_logging_codeblock_4",
- "community": 116,
+ "community": 124,
"norm_label": "code:python (from exlab_wizard.logging.context import set_run_context, cl)"
},
{
@@ -70362,7 +72342,7 @@
"source_file": "design_specs/design_spec_sections/16_Logging.md",
"source_location": "L91",
"id": "design_spec_sections_16_logging_16_2_4_equipment_scoped_handlers",
- "community": 116,
+ "community": 124,
"norm_label": "16.2.4 equipment-scoped handlers"
},
{
@@ -70371,7 +72351,7 @@
"source_file": "design_specs/design_spec_sections/16_Logging.md",
"source_location": "L102",
"id": "design_spec_sections_16_logging_16_2_5_non_blocking_emit_via_queuehandler_queuelistener",
- "community": 116,
+ "community": 124,
"norm_label": "16.2.5 non-blocking emit via `queuehandler` + `queuelistener`"
},
{
@@ -70380,7 +72360,7 @@
"source_file": "design_specs/design_spec_sections/16_Logging.md",
"source_location": "L114",
"id": "design_spec_sections_16_logging_16_3_log_file_layout_where_to_look_quick_reference",
- "community": 116,
+ "community": 124,
"norm_label": "16.3 log file layout (where-to-look quick reference)"
},
{
@@ -70389,7 +72369,7 @@
"source_file": "design_specs/design_spec_sections/16_Logging.md",
"source_location": "L132",
"id": "design_spec_sections_16_logging_16_4_format",
- "community": 116,
+ "community": 124,
"norm_label": "16.4 format"
},
{
@@ -70398,7 +72378,7 @@
"source_file": "design_specs/design_spec_sections/16_Logging.md",
"source_location": "L136",
"id": "design_spec_sections_16_logging_codeblock_5",
- "community": 116,
+ "community": 124,
"norm_label": "code:block5 ( [] [host:] [equi)"
},
{
@@ -70407,7 +72387,7 @@
"source_file": "design_specs/design_spec_sections/16_Logging.md",
"source_location": "L154",
"id": "design_spec_sections_16_logging_16_5_levels_and_configuration",
- "community": 116,
+ "community": 124,
"norm_label": "16.5 levels and configuration"
},
{
@@ -70416,7 +72396,7 @@
"source_file": "design_specs/design_spec_sections/16_Logging.md",
"source_location": "L169",
"id": "design_spec_sections_16_logging_16_6_rotation",
- "community": 116,
+ "community": 124,
"norm_label": "16.6 rotation"
},
{
@@ -70425,7 +72405,7 @@
"source_file": "design_specs/design_spec_sections/16_Logging.md",
"source_location": "L185",
"id": "design_spec_sections_16_logging_16_7_debugging_recipes",
- "community": 116,
+ "community": 124,
"norm_label": "16.7 debugging recipes"
},
{
@@ -70434,7 +72414,7 @@
"source_file": "design_specs/design_spec_sections/16_Logging.md",
"source_location": "L189",
"id": "design_spec_sections_16_logging_16_7_1_a_run_failed_what_happened",
- "community": 116,
+ "community": 124,
"norm_label": "16.7.1 \"a run failed; what happened?\""
},
{
@@ -70443,7 +72423,7 @@
"source_file": "design_specs/design_spec_sections/16_Logging.md",
"source_location": "L195",
"id": "design_spec_sections_16_logging_16_7_2_sync_is_failing_for_many_runs",
- "community": 116,
+ "community": 124,
"norm_label": "16.7.2 \"sync is failing for many runs\""
},
{
@@ -70452,7 +72432,7 @@
"source_file": "design_specs/design_spec_sections/16_Logging.md",
"source_location": "L201",
"id": "design_spec_sections_16_logging_16_7_3_a_plugin_is_misbehaving_in_production",
- "community": 116,
+ "community": 124,
"norm_label": "16.7.3 \"a plugin is misbehaving in production\""
},
{
@@ -70461,7 +72441,7 @@
"source_file": "design_specs/design_spec_sections/16_Logging.md",
"source_location": "L209",
"id": "design_spec_sections_16_logging_16_7_4_i_don_t_trust_my_config_what_s_actually_loaded",
- "community": 116,
+ "community": 124,
"norm_label": "16.7.4 \"i don't trust my config; what's actually loaded?\""
},
{
@@ -70470,7 +72450,7 @@
"source_file": "design_specs/design_spec_sections/16_Logging.md",
"source_location": "L214",
"id": "design_spec_sections_16_logging_16_7_5_increase_verbosity_for_one_debug_session",
- "community": 116,
+ "community": 124,
"norm_label": "16.7.5 \"increase verbosity for one debug session\""
},
{
@@ -70479,7 +72459,7 @@
"source_file": "design_specs/design_spec_sections/16_Logging.md",
"source_location": "L223",
"id": "design_spec_sections_16_logging_16_8_plugin_worker_logging",
- "community": 116,
+ "community": 124,
"norm_label": "16.8 plugin worker logging"
},
{
@@ -70488,7 +72468,7 @@
"source_file": "design_specs/design_spec_sections/16_Logging.md",
"source_location": "L237",
"id": "design_spec_sections_16_logging_16_9_operator_facing_log_access",
- "community": 116,
+ "community": 124,
"norm_label": "16.9 operator-facing log access"
},
{
@@ -70497,7 +72477,7 @@
"source_file": "design_specs/design_spec_sections/16_Logging.md",
"source_location": "L247",
"id": "design_spec_sections_16_logging_16_10_anti_patterns",
- "community": 116,
+ "community": 124,
"norm_label": "16.10 anti-patterns"
},
{
@@ -70506,7 +72486,7 @@
"source_file": "design_specs/design_spec_sections/02_User_Interaction.md",
"source_location": "L1",
"id": "design_specs_design_spec_sections_02_user_interaction_md",
- "community": 144,
+ "community": 156,
"norm_label": "02_user_interaction.md"
},
{
@@ -70515,7 +72495,7 @@
"source_file": "design_specs/design_spec_sections/02_User_Interaction.md",
"source_location": "L1",
"id": "design_spec_sections_02_user_interaction_2_user_interaction",
- "community": 144,
+ "community": 156,
"norm_label": "2. user interaction"
},
{
@@ -70524,7 +72504,7 @@
"source_file": "design_specs/design_spec_sections/02_User_Interaction.md",
"source_location": "L13",
"id": "design_spec_sections_02_user_interaction_table_of_contents",
- "community": 144,
+ "community": 156,
"norm_label": "table of contents"
},
{
@@ -70533,7 +72513,7 @@
"source_file": "design_specs/design_spec_sections/02_User_Interaction.md",
"source_location": "L33",
"id": "design_spec_sections_02_user_interaction_1_purpose_and_scope",
- "community": 144,
+ "community": 156,
"norm_label": "1. purpose and scope"
},
{
@@ -70542,7 +72522,7 @@
"source_file": "design_specs/design_spec_sections/02_User_Interaction.md",
"source_location": "L46",
"id": "design_spec_sections_02_user_interaction_2_mandatory_core_fields_creation_gate",
- "community": 144,
+ "community": 156,
"norm_label": "2. mandatory core fields (creation gate)"
},
{
@@ -70551,7 +72531,7 @@
"source_file": "design_specs/design_spec_sections/02_User_Interaction.md",
"source_location": "L69",
"id": "design_spec_sections_02_user_interaction_3_user_capabilities",
- "community": 144,
+ "community": 156,
"norm_label": "3. user capabilities"
},
{
@@ -70560,7 +72540,7 @@
"source_file": "design_specs/design_spec_sections/02_User_Interaction.md",
"source_location": "L73",
"id": "design_spec_sections_02_user_interaction_3_1_create_a_new_project",
- "community": 144,
+ "community": 156,
"norm_label": "3.1 create a new project"
},
{
@@ -70569,7 +72549,7 @@
"source_file": "design_specs/design_spec_sections/02_User_Interaction.md",
"source_location": "L82",
"id": "design_spec_sections_02_user_interaction_3_2_create_a_new_experimental_run",
- "community": 144,
+ "community": 156,
"norm_label": "3.2 create a new experimental run"
},
{
@@ -70578,7 +72558,7 @@
"source_file": "design_specs/design_spec_sections/02_User_Interaction.md",
"source_location": "L89",
"id": "design_spec_sections_02_user_interaction_3_3_create_a_new_test_run",
- "community": 144,
+ "community": 156,
"norm_label": "3.3 create a new test run"
},
{
@@ -70587,7 +72567,7 @@
"source_file": "design_specs/design_spec_sections/02_User_Interaction.md",
"source_location": "L98",
"id": "design_spec_sections_02_user_interaction_3_4_browse_existing_equipment_projects_and_runs",
- "community": 144,
+ "community": 156,
"norm_label": "3.4 browse existing equipment, projects, and runs"
},
{
@@ -70596,7 +72576,7 @@
"source_file": "design_specs/design_spec_sections/02_User_Interaction.md",
"source_location": "L104",
"id": "design_spec_sections_02_user_interaction_3_5_author_a_readme_at_creation_time",
- "community": 144,
+ "community": 156,
"norm_label": "3.5 author a readme at creation time"
},
{
@@ -70605,7 +72585,7 @@
"source_file": "design_specs/design_spec_sections/02_User_Interaction.md",
"source_location": "L112",
"id": "design_spec_sections_02_user_interaction_3_6_configure_equipment_paths_and_integrations",
- "community": 144,
+ "community": 156,
"norm_label": "3.6 configure equipment, paths, and integrations"
},
{
@@ -70614,7 +72594,7 @@
"source_file": "design_specs/design_spec_sections/02_User_Interaction.md",
"source_location": "L119",
"id": "design_spec_sections_02_user_interaction_3_7_monitor_orchestrator_staging_orchestrator_mode_only",
- "community": 144,
+ "community": 156,
"norm_label": "3.7 monitor orchestrator staging (orchestrator mode only)"
},
{
@@ -70623,7 +72603,7 @@
"source_file": "design_specs/design_spec_sections/02_User_Interaction.md",
"source_location": "L125",
"id": "design_spec_sections_02_user_interaction_3_8_review_and_resolve_naming_and_validation_problems",
- "community": 144,
+ "community": 156,
"norm_label": "3.8 review and resolve naming and validation problems"
},
{
@@ -70632,7 +72612,7 @@
"source_file": "design_specs/design_spec_sections/02_User_Interaction.md",
"source_location": "L144",
"id": "design_spec_sections_02_user_interaction_4_mode_invariants_and_safety_boundaries",
- "community": 144,
+ "community": 156,
"norm_label": "4. mode invariants and safety boundaries"
},
{
@@ -70641,7 +72621,7 @@
"source_file": "design_specs/design_spec_sections/02_User_Interaction.md",
"source_location": "L157",
"id": "design_spec_sections_02_user_interaction_5_validation_order_and_error_surfacing",
- "community": 144,
+ "community": 156,
"norm_label": "5. validation order and error surfacing"
},
{
@@ -70650,7 +72630,7 @@
"source_file": "design_specs/design_spec_sections/02_User_Interaction.md",
"source_location": "L172",
"id": "design_spec_sections_02_user_interaction_6_user_visible_state_across_surfaces",
- "community": 144,
+ "community": 156,
"norm_label": "6. user-visible state across surfaces"
},
{
@@ -70659,7 +72639,7 @@
"source_file": "design_specs/design_spec_sections/02_User_Interaction.md",
"source_location": "L186",
"id": "design_spec_sections_02_user_interaction_7_pre_sync_gate",
- "community": 144,
+ "community": 156,
"norm_label": "7. pre-sync gate"
},
{
@@ -70668,7 +72648,7 @@
"source_file": "design_specs/design_spec_sections/02_User_Interaction.md",
"source_location": "L190",
"id": "design_spec_sections_02_user_interaction_7_1_what_the_gate_blocks",
- "community": 144,
+ "community": 156,
"norm_label": "7.1 what the gate blocks"
},
{
@@ -70677,7 +72657,7 @@
"source_file": "design_specs/design_spec_sections/02_User_Interaction.md",
"source_location": "L196",
"id": "design_spec_sections_02_user_interaction_7_2_what_the_user_sees",
- "community": 144,
+ "community": 156,
"norm_label": "7.2 what the user sees"
},
{
@@ -70686,7 +72666,7 @@
"source_file": "design_specs/design_spec_sections/02_User_Interaction.md",
"source_location": "L202",
"id": "design_spec_sections_02_user_interaction_7_3_how_the_gate_is_cleared",
- "community": 144,
+ "community": 156,
"norm_label": "7.3 how the gate is cleared"
},
{
@@ -70695,7 +72675,7 @@
"source_file": "design_specs/design_spec_sections/02_User_Interaction.md",
"source_location": "L211",
"id": "design_spec_sections_02_user_interaction_7_4_override_audit_contract",
- "community": 144,
+ "community": 156,
"norm_label": "7.4 override audit contract"
},
{
@@ -70704,7 +72684,7 @@
"source_file": "design_specs/design_spec_sections/02_User_Interaction.md",
"source_location": "L219",
"id": "design_spec_sections_02_user_interaction_7_5_gate_semantics_on_retroactive_problems",
- "community": 144,
+ "community": 156,
"norm_label": "7.5 gate semantics on retroactive problems"
},
{
@@ -70713,7 +72693,7 @@
"source_file": "design_specs/design_spec_sections/09_Configuration_File.md",
"source_location": "L1",
"id": "design_specs_design_spec_sections_09_configuration_file_md",
- "community": 466,
+ "community": 503,
"norm_label": "09_configuration_file.md"
},
{
@@ -70722,7 +72702,7 @@
"source_file": "design_specs/design_spec_sections/09_Configuration_File.md",
"source_location": "L1",
"id": "design_spec_sections_09_configuration_file_9_configuration_file",
- "community": 466,
+ "community": 503,
"norm_label": "9. configuration file"
},
{
@@ -70731,7 +72711,7 @@
"source_file": "design_specs/design_spec_sections/09_Configuration_File.md",
"source_location": "L19",
"id": "design_spec_sections_09_configuration_file_codeblock_1",
- "community": 466,
+ "community": 503,
"norm_label": "code:yaml (paths:)"
},
{
@@ -70740,7 +72720,7 @@
"source_file": "graphify-out/memory/query_20260529_232003_how_are_the_example_equipment__projects__run_folde.md",
"source_location": "L1",
"id": "graphify_out_memory_query_20260529_232003_how_are_the_example_equipment_projects_run_folde_md",
- "community": 404,
+ "community": 428,
"norm_label": "query_20260529_232003_how_are_the_example_equipment__projects__run_folde.md"
},
{
@@ -70749,7 +72729,7 @@
"source_file": "graphify-out/memory/query_20260529_232003_how_are_the_example_equipment__projects__run_folde.md",
"source_location": "L9",
"id": "memory_query_20260529_232003_how_are_the_example_equipment_projects_run_folde_q_how_are_the_example_equipment_projects_run_folders_and_samples_generated_in_test_mode_of_the_wizard_tray",
- "community": 404,
+ "community": 428,
"norm_label": "q: how are the example equipment, projects, run folders, and samples generated in --test mode of the wizard tray?"
},
{
@@ -70758,7 +72738,7 @@
"source_file": "graphify-out/memory/query_20260529_232003_how_are_the_example_equipment__projects__run_folde.md",
"source_location": "L11",
"id": "memory_query_20260529_232003_how_are_the_example_equipment_projects_run_folde_answer",
- "community": 404,
+ "community": 428,
"norm_label": "answer"
},
{
@@ -70767,1626 +72747,5046 @@
"source_file": "graphify-out/memory/query_20260529_232003_how_are_the_example_equipment__projects__run_folde.md",
"source_location": "L15",
"id": "memory_query_20260529_232003_how_are_the_example_equipment_projects_run_folde_source_nodes",
- "community": 404,
+ "community": 428,
"norm_label": "source nodes"
},
{
- "label": "Render the centre-pane file list (Redesign \u00a74.3). Each row carries a right-",
+ "label": "The phase enum order matches Frontend \u00a710.1.",
"file_type": "rationale",
- "source_file": "src/exlab_wizard/ui/pages/main.py",
- "source_location": "L491",
- "community": 196,
- "norm_label": "render the centre-pane file list (redesign \u00a74.3). each row carries a right-",
- "id": "pages_main_rationale_491"
+ "source_file": "tests/unit/ui/test_components.py",
+ "source_location": "L184",
+ "community": 432,
+ "norm_label": "the phase enum order matches frontend \u00a710.1.",
+ "id": "ui_test_components_rationale_184"
},
{
- "label": "Render the right Metadata / Problems pane (Redesign \u00a74.4).",
+ "label": "The active phase has fraction 0.5 and ``is_active``.",
"file_type": "rationale",
- "source_file": "src/exlab_wizard/ui/pages/main.py",
- "source_location": "L530",
- "community": 205,
- "norm_label": "render the right metadata / problems pane (redesign \u00a74.4).",
- "id": "pages_main_rationale_530"
+ "source_file": "tests/unit/ui/test_components.py",
+ "source_location": "L232",
+ "community": 435,
+ "norm_label": "the active phase has fraction 0.5 and ``is_active``.",
+ "id": "ui_test_components_rationale_232"
},
{
- "label": "Render the centre-pane file list (Redesign \u00a74.3). Each row carries a right-",
+ "label": "When ``running_plugins`` carries N/M, a sub-row dict is emitted. We assert",
"file_type": "rationale",
- "source_file": "src/exlab_wizard/ui/pages/main.py",
- "source_location": "L479",
- "community": 196,
- "norm_label": "render the centre-pane file list (redesign \u00a74.3). each row carries a right-",
- "id": "pages_main_rationale_479"
+ "source_file": "tests/unit/ui/test_components.py",
+ "source_location": "L245",
+ "community": 434,
+ "norm_label": "when ``running_plugins`` carries n/m, a sub-row dict is emitted. we assert",
+ "id": "ui_test_components_rationale_245"
},
{
- "label": "Render the right Metadata / Problems pane (Redesign \u00a74.4).",
+ "label": "Clicking *Set* opens the editor; *Cancel* must return to Not set.",
"file_type": "rationale",
- "source_file": "src/exlab_wizard/ui/pages/main.py",
- "source_location": "L518",
- "community": 205,
- "norm_label": "render the right metadata / problems pane (redesign \u00a74.4).",
- "id": "pages_main_rationale_518"
+ "source_file": "tests/unit/ui/test_components.py",
+ "source_location": "L292",
+ "community": 436,
+ "norm_label": "clicking *set* opens the editor; *cancel* must return to not set.",
+ "id": "ui_test_components_rationale_292"
},
{
- "label": "RESUME \u2014 Main-window UI refresh (Phase 4 DONE + committed; at demo checkpoint)",
- "file_type": "document",
- "source_file": "RESUME.md",
- "source_location": "L1",
- "community": 230,
- "norm_label": "resume \u2014 main-window ui refresh (phase 4 done + committed; at demo checkpoint)",
- "id": "exlabwizard_resume_resume_main_window_ui_refresh_phase_4_done_committed_at_demo_checkpoint"
+ "label": "Clicking *Replace* opens the editor; *Cancel* must return to Set.",
+ "file_type": "rationale",
+ "source_file": "tests/unit/ui/test_components.py",
+ "source_location": "L302",
+ "community": 437,
+ "norm_label": "clicking *replace* opens the editor; *cancel* must return to set.",
+ "id": "ui_test_components_rationale_302"
},
{
- "label": "Render the centre-pane file list (Redesign \u00a74.3). Each row carries a right-",
+ "label": "An empty input has nothing to persist -- stay in the editor.",
"file_type": "rationale",
- "source_file": "src/exlab_wizard/ui/pages/main.py",
- "source_location": "L475",
- "community": 196,
- "norm_label": "render the centre-pane file list (redesign \u00a74.3). each row carries a right-",
- "id": "pages_main_rationale_475"
+ "source_file": "tests/unit/ui/test_components.py",
+ "source_location": "L334",
+ "community": 433,
+ "norm_label": "an empty input has nothing to persist -- stay in the editor.",
+ "id": "ui_test_components_rationale_334"
},
{
- "label": "Render the right Metadata / Problems pane (Redesign \u00a74.4).",
+ "label": "Banners exceed the 2-cap; overflow is reported.",
"file_type": "rationale",
- "source_file": "src/exlab_wizard/ui/pages/main.py",
- "source_location": "L514",
- "community": 205,
- "norm_label": "render the right metadata / problems pane (redesign \u00a74.4).",
- "id": "pages_main_rationale_514"
+ "source_file": "tests/unit/ui/test_components.py",
+ "source_location": "L454",
+ "community": 438,
+ "norm_label": "banners exceed the 2-cap; overflow is reported.",
+ "id": "ui_test_components_rationale_454"
},
{
- "label": "Render the centre-pane file list (Redesign \u00a74.3). Each row carries a right-",
+ "label": "Suspended rows sort first, oldest started_at first (\u00a79.5).",
"file_type": "rationale",
- "source_file": "src/exlab_wizard/ui/pages/main.py",
- "source_location": "L483",
- "community": 196,
- "norm_label": "render the centre-pane file list (redesign \u00a74.3). each row carries a right-",
- "id": "pages_main_rationale_483"
+ "source_file": "tests/unit/ui/test_components.py",
+ "source_location": "L503",
+ "community": 431,
+ "norm_label": "suspended rows sort first, oldest started_at first (\u00a79.5).",
+ "id": "ui_test_components_rationale_503"
},
{
- "label": "Render the right Metadata / Problems pane (Redesign \u00a74.4).",
+ "label": "Archived projects are hidden by default.",
"file_type": "rationale",
- "source_file": "src/exlab_wizard/ui/pages/main.py",
- "source_location": "L522",
- "community": 205,
- "norm_label": "render the right metadata / problems pane (redesign \u00a74.4).",
- "id": "pages_main_rationale_522"
+ "source_file": "tests/unit/ui/test_components.py",
+ "source_location": "L720",
+ "community": 394,
+ "norm_label": "archived projects are hidden by default.",
+ "id": "ui_test_components_rationale_720"
},
{
- "label": "Render the centre-pane file list (Redesign \u00a74.3). Each row carries a right-",
+ "label": "Deleted-from-LIMS rows always render (Frontend \u00a73.5.3).",
"file_type": "rationale",
- "source_file": "src/exlab_wizard/ui/pages/main.py",
- "source_location": "L489",
- "community": 196,
- "norm_label": "render the centre-pane file list (redesign \u00a74.3). each row carries a right-",
- "id": "pages_main_rationale_489"
+ "source_file": "tests/unit/ui/test_components.py",
+ "source_location": "L740",
+ "community": 393,
+ "norm_label": "deleted-from-lims rows always render (frontend \u00a73.5.3).",
+ "id": "ui_test_components_rationale_740"
},
{
- "label": "Render the right Metadata / Problems pane (Redesign \u00a74.4).",
+ "label": "``RunNode.sync_status`` flows through to the resulting ``TreeNode``.",
"file_type": "rationale",
- "source_file": "src/exlab_wizard/ui/pages/main.py",
- "source_location": "L528",
- "community": 205,
- "norm_label": "render the right metadata / problems pane (redesign \u00a74.4).",
- "id": "pages_main_rationale_528"
+ "source_file": "tests/unit/ui/test_components.py",
+ "source_location": "L787",
+ "community": 326,
+ "norm_label": "``runnode.sync_status`` flows through to the resulting ``treenode``.",
+ "id": "ui_test_components_rationale_787"
},
{
- "label": "Render the centre-pane file list (Redesign \u00a74.3). Each row carries a right-",
+ "label": "Any non-``cleaned`` sync status (or unset) maps to the local-icon URL.",
"file_type": "rationale",
- "source_file": "src/exlab_wizard/ui/pages/main.py",
- "source_location": "L490",
- "community": 196,
- "norm_label": "render the centre-pane file list (redesign \u00a74.3). each row carries a right-",
- "id": "pages_main_rationale_490"
+ "source_file": "tests/unit/ui/test_components.py",
+ "source_location": "L829",
+ "community": 391,
+ "norm_label": "any non-``cleaned`` sync status (or unset) maps to the local-icon url.",
+ "id": "ui_test_components_rationale_829"
},
{
- "label": "Render the right Metadata / Problems pane (Redesign \u00a74.4).",
+ "label": "Equipment and project rows render without the per-row sync icon.",
"file_type": "rationale",
- "source_file": "src/exlab_wizard/ui/pages/main.py",
- "source_location": "L529",
- "community": 205,
- "norm_label": "render the right metadata / problems pane (redesign \u00a74.4).",
- "id": "pages_main_rationale_529"
+ "source_file": "tests/unit/ui/test_components.py",
+ "source_location": "L855",
+ "community": 327,
+ "norm_label": "equipment and project rows render without the per-row sync icon.",
+ "id": "ui_test_components_rationale_855"
},
{
- "label": "Return the framed-pane card-shell style fragment (pure; testable). Always e",
+ "label": "An ``EquipmentNode(relay=True)`` builds a ``received_equipment`` row.",
"file_type": "rationale",
- "source_file": "src/exlab_wizard/ui/components/framed_pane.py",
- "source_location": "L66",
- "community": 70,
- "norm_label": "return the framed-pane card-shell style fragment (pure; testable). always e",
- "id": "components_framed_pane_rationale_66"
+ "source_file": "tests/unit/ui/test_components.py",
+ "source_location": "L877",
+ "community": 327,
+ "norm_label": "an ``equipmentnode(relay=true)`` builds a ``received_equipment`` row.",
+ "id": "ui_test_components_rationale_877"
},
{
- "label": "Return the title-strip style fragment (pure; testable).",
+ "label": "Each row carries a ``testid_kind`` matching the Playwright contract.",
"file_type": "rationale",
- "source_file": "src/exlab_wizard/ui/components/framed_pane.py",
- "source_location": "L75",
- "community": 70,
- "norm_label": "return the title-strip style fragment (pure; testable).",
- "id": "components_framed_pane_rationale_75"
+ "source_file": "tests/unit/ui/test_components.py",
+ "source_location": "L891",
+ "community": 395,
+ "norm_label": "each row carries a ``testid_kind`` matching the playwright contract.",
+ "id": "ui_test_components_rationale_891"
},
{
- "label": "Return the scrollable-body style fragment (pure; testable).",
+ "label": "The ``default-header`` template carries the per-row anchors the Playwright f",
"file_type": "rationale",
- "source_file": "src/exlab_wizard/ui/components/framed_pane.py",
- "source_location": "L80",
- "community": 70,
- "norm_label": "return the scrollable-body style fragment (pure; testable).",
- "id": "components_framed_pane_rationale_80"
+ "source_file": "tests/unit/ui/test_components.py",
+ "source_location": "L915",
+ "community": 390,
+ "norm_label": "the ``default-header`` template carries the per-row anchors the playwright f",
+ "id": "ui_test_components_rationale_915"
},
{
- "label": "Context manager rendering a framed, titled pane; yields the body element. U",
+ "label": "Each factory emits a dict (or NiceGUI element) without crashing. The factor",
"file_type": "rationale",
- "source_file": "src/exlab_wizard/ui/components/framed_pane.py",
- "source_location": "L92",
- "community": 70,
- "norm_label": "context manager rendering a framed, titled pane; yields the body element. u",
- "id": "components_framed_pane_rationale_92"
+ "source_file": "tests/unit/ui/test_components.py",
+ "source_location": "L955",
+ "community": 392,
+ "norm_label": "each factory emits a dict (or nicegui element) without crashing. the factor",
+ "id": "ui_test_components_rationale_955"
},
{
- "label": "Key/value row whose value is a sync-status icon (tolerant). Mirrors :func:`",
+ "label": "The pre-commit ``no-direct-ui-notify`` rule is mirrored in tests. Any call",
"file_type": "rationale",
- "source_file": "src/exlab_wizard/ui/components/metadata_pane.py",
- "source_location": "L124",
- "community": 170,
- "norm_label": "key/value row whose value is a sync-status icon (tolerant). mirrors :func:`",
- "id": "components_metadata_pane_rationale_124"
+ "source_file": "tests/unit/ui/test_components.py",
+ "source_location": "L988",
+ "community": 389,
+ "norm_label": "the pre-commit ``no-direct-ui-notify`` rule is mirrored in tests. any call",
+ "id": "ui_test_components_rationale_988"
},
{
- "label": "Render the SELECTED FILE / SELECTED FOLDER sub-card (Phase 4, \u00a74.4). Append",
+ "label": "Welcome card defaults autostart to on (Frontend \u00a73.1.3).",
"file_type": "rationale",
- "source_file": "src/exlab_wizard/ui/components/metadata_pane.py",
- "source_location": "L142",
- "community": 170,
- "norm_label": "render the selected file / selected folder sub-card (phase 4, \u00a74.4). append",
- "id": "components_metadata_pane_rationale_142"
+ "source_file": "tests/unit/ui/test_pages.py",
+ "source_location": "L26",
+ "community": 452,
+ "norm_label": "welcome card defaults autostart to on (frontend \u00a73.1.3).",
+ "id": "ui_test_pages_rationale_26"
},
{
- "label": "uvicorn ``--factory`` entrypoint.",
+ "label": "Three bullets describing what the app does. Redesign decision 2: bullets re",
"file_type": "rationale",
- "source_file": "tests/e2e/_test_app.py",
- "source_location": "L928",
- "community": 146,
- "norm_label": "uvicorn ``--factory`` entrypoint.",
- "id": "e2e_test_app_rationale_928"
+ "source_file": "tests/unit/ui/test_pages.py",
+ "source_location": "L37",
+ "community": 442,
+ "norm_label": "three bullets describing what the app does. redesign decision 2: bullets re",
+ "id": "ui_test_pages_rationale_37"
},
{
- "label": "Define every ``@ui.page(...)`` handler. Called from :func:`mount_ui`.",
+ "label": "Active default-on, Archived default-off, Test runs default-on.",
"file_type": "rationale",
- "source_file": "src/exlab_wizard/ui/mount.py",
- "source_location": "L90",
- "community": 177,
- "norm_label": "define every ``@ui.page(...)`` handler. called from :func:`mount_ui`.",
- "id": "ui_mount_rationale_90"
+ "source_file": "tests/unit/ui/test_pages.py",
+ "source_location": "L57",
+ "community": 455,
+ "norm_label": "active default-on, archived default-off, test runs default-on.",
+ "id": "ui_test_pages_rationale_57"
},
{
- "label": "Build the LIMS-password Save / Clear handlers for the settings dialog. Cred",
+ "label": "Translation preserves the chip state.",
"file_type": "rationale",
- "source_file": "src/exlab_wizard/ui/mount.py",
- "source_location": "L464",
- "community": 45,
- "norm_label": "build the lims-password save / clear handlers for the settings dialog. cred",
- "id": "ui_mount_rationale_464"
+ "source_file": "tests/unit/ui/test_pages.py",
+ "source_location": "L67",
+ "community": 441,
+ "norm_label": "translation preserves the chip state.",
+ "id": "ui_test_pages_rationale_67"
},
{
- "label": "Run the rclone NAS-remote probe and adapt it for the inline panel. rclone.c",
+ "label": "Setup-incomplete banner uses ``--color-warning`` per Frontend \u00a73.1.4.",
"file_type": "rationale",
- "source_file": "src/exlab_wizard/ui/mount.py",
- "source_location": "L518",
- "community": 237,
- "norm_label": "run the rclone nas-remote probe and adapt it for the inline panel. rclone.c",
- "id": "ui_mount_rationale_518"
+ "source_file": "tests/unit/ui/test_pages.py",
+ "source_location": "L87",
+ "community": 446,
+ "norm_label": "setup-incomplete banner uses ``--color-warning`` per frontend \u00a73.1.4.",
+ "id": "ui_test_pages_rationale_87"
},
{
- "label": "Write ``updated`` via ``deps.save_config`` and hot-reload components. Retur",
+ "label": "The rclone-remote next-action points the operator at the setup docs.",
"file_type": "rationale",
- "source_file": "src/exlab_wizard/ui/mount.py",
- "source_location": "L574",
- "community": 193,
- "norm_label": "write ``updated`` via ``deps.save_config`` and hot-reload components. retur",
- "id": "ui_mount_rationale_574"
+ "source_file": "tests/unit/ui/test_pages.py",
+ "source_location": "L95",
+ "community": 397,
+ "norm_label": "the rclone-remote next-action points the operator at the setup docs.",
+ "id": "ui_test_pages_rationale_95"
},
{
- "label": "Create the staging directory when the operator saved a non-empty path. ``st",
+ "label": "Frontend \u00a74 mandates seven steps in a fixed order.",
"file_type": "rationale",
- "source_file": "src/exlab_wizard/ui/mount.py",
- "source_location": "L606",
- "community": 193,
- "norm_label": "create the staging directory when the operator saved a non-empty path. ``st",
- "id": "ui_mount_rationale_606"
+ "source_file": "tests/unit/ui/test_pages.py",
+ "source_location": "L110",
+ "community": 445,
+ "norm_label": "frontend \u00a74 mandates seven steps in a fixed order.",
+ "id": "ui_test_pages_rationale_110"
},
{
- "label": "Push ``updated`` into the running components (no tray relaunch). Wraps :fun",
+ "label": "Step 1 requires a LIMS short_id.",
"file_type": "rationale",
- "source_file": "src/exlab_wizard/ui/mount.py",
- "source_location": "L632",
- "community": 193,
- "norm_label": "push ``updated`` into the running components (no tray relaunch). wraps :fun",
- "id": "ui_mount_rationale_632"
+ "source_file": "tests/unit/ui/test_pages.py",
+ "source_location": "L118",
+ "community": 448,
+ "norm_label": "step 1 requires a lims short_id.",
+ "id": "ui_test_pages_rationale_118"
},
{
- "label": "True when nas-mode equipment exist but the ``nas:`` remote is unusable. rcl",
+ "label": "Pre-flight: less than 100 MB free aborts (Frontend \u00a710.5.4).",
"file_type": "rationale",
- "source_file": "src/exlab_wizard/ui/mount.py",
- "source_location": "L649",
- "community": 204,
- "norm_label": "true when nas-mode equipment exist but the ``nas:`` remote is unusable. rcl",
- "id": "ui_mount_rationale_649"
+ "source_file": "tests/unit/ui/test_pages.py",
+ "source_location": "L149",
+ "community": 444,
+ "norm_label": "pre-flight: less than 100 mb free aborts (frontend \u00a710.5.4).",
+ "id": "ui_test_pages_rationale_149"
},
{
- "label": "Return True when the \u00a74.9 setup state is ``READY``. Delegates to :func:`api",
+ "label": "Test-mode primary button uses ``warning`` color (Frontend \u00a75.3).",
"file_type": "rationale",
- "source_file": "src/exlab_wizard/ui/mount.py",
- "source_location": "L673",
- "community": 45,
- "norm_label": "return true when the \u00a74.9 setup state is ``ready``. delegates to :func:`api",
- "id": "ui_mount_rationale_673"
+ "source_file": "tests/unit/ui/test_pages.py",
+ "source_location": "L197",
+ "community": 450,
+ "norm_label": "test-mode primary button uses ``warning`` color (frontend \u00a75.3).",
+ "id": "ui_test_pages_rationale_197"
},
{
- "label": "Register / unregister platform autostart; return the real post-op state. Re",
+ "label": "Test runs add a TestRuns/ folder and TestRun_ leaf prefix.",
"file_type": "rationale",
- "source_file": "src/exlab_wizard/ui/mount.py",
- "source_location": "L705",
- "community": 149,
- "norm_label": "register / unregister platform autostart; return the real post-op state. re",
- "id": "ui_mount_rationale_705"
+ "source_file": "tests/unit/ui/test_pages.py",
+ "source_location": "L211",
+ "community": 440,
+ "norm_label": "test runs add a testruns/ folder and testrun_ leaf prefix.",
+ "id": "ui_test_pages_rationale_211"
},
{
- "label": "Return the (session_id, session) pairs the Operations panel shows. The \u00a79.5",
+ "label": "Settings has nine sections (Frontend \u00a77.2 + \u00a77.9 operators). The ``operator",
"file_type": "rationale",
- "source_file": "src/exlab_wizard/ui/mount.py",
- "source_location": "L764",
- "community": 45,
- "norm_label": "return the (session_id, session) pairs the operations panel shows. the \u00a79.5",
- "id": "ui_mount_rationale_764"
+ "source_file": "tests/unit/ui/test_pages.py",
+ "source_location": "L256",
+ "community": 439,
+ "norm_label": "settings has nine sections (frontend \u00a77.2 + \u00a77.9 operators). the ``operator",
+ "id": "ui_test_pages_rationale_256"
},
{
- "label": "Return ``(panel_count, input_required, active)`` operation counts. ``panel_",
+ "label": "First incomplete section is the first per canonical order.",
"file_type": "rationale",
- "source_file": "src/exlab_wizard/ui/mount.py",
- "source_location": "L781",
- "community": 45,
- "norm_label": "return ``(panel_count, input_required, active)`` operation counts. ``panel_",
- "id": "ui_mount_rationale_781"
+ "source_file": "tests/unit/ui/test_pages.py",
+ "source_location": "L269",
+ "community": 443,
+ "norm_label": "first incomplete section is the first per canonical order.",
+ "id": "ui_test_pages_rationale_269"
},
{
- "label": "Return the \u00a74.9.3 next-action string for the banner subline. Unlike :func:`",
+ "label": "The dynamic NAS-remote section is auto-selected when it's the gate.",
"file_type": "rationale",
- "source_file": "src/exlab_wizard/ui/mount.py",
- "source_location": "L798",
- "community": 45,
- "norm_label": "return the \u00a74.9.3 next-action string for the banner subline. unlike :func:`",
- "id": "ui_mount_rationale_798"
+ "source_file": "tests/unit/ui/test_pages.py",
+ "source_location": "L276",
+ "community": 396,
+ "norm_label": "the dynamic nas-remote section is auto-selected when it's the gate.",
+ "id": "ui_test_pages_rationale_276"
},
{
- "label": "Compose the ``?selected=...&right_pane=...`` query string for /main. Omits",
+ "label": "Hard chip default-on; Soft default-off.",
"file_type": "rationale",
- "source_file": "src/exlab_wizard/ui/mount.py",
- "source_location": "L828",
- "community": 302,
- "norm_label": "compose the ``?selected=...&right_pane=...`` query string for /main. omits",
- "id": "ui_mount_rationale_828"
+ "source_file": "tests/unit/ui/test_pages.py",
+ "source_location": "L337",
+ "community": 328,
+ "norm_label": "hard chip default-on; soft default-off.",
+ "id": "ui_test_pages_rationale_337"
},
{
- "label": "Map a selected node id to ``(kind, is_received)``. Mirrors the shape classi",
+ "label": "Frontend \u00a711.5: minimum 10 chars after trim.",
"file_type": "rationale",
- "source_file": "src/exlab_wizard/ui/mount.py",
- "source_location": "L861",
- "community": 303,
- "norm_label": "map a selected node id to ``(kind, is_received)``. mirrors the shape classi",
- "id": "ui_mount_rationale_861"
+ "source_file": "tests/unit/ui/test_pages.py",
+ "source_location": "L365",
+ "community": 447,
+ "norm_label": "frontend \u00a711.5: minimum 10 chars after trim.",
+ "id": "ui_test_pages_rationale_365"
},
{
- "label": "Build the metadata-pane payload for the selected node, by kind. Returns ``{",
+ "label": "Frontend \u00a711.5: maximum 500 chars after trim.",
"file_type": "rationale",
- "source_file": "src/exlab_wizard/ui/mount.py",
- "source_location": "L905",
- "community": 176,
- "norm_label": "build the metadata-pane payload for the selected node, by kind. returns ``{",
- "id": "ui_mount_rationale_905"
+ "source_file": "tests/unit/ui/test_pages.py",
+ "source_location": "L373",
+ "community": 451,
+ "norm_label": "frontend \u00a711.5: maximum 500 chars after trim.",
+ "id": "ui_test_pages_rationale_373"
},
{
- "label": "Project equipment-config fields into the owned-equipment payload.",
+ "label": "Whitespace is trimmed before length check.",
"file_type": "rationale",
- "source_file": "src/exlab_wizard/ui/mount.py",
- "source_location": "L932",
- "community": 176,
- "norm_label": "project equipment-config fields into the owned-equipment payload.",
- "id": "ui_mount_rationale_932"
+ "source_file": "tests/unit/ui/test_pages.py",
+ "source_location": "L388",
+ "community": 449,
+ "norm_label": "whitespace is trimmed before length check.",
+ "id": "ui_test_pages_rationale_388"
},
{
- "label": "Return the relay-equipment payload (label, source_host).",
+ "label": "Within 10 of the maximum -> near-limit warning.",
"file_type": "rationale",
- "source_file": "src/exlab_wizard/ui/mount.py",
- "source_location": "L947",
- "community": 176,
- "norm_label": "return the relay-equipment payload (label, source_host).",
- "id": "ui_mount_rationale_947"
+ "source_file": "tests/unit/ui/test_pages.py",
+ "source_location": "L395",
+ "community": 453,
+ "norm_label": "within 10 of the maximum -> near-limit warning.",
+ "id": "ui_test_pages_rationale_395"
},
{
- "label": "Derive a project payload from the on-disk project directory. ``node_id`` is",
+ "label": "Five problem-class chips per Backend \u00a78.1.1-\u00a78.1.5.",
"file_type": "rationale",
- "source_file": "src/exlab_wizard/ui/mount.py",
- "source_location": "L961",
- "community": 226,
- "norm_label": "derive a project payload from the on-disk project directory. ``node_id`` is",
- "id": "ui_mount_rationale_961"
+ "source_file": "tests/unit/ui/test_pages.py",
+ "source_location": "L419",
+ "community": 454,
+ "norm_label": "five problem-class chips per backend \u00a78.1.1-\u00a78.1.5.",
+ "id": "ui_test_pages_rationale_419"
},
{
- "label": "Count immediate child directories of ``parent`` whose names start with ``pre",
- "file_type": "rationale",
- "source_file": "src/exlab_wizard/ui/mount.py",
- "source_location": "L995",
- "community": 226,
- "norm_label": "count immediate child directories of ``parent`` whose names start with ``pre",
- "id": "ui_mount_rationale_995"
+ "label": "_FakeUI",
+ "file_type": "code",
+ "source_file": "tests/unit/ui/test_mount.py",
+ "source_location": "L99",
+ "community": 0,
+ "norm_label": "_fakeui",
+ "id": "ui_test_mount_fakeui"
},
{
- "label": "Decode the run's creation.json into the metadata-pane payload. Returns ``{}",
- "file_type": "rationale",
- "source_file": "src/exlab_wizard/ui/mount.py",
- "source_location": "L1010",
- "community": 192,
- "norm_label": "decode the run's creation.json into the metadata-pane payload. returns ``{}",
- "id": "ui_mount_rationale_1010"
+ "label": ".__init__()",
+ "file_type": "code",
+ "source_file": "tests/unit/ui/test_mount.py",
+ "source_location": "L102",
+ "community": 0,
+ "norm_label": ".__init__()",
+ "id": "ui_test_mount_fakeui_init"
},
{
- "label": "Resolve a centre-list selection (file or folder) to a render payload. Phase",
- "file_type": "rationale",
- "source_file": "src/exlab_wizard/ui/mount.py",
- "source_location": "L1053",
- "community": 192,
- "norm_label": "resolve a centre-list selection (file or folder) to a render payload. phase",
- "id": "ui_mount_rationale_1053"
+ "label": ".card()",
+ "file_type": "code",
+ "source_file": "tests/unit/ui/test_mount.py",
+ "source_location": "L108",
+ "community": 0,
+ "norm_label": ".card()",
+ "id": "ui_test_mount_fakeui_card"
},
{
- "label": "Aggregate a one-level folder scan into a folder-card payload (OQ-4/B). Phas",
- "file_type": "rationale",
- "source_file": "src/exlab_wizard/ui/mount.py",
- "source_location": "L1102",
- "community": 192,
- "norm_label": "aggregate a one-level folder scan into a folder-card payload (oq-4/b). phas",
- "id": "ui_mount_rationale_1102"
+ "label": ".label()",
+ "file_type": "code",
+ "source_file": "tests/unit/ui/test_mount.py",
+ "source_location": "L112",
+ "community": 0,
+ "norm_label": ".label()",
+ "id": "ui_test_mount_fakeui_label"
},
{
- "label": "Mount / rebind the per-tab FolderFeed and return current entries. Uses ``ap",
- "file_type": "rationale",
- "source_file": "src/exlab_wizard/ui/mount.py",
- "source_location": "L1143",
- "community": 203,
- "norm_label": "mount / rebind the per-tab folderfeed and return current entries. uses ``ap",
- "id": "ui_mount_rationale_1143"
+ "label": "_BoomUI",
+ "file_type": "code",
+ "source_file": "tests/unit/ui/test_mount.py",
+ "source_location": "L117",
+ "community": 0,
+ "norm_label": "_boomui",
+ "id": "ui_test_mount_boomui"
},
{
- "label": "FolderFeed fetch hook. Skips when the tree just walked. Runs the synchronou",
- "file_type": "rationale",
- "source_file": "src/exlab_wizard/ui/mount.py",
- "source_location": "L1204",
- "community": 203,
- "norm_label": "folderfeed fetch hook. skips when the tree just walked. runs the synchronou",
- "id": "ui_mount_rationale_1204"
+ "label": ".card()",
+ "file_type": "code",
+ "source_file": "tests/unit/ui/test_mount.py",
+ "source_location": "L120",
+ "community": 0,
+ "norm_label": ".card()",
+ "id": "ui_test_mount_boomui_card"
},
{
- "label": "Force a fresh single-folder scan and prime the feed payload (OQ-1/A). The F",
- "file_type": "rationale",
- "source_file": "src/exlab_wizard/ui/mount.py",
- "source_location": "L1228",
- "community": 68,
- "norm_label": "force a fresh single-folder scan and prime the feed payload (oq-1/a). the f",
- "id": "ui_mount_rationale_1228"
+ "label": ".label()",
+ "file_type": "code",
+ "source_file": "tests/unit/ui/test_mount.py",
+ "source_location": "L124",
+ "community": 0,
+ "norm_label": ".label()",
+ "id": "ui_test_mount_boomui_label"
},
{
- "label": "Dispatch a per-run context action to its backend surface. Mirrors :func:`ap",
- "file_type": "rationale",
- "source_file": "src/exlab_wizard/ui/mount.py",
- "source_location": "L1268",
- "community": 68,
- "norm_label": "dispatch a per-run context action to its backend surface. mirrors :func:`ap",
- "id": "ui_mount_rationale_1268"
+ "label": "test_staging_state_when_staging_root_missing()",
+ "file_type": "code",
+ "source_file": "tests/unit/ui/test_mount.py",
+ "source_location": "L460",
+ "community": 324,
+ "norm_label": "test_staging_state_when_staging_root_missing()",
+ "id": "ui_test_mount_test_staging_state_when_staging_root_missing"
},
{
- "label": "Bulk-clear every staged run whose sync job is verified. Wired from the file",
- "file_type": "rationale",
- "source_file": "src/exlab_wizard/ui/mount.py",
- "source_location": "L1326",
- "community": 168,
- "norm_label": "bulk-clear every staged run whose sync job is verified. wired from the file",
- "id": "ui_mount_rationale_1326"
+ "label": "test_staging_state_none_when_no_config()",
+ "file_type": "code",
+ "source_file": "tests/unit/ui/test_mount.py",
+ "source_location": "L475",
+ "community": 2,
+ "norm_label": "test_staging_state_none_when_no_config()",
+ "id": "ui_test_mount_test_staging_state_none_when_no_config"
},
{
- "label": "Handle ``Open in OS`` / ``Copy path`` / ``Keep local`` file actions.",
- "file_type": "rationale",
- "source_file": "src/exlab_wizard/ui/mount.py",
- "source_location": "L1371",
- "community": 168,
- "norm_label": "handle ``open in os`` / ``copy path`` / ``keep local`` file actions.",
- "id": "ui_mount_rationale_1371"
+ "label": "test_staging_state_returns_empty_rows_on_query_failure()",
+ "file_type": "code",
+ "source_file": "tests/unit/ui/test_mount.py",
+ "source_location": "L479",
+ "community": 2,
+ "norm_label": "test_staging_state_returns_empty_rows_on_query_failure()",
+ "id": "ui_test_mount_test_staging_state_returns_empty_rows_on_query_failure"
},
{
- "label": "Flip a file's ``keep_local`` flag via the orchestrator's writer. Operator-f",
- "file_type": "rationale",
- "source_file": "src/exlab_wizard/ui/mount.py",
- "source_location": "L1410",
- "community": 68,
- "norm_label": "flip a file's ``keep_local`` flag via the orchestrator's writer. operator-f",
- "id": "ui_mount_rationale_1410"
+ "label": "test_render_unavailable_renders_headline_and_subline()",
+ "file_type": "code",
+ "source_file": "tests/unit/ui/test_mount.py",
+ "source_location": "L671",
+ "community": 2,
+ "norm_label": "test_render_unavailable_renders_headline_and_subline()",
+ "id": "ui_test_mount_test_render_unavailable_renders_headline_and_subline"
},
{
- "label": "Launch the host OS's default opener for ``path``. Returns False on platform",
+ "label": "test_render_unavailable_swallows_failure()",
+ "file_type": "code",
+ "source_file": "tests/unit/ui/test_mount.py",
+ "source_location": "L678",
+ "community": 2,
+ "norm_label": "test_render_unavailable_swallows_failure()",
+ "id": "ui_test_mount_test_render_unavailable_swallows_failure"
+ },
+ {
+ "label": "_drain_background()",
+ "file_type": "code",
+ "source_file": "tests/unit/ui/test_mount.py",
+ "source_location": "L1701",
+ "community": 50,
+ "norm_label": "_drain_background()",
+ "id": "ui_test_mount_drain_background"
+ },
+ {
+ "label": "test_bulk_clear_verified_clears_verified_rows()",
+ "file_type": "code",
+ "source_file": "tests/unit/ui/test_mount.py",
+ "source_location": "L1787",
+ "community": 14,
+ "norm_label": "test_bulk_clear_verified_clears_verified_rows()",
+ "id": "ui_test_mount_test_bulk_clear_verified_clears_verified_rows"
+ },
+ {
+ "label": "test_bulk_clear_verified_no_config_toasts_and_returns()",
+ "file_type": "code",
+ "source_file": "tests/unit/ui/test_mount.py",
+ "source_location": "L1816",
+ "community": 86,
+ "norm_label": "test_bulk_clear_verified_no_config_toasts_and_returns()",
+ "id": "ui_test_mount_test_bulk_clear_verified_no_config_toasts_and_returns"
+ },
+ {
+ "label": "test_bulk_clear_verified_logs_helper_exception()",
+ "file_type": "code",
+ "source_file": "tests/unit/ui/test_mount.py",
+ "source_location": "L1823",
+ "community": 125,
+ "norm_label": "test_bulk_clear_verified_logs_helper_exception()",
+ "id": "ui_test_mount_test_bulk_clear_verified_logs_helper_exception"
+ },
+ {
+ "label": "test_bulk_clear_verified_no_verified_rows_toasts()",
+ "file_type": "code",
+ "source_file": "tests/unit/ui/test_mount.py",
+ "source_location": "L2934",
+ "community": 351,
+ "norm_label": "test_bulk_clear_verified_no_verified_rows_toasts()",
+ "id": "ui_test_mount_test_bulk_clear_verified_no_verified_rows_toasts"
+ },
+ {
+ "label": "test_build_staging_state_query_failure_returns_empty_rows()",
+ "file_type": "code",
+ "source_file": "tests/unit/ui/test_mount.py",
+ "source_location": "L3014",
+ "community": 181,
+ "norm_label": "test_build_staging_state_query_failure_returns_empty_rows()",
+ "id": "ui_test_mount_test_build_staging_state_query_failure_returns_empty_rows"
+ },
+ {
+ "label": "A ``ui`` whose element factories raise -- exercises render except paths.",
"file_type": "rationale",
- "source_file": "src/exlab_wizard/ui/mount.py",
- "source_location": "L1453",
- "community": 175,
- "norm_label": "launch the host os's default opener for ``path``. returns false on platform",
- "id": "ui_mount_rationale_1453"
+ "source_file": "tests/unit/ui/test_mount.py",
+ "source_location": "L118",
+ "community": 0,
+ "norm_label": "a ``ui`` whose element factories raise -- exercises render except paths.",
+ "id": "ui_test_mount_rationale_118"
},
{
- "label": "Build the Operations-panel rows from the live session store (T3). Uses the",
+ "label": "Duck-typed CreationController for the create-flow helpers.",
"file_type": "rationale",
- "source_file": "src/exlab_wizard/ui/mount.py",
- "source_location": "L1481",
- "community": 57,
- "norm_label": "build the operations-panel rows from the live session store (t3). uses the",
- "id": "ui_mount_rationale_1481"
+ "source_file": "tests/unit/ui/test_mount.py",
+ "source_location": "L130",
+ "community": 60,
+ "norm_label": "duck-typed creationcontroller for the create-flow helpers.",
+ "id": "ui_test_mount_rationale_130"
},
{
- "label": "Open the in-flight Operations panel (Frontend \u00a79.5). Builds a fresh snapsho",
+ "label": "Live-LIMS branch with the keyring password absent -> not ready.",
"file_type": "rationale",
- "source_file": "src/exlab_wizard/ui/mount.py",
- "source_location": "L1493",
- "community": 57,
- "norm_label": "open the in-flight operations panel (frontend \u00a79.5). builds a fresh snapsho",
- "id": "ui_mount_rationale_1493"
+ "source_file": "tests/unit/ui/test_mount.py",
+ "source_location": "L185",
+ "community": 2,
+ "norm_label": "live-lims branch with the keyring password absent -> not ready.",
+ "id": "ui_test_mount_rationale_185"
},
{
- "label": "Show a lightweight details/\"log\" dialog for one in-flight operation. The \u00a79",
+ "label": "A nas-mode device whose ``nas.remote`` is unset blocks ready.",
"file_type": "rationale",
- "source_file": "src/exlab_wizard/ui/mount.py",
- "source_location": "L1517",
- "community": 175,
- "norm_label": "show a lightweight details/\"log\" dialog for one in-flight operation. the \u00a79",
- "id": "ui_mount_rationale_1517"
+ "source_file": "tests/unit/ui/test_mount.py",
+ "source_location": "L213",
+ "community": 2,
+ "norm_label": "a nas-mode device whose ``nas.remote`` is unset blocks ready.",
+ "id": "ui_test_mount_rationale_213"
},
{
- "label": "Resume a suspended session by re-opening its \u00a79.1 input dialog (T5). Reads",
+ "label": "A configured nas remote absent from rclone.conf blocks ready.",
"file_type": "rationale",
- "source_file": "src/exlab_wizard/ui/mount.py",
- "source_location": "L1551",
- "community": 154,
- "norm_label": "resume a suspended session by re-opening its \u00a79.1 input dialog (t5). reads",
- "id": "ui_mount_rationale_1551"
+ "source_file": "tests/unit/ui/test_mount.py",
+ "source_location": "L223",
+ "community": 2,
+ "norm_label": "a configured nas remote absent from rclone.conf blocks ready.",
+ "id": "ui_test_mount_rationale_223"
},
{
- "label": "Open the \u00a79.1 escalation dialog; Submit resumes, Cancel confirms (T5). Subm",
+ "label": "Regression: LIMS satisfied via the offline catalogue (no keyring password) m",
"file_type": "rationale",
- "source_file": "src/exlab_wizard/ui/mount.py",
- "source_location": "L1583",
- "community": 154,
- "norm_label": "open the \u00a79.1 escalation dialog; submit resumes, cancel confirms (t5). subm",
- "id": "ui_mount_rationale_1583"
+ "source_file": "tests/unit/ui/test_mount.py",
+ "source_location": "L234",
+ "community": 2,
+ "norm_label": "regression: lims satisfied via the offline catalogue (no keyring password) m",
+ "id": "ui_test_mount_rationale_234"
},
{
- "label": "Resolve the controller off ``deps`` and open the \u00a79.4 cancel dialog.",
+ "label": "Redesign \u00a73.1: the orchestrator pipeline is unconditional.",
"file_type": "rationale",
- "source_file": "src/exlab_wizard/ui/mount.py",
- "source_location": "L1621",
- "community": 57,
- "norm_label": "resolve the controller off ``deps`` and open the \u00a79.4 cancel dialog.",
- "id": "ui_mount_rationale_1621"
+ "source_file": "tests/unit/ui/test_mount.py",
+ "source_location": "L271",
+ "community": 2,
+ "norm_label": "redesign \u00a73.1: the orchestrator pipeline is unconditional.",
+ "id": "ui_test_mount_rationale_271"
},
{
- "label": "Cancel an in-flight session via the \u00a79.4 Discard / Keep dialog (T4). The op",
+ "label": "Real Config with one nas-mode equipment. ``offline_catalogue`` swaps the li",
"file_type": "rationale",
- "source_file": "src/exlab_wizard/ui/mount.py",
- "source_location": "L1630",
- "community": 57,
- "norm_label": "cancel an in-flight session via the \u00a79.4 discard / keep dialog (t4). the op",
- "id": "ui_mount_rationale_1630"
+ "source_file": "tests/unit/ui/test_mount.py",
+ "source_location": "L349",
+ "community": 2,
+ "norm_label": "real config with one nas-mode equipment. ``offline_catalogue`` swaps the li",
+ "id": "ui_test_mount_rationale_349"
},
{
- "label": "Open a NiceGUI dialog showing the run's sync-queue job state. The operator-",
+ "label": "Redesign \u00a73.1: orchestrator pipeline is always on, but a missing staging_roo",
"file_type": "rationale",
- "source_file": "src/exlab_wizard/ui/mount.py",
- "source_location": "L1671",
- "community": 119,
- "norm_label": "open a nicegui dialog showing the run's sync-queue job state. the operator-",
- "id": "ui_mount_rationale_1671"
+ "source_file": "tests/unit/ui/test_mount.py",
+ "source_location": "L461",
+ "community": 324,
+ "norm_label": "redesign \u00a73.1: orchestrator pipeline is always on, but a missing staging_roo",
+ "id": "ui_test_mount_rationale_461"
},
{
- "label": "Return the settings sections the operator still needs to fill in. Mirrors a",
+ "label": "Minimal stand-in for the NiceGUI ``ui`` object's navigate surface.",
"file_type": "rationale",
- "source_file": "src/exlab_wizard/ui/mount.py",
- "source_location": "L1719",
- "community": 204,
- "norm_label": "return the settings sections the operator still needs to fill in. mirrors a",
- "id": "ui_mount_rationale_1719"
+ "source_file": "tests/unit/ui/test_mount.py",
+ "source_location": "L508",
+ "community": 60,
+ "norm_label": "minimal stand-in for the nicegui ``ui`` object's navigate surface.",
+ "id": "ui_test_mount_rationale_508"
},
{
- "label": "Return the configured templates directory, or ``None``.",
+ "label": "A successful save persists, then hot-reloads the live components. The old b",
"file_type": "rationale",
- "source_file": "src/exlab_wizard/ui/mount.py",
- "source_location": "L1752",
- "community": 194,
- "norm_label": "return the configured templates directory, or ``none``.",
- "id": "ui_mount_rationale_1752"
+ "source_file": "tests/unit/ui/test_mount.py",
+ "source_location": "L516",
+ "community": 324,
+ "norm_label": "a successful save persists, then hot-reloads the live components. the old b",
+ "id": "ui_test_mount_rationale_516"
},
{
- "label": "List template directory names of ``template_type`` under templates_dir.",
+ "label": "Opt-in: a saved non-empty staging_root is created on save.",
"file_type": "rationale",
- "source_file": "src/exlab_wizard/ui/mount.py",
- "source_location": "L1760",
- "community": 194,
- "norm_label": "list template directory names of ``template_type`` under templates_dir.",
- "id": "ui_mount_rationale_1760"
+ "source_file": "tests/unit/ui/test_mount.py",
+ "source_location": "L593",
+ "community": 60,
+ "norm_label": "opt-in: a saved non-empty staging_root is created on save.",
+ "id": "ui_test_mount_rationale_593"
},
{
- "label": "Map each ``template_type`` template name to its parsed copier questions. Re",
+ "label": "Blank staging_root creates nothing -- the device is not a staging PC.",
"file_type": "rationale",
- "source_file": "src/exlab_wizard/ui/mount.py",
- "source_location": "L1777",
- "community": 69,
- "norm_label": "map each ``template_type`` template name to its parsed copier questions. re",
- "id": "ui_mount_rationale_1777"
+ "source_file": "tests/unit/ui/test_mount.py",
+ "source_location": "L608",
+ "community": 60,
+ "norm_label": "blank staging_root creates nothing -- the device is not a staging pc.",
+ "id": "ui_test_mount_rationale_608"
},
{
- "label": "Read the offline-catalogue projects (disconnected-workstation source). Read",
+ "label": "An ensure_dir failure warns but keeps the persisted config.",
"file_type": "rationale",
- "source_file": "src/exlab_wizard/ui/mount.py",
- "source_location": "L1810",
- "community": 119,
- "norm_label": "read the offline-catalogue projects (disconnected-workstation source). read",
- "id": "ui_mount_rationale_1810"
+ "source_file": "tests/unit/ui/test_mount.py",
+ "source_location": "L622",
+ "community": 60,
+ "norm_label": "an ensure_dir failure warns but keeps the persisted config.",
+ "id": "ui_test_mount_rationale_622"
},
{
- "label": "Return the LIMS projects backing the project wizard's picker. Tries the liv",
+ "label": "If the coordinator raises wholesale, the live config is still kept.",
"file_type": "rationale",
- "source_file": "src/exlab_wizard/ui/mount.py",
- "source_location": "L1844",
- "community": 266,
- "norm_label": "return the lims projects backing the project wizard's picker. tries the liv",
- "id": "ui_mount_rationale_1844"
+ "source_file": "tests/unit/ui/test_mount.py",
+ "source_location": "L649",
+ "community": 386,
+ "norm_label": "if the coordinator raises wholesale, the live config is still kept.",
+ "id": "ui_test_mount_rationale_649"
},
{
- "label": "Return the configured equipment IDs.",
+ "label": "Keyring-store stand-in that records the calls the handlers make.",
"file_type": "rationale",
- "source_file": "src/exlab_wizard/ui/mount.py",
- "source_location": "L1874",
- "community": 119,
- "norm_label": "return the configured equipment ids.",
- "id": "ui_mount_rationale_1874"
+ "source_file": "tests/unit/ui/test_mount.py",
+ "source_location": "L716",
+ "community": 0,
+ "norm_label": "keyring-store stand-in that records the calls the handlers make.",
+ "id": "ui_test_mount_rationale_716"
},
{
- "label": "Await a controller session's pipeline task and return the final handle. ``c",
+ "label": "A best-effort keyring build can fail; the handlers must not crash.",
"file_type": "rationale",
- "source_file": "src/exlab_wizard/ui/mount.py",
- "source_location": "L1882",
- "community": 100,
- "norm_label": "await a controller session's pipeline task and return the final handle. ``c",
- "id": "ui_mount_rationale_1882"
+ "source_file": "tests/unit/ui/test_mount.py",
+ "source_location": "L755",
+ "community": 2,
+ "norm_label": "a best-effort keyring build can fail; the handlers must not crash.",
+ "id": "ui_test_mount_rationale_755"
},
{
- "label": "Fold the controller's WS frames into the wizard's live phase bar (T2) and su",
+ "label": "A raising keyring backend surfaces a toast, not an unhandled crash.",
"file_type": "rationale",
- "source_file": "src/exlab_wizard/ui/mount.py",
- "source_location": "L1901",
- "community": 194,
- "norm_label": "fold the controller's ws frames into the wizard's live phase bar (t2) and su",
- "id": "ui_mount_rationale_1901"
+ "source_file": "tests/unit/ui/test_mount.py",
+ "source_location": "L764",
+ "community": 385,
+ "norm_label": "a raising keyring backend surfaces a toast, not an unhandled crash.",
+ "id": "ui_test_mount_rationale_764"
},
{
- "label": "Best-effort close of a NiceGUI dialog (no-op when ``None`` / test mode).",
+ "label": "Async ``list_projects`` stub for the live-LIMS picker path.",
"file_type": "rationale",
- "source_file": "src/exlab_wizard/ui/mount.py",
- "source_location": "L1944",
- "community": 194,
- "norm_label": "best-effort close of a nicegui dialog (no-op when ``none`` / test mode).",
- "id": "ui_mount_rationale_1944"
+ "source_file": "tests/unit/ui/test_mount.py",
+ "source_location": "L940",
+ "community": 0,
+ "norm_label": "async ``list_projects`` stub for the live-lims picker path.",
+ "id": "ui_test_mount_rationale_940"
},
{
- "label": "Build a ProjectCreateRequest from the wizard state and run it.",
+ "label": "Both empty -> empty string. One present -> single param.",
"file_type": "rationale",
- "source_file": "src/exlab_wizard/ui/mount.py",
- "source_location": "L1952",
- "community": 119,
- "norm_label": "build a projectcreaterequest from the wizard state and run it.",
- "id": "ui_mount_rationale_1952"
+ "source_file": "tests/unit/ui/test_mount.py",
+ "source_location": "L1186",
+ "community": 387,
+ "norm_label": "both empty -> empty string. one present -> single param.",
+ "id": "ui_test_mount_rationale_1186"
},
{
- "label": "Build a RunCreateRequest from the wizard state and run it.",
+ "label": "Project names with spaces / special chars survive the round trip.",
"file_type": "rationale",
- "source_file": "src/exlab_wizard/ui/mount.py",
- "source_location": "L1985",
- "community": 69,
- "norm_label": "build a runcreaterequest from the wizard state and run it.",
- "id": "ui_mount_rationale_1985"
+ "source_file": "tests/unit/ui/test_mount.py",
+ "source_location": "L1194",
+ "community": 80,
+ "norm_label": "project names with spaces / special chars survive the round trip.",
+ "id": "ui_test_mount_rationale_1194"
},
{
- "label": "Drive a create_* call to completion and toast the outcome. When ``wizard_st",
+ "label": "Phase 4 adds optional file / q / density params to the same URL model.",
"file_type": "rationale",
- "source_file": "src/exlab_wizard/ui/mount.py",
- "source_location": "L2026",
- "community": 100,
- "norm_label": "drive a create_* call to completion and toast the outcome. when ``wizard_st",
- "id": "ui_mount_rationale_2026"
+ "source_file": "tests/unit/ui/test_mount.py",
+ "source_location": "L1206",
+ "community": 504,
+ "norm_label": "phase 4 adds optional file / q / density params to the same url model.",
+ "id": "ui_test_mount_rationale_1206"
},
{
- "label": "Run the validator audit, swallowing failures to a WARN log.",
+ "label": "The Phase 4 params default empty and drop out of the URL entirely.",
"file_type": "rationale",
- "source_file": "src/exlab_wizard/ui/mount.py",
- "source_location": "L2069",
- "community": 100,
- "norm_label": "run the validator audit, swallowing failures to a warn log.",
- "id": "ui_mount_rationale_2069"
+ "source_file": "tests/unit/ui/test_mount.py",
+ "source_location": "L1215",
+ "community": 429,
+ "norm_label": "the phase 4 params default empty and drop out of the url entirely.",
+ "id": "ui_test_mount_rationale_1215"
},
{
- "label": "Return the absolute path to the bundled ``assets/`` directory. Resolves bot",
+ "label": "``file`` keeps '/' readable but encodes spaces; ``q`` encodes everything.",
"file_type": "rationale",
- "source_file": "src/exlab_wizard/ui/theme.py",
- "source_location": "L135",
- "community": 177,
- "norm_label": "return the absolute path to the bundled ``assets/`` directory. resolves bot",
- "id": "ui_theme_rationale_135"
+ "source_file": "tests/unit/ui/test_mount.py",
+ "source_location": "L1220",
+ "community": 430,
+ "norm_label": "``file`` keeps '/' readable but encodes spaces; ``q`` encodes everything.",
+ "id": "ui_test_mount_rationale_1220"
},
{
- "label": "Mount the project's ``assets/`` directory at ``/assets``. Idempotent: a mod",
+ "label": "Equipment / project / run / received_equipment all classify correctly.",
"file_type": "rationale",
- "source_file": "src/exlab_wizard/ui/theme.py",
- "source_location": "L150",
- "community": 177,
- "norm_label": "mount the project's ``assets/`` directory at ``/assets``. idempotent: a mod",
- "id": "ui_theme_rationale_150"
+ "source_file": "tests/unit/ui/test_mount.py",
+ "source_location": "L1234",
+ "community": 80,
+ "norm_label": "equipment / project / run / received_equipment all classify correctly.",
+ "id": "ui_test_mount_rationale_1234"
},
{
- "label": "Render the centre-pane file list. Pure render function. Double-clicking a f",
+ "label": "A node id whose root is not in the hierarchy returns ``(None, False)``. Gua",
"file_type": "rationale",
- "source_file": "src/exlab_wizard/ui/components/file_list.py",
- "source_location": "L173",
- "community": 195,
- "norm_label": "render the centre-pane file list. pure render function. double-clicking a f",
- "id": "components_file_list_rationale_173"
+ "source_file": "tests/unit/ui/test_mount.py",
+ "source_location": "L1255",
+ "community": 350,
+ "norm_label": "a node id whose root is not in the hierarchy returns ``(none, false)``. gua",
+ "id": "ui_test_mount_rationale_1255"
},
{
- "label": "Render the file-list column header row (Name / Size / Modified / Status).",
+ "label": "An equipment node payload pulls fields from config.equipment[id].",
"file_type": "rationale",
- "source_file": "src/exlab_wizard/ui/components/file_list.py",
- "source_location": "L215",
- "community": 195,
- "norm_label": "render the file-list column header row (name / size / modified / status).",
- "id": "components_file_list_rationale_215"
+ "source_file": "tests/unit/ui/test_mount.py",
+ "source_location": "L1277",
+ "community": 80,
+ "norm_label": "an equipment node payload pulls fields from config.equipment[id].",
+ "id": "ui_test_mount_rationale_1277"
},
{
- "label": "Render the centre-pane file list (Redesign \u00a74.3). Each row carries a right-",
+ "label": "Asking for a node that isn't in config.equipment returns ``{}``.",
"file_type": "rationale",
- "source_file": "src/exlab_wizard/ui/pages/main.py",
- "source_location": "L485",
- "community": 196,
- "norm_label": "render the centre-pane file list (redesign \u00a74.3). each row carries a right-",
- "id": "pages_main_rationale_485"
+ "source_file": "tests/unit/ui/test_mount.py",
+ "source_location": "L1295",
+ "community": 80,
+ "norm_label": "asking for a node that isn't in config.equipment returns ``{}``.",
+ "id": "ui_test_mount_rationale_1295"
},
{
- "label": "Render the right Metadata / Problems pane (Redesign \u00a74.4).",
+ "label": "The project payload counts Run_* and TestRun_* directories.",
"file_type": "rationale",
- "source_file": "src/exlab_wizard/ui/pages/main.py",
- "source_location": "L524",
- "community": 205,
- "norm_label": "render the right metadata / problems pane (redesign \u00a74.4).",
- "id": "pages_main_rationale_524"
+ "source_file": "tests/unit/ui/test_mount.py",
+ "source_location": "L1302",
+ "community": 80,
+ "norm_label": "the project payload counts run_* and testrun_* directories.",
+ "id": "ui_test_mount_rationale_1302"
},
{
- "label": "uvicorn ``--factory`` entrypoint.",
+ "label": "The run payload decodes creation.json into the metadata fields.",
"file_type": "rationale",
- "source_file": "tests/e2e/_test_app.py",
- "source_location": "L910",
- "community": 146,
- "norm_label": "uvicorn ``--factory`` entrypoint.",
- "id": "e2e_test_app_rationale_910"
+ "source_file": "tests/unit/ui/test_mount.py",
+ "source_location": "L1321",
+ "community": 80,
+ "norm_label": "the run payload decodes creation.json into the metadata fields.",
+ "id": "ui_test_mount_rationale_1321"
},
{
- "label": "uvicorn ``--factory`` entrypoint.",
+ "label": "A run dir without a creation.json yields {path, name}, not crash.",
"file_type": "rationale",
- "source_file": "tests/e2e/_test_app.py",
- "source_location": "L899",
- "community": 146,
- "norm_label": "uvicorn ``--factory`` entrypoint.",
- "id": "e2e_test_app_rationale_899"
+ "source_file": "tests/unit/ui/test_mount.py",
+ "source_location": "L1366",
+ "community": 33,
+ "norm_label": "a run dir without a creation.json yields {path, name}, not crash.",
+ "id": "ui_test_mount_rationale_1366"
},
{
- "label": "uvicorn ``--factory`` entrypoint.",
+ "label": "The selected-node fields end up on MainPageState for the renderer.",
"file_type": "rationale",
- "source_file": "tests/e2e/_test_app.py",
- "source_location": "L896",
- "community": 146,
- "norm_label": "uvicorn ``--factory`` entrypoint.",
- "id": "e2e_test_app_rationale_896"
+ "source_file": "tests/unit/ui/test_mount.py",
+ "source_location": "L1375",
+ "community": 131,
+ "norm_label": "the selected-node fields end up on mainpagestate for the renderer.",
+ "id": "ui_test_mount_rationale_1375"
},
{
- "label": "RESUME \u2014 Main-window UI refresh (Phase 4 in progress)",
- "file_type": "document",
- "source_file": "RESUME.md",
- "source_location": "L1",
- "community": 230,
- "norm_label": "resume \u2014 main-window ui refresh (phase 4 in progress)",
- "id": "exlabwizard_resume_resume_main_window_ui_refresh_phase_4_in_progress"
+ "label": "Phase 4 selection / search / density fields reach MainPageState.",
+ "file_type": "rationale",
+ "source_file": "tests/unit/ui/test_mount.py",
+ "source_location": "L1391",
+ "community": 131,
+ "norm_label": "phase 4 selection / search / density fields reach mainpagestate.",
+ "id": "ui_test_mount_rationale_1391"
},
{
- "label": "A degraded folder scan (item_count=None / rollup=None) still renders.",
+ "label": "A clicked path is resolved from the in-memory feed into a file payload.",
"file_type": "rationale",
- "source_file": "tests/unit/ui/test_metadata_pane.py",
- "source_location": "L120",
- "community": 156,
- "norm_label": "a degraded folder scan (item_count=none / rollup=none) still renders.",
- "id": "ui_test_metadata_pane_rationale_120"
+ "source_file": "tests/unit/ui/test_mount.py",
+ "source_location": "L1412",
+ "community": 2,
+ "norm_label": "a clicked path is resolved from the in-memory feed into a file payload.",
+ "id": "ui_test_mount_rationale_1412"
},
{
- "label": "With no node selected, the sub-card sits beneath the empty-state hint.",
+ "label": "Empty path or a path matching no current entry resolves to None.",
"file_type": "rationale",
- "source_file": "tests/unit/ui/test_metadata_pane.py",
- "source_location": "L142",
- "community": 156,
- "norm_label": "with no node selected, the sub-card sits beneath the empty-state hint.",
- "id": "ui_test_metadata_pane_rationale_142"
+ "source_file": "tests/unit/ui/test_mount.py",
+ "source_location": "L1438",
+ "community": 125,
+ "norm_label": "empty path or a path matching no current entry resolves to none.",
+ "id": "ui_test_mount_rationale_1438"
},
{
- "label": "A selected run node's content stays; the sub-card appends below it.",
+ "label": "A tombstone (\"On NAS\") file has no on-disk copy, so size is None.",
"file_type": "rationale",
- "source_file": "tests/unit/ui/test_metadata_pane.py",
- "source_location": "L150",
- "community": 156,
- "norm_label": "a selected run node's content stays; the sub-card appends below it.",
- "id": "ui_test_metadata_pane_rationale_150"
+ "source_file": "tests/unit/ui/test_mount.py",
+ "source_location": "L1447",
+ "community": 14,
+ "norm_label": "a tombstone (\"on nas\") file has no on-disk copy, so size is none.",
+ "id": "ui_test_mount_rationale_1447"
+ },
+ {
+ "label": "A directory match delegates to the one-level folder aggregate scan.",
+ "file_type": "rationale",
+ "source_file": "tests/unit/ui/test_mount.py",
+ "source_location": "L1468",
+ "community": 33,
+ "norm_label": "a directory match delegates to the one-level folder aggregate scan.",
+ "id": "ui_test_mount_rationale_1468"
+ },
+ {
+ "label": "A scan failure yields item_count=None + neutral rollup, no raise.",
+ "file_type": "rationale",
+ "source_file": "tests/unit/ui/test_mount.py",
+ "source_location": "L1495",
+ "community": 107,
+ "norm_label": "a scan failure yields item_count=none + neutral rollup, no raise.",
+ "id": "ui_test_mount_rationale_1495"
+ },
+ {
+ "label": "A force-refresh writes the fresh scan onto the per-tab feed payload and reco",
+ "file_type": "rationale",
+ "source_file": "tests/unit/ui/test_mount.py",
+ "source_location": "L1523",
+ "community": 107,
+ "norm_label": "a force-refresh writes the fresh scan onto the per-tab feed payload and reco",
+ "id": "ui_test_mount_rationale_1523"
},
{
"label": "Nothing selected -> no scan, no write, no raise.",
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L1535",
- "community": 298,
+ "source_location": "L1541",
+ "community": 14,
"norm_label": "nothing selected -> no scan, no write, no raise.",
- "id": "ui_test_mount_rationale_1535"
+ "id": "ui_test_mount_rationale_1541"
},
{
"label": "A failed scan keeps the existing payload and warns.",
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L1543",
- "community": 77,
+ "source_location": "L1549",
+ "community": 50,
"norm_label": "a failed scan keeps the existing payload and warns.",
- "id": "ui_test_mount_rationale_1543"
+ "id": "ui_test_mount_rationale_1549"
},
{
"label": "An unknown sys.platform falls through to False so the toast can warn.",
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L1562",
- "community": 103,
+ "source_location": "L1568",
+ "community": 131,
"norm_label": "an unknown sys.platform falls through to false so the toast can warn.",
- "id": "ui_test_mount_rationale_1562"
+ "id": "ui_test_mount_rationale_1568"
},
{
"label": "macOS dispatches to the ``open`` command.",
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L1582",
- "community": 299,
+ "source_location": "L1588",
+ "community": 50,
"norm_label": "macos dispatches to the ``open`` command.",
- "id": "ui_test_mount_rationale_1582"
+ "id": "ui_test_mount_rationale_1588"
},
{
"label": "A subprocess failure is caught and surfaces False so the caller can toast.",
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L1591",
- "community": 269,
+ "source_location": "L1597",
+ "community": 125,
"norm_label": "a subprocess failure is caught and surfaces false so the caller can toast.",
- "id": "ui_test_mount_rationale_1591"
+ "id": "ui_test_mount_rationale_1597"
},
{
"label": "Minimal NiceGUI surface stand-in: clipboard + navigate.to + notify.",
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L1615",
- "community": 17,
+ "source_location": "L1621",
+ "community": 14,
"norm_label": "minimal nicegui surface stand-in: clipboard + navigate.to + notify.",
- "id": "ui_test_mount_rationale_1615"
+ "id": "ui_test_mount_rationale_1621"
},
{
"label": "``open_in_os`` action calls the platform opener and reports success.",
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L1640",
- "community": 17,
+ "source_location": "L1646",
+ "community": 14,
"norm_label": "``open_in_os`` action calls the platform opener and reports success.",
- "id": "ui_test_mount_rationale_1640"
+ "id": "ui_test_mount_rationale_1646"
},
{
"label": "When the opener returns False the action surfaces a negative toast.",
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L1652",
- "community": 297,
+ "source_location": "L1658",
+ "community": 131,
"norm_label": "when the opener returns false the action surfaces a negative toast.",
- "id": "ui_test_mount_rationale_1652"
+ "id": "ui_test_mount_rationale_1658"
},
{
"label": "``copy_path`` writes the entry path to the NiceGUI clipboard.",
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L1661",
- "community": 62,
+ "source_location": "L1667",
+ "community": 33,
"norm_label": "``copy_path`` writes the entry path to the nicegui clipboard.",
- "id": "ui_test_mount_rationale_1661"
+ "id": "ui_test_mount_rationale_1667"
},
{
"label": "An unknown action verb is logged + toasted without raising.",
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L1669",
- "community": 162,
+ "source_location": "L1675",
+ "community": 125,
"norm_label": "an unknown action verb is logged + toasted without raising.",
- "id": "ui_test_mount_rationale_1669"
+ "id": "ui_test_mount_rationale_1675"
},
{
"label": "An entry with no path triggers the early-return toast.",
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L1676",
- "community": 270,
+ "source_location": "L1682",
+ "community": 107,
"norm_label": "an entry with no path triggers the early-return toast.",
- "id": "ui_test_mount_rationale_1676"
+ "id": "ui_test_mount_rationale_1682"
},
{
"label": "Run any pending mount background tasks to completion.",
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L1696",
- "community": 77,
+ "source_location": "L1702",
+ "community": 50,
"norm_label": "run any pending mount background tasks to completion.",
- "id": "ui_test_mount_rationale_1696"
+ "id": "ui_test_mount_rationale_1702"
},
{
"label": "Force-sync routes to ``deps.nas_sync.enqueue`` with the run path.",
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L1711",
- "community": 78,
+ "source_location": "L1717",
+ "community": 86,
"norm_label": "force-sync routes to ``deps.nas_sync.enqueue`` with the run path.",
- "id": "ui_test_mount_rationale_1711"
+ "id": "ui_test_mount_rationale_1717"
},
{
"label": "Force-sync without a wired NAS sync surfaces a negative toast (no raise).",
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L1724",
- "community": 145,
+ "source_location": "L1730",
+ "community": 33,
"norm_label": "force-sync without a wired nas sync surfaces a negative toast (no raise).",
- "id": "ui_test_mount_rationale_1724"
+ "id": "ui_test_mount_rationale_1730"
},
{
"label": "The early-exit when config is missing keeps the action a no-op.",
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L1731",
- "community": 103,
+ "source_location": "L1737",
+ "community": 107,
"norm_label": "the early-exit when config is missing keeps the action a no-op.",
- "id": "ui_test_mount_rationale_1731"
+ "id": "ui_test_mount_rationale_1737"
},
{
"label": "``view_log`` dispatches to the dialog opener helper.",
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L1740",
- "community": 145,
+ "source_location": "L1746",
+ "community": 33,
"norm_label": "``view_log`` dispatches to the dialog opener helper.",
- "id": "ui_test_mount_rationale_1740"
+ "id": "ui_test_mount_rationale_1746"
},
{
"label": "An unknown action verb is reported but doesn't raise.",
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L1750",
- "community": 145,
+ "source_location": "L1756",
+ "community": 33,
"norm_label": "an unknown action verb is reported but doesn't raise.",
- "id": "ui_test_mount_rationale_1750"
+ "id": "ui_test_mount_rationale_1756"
},
{
"label": "``clear_verified`` deletes the run directory via the local helper.",
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L1759",
- "community": 17,
+ "source_location": "L1765",
+ "community": 14,
"norm_label": "``clear_verified`` deletes the run directory via the local helper.",
- "id": "ui_test_mount_rationale_1759"
+ "id": "ui_test_mount_rationale_1765"
},
{
"label": "The bulk action clears every ``synced`` row and toasts the count.",
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L1784",
- "community": 17,
+ "source_location": "L1790",
+ "community": 14,
"norm_label": "the bulk action clears every ``synced`` row and toasts the count.",
- "id": "ui_test_mount_rationale_1784"
+ "id": "ui_test_mount_rationale_1790"
},
{
"label": "The early-exit when config is missing produces a toast, no task.",
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L1811",
- "community": 55,
+ "source_location": "L1817",
+ "community": 86,
"norm_label": "the early-exit when config is missing produces a toast, no task.",
- "id": "ui_test_mount_rationale_1811"
+ "id": "ui_test_mount_rationale_1817"
},
{
"label": "An exception from the clear sweep is caught + toasted.",
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L1820",
- "community": 162,
+ "source_location": "L1826",
+ "community": 125,
"norm_label": "an exception from the clear sweep is caught + toasted.",
- "id": "ui_test_mount_rationale_1820"
+ "id": "ui_test_mount_rationale_1826"
},
{
"label": "Lightweight ``app`` stand-in carrying ``storage.tab``.",
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L1844",
+ "source_location": "L1850",
"community": 0,
"norm_label": "lightweight ``app`` stand-in carrying ``storage.tab``.",
- "id": "ui_test_mount_rationale_1844"
+ "id": "ui_test_mount_rationale_1850"
},
{
"label": "Without a selected node the feed isn't started and returns ``[]``.",
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L1855",
- "community": 62,
+ "source_location": "L1861",
+ "community": 33,
"norm_label": "without a selected node the feed isn't started and returns ``[]``.",
- "id": "ui_test_mount_rationale_1855"
+ "id": "ui_test_mount_rationale_1861"
},
{
"label": "The first call mounts a FolderFeed + RefreshCoordinator on tab storage.",
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L1865",
- "community": 77,
+ "source_location": "L1871",
+ "community": 158,
"norm_label": "the first call mounts a folderfeed + refreshcoordinator on tab storage.",
- "id": "ui_test_mount_rationale_1865"
+ "id": "ui_test_mount_rationale_1871"
},
{
"label": "When the feed's last_payload is set, entries are projected into FileListEntr",
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L1878",
- "community": 78,
+ "source_location": "L1884",
+ "community": 86,
"norm_label": "when the feed's last_payload is set, entries are projected into filelistentr",
- "id": "ui_test_mount_rationale_1878"
+ "id": "ui_test_mount_rationale_1884"
},
{
"label": "The fetch is a no-op when RefreshCoordinator just walked the tree.",
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L1920",
- "community": 78,
+ "source_location": "L1926",
+ "community": 157,
"norm_label": "the fetch is a no-op when refreshcoordinator just walked the tree.",
- "id": "ui_test_mount_rationale_1920"
+ "id": "ui_test_mount_rationale_1926"
},
{
"label": "A successful scan records the refresh on the coordinator.",
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L1937",
- "community": 163,
+ "source_location": "L1943",
+ "community": 106,
"norm_label": "a successful scan records the refresh on the coordinator.",
- "id": "ui_test_mount_rationale_1937"
+ "id": "ui_test_mount_rationale_1943"
},
{
"label": "A scan failure returns ``None`` so the feed keeps polling.",
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L1956",
- "community": 165,
+ "source_location": "L1962",
+ "community": 173,
"norm_label": "a scan failure returns ``none`` so the feed keeps polling.",
- "id": "ui_test_mount_rationale_1956"
- },
- {
- "label": "A run with no sync-queue job still renders a dialog without raising.",
- "file_type": "rationale",
- "source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L1972",
- "community": 165,
- "norm_label": "a run with no sync-queue job still renders a dialog without raising.",
- "id": "ui_test_mount_rationale_1972"
+ "id": "ui_test_mount_rationale_1962"
},
{
"label": "A run with a sync-queue job renders its state without raising.",
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L1981",
- "community": 62,
+ "source_location": "L1987",
+ "community": 158,
"norm_label": "a run with a sync-queue job renders its state without raising.",
- "id": "ui_test_mount_rationale_1981"
- },
- {
- "label": "Any exception raised by a per-kind builder is logged + swallowed.",
- "file_type": "rationale",
- "source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L2009",
- "community": 55,
- "norm_label": "any exception raised by a per-kind builder is logged + swallowed.",
- "id": "ui_test_mount_rationale_2009"
+ "id": "ui_test_mount_rationale_1987"
},
{
"label": "The relay payload pulls id+label from build_received_equipment_nodes.",
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L2022",
- "community": 62,
+ "source_location": "L2028",
+ "community": 158,
"norm_label": "the relay payload pulls id+label from build_received_equipment_nodes.",
- "id": "ui_test_mount_rationale_2022"
+ "id": "ui_test_mount_rationale_2028"
},
{
"label": "An unknown relay id still produces a payload (best-effort label).",
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L2038",
- "community": 77,
+ "source_location": "L2044",
+ "community": 158,
"norm_label": "an unknown relay id still produces a payload (best-effort label).",
- "id": "ui_test_mount_rationale_2038"
+ "id": "ui_test_mount_rationale_2044"
},
{
"label": "A node id without an equipment/project split returns ``{}``.",
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L2045",
- "community": 78,
+ "source_location": "L2051",
+ "community": 86,
"norm_label": "a node id without an equipment/project split returns ``{}``.",
- "id": "ui_test_mount_rationale_2045"
+ "id": "ui_test_mount_rationale_2051"
},
{
- "label": "Only directory children whose names start with the prefix are counted.",
+ "label": "A missing parent dir returns 0 (no FS pre-check needed).",
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L2056",
- "community": 296,
- "norm_label": "only directory children whose names start with the prefix are counted.",
- "id": "ui_test_mount_rationale_2056"
+ "source_location": "L2057",
+ "community": 86,
+ "norm_label": "a missing parent dir returns 0 (no fs pre-check needed).",
+ "id": "ui_test_mount_rationale_2057"
},
{
- "label": "A corrupt creation.json yields {path, name}, never crashes.",
+ "label": "Only directory children whose names start with the prefix are counted.",
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L2065",
- "community": 295,
- "norm_label": "a corrupt creation.json yields {path, name}, never crashes.",
- "id": "ui_test_mount_rationale_2065"
+ "source_location": "L2062",
+ "community": 69,
+ "norm_label": "only directory children whose names start with the prefix are counted.",
+ "id": "ui_test_mount_rationale_2062"
},
{
"label": "When nas_sync.enqueue raises, the background task swallows + toasts.",
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L2078",
- "community": 172,
+ "source_location": "L2084",
+ "community": 69,
"norm_label": "when nas_sync.enqueue raises, the background task swallows + toasts.",
- "id": "ui_test_mount_rationale_2078"
+ "id": "ui_test_mount_rationale_2084"
},
{
"label": "When the clear helper raises, the background task swallows + toasts.",
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L2094",
- "community": 172,
+ "source_location": "L2100",
+ "community": 106,
"norm_label": "when the clear helper raises, the background task swallows + toasts.",
- "id": "ui_test_mount_rationale_2094"
+ "id": "ui_test_mount_rationale_2100"
},
{
"label": "The 0-file path reports ``already cleared`` rather than ``cleared N``.",
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L2110",
- "community": 163,
+ "source_location": "L2116",
+ "community": 106,
"norm_label": "the 0-file path reports ``already cleared`` rather than ``cleared n``.",
- "id": "ui_test_mount_rationale_2110"
+ "id": "ui_test_mount_rationale_2116"
},
{
"label": "A clipboard write failure is caught and reported as a negative toast.",
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L2123",
- "community": 165,
+ "source_location": "L2129",
+ "community": 173,
"norm_label": "a clipboard write failure is caught and reported as a negative toast.",
- "id": "ui_test_mount_rationale_2123"
+ "id": "ui_test_mount_rationale_2129"
},
{
"label": "A fake ``ui`` whose factories build recording stand-ins. Unlike ``_UiSpy``",
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L2160",
+ "source_location": "L2166",
"community": 0,
"norm_label": "a fake ``ui`` whose factories build recording stand-ins. unlike ``_uispy``",
- "id": "ui_test_mount_rationale_2160"
+ "id": "ui_test_mount_rationale_2166"
},
{
"label": "No probe wired -> a failure result rather than a crash.",
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L2204",
- "community": 55,
+ "source_location": "L2210",
+ "community": 69,
"norm_label": "no probe wired -> a failure result rather than a crash.",
- "id": "ui_test_mount_rationale_2204"
+ "id": "ui_test_mount_rationale_2210"
},
{
"label": "A reachable probe maps ok/latency into a Connected result.",
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L2216",
- "community": 62,
+ "source_location": "L2222",
+ "community": 157,
"norm_label": "a reachable probe maps ok/latency into a connected result.",
- "id": "ui_test_mount_rationale_2216"
+ "id": "ui_test_mount_rationale_2222"
},
{
"label": "An async probe is awaited before its dict is mapped.",
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L2243",
- "community": 243,
+ "source_location": "L2249",
+ "community": 180,
"norm_label": "an async probe is awaited before its dict is mapped.",
- "id": "ui_test_mount_rationale_2243"
+ "id": "ui_test_mount_rationale_2249"
},
{
"label": "A half-wired install names its first-failing gate as the next action.",
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L2273",
- "community": 172,
+ "source_location": "L2279",
+ "community": 69,
"norm_label": "a half-wired install names its first-failing gate as the next action.",
- "id": "ui_test_mount_rationale_2273"
+ "id": "ui_test_mount_rationale_2279"
},
{
"label": "A fully-satisfied install has no outstanding next action.",
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L2280",
+ "source_location": "L2286",
"community": 325,
"norm_label": "a fully-satisfied install has no outstanding next action.",
- "id": "ui_test_mount_rationale_2280"
+ "id": "ui_test_mount_rationale_2286"
},
{
"label": "No sync-state writer wired -> negative toast, no task spawned.",
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L2304",
- "community": 163,
+ "source_location": "L2310",
+ "community": 106,
"norm_label": "no sync-state writer wired -> negative toast, no task spawned.",
- "id": "ui_test_mount_rationale_2304"
+ "id": "ui_test_mount_rationale_2310"
},
{
"label": "A path with no enclosing run root surfaces a negative toast.",
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L2313",
- "community": 326,
+ "source_location": "L2319",
+ "community": 14,
"norm_label": "a path with no enclosing run root surfaces a negative toast.",
- "id": "ui_test_mount_rationale_2313"
+ "id": "ui_test_mount_rationale_2319"
},
{
"label": "A resolvable file flips keep_local via the writer and fires on_done.",
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L2324",
- "community": 26,
+ "source_location": "L2330",
+ "community": 23,
"norm_label": "a resolvable file flips keep_local via the writer and fires on_done.",
- "id": "ui_test_mount_rationale_2324"
+ "id": "ui_test_mount_rationale_2330"
},
{
"label": "The ``keep_local`` action routes to ``_toggle_keep_local``.",
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L2379",
- "community": 17,
+ "source_location": "L2385",
+ "community": 14,
"norm_label": "the ``keep_local`` action routes to ``_toggle_keep_local``.",
- "id": "ui_test_mount_rationale_2379"
+ "id": "ui_test_mount_rationale_2385"
},
{
"label": "On win32 the helper calls ``os.startfile`` and reports success.",
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L2396",
- "community": 55,
+ "source_location": "L2402",
+ "community": 170,
"norm_label": "on win32 the helper calls ``os.startfile`` and reports success.",
- "id": "ui_test_mount_rationale_2396"
+ "id": "ui_test_mount_rationale_2402"
},
{
"label": "No controller -> a negative toast and no dialog open.",
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L2430",
- "community": 243,
+ "source_location": "L2436",
+ "community": 180,
"norm_label": "no controller -> a negative toast and no dialog open.",
- "id": "ui_test_mount_rationale_2430"
+ "id": "ui_test_mount_rationale_2436"
+ },
+ {
+ "label": "A wired controller builds the modal and opens it (no raise).",
+ "file_type": "rationale",
+ "source_file": "tests/unit/ui/test_mount.py",
+ "source_location": "L2442",
+ "community": 180,
+ "norm_label": "a wired controller builds the modal and opens it (no raise).",
+ "id": "ui_test_mount_rationale_2442"
},
{
"label": "The details dialog renders the session state plus pending/error lines.",
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L2457",
- "community": 327,
+ "source_location": "L2463",
+ "community": 300,
"norm_label": "the details dialog renders the session state plus pending/error lines.",
- "id": "ui_test_mount_rationale_2457"
+ "id": "ui_test_mount_rationale_2463"
},
{
"label": "A session not awaiting input cannot be resumed -> negative toast.",
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L2481",
- "community": 17,
+ "source_location": "L2487",
+ "community": 14,
"norm_label": "a session not awaiting input cannot be resumed -> negative toast.",
- "id": "ui_test_mount_rationale_2481"
+ "id": "ui_test_mount_rationale_2487"
},
{
"label": "A suspended session re-opens its escalation dialog with parked fields.",
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L2490",
- "community": 94,
+ "source_location": "L2496",
+ "community": 171,
"norm_label": "a suspended session re-opens its escalation dialog with parked fields.",
- "id": "ui_test_mount_rationale_2490"
+ "id": "ui_test_mount_rationale_2496"
},
{
"label": "The dialog's Submit handler calls ``controller.resume`` in the background.",
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L2519",
- "community": 26,
+ "source_location": "L2525",
+ "community": 23,
"norm_label": "the dialog's submit handler calls ``controller.resume`` in the background.",
- "id": "ui_test_mount_rationale_2519"
+ "id": "ui_test_mount_rationale_2525"
},
{
"label": "The dialog's Cancel handler routes through ``_cancel_session``.",
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L2551",
- "community": 125,
+ "source_location": "L2557",
+ "community": 23,
"norm_label": "the dialog's cancel handler routes through ``_cancel_session``.",
- "id": "ui_test_mount_rationale_2551"
+ "id": "ui_test_mount_rationale_2557"
},
{
"label": "The \u00a79.4 dialog's Discard button cancels with discard_files=True.",
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L2591",
- "community": 55,
+ "source_location": "L2597",
+ "community": 170,
"norm_label": "the \u00a79.4 dialog's discard button cancels with discard_files=true.",
- "id": "ui_test_mount_rationale_2591"
+ "id": "ui_test_mount_rationale_2597"
},
{
"label": "The Keep-files button cancels with discard_files=False.",
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L2610",
- "community": 26,
+ "source_location": "L2616",
+ "community": 171,
"norm_label": "the keep-files button cancels with discard_files=false.",
- "id": "ui_test_mount_rationale_2610"
+ "id": "ui_test_mount_rationale_2616"
},
{
"label": "A cancel failure is caught and toasted, not raised.",
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L2627",
- "community": 185,
+ "source_location": "L2633",
+ "community": 172,
"norm_label": "a cancel failure is caught and toasted, not raised.",
- "id": "ui_test_mount_rationale_2627"
+ "id": "ui_test_mount_rationale_2633"
},
{
"label": "The Back button closes the dialog without cancelling.",
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L2643",
- "community": 186,
+ "source_location": "L2649",
+ "community": 181,
"norm_label": "the back button closes the dialog without cancelling.",
- "id": "ui_test_mount_rationale_2643"
+ "id": "ui_test_mount_rationale_2649"
},
{
"label": "With a job row, the dialog renders each populated field line.",
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L2657",
- "community": 94,
+ "source_location": "L2663",
+ "community": 171,
"norm_label": "with a job row, the dialog renders each populated field line.",
- "id": "ui_test_mount_rationale_2657"
+ "id": "ui_test_mount_rationale_2663"
},
{
"label": "Without a job row the dialog shows the 'no sync job' line.",
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L2685",
- "community": 94,
+ "source_location": "L2691",
+ "community": 54,
"norm_label": "without a job row the dialog shows the 'no sync job' line.",
- "id": "ui_test_mount_rationale_2685"
+ "id": "ui_test_mount_rationale_2691"
},
{
"label": "No progress view on the wizard state -> the consumer returns at once.",
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L2701",
- "community": 26,
+ "source_location": "L2707",
+ "community": 23,
"norm_label": "no progress view on the wizard state -> the consumer returns at once.",
- "id": "ui_test_mount_rationale_2701"
+ "id": "ui_test_mount_rationale_2707"
},
{
"label": "An input_required frame opens the dialog; a done frame closes it.",
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L2712",
- "community": 26,
+ "source_location": "L2718",
+ "community": 50,
"norm_label": "an input_required frame opens the dialog; a done frame closes it.",
- "id": "ui_test_mount_rationale_2712"
+ "id": "ui_test_mount_rationale_2718"
},
{
"label": "A subscribe error is logged, not raised.",
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L2749",
- "community": 125,
+ "source_location": "L2755",
+ "community": 54,
"norm_label": "a subscribe error is logged, not raised.",
- "id": "ui_test_mount_rationale_2749"
+ "id": "ui_test_mount_rationale_2755"
},
{
"label": "Submitting a run with no template selected surfaces a negative toast.",
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L2789",
- "community": 55,
+ "source_location": "L2795",
+ "community": 170,
"norm_label": "submitting a run with no template selected surfaces a negative toast.",
- "id": "ui_test_mount_rationale_2789"
+ "id": "ui_test_mount_rationale_2795"
},
{
"label": "``_render_run_wizard`` wires templates/equipment into the run-wizard page.",
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L2800",
- "community": 185,
+ "source_location": "L2806",
+ "community": 172,
"norm_label": "``_render_run_wizard`` wires templates/equipment into the run-wizard page.",
- "id": "ui_test_mount_rationale_2800"
+ "id": "ui_test_mount_rationale_2806"
},
{
"label": "Non-EquipmentNode keys in the hierarchy are ignored; unknown root -> treated",
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L2829",
- "community": 94,
+ "source_location": "L2835",
+ "community": 54,
"norm_label": "non-equipmentnode keys in the hierarchy are ignored; unknown root -> treated",
- "id": "ui_test_mount_rationale_2829"
+ "id": "ui_test_mount_rationale_2835"
},
{
"label": "The received_equipment kind routes to the relay-equipment builder.",
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L2838",
- "community": 186,
+ "source_location": "L2844",
+ "community": 181,
"norm_label": "the received_equipment kind routes to the relay-equipment builder.",
- "id": "ui_test_mount_rationale_2838"
+ "id": "ui_test_mount_rationale_2844"
},
{
"label": "A matching equipment id projects its config fields into the payload.",
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L2854",
- "community": 94,
+ "source_location": "L2860",
+ "community": 54,
"norm_label": "a matching equipment id projects its config fields into the payload.",
- "id": "ui_test_mount_rationale_2854"
+ "id": "ui_test_mount_rationale_2860"
},
{
"label": "A schema_version mismatch (read_catalogue -> None) yields ``[]``.",
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L2876",
- "community": 242,
+ "source_location": "L2882",
+ "community": 54,
"norm_label": "a schema_version mismatch (read_catalogue -> none) yields ``[]``.",
- "id": "ui_test_mount_rationale_2876"
+ "id": "ui_test_mount_rationale_2882"
},
{
"label": "A raising ``app.storage.tab`` degrades to an in-memory feed (no tab).",
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L2888",
- "community": 77,
+ "source_location": "L2894",
+ "community": 50,
"norm_label": "a raising ``app.storage.tab`` degrades to an in-memory feed (no tab).",
- "id": "ui_test_mount_rationale_2888"
+ "id": "ui_test_mount_rationale_2894"
},
{
"label": "A raising evaluator degrades to 'not ready' (banner stays up).",
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L2910",
- "community": 26,
+ "source_location": "L2916",
+ "community": 50,
"norm_label": "a raising evaluator degrades to 'not ready' (banner stays up).",
- "id": "ui_test_mount_rationale_2910"
+ "id": "ui_test_mount_rationale_2916"
},
{
"label": "An equipment id absent from config yields ``{}``.",
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L2923",
- "community": 125,
+ "source_location": "L2929",
+ "community": 54,
"norm_label": "an equipment id absent from config yields ``{}``.",
- "id": "ui_test_mount_rationale_2923"
+ "id": "ui_test_mount_rationale_2929"
},
{
"label": "With no SYNCED rows the sweep clears nothing and toasts 'none'.",
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L2931",
- "community": 17,
+ "source_location": "L2937",
+ "community": 351,
"norm_label": "with no synced rows the sweep clears nothing and toasts 'none'.",
- "id": "ui_test_mount_rationale_2931"
+ "id": "ui_test_mount_rationale_2937"
},
{
"label": "A run root that can't yield a relative path surfaces a negative toast.",
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L2948",
- "community": 125,
+ "source_location": "L2954",
+ "community": 54,
"norm_label": "a run root that can't yield a relative path surfaces a negative toast.",
- "id": "ui_test_mount_rationale_2948"
+ "id": "ui_test_mount_rationale_2954"
},
{
"label": "A failing ``controller.resume`` is caught + toasted, not raised.",
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L2966",
- "community": 26,
+ "source_location": "L2972",
+ "community": 23,
"norm_label": "a failing ``controller.resume`` is caught + toasted, not raised.",
- "id": "ui_test_mount_rationale_2966"
+ "id": "ui_test_mount_rationale_2972"
},
{
"label": "An import/engine failure in the outer try yields ``{}``.",
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L2995",
- "community": 185,
+ "source_location": "L3001",
+ "community": 172,
"norm_label": "an import/engine failure in the outer try yields ``{}``.",
- "id": "ui_test_mount_rationale_2995"
+ "id": "ui_test_mount_rationale_3001"
},
{
"label": "A staging-query failure degrades to an empty dock, not a crash.",
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L3011",
- "community": 186,
+ "source_location": "L3017",
+ "community": 181,
"norm_label": "a staging-query failure degrades to an empty dock, not a crash.",
- "id": "ui_test_mount_rationale_3011"
+ "id": "ui_test_mount_rationale_3017"
},
{
- "label": "Dispatch a per-run context action to its backend surface. Mirrors :func:`ap",
+ "label": "staging_root is opt-in: a blank value finalizes cleanly (the field is option",
"file_type": "rationale",
- "source_file": "src/exlab_wizard/ui/mount.py",
- "source_location": "L1261",
- "community": 68,
- "norm_label": "dispatch a per-run context action to its backend surface. mirrors :func:`ap",
- "id": "ui_mount_rationale_1261"
+ "source_file": "tests/unit/ui/test_settings_page.py",
+ "source_location": "L91",
+ "community": 178,
+ "norm_label": "staging_root is opt-in: a blank value finalizes cleanly (the field is option",
+ "id": "ui_test_settings_page_rationale_91"
},
{
- "label": "Bulk-clear every staged run whose sync job is verified. Wired from the file",
+ "label": "A password already in the OS keyring opens the row in *Set*.",
"file_type": "rationale",
- "source_file": "src/exlab_wizard/ui/mount.py",
- "source_location": "L1319",
- "community": 168,
- "norm_label": "bulk-clear every staged run whose sync job is verified. wired from the file",
- "id": "ui_mount_rationale_1319"
+ "source_file": "tests/unit/ui/test_settings_page.py",
+ "source_location": "L119",
+ "community": 310,
+ "norm_label": "a password already in the os keyring opens the row in *set*.",
+ "id": "ui_test_settings_page_rationale_119"
},
{
- "label": "Handle ``Open in OS`` / ``Copy path`` / ``Keep local`` file actions.",
+ "label": "test_wizard_has_four_steps_without_signal_step()",
+ "file_type": "code",
+ "source_file": "tests/unit/ui/test_wizard_equipment.py",
+ "source_location": "L17",
+ "community": 242,
+ "norm_label": "test_wizard_has_four_steps_without_signal_step()",
+ "id": "ui_test_wizard_equipment_test_wizard_has_four_steps_without_signal_step"
+ },
+ {
+ "label": "Only a fully-``synced`` run rollup is clearable.",
"file_type": "rationale",
- "source_file": "src/exlab_wizard/ui/mount.py",
- "source_location": "L1364",
- "community": 168,
- "norm_label": "handle ``open in os`` / ``copy path`` / ``keep local`` file actions.",
- "id": "ui_mount_rationale_1364"
+ "source_file": "tests/unit/ui/test_staging_page.py",
+ "source_location": "L150",
+ "community": 41,
+ "norm_label": "only a fully-``synced`` run rollup is clearable.",
+ "id": "ui_test_staging_page_rationale_150"
},
{
- "label": "Flip a file's ``keep_local`` flag via the orchestrator's writer. Operator-f",
+ "label": "When NiceGUI isn't importable the renderer returns a debug dict. This is th",
"file_type": "rationale",
- "source_file": "src/exlab_wizard/ui/mount.py",
- "source_location": "L1403",
- "community": 68,
- "norm_label": "flip a file's ``keep_local`` flag via the orchestrator's writer. operator-f",
- "id": "ui_mount_rationale_1403"
+ "source_file": "tests/unit/ui/test_staging_page.py",
+ "source_location": "L175",
+ "community": 41,
+ "norm_label": "when nicegui isn't importable the renderer returns a debug dict. this is th",
+ "id": "ui_test_staging_page_rationale_175"
},
{
- "label": "Launch the host OS's default opener for ``path``. Returns False on platform",
+ "label": "An empty dock state initializes without errors.",
"file_type": "rationale",
- "source_file": "src/exlab_wizard/ui/mount.py",
- "source_location": "L1446",
- "community": 57,
- "norm_label": "launch the host os's default opener for ``path``. returns false on platform",
- "id": "ui_mount_rationale_1446"
+ "source_file": "tests/unit/ui/test_staging_page.py",
+ "source_location": "L192",
+ "community": 41,
+ "norm_label": "an empty dock state initializes without errors.",
+ "id": "ui_test_staging_page_rationale_192"
},
{
- "label": "Build the Operations-panel rows from the live session store (T3). Uses the",
+ "label": "The main-window refresh tokens are emitted into the :root block.",
"file_type": "rationale",
- "source_file": "src/exlab_wizard/ui/mount.py",
- "source_location": "L1474",
- "community": 57,
- "norm_label": "build the operations-panel rows from the live session store (t3). uses the",
- "id": "ui_mount_rationale_1474"
+ "source_file": "tests/unit/ui/test_theme.py",
+ "source_location": "L44",
+ "community": 70,
+ "norm_label": "the main-window refresh tokens are emitted into the :root block.",
+ "id": "ui_test_theme_rationale_44"
},
{
- "label": "Show a lightweight details/\"log\" dialog for one in-flight operation. The \u00a79",
+ "label": "Regression guard: every var(--\u2026) referenced by a UI component is emitted. T",
"file_type": "rationale",
- "source_file": "src/exlab_wizard/ui/mount.py",
- "source_location": "L1510",
- "community": 175,
- "norm_label": "show a lightweight details/\"log\" dialog for one in-flight operation. the \u00a79",
- "id": "ui_mount_rationale_1510"
+ "source_file": "tests/unit/ui/test_theme.py",
+ "source_location": "L57",
+ "community": 70,
+ "norm_label": "regression guard: every var(--...) referenced by a ui component is emitted. t",
+ "id": "ui_test_theme_rationale_57"
},
{
- "label": "Resume a suspended session by re-opening its \u00a79.1 input dialog (T5). Reads",
+ "label": "All shadows are navy-tinted (DESIGN.md \u00a704).",
"file_type": "rationale",
- "source_file": "src/exlab_wizard/ui/mount.py",
- "source_location": "L1544",
- "community": 154,
- "norm_label": "resume a suspended session by re-opening its \u00a79.1 input dialog (t5). reads",
- "id": "ui_mount_rationale_1544"
+ "source_file": "tests/unit/ui/test_theme.py",
+ "source_location": "L134",
+ "community": 70,
+ "norm_label": "all shadows are navy-tinted (design.md \u00a704).",
+ "id": "ui_test_theme_rationale_134"
},
{
- "label": "Open the \u00a79.1 escalation dialog; Submit resumes, Cancel confirms (T5). Subm",
+ "label": "The block opens with ``:root {`` per DESIGN.md \u00a707.",
"file_type": "rationale",
- "source_file": "src/exlab_wizard/ui/mount.py",
- "source_location": "L1576",
- "community": 154,
- "norm_label": "open the \u00a79.1 escalation dialog; submit resumes, cancel confirms (t5). subm",
- "id": "ui_mount_rationale_1576"
+ "source_file": "tests/unit/ui/test_theme.py",
+ "source_location": "L147",
+ "community": 70,
+ "norm_label": "the block opens with ``:root {`` per design.md \u00a707.",
+ "id": "ui_test_theme_rationale_147"
},
{
- "label": "Resolve the controller off ``deps`` and open the \u00a79.4 cancel dialog.",
+ "label": "A body / heading / mono reset block follows the ``:root {}``.",
"file_type": "rationale",
- "source_file": "src/exlab_wizard/ui/mount.py",
- "source_location": "L1614",
- "community": 57,
- "norm_label": "resolve the controller off ``deps`` and open the \u00a79.4 cancel dialog.",
- "id": "ui_mount_rationale_1614"
+ "source_file": "tests/unit/ui/test_theme.py",
+ "source_location": "L154",
+ "community": 70,
+ "norm_label": "a body / heading / mono reset block follows the ``:root {}``.",
+ "id": "ui_test_theme_rationale_154"
},
{
- "label": "Cancel an in-flight session via the \u00a79.4 Discard / Keep dialog (T4). The op",
+ "label": "In source layout, the resolver returns ``/assets/``.",
"file_type": "rationale",
- "source_file": "src/exlab_wizard/ui/mount.py",
- "source_location": "L1623",
- "community": 57,
- "norm_label": "cancel an in-flight session via the \u00a79.4 discard / keep dialog (t4). the op",
- "id": "ui_mount_rationale_1623"
+ "source_file": "tests/unit/ui/test_theme.py",
+ "source_location": "L163",
+ "community": 70,
+ "norm_label": "in source layout, the resolver returns ``/assets/``.",
+ "id": "ui_test_theme_rationale_163"
},
{
- "label": "Open a NiceGUI dialog showing the run's sync-queue job state. The operator-",
+ "label": "Sanity: running without --test leaves the env var unset and writes no test confi",
"file_type": "rationale",
- "source_file": "src/exlab_wizard/ui/mount.py",
- "source_location": "L1664",
- "community": 68,
- "norm_label": "open a nicegui dialog showing the run's sync-queue job state. the operator-",
- "id": "ui_mount_rationale_1664"
+ "source_file": "tests/unit/tray/test_main.py",
+ "source_location": "L556",
+ "community": 9,
+ "norm_label": "sanity: running without --test leaves the env var unset and writes no test confi",
+ "id": "tray_test_main_rationale_556"
},
{
- "label": "Return the settings sections the operator still needs to fill in. Mirrors a",
+ "label": "A cancel with ``discard_files=True`` deletes the partial directory.",
"file_type": "rationale",
- "source_file": "src/exlab_wizard/ui/mount.py",
- "source_location": "L1712",
+ "source_file": "tests/integration/controller/test_creation_flow.py",
+ "source_location": "L496",
+ "community": 415,
+ "norm_label": "a cancel with ``discard_files=true`` deletes the partial directory.",
+ "id": "controller_test_creation_flow_rationale_496"
+ },
+ {
+ "label": "A cancel with ``discard_files=False`` leaves the partial directory.",
+ "file_type": "rationale",
+ "source_file": "tests/integration/controller/test_creation_flow.py",
+ "source_location": "L534",
+ "community": 410,
+ "norm_label": "a cancel with ``discard_files=false`` leaves the partial directory.",
+ "id": "controller_test_creation_flow_rationale_534"
+ },
+ {
+ "label": "A rendered file containing ```` must trip the post-validate gate.",
+ "file_type": "rationale",
+ "source_file": "tests/integration/controller/test_creation_flow.py",
+ "source_location": "L558",
+ "community": 141,
+ "norm_label": "a rendered file containing ```` must trip the post-validate gate.",
+ "id": "controller_test_creation_flow_rationale_558"
+ },
+ {
+ "label": "T1 (\u00a7C1): the production ``ReadmeGenerator`` -- injected by ``tray.dependenc",
+ "file_type": "rationale",
+ "source_file": "tests/integration/controller/test_creation_flow.py",
+ "source_location": "L688",
+ "community": 403,
+ "norm_label": "t1 (\u00a7c1): the production ``readmegenerator`` -- injected by ``tray.dependenc",
+ "id": "controller_test_creation_flow_rationale_688"
+ },
+ {
+ "label": "A template-required README field missing from ``readme_extra`` must trigger",
+ "file_type": "rationale",
+ "source_file": "tests/integration/controller/test_creation_flow.py",
+ "source_location": "L764",
+ "community": 409,
+ "norm_label": "a template-required readme field missing from ``readme_extra`` must trigger",
+ "id": "controller_test_creation_flow_rationale_764"
+ },
+ {
+ "label": "When ``readme_extra`` supplies a non-empty value for a required field the va",
+ "file_type": "rationale",
+ "source_file": "tests/integration/controller/test_creation_flow.py",
+ "source_location": "L800",
+ "community": 141,
+ "norm_label": "when ``readme_extra`` supplies a non-empty value for a required field the va",
+ "id": "controller_test_creation_flow_rationale_800"
+ },
+ {
+ "label": "When the operator cancels the input-required prompt (host returns ``aborted=",
+ "file_type": "rationale",
+ "source_file": "tests/integration/controller/test_creation_flow.py",
+ "source_location": "L844",
+ "community": 405,
+ "norm_label": "when the operator cancels the input-required prompt (host returns ``aborted=",
+ "id": "controller_test_creation_flow_rationale_844"
+ },
+ {
+ "label": "``_cleanup`` swallows compose-path errors gracefully.",
+ "file_type": "rationale",
+ "source_file": "tests/integration/controller/test_creation_flow.py",
+ "source_location": "L902",
+ "community": 406,
+ "norm_label": "``_cleanup`` swallows compose-path errors gracefully.",
+ "id": "controller_test_creation_flow_rationale_902"
+ },
+ {
+ "label": "``_cleanup`` removes the destination directory when ``discard_files=True``.",
+ "file_type": "rationale",
+ "source_file": "tests/integration/controller/test_creation_flow.py",
+ "source_location": "L925",
+ "community": 408,
+ "norm_label": "``_cleanup`` removes the destination directory when ``discard_files=true``.",
+ "id": "controller_test_creation_flow_rationale_925"
+ },
+ {
+ "label": "A config.yaml-required README field missing from ``readme_extra`` must trigg",
+ "file_type": "rationale",
+ "source_file": "tests/integration/controller/test_creation_flow.py",
+ "source_location": "L942",
+ "community": 413,
+ "norm_label": "a config.yaml-required readme field missing from ``readme_extra`` must trigg",
+ "id": "controller_test_creation_flow_rationale_942"
+ },
+ {
+ "label": "A Copier render failure (e.g. dst exists) transitions the session to ``FAILE",
+ "file_type": "rationale",
+ "source_file": "tests/integration/controller/test_creation_flow.py",
+ "source_location": "L968",
+ "community": 412,
+ "norm_label": "a copier render failure (e.g. dst exists) transitions the session to ``faile",
+ "id": "controller_test_creation_flow_rationale_968"
+ },
+ {
+ "label": "The controller writes ``equipment.json`` under ``//.exlab-wiz",
+ "file_type": "rationale",
+ "source_file": "tests/integration/controller/test_creation_flow.py",
+ "source_location": "L996",
+ "community": 307,
+ "norm_label": "the controller writes ``equipment.json`` under ``//.exlab-wiz",
+ "id": "controller_test_creation_flow_rationale_996"
+ },
+ {
+ "label": "Generic exceptions are wrapped as ``internal_error``.",
+ "file_type": "rationale",
+ "source_file": "tests/integration/controller/test_creation_flow.py",
+ "source_location": "L1012",
+ "community": 333,
+ "norm_label": "generic exceptions are wrapped as ``internal_error``.",
+ "id": "controller_test_creation_flow_rationale_1012"
+ },
+ {
+ "label": "The best-effort log appender writes to the equipment cache dir.",
+ "file_type": "rationale",
+ "source_file": "tests/integration/controller/test_creation_flow.py",
+ "source_location": "L1019",
+ "community": 333,
+ "norm_label": "the best-effort log appender writes to the equipment cache dir.",
+ "id": "controller_test_creation_flow_rationale_1019"
+ },
+ {
+ "label": "A run inherits its LIMS identity from the parent project's creation.json (Ba",
+ "file_type": "rationale",
+ "source_file": "tests/integration/controller/test_creation_flow.py",
+ "source_location": "L1035",
+ "community": 307,
+ "norm_label": "a run inherits its lims identity from the parent project's creation.json (ba",
+ "id": "controller_test_creation_flow_rationale_1035"
+ },
+ {
+ "label": "If ``cancel`` is invoked on a session that has not yet started a pipeline ta",
+ "file_type": "rationale",
+ "source_file": "tests/integration/controller/test_creation_flow.py",
+ "source_location": "L1059",
+ "community": 411,
+ "norm_label": "if ``cancel`` is invoked on a session that has not yet started a pipeline ta",
+ "id": "controller_test_creation_flow_rationale_1059"
+ },
+ {
+ "label": "Resume against a session that has no resume queue raises.",
+ "file_type": "rationale",
+ "source_file": "tests/integration/controller/test_creation_flow.py",
+ "source_location": "L1079",
+ "community": 414,
+ "norm_label": "resume against a session that has no resume queue raises.",
+ "id": "controller_test_creation_flow_rationale_1079"
+ },
+ {
+ "label": "``subscribe`` initializes ``event_queue`` if the session opened with none (d",
+ "file_type": "rationale",
+ "source_file": "tests/integration/controller/test_creation_flow.py",
+ "source_location": "L1100",
+ "community": 404,
+ "norm_label": "``subscribe`` initializes ``event_queue`` if the session opened with none (d",
+ "id": "controller_test_creation_flow_rationale_1100"
+ },
+ {
+ "label": "When :class:`PluginHost` returns ``aborted=True``, the controller transition",
+ "file_type": "rationale",
+ "source_file": "tests/integration/controller/test_creation_flow.py",
+ "source_location": "L1124",
+ "community": 402,
+ "norm_label": "when :class:`pluginhost` returns ``aborted=true``, the controller transition",
+ "id": "controller_test_creation_flow_rationale_1124"
+ },
+ {
+ "label": "The ``_required_field_ids`` helper must skip non-dict entries in the templat",
+ "file_type": "rationale",
+ "source_file": "tests/integration/controller/test_creation_flow.py",
+ "source_location": "L1169",
+ "community": 407,
+ "norm_label": "the ``_required_field_ids`` helper must skip non-dict entries in the templat",
+ "id": "controller_test_creation_flow_rationale_1169"
+ },
+ {
+ "label": "A run whose parent project folder has no readable creation.json still produc",
+ "file_type": "rationale",
+ "source_file": "tests/integration/controller/test_creation_flow.py",
+ "source_location": "L1185",
+ "community": 141,
+ "norm_label": "a run whose parent project folder has no readable creation.json still produc",
+ "id": "controller_test_creation_flow_rationale_1185"
+ },
+ {
+ "label": "Identity step renders the ID + label inputs.",
+ "file_type": "rationale",
+ "source_file": "tests/e2e/test_flow_16_add_equipment.py",
+ "source_location": "L34",
+ "community": 186,
+ "norm_label": "identity step renders the id + label inputs.",
+ "id": "e2e_test_flow_16_add_equipment_rationale_34"
+ },
+ {
+ "label": "Paths step renders local + NAS root inputs.",
+ "file_type": "rationale",
+ "source_file": "tests/e2e/test_flow_16_add_equipment.py",
+ "source_location": "L45",
+ "community": 186,
+ "norm_label": "paths step renders local + nas root inputs.",
+ "id": "e2e_test_flow_16_add_equipment_rationale_45"
+ },
+ {
+ "label": "Sync mode step renders the nas/stage radio.",
+ "file_type": "rationale",
+ "source_file": "tests/e2e/test_flow_16_add_equipment.py",
+ "source_location": "L53",
+ "community": 186,
+ "norm_label": "sync mode step renders the nas/stage radio.",
+ "id": "e2e_test_flow_16_add_equipment_rationale_53"
+ },
+ {
+ "label": "Review step renders Confirm; clicking it fires the success label.",
+ "file_type": "rationale",
+ "source_file": "tests/e2e/test_flow_16_add_equipment.py",
+ "source_location": "L60",
+ "community": 186,
+ "norm_label": "review step renders confirm; clicking it fires the success label.",
+ "id": "e2e_test_flow_16_add_equipment_rationale_60"
+ },
+ {
+ "label": "An empty wizard: Next stays disabled until the identity step is valid, then",
+ "file_type": "rationale",
+ "source_file": "tests/e2e/test_flow_16_add_equipment.py",
+ "source_location": "L70",
+ "community": 186,
+ "norm_label": "an empty wizard: next stays disabled until the identity step is valid, then",
+ "id": "e2e_test_flow_16_add_equipment_rationale_70"
+ },
+ {
+ "label": "Navigate to ``url`` with one retry on transient NiceGUI failures.",
+ "file_type": "rationale",
+ "source_file": "tests/e2e/test_flow_25_production_main_wiring.py",
+ "source_location": "L22",
+ "community": 96,
+ "norm_label": "navigate to ``url`` with one retry on transient nicegui failures.",
+ "id": "e2e_test_flow_25_production_main_wiring_rationale_22"
+ },
+ {
+ "label": "The /main route mounts the redesigned renderer, not the legacy one. Asserts",
+ "file_type": "rationale",
+ "source_file": "tests/e2e/test_flow_25_production_main_wiring.py",
+ "source_location": "L41",
+ "community": 96,
+ "norm_label": "the /main route mounts the redesigned renderer, not the legacy one. asserts",
+ "id": "e2e_test_flow_25_production_main_wiring_rationale_41"
+ },
+ {
+ "label": "The Add Equipment toolbar button navigates to /wizard/equipment.",
+ "file_type": "rationale",
+ "source_file": "tests/e2e/test_flow_25_production_main_wiring.py",
+ "source_location": "L76",
+ "community": 96,
+ "norm_label": "the add equipment toolbar button navigates to /wizard/equipment.",
+ "id": "e2e_test_flow_25_production_main_wiring_rationale_76"
+ },
+ {
+ "label": "Clicking an equipment node updates the URL with ?selected=. Exercises o",
+ "file_type": "rationale",
+ "source_file": "tests/e2e/test_flow_25_production_main_wiring.py",
+ "source_location": "L83",
+ "community": 96,
+ "norm_label": "clicking an equipment node updates the url with ?selected=. exercises o",
+ "id": "e2e_test_flow_25_production_main_wiring_rationale_83"
+ },
+ {
+ "label": "Loading /main?selected=TEST_EQ1 directly renders the centre + right panes.",
+ "file_type": "rationale",
+ "source_file": "tests/e2e/test_flow_25_production_main_wiring.py",
+ "source_location": "L96",
+ "community": 96,
+ "norm_label": "loading /main?selected=test_eq1 directly renders the centre + right panes.",
+ "id": "e2e_test_flow_25_production_main_wiring_rationale_96"
+ },
+ {
+ "label": "Clicking a breadcrumb segment routes back through /main?selected=. The brea",
+ "file_type": "rationale",
+ "source_file": "tests/e2e/test_flow_25_production_main_wiring.py",
+ "source_location": "L106",
+ "community": 96,
+ "norm_label": "clicking a breadcrumb segment routes back through /main?selected=. the brea",
+ "id": "e2e_test_flow_25_production_main_wiring_rationale_106"
+ },
+ {
+ "label": "Clicking the right-pane toggle flips ?right_pane=collapsed in the URL.",
+ "file_type": "rationale",
+ "source_file": "tests/e2e/test_flow_25_production_main_wiring.py",
+ "source_location": "L122",
+ "community": 96,
+ "norm_label": "clicking the right-pane toggle flips ?right_pane=collapsed in the url.",
+ "id": "e2e_test_flow_25_production_main_wiring_rationale_122"
+ },
+ {
+ "label": "Owned-equipment Edit menu navigates to /settings with the equipment id. Rou",
+ "file_type": "rationale",
+ "source_file": "tests/e2e/test_flow_25_production_main_wiring.py",
+ "source_location": "L133",
+ "community": 96,
+ "norm_label": "owned-equipment edit menu navigates to /settings with the equipment id. rou",
+ "id": "e2e_test_flow_25_production_main_wiring_rationale_133"
+ },
+ {
+ "label": "Selecting a TEST_RELAY_* node disables the New Project/Run/Test-Run buttons.",
+ "file_type": "rationale",
+ "source_file": "tests/e2e/test_flow_25_production_main_wiring.py",
+ "source_location": "L148",
+ "community": 96,
+ "norm_label": "selecting a test_relay_* node disables the new project/run/test-run buttons.",
+ "id": "e2e_test_flow_25_production_main_wiring_rationale_148"
+ },
+ {
+ "label": "The footer Clear-verified button is wired to a callback. Asserts the button",
+ "file_type": "rationale",
+ "source_file": "tests/e2e/test_flow_25_production_main_wiring.py",
+ "source_location": "L173",
+ "community": 96,
+ "norm_label": "the footer clear-verified button is wired to a callback. asserts the button",
+ "id": "e2e_test_flow_25_production_main_wiring_rationale_173"
+ },
+ {
+ "label": "uvicorn ``--factory`` entrypoint.",
+ "file_type": "rationale",
+ "source_file": "tests/e2e/_test_app.py",
+ "source_location": "L931",
+ "community": 39,
+ "norm_label": "uvicorn ``--factory`` entrypoint.",
+ "id": "e2e_test_app_rationale_931"
+ },
+ {
+ "label": "Register the design tokens with NiceGUI / Quasar at app start. Imports Nice",
+ "file_type": "rationale",
+ "source_file": "src/exlab_wizard/ui/theme.py",
+ "source_location": "L113",
+ "community": 39,
+ "norm_label": "register the design tokens with nicegui / quasar at app start. imports nice",
+ "id": "ui_theme_rationale_113"
+ },
+ {
+ "label": "Return the absolute path to the bundled ``assets/`` directory. Resolves bot",
+ "file_type": "rationale",
+ "source_file": "src/exlab_wizard/ui/theme.py",
+ "source_location": "L142",
+ "community": 39,
+ "norm_label": "return the absolute path to the bundled ``assets/`` directory. resolves bot",
+ "id": "ui_theme_rationale_142"
+ },
+ {
+ "label": "Mount the project's ``assets/`` directory at ``/assets``. Idempotent: a mod",
+ "file_type": "rationale",
+ "source_file": "src/exlab_wizard/ui/theme.py",
+ "source_location": "L157",
+ "community": 39,
+ "norm_label": "mount the project's ``assets/`` directory at ``/assets``. idempotent: a mod",
+ "id": "ui_theme_rationale_157"
+ },
+ {
+ "label": "_bulk_clear_verified()",
+ "file_type": "code",
+ "source_file": "src/exlab_wizard/ui/mount.py",
+ "source_location": "L1330",
+ "community": 161,
+ "norm_label": "_bulk_clear_verified()",
+ "id": "ui_mount_bulk_clear_verified"
+ },
+ {
+ "label": "_build_staging_state()",
+ "file_type": "code",
+ "source_file": "src/exlab_wizard/ui/mount.py",
+ "source_location": "L2085",
+ "community": 77,
+ "norm_label": "_build_staging_state()",
+ "id": "ui_mount_build_staging_state"
+ },
+ {
+ "label": "_render_unavailable()",
+ "file_type": "code",
+ "source_file": "src/exlab_wizard/ui/mount.py",
+ "source_location": "L2117",
+ "community": 77,
+ "norm_label": "_render_unavailable()",
+ "id": "ui_mount_render_unavailable"
+ },
+ {
+ "label": "Schedule ``coro`` and keep a strong reference until it finishes.",
+ "file_type": "rationale",
+ "source_file": "src/exlab_wizard/ui/mount.py",
+ "source_location": "L59",
+ "community": 55,
+ "norm_label": "schedule ``coro`` and keep a strong reference until it finishes.",
+ "id": "ui_mount_rationale_59"
+ },
+ {
+ "label": "Register every wizard page on ``app`` and mount NiceGUI at ``/``. ``storage",
+ "file_type": "rationale",
+ "source_file": "src/exlab_wizard/ui/mount.py",
+ "source_location": "L67",
+ "community": 39,
+ "norm_label": "register every wizard page on ``app`` and mount nicegui at ``/``. ``storage",
+ "id": "ui_mount_rationale_67"
+ },
+ {
+ "label": "Define every ``@ui.page(...)`` handler. Called from :func:`mount_ui`.",
+ "file_type": "rationale",
+ "source_file": "src/exlab_wizard/ui/mount.py",
+ "source_location": "L95",
+ "community": 39,
+ "norm_label": "define every ``@ui.page(...)`` handler. called from :func:`mount_ui`.",
+ "id": "ui_mount_rationale_95"
+ },
+ {
+ "label": "Build the LIMS-password Save / Clear handlers for the settings dialog. Cred",
+ "file_type": "rationale",
+ "source_file": "src/exlab_wizard/ui/mount.py",
+ "source_location": "L469",
+ "community": 77,
+ "norm_label": "build the lims-password save / clear handlers for the settings dialog. cred",
+ "id": "ui_mount_rationale_469"
+ },
+ {
+ "label": "Run the rclone NAS-remote probe and adapt it for the inline panel. rclone.c",
+ "file_type": "rationale",
+ "source_file": "src/exlab_wizard/ui/mount.py",
+ "source_location": "L523",
+ "community": 228,
+ "norm_label": "run the rclone nas-remote probe and adapt it for the inline panel. rclone.c",
+ "id": "ui_mount_rationale_523"
+ },
+ {
+ "label": "Write ``updated`` via ``deps.save_config`` and hot-reload components. Retur",
+ "file_type": "rationale",
+ "source_file": "src/exlab_wizard/ui/mount.py",
+ "source_location": "L579",
+ "community": 77,
+ "norm_label": "write ``updated`` via ``deps.save_config`` and hot-reload components. retur",
+ "id": "ui_mount_rationale_579"
+ },
+ {
+ "label": "Create the staging directory when the operator saved a non-empty path. ``st",
+ "file_type": "rationale",
+ "source_file": "src/exlab_wizard/ui/mount.py",
+ "source_location": "L611",
+ "community": 77,
+ "norm_label": "create the staging directory when the operator saved a non-empty path. ``st",
+ "id": "ui_mount_rationale_611"
+ },
+ {
+ "label": "Push ``updated`` into the running components (no tray relaunch). Wraps :fun",
+ "file_type": "rationale",
+ "source_file": "src/exlab_wizard/ui/mount.py",
+ "source_location": "L637",
+ "community": 77,
+ "norm_label": "push ``updated`` into the running components (no tray relaunch). wraps :fun",
+ "id": "ui_mount_rationale_637"
+ },
+ {
+ "label": "True when nas-mode equipment exist but the ``nas:`` remote is unusable. rcl",
+ "file_type": "rationale",
+ "source_file": "src/exlab_wizard/ui/mount.py",
+ "source_location": "L654",
+ "community": 82,
+ "norm_label": "true when nas-mode equipment exist but the ``nas:`` remote is unusable. rcl",
+ "id": "ui_mount_rationale_654"
+ },
+ {
+ "label": "Return True when the \u00a74.9 setup state is ``READY``. Delegates to :func:`api",
+ "file_type": "rationale",
+ "source_file": "src/exlab_wizard/ui/mount.py",
+ "source_location": "L678",
+ "community": 52,
+ "norm_label": "return true when the \u00a74.9 setup state is ``ready``. delegates to :func:`api",
+ "id": "ui_mount_rationale_678"
+ },
+ {
+ "label": "Register / unregister platform autostart; return the real post-op state. Re",
+ "file_type": "rationale",
+ "source_file": "src/exlab_wizard/ui/mount.py",
+ "source_location": "L710",
+ "community": 153,
+ "norm_label": "register / unregister platform autostart; return the real post-op state. re",
+ "id": "ui_mount_rationale_710"
+ },
+ {
+ "label": "Return the (session_id, session) pairs the Operations panel shows. The \u00a79.5",
+ "file_type": "rationale",
+ "source_file": "src/exlab_wizard/ui/mount.py",
+ "source_location": "L769",
+ "community": 204,
+ "norm_label": "return the (session_id, session) pairs the operations panel shows. the \u00a79.5",
+ "id": "ui_mount_rationale_769"
+ },
+ {
+ "label": "Return ``(panel_count, input_required, active)`` operation counts. ``panel_",
+ "file_type": "rationale",
+ "source_file": "src/exlab_wizard/ui/mount.py",
+ "source_location": "L786",
+ "community": 204,
+ "norm_label": "return ``(panel_count, input_required, active)`` operation counts. ``panel_",
+ "id": "ui_mount_rationale_786"
+ },
+ {
+ "label": "Return the \u00a74.9.3 next-action string for the banner subline. Unlike :func:`",
+ "file_type": "rationale",
+ "source_file": "src/exlab_wizard/ui/mount.py",
+ "source_location": "L803",
+ "community": 52,
+ "norm_label": "return the \u00a74.9.3 next-action string for the banner subline. unlike :func:`",
+ "id": "ui_mount_rationale_803"
+ },
+ {
+ "label": "Compose the ``?selected=...&right_pane=...`` query string for /main. Omits",
+ "file_type": "rationale",
+ "source_file": "src/exlab_wizard/ui/mount.py",
+ "source_location": "L833",
+ "community": 209,
+ "norm_label": "compose the ``?selected=...&right_pane=...`` query string for /main. omits",
+ "id": "ui_mount_rationale_833"
+ },
+ {
+ "label": "Map a selected node id to ``(kind, is_received)``. Mirrors the shape classi",
+ "file_type": "rationale",
+ "source_file": "src/exlab_wizard/ui/mount.py",
+ "source_location": "L866",
+ "community": 209,
+ "norm_label": "map a selected node id to ``(kind, is_received)``. mirrors the shape classi",
+ "id": "ui_mount_rationale_866"
+ },
+ {
+ "label": "Build the metadata-pane payload for the selected node, by kind. Returns ``{",
+ "file_type": "rationale",
+ "source_file": "src/exlab_wizard/ui/mount.py",
+ "source_location": "L910",
+ "community": 151,
+ "norm_label": "build the metadata-pane payload for the selected node, by kind. returns ``{",
+ "id": "ui_mount_rationale_910"
+ },
+ {
+ "label": "Project equipment-config fields into the owned-equipment payload.",
+ "file_type": "rationale",
+ "source_file": "src/exlab_wizard/ui/mount.py",
+ "source_location": "L937",
+ "community": 151,
+ "norm_label": "project equipment-config fields into the owned-equipment payload.",
+ "id": "ui_mount_rationale_937"
+ },
+ {
+ "label": "Return the relay-equipment payload (label, source_host).",
+ "file_type": "rationale",
+ "source_file": "src/exlab_wizard/ui/mount.py",
+ "source_location": "L952",
+ "community": 151,
+ "norm_label": "return the relay-equipment payload (label, source_host).",
+ "id": "ui_mount_rationale_952"
+ },
+ {
+ "label": "Derive a project payload from the on-disk project directory. ``node_id`` is",
+ "file_type": "rationale",
+ "source_file": "src/exlab_wizard/ui/mount.py",
+ "source_location": "L966",
+ "community": 210,
+ "norm_label": "derive a project payload from the on-disk project directory. ``node_id`` is",
+ "id": "ui_mount_rationale_966"
+ },
+ {
+ "label": "Count immediate child directories of ``parent`` whose names start with ``pre",
+ "file_type": "rationale",
+ "source_file": "src/exlab_wizard/ui/mount.py",
+ "source_location": "L1000",
+ "community": 163,
+ "norm_label": "count immediate child directories of ``parent`` whose names start with ``pre",
+ "id": "ui_mount_rationale_1000"
+ },
+ {
+ "label": "Decode the run's creation.json into the metadata-pane payload. Returns ``{}",
+ "file_type": "rationale",
+ "source_file": "src/exlab_wizard/ui/mount.py",
+ "source_location": "L1015",
+ "community": 163,
+ "norm_label": "decode the run's creation.json into the metadata-pane payload. returns ``{}",
+ "id": "ui_mount_rationale_1015"
+ },
+ {
+ "label": "Resolve a centre-list selection (file or folder) to a render payload. Phase",
+ "file_type": "rationale",
+ "source_file": "src/exlab_wizard/ui/mount.py",
+ "source_location": "L1058",
+ "community": 163,
+ "norm_label": "resolve a centre-list selection (file or folder) to a render payload. phase",
+ "id": "ui_mount_rationale_1058"
+ },
+ {
+ "label": "Aggregate a one-level folder scan into a folder-card payload (OQ-4/B). Phas",
+ "file_type": "rationale",
+ "source_file": "src/exlab_wizard/ui/mount.py",
+ "source_location": "L1107",
+ "community": 163,
+ "norm_label": "aggregate a one-level folder scan into a folder-card payload (oq-4/b). phas",
+ "id": "ui_mount_rationale_1107"
+ },
+ {
+ "label": "Mount / rebind the per-tab FolderFeed and return current entries. Uses ``ap",
+ "file_type": "rationale",
+ "source_file": "src/exlab_wizard/ui/mount.py",
+ "source_location": "L1148",
+ "community": 188,
+ "norm_label": "mount / rebind the per-tab folderfeed and return current entries. uses ``ap",
+ "id": "ui_mount_rationale_1148"
+ },
+ {
+ "label": "FolderFeed fetch hook. Skips when the tree just walked. Runs the synchronou",
+ "file_type": "rationale",
+ "source_file": "src/exlab_wizard/ui/mount.py",
+ "source_location": "L1209",
+ "community": 188,
+ "norm_label": "folderfeed fetch hook. skips when the tree just walked. runs the synchronou",
+ "id": "ui_mount_rationale_1209"
+ },
+ {
+ "label": "Force a fresh single-folder scan and prime the feed payload (OQ-1/A). The F",
+ "file_type": "rationale",
+ "source_file": "src/exlab_wizard/ui/mount.py",
+ "source_location": "L1233",
+ "community": 55,
+ "norm_label": "force a fresh single-folder scan and prime the feed payload (oq-1/a). the f",
+ "id": "ui_mount_rationale_1233"
+ },
+ {
+ "label": "Dispatch a per-run context action to its backend surface. Mirrors :func:`ap",
+ "file_type": "rationale",
+ "source_file": "src/exlab_wizard/ui/mount.py",
+ "source_location": "L1273",
+ "community": 55,
+ "norm_label": "dispatch a per-run context action to its backend surface. mirrors :func:`ap",
+ "id": "ui_mount_rationale_1273"
+ },
+ {
+ "label": "Bulk-clear every staged run whose sync job is verified. Wired from the file",
+ "file_type": "rationale",
+ "source_file": "src/exlab_wizard/ui/mount.py",
+ "source_location": "L1331",
+ "community": 161,
+ "norm_label": "bulk-clear every staged run whose sync job is verified. wired from the file",
+ "id": "ui_mount_rationale_1331"
+ },
+ {
+ "label": "Handle ``Open in OS`` / ``Copy path`` / ``Keep local`` file actions.",
+ "file_type": "rationale",
+ "source_file": "src/exlab_wizard/ui/mount.py",
+ "source_location": "L1376",
+ "community": 161,
+ "norm_label": "handle ``open in os`` / ``copy path`` / ``keep local`` file actions.",
+ "id": "ui_mount_rationale_1376"
+ },
+ {
+ "label": "Flip a file's ``keep_local`` flag via the orchestrator's writer. Operator-f",
+ "file_type": "rationale",
+ "source_file": "src/exlab_wizard/ui/mount.py",
+ "source_location": "L1415",
+ "community": 55,
+ "norm_label": "flip a file's ``keep_local`` flag via the orchestrator's writer. operator-f",
+ "id": "ui_mount_rationale_1415"
+ },
+ {
+ "label": "Launch the host OS's default opener for ``path``. Returns False on platform",
+ "file_type": "rationale",
+ "source_file": "src/exlab_wizard/ui/mount.py",
+ "source_location": "L1458",
+ "community": 164,
+ "norm_label": "launch the host os's default opener for ``path``. returns false on platform",
+ "id": "ui_mount_rationale_1458"
+ },
+ {
+ "label": "Build the Operations-panel rows from the live session store (T3). Uses the",
+ "file_type": "rationale",
+ "source_file": "src/exlab_wizard/ui/mount.py",
+ "source_location": "L1486",
+ "community": 28,
+ "norm_label": "build the operations-panel rows from the live session store (t3). uses the",
+ "id": "ui_mount_rationale_1486"
+ },
+ {
+ "label": "Open the in-flight Operations panel (Frontend \u00a79.5). Builds a fresh snapsho",
+ "file_type": "rationale",
+ "source_file": "src/exlab_wizard/ui/mount.py",
+ "source_location": "L1498",
+ "community": 40,
+ "norm_label": "open the in-flight operations panel (frontend \u00a79.5). builds a fresh snapsho",
+ "id": "ui_mount_rationale_1498"
+ },
+ {
+ "label": "Show a lightweight details/\"log\" dialog for one in-flight operation. The \u00a79",
+ "file_type": "rationale",
+ "source_file": "src/exlab_wizard/ui/mount.py",
+ "source_location": "L1522",
+ "community": 164,
+ "norm_label": "show a lightweight details/\"log\" dialog for one in-flight operation. the \u00a79",
+ "id": "ui_mount_rationale_1522"
+ },
+ {
+ "label": "Resume a suspended session by re-opening its \u00a79.1 input dialog (T5). Reads",
+ "file_type": "rationale",
+ "source_file": "src/exlab_wizard/ui/mount.py",
+ "source_location": "L1556",
+ "community": 28,
+ "norm_label": "resume a suspended session by re-opening its \u00a79.1 input dialog (t5). reads",
+ "id": "ui_mount_rationale_1556"
+ },
+ {
+ "label": "Open the \u00a79.1 escalation dialog; Submit resumes, Cancel confirms (T5). Subm",
+ "file_type": "rationale",
+ "source_file": "src/exlab_wizard/ui/mount.py",
+ "source_location": "L1588",
+ "community": 40,
+ "norm_label": "open the \u00a79.1 escalation dialog; submit resumes, cancel confirms (t5). subm",
+ "id": "ui_mount_rationale_1588"
+ },
+ {
+ "label": "Resolve the controller off ``deps`` and open the \u00a79.4 cancel dialog.",
+ "file_type": "rationale",
+ "source_file": "src/exlab_wizard/ui/mount.py",
+ "source_location": "L1626",
+ "community": 28,
+ "norm_label": "resolve the controller off ``deps`` and open the \u00a79.4 cancel dialog.",
+ "id": "ui_mount_rationale_1626"
+ },
+ {
+ "label": "Cancel an in-flight session via the \u00a79.4 Discard / Keep dialog (T4). The op",
+ "file_type": "rationale",
+ "source_file": "src/exlab_wizard/ui/mount.py",
+ "source_location": "L1635",
+ "community": 28,
+ "norm_label": "cancel an in-flight session via the \u00a79.4 discard / keep dialog (t4). the op",
+ "id": "ui_mount_rationale_1635"
+ },
+ {
+ "label": "Open a NiceGUI dialog showing the run's sync-queue job state. The operator-",
+ "file_type": "rationale",
+ "source_file": "src/exlab_wizard/ui/mount.py",
+ "source_location": "L1676",
+ "community": 55,
+ "norm_label": "open a nicegui dialog showing the run's sync-queue job state. the operator-",
+ "id": "ui_mount_rationale_1676"
+ },
+ {
+ "label": "Return the settings sections the operator still needs to fill in. Mirrors a",
+ "file_type": "rationale",
+ "source_file": "src/exlab_wizard/ui/mount.py",
+ "source_location": "L1724",
+ "community": 82,
+ "norm_label": "return the settings sections the operator still needs to fill in. mirrors a",
+ "id": "ui_mount_rationale_1724"
+ },
+ {
+ "label": "Return the configured templates directory, or ``None``.",
+ "file_type": "rationale",
+ "source_file": "src/exlab_wizard/ui/mount.py",
+ "source_location": "L1757",
+ "community": 40,
+ "norm_label": "return the configured templates directory, or ``none``.",
+ "id": "ui_mount_rationale_1757"
+ },
+ {
+ "label": "List template directory names of ``template_type`` under templates_dir.",
+ "file_type": "rationale",
+ "source_file": "src/exlab_wizard/ui/mount.py",
+ "source_location": "L1765",
+ "community": 40,
+ "norm_label": "list template directory names of ``template_type`` under templates_dir.",
+ "id": "ui_mount_rationale_1765"
+ },
+ {
+ "label": "Map each ``template_type`` template name to its parsed copier questions. Re",
+ "file_type": "rationale",
+ "source_file": "src/exlab_wizard/ui/mount.py",
+ "source_location": "L1782",
+ "community": 63,
+ "norm_label": "map each ``template_type`` template name to its parsed copier questions. re",
+ "id": "ui_mount_rationale_1782"
+ },
+ {
+ "label": "Read the offline-catalogue projects (disconnected-workstation source). Read",
+ "file_type": "rationale",
+ "source_file": "src/exlab_wizard/ui/mount.py",
+ "source_location": "L1815",
+ "community": 162,
+ "norm_label": "read the offline-catalogue projects (disconnected-workstation source). read",
+ "id": "ui_mount_rationale_1815"
+ },
+ {
+ "label": "Return the LIMS projects backing the project wizard's picker. Tries the liv",
+ "file_type": "rationale",
+ "source_file": "src/exlab_wizard/ui/mount.py",
+ "source_location": "L1849",
+ "community": 162,
+ "norm_label": "return the lims projects backing the project wizard's picker. tries the liv",
+ "id": "ui_mount_rationale_1849"
+ },
+ {
+ "label": "Return the configured equipment IDs.",
+ "file_type": "rationale",
+ "source_file": "src/exlab_wizard/ui/mount.py",
+ "source_location": "L1879",
+ "community": 63,
+ "norm_label": "return the configured equipment ids.",
+ "id": "ui_mount_rationale_1879"
+ },
+ {
+ "label": "Await a controller session's pipeline task and return the final handle. ``c",
+ "file_type": "rationale",
+ "source_file": "src/exlab_wizard/ui/mount.py",
+ "source_location": "L1887",
+ "community": 63,
+ "norm_label": "await a controller session's pipeline task and return the final handle. ``c",
+ "id": "ui_mount_rationale_1887"
+ },
+ {
+ "label": "Fold the controller's WS frames into the wizard's live phase bar (T2) and su",
+ "file_type": "rationale",
+ "source_file": "src/exlab_wizard/ui/mount.py",
+ "source_location": "L1906",
+ "community": 40,
+ "norm_label": "fold the controller's ws frames into the wizard's live phase bar (t2) and su",
+ "id": "ui_mount_rationale_1906"
+ },
+ {
+ "label": "Best-effort close of a NiceGUI dialog (no-op when ``None`` / test mode).",
+ "file_type": "rationale",
+ "source_file": "src/exlab_wizard/ui/mount.py",
+ "source_location": "L1949",
+ "community": 40,
+ "norm_label": "best-effort close of a nicegui dialog (no-op when ``none`` / test mode).",
+ "id": "ui_mount_rationale_1949"
+ },
+ {
+ "label": "Build a ProjectCreateRequest from the wizard state and run it.",
+ "file_type": "rationale",
+ "source_file": "src/exlab_wizard/ui/mount.py",
+ "source_location": "L1957",
+ "community": 63,
+ "norm_label": "build a projectcreaterequest from the wizard state and run it.",
+ "id": "ui_mount_rationale_1957"
+ },
+ {
+ "label": "Build a RunCreateRequest from the wizard state and run it.",
+ "file_type": "rationale",
+ "source_file": "src/exlab_wizard/ui/mount.py",
+ "source_location": "L1990",
+ "community": 99,
+ "norm_label": "build a runcreaterequest from the wizard state and run it.",
+ "id": "ui_mount_rationale_1990"
+ },
+ {
+ "label": "Drive a create_* call to completion and toast the outcome. When ``wizard_st",
+ "file_type": "rationale",
+ "source_file": "src/exlab_wizard/ui/mount.py",
+ "source_location": "L2031",
+ "community": 99,
+ "norm_label": "drive a create_* call to completion and toast the outcome. when ``wizard_st",
+ "id": "ui_mount_rationale_2031"
+ },
+ {
+ "label": "Run the validator audit, swallowing failures to a WARN log.",
+ "file_type": "rationale",
+ "source_file": "src/exlab_wizard/ui/mount.py",
+ "source_location": "L2074",
+ "community": 99,
+ "norm_label": "run the validator audit, swallowing failures to a warn log.",
+ "id": "ui_mount_rationale_2074"
+ },
+ {
+ "label": "One row in the centre-pane file list. ``keep_local`` mirrors the file's ``s",
+ "file_type": "rationale",
+ "source_file": "src/exlab_wizard/ui/components/file_list.py",
+ "source_location": "L39",
+ "community": 0,
+ "norm_label": "one row in the centre-pane file list. ``keep_local`` mirrors the file's ``s",
+ "id": "components_file_list_rationale_39"
+ },
+ {
+ "label": "Mutable state for the file list, consumed by the renderer.",
+ "file_type": "rationale",
+ "source_file": "src/exlab_wizard/ui/components/file_list.py",
+ "source_location": "L59",
+ "community": 147,
+ "norm_label": "mutable state for the file list, consumed by the renderer.",
+ "id": "components_file_list_rationale_59"
+ },
+ {
+ "label": "Result of comparing two successive folder-list snapshots.",
+ "file_type": "rationale",
+ "source_file": "src/exlab_wizard/ui/components/file_list.py",
+ "source_location": "L72",
+ "community": 201,
+ "norm_label": "result of comparing two successive folder-list snapshots.",
+ "id": "components_file_list_rationale_72"
+ },
+ {
+ "label": "Return additions / removals / modifications between two snapshots. Pure fun",
+ "file_type": "rationale",
+ "source_file": "src/exlab_wizard/ui/components/file_list.py",
+ "source_location": "L83",
+ "community": 201,
+ "norm_label": "return additions / removals / modifications between two snapshots. pure fun",
+ "id": "components_file_list_rationale_83"
+ },
+ {
+ "label": "Return the CSS background + decoration fragment for one file-list row. Pure",
+ "file_type": "rationale",
+ "source_file": "src/exlab_wizard/ui/components/file_list.py",
+ "source_location": "L122",
+ "community": 139,
+ "norm_label": "return the css background + decoration fragment for one file-list row. pure",
+ "id": "components_file_list_rationale_122"
+ },
+ {
+ "label": "Render the centre-pane file list. Pure render function. Double-clicking a f",
+ "file_type": "rationale",
+ "source_file": "src/exlab_wizard/ui/components/file_list.py",
+ "source_location": "L179",
+ "community": 202,
+ "norm_label": "render the centre-pane file list. pure render function. double-clicking a f",
+ "id": "components_file_list_rationale_179"
+ },
+ {
+ "label": "Render the file-list column header row (Name / Size / Modified / Status).",
+ "file_type": "rationale",
+ "source_file": "src/exlab_wizard/ui/components/file_list.py",
+ "source_location": "L221",
+ "community": 202,
+ "norm_label": "render the file-list column header row (name / size / modified / status).",
+ "id": "components_file_list_rationale_221"
+ },
+ {
+ "label": "Return the Vue ``@click`` expression that reaches NiceGUI's listener. Uses",
+ "file_type": "rationale",
+ "source_file": "src/exlab_wizard/ui/components/tree.py",
+ "source_location": "L298",
+ "community": 79,
+ "norm_label": "return the vue ``@click`` expression that reaches nicegui's listener. uses",
+ "id": "components_tree_rationale_298"
+ },
+ {
+ "label": "Build the project / equipment tree. Returns the NiceGUI ``ui.tree`` element",
+ "file_type": "rationale",
+ "source_file": "src/exlab_wizard/ui/components/tree.py",
+ "source_location": "L372",
+ "community": 79,
+ "norm_label": "build the project / equipment tree. returns the nicegui ``ui.tree`` element",
+ "id": "components_tree_rationale_372"
+ },
+ {
+ "label": "Mutable state for the metadata pane.",
+ "file_type": "rationale",
+ "source_file": "src/exlab_wizard/ui/components/metadata_pane.py",
+ "source_location": "L37",
+ "community": 146,
+ "norm_label": "mutable state for the metadata pane.",
+ "id": "components_metadata_pane_rationale_37"
+ },
+ {
+ "label": "Return the sub-card heading for a selected file/folder payload (pure). ``\"S",
+ "file_type": "rationale",
+ "source_file": "src/exlab_wizard/ui/components/metadata_pane.py",
+ "source_location": "L51",
+ "community": 132,
+ "norm_label": "return the sub-card heading for a selected file/folder payload (pure). ``\"s",
+ "id": "components_metadata_pane_rationale_51"
+ },
+ {
+ "label": "Render the right-pane Metadata content for ``state.selected_node``. Dispatc",
+ "file_type": "rationale",
+ "source_file": "src/exlab_wizard/ui/components/metadata_pane.py",
+ "source_location": "L67",
+ "community": 132,
+ "norm_label": "render the right-pane metadata content for ``state.selected_node``. dispatc",
+ "id": "components_metadata_pane_rationale_67"
+ },
+ {
+ "label": "Key/value row whose value is a sync-status icon (tolerant). Mirrors :func:`",
+ "file_type": "rationale",
+ "source_file": "src/exlab_wizard/ui/components/metadata_pane.py",
+ "source_location": "L130",
+ "community": 132,
+ "norm_label": "key/value row whose value is a sync-status icon (tolerant). mirrors :func:`",
+ "id": "components_metadata_pane_rationale_130"
+ },
+ {
+ "label": "Render the SELECTED FILE / SELECTED FOLDER sub-card (Phase 4, \u00a74.4). Append",
+ "file_type": "rationale",
+ "source_file": "src/exlab_wizard/ui/components/metadata_pane.py",
+ "source_location": "L148",
+ "community": 132,
+ "norm_label": "render the selected file / selected folder sub-card (phase 4, \u00a74.4). append",
+ "id": "components_metadata_pane_rationale_148"
+ },
+ {
+ "label": "Compute a :class:`SegmentSpec` from a label and state. The state controls t",
+ "file_type": "rationale",
+ "source_file": "src/exlab_wizard/ui/components/status_bar_segment.py",
+ "source_location": "L46",
+ "community": 52,
+ "norm_label": "compute a :class:`segmentspec` from a label and state. the state controls t",
+ "id": "components_status_bar_segment_rationale_46"
+ },
+ {
+ "label": "Build a clickable status-bar segment.",
+ "file_type": "rationale",
+ "source_file": "src/exlab_wizard/ui/components/status_bar_segment.py",
+ "source_location": "L70",
+ "community": 52,
+ "norm_label": "build a clickable status-bar segment.",
+ "id": "components_status_bar_segment_rationale_70"
+ },
+ {
+ "label": "Compute icon + tooltip + retry-counter for a sync status. The ``retry_n``/`",
+ "file_type": "rationale",
+ "source_file": "src/exlab_wizard/ui/components/sync_status_icon.py",
+ "source_location": "L125",
+ "community": 205,
+ "norm_label": "compute icon + tooltip + retry-counter for a sync status. the ``retry_n``/`",
+ "id": "components_sync_status_icon_rationale_125"
+ },
+ {
+ "label": "Build a NiceGUI row containing the icon and optional retry counter. ``stric",
+ "file_type": "rationale",
+ "source_file": "src/exlab_wizard/ui/components/sync_status_icon.py",
+ "source_location": "L164",
+ "community": 251,
+ "norm_label": "build a nicegui row containing the icon and optional retry counter. ``stric",
+ "id": "components_sync_status_icon_rationale_164"
+ },
+ {
+ "label": "Context manager rendering a framed, titled pane; yields the body element. U",
+ "file_type": "rationale",
+ "source_file": "src/exlab_wizard/ui/components/framed_pane.py",
+ "source_location": "L96",
+ "community": 61,
+ "norm_label": "context manager rendering a framed, titled pane; yields the body element. u",
+ "id": "components_framed_pane_rationale_96"
+ },
+ {
+ "label": "Mutable state for the in-flight Add-Equipment wizard.",
+ "file_type": "rationale",
+ "source_file": "src/exlab_wizard/ui/pages/wizard_equipment.py",
+ "source_location": "L52",
+ "community": 260,
+ "norm_label": "mutable state for the in-flight add-equipment wizard.",
+ "id": "pages_wizard_equipment_rationale_52"
+ },
+ {
+ "label": "Return True if the active step has the data it needs to advance. Pure funct",
+ "file_type": "rationale",
+ "source_file": "src/exlab_wizard/ui/pages/wizard_equipment.py",
+ "source_location": "L73",
+ "community": 229,
+ "norm_label": "return true if the active step has the data it needs to advance. pure funct",
+ "id": "pages_wizard_equipment_rationale_73"
+ },
+ {
+ "label": "Build the final EquipmentConfig from the wizard's state. Raises a pydantic",
+ "file_type": "rationale",
+ "source_file": "src/exlab_wizard/ui/pages/wizard_equipment.py",
+ "source_location": "L101",
+ "community": 229,
+ "norm_label": "build the final equipmentconfig from the wizard's state. raises a pydantic",
+ "id": "pages_wizard_equipment_rationale_101"
+ },
+ {
+ "label": "Render the self-contained Add-Equipment wizard. Next / Back navigation is h",
+ "file_type": "rationale",
+ "source_file": "src/exlab_wizard/ui/pages/wizard_equipment.py",
+ "source_location": "L121",
+ "community": 260,
+ "norm_label": "render the self-contained add-equipment wizard. next / back navigation is h",
+ "id": "pages_wizard_equipment_rationale_121"
+ },
+ {
+ "label": "Return the nas-mode equipment for ``config``. Drives the NAS-remote section",
+ "file_type": "rationale",
+ "source_file": "src/exlab_wizard/ui/pages/settings.py",
+ "source_location": "L63",
+ "community": 248,
+ "norm_label": "return the nas-mode equipment for ``config``. drives the nas-remote section",
+ "id": "pages_settings_rationale_63"
+ },
+ {
+ "label": "Return the visible section ids for ``config``. The NAS-remote section is in",
+ "file_type": "rationale",
+ "source_file": "src/exlab_wizard/ui/pages/settings.py",
+ "source_location": "L78",
+ "community": 248,
+ "norm_label": "return the visible section ids for ``config``. the nas-remote section is in",
+ "id": "pages_settings_rationale_78"
+ },
+ {
+ "label": "Mutable state for the dialog.",
+ "file_type": "rationale",
+ "source_file": "src/exlab_wizard/ui/pages/settings.py",
+ "source_location": "L97",
+ "community": 421,
+ "norm_label": "mutable state for the dialog.",
+ "id": "pages_settings_rationale_97"
+ },
+ {
+ "label": "Return the first section ID in canonical order that's incomplete. The dynam",
+ "file_type": "rationale",
+ "source_file": "src/exlab_wizard/ui/pages/settings.py",
+ "source_location": "L106",
+ "community": 420,
+ "norm_label": "return the first section id in canonical order that's incomplete. the dynam",
+ "id": "pages_settings_rationale_106"
+ },
+ {
+ "label": "Compute the *Save all* button label, including the badge count.",
+ "file_type": "rationale",
+ "source_file": "src/exlab_wizard/ui/pages/settings.py",
+ "source_location": "L126",
+ "community": 220,
+ "norm_label": "compute the *save all* button label, including the badge count.",
+ "id": "pages_settings_rationale_126"
+ },
+ {
+ "label": "Return ``True`` when the sidebar should decorate ``section``.",
+ "file_type": "rationale",
+ "source_file": "src/exlab_wizard/ui/pages/settings.py",
+ "source_location": "L136",
+ "community": 220,
+ "norm_label": "return ``true`` when the sidebar should decorate ``section``.",
+ "id": "pages_settings_rationale_136"
+ },
+ {
+ "label": "Return ``True`` when ``section`` has uncommitted edits.",
+ "file_type": "rationale",
+ "source_file": "src/exlab_wizard/ui/pages/settings.py",
+ "source_location": "L142",
+ "community": 220,
+ "norm_label": "return ``true`` when ``section`` has uncommitted edits.",
+ "id": "pages_settings_rationale_142"
+ },
+ {
+ "label": "Return the editable deep-copy draft the settings dialog mutates. ``None`` (",
+ "file_type": "rationale",
+ "source_file": "src/exlab_wizard/ui/pages/settings.py",
+ "source_location": "L148",
+ "community": 178,
+ "norm_label": "return the editable deep-copy draft the settings dialog mutates. ``none`` (",
+ "id": "pages_settings_rationale_148"
+ },
+ {
+ "label": "Re-validate a mutated draft into a clean :class:`Config`. The dialog's two-",
+ "file_type": "rationale",
+ "source_file": "src/exlab_wizard/ui/pages/settings.py",
+ "source_location": "L159",
+ "community": 178,
+ "norm_label": "re-validate a mutated draft into a clean :class:`config`. the dialog's two-",
+ "id": "pages_settings_rationale_159"
+ },
+ {
+ "label": "Return the credential-row state seeding the LIMS password field. A password",
+ "file_type": "rationale",
+ "source_file": "src/exlab_wizard/ui/pages/settings.py",
+ "source_location": "L177",
+ "community": 310,
+ "norm_label": "return the credential-row state seeding the lims password field. a password",
+ "id": "pages_settings_rationale_177"
+ },
+ {
+ "label": "Render the settings dialog. ``config`` is the live ``config.yaml`` model (o",
+ "file_type": "rationale",
+ "source_file": "src/exlab_wizard/ui/pages/settings.py",
+ "source_location": "L206",
+ "community": 220,
+ "norm_label": "render the settings dialog. ``config`` is the live ``config.yaml`` model (o",
+ "id": "pages_settings_rationale_206"
+ },
+ {
+ "label": "Reusable chip / list editor bound to a draft string list (T7 / T10). Mutate",
+ "file_type": "rationale",
+ "source_file": "src/exlab_wizard/ui/pages/settings.py",
+ "source_location": "L395",
+ "community": 230,
+ "norm_label": "reusable chip / list editor bound to a draft string list (t7 / t10). mutate",
+ "id": "pages_settings_rationale_395"
+ },
+ {
+ "label": "Render the content for a single section, bound to ``draft``. Every scalar f",
+ "file_type": "rationale",
+ "source_file": "src/exlab_wizard/ui/pages/settings.py",
+ "source_location": "L484",
+ "community": 230,
+ "norm_label": "render the content for a single section, bound to ``draft``. every scalar f",
+ "id": "pages_settings_rationale_484"
+ },
+ {
+ "label": "Render the equipment list + a full add-equipment sub-form. Adding an entry",
+ "file_type": "rationale",
+ "source_file": "src/exlab_wizard/ui/pages/settings.py",
+ "source_location": "L705",
+ "community": 230,
+ "norm_label": "render the equipment list + a full add-equipment sub-form. adding an entry",
+ "id": "pages_settings_rationale_705"
+ },
+ {
+ "label": "Render the read-only NAS-remote status + a Test-connection panel. rclone.co",
+ "file_type": "rationale",
+ "source_file": "src/exlab_wizard/ui/pages/settings.py",
+ "source_location": "L775",
+ "community": 230,
+ "norm_label": "render the read-only nas-remote status + a test-connection panel. rclone.co",
+ "id": "pages_settings_rationale_775"
+ },
+ {
+ "label": "Render state for the main page. GUI/Orchestrator Redesign \u00a74: the legacy tw",
+ "file_type": "rationale",
+ "source_file": "src/exlab_wizard/ui/pages/main.py",
+ "source_location": "L34",
+ "community": 81,
+ "norm_label": "render state for the main page. gui/orchestrator redesign \u00a74: the legacy tw",
+ "id": "pages_main_rationale_34"
+ },
+ {
+ "label": "The three default chips on the left-tree filter strip (\u00a73.5.4).",
+ "file_type": "rationale",
+ "source_file": "src/exlab_wizard/ui/pages/main.py",
+ "source_location": "L89",
+ "community": 81,
+ "norm_label": "the three default chips on the left-tree filter strip (\u00a73.5.4).",
+ "id": "pages_main_rationale_89"
+ },
+ {
+ "label": "Translate a chip group state into a :class:`TreeFilters`.",
+ "file_type": "rationale",
+ "source_file": "src/exlab_wizard/ui/pages/main.py",
+ "source_location": "L99",
+ "community": 81,
+ "norm_label": "translate a chip group state into a :class:`treefilters`.",
+ "id": "pages_main_rationale_99"
+ },
+ {
+ "label": "Return the count text shown on the Problems tab. Frontend \u00a73.2: hard count",
+ "file_type": "rationale",
+ "source_file": "src/exlab_wizard/ui/pages/main.py",
+ "source_location": "L110",
+ "community": 81,
+ "norm_label": "return the count text shown on the problems tab. frontend \u00a73.2: hard count",
+ "id": "pages_main_rationale_110"
+ },
+ {
+ "label": "Banner content for the setup-incomplete state (\u00a73.1.4). ``next_action`` is",
+ "file_type": "rationale",
+ "source_file": "src/exlab_wizard/ui/pages/main.py",
+ "source_location": "L122",
+ "community": 81,
+ "norm_label": "banner content for the setup-incomplete state (\u00a73.1.4). ``next_action`` is",
+ "id": "pages_main_rationale_122"
+ },
+ {
+ "label": "Render the rebuilt three-region file-explorer main window. GUI/Orchestrator",
+ "file_type": "rationale",
+ "source_file": "src/exlab_wizard/ui/pages/main.py",
+ "source_location": "L172",
+ "community": 81,
+ "norm_label": "render the rebuilt three-region file-explorer main window. gui/orchestrator",
+ "id": "pages_main_rationale_172"
+ },
+ {
+ "label": "Render the centre-pane file list (Redesign \u00a74.3). Each row carries a right-",
+ "file_type": "rationale",
+ "source_file": "src/exlab_wizard/ui/pages/main.py",
+ "source_location": "L493",
+ "community": 182,
+ "norm_label": "render the centre-pane file list (redesign \u00a74.3). each row carries a right-",
+ "id": "pages_main_rationale_493"
+ },
+ {
+ "label": "Render the right Metadata / Problems pane (Redesign \u00a74.4).",
+ "file_type": "rationale",
+ "source_file": "src/exlab_wizard/ui/pages/main.py",
+ "source_location": "L532",
+ "community": 192,
+ "norm_label": "render the right metadata / problems pane (redesign \u00a74.4).",
+ "id": "pages_main_rationale_532"
+ },
+ {
+ "label": "_bootstrap_test_config()",
+ "file_type": "code",
+ "source_file": "src/exlab_wizard/tray/main.py",
+ "source_location": "L272",
+ "community": 0,
+ "norm_label": "_bootstrap_test_config()",
+ "id": "tray_main_bootstrap_test_config"
+ },
+ {
+ "label": "Write a starter test ``config.yaml`` if one does not already exist. Called",
+ "file_type": "rationale",
+ "source_file": "src/exlab_wizard/tray/main.py",
+ "source_location": "L273",
+ "community": 0,
+ "norm_label": "write a starter test ``config.yaml`` if one does not already exist. called",
+ "id": "tray_main_rationale_273"
+ },
+ {
+ "label": "Server-only loop. Boots the FastAPI server, prints the published port, waits",
+ "file_type": "rationale",
+ "source_file": "src/exlab_wizard/tray/main.py",
+ "source_location": "L351",
+ "community": 110,
+ "norm_label": "server-only loop. boots the fastapi server, prints the published port, waits",
+ "id": "tray_main_rationale_351"
+ },
+ {
+ "label": "``exlab-wizard-tray`` entry point. The main thread runs pystray; the FastAP",
+ "file_type": "rationale",
+ "source_file": "src/exlab_wizard/tray/main.py",
+ "source_location": "L384",
+ "community": 110,
+ "norm_label": "``exlab-wizard-tray`` entry point. the main thread runs pystray; the fastap",
+ "id": "tray_main_rationale_384"
+ },
+ {
+ "label": "_readme_decls_from_template()",
+ "file_type": "code",
+ "source_file": "src/exlab_wizard/controller/creation.py",
+ "source_location": "L1269",
+ "community": 5,
+ "norm_label": "_readme_decls_from_template()",
+ "id": "controller_creation_readme_decls_from_template"
+ },
+ {
+ "label": "_readme_decls_from_config()",
+ "file_type": "code",
+ "source_file": "src/exlab_wizard/controller/creation.py",
+ "source_location": "L1301",
+ "community": 5,
+ "norm_label": "_readme_decls_from_config()",
+ "id": "controller_creation_readme_decls_from_config"
+ },
+ {
+ "label": "_os_username()",
+ "file_type": "code",
+ "source_file": "src/exlab_wizard/controller/creation.py",
+ "source_location": "L1326",
+ "community": 5,
+ "norm_label": "_os_username()",
+ "id": "controller_creation_os_username"
+ },
+ {
+ "label": "Inputs for :meth:`CreationController.create_project`. Backend Spec \u00a74.6.1 /",
+ "file_type": "rationale",
+ "source_file": "src/exlab_wizard/controller/creation.py",
+ "source_location": "L142",
+ "community": 10,
+ "norm_label": "inputs for :meth:`creationcontroller.create_project`. backend spec \u00a74.6.1 /",
+ "id": "controller_creation_rationale_142"
+ },
+ {
+ "label": "Inputs for :meth:`CreationController.create_run`. Backend Spec \u00a74.6.1 / UI-",
+ "file_type": "rationale",
+ "source_file": "src/exlab_wizard/controller/creation.py",
+ "source_location": "L161",
+ "community": 10,
+ "norm_label": "inputs for :meth:`creationcontroller.create_run`. backend spec \u00a74.6.1 / ui-",
+ "id": "controller_creation_rationale_161"
+ },
+ {
+ "label": "Snapshot of session state. Backend Spec \u00a74.4.1.",
+ "file_type": "rationale",
+ "source_file": "src/exlab_wizard/controller/creation.py",
+ "source_location": "L186",
+ "community": 10,
+ "norm_label": "snapshot of session state. backend spec \u00a74.4.1.",
+ "id": "controller_creation_rationale_186"
+ },
+ {
+ "label": "The README generator surface the controller depends on. Backend \u00a710. Mirror",
+ "file_type": "rationale",
+ "source_file": "src/exlab_wizard/controller/creation.py",
+ "source_location": "L200",
+ "community": 10,
+ "norm_label": "the readme generator surface the controller depends on. backend \u00a710. mirror",
+ "id": "controller_creation_rationale_200"
+ },
+ {
+ "label": "Lightweight README generator for tests / headless fixtures. Writes a tiny `",
+ "file_type": "rationale",
+ "source_file": "src/exlab_wizard/controller/creation.py",
+ "source_location": "L211",
+ "community": 10,
+ "norm_label": "lightweight readme generator for tests / headless fixtures. writes a tiny `",
+ "id": "controller_creation_rationale_211"
+ },
+ {
+ "label": "No-op stand-in for :class:`NASSyncClient` until Phase 10 lands.",
+ "file_type": "rationale",
+ "source_file": "src/exlab_wizard/controller/creation.py",
+ "source_location": "L233",
+ "community": 10,
+ "norm_label": "no-op stand-in for :class:`nassyncclient` until phase 10 lands.",
+ "id": "controller_creation_rationale_233"
+ },
+ {
+ "label": "Drives the \u00a74.7 state machine end-to-end. Composes the validator (Phase 4),",
+ "file_type": "rationale",
+ "source_file": "src/exlab_wizard/controller/creation.py",
+ "source_location": "L245",
+ "community": 5,
+ "norm_label": "drives the \u00a74.7 state machine end-to-end. composes the validator (phase 4),",
+ "id": "controller_creation_rationale_245"
+ },
+ {
+ "label": "Expose the in-memory session store for the API surface.",
+ "file_type": "rationale",
+ "source_file": "src/exlab_wizard/controller/creation.py",
+ "source_location": "L291",
+ "community": 666,
+ "norm_label": "expose the in-memory session store for the api surface.",
+ "id": "controller_creation_rationale_291"
+ },
+ {
+ "label": "Swap the controller's config (and optionally plugin host) in place. Eve",
+ "file_type": "rationale",
+ "source_file": "src/exlab_wizard/controller/creation.py",
+ "source_location": "L295",
+ "community": 5,
+ "norm_label": "swap the controller's config (and optionally plugin host) in place. eve",
+ "id": "controller_creation_rationale_295"
+ },
+ {
+ "label": "Open a project-creation session and start the pipeline. The session is",
+ "file_type": "rationale",
+ "source_file": "src/exlab_wizard/controller/creation.py",
+ "source_location": "L312",
+ "community": 5,
+ "norm_label": "open a project-creation session and start the pipeline. the session is",
+ "id": "controller_creation_rationale_312"
+ },
+ {
+ "label": "Open a run-creation session and start the pipeline.",
+ "file_type": "rationale",
+ "source_file": "src/exlab_wizard/controller/creation.py",
+ "source_location": "L325",
+ "community": 5,
+ "norm_label": "open a run-creation session and start the pipeline.",
+ "id": "controller_creation_rationale_325"
+ },
+ {
+ "label": "Supply ``extra_inputs`` after a ``PluginInputRequired`` prompt. Pushes",
+ "file_type": "rationale",
+ "source_file": "src/exlab_wizard/controller/creation.py",
+ "source_location": "L330",
+ "community": 5,
+ "norm_label": "supply ``extra_inputs`` after a ``plugininputrequired`` prompt. pushes",
+ "id": "controller_creation_rationale_330"
+ },
+ {
+ "label": "Abort an in-flight session. Pushes a ``None`` onto the resume queue (so",
+ "file_type": "rationale",
+ "source_file": "src/exlab_wizard/controller/creation.py",
+ "source_location": "L354",
+ "community": 5,
+ "norm_label": "abort an in-flight session. pushes a ``none`` onto the resume queue (so",
+ "id": "controller_creation_rationale_354"
+ },
+ {
+ "label": "Return a snapshot :class:`SessionHandle` for ``session_id``.",
+ "file_type": "rationale",
+ "source_file": "src/exlab_wizard/controller/creation.py",
+ "source_location": "L397",
+ "community": 5,
+ "norm_label": "return a snapshot :class:`sessionhandle` for ``session_id``.",
+ "id": "controller_creation_rationale_397"
+ },
+ {
+ "label": "Yield WebSocket-event dicts for the named session. Wraps the session's",
+ "file_type": "rationale",
+ "source_file": "src/exlab_wizard/controller/creation.py",
+ "source_location": "L404",
+ "community": 5,
+ "norm_label": "yield websocket-event dicts for the named session. wraps the session's",
+ "id": "controller_creation_rationale_404"
+ },
+ {
+ "label": "Validate the request, then spawn the pipeline as a background task. The",
+ "file_type": "rationale",
+ "source_file": "src/exlab_wizard/controller/creation.py",
+ "source_location": "L428",
+ "community": 5,
+ "norm_label": "validate the request, then spawn the pipeline as a background task. the",
+ "id": "controller_creation_rationale_428"
+ },
+ {
+ "label": "Run the \u00a72 mandatory-core-field gate. Raises :class:`ValidationError` o",
+ "file_type": "rationale",
+ "source_file": "src/exlab_wizard/controller/creation.py",
+ "source_location": "L466",
+ "community": 5,
+ "norm_label": "run the \u00a72 mandatory-core-field gate. raises :class:`validationerror` o",
+ "id": "controller_creation_rationale_466"
+ },
+ {
+ "label": "Drive the session from RENDERING to DONE / FAILED / ABORTED.",
+ "file_type": "rationale",
+ "source_file": "src/exlab_wizard/controller/creation.py",
+ "source_location": "L608",
+ "community": 5,
+ "norm_label": "drive the session from rendering to done / failed / aborted.",
+ "id": "controller_creation_rationale_608"
+ },
+ {
+ "label": "Run the RENDERING \u2192 DONE pipeline once.",
+ "file_type": "rationale",
+ "source_file": "src/exlab_wizard/controller/creation.py",
+ "source_location": "L628",
+ "community": 5,
+ "norm_label": "run the rendering \u2192 done pipeline once.",
+ "id": "controller_creation_rationale_628"
+ },
+ {
+ "label": "Return the LIMS project ``short_id`` for the request. For a project req",
+ "file_type": "rationale",
+ "source_file": "src/exlab_wizard/controller/creation.py",
+ "source_location": "L734",
+ "community": 667,
+ "norm_label": "return the lims project ``short_id`` for the request. for a project req",
+ "id": "controller_creation_rationale_734"
+ },
+ {
+ "label": "Return the human-readable LIMS project name for the request. This is th",
+ "file_type": "rationale",
+ "source_file": "src/exlab_wizard/controller/creation.py",
+ "source_location": "L750",
+ "community": 668,
+ "norm_label": "return the human-readable lims project name for the request. this is th",
+ "id": "controller_creation_rationale_750"
+ },
+ {
+ "label": "Read the parent project's ``lims_project`` block for a run. A run inher",
+ "file_type": "rationale",
+ "source_file": "src/exlab_wizard/controller/creation.py",
+ "source_location": "L763",
+ "community": 5,
+ "norm_label": "read the parent project's ``lims_project`` block for a run. a run inher",
+ "id": "controller_creation_rationale_763"
+ },
+ {
+ "label": "Return the ``run_kind`` value to record on ``creation.json``. Project-l",
+ "file_type": "rationale",
+ "source_file": "src/exlab_wizard/controller/creation.py",
+ "source_location": "L783",
+ "community": 669,
+ "norm_label": "return the ``run_kind`` value to record on ``creation.json``. project-l",
+ "id": "controller_creation_rationale_783"
+ },
+ {
+ "label": "Render the resolved template into ``dst``. Copier receives the request'",
+ "file_type": "rationale",
+ "source_file": "src/exlab_wizard/controller/creation.py",
+ "source_location": "L816",
+ "community": 5,
+ "norm_label": "render the resolved template into ``dst``. copier receives the request'",
+ "id": "controller_creation_rationale_816"
+ },
+ {
+ "label": "Compose the \u00a710 four-layer :class:`ReadmeContext` for ``req``. Maps the",
+ "file_type": "rationale",
+ "source_file": "src/exlab_wizard/controller/creation.py",
+ "source_location": "L905",
+ "community": 5,
+ "norm_label": "compose the \u00a710 four-layer :class:`readmecontext` for ``req``. maps the",
+ "id": "controller_creation_rationale_905"
+ },
+ {
+ "label": "Write README + creation.json into the destination tree.",
+ "file_type": "rationale",
+ "source_file": "src/exlab_wizard/controller/creation.py",
+ "source_location": "L973",
+ "community": 25,
+ "norm_label": "write readme + creation.json into the destination tree.",
+ "id": "controller_creation_rationale_973"
+ },
+ {
+ "label": "Write the per-equipment ``equipment.json`` registry record. Backend Spe",
+ "file_type": "rationale",
+ "source_file": "src/exlab_wizard/controller/creation.py",
+ "source_location": "L1083",
+ "community": 25,
+ "norm_label": "write the per-equipment ``equipment.json`` registry record. backend spe",
+ "id": "controller_creation_rationale_1083"
+ },
+ {
+ "label": "Run :meth:`Validator.validate_creation` against the rendered tree. Catc",
+ "file_type": "rationale",
+ "source_file": "src/exlab_wizard/controller/creation.py",
+ "source_location": "L1120",
+ "community": 5,
+ "norm_label": "run :meth:`validator.validate_creation` against the rendered tree. catc",
+ "id": "controller_creation_rationale_1120"
+ },
+ {
+ "label": "Remove or leave the partial directory per the spec.",
+ "file_type": "rationale",
+ "source_file": "src/exlab_wizard/controller/creation.py",
+ "source_location": "L1199",
+ "community": 5,
+ "norm_label": "remove or leave the partial directory per the spec.",
+ "id": "controller_creation_rationale_1199"
+ },
+ {
+ "label": "Best-effort append to the equipment-level log. Backend Spec \u00a711.5. Comp",
+ "file_type": "rationale",
+ "source_file": "src/exlab_wizard/controller/creation.py",
+ "source_location": "L1232",
+ "community": 5,
+ "norm_label": "best-effort append to the equipment-level log. backend spec \u00a711.5. comp",
+ "id": "controller_creation_rationale_1232"
+ },
+ {
+ "label": "Return the ``id`` of every entry in ``extra_fields`` with ``required: true``.",
+ "file_type": "rationale",
+ "source_file": "src/exlab_wizard/controller/creation.py",
+ "source_location": "L1257",
+ "community": 5,
+ "norm_label": "return the ``id`` of every entry in ``extra_fields`` with ``required: true``.",
+ "id": "controller_creation_rationale_1257"
+ },
+ {
+ "label": "Map a template's ``_exlab_readme.fields`` dicts to typed declarations. Entr",
+ "file_type": "rationale",
+ "source_file": "src/exlab_wizard/controller/creation.py",
+ "source_location": "L1270",
+ "community": 5,
+ "norm_label": "map a template's ``_exlab_readme.fields`` dicts to typed declarations. entr",
+ "id": "controller_creation_rationale_1270"
+ },
+ {
+ "label": "Map ``config.readme.defaults`` entries to typed declarations. Core field id",
+ "file_type": "rationale",
+ "source_file": "src/exlab_wizard/controller/creation.py",
+ "source_location": "L1302",
+ "community": 5,
+ "norm_label": "map ``config.readme.defaults`` entries to typed declarations. core field id",
+ "id": "controller_creation_rationale_1302"
+ },
+ {
+ "label": "Return the creating OS user for the README ``system.created_by``. Distinct",
+ "file_type": "rationale",
+ "source_file": "src/exlab_wizard/controller/creation.py",
+ "source_location": "L1327",
+ "community": 5,
+ "norm_label": "return the creating os user for the readme ``system.created_by``. distinct",
+ "id": "controller_creation_rationale_1327"
+ },
+ {
+ "label": "Stash the resolved template on the request so the pipeline can re-use it. T",
+ "file_type": "rationale",
+ "source_file": "src/exlab_wizard/controller/creation.py",
+ "source_location": "L1346",
+ "community": 5,
+ "norm_label": "stash the resolved template on the request so the pipeline can re-use it. t",
+ "id": "controller_creation_rationale_1346"
+ },
+ {
+ "label": "RESUME.md",
+ "file_type": "document",
+ "source_file": "RESUME.md",
+ "source_location": "L1",
+ "community": 235,
+ "norm_label": "resume.md",
+ "id": "resume_md"
+ },
+ {
+ "label": "RESUME \u2014 Main-window UI refresh (Phase 4 done; post-demo UI batch committed)",
+ "file_type": "document",
+ "source_file": "RESUME.md",
+ "source_location": "L1",
+ "community": 235,
+ "norm_label": "resume \u2014 main-window ui refresh (phase 4 done; post-demo ui batch committed)",
+ "id": "exlabwizard_resume_resume_main_window_ui_refresh_phase_4_done_post_demo_ui_batch_committed"
+ },
+ {
+ "label": "\u23e9 CURRENT STATE (2026-05-29, session 2)",
+ "file_type": "document",
+ "source_file": "RESUME.md",
+ "source_location": "L7",
+ "community": 235,
+ "norm_label": "\u23e9 current state (2026-05-29, session 2)",
+ "id": "exlabwizard_resume_current_state_2026_05_29_session_2"
+ },
+ {
+ "label": "How to work (lessons from this session \u2014 important)",
+ "file_type": "document",
+ "source_file": "RESUME.md",
+ "source_location": "L47",
+ "community": 235,
+ "norm_label": "how to work (lessons from this session \u2014 important)",
+ "id": "exlabwizard_resume_how_to_work_lessons_from_this_session_important"
+ },
+ {
+ "label": "Where things stand",
+ "file_type": "document",
+ "source_file": "RESUME.md",
+ "source_location": "L70",
+ "community": 235,
+ "norm_label": "where things stand",
+ "id": "exlabwizard_resume_where_things_stand"
+ },
+ {
+ "label": "Committed (clean) \u2014 Phases 1\u20133",
+ "file_type": "document",
+ "source_file": "RESUME.md",
+ "source_location": "L78",
+ "community": 235,
+ "norm_label": "committed (clean) \u2014 phases 1\u20133",
+ "id": "exlabwizard_resume_committed_clean_phases_1_3"
+ },
+ {
+ "label": "UNCOMMITTED partial Phase 4 (working tree, additive + backward-compatible)",
+ "file_type": "document",
+ "source_file": "RESUME.md",
+ "source_location": "L86",
+ "community": 235,
+ "norm_label": "uncommitted partial phase 4 (working tree, additive + backward-compatible)",
+ "id": "exlabwizard_resume_uncommitted_partial_phase_4_working_tree_additive_backward_compatible"
+ },
+ {
+ "label": "Phase 4 remaining work (Option B \u2014 selection \u2192 metadata)",
+ "file_type": "document",
+ "source_file": "RESUME.md",
+ "source_location": "L100",
+ "community": 235,
+ "norm_label": "phase 4 remaining work (option b \u2014 selection \u2192 metadata)",
+ "id": "exlabwizard_resume_phase_4_remaining_work_option_b_selection_metadata"
+ },
+ {
+ "label": "Tests to add (Phase 4)",
+ "file_type": "document",
+ "source_file": "RESUME.md",
+ "source_location": "L148",
+ "community": 235,
+ "norm_label": "tests to add (phase 4)",
+ "id": "exlabwizard_resume_tests_to_add_phase_4"
+ },
+ {
+ "label": "Demo checkpoint (task #6, after Phase 4 verifies green)",
+ "file_type": "document",
+ "source_file": "RESUME.md",
+ "source_location": "L158",
+ "community": 235,
+ "norm_label": "demo checkpoint (task #6, after phase 4 verifies green)",
+ "id": "exlabwizard_resume_demo_checkpoint_task_6_after_phase_4_verifies_green"
+ },
+ {
+ "label": "Code-review findings to honor (from earlier passes)",
+ "file_type": "document",
+ "source_file": "RESUME.md",
+ "source_location": "L164",
+ "community": 235,
+ "norm_label": "code-review findings to honor (from earlier passes)",
+ "id": "exlabwizard_resume_code_review_findings_to_honor_from_earlier_passes"
+ },
+ {
+ "label": "Quick resume verification (run sequentially, one at a time)",
+ "file_type": "document",
+ "source_file": "RESUME.md",
+ "source_location": "L171",
+ "community": 235,
+ "norm_label": "quick resume verification (run sequentially, one at a time)",
+ "id": "exlabwizard_resume_quick_resume_verification_run_sequentially_one_at_a_time"
+ },
+ {
+ "label": "code:block1 (git branch --show-current # feature/gui-imrprovemen)",
+ "file_type": "document",
+ "source_file": "RESUME.md",
+ "source_location": "L172",
+ "community": 235,
+ "norm_label": "code:block1 (git branch --show-current # feature/gui-imrprovemen)",
+ "id": "exlabwizard_resume_codeblock_1"
+ },
+ {
+ "label": "Render the centre-pane file list (Redesign \u00a74.3). Each row carries a right-",
+ "file_type": "rationale",
+ "source_file": "src/exlab_wizard/ui/pages/main.py",
+ "source_location": "L491",
+ "community": 182,
+ "norm_label": "render the centre-pane file list (redesign \u00a74.3). each row carries a right-",
+ "id": "pages_main_rationale_491"
+ },
+ {
+ "label": "Render the right Metadata / Problems pane (Redesign \u00a74.4).",
+ "file_type": "rationale",
+ "source_file": "src/exlab_wizard/ui/pages/main.py",
+ "source_location": "L530",
+ "community": 192,
+ "norm_label": "render the right metadata / problems pane (redesign \u00a74.4).",
+ "id": "pages_main_rationale_530"
+ },
+ {
+ "label": "Render the centre-pane file list (Redesign \u00a74.3). Each row carries a right-",
+ "file_type": "rationale",
+ "source_file": "src/exlab_wizard/ui/pages/main.py",
+ "source_location": "L479",
+ "community": 182,
+ "norm_label": "render the centre-pane file list (redesign \u00a74.3). each row carries a right-",
+ "id": "pages_main_rationale_479"
+ },
+ {
+ "label": "Render the right Metadata / Problems pane (Redesign \u00a74.4).",
+ "file_type": "rationale",
+ "source_file": "src/exlab_wizard/ui/pages/main.py",
+ "source_location": "L518",
+ "community": 192,
+ "norm_label": "render the right metadata / problems pane (redesign \u00a74.4).",
+ "id": "pages_main_rationale_518"
+ },
+ {
+ "label": "RESUME \u2014 Main-window UI refresh (Phase 4 DONE + committed; at demo checkpoint)",
+ "file_type": "document",
+ "source_file": "RESUME.md",
+ "source_location": "L1",
+ "community": 235,
+ "norm_label": "resume \u2014 main-window ui refresh (phase 4 done + committed; at demo checkpoint)",
+ "id": "exlabwizard_resume_resume_main_window_ui_refresh_phase_4_done_committed_at_demo_checkpoint"
+ },
+ {
+ "label": "Render the centre-pane file list (Redesign \u00a74.3). Each row carries a right-",
+ "file_type": "rationale",
+ "source_file": "src/exlab_wizard/ui/pages/main.py",
+ "source_location": "L475",
+ "community": 182,
+ "norm_label": "render the centre-pane file list (redesign \u00a74.3). each row carries a right-",
+ "id": "pages_main_rationale_475"
+ },
+ {
+ "label": "Render the right Metadata / Problems pane (Redesign \u00a74.4).",
+ "file_type": "rationale",
+ "source_file": "src/exlab_wizard/ui/pages/main.py",
+ "source_location": "L514",
+ "community": 192,
+ "norm_label": "render the right metadata / problems pane (redesign \u00a74.4).",
+ "id": "pages_main_rationale_514"
+ },
+ {
+ "label": "Render the centre-pane file list (Redesign \u00a74.3). Each row carries a right-",
+ "file_type": "rationale",
+ "source_file": "src/exlab_wizard/ui/pages/main.py",
+ "source_location": "L483",
+ "community": 182,
+ "norm_label": "render the centre-pane file list (redesign \u00a74.3). each row carries a right-",
+ "id": "pages_main_rationale_483"
+ },
+ {
+ "label": "Render the right Metadata / Problems pane (Redesign \u00a74.4).",
+ "file_type": "rationale",
+ "source_file": "src/exlab_wizard/ui/pages/main.py",
+ "source_location": "L522",
+ "community": 192,
+ "norm_label": "render the right metadata / problems pane (redesign \u00a74.4).",
+ "id": "pages_main_rationale_522"
+ },
+ {
+ "label": "Render the centre-pane file list (Redesign \u00a74.3). Each row carries a right-",
+ "file_type": "rationale",
+ "source_file": "src/exlab_wizard/ui/pages/main.py",
+ "source_location": "L489",
+ "community": 182,
+ "norm_label": "render the centre-pane file list (redesign \u00a74.3). each row carries a right-",
+ "id": "pages_main_rationale_489"
+ },
+ {
+ "label": "Render the right Metadata / Problems pane (Redesign \u00a74.4).",
+ "file_type": "rationale",
+ "source_file": "src/exlab_wizard/ui/pages/main.py",
+ "source_location": "L528",
+ "community": 192,
+ "norm_label": "render the right metadata / problems pane (redesign \u00a74.4).",
+ "id": "pages_main_rationale_528"
+ },
+ {
+ "label": "Render the centre-pane file list (Redesign \u00a74.3). Each row carries a right-",
+ "file_type": "rationale",
+ "source_file": "src/exlab_wizard/ui/pages/main.py",
+ "source_location": "L490",
+ "community": 182,
+ "norm_label": "render the centre-pane file list (redesign \u00a74.3). each row carries a right-",
+ "id": "pages_main_rationale_490"
+ },
+ {
+ "label": "Render the right Metadata / Problems pane (Redesign \u00a74.4).",
+ "file_type": "rationale",
+ "source_file": "src/exlab_wizard/ui/pages/main.py",
+ "source_location": "L529",
+ "community": 192,
+ "norm_label": "render the right metadata / problems pane (redesign \u00a74.4).",
+ "id": "pages_main_rationale_529"
+ },
+ {
+ "label": "Return the framed-pane card-shell style fragment (pure; testable). Always e",
+ "file_type": "rationale",
+ "source_file": "src/exlab_wizard/ui/components/framed_pane.py",
+ "source_location": "L66",
+ "community": 61,
+ "norm_label": "return the framed-pane card-shell style fragment (pure; testable). always e",
+ "id": "components_framed_pane_rationale_66"
+ },
+ {
+ "label": "Return the title-strip style fragment (pure; testable).",
+ "file_type": "rationale",
+ "source_file": "src/exlab_wizard/ui/components/framed_pane.py",
+ "source_location": "L75",
+ "community": 61,
+ "norm_label": "return the title-strip style fragment (pure; testable).",
+ "id": "components_framed_pane_rationale_75"
+ },
+ {
+ "label": "Return the scrollable-body style fragment (pure; testable).",
+ "file_type": "rationale",
+ "source_file": "src/exlab_wizard/ui/components/framed_pane.py",
+ "source_location": "L80",
+ "community": 61,
+ "norm_label": "return the scrollable-body style fragment (pure; testable).",
+ "id": "components_framed_pane_rationale_80"
+ },
+ {
+ "label": "Context manager rendering a framed, titled pane; yields the body element. U",
+ "file_type": "rationale",
+ "source_file": "src/exlab_wizard/ui/components/framed_pane.py",
+ "source_location": "L92",
+ "community": 61,
+ "norm_label": "context manager rendering a framed, titled pane; yields the body element. u",
+ "id": "components_framed_pane_rationale_92"
+ },
+ {
+ "label": "Key/value row whose value is a sync-status icon (tolerant). Mirrors :func:`",
+ "file_type": "rationale",
+ "source_file": "src/exlab_wizard/ui/components/metadata_pane.py",
+ "source_location": "L124",
+ "community": 132,
+ "norm_label": "key/value row whose value is a sync-status icon (tolerant). mirrors :func:`",
+ "id": "components_metadata_pane_rationale_124"
+ },
+ {
+ "label": "Render the SELECTED FILE / SELECTED FOLDER sub-card (Phase 4, \u00a74.4). Append",
+ "file_type": "rationale",
+ "source_file": "src/exlab_wizard/ui/components/metadata_pane.py",
+ "source_location": "L142",
+ "community": 132,
+ "norm_label": "render the selected file / selected folder sub-card (phase 4, \u00a74.4). append",
+ "id": "components_metadata_pane_rationale_142"
+ },
+ {
+ "label": "uvicorn ``--factory`` entrypoint.",
+ "file_type": "rationale",
+ "source_file": "tests/e2e/_test_app.py",
+ "source_location": "L928",
+ "community": 39,
+ "norm_label": "uvicorn ``--factory`` entrypoint.",
+ "id": "e2e_test_app_rationale_928"
+ },
+ {
+ "label": "Define every ``@ui.page(...)`` handler. Called from :func:`mount_ui`.",
+ "file_type": "rationale",
+ "source_file": "src/exlab_wizard/ui/mount.py",
+ "source_location": "L90",
+ "community": 39,
+ "norm_label": "define every ``@ui.page(...)`` handler. called from :func:`mount_ui`.",
+ "id": "ui_mount_rationale_90"
+ },
+ {
+ "label": "Build the LIMS-password Save / Clear handlers for the settings dialog. Cred",
+ "file_type": "rationale",
+ "source_file": "src/exlab_wizard/ui/mount.py",
+ "source_location": "L464",
+ "community": 77,
+ "norm_label": "build the lims-password save / clear handlers for the settings dialog. cred",
+ "id": "ui_mount_rationale_464"
+ },
+ {
+ "label": "Run the rclone NAS-remote probe and adapt it for the inline panel. rclone.c",
+ "file_type": "rationale",
+ "source_file": "src/exlab_wizard/ui/mount.py",
+ "source_location": "L518",
+ "community": 228,
+ "norm_label": "run the rclone nas-remote probe and adapt it for the inline panel. rclone.c",
+ "id": "ui_mount_rationale_518"
+ },
+ {
+ "label": "Write ``updated`` via ``deps.save_config`` and hot-reload components. Retur",
+ "file_type": "rationale",
+ "source_file": "src/exlab_wizard/ui/mount.py",
+ "source_location": "L574",
+ "community": 77,
+ "norm_label": "write ``updated`` via ``deps.save_config`` and hot-reload components. retur",
+ "id": "ui_mount_rationale_574"
+ },
+ {
+ "label": "Create the staging directory when the operator saved a non-empty path. ``st",
+ "file_type": "rationale",
+ "source_file": "src/exlab_wizard/ui/mount.py",
+ "source_location": "L606",
+ "community": 77,
+ "norm_label": "create the staging directory when the operator saved a non-empty path. ``st",
+ "id": "ui_mount_rationale_606"
+ },
+ {
+ "label": "Push ``updated`` into the running components (no tray relaunch). Wraps :fun",
+ "file_type": "rationale",
+ "source_file": "src/exlab_wizard/ui/mount.py",
+ "source_location": "L632",
+ "community": 77,
+ "norm_label": "push ``updated`` into the running components (no tray relaunch). wraps :fun",
+ "id": "ui_mount_rationale_632"
+ },
+ {
+ "label": "True when nas-mode equipment exist but the ``nas:`` remote is unusable. rcl",
+ "file_type": "rationale",
+ "source_file": "src/exlab_wizard/ui/mount.py",
+ "source_location": "L649",
+ "community": 82,
+ "norm_label": "true when nas-mode equipment exist but the ``nas:`` remote is unusable. rcl",
+ "id": "ui_mount_rationale_649"
+ },
+ {
+ "label": "Return True when the \u00a74.9 setup state is ``READY``. Delegates to :func:`api",
+ "file_type": "rationale",
+ "source_file": "src/exlab_wizard/ui/mount.py",
+ "source_location": "L673",
+ "community": 52,
+ "norm_label": "return true when the \u00a74.9 setup state is ``ready``. delegates to :func:`api",
+ "id": "ui_mount_rationale_673"
+ },
+ {
+ "label": "Register / unregister platform autostart; return the real post-op state. Re",
+ "file_type": "rationale",
+ "source_file": "src/exlab_wizard/ui/mount.py",
+ "source_location": "L705",
+ "community": 153,
+ "norm_label": "register / unregister platform autostart; return the real post-op state. re",
+ "id": "ui_mount_rationale_705"
+ },
+ {
+ "label": "Return the (session_id, session) pairs the Operations panel shows. The \u00a79.5",
+ "file_type": "rationale",
+ "source_file": "src/exlab_wizard/ui/mount.py",
+ "source_location": "L764",
+ "community": 204,
+ "norm_label": "return the (session_id, session) pairs the operations panel shows. the \u00a79.5",
+ "id": "ui_mount_rationale_764"
+ },
+ {
+ "label": "Return ``(panel_count, input_required, active)`` operation counts. ``panel_",
+ "file_type": "rationale",
+ "source_file": "src/exlab_wizard/ui/mount.py",
+ "source_location": "L781",
"community": 204,
+ "norm_label": "return ``(panel_count, input_required, active)`` operation counts. ``panel_",
+ "id": "ui_mount_rationale_781"
+ },
+ {
+ "label": "Return the \u00a74.9.3 next-action string for the banner subline. Unlike :func:`",
+ "file_type": "rationale",
+ "source_file": "src/exlab_wizard/ui/mount.py",
+ "source_location": "L798",
+ "community": 52,
+ "norm_label": "return the \u00a74.9.3 next-action string for the banner subline. unlike :func:`",
+ "id": "ui_mount_rationale_798"
+ },
+ {
+ "label": "Compose the ``?selected=...&right_pane=...`` query string for /main. Omits",
+ "file_type": "rationale",
+ "source_file": "src/exlab_wizard/ui/mount.py",
+ "source_location": "L828",
+ "community": 209,
+ "norm_label": "compose the ``?selected=...&right_pane=...`` query string for /main. omits",
+ "id": "ui_mount_rationale_828"
+ },
+ {
+ "label": "Map a selected node id to ``(kind, is_received)``. Mirrors the shape classi",
+ "file_type": "rationale",
+ "source_file": "src/exlab_wizard/ui/mount.py",
+ "source_location": "L861",
+ "community": 209,
+ "norm_label": "map a selected node id to ``(kind, is_received)``. mirrors the shape classi",
+ "id": "ui_mount_rationale_861"
+ },
+ {
+ "label": "Build the metadata-pane payload for the selected node, by kind. Returns ``{",
+ "file_type": "rationale",
+ "source_file": "src/exlab_wizard/ui/mount.py",
+ "source_location": "L905",
+ "community": 151,
+ "norm_label": "build the metadata-pane payload for the selected node, by kind. returns ``{",
+ "id": "ui_mount_rationale_905"
+ },
+ {
+ "label": "Project equipment-config fields into the owned-equipment payload.",
+ "file_type": "rationale",
+ "source_file": "src/exlab_wizard/ui/mount.py",
+ "source_location": "L932",
+ "community": 151,
+ "norm_label": "project equipment-config fields into the owned-equipment payload.",
+ "id": "ui_mount_rationale_932"
+ },
+ {
+ "label": "Return the relay-equipment payload (label, source_host).",
+ "file_type": "rationale",
+ "source_file": "src/exlab_wizard/ui/mount.py",
+ "source_location": "L947",
+ "community": 151,
+ "norm_label": "return the relay-equipment payload (label, source_host).",
+ "id": "ui_mount_rationale_947"
+ },
+ {
+ "label": "Derive a project payload from the on-disk project directory. ``node_id`` is",
+ "file_type": "rationale",
+ "source_file": "src/exlab_wizard/ui/mount.py",
+ "source_location": "L961",
+ "community": 210,
+ "norm_label": "derive a project payload from the on-disk project directory. ``node_id`` is",
+ "id": "ui_mount_rationale_961"
+ },
+ {
+ "label": "Count immediate child directories of ``parent`` whose names start with ``pre",
+ "file_type": "rationale",
+ "source_file": "src/exlab_wizard/ui/mount.py",
+ "source_location": "L995",
+ "community": 210,
+ "norm_label": "count immediate child directories of ``parent`` whose names start with ``pre",
+ "id": "ui_mount_rationale_995"
+ },
+ {
+ "label": "Decode the run's creation.json into the metadata-pane payload. Returns ``{}",
+ "file_type": "rationale",
+ "source_file": "src/exlab_wizard/ui/mount.py",
+ "source_location": "L1010",
+ "community": 163,
+ "norm_label": "decode the run's creation.json into the metadata-pane payload. returns ``{}",
+ "id": "ui_mount_rationale_1010"
+ },
+ {
+ "label": "Resolve a centre-list selection (file or folder) to a render payload. Phase",
+ "file_type": "rationale",
+ "source_file": "src/exlab_wizard/ui/mount.py",
+ "source_location": "L1053",
+ "community": 163,
+ "norm_label": "resolve a centre-list selection (file or folder) to a render payload. phase",
+ "id": "ui_mount_rationale_1053"
+ },
+ {
+ "label": "Aggregate a one-level folder scan into a folder-card payload (OQ-4/B). Phas",
+ "file_type": "rationale",
+ "source_file": "src/exlab_wizard/ui/mount.py",
+ "source_location": "L1102",
+ "community": 163,
+ "norm_label": "aggregate a one-level folder scan into a folder-card payload (oq-4/b). phas",
+ "id": "ui_mount_rationale_1102"
+ },
+ {
+ "label": "Mount / rebind the per-tab FolderFeed and return current entries. Uses ``ap",
+ "file_type": "rationale",
+ "source_file": "src/exlab_wizard/ui/mount.py",
+ "source_location": "L1143",
+ "community": 188,
+ "norm_label": "mount / rebind the per-tab folderfeed and return current entries. uses ``ap",
+ "id": "ui_mount_rationale_1143"
+ },
+ {
+ "label": "FolderFeed fetch hook. Skips when the tree just walked. Runs the synchronou",
+ "file_type": "rationale",
+ "source_file": "src/exlab_wizard/ui/mount.py",
+ "source_location": "L1204",
+ "community": 188,
+ "norm_label": "folderfeed fetch hook. skips when the tree just walked. runs the synchronou",
+ "id": "ui_mount_rationale_1204"
+ },
+ {
+ "label": "Force a fresh single-folder scan and prime the feed payload (OQ-1/A). The F",
+ "file_type": "rationale",
+ "source_file": "src/exlab_wizard/ui/mount.py",
+ "source_location": "L1228",
+ "community": 55,
+ "norm_label": "force a fresh single-folder scan and prime the feed payload (oq-1/a). the f",
+ "id": "ui_mount_rationale_1228"
+ },
+ {
+ "label": "Dispatch a per-run context action to its backend surface. Mirrors :func:`ap",
+ "file_type": "rationale",
+ "source_file": "src/exlab_wizard/ui/mount.py",
+ "source_location": "L1268",
+ "community": 55,
+ "norm_label": "dispatch a per-run context action to its backend surface. mirrors :func:`ap",
+ "id": "ui_mount_rationale_1268"
+ },
+ {
+ "label": "Bulk-clear every staged run whose sync job is verified. Wired from the file",
+ "file_type": "rationale",
+ "source_file": "src/exlab_wizard/ui/mount.py",
+ "source_location": "L1326",
+ "community": 161,
+ "norm_label": "bulk-clear every staged run whose sync job is verified. wired from the file",
+ "id": "ui_mount_rationale_1326"
+ },
+ {
+ "label": "Handle ``Open in OS`` / ``Copy path`` / ``Keep local`` file actions.",
+ "file_type": "rationale",
+ "source_file": "src/exlab_wizard/ui/mount.py",
+ "source_location": "L1371",
+ "community": 161,
+ "norm_label": "handle ``open in os`` / ``copy path`` / ``keep local`` file actions.",
+ "id": "ui_mount_rationale_1371"
+ },
+ {
+ "label": "Flip a file's ``keep_local`` flag via the orchestrator's writer. Operator-f",
+ "file_type": "rationale",
+ "source_file": "src/exlab_wizard/ui/mount.py",
+ "source_location": "L1410",
+ "community": 55,
+ "norm_label": "flip a file's ``keep_local`` flag via the orchestrator's writer. operator-f",
+ "id": "ui_mount_rationale_1410"
+ },
+ {
+ "label": "Launch the host OS's default opener for ``path``. Returns False on platform",
+ "file_type": "rationale",
+ "source_file": "src/exlab_wizard/ui/mount.py",
+ "source_location": "L1453",
+ "community": 164,
+ "norm_label": "launch the host os's default opener for ``path``. returns false on platform",
+ "id": "ui_mount_rationale_1453"
+ },
+ {
+ "label": "Build the Operations-panel rows from the live session store (T3). Uses the",
+ "file_type": "rationale",
+ "source_file": "src/exlab_wizard/ui/mount.py",
+ "source_location": "L1481",
+ "community": 28,
+ "norm_label": "build the operations-panel rows from the live session store (t3). uses the",
+ "id": "ui_mount_rationale_1481"
+ },
+ {
+ "label": "Open the in-flight Operations panel (Frontend \u00a79.5). Builds a fresh snapsho",
+ "file_type": "rationale",
+ "source_file": "src/exlab_wizard/ui/mount.py",
+ "source_location": "L1493",
+ "community": 28,
+ "norm_label": "open the in-flight operations panel (frontend \u00a79.5). builds a fresh snapsho",
+ "id": "ui_mount_rationale_1493"
+ },
+ {
+ "label": "Show a lightweight details/\"log\" dialog for one in-flight operation. The \u00a79",
+ "file_type": "rationale",
+ "source_file": "src/exlab_wizard/ui/mount.py",
+ "source_location": "L1517",
+ "community": 164,
+ "norm_label": "show a lightweight details/\"log\" dialog for one in-flight operation. the \u00a79",
+ "id": "ui_mount_rationale_1517"
+ },
+ {
+ "label": "Resume a suspended session by re-opening its \u00a79.1 input dialog (T5). Reads",
+ "file_type": "rationale",
+ "source_file": "src/exlab_wizard/ui/mount.py",
+ "source_location": "L1551",
+ "community": 28,
+ "norm_label": "resume a suspended session by re-opening its \u00a79.1 input dialog (t5). reads",
+ "id": "ui_mount_rationale_1551"
+ },
+ {
+ "label": "Open the \u00a79.1 escalation dialog; Submit resumes, Cancel confirms (T5). Subm",
+ "file_type": "rationale",
+ "source_file": "src/exlab_wizard/ui/mount.py",
+ "source_location": "L1583",
+ "community": 40,
+ "norm_label": "open the \u00a79.1 escalation dialog; submit resumes, cancel confirms (t5). subm",
+ "id": "ui_mount_rationale_1583"
+ },
+ {
+ "label": "Resolve the controller off ``deps`` and open the \u00a79.4 cancel dialog.",
+ "file_type": "rationale",
+ "source_file": "src/exlab_wizard/ui/mount.py",
+ "source_location": "L1621",
+ "community": 28,
+ "norm_label": "resolve the controller off ``deps`` and open the \u00a79.4 cancel dialog.",
+ "id": "ui_mount_rationale_1621"
+ },
+ {
+ "label": "Cancel an in-flight session via the \u00a79.4 Discard / Keep dialog (T4). The op",
+ "file_type": "rationale",
+ "source_file": "src/exlab_wizard/ui/mount.py",
+ "source_location": "L1630",
+ "community": 28,
+ "norm_label": "cancel an in-flight session via the \u00a79.4 discard / keep dialog (t4). the op",
+ "id": "ui_mount_rationale_1630"
+ },
+ {
+ "label": "Open a NiceGUI dialog showing the run's sync-queue job state. The operator-",
+ "file_type": "rationale",
+ "source_file": "src/exlab_wizard/ui/mount.py",
+ "source_location": "L1671",
+ "community": 55,
+ "norm_label": "open a nicegui dialog showing the run's sync-queue job state. the operator-",
+ "id": "ui_mount_rationale_1671"
+ },
+ {
+ "label": "Return the settings sections the operator still needs to fill in. Mirrors a",
+ "file_type": "rationale",
+ "source_file": "src/exlab_wizard/ui/mount.py",
+ "source_location": "L1719",
+ "community": 82,
"norm_label": "return the settings sections the operator still needs to fill in. mirrors a",
- "id": "ui_mount_rationale_1712"
+ "id": "ui_mount_rationale_1719"
+ },
+ {
+ "label": "Return the configured templates directory, or ``None``.",
+ "file_type": "rationale",
+ "source_file": "src/exlab_wizard/ui/mount.py",
+ "source_location": "L1752",
+ "community": 40,
+ "norm_label": "return the configured templates directory, or ``none``.",
+ "id": "ui_mount_rationale_1752"
+ },
+ {
+ "label": "List template directory names of ``template_type`` under templates_dir.",
+ "file_type": "rationale",
+ "source_file": "src/exlab_wizard/ui/mount.py",
+ "source_location": "L1760",
+ "community": 40,
+ "norm_label": "list template directory names of ``template_type`` under templates_dir.",
+ "id": "ui_mount_rationale_1760"
+ },
+ {
+ "label": "Map each ``template_type`` template name to its parsed copier questions. Re",
+ "file_type": "rationale",
+ "source_file": "src/exlab_wizard/ui/mount.py",
+ "source_location": "L1777",
+ "community": 63,
+ "norm_label": "map each ``template_type`` template name to its parsed copier questions. re",
+ "id": "ui_mount_rationale_1777"
+ },
+ {
+ "label": "Read the offline-catalogue projects (disconnected-workstation source). Read",
+ "file_type": "rationale",
+ "source_file": "src/exlab_wizard/ui/mount.py",
+ "source_location": "L1810",
+ "community": 162,
+ "norm_label": "read the offline-catalogue projects (disconnected-workstation source). read",
+ "id": "ui_mount_rationale_1810"
+ },
+ {
+ "label": "Return the LIMS projects backing the project wizard's picker. Tries the liv",
+ "file_type": "rationale",
+ "source_file": "src/exlab_wizard/ui/mount.py",
+ "source_location": "L1844",
+ "community": 162,
+ "norm_label": "return the lims projects backing the project wizard's picker. tries the liv",
+ "id": "ui_mount_rationale_1844"
+ },
+ {
+ "label": "Return the configured equipment IDs.",
+ "file_type": "rationale",
+ "source_file": "src/exlab_wizard/ui/mount.py",
+ "source_location": "L1874",
+ "community": 63,
+ "norm_label": "return the configured equipment ids.",
+ "id": "ui_mount_rationale_1874"
+ },
+ {
+ "label": "Await a controller session's pipeline task and return the final handle. ``c",
+ "file_type": "rationale",
+ "source_file": "src/exlab_wizard/ui/mount.py",
+ "source_location": "L1882",
+ "community": 63,
+ "norm_label": "await a controller session's pipeline task and return the final handle. ``c",
+ "id": "ui_mount_rationale_1882"
+ },
+ {
+ "label": "Fold the controller's WS frames into the wizard's live phase bar (T2) and su",
+ "file_type": "rationale",
+ "source_file": "src/exlab_wizard/ui/mount.py",
+ "source_location": "L1901",
+ "community": 40,
+ "norm_label": "fold the controller's ws frames into the wizard's live phase bar (t2) and su",
+ "id": "ui_mount_rationale_1901"
+ },
+ {
+ "label": "Best-effort close of a NiceGUI dialog (no-op when ``None`` / test mode).",
+ "file_type": "rationale",
+ "source_file": "src/exlab_wizard/ui/mount.py",
+ "source_location": "L1944",
+ "community": 40,
+ "norm_label": "best-effort close of a nicegui dialog (no-op when ``none`` / test mode).",
+ "id": "ui_mount_rationale_1944"
+ },
+ {
+ "label": "Build a ProjectCreateRequest from the wizard state and run it.",
+ "file_type": "rationale",
+ "source_file": "src/exlab_wizard/ui/mount.py",
+ "source_location": "L1952",
+ "community": 63,
+ "norm_label": "build a projectcreaterequest from the wizard state and run it.",
+ "id": "ui_mount_rationale_1952"
+ },
+ {
+ "label": "Build a RunCreateRequest from the wizard state and run it.",
+ "file_type": "rationale",
+ "source_file": "src/exlab_wizard/ui/mount.py",
+ "source_location": "L1985",
+ "community": 99,
+ "norm_label": "build a runcreaterequest from the wizard state and run it.",
+ "id": "ui_mount_rationale_1985"
+ },
+ {
+ "label": "Drive a create_* call to completion and toast the outcome. When ``wizard_st",
+ "file_type": "rationale",
+ "source_file": "src/exlab_wizard/ui/mount.py",
+ "source_location": "L2026",
+ "community": 99,
+ "norm_label": "drive a create_* call to completion and toast the outcome. when ``wizard_st",
+ "id": "ui_mount_rationale_2026"
+ },
+ {
+ "label": "Run the validator audit, swallowing failures to a WARN log.",
+ "file_type": "rationale",
+ "source_file": "src/exlab_wizard/ui/mount.py",
+ "source_location": "L2069",
+ "community": 99,
+ "norm_label": "run the validator audit, swallowing failures to a warn log.",
+ "id": "ui_mount_rationale_2069"
+ },
+ {
+ "label": "Return the absolute path to the bundled ``assets/`` directory. Resolves bot",
+ "file_type": "rationale",
+ "source_file": "src/exlab_wizard/ui/theme.py",
+ "source_location": "L135",
+ "community": 39,
+ "norm_label": "return the absolute path to the bundled ``assets/`` directory. resolves bot",
+ "id": "ui_theme_rationale_135"
+ },
+ {
+ "label": "Mount the project's ``assets/`` directory at ``/assets``. Idempotent: a mod",
+ "file_type": "rationale",
+ "source_file": "src/exlab_wizard/ui/theme.py",
+ "source_location": "L150",
+ "community": 39,
+ "norm_label": "mount the project's ``assets/`` directory at ``/assets``. idempotent: a mod",
+ "id": "ui_theme_rationale_150"
+ },
+ {
+ "label": "Render the centre-pane file list. Pure render function. Double-clicking a f",
+ "file_type": "rationale",
+ "source_file": "src/exlab_wizard/ui/components/file_list.py",
+ "source_location": "L173",
+ "community": 202,
+ "norm_label": "render the centre-pane file list. pure render function. double-clicking a f",
+ "id": "components_file_list_rationale_173"
+ },
+ {
+ "label": "Render the file-list column header row (Name / Size / Modified / Status).",
+ "file_type": "rationale",
+ "source_file": "src/exlab_wizard/ui/components/file_list.py",
+ "source_location": "L215",
+ "community": 202,
+ "norm_label": "render the file-list column header row (name / size / modified / status).",
+ "id": "components_file_list_rationale_215"
+ },
+ {
+ "label": "Render the centre-pane file list (Redesign \u00a74.3). Each row carries a right-",
+ "file_type": "rationale",
+ "source_file": "src/exlab_wizard/ui/pages/main.py",
+ "source_location": "L485",
+ "community": 182,
+ "norm_label": "render the centre-pane file list (redesign \u00a74.3). each row carries a right-",
+ "id": "pages_main_rationale_485"
+ },
+ {
+ "label": "Render the right Metadata / Problems pane (Redesign \u00a74.4).",
+ "file_type": "rationale",
+ "source_file": "src/exlab_wizard/ui/pages/main.py",
+ "source_location": "L524",
+ "community": 192,
+ "norm_label": "render the right metadata / problems pane (redesign \u00a74.4).",
+ "id": "pages_main_rationale_524"
+ },
+ {
+ "label": "uvicorn ``--factory`` entrypoint.",
+ "file_type": "rationale",
+ "source_file": "tests/e2e/_test_app.py",
+ "source_location": "L910",
+ "community": 39,
+ "norm_label": "uvicorn ``--factory`` entrypoint.",
+ "id": "e2e_test_app_rationale_910"
+ },
+ {
+ "label": "uvicorn ``--factory`` entrypoint.",
+ "file_type": "rationale",
+ "source_file": "tests/e2e/_test_app.py",
+ "source_location": "L899",
+ "community": 39,
+ "norm_label": "uvicorn ``--factory`` entrypoint.",
+ "id": "e2e_test_app_rationale_899"
+ },
+ {
+ "label": "uvicorn ``--factory`` entrypoint.",
+ "file_type": "rationale",
+ "source_file": "tests/e2e/_test_app.py",
+ "source_location": "L896",
+ "community": 39,
+ "norm_label": "uvicorn ``--factory`` entrypoint.",
+ "id": "e2e_test_app_rationale_896"
+ },
+ {
+ "label": "RESUME \u2014 Main-window UI refresh (Phase 4 in progress)",
+ "file_type": "document",
+ "source_file": "RESUME.md",
+ "source_location": "L1",
+ "community": 235,
+ "norm_label": "resume \u2014 main-window ui refresh (phase 4 in progress)",
+ "id": "exlabwizard_resume_resume_main_window_ui_refresh_phase_4_in_progress"
+ },
+ {
+ "label": "A degraded folder scan (item_count=None / rollup=None) still renders.",
+ "file_type": "rationale",
+ "source_file": "tests/unit/ui/test_metadata_pane.py",
+ "source_location": "L120",
+ "community": 146,
+ "norm_label": "a degraded folder scan (item_count=none / rollup=none) still renders.",
+ "id": "ui_test_metadata_pane_rationale_120"
+ },
+ {
+ "label": "With no node selected, the sub-card sits beneath the empty-state hint.",
+ "file_type": "rationale",
+ "source_file": "tests/unit/ui/test_metadata_pane.py",
+ "source_location": "L142",
+ "community": 146,
+ "norm_label": "with no node selected, the sub-card sits beneath the empty-state hint.",
+ "id": "ui_test_metadata_pane_rationale_142"
+ },
+ {
+ "label": "A selected run node's content stays; the sub-card appends below it.",
+ "file_type": "rationale",
+ "source_file": "tests/unit/ui/test_metadata_pane.py",
+ "source_location": "L150",
+ "community": 146,
+ "norm_label": "a selected run node's content stays; the sub-card appends below it.",
+ "id": "ui_test_metadata_pane_rationale_150"
+ },
+ {
+ "label": "Nothing selected -> no scan, no write, no raise.",
+ "file_type": "rationale",
+ "source_file": "tests/unit/ui/test_mount.py",
+ "source_location": "L1535",
+ "community": 14,
+ "norm_label": "nothing selected -> no scan, no write, no raise.",
+ "id": "ui_test_mount_rationale_1535"
+ },
+ {
+ "label": "A failed scan keeps the existing payload and warns.",
+ "file_type": "rationale",
+ "source_file": "tests/unit/ui/test_mount.py",
+ "source_location": "L1543",
+ "community": 50,
+ "norm_label": "a failed scan keeps the existing payload and warns.",
+ "id": "ui_test_mount_rationale_1543"
+ },
+ {
+ "label": "macOS dispatches to the ``open`` command.",
+ "file_type": "rationale",
+ "source_file": "tests/unit/ui/test_mount.py",
+ "source_location": "L1582",
+ "community": 50,
+ "norm_label": "macos dispatches to the ``open`` command.",
+ "id": "ui_test_mount_rationale_1582"
+ },
+ {
+ "label": "Minimal NiceGUI surface stand-in: clipboard + navigate.to + notify.",
+ "file_type": "rationale",
+ "source_file": "tests/unit/ui/test_mount.py",
+ "source_location": "L1615",
+ "community": 14,
+ "norm_label": "minimal nicegui surface stand-in: clipboard + navigate.to + notify.",
+ "id": "ui_test_mount_rationale_1615"
+ },
+ {
+ "label": "``open_in_os`` action calls the platform opener and reports success.",
+ "file_type": "rationale",
+ "source_file": "tests/unit/ui/test_mount.py",
+ "source_location": "L1640",
+ "community": 14,
+ "norm_label": "``open_in_os`` action calls the platform opener and reports success.",
+ "id": "ui_test_mount_rationale_1640"
+ },
+ {
+ "label": "When the opener returns False the action surfaces a negative toast.",
+ "file_type": "rationale",
+ "source_file": "tests/unit/ui/test_mount.py",
+ "source_location": "L1652",
+ "community": 131,
+ "norm_label": "when the opener returns false the action surfaces a negative toast.",
+ "id": "ui_test_mount_rationale_1652"
+ },
+ {
+ "label": "``copy_path`` writes the entry path to the NiceGUI clipboard.",
+ "file_type": "rationale",
+ "source_file": "tests/unit/ui/test_mount.py",
+ "source_location": "L1661",
+ "community": 33,
+ "norm_label": "``copy_path`` writes the entry path to the nicegui clipboard.",
+ "id": "ui_test_mount_rationale_1661"
+ },
+ {
+ "label": "An unknown action verb is logged + toasted without raising.",
+ "file_type": "rationale",
+ "source_file": "tests/unit/ui/test_mount.py",
+ "source_location": "L1669",
+ "community": 125,
+ "norm_label": "an unknown action verb is logged + toasted without raising.",
+ "id": "ui_test_mount_rationale_1669"
+ },
+ {
+ "label": "An entry with no path triggers the early-return toast.",
+ "file_type": "rationale",
+ "source_file": "tests/unit/ui/test_mount.py",
+ "source_location": "L1676",
+ "community": 107,
+ "norm_label": "an entry with no path triggers the early-return toast.",
+ "id": "ui_test_mount_rationale_1676"
+ },
+ {
+ "label": "Run any pending mount background tasks to completion.",
+ "file_type": "rationale",
+ "source_file": "tests/unit/ui/test_mount.py",
+ "source_location": "L1696",
+ "community": 50,
+ "norm_label": "run any pending mount background tasks to completion.",
+ "id": "ui_test_mount_rationale_1696"
+ },
+ {
+ "label": "Force-sync routes to ``deps.nas_sync.enqueue`` with the run path.",
+ "file_type": "rationale",
+ "source_file": "tests/unit/ui/test_mount.py",
+ "source_location": "L1711",
+ "community": 86,
+ "norm_label": "force-sync routes to ``deps.nas_sync.enqueue`` with the run path.",
+ "id": "ui_test_mount_rationale_1711"
+ },
+ {
+ "label": "Force-sync without a wired NAS sync surfaces a negative toast (no raise).",
+ "file_type": "rationale",
+ "source_file": "tests/unit/ui/test_mount.py",
+ "source_location": "L1724",
+ "community": 33,
+ "norm_label": "force-sync without a wired nas sync surfaces a negative toast (no raise).",
+ "id": "ui_test_mount_rationale_1724"
+ },
+ {
+ "label": "The early-exit when config is missing keeps the action a no-op.",
+ "file_type": "rationale",
+ "source_file": "tests/unit/ui/test_mount.py",
+ "source_location": "L1731",
+ "community": 107,
+ "norm_label": "the early-exit when config is missing keeps the action a no-op.",
+ "id": "ui_test_mount_rationale_1731"
+ },
+ {
+ "label": "``view_log`` dispatches to the dialog opener helper.",
+ "file_type": "rationale",
+ "source_file": "tests/unit/ui/test_mount.py",
+ "source_location": "L1740",
+ "community": 33,
+ "norm_label": "``view_log`` dispatches to the dialog opener helper.",
+ "id": "ui_test_mount_rationale_1740"
+ },
+ {
+ "label": "An unknown action verb is reported but doesn't raise.",
+ "file_type": "rationale",
+ "source_file": "tests/unit/ui/test_mount.py",
+ "source_location": "L1750",
+ "community": 33,
+ "norm_label": "an unknown action verb is reported but doesn't raise.",
+ "id": "ui_test_mount_rationale_1750"
+ },
+ {
+ "label": "``clear_verified`` deletes the run directory via the local helper.",
+ "file_type": "rationale",
+ "source_file": "tests/unit/ui/test_mount.py",
+ "source_location": "L1759",
+ "community": 14,
+ "norm_label": "``clear_verified`` deletes the run directory via the local helper.",
+ "id": "ui_test_mount_rationale_1759"
+ },
+ {
+ "label": "The bulk action clears every ``synced`` row and toasts the count.",
+ "file_type": "rationale",
+ "source_file": "tests/unit/ui/test_mount.py",
+ "source_location": "L1784",
+ "community": 14,
+ "norm_label": "the bulk action clears every ``synced`` row and toasts the count.",
+ "id": "ui_test_mount_rationale_1784"
+ },
+ {
+ "label": "An exception from the clear sweep is caught + toasted.",
+ "file_type": "rationale",
+ "source_file": "tests/unit/ui/test_mount.py",
+ "source_location": "L1820",
+ "community": 125,
+ "norm_label": "an exception from the clear sweep is caught + toasted.",
+ "id": "ui_test_mount_rationale_1820"
+ },
+ {
+ "label": "Lightweight ``app`` stand-in carrying ``storage.tab``.",
+ "file_type": "rationale",
+ "source_file": "tests/unit/ui/test_mount.py",
+ "source_location": "L1844",
+ "community": 0,
+ "norm_label": "lightweight ``app`` stand-in carrying ``storage.tab``.",
+ "id": "ui_test_mount_rationale_1844"
+ },
+ {
+ "label": "Without a selected node the feed isn't started and returns ``[]``.",
+ "file_type": "rationale",
+ "source_file": "tests/unit/ui/test_mount.py",
+ "source_location": "L1855",
+ "community": 33,
+ "norm_label": "without a selected node the feed isn't started and returns ``[]``.",
+ "id": "ui_test_mount_rationale_1855"
+ },
+ {
+ "label": "The first call mounts a FolderFeed + RefreshCoordinator on tab storage.",
+ "file_type": "rationale",
+ "source_file": "tests/unit/ui/test_mount.py",
+ "source_location": "L1865",
+ "community": 50,
+ "norm_label": "the first call mounts a folderfeed + refreshcoordinator on tab storage.",
+ "id": "ui_test_mount_rationale_1865"
+ },
+ {
+ "label": "When the feed's last_payload is set, entries are projected into FileListEntr",
+ "file_type": "rationale",
+ "source_file": "tests/unit/ui/test_mount.py",
+ "source_location": "L1878",
+ "community": 86,
+ "norm_label": "when the feed's last_payload is set, entries are projected into filelistentr",
+ "id": "ui_test_mount_rationale_1878"
+ },
+ {
+ "label": "A successful scan records the refresh on the coordinator.",
+ "file_type": "rationale",
+ "source_file": "tests/unit/ui/test_mount.py",
+ "source_location": "L1937",
+ "community": 106,
+ "norm_label": "a successful scan records the refresh on the coordinator.",
+ "id": "ui_test_mount_rationale_1937"
+ },
+ {
+ "label": "A scan failure returns ``None`` so the feed keeps polling.",
+ "file_type": "rationale",
+ "source_file": "tests/unit/ui/test_mount.py",
+ "source_location": "L1956",
+ "community": 173,
+ "norm_label": "a scan failure returns ``none`` so the feed keeps polling.",
+ "id": "ui_test_mount_rationale_1956"
+ },
+ {
+ "label": "A run with no sync-queue job still renders a dialog without raising.",
+ "file_type": "rationale",
+ "source_file": "tests/unit/ui/test_mount.py",
+ "source_location": "L1972",
+ "community": 173,
+ "norm_label": "a run with no sync-queue job still renders a dialog without raising.",
+ "id": "ui_test_mount_rationale_1972"
+ },
+ {
+ "label": "A run with a sync-queue job renders its state without raising.",
+ "file_type": "rationale",
+ "source_file": "tests/unit/ui/test_mount.py",
+ "source_location": "L1981",
+ "community": 158,
+ "norm_label": "a run with a sync-queue job renders its state without raising.",
+ "id": "ui_test_mount_rationale_1981"
+ },
+ {
+ "label": "Any exception raised by a per-kind builder is logged + swallowed.",
+ "file_type": "rationale",
+ "source_file": "tests/unit/ui/test_mount.py",
+ "source_location": "L2009",
+ "community": 69,
+ "norm_label": "any exception raised by a per-kind builder is logged + swallowed.",
+ "id": "ui_test_mount_rationale_2009"
+ },
+ {
+ "label": "The relay payload pulls id+label from build_received_equipment_nodes.",
+ "file_type": "rationale",
+ "source_file": "tests/unit/ui/test_mount.py",
+ "source_location": "L2022",
+ "community": 158,
+ "norm_label": "the relay payload pulls id+label from build_received_equipment_nodes.",
+ "id": "ui_test_mount_rationale_2022"
+ },
+ {
+ "label": "An unknown relay id still produces a payload (best-effort label).",
+ "file_type": "rationale",
+ "source_file": "tests/unit/ui/test_mount.py",
+ "source_location": "L2038",
+ "community": 158,
+ "norm_label": "an unknown relay id still produces a payload (best-effort label).",
+ "id": "ui_test_mount_rationale_2038"
+ },
+ {
+ "label": "A node id without an equipment/project split returns ``{}``.",
+ "file_type": "rationale",
+ "source_file": "tests/unit/ui/test_mount.py",
+ "source_location": "L2045",
+ "community": 86,
+ "norm_label": "a node id without an equipment/project split returns ``{}``.",
+ "id": "ui_test_mount_rationale_2045"
+ },
+ {
+ "label": "Only directory children whose names start with the prefix are counted.",
+ "file_type": "rationale",
+ "source_file": "tests/unit/ui/test_mount.py",
+ "source_location": "L2056",
+ "community": 69,
+ "norm_label": "only directory children whose names start with the prefix are counted.",
+ "id": "ui_test_mount_rationale_2056"
+ },
+ {
+ "label": "A corrupt creation.json yields {path, name}, never crashes.",
+ "file_type": "rationale",
+ "source_file": "tests/unit/ui/test_mount.py",
+ "source_location": "L2065",
+ "community": 157,
+ "norm_label": "a corrupt creation.json yields {path, name}, never crashes.",
+ "id": "ui_test_mount_rationale_2065"
+ },
+ {
+ "label": "When nas_sync.enqueue raises, the background task swallows + toasts.",
+ "file_type": "rationale",
+ "source_file": "tests/unit/ui/test_mount.py",
+ "source_location": "L2078",
+ "community": 69,
+ "norm_label": "when nas_sync.enqueue raises, the background task swallows + toasts.",
+ "id": "ui_test_mount_rationale_2078"
+ },
+ {
+ "label": "When the clear helper raises, the background task swallows + toasts.",
+ "file_type": "rationale",
+ "source_file": "tests/unit/ui/test_mount.py",
+ "source_location": "L2094",
+ "community": 106,
+ "norm_label": "when the clear helper raises, the background task swallows + toasts.",
+ "id": "ui_test_mount_rationale_2094"
+ },
+ {
+ "label": "The 0-file path reports ``already cleared`` rather than ``cleared N``.",
+ "file_type": "rationale",
+ "source_file": "tests/unit/ui/test_mount.py",
+ "source_location": "L2110",
+ "community": 106,
+ "norm_label": "the 0-file path reports ``already cleared`` rather than ``cleared n``.",
+ "id": "ui_test_mount_rationale_2110"
+ },
+ {
+ "label": "A clipboard write failure is caught and reported as a negative toast.",
+ "file_type": "rationale",
+ "source_file": "tests/unit/ui/test_mount.py",
+ "source_location": "L2123",
+ "community": 173,
+ "norm_label": "a clipboard write failure is caught and reported as a negative toast.",
+ "id": "ui_test_mount_rationale_2123"
+ },
+ {
+ "label": "A fake ``ui`` whose factories build recording stand-ins. Unlike ``_UiSpy``",
+ "file_type": "rationale",
+ "source_file": "tests/unit/ui/test_mount.py",
+ "source_location": "L2160",
+ "community": 0,
+ "norm_label": "a fake ``ui`` whose factories build recording stand-ins. unlike ``_uispy``",
+ "id": "ui_test_mount_rationale_2160"
+ },
+ {
+ "label": "No probe wired -> a failure result rather than a crash.",
+ "file_type": "rationale",
+ "source_file": "tests/unit/ui/test_mount.py",
+ "source_location": "L2204",
+ "community": 170,
+ "norm_label": "no probe wired -> a failure result rather than a crash.",
+ "id": "ui_test_mount_rationale_2204"
+ },
+ {
+ "label": "A reachable probe maps ok/latency into a Connected result.",
+ "file_type": "rationale",
+ "source_file": "tests/unit/ui/test_mount.py",
+ "source_location": "L2216",
+ "community": 157,
+ "norm_label": "a reachable probe maps ok/latency into a connected result.",
+ "id": "ui_test_mount_rationale_2216"
+ },
+ {
+ "label": "An async probe is awaited before its dict is mapped.",
+ "file_type": "rationale",
+ "source_file": "tests/unit/ui/test_mount.py",
+ "source_location": "L2243",
+ "community": 180,
+ "norm_label": "an async probe is awaited before its dict is mapped.",
+ "id": "ui_test_mount_rationale_2243"
+ },
+ {
+ "label": "A half-wired install names its first-failing gate as the next action.",
+ "file_type": "rationale",
+ "source_file": "tests/unit/ui/test_mount.py",
+ "source_location": "L2273",
+ "community": 69,
+ "norm_label": "a half-wired install names its first-failing gate as the next action.",
+ "id": "ui_test_mount_rationale_2273"
+ },
+ {
+ "label": "A fully-satisfied install has no outstanding next action.",
+ "file_type": "rationale",
+ "source_file": "tests/unit/ui/test_mount.py",
+ "source_location": "L2280",
+ "community": 325,
+ "norm_label": "a fully-satisfied install has no outstanding next action.",
+ "id": "ui_test_mount_rationale_2280"
+ },
+ {
+ "label": "No sync-state writer wired -> negative toast, no task spawned.",
+ "file_type": "rationale",
+ "source_file": "tests/unit/ui/test_mount.py",
+ "source_location": "L2304",
+ "community": 106,
+ "norm_label": "no sync-state writer wired -> negative toast, no task spawned.",
+ "id": "ui_test_mount_rationale_2304"
+ },
+ {
+ "label": "A path with no enclosing run root surfaces a negative toast.",
+ "file_type": "rationale",
+ "source_file": "tests/unit/ui/test_mount.py",
+ "source_location": "L2313",
+ "community": 14,
+ "norm_label": "a path with no enclosing run root surfaces a negative toast.",
+ "id": "ui_test_mount_rationale_2313"
+ },
+ {
+ "label": "A resolvable file flips keep_local via the writer and fires on_done.",
+ "file_type": "rationale",
+ "source_file": "tests/unit/ui/test_mount.py",
+ "source_location": "L2324",
+ "community": 23,
+ "norm_label": "a resolvable file flips keep_local via the writer and fires on_done.",
+ "id": "ui_test_mount_rationale_2324"
},
{
- "label": "Return the configured templates directory, or ``None``.",
+ "label": "The ``keep_local`` action routes to ``_toggle_keep_local``.",
+ "file_type": "rationale",
+ "source_file": "tests/unit/ui/test_mount.py",
+ "source_location": "L2379",
+ "community": 14,
+ "norm_label": "the ``keep_local`` action routes to ``_toggle_keep_local``.",
+ "id": "ui_test_mount_rationale_2379"
+ },
+ {
+ "label": "On win32 the helper calls ``os.startfile`` and reports success.",
+ "file_type": "rationale",
+ "source_file": "tests/unit/ui/test_mount.py",
+ "source_location": "L2396",
+ "community": 170,
+ "norm_label": "on win32 the helper calls ``os.startfile`` and reports success.",
+ "id": "ui_test_mount_rationale_2396"
+ },
+ {
+ "label": "No controller -> a negative toast and no dialog open.",
+ "file_type": "rationale",
+ "source_file": "tests/unit/ui/test_mount.py",
+ "source_location": "L2430",
+ "community": 180,
+ "norm_label": "no controller -> a negative toast and no dialog open.",
+ "id": "ui_test_mount_rationale_2430"
+ },
+ {
+ "label": "The details dialog renders the session state plus pending/error lines.",
+ "file_type": "rationale",
+ "source_file": "tests/unit/ui/test_mount.py",
+ "source_location": "L2457",
+ "community": 300,
+ "norm_label": "the details dialog renders the session state plus pending/error lines.",
+ "id": "ui_test_mount_rationale_2457"
+ },
+ {
+ "label": "A session not awaiting input cannot be resumed -> negative toast.",
+ "file_type": "rationale",
+ "source_file": "tests/unit/ui/test_mount.py",
+ "source_location": "L2481",
+ "community": 14,
+ "norm_label": "a session not awaiting input cannot be resumed -> negative toast.",
+ "id": "ui_test_mount_rationale_2481"
+ },
+ {
+ "label": "A suspended session re-opens its escalation dialog with parked fields.",
+ "file_type": "rationale",
+ "source_file": "tests/unit/ui/test_mount.py",
+ "source_location": "L2490",
+ "community": 171,
+ "norm_label": "a suspended session re-opens its escalation dialog with parked fields.",
+ "id": "ui_test_mount_rationale_2490"
+ },
+ {
+ "label": "The dialog's Submit handler calls ``controller.resume`` in the background.",
+ "file_type": "rationale",
+ "source_file": "tests/unit/ui/test_mount.py",
+ "source_location": "L2519",
+ "community": 23,
+ "norm_label": "the dialog's submit handler calls ``controller.resume`` in the background.",
+ "id": "ui_test_mount_rationale_2519"
+ },
+ {
+ "label": "The dialog's Cancel handler routes through ``_cancel_session``.",
+ "file_type": "rationale",
+ "source_file": "tests/unit/ui/test_mount.py",
+ "source_location": "L2551",
+ "community": 23,
+ "norm_label": "the dialog's cancel handler routes through ``_cancel_session``.",
+ "id": "ui_test_mount_rationale_2551"
+ },
+ {
+ "label": "The \u00a79.4 dialog's Discard button cancels with discard_files=True.",
+ "file_type": "rationale",
+ "source_file": "tests/unit/ui/test_mount.py",
+ "source_location": "L2591",
+ "community": 170,
+ "norm_label": "the \u00a79.4 dialog's discard button cancels with discard_files=true.",
+ "id": "ui_test_mount_rationale_2591"
+ },
+ {
+ "label": "The Keep-files button cancels with discard_files=False.",
+ "file_type": "rationale",
+ "source_file": "tests/unit/ui/test_mount.py",
+ "source_location": "L2610",
+ "community": 171,
+ "norm_label": "the keep-files button cancels with discard_files=false.",
+ "id": "ui_test_mount_rationale_2610"
+ },
+ {
+ "label": "A cancel failure is caught and toasted, not raised.",
+ "file_type": "rationale",
+ "source_file": "tests/unit/ui/test_mount.py",
+ "source_location": "L2627",
+ "community": 172,
+ "norm_label": "a cancel failure is caught and toasted, not raised.",
+ "id": "ui_test_mount_rationale_2627"
+ },
+ {
+ "label": "The Back button closes the dialog without cancelling.",
+ "file_type": "rationale",
+ "source_file": "tests/unit/ui/test_mount.py",
+ "source_location": "L2643",
+ "community": 181,
+ "norm_label": "the back button closes the dialog without cancelling.",
+ "id": "ui_test_mount_rationale_2643"
+ },
+ {
+ "label": "With a job row, the dialog renders each populated field line.",
+ "file_type": "rationale",
+ "source_file": "tests/unit/ui/test_mount.py",
+ "source_location": "L2657",
+ "community": 171,
+ "norm_label": "with a job row, the dialog renders each populated field line.",
+ "id": "ui_test_mount_rationale_2657"
+ },
+ {
+ "label": "Without a job row the dialog shows the 'no sync job' line.",
+ "file_type": "rationale",
+ "source_file": "tests/unit/ui/test_mount.py",
+ "source_location": "L2685",
+ "community": 54,
+ "norm_label": "without a job row the dialog shows the 'no sync job' line.",
+ "id": "ui_test_mount_rationale_2685"
+ },
+ {
+ "label": "No progress view on the wizard state -> the consumer returns at once.",
+ "file_type": "rationale",
+ "source_file": "tests/unit/ui/test_mount.py",
+ "source_location": "L2701",
+ "community": 23,
+ "norm_label": "no progress view on the wizard state -> the consumer returns at once.",
+ "id": "ui_test_mount_rationale_2701"
+ },
+ {
+ "label": "An input_required frame opens the dialog; a done frame closes it.",
+ "file_type": "rationale",
+ "source_file": "tests/unit/ui/test_mount.py",
+ "source_location": "L2712",
+ "community": 23,
+ "norm_label": "an input_required frame opens the dialog; a done frame closes it.",
+ "id": "ui_test_mount_rationale_2712"
+ },
+ {
+ "label": "A subscribe error is logged, not raised.",
+ "file_type": "rationale",
+ "source_file": "tests/unit/ui/test_mount.py",
+ "source_location": "L2749",
+ "community": 23,
+ "norm_label": "a subscribe error is logged, not raised.",
+ "id": "ui_test_mount_rationale_2749"
+ },
+ {
+ "label": "Submitting a run with no template selected surfaces a negative toast.",
+ "file_type": "rationale",
+ "source_file": "tests/unit/ui/test_mount.py",
+ "source_location": "L2789",
+ "community": 170,
+ "norm_label": "submitting a run with no template selected surfaces a negative toast.",
+ "id": "ui_test_mount_rationale_2789"
+ },
+ {
+ "label": "``_render_run_wizard`` wires templates/equipment into the run-wizard page.",
+ "file_type": "rationale",
+ "source_file": "tests/unit/ui/test_mount.py",
+ "source_location": "L2800",
+ "community": 172,
+ "norm_label": "``_render_run_wizard`` wires templates/equipment into the run-wizard page.",
+ "id": "ui_test_mount_rationale_2800"
+ },
+ {
+ "label": "Non-EquipmentNode keys in the hierarchy are ignored; unknown root -> treated",
+ "file_type": "rationale",
+ "source_file": "tests/unit/ui/test_mount.py",
+ "source_location": "L2829",
+ "community": 54,
+ "norm_label": "non-equipmentnode keys in the hierarchy are ignored; unknown root -> treated",
+ "id": "ui_test_mount_rationale_2829"
+ },
+ {
+ "label": "The received_equipment kind routes to the relay-equipment builder.",
+ "file_type": "rationale",
+ "source_file": "tests/unit/ui/test_mount.py",
+ "source_location": "L2838",
+ "community": 181,
+ "norm_label": "the received_equipment kind routes to the relay-equipment builder.",
+ "id": "ui_test_mount_rationale_2838"
+ },
+ {
+ "label": "A matching equipment id projects its config fields into the payload.",
+ "file_type": "rationale",
+ "source_file": "tests/unit/ui/test_mount.py",
+ "source_location": "L2854",
+ "community": 54,
+ "norm_label": "a matching equipment id projects its config fields into the payload.",
+ "id": "ui_test_mount_rationale_2854"
+ },
+ {
+ "label": "A schema_version mismatch (read_catalogue -> None) yields ``[]``.",
+ "file_type": "rationale",
+ "source_file": "tests/unit/ui/test_mount.py",
+ "source_location": "L2876",
+ "community": 54,
+ "norm_label": "a schema_version mismatch (read_catalogue -> none) yields ``[]``.",
+ "id": "ui_test_mount_rationale_2876"
+ },
+ {
+ "label": "A raising ``app.storage.tab`` degrades to an in-memory feed (no tab).",
+ "file_type": "rationale",
+ "source_file": "tests/unit/ui/test_mount.py",
+ "source_location": "L2888",
+ "community": 50,
+ "norm_label": "a raising ``app.storage.tab`` degrades to an in-memory feed (no tab).",
+ "id": "ui_test_mount_rationale_2888"
+ },
+ {
+ "label": "A raising evaluator degrades to 'not ready' (banner stays up).",
+ "file_type": "rationale",
+ "source_file": "tests/unit/ui/test_mount.py",
+ "source_location": "L2910",
+ "community": 50,
+ "norm_label": "a raising evaluator degrades to 'not ready' (banner stays up).",
+ "id": "ui_test_mount_rationale_2910"
+ },
+ {
+ "label": "An equipment id absent from config yields ``{}``.",
+ "file_type": "rationale",
+ "source_file": "tests/unit/ui/test_mount.py",
+ "source_location": "L2923",
+ "community": 54,
+ "norm_label": "an equipment id absent from config yields ``{}``.",
+ "id": "ui_test_mount_rationale_2923"
+ },
+ {
+ "label": "With no SYNCED rows the sweep clears nothing and toasts 'none'.",
+ "file_type": "rationale",
+ "source_file": "tests/unit/ui/test_mount.py",
+ "source_location": "L2931",
+ "community": 351,
+ "norm_label": "with no synced rows the sweep clears nothing and toasts 'none'.",
+ "id": "ui_test_mount_rationale_2931"
+ },
+ {
+ "label": "A run root that can't yield a relative path surfaces a negative toast.",
+ "file_type": "rationale",
+ "source_file": "tests/unit/ui/test_mount.py",
+ "source_location": "L2948",
+ "community": 54,
+ "norm_label": "a run root that can't yield a relative path surfaces a negative toast.",
+ "id": "ui_test_mount_rationale_2948"
+ },
+ {
+ "label": "A failing ``controller.resume`` is caught + toasted, not raised.",
+ "file_type": "rationale",
+ "source_file": "tests/unit/ui/test_mount.py",
+ "source_location": "L2966",
+ "community": 23,
+ "norm_label": "a failing ``controller.resume`` is caught + toasted, not raised.",
+ "id": "ui_test_mount_rationale_2966"
+ },
+ {
+ "label": "An import/engine failure in the outer try yields ``{}``.",
+ "file_type": "rationale",
+ "source_file": "tests/unit/ui/test_mount.py",
+ "source_location": "L2995",
+ "community": 172,
+ "norm_label": "an import/engine failure in the outer try yields ``{}``.",
+ "id": "ui_test_mount_rationale_2995"
+ },
+ {
+ "label": "A staging-query failure degrades to an empty dock, not a crash.",
+ "file_type": "rationale",
+ "source_file": "tests/unit/ui/test_mount.py",
+ "source_location": "L3011",
+ "community": 181,
+ "norm_label": "a staging-query failure degrades to an empty dock, not a crash.",
+ "id": "ui_test_mount_rationale_3011"
+ },
+ {
+ "label": "Dispatch a per-run context action to its backend surface. Mirrors :func:`ap",
"file_type": "rationale",
"source_file": "src/exlab_wizard/ui/mount.py",
- "source_location": "L1745",
- "community": 69,
- "norm_label": "return the configured templates directory, or ``none``.",
- "id": "ui_mount_rationale_1745"
+ "source_location": "L1261",
+ "community": 55,
+ "norm_label": "dispatch a per-run context action to its backend surface. mirrors :func:`ap",
+ "id": "ui_mount_rationale_1261"
+ },
+ {
+ "label": "Bulk-clear every staged run whose sync job is verified. Wired from the file",
+ "file_type": "rationale",
+ "source_file": "src/exlab_wizard/ui/mount.py",
+ "source_location": "L1319",
+ "community": 161,
+ "norm_label": "bulk-clear every staged run whose sync job is verified. wired from the file",
+ "id": "ui_mount_rationale_1319"
+ },
+ {
+ "label": "Handle ``Open in OS`` / ``Copy path`` / ``Keep local`` file actions.",
+ "file_type": "rationale",
+ "source_file": "src/exlab_wizard/ui/mount.py",
+ "source_location": "L1364",
+ "community": 161,
+ "norm_label": "handle ``open in os`` / ``copy path`` / ``keep local`` file actions.",
+ "id": "ui_mount_rationale_1364"
+ },
+ {
+ "label": "Flip a file's ``keep_local`` flag via the orchestrator's writer. Operator-f",
+ "file_type": "rationale",
+ "source_file": "src/exlab_wizard/ui/mount.py",
+ "source_location": "L1403",
+ "community": 55,
+ "norm_label": "flip a file's ``keep_local`` flag via the orchestrator's writer. operator-f",
+ "id": "ui_mount_rationale_1403"
+ },
+ {
+ "label": "Launch the host OS's default opener for ``path``. Returns False on platform",
+ "file_type": "rationale",
+ "source_file": "src/exlab_wizard/ui/mount.py",
+ "source_location": "L1446",
+ "community": 164,
+ "norm_label": "launch the host os's default opener for ``path``. returns false on platform",
+ "id": "ui_mount_rationale_1446"
+ },
+ {
+ "label": "Build the Operations-panel rows from the live session store (T3). Uses the",
+ "file_type": "rationale",
+ "source_file": "src/exlab_wizard/ui/mount.py",
+ "source_location": "L1474",
+ "community": 28,
+ "norm_label": "build the operations-panel rows from the live session store (t3). uses the",
+ "id": "ui_mount_rationale_1474"
+ },
+ {
+ "label": "Show a lightweight details/\"log\" dialog for one in-flight operation. The \u00a79",
+ "file_type": "rationale",
+ "source_file": "src/exlab_wizard/ui/mount.py",
+ "source_location": "L1510",
+ "community": 164,
+ "norm_label": "show a lightweight details/\"log\" dialog for one in-flight operation. the \u00a79",
+ "id": "ui_mount_rationale_1510"
+ },
+ {
+ "label": "Resume a suspended session by re-opening its \u00a79.1 input dialog (T5). Reads",
+ "file_type": "rationale",
+ "source_file": "src/exlab_wizard/ui/mount.py",
+ "source_location": "L1544",
+ "community": 28,
+ "norm_label": "resume a suspended session by re-opening its \u00a79.1 input dialog (t5). reads",
+ "id": "ui_mount_rationale_1544"
+ },
+ {
+ "label": "Open the \u00a79.1 escalation dialog; Submit resumes, Cancel confirms (T5). Subm",
+ "file_type": "rationale",
+ "source_file": "src/exlab_wizard/ui/mount.py",
+ "source_location": "L1576",
+ "community": 40,
+ "norm_label": "open the \u00a79.1 escalation dialog; submit resumes, cancel confirms (t5). subm",
+ "id": "ui_mount_rationale_1576"
+ },
+ {
+ "label": "Resolve the controller off ``deps`` and open the \u00a79.4 cancel dialog.",
+ "file_type": "rationale",
+ "source_file": "src/exlab_wizard/ui/mount.py",
+ "source_location": "L1614",
+ "community": 28,
+ "norm_label": "resolve the controller off ``deps`` and open the \u00a79.4 cancel dialog.",
+ "id": "ui_mount_rationale_1614"
+ },
+ {
+ "label": "Cancel an in-flight session via the \u00a79.4 Discard / Keep dialog (T4). The op",
+ "file_type": "rationale",
+ "source_file": "src/exlab_wizard/ui/mount.py",
+ "source_location": "L1623",
+ "community": 28,
+ "norm_label": "cancel an in-flight session via the \u00a79.4 discard / keep dialog (t4). the op",
+ "id": "ui_mount_rationale_1623"
+ },
+ {
+ "label": "Open a NiceGUI dialog showing the run's sync-queue job state. The operator-",
+ "file_type": "rationale",
+ "source_file": "src/exlab_wizard/ui/mount.py",
+ "source_location": "L1664",
+ "community": 55,
+ "norm_label": "open a nicegui dialog showing the run's sync-queue job state. the operator-",
+ "id": "ui_mount_rationale_1664"
+ },
+ {
+ "label": "Return the settings sections the operator still needs to fill in. Mirrors a",
+ "file_type": "rationale",
+ "source_file": "src/exlab_wizard/ui/mount.py",
+ "source_location": "L1712",
+ "community": 82,
+ "norm_label": "return the settings sections the operator still needs to fill in. mirrors a",
+ "id": "ui_mount_rationale_1712"
},
{
"label": "List template directory names of ``template_type`` under templates_dir.",
"file_type": "rationale",
"source_file": "src/exlab_wizard/ui/mount.py",
"source_location": "L1753",
- "community": 69,
+ "community": 40,
"norm_label": "list template directory names of ``template_type`` under templates_dir.",
"id": "ui_mount_rationale_1753"
},
@@ -72395,7 +77795,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/ui/mount.py",
"source_location": "L1770",
- "community": 69,
+ "community": 63,
"norm_label": "map each ``template_type`` template name to its parsed copier questions. re",
"id": "ui_mount_rationale_1770"
},
@@ -72404,7 +77804,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/ui/mount.py",
"source_location": "L1803",
- "community": 119,
+ "community": 162,
"norm_label": "read the offline-catalogue projects (disconnected-workstation source). read",
"id": "ui_mount_rationale_1803"
},
@@ -72413,25 +77813,16 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/ui/mount.py",
"source_location": "L1837",
- "community": 266,
+ "community": 162,
"norm_label": "return the lims projects backing the project wizard's picker. tries the liv",
"id": "ui_mount_rationale_1837"
},
- {
- "label": "Return the configured equipment IDs.",
- "file_type": "rationale",
- "source_file": "src/exlab_wizard/ui/mount.py",
- "source_location": "L1867",
- "community": 119,
- "norm_label": "return the configured equipment ids.",
- "id": "ui_mount_rationale_1867"
- },
{
"label": "Await a controller session's pipeline task and return the final handle. ``c",
"file_type": "rationale",
"source_file": "src/exlab_wizard/ui/mount.py",
"source_location": "L1875",
- "community": 100,
+ "community": 63,
"norm_label": "await a controller session's pipeline task and return the final handle. ``c",
"id": "ui_mount_rationale_1875"
},
@@ -72440,25 +77831,16 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/ui/mount.py",
"source_location": "L1894",
- "community": 194,
+ "community": 40,
"norm_label": "fold the controller's ws frames into the wizard's live phase bar (t2) and su",
"id": "ui_mount_rationale_1894"
},
- {
- "label": "Best-effort close of a NiceGUI dialog (no-op when ``None`` / test mode).",
- "file_type": "rationale",
- "source_file": "src/exlab_wizard/ui/mount.py",
- "source_location": "L1937",
- "community": 194,
- "norm_label": "best-effort close of a nicegui dialog (no-op when ``none`` / test mode).",
- "id": "ui_mount_rationale_1937"
- },
{
"label": "Build a ProjectCreateRequest from the wizard state and run it.",
"file_type": "rationale",
"source_file": "src/exlab_wizard/ui/mount.py",
"source_location": "L1945",
- "community": 119,
+ "community": 63,
"norm_label": "build a projectcreaterequest from the wizard state and run it.",
"id": "ui_mount_rationale_1945"
},
@@ -72467,7 +77849,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/ui/mount.py",
"source_location": "L1978",
- "community": 69,
+ "community": 99,
"norm_label": "build a runcreaterequest from the wizard state and run it.",
"id": "ui_mount_rationale_1978"
},
@@ -72476,7 +77858,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/ui/mount.py",
"source_location": "L2019",
- "community": 100,
+ "community": 99,
"norm_label": "drive a create_* call to completion and toast the outcome. when ``wizard_st",
"id": "ui_mount_rationale_2019"
},
@@ -72485,7 +77867,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/ui/mount.py",
"source_location": "L2062",
- "community": 100,
+ "community": 99,
"norm_label": "run the validator audit, swallowing failures to a warn log.",
"id": "ui_mount_rationale_2062"
},
@@ -72494,7 +77876,7 @@
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
"source_location": "L1217",
- "community": 418,
+ "community": 429,
"norm_label": "the phase 4 params default empty and drop out of the url entirely.",
"id": "ui_test_mount_rationale_1217"
},
@@ -72503,7 +77885,7 @@
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
"source_location": "L1222",
- "community": 2,
+ "community": 430,
"norm_label": "``file`` keeps '/' readable but encodes spaces; ``q`` encodes everything.",
"id": "ui_test_mount_rationale_1222"
},
@@ -72512,7 +77894,7 @@
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
"source_location": "L1236",
- "community": 350,
+ "community": 80,
"norm_label": "equipment / project / run / received_equipment all classify correctly.",
"id": "ui_test_mount_rationale_1236"
},
@@ -72521,7 +77903,7 @@
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
"source_location": "L1257",
- "community": 349,
+ "community": 350,
"norm_label": "a node id whose root is not in the hierarchy returns ``(none, false)``. gua",
"id": "ui_test_mount_rationale_1257"
},
@@ -72530,7 +77912,7 @@
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
"source_location": "L1279",
- "community": 164,
+ "community": 80,
"norm_label": "an equipment node payload pulls fields from config.equipment[id].",
"id": "ui_test_mount_rationale_1279"
},
@@ -72539,7 +77921,7 @@
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
"source_location": "L1297",
- "community": 164,
+ "community": 80,
"norm_label": "asking for a node that isn't in config.equipment returns ``{}``.",
"id": "ui_test_mount_rationale_1297"
},
@@ -72548,7 +77930,7 @@
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
"source_location": "L1304",
- "community": 164,
+ "community": 80,
"norm_label": "the project payload counts run_* and testrun_* directories.",
"id": "ui_test_mount_rationale_1304"
},
@@ -72557,7 +77939,7 @@
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
"source_location": "L1323",
- "community": 164,
+ "community": 80,
"norm_label": "the run payload decodes creation.json into the metadata fields.",
"id": "ui_test_mount_rationale_1323"
},
@@ -72566,7 +77948,7 @@
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
"source_location": "L1368",
- "community": 242,
+ "community": 33,
"norm_label": "a run dir without a creation.json yields {path, name}, not crash.",
"id": "ui_test_mount_rationale_1368"
},
@@ -72575,7 +77957,7 @@
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
"source_location": "L1377",
- "community": 103,
+ "community": 131,
"norm_label": "the selected-node fields end up on mainpagestate for the renderer.",
"id": "ui_test_mount_rationale_1377"
},
@@ -72584,7 +77966,7 @@
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
"source_location": "L1393",
- "community": 103,
+ "community": 131,
"norm_label": "phase 4 selection / search / density fields reach mainpagestate.",
"id": "ui_test_mount_rationale_1393"
},
@@ -72602,7 +77984,7 @@
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
"source_location": "L1440",
- "community": 269,
+ "community": 125,
"norm_label": "empty path or a path matching no current entry resolves to none.",
"id": "ui_test_mount_rationale_1440"
},
@@ -72611,7 +77993,7 @@
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
"source_location": "L1449",
- "community": 17,
+ "community": 14,
"norm_label": "a tombstone (\"on nas\") file has no on-disk copy, so size is none.",
"id": "ui_test_mount_rationale_1449"
},
@@ -72620,7 +78002,7 @@
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
"source_location": "L1470",
- "community": 62,
+ "community": 33,
"norm_label": "a directory match delegates to the one-level folder aggregate scan.",
"id": "ui_test_mount_rationale_1470"
},
@@ -72629,7 +78011,7 @@
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
"source_location": "L1497",
- "community": 2,
+ "community": 107,
"norm_label": "a scan failure yields item_count=none + neutral rollup, no raise.",
"id": "ui_test_mount_rationale_1497"
},
@@ -72638,25 +78020,16 @@
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
"source_location": "L1525",
- "community": 270,
+ "community": 107,
"norm_label": "a force-refresh writes the fresh scan onto the per-tab feed payload.",
"id": "ui_test_mount_rationale_1525"
},
- {
- "label": "Nothing selected -> no scan, no write, no raise.",
- "file_type": "rationale",
- "source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L1537",
- "community": 298,
- "norm_label": "nothing selected -> no scan, no write, no raise.",
- "id": "ui_test_mount_rationale_1537"
- },
{
"label": "A failed scan keeps the existing payload and warns.",
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
"source_location": "L1545",
- "community": 77,
+ "community": 50,
"norm_label": "a failed scan keeps the existing payload and warns.",
"id": "ui_test_mount_rationale_1545"
},
@@ -72665,7 +78038,7 @@
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
"source_location": "L1564",
- "community": 103,
+ "community": 107,
"norm_label": "an unknown sys.platform falls through to false so the toast can warn.",
"id": "ui_test_mount_rationale_1564"
},
@@ -72674,7 +78047,7 @@
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
"source_location": "L1570",
- "community": 103,
+ "community": 131,
"norm_label": "linux dispatches to xdg-open via subprocess.popen.",
"id": "ui_test_mount_rationale_1570"
},
@@ -72683,7 +78056,7 @@
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
"source_location": "L1584",
- "community": 299,
+ "community": 50,
"norm_label": "macos dispatches to the ``open`` command.",
"id": "ui_test_mount_rationale_1584"
},
@@ -72692,7 +78065,7 @@
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
"source_location": "L1593",
- "community": 269,
+ "community": 125,
"norm_label": "a subprocess failure is caught and surfaces false so the caller can toast.",
"id": "ui_test_mount_rationale_1593"
},
@@ -72701,7 +78074,7 @@
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
"source_location": "L1617",
- "community": 17,
+ "community": 14,
"norm_label": "minimal nicegui surface stand-in: clipboard + navigate.to + notify.",
"id": "ui_test_mount_rationale_1617"
},
@@ -72710,7 +78083,7 @@
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
"source_location": "L1642",
- "community": 17,
+ "community": 14,
"norm_label": "``open_in_os`` action calls the platform opener and reports success.",
"id": "ui_test_mount_rationale_1642"
},
@@ -72719,7 +78092,7 @@
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
"source_location": "L1654",
- "community": 297,
+ "community": 131,
"norm_label": "when the opener returns false the action surfaces a negative toast.",
"id": "ui_test_mount_rationale_1654"
},
@@ -72728,7 +78101,7 @@
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
"source_location": "L1663",
- "community": 62,
+ "community": 33,
"norm_label": "``copy_path`` writes the entry path to the nicegui clipboard.",
"id": "ui_test_mount_rationale_1663"
},
@@ -72737,7 +78110,7 @@
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
"source_location": "L1671",
- "community": 162,
+ "community": 125,
"norm_label": "an unknown action verb is logged + toasted without raising.",
"id": "ui_test_mount_rationale_1671"
},
@@ -72746,7 +78119,7 @@
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
"source_location": "L1678",
- "community": 270,
+ "community": 107,
"norm_label": "an entry with no path triggers the early-return toast.",
"id": "ui_test_mount_rationale_1678"
},
@@ -72755,7 +78128,7 @@
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
"source_location": "L1698",
- "community": 77,
+ "community": 50,
"norm_label": "run any pending mount background tasks to completion.",
"id": "ui_test_mount_rationale_1698"
},
@@ -72764,7 +78137,7 @@
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
"source_location": "L1713",
- "community": 162,
+ "community": 86,
"norm_label": "force-sync routes to ``deps.nas_sync.enqueue`` with the run path.",
"id": "ui_test_mount_rationale_1713"
},
@@ -72773,25 +78146,16 @@
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
"source_location": "L1726",
- "community": 145,
+ "community": 33,
"norm_label": "force-sync without a wired nas sync surfaces a negative toast (no raise).",
"id": "ui_test_mount_rationale_1726"
},
- {
- "label": "The early-exit when config is missing keeps the action a no-op.",
- "file_type": "rationale",
- "source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L1733",
- "community": 103,
- "norm_label": "the early-exit when config is missing keeps the action a no-op.",
- "id": "ui_test_mount_rationale_1733"
- },
{
"label": "``view_log`` dispatches to the dialog opener helper.",
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
"source_location": "L1742",
- "community": 145,
+ "community": 33,
"norm_label": "``view_log`` dispatches to the dialog opener helper.",
"id": "ui_test_mount_rationale_1742"
},
@@ -72800,7 +78164,7 @@
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
"source_location": "L1752",
- "community": 145,
+ "community": 33,
"norm_label": "an unknown action verb is reported but doesn't raise.",
"id": "ui_test_mount_rationale_1752"
},
@@ -72809,7 +78173,7 @@
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
"source_location": "L1761",
- "community": 17,
+ "community": 14,
"norm_label": "``clear_verified`` deletes the run directory via the local helper.",
"id": "ui_test_mount_rationale_1761"
},
@@ -72818,7 +78182,7 @@
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
"source_location": "L1786",
- "community": 163,
+ "community": 14,
"norm_label": "the bulk action clears every ``synced`` row and toasts the count.",
"id": "ui_test_mount_rationale_1786"
},
@@ -72827,7 +78191,7 @@
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
"source_location": "L1813",
- "community": 55,
+ "community": 86,
"norm_label": "the early-exit when config is missing produces a toast, no task.",
"id": "ui_test_mount_rationale_1813"
},
@@ -72836,7 +78200,7 @@
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
"source_location": "L1822",
- "community": 162,
+ "community": 125,
"norm_label": "an exception from the clear sweep is caught + toasted.",
"id": "ui_test_mount_rationale_1822"
},
@@ -72845,7 +78209,7 @@
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
"source_location": "L1846",
- "community": 77,
+ "community": 158,
"norm_label": "lightweight ``app`` stand-in carrying ``storage.tab``.",
"id": "ui_test_mount_rationale_1846"
},
@@ -72854,7 +78218,7 @@
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
"source_location": "L1857",
- "community": 62,
+ "community": 33,
"norm_label": "without a selected node the feed isn't started and returns ``[]``.",
"id": "ui_test_mount_rationale_1857"
},
@@ -72863,7 +78227,7 @@
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
"source_location": "L1867",
- "community": 77,
+ "community": 50,
"norm_label": "the first call mounts a folderfeed + refreshcoordinator on tab storage.",
"id": "ui_test_mount_rationale_1867"
},
@@ -72872,7 +78236,7 @@
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
"source_location": "L1880",
- "community": 78,
+ "community": 86,
"norm_label": "when the feed's last_payload is set, entries are projected into filelistentr",
"id": "ui_test_mount_rationale_1880"
},
@@ -72881,7 +78245,7 @@
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
"source_location": "L1922",
- "community": 78,
+ "community": 157,
"norm_label": "the fetch is a no-op when refreshcoordinator just walked the tree.",
"id": "ui_test_mount_rationale_1922"
},
@@ -72890,7 +78254,7 @@
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
"source_location": "L1939",
- "community": 163,
+ "community": 106,
"norm_label": "a successful scan records the refresh on the coordinator.",
"id": "ui_test_mount_rationale_1939"
},
@@ -72899,7 +78263,7 @@
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
"source_location": "L1958",
- "community": 165,
+ "community": 173,
"norm_label": "a scan failure returns ``none`` so the feed keeps polling.",
"id": "ui_test_mount_rationale_1958"
},
@@ -72908,7 +78272,7 @@
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
"source_location": "L1974",
- "community": 165,
+ "community": 173,
"norm_label": "a run with no sync-queue job still renders a dialog without raising.",
"id": "ui_test_mount_rationale_1974"
},
@@ -72917,7 +78281,7 @@
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
"source_location": "L1983",
- "community": 62,
+ "community": 158,
"norm_label": "a run with a sync-queue job renders its state without raising.",
"id": "ui_test_mount_rationale_1983"
},
@@ -72926,7 +78290,7 @@
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
"source_location": "L2011",
- "community": 55,
+ "community": 69,
"norm_label": "any exception raised by a per-kind builder is logged + swallowed.",
"id": "ui_test_mount_rationale_2011"
},
@@ -72935,7 +78299,7 @@
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
"source_location": "L2024",
- "community": 62,
+ "community": 157,
"norm_label": "the relay payload pulls id+label from build_received_equipment_nodes.",
"id": "ui_test_mount_rationale_2024"
},
@@ -72944,7 +78308,7 @@
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
"source_location": "L2040",
- "community": 77,
+ "community": 158,
"norm_label": "an unknown relay id still produces a payload (best-effort label).",
"id": "ui_test_mount_rationale_2040"
},
@@ -72953,7 +78317,7 @@
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
"source_location": "L2047",
- "community": 78,
+ "community": 86,
"norm_label": "a node id without an equipment/project split returns ``{}``.",
"id": "ui_test_mount_rationale_2047"
},
@@ -72962,7 +78326,7 @@
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
"source_location": "L2053",
- "community": 78,
+ "community": 86,
"norm_label": "a missing parent dir returns 0 (no fs pre-check needed).",
"id": "ui_test_mount_rationale_2053"
},
@@ -72971,7 +78335,7 @@
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
"source_location": "L2058",
- "community": 296,
+ "community": 69,
"norm_label": "only directory children whose names start with the prefix are counted.",
"id": "ui_test_mount_rationale_2058"
},
@@ -72980,7 +78344,7 @@
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
"source_location": "L2067",
- "community": 295,
+ "community": 157,
"norm_label": "a corrupt creation.json yields {path, name}, never crashes.",
"id": "ui_test_mount_rationale_2067"
},
@@ -72989,7 +78353,7 @@
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
"source_location": "L2080",
- "community": 172,
+ "community": 69,
"norm_label": "when nas_sync.enqueue raises, the background task swallows + toasts.",
"id": "ui_test_mount_rationale_2080"
},
@@ -72998,7 +78362,7 @@
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
"source_location": "L2096",
- "community": 172,
+ "community": 106,
"norm_label": "when the clear helper raises, the background task swallows + toasts.",
"id": "ui_test_mount_rationale_2096"
},
@@ -73007,7 +78371,7 @@
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
"source_location": "L2112",
- "community": 163,
+ "community": 106,
"norm_label": "the 0-file path reports ``already cleared`` rather than ``cleared n``.",
"id": "ui_test_mount_rationale_2112"
},
@@ -73016,7 +78380,7 @@
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
"source_location": "L2125",
- "community": 165,
+ "community": 173,
"norm_label": "a clipboard write failure is caught and reported as a negative toast.",
"id": "ui_test_mount_rationale_2125"
},
@@ -73034,7 +78398,7 @@
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
"source_location": "L2206",
- "community": 55,
+ "community": 69,
"norm_label": "no probe wired -> a failure result rather than a crash.",
"id": "ui_test_mount_rationale_2206"
},
@@ -73043,7 +78407,7 @@
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
"source_location": "L2218",
- "community": 62,
+ "community": 157,
"norm_label": "a reachable probe maps ok/latency into a connected result.",
"id": "ui_test_mount_rationale_2218"
},
@@ -73052,7 +78416,7 @@
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
"source_location": "L2245",
- "community": 78,
+ "community": 180,
"norm_label": "an async probe is awaited before its dict is mapped.",
"id": "ui_test_mount_rationale_2245"
},
@@ -73061,7 +78425,7 @@
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
"source_location": "L2275",
- "community": 172,
+ "community": 69,
"norm_label": "a half-wired install names its first-failing gate as the next action.",
"id": "ui_test_mount_rationale_2275"
},
@@ -73079,7 +78443,7 @@
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
"source_location": "L2306",
- "community": 163,
+ "community": 106,
"norm_label": "no sync-state writer wired -> negative toast, no task spawned.",
"id": "ui_test_mount_rationale_2306"
},
@@ -73088,7 +78452,7 @@
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
"source_location": "L2315",
- "community": 326,
+ "community": 14,
"norm_label": "a path with no enclosing run root surfaces a negative toast.",
"id": "ui_test_mount_rationale_2315"
},
@@ -73097,7 +78461,7 @@
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
"source_location": "L2326",
- "community": 26,
+ "community": 23,
"norm_label": "a resolvable file flips keep_local via the writer and fires on_done.",
"id": "ui_test_mount_rationale_2326"
},
@@ -73106,7 +78470,7 @@
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
"source_location": "L2381",
- "community": 17,
+ "community": 14,
"norm_label": "the ``keep_local`` action routes to ``_toggle_keep_local``.",
"id": "ui_test_mount_rationale_2381"
},
@@ -73115,7 +78479,7 @@
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
"source_location": "L2398",
- "community": 55,
+ "community": 170,
"norm_label": "on win32 the helper calls ``os.startfile`` and reports success.",
"id": "ui_test_mount_rationale_2398"
},
@@ -73124,7 +78488,7 @@
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
"source_location": "L2432",
- "community": 243,
+ "community": 180,
"norm_label": "no controller -> a negative toast and no dialog open.",
"id": "ui_test_mount_rationale_2432"
},
@@ -73133,7 +78497,7 @@
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
"source_location": "L2438",
- "community": 243,
+ "community": 180,
"norm_label": "a wired controller builds the modal and opens it (no raise).",
"id": "ui_test_mount_rationale_2438"
},
@@ -73142,7 +78506,7 @@
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
"source_location": "L2459",
- "community": 327,
+ "community": 300,
"norm_label": "the details dialog renders the session state plus pending/error lines.",
"id": "ui_test_mount_rationale_2459"
},
@@ -73151,7 +78515,7 @@
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
"source_location": "L2483",
- "community": 17,
+ "community": 14,
"norm_label": "a session not awaiting input cannot be resumed -> negative toast.",
"id": "ui_test_mount_rationale_2483"
},
@@ -73160,7 +78524,7 @@
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
"source_location": "L2492",
- "community": 94,
+ "community": 171,
"norm_label": "a suspended session re-opens its escalation dialog with parked fields.",
"id": "ui_test_mount_rationale_2492"
},
@@ -73169,7 +78533,7 @@
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
"source_location": "L2521",
- "community": 26,
+ "community": 23,
"norm_label": "the dialog's submit handler calls ``controller.resume`` in the background.",
"id": "ui_test_mount_rationale_2521"
},
@@ -73178,7 +78542,7 @@
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
"source_location": "L2553",
- "community": 125,
+ "community": 23,
"norm_label": "the dialog's cancel handler routes through ``_cancel_session``.",
"id": "ui_test_mount_rationale_2553"
},
@@ -73187,7 +78551,7 @@
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
"source_location": "L2593",
- "community": 55,
+ "community": 170,
"norm_label": "the \u00a79.4 dialog's discard button cancels with discard_files=true.",
"id": "ui_test_mount_rationale_2593"
},
@@ -73196,7 +78560,7 @@
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
"source_location": "L2612",
- "community": 26,
+ "community": 171,
"norm_label": "the keep-files button cancels with discard_files=false.",
"id": "ui_test_mount_rationale_2612"
},
@@ -73205,7 +78569,7 @@
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
"source_location": "L2629",
- "community": 185,
+ "community": 172,
"norm_label": "a cancel failure is caught and toasted, not raised.",
"id": "ui_test_mount_rationale_2629"
},
@@ -73214,7 +78578,7 @@
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
"source_location": "L2645",
- "community": 186,
+ "community": 181,
"norm_label": "the back button closes the dialog without cancelling.",
"id": "ui_test_mount_rationale_2645"
},
@@ -73223,7 +78587,7 @@
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
"source_location": "L2659",
- "community": 94,
+ "community": 171,
"norm_label": "with a job row, the dialog renders each populated field line.",
"id": "ui_test_mount_rationale_2659"
},
@@ -73232,7 +78596,7 @@
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
"source_location": "L2687",
- "community": 94,
+ "community": 54,
"norm_label": "without a job row the dialog shows the 'no sync job' line.",
"id": "ui_test_mount_rationale_2687"
},
@@ -73241,7 +78605,7 @@
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
"source_location": "L2703",
- "community": 26,
+ "community": 23,
"norm_label": "no progress view on the wizard state -> the consumer returns at once.",
"id": "ui_test_mount_rationale_2703"
},
@@ -73250,7 +78614,7 @@
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
"source_location": "L2714",
- "community": 26,
+ "community": 23,
"norm_label": "an input_required frame opens the dialog; a done frame closes it.",
"id": "ui_test_mount_rationale_2714"
},
@@ -73259,7 +78623,7 @@
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
"source_location": "L2751",
- "community": 125,
+ "community": 23,
"norm_label": "a subscribe error is logged, not raised.",
"id": "ui_test_mount_rationale_2751"
},
@@ -73268,7 +78632,7 @@
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
"source_location": "L2791",
- "community": 55,
+ "community": 170,
"norm_label": "submitting a run with no template selected surfaces a negative toast.",
"id": "ui_test_mount_rationale_2791"
},
@@ -73277,7 +78641,7 @@
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
"source_location": "L2802",
- "community": 185,
+ "community": 172,
"norm_label": "``_render_run_wizard`` wires templates/equipment into the run-wizard page.",
"id": "ui_test_mount_rationale_2802"
},
@@ -73286,7 +78650,7 @@
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
"source_location": "L2831",
- "community": 94,
+ "community": 54,
"norm_label": "non-equipmentnode keys in the hierarchy are ignored; unknown root -> treated",
"id": "ui_test_mount_rationale_2831"
},
@@ -73295,7 +78659,7 @@
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
"source_location": "L2840",
- "community": 186,
+ "community": 181,
"norm_label": "the received_equipment kind routes to the relay-equipment builder.",
"id": "ui_test_mount_rationale_2840"
},
@@ -73304,7 +78668,7 @@
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
"source_location": "L2856",
- "community": 94,
+ "community": 54,
"norm_label": "a matching equipment id projects its config fields into the payload.",
"id": "ui_test_mount_rationale_2856"
},
@@ -73313,7 +78677,7 @@
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
"source_location": "L2878",
- "community": 242,
+ "community": 54,
"norm_label": "a schema_version mismatch (read_catalogue -> none) yields ``[]``.",
"id": "ui_test_mount_rationale_2878"
},
@@ -73322,7 +78686,7 @@
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
"source_location": "L2890",
- "community": 77,
+ "community": 50,
"norm_label": "a raising ``app.storage.tab`` degrades to an in-memory feed (no tab).",
"id": "ui_test_mount_rationale_2890"
},
@@ -73331,7 +78695,7 @@
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
"source_location": "L2912",
- "community": 26,
+ "community": 50,
"norm_label": "a raising evaluator degrades to 'not ready' (banner stays up).",
"id": "ui_test_mount_rationale_2912"
},
@@ -73340,7 +78704,7 @@
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
"source_location": "L2925",
- "community": 125,
+ "community": 54,
"norm_label": "an equipment id absent from config yields ``{}``.",
"id": "ui_test_mount_rationale_2925"
},
@@ -73349,7 +78713,7 @@
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
"source_location": "L2933",
- "community": 17,
+ "community": 351,
"norm_label": "with no synced rows the sweep clears nothing and toasts 'none'.",
"id": "ui_test_mount_rationale_2933"
},
@@ -73358,7 +78722,7 @@
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
"source_location": "L2950",
- "community": 125,
+ "community": 54,
"norm_label": "a run root that can't yield a relative path surfaces a negative toast.",
"id": "ui_test_mount_rationale_2950"
},
@@ -73367,7 +78731,7 @@
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
"source_location": "L2968",
- "community": 26,
+ "community": 23,
"norm_label": "a failing ``controller.resume`` is caught + toasted, not raised.",
"id": "ui_test_mount_rationale_2968"
},
@@ -73376,7 +78740,7 @@
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
"source_location": "L2997",
- "community": 185,
+ "community": 172,
"norm_label": "an import/engine failure in the outer try yields ``{}``.",
"id": "ui_test_mount_rationale_2997"
},
@@ -73385,7 +78749,7 @@
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
"source_location": "L3013",
- "community": 186,
+ "community": 181,
"norm_label": "a staging-query failure degrades to an empty dock, not a crash.",
"id": "ui_test_mount_rationale_3013"
},
@@ -73394,7 +78758,7 @@
"file_type": "rationale",
"source_file": "tests/unit/ui/test_file_list.py",
"source_location": "L114",
- "community": 378,
+ "community": 139,
"norm_label": "a bare entry defaults ``keep_local`` and ``tombstone`` to false.",
"id": "ui_test_file_list_rationale_114"
},
@@ -73403,7 +78767,7 @@
"file_type": "rationale",
"source_file": "tests/unit/ui/test_file_list.py",
"source_location": "L121",
- "community": 379,
+ "community": 201,
"norm_label": "flipping ``keep_local`` is a modification (drives a re-render).",
"id": "ui_test_file_list_rationale_121"
},
@@ -73412,7 +78776,7 @@
"file_type": "rationale",
"source_file": "tests/unit/ui/test_file_list.py",
"source_location": "L129",
- "community": 381,
+ "community": 201,
"norm_label": "a file transitioning to a tombstone is a modification.",
"id": "ui_test_file_list_rationale_129"
},
@@ -73421,7 +78785,7 @@
"file_type": "rationale",
"source_file": "tests/unit/ui/test_file_list.py",
"source_location": "L137",
- "community": 380,
+ "community": 372,
"norm_label": "``file_context_keep_local`` is a distinct discriminator value.",
"id": "ui_test_file_list_rationale_137"
},
@@ -73430,7 +78794,7 @@
"file_type": "rationale",
"source_file": "tests/unit/ui/test_file_list.py",
"source_location": "L142",
- "community": 376,
+ "community": 373,
"norm_label": "the renderer wires the keep-local menu item and tombstone row. exercises th",
"id": "ui_test_file_list_rationale_142"
},
@@ -73439,7 +78803,7 @@
"file_type": "rationale",
"source_file": "tests/unit/ui/test_file_list.py",
"source_location": "L266",
- "community": 211,
+ "community": 147,
"norm_label": "the row whose path matches ``selected_path`` carries the selected fill.",
"id": "ui_test_file_list_rationale_266"
},
@@ -73448,7 +78812,7 @@
"file_type": "rationale",
"source_file": "tests/unit/ui/test_file_list.py",
"source_location": "L279",
- "community": 211,
+ "community": 147,
"norm_label": "a tombstone row carries the data-tombstone attr + dim/italic decoration.",
"id": "ui_test_file_list_rationale_279"
},
@@ -73457,7 +78821,7 @@
"file_type": "rationale",
"source_file": "tests/unit/ui/test_file_list.py",
"source_location": "L288",
- "community": 377,
+ "community": 147,
"norm_label": "single-click selection fires ``on_select`` for files and folders.",
"id": "ui_test_file_list_rationale_288"
},
@@ -73466,7 +78830,7 @@
"file_type": "rationale",
"source_file": "tests/unit/ui/test_file_list.py",
"source_location": "L301",
- "community": 211,
+ "community": 147,
"norm_label": "selection is opt-in: with no ``on_select`` the rows wire no click handler.",
"id": "ui_test_file_list_rationale_301"
},
@@ -73475,7 +78839,7 @@
"file_type": "rationale",
"source_file": "tests/unit/ui/test_file_list.py",
"source_location": "L80",
- "community": 378,
+ "community": 139,
"norm_label": "a bare entry defaults ``keep_local`` and ``tombstone`` to false.",
"id": "ui_test_file_list_rationale_80"
},
@@ -73484,7 +78848,7 @@
"file_type": "rationale",
"source_file": "tests/unit/ui/test_file_list.py",
"source_location": "L87",
- "community": 379,
+ "community": 201,
"norm_label": "flipping ``keep_local`` is a modification (drives a re-render).",
"id": "ui_test_file_list_rationale_87"
},
@@ -73493,7 +78857,7 @@
"file_type": "rationale",
"source_file": "tests/unit/ui/test_file_list.py",
"source_location": "L95",
- "community": 381,
+ "community": 201,
"norm_label": "a file transitioning to a tombstone is a modification.",
"id": "ui_test_file_list_rationale_95"
},
@@ -73502,7 +78866,7 @@
"file_type": "rationale",
"source_file": "tests/unit/ui/test_file_list.py",
"source_location": "L103",
- "community": 380,
+ "community": 372,
"norm_label": "``file_context_keep_local`` is a distinct discriminator value.",
"id": "ui_test_file_list_rationale_103"
},
@@ -73511,7 +78875,7 @@
"file_type": "rationale",
"source_file": "tests/unit/ui/test_file_list.py",
"source_location": "L108",
- "community": 376,
+ "community": 373,
"norm_label": "the renderer wires the keep-local menu item and tombstone row. exercises th",
"id": "ui_test_file_list_rationale_108"
},
@@ -73520,7 +78884,7 @@
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
"source_location": "L1395",
- "community": 103,
+ "community": 107,
"norm_label": "an unknown sys.platform falls through to false so the toast can warn.",
"id": "ui_test_mount_rationale_1395"
},
@@ -73529,7 +78893,7 @@
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
"source_location": "L1401",
- "community": 103,
+ "community": 131,
"norm_label": "linux dispatches to xdg-open via subprocess.popen.",
"id": "ui_test_mount_rationale_1401"
},
@@ -73538,7 +78902,7 @@
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
"source_location": "L1415",
- "community": 299,
+ "community": 50,
"norm_label": "macos dispatches to the ``open`` command.",
"id": "ui_test_mount_rationale_1415"
},
@@ -73547,7 +78911,7 @@
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
"source_location": "L1424",
- "community": 269,
+ "community": 125,
"norm_label": "a subprocess failure is caught and surfaces false so the caller can toast.",
"id": "ui_test_mount_rationale_1424"
},
@@ -73556,7 +78920,7 @@
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
"source_location": "L1448",
- "community": 17,
+ "community": 14,
"norm_label": "minimal nicegui surface stand-in: clipboard + navigate.to + notify.",
"id": "ui_test_mount_rationale_1448"
},
@@ -73565,7 +78929,7 @@
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
"source_location": "L1473",
- "community": 17,
+ "community": 14,
"norm_label": "``open_in_os`` action calls the platform opener and reports success.",
"id": "ui_test_mount_rationale_1473"
},
@@ -73574,7 +78938,7 @@
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
"source_location": "L1485",
- "community": 297,
+ "community": 131,
"norm_label": "when the opener returns false the action surfaces a negative toast.",
"id": "ui_test_mount_rationale_1485"
},
@@ -73583,7 +78947,7 @@
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
"source_location": "L1494",
- "community": 62,
+ "community": 33,
"norm_label": "``copy_path`` writes the entry path to the nicegui clipboard.",
"id": "ui_test_mount_rationale_1494"
},
@@ -73592,7 +78956,7 @@
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
"source_location": "L1502",
- "community": 162,
+ "community": 125,
"norm_label": "an unknown action verb is logged + toasted without raising.",
"id": "ui_test_mount_rationale_1502"
},
@@ -73601,7 +78965,7 @@
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
"source_location": "L1509",
- "community": 270,
+ "community": 107,
"norm_label": "an entry with no path triggers the early-return toast.",
"id": "ui_test_mount_rationale_1509"
},
@@ -73610,7 +78974,7 @@
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
"source_location": "L1529",
- "community": 77,
+ "community": 50,
"norm_label": "run any pending mount background tasks to completion.",
"id": "ui_test_mount_rationale_1529"
},
@@ -73619,7 +78983,7 @@
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
"source_location": "L1544",
- "community": 162,
+ "community": 86,
"norm_label": "force-sync routes to ``deps.nas_sync.enqueue`` with the run path.",
"id": "ui_test_mount_rationale_1544"
},
@@ -73628,7 +78992,7 @@
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
"source_location": "L1557",
- "community": 145,
+ "community": 33,
"norm_label": "force-sync without a wired nas sync surfaces a negative toast (no raise).",
"id": "ui_test_mount_rationale_1557"
},
@@ -73637,25 +79001,16 @@
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
"source_location": "L1573",
- "community": 145,
+ "community": 33,
"norm_label": "``view_log`` dispatches to the dialog opener helper.",
"id": "ui_test_mount_rationale_1573"
},
- {
- "label": "An unknown action verb is reported but doesn't raise.",
- "file_type": "rationale",
- "source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L1583",
- "community": 145,
- "norm_label": "an unknown action verb is reported but doesn't raise.",
- "id": "ui_test_mount_rationale_1583"
- },
{
"label": "``clear_verified`` deletes the run directory via the local helper.",
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
"source_location": "L1592",
- "community": 17,
+ "community": 14,
"norm_label": "``clear_verified`` deletes the run directory via the local helper.",
"id": "ui_test_mount_rationale_1592"
},
@@ -73664,7 +79019,7 @@
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
"source_location": "L1644",
- "community": 55,
+ "community": 86,
"norm_label": "the early-exit when config is missing produces a toast, no task.",
"id": "ui_test_mount_rationale_1644"
},
@@ -73673,7 +79028,7 @@
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
"source_location": "L1653",
- "community": 162,
+ "community": 125,
"norm_label": "an exception from the clear sweep is caught + toasted.",
"id": "ui_test_mount_rationale_1653"
},
@@ -73691,7 +79046,7 @@
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
"source_location": "L1688",
- "community": 62,
+ "community": 33,
"norm_label": "without a selected node the feed isn't started and returns ``[]``.",
"id": "ui_test_mount_rationale_1688"
},
@@ -73700,7 +79055,7 @@
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
"source_location": "L1753",
- "community": 78,
+ "community": 157,
"norm_label": "the fetch is a no-op when refreshcoordinator just walked the tree.",
"id": "ui_test_mount_rationale_1753"
},
@@ -73709,7 +79064,7 @@
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
"source_location": "L1770",
- "community": 163,
+ "community": 106,
"norm_label": "a successful scan records the refresh on the coordinator.",
"id": "ui_test_mount_rationale_1770"
},
@@ -73718,7 +79073,7 @@
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
"source_location": "L1789",
- "community": 165,
+ "community": 158,
"norm_label": "a scan failure returns ``none`` so the feed keeps polling.",
"id": "ui_test_mount_rationale_1789"
},
@@ -73727,7 +79082,7 @@
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
"source_location": "L1805",
- "community": 165,
+ "community": 173,
"norm_label": "a run with no sync-queue job still renders a dialog without raising.",
"id": "ui_test_mount_rationale_1805"
},
@@ -73736,7 +79091,7 @@
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
"source_location": "L1814",
- "community": 62,
+ "community": 158,
"norm_label": "a run with a sync-queue job renders its state without raising.",
"id": "ui_test_mount_rationale_1814"
},
@@ -73745,7 +79100,7 @@
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
"source_location": "L1842",
- "community": 55,
+ "community": 69,
"norm_label": "any exception raised by a per-kind builder is logged + swallowed.",
"id": "ui_test_mount_rationale_1842"
},
@@ -73754,7 +79109,7 @@
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
"source_location": "L1889",
- "community": 296,
+ "community": 69,
"norm_label": "only directory children whose names start with the prefix are counted.",
"id": "ui_test_mount_rationale_1889"
},
@@ -73763,25 +79118,16 @@
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
"source_location": "L1898",
- "community": 295,
+ "community": 157,
"norm_label": "a corrupt creation.json yields {path, name}, never crashes.",
"id": "ui_test_mount_rationale_1898"
},
- {
- "label": "When nas_sync.enqueue raises, the background task swallows + toasts.",
- "file_type": "rationale",
- "source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L1911",
- "community": 172,
- "norm_label": "when nas_sync.enqueue raises, the background task swallows + toasts.",
- "id": "ui_test_mount_rationale_1911"
- },
{
"label": "When the clear helper raises, the background task swallows + toasts.",
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
"source_location": "L1927",
- "community": 172,
+ "community": 69,
"norm_label": "when the clear helper raises, the background task swallows + toasts.",
"id": "ui_test_mount_rationale_1927"
},
@@ -73799,7 +79145,7 @@
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
"source_location": "L2037",
- "community": 55,
+ "community": 69,
"norm_label": "no probe wired -> a failure result rather than a crash.",
"id": "ui_test_mount_rationale_2037"
},
@@ -73808,7 +79154,7 @@
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
"source_location": "L2049",
- "community": 62,
+ "community": 157,
"norm_label": "a reachable probe maps ok/latency into a connected result.",
"id": "ui_test_mount_rationale_2049"
},
@@ -73817,7 +79163,7 @@
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
"source_location": "L2076",
- "community": 78,
+ "community": 180,
"norm_label": "an async probe is awaited before its dict is mapped.",
"id": "ui_test_mount_rationale_2076"
},
@@ -73826,7 +79172,7 @@
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
"source_location": "L2106",
- "community": 172,
+ "community": 69,
"norm_label": "a half-wired install names its first-failing gate as the next action.",
"id": "ui_test_mount_rationale_2106"
},
@@ -73844,7 +79190,7 @@
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
"source_location": "L2137",
- "community": 163,
+ "community": 106,
"norm_label": "no sync-state writer wired -> negative toast, no task spawned.",
"id": "ui_test_mount_rationale_2137"
},
@@ -73853,7 +79199,7 @@
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
"source_location": "L2146",
- "community": 326,
+ "community": 14,
"norm_label": "a path with no enclosing run root surfaces a negative toast.",
"id": "ui_test_mount_rationale_2146"
},
@@ -73862,7 +79208,7 @@
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
"source_location": "L2157",
- "community": 26,
+ "community": 23,
"norm_label": "a resolvable file flips keep_local via the writer and fires on_done.",
"id": "ui_test_mount_rationale_2157"
},
@@ -73871,7 +79217,7 @@
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
"source_location": "L2212",
- "community": 17,
+ "community": 14,
"norm_label": "the ``keep_local`` action routes to ``_toggle_keep_local``.",
"id": "ui_test_mount_rationale_2212"
},
@@ -73880,7 +79226,7 @@
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
"source_location": "L2229",
- "community": 55,
+ "community": 170,
"norm_label": "on win32 the helper calls ``os.startfile`` and reports success.",
"id": "ui_test_mount_rationale_2229"
},
@@ -73889,7 +79235,7 @@
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
"source_location": "L2263",
- "community": 243,
+ "community": 180,
"norm_label": "no controller -> a negative toast and no dialog open.",
"id": "ui_test_mount_rationale_2263"
},
@@ -73898,7 +79244,7 @@
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
"source_location": "L2269",
- "community": 243,
+ "community": 180,
"norm_label": "a wired controller builds the modal and opens it (no raise).",
"id": "ui_test_mount_rationale_2269"
},
@@ -73907,7 +79253,7 @@
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
"source_location": "L2290",
- "community": 327,
+ "community": 300,
"norm_label": "the details dialog renders the session state plus pending/error lines.",
"id": "ui_test_mount_rationale_2290"
},
@@ -73916,7 +79262,7 @@
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
"source_location": "L2314",
- "community": 17,
+ "community": 14,
"norm_label": "a session not awaiting input cannot be resumed -> negative toast.",
"id": "ui_test_mount_rationale_2314"
},
@@ -73925,7 +79271,7 @@
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
"source_location": "L2323",
- "community": 94,
+ "community": 171,
"norm_label": "a suspended session re-opens its escalation dialog with parked fields.",
"id": "ui_test_mount_rationale_2323"
},
@@ -73934,7 +79280,7 @@
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
"source_location": "L2352",
- "community": 26,
+ "community": 23,
"norm_label": "the dialog's submit handler calls ``controller.resume`` in the background.",
"id": "ui_test_mount_rationale_2352"
},
@@ -73943,7 +79289,7 @@
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
"source_location": "L2384",
- "community": 125,
+ "community": 23,
"norm_label": "the dialog's cancel handler routes through ``_cancel_session``.",
"id": "ui_test_mount_rationale_2384"
},
@@ -73952,7 +79298,7 @@
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
"source_location": "L2424",
- "community": 55,
+ "community": 170,
"norm_label": "the \u00a79.4 dialog's discard button cancels with discard_files=true.",
"id": "ui_test_mount_rationale_2424"
},
@@ -73961,7 +79307,7 @@
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
"source_location": "L2443",
- "community": 26,
+ "community": 171,
"norm_label": "the keep-files button cancels with discard_files=false.",
"id": "ui_test_mount_rationale_2443"
},
@@ -73970,7 +79316,7 @@
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
"source_location": "L2460",
- "community": 185,
+ "community": 172,
"norm_label": "a cancel failure is caught and toasted, not raised.",
"id": "ui_test_mount_rationale_2460"
},
@@ -73979,7 +79325,7 @@
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
"source_location": "L2476",
- "community": 186,
+ "community": 181,
"norm_label": "the back button closes the dialog without cancelling.",
"id": "ui_test_mount_rationale_2476"
},
@@ -73988,7 +79334,7 @@
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
"source_location": "L2518",
- "community": 94,
+ "community": 54,
"norm_label": "without a job row the dialog shows the 'no sync job' line.",
"id": "ui_test_mount_rationale_2518"
},
@@ -73997,7 +79343,7 @@
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
"source_location": "L2534",
- "community": 26,
+ "community": 23,
"norm_label": "no progress view on the wizard state -> the consumer returns at once.",
"id": "ui_test_mount_rationale_2534"
},
@@ -74006,7 +79352,7 @@
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
"source_location": "L2545",
- "community": 26,
+ "community": 23,
"norm_label": "an input_required frame opens the dialog; a done frame closes it.",
"id": "ui_test_mount_rationale_2545"
},
@@ -74015,7 +79361,7 @@
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
"source_location": "L2582",
- "community": 125,
+ "community": 23,
"norm_label": "a subscribe error is logged, not raised.",
"id": "ui_test_mount_rationale_2582"
},
@@ -74024,7 +79370,7 @@
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
"source_location": "L2622",
- "community": 55,
+ "community": 170,
"norm_label": "submitting a run with no template selected surfaces a negative toast.",
"id": "ui_test_mount_rationale_2622"
},
@@ -74033,7 +79379,7 @@
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
"source_location": "L2662",
- "community": 94,
+ "community": 54,
"norm_label": "non-equipmentnode keys in the hierarchy are ignored; unknown root -> treated",
"id": "ui_test_mount_rationale_2662"
},
@@ -74042,43 +79388,25 @@
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
"source_location": "L2671",
- "community": 186,
+ "community": 181,
"norm_label": "the received_equipment kind routes to the relay-equipment builder.",
"id": "ui_test_mount_rationale_2671"
},
- {
- "label": "A schema_version mismatch (read_catalogue -> None) yields ``[]``.",
- "file_type": "rationale",
- "source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L2709",
- "community": 242,
- "norm_label": "a schema_version mismatch (read_catalogue -> none) yields ``[]``.",
- "id": "ui_test_mount_rationale_2709"
- },
{
"label": "A raising ``app.storage.tab`` degrades to an in-memory feed (no tab).",
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
"source_location": "L2721",
- "community": 77,
+ "community": 50,
"norm_label": "a raising ``app.storage.tab`` degrades to an in-memory feed (no tab).",
"id": "ui_test_mount_rationale_2721"
},
- {
- "label": "A raising evaluator degrades to 'not ready' (banner stays up).",
- "file_type": "rationale",
- "source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L2743",
- "community": 26,
- "norm_label": "a raising evaluator degrades to 'not ready' (banner stays up).",
- "id": "ui_test_mount_rationale_2743"
- },
{
"label": "An equipment id absent from config yields ``{}``.",
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
"source_location": "L2756",
- "community": 125,
+ "community": 54,
"norm_label": "an equipment id absent from config yields ``{}``.",
"id": "ui_test_mount_rationale_2756"
},
@@ -74087,7 +79415,7 @@
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
"source_location": "L2764",
- "community": 17,
+ "community": 351,
"norm_label": "with no synced rows the sweep clears nothing and toasts 'none'.",
"id": "ui_test_mount_rationale_2764"
},
@@ -74096,7 +79424,7 @@
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
"source_location": "L2781",
- "community": 125,
+ "community": 54,
"norm_label": "a run root that can't yield a relative path surfaces a negative toast.",
"id": "ui_test_mount_rationale_2781"
},
@@ -74105,7 +79433,7 @@
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
"source_location": "L2799",
- "community": 26,
+ "community": 23,
"norm_label": "a failing ``controller.resume`` is caught + toasted, not raised.",
"id": "ui_test_mount_rationale_2799"
},
@@ -74114,25 +79442,16 @@
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
"source_location": "L2828",
- "community": 185,
+ "community": 172,
"norm_label": "an import/engine failure in the outer try yields ``{}``.",
"id": "ui_test_mount_rationale_2828"
},
- {
- "label": "Equipment / project / run / received_equipment all classify correctly.",
- "file_type": "rationale",
- "source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L1211",
- "community": 350,
- "norm_label": "equipment / project / run / received_equipment all classify correctly.",
- "id": "ui_test_mount_rationale_1211"
- },
{
"label": "A node id whose root is not in the hierarchy returns ``(None, False)``. Gua",
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
"source_location": "L1232",
- "community": 349,
+ "community": 350,
"norm_label": "a node id whose root is not in the hierarchy returns ``(none, false)``. gua",
"id": "ui_test_mount_rationale_1232"
},
@@ -74141,7 +79460,7 @@
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
"source_location": "L1254",
- "community": 164,
+ "community": 80,
"norm_label": "an equipment node payload pulls fields from config.equipment[id].",
"id": "ui_test_mount_rationale_1254"
},
@@ -74150,7 +79469,7 @@
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
"source_location": "L1272",
- "community": 164,
+ "community": 80,
"norm_label": "asking for a node that isn't in config.equipment returns ``{}``.",
"id": "ui_test_mount_rationale_1272"
},
@@ -74159,7 +79478,7 @@
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
"source_location": "L1298",
- "community": 164,
+ "community": 80,
"norm_label": "the run payload decodes creation.json into the metadata fields.",
"id": "ui_test_mount_rationale_1298"
},
@@ -74168,7 +79487,7 @@
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
"source_location": "L1343",
- "community": 242,
+ "community": 33,
"norm_label": "a run dir without a creation.json yields {path, name}, not crash.",
"id": "ui_test_mount_rationale_1343"
},
@@ -74177,7 +79496,7 @@
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
"source_location": "L1352",
- "community": 103,
+ "community": 131,
"norm_label": "the selected-node fields end up on mainpagestate for the renderer.",
"id": "ui_test_mount_rationale_1352"
},
@@ -74186,7 +79505,7 @@
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
"source_location": "L1370",
- "community": 103,
+ "community": 107,
"norm_label": "an unknown sys.platform falls through to false so the toast can warn.",
"id": "ui_test_mount_rationale_1370"
},
@@ -74195,7 +79514,7 @@
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
"source_location": "L1376",
- "community": 103,
+ "community": 131,
"norm_label": "linux dispatches to xdg-open via subprocess.popen.",
"id": "ui_test_mount_rationale_1376"
},
@@ -74204,7 +79523,7 @@
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
"source_location": "L1390",
- "community": 299,
+ "community": 50,
"norm_label": "macos dispatches to the ``open`` command.",
"id": "ui_test_mount_rationale_1390"
},
@@ -74213,7 +79532,7 @@
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
"source_location": "L1399",
- "community": 269,
+ "community": 125,
"norm_label": "a subprocess failure is caught and surfaces false so the caller can toast.",
"id": "ui_test_mount_rationale_1399"
},
@@ -74222,7 +79541,7 @@
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
"source_location": "L1423",
- "community": 17,
+ "community": 14,
"norm_label": "minimal nicegui surface stand-in: clipboard + navigate.to + notify.",
"id": "ui_test_mount_rationale_1423"
},
@@ -74231,7 +79550,7 @@
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
"source_location": "L1460",
- "community": 297,
+ "community": 131,
"norm_label": "when the opener returns false the action surfaces a negative toast.",
"id": "ui_test_mount_rationale_1460"
},
@@ -74240,7 +79559,7 @@
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
"source_location": "L1469",
- "community": 62,
+ "community": 33,
"norm_label": "``copy_path`` writes the entry path to the nicegui clipboard.",
"id": "ui_test_mount_rationale_1469"
},
@@ -74249,34 +79568,16 @@
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
"source_location": "L1477",
- "community": 162,
+ "community": 125,
"norm_label": "an unknown action verb is logged + toasted without raising.",
"id": "ui_test_mount_rationale_1477"
},
- {
- "label": "An entry with no path triggers the early-return toast.",
- "file_type": "rationale",
- "source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L1484",
- "community": 270,
- "norm_label": "an entry with no path triggers the early-return toast.",
- "id": "ui_test_mount_rationale_1484"
- },
- {
- "label": "Run any pending mount background tasks to completion.",
- "file_type": "rationale",
- "source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L1504",
- "community": 77,
- "norm_label": "run any pending mount background tasks to completion.",
- "id": "ui_test_mount_rationale_1504"
- },
{
"label": "Force-sync routes to ``deps.nas_sync.enqueue`` with the run path.",
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
"source_location": "L1519",
- "community": 162,
+ "community": 86,
"norm_label": "force-sync routes to ``deps.nas_sync.enqueue`` with the run path.",
"id": "ui_test_mount_rationale_1519"
},
@@ -74285,7 +79586,7 @@
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
"source_location": "L1532",
- "community": 145,
+ "community": 33,
"norm_label": "force-sync without a wired nas sync surfaces a negative toast (no raise).",
"id": "ui_test_mount_rationale_1532"
},
@@ -74294,7 +79595,7 @@
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
"source_location": "L1539",
- "community": 103,
+ "community": 107,
"norm_label": "the early-exit when config is missing keeps the action a no-op.",
"id": "ui_test_mount_rationale_1539"
},
@@ -74303,7 +79604,7 @@
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
"source_location": "L1548",
- "community": 145,
+ "community": 33,
"norm_label": "``view_log`` dispatches to the dialog opener helper.",
"id": "ui_test_mount_rationale_1548"
},
@@ -74312,7 +79613,7 @@
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
"source_location": "L1558",
- "community": 145,
+ "community": 33,
"norm_label": "an unknown action verb is reported but doesn't raise.",
"id": "ui_test_mount_rationale_1558"
},
@@ -74321,7 +79622,7 @@
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
"source_location": "L1567",
- "community": 17,
+ "community": 14,
"norm_label": "``clear_verified`` deletes the run directory via the local helper.",
"id": "ui_test_mount_rationale_1567"
},
@@ -74330,7 +79631,7 @@
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
"source_location": "L1619",
- "community": 55,
+ "community": 86,
"norm_label": "the early-exit when config is missing produces a toast, no task.",
"id": "ui_test_mount_rationale_1619"
},
@@ -74339,7 +79640,7 @@
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
"source_location": "L1628",
- "community": 162,
+ "community": 125,
"norm_label": "an exception from the clear sweep is caught + toasted.",
"id": "ui_test_mount_rationale_1628"
},
@@ -74348,7 +79649,7 @@
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
"source_location": "L1673",
- "community": 77,
+ "community": 50,
"norm_label": "the first call mounts a folderfeed + refreshcoordinator on tab storage.",
"id": "ui_test_mount_rationale_1673"
},
@@ -74357,7 +79658,7 @@
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
"source_location": "L1686",
- "community": 78,
+ "community": 86,
"norm_label": "when the feed's last_payload is set, entries are projected into filelistentr",
"id": "ui_test_mount_rationale_1686"
},
@@ -74366,7 +79667,7 @@
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
"source_location": "L1728",
- "community": 78,
+ "community": 157,
"norm_label": "the fetch is a no-op when refreshcoordinator just walked the tree.",
"id": "ui_test_mount_rationale_1728"
},
@@ -74375,7 +79676,7 @@
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
"source_location": "L1745",
- "community": 163,
+ "community": 106,
"norm_label": "a successful scan records the refresh on the coordinator.",
"id": "ui_test_mount_rationale_1745"
},
@@ -74384,7 +79685,7 @@
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
"source_location": "L1764",
- "community": 165,
+ "community": 173,
"norm_label": "a scan failure returns ``none`` so the feed keeps polling.",
"id": "ui_test_mount_rationale_1764"
},
@@ -74393,7 +79694,7 @@
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
"source_location": "L1780",
- "community": 165,
+ "community": 173,
"norm_label": "a run with no sync-queue job still renders a dialog without raising.",
"id": "ui_test_mount_rationale_1780"
},
@@ -74402,7 +79703,7 @@
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
"source_location": "L1830",
- "community": 62,
+ "community": 158,
"norm_label": "the relay payload pulls id+label from build_received_equipment_nodes.",
"id": "ui_test_mount_rationale_1830"
},
@@ -74411,7 +79712,7 @@
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
"source_location": "L1853",
- "community": 78,
+ "community": 86,
"norm_label": "a node id without an equipment/project split returns ``{}``.",
"id": "ui_test_mount_rationale_1853"
},
@@ -74420,25 +79721,16 @@
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
"source_location": "L1859",
- "community": 78,
+ "community": 86,
"norm_label": "a missing parent dir returns 0 (no fs pre-check needed).",
"id": "ui_test_mount_rationale_1859"
},
- {
- "label": "Only directory children whose names start with the prefix are counted.",
- "file_type": "rationale",
- "source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L1864",
- "community": 296,
- "norm_label": "only directory children whose names start with the prefix are counted.",
- "id": "ui_test_mount_rationale_1864"
- },
{
"label": "A corrupt creation.json yields {path, name}, never crashes.",
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
"source_location": "L1873",
- "community": 295,
+ "community": 157,
"norm_label": "a corrupt creation.json yields {path, name}, never crashes.",
"id": "ui_test_mount_rationale_1873"
},
@@ -74447,7 +79739,7 @@
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
"source_location": "L1886",
- "community": 172,
+ "community": 69,
"norm_label": "when nas_sync.enqueue raises, the background task swallows + toasts.",
"id": "ui_test_mount_rationale_1886"
},
@@ -74456,7 +79748,7 @@
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
"source_location": "L1902",
- "community": 172,
+ "community": 106,
"norm_label": "when the clear helper raises, the background task swallows + toasts.",
"id": "ui_test_mount_rationale_1902"
},
@@ -74465,7 +79757,7 @@
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
"source_location": "L1918",
- "community": 163,
+ "community": 106,
"norm_label": "the 0-file path reports ``already cleared`` rather than ``cleared n``.",
"id": "ui_test_mount_rationale_1918"
},
@@ -74474,7 +79766,7 @@
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
"source_location": "L1931",
- "community": 165,
+ "community": 173,
"norm_label": "a clipboard write failure is caught and reported as a negative toast.",
"id": "ui_test_mount_rationale_1931"
},
@@ -74492,7 +79784,7 @@
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
"source_location": "L2012",
- "community": 55,
+ "community": 69,
"norm_label": "no probe wired -> a failure result rather than a crash.",
"id": "ui_test_mount_rationale_2012"
},
@@ -74501,7 +79793,7 @@
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
"source_location": "L2081",
- "community": 172,
+ "community": 69,
"norm_label": "a half-wired install names its first-failing gate as the next action.",
"id": "ui_test_mount_rationale_2081"
},
@@ -74519,7 +79811,7 @@
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
"source_location": "L2121",
- "community": 326,
+ "community": 14,
"norm_label": "a path with no enclosing run root surfaces a negative toast.",
"id": "ui_test_mount_rationale_2121"
},
@@ -74528,7 +79820,7 @@
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
"source_location": "L2132",
- "community": 26,
+ "community": 23,
"norm_label": "a resolvable file flips keep_local via the writer and fires on_done.",
"id": "ui_test_mount_rationale_2132"
},
@@ -74537,7 +79829,7 @@
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
"source_location": "L2187",
- "community": 17,
+ "community": 14,
"norm_label": "the ``keep_local`` action routes to ``_toggle_keep_local``.",
"id": "ui_test_mount_rationale_2187"
},
@@ -74546,7 +79838,7 @@
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
"source_location": "L2238",
- "community": 243,
+ "community": 180,
"norm_label": "no controller -> a negative toast and no dialog open.",
"id": "ui_test_mount_rationale_2238"
},
@@ -74555,7 +79847,7 @@
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
"source_location": "L2244",
- "community": 243,
+ "community": 180,
"norm_label": "a wired controller builds the modal and opens it (no raise).",
"id": "ui_test_mount_rationale_2244"
},
@@ -74564,7 +79856,7 @@
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
"source_location": "L2265",
- "community": 327,
+ "community": 300,
"norm_label": "the details dialog renders the session state plus pending/error lines.",
"id": "ui_test_mount_rationale_2265"
},
@@ -74573,7 +79865,7 @@
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
"source_location": "L2289",
- "community": 17,
+ "community": 14,
"norm_label": "a session not awaiting input cannot be resumed -> negative toast.",
"id": "ui_test_mount_rationale_2289"
},
@@ -74582,7 +79874,7 @@
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
"source_location": "L2298",
- "community": 94,
+ "community": 171,
"norm_label": "a suspended session re-opens its escalation dialog with parked fields.",
"id": "ui_test_mount_rationale_2298"
},
@@ -74591,7 +79883,7 @@
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
"source_location": "L2327",
- "community": 26,
+ "community": 23,
"norm_label": "the dialog's submit handler calls ``controller.resume`` in the background.",
"id": "ui_test_mount_rationale_2327"
},
@@ -74600,7 +79892,7 @@
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
"source_location": "L2359",
- "community": 125,
+ "community": 23,
"norm_label": "the dialog's cancel handler routes through ``_cancel_session``.",
"id": "ui_test_mount_rationale_2359"
},
@@ -74609,7 +79901,7 @@
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
"source_location": "L2399",
- "community": 55,
+ "community": 170,
"norm_label": "the \u00a79.4 dialog's discard button cancels with discard_files=true.",
"id": "ui_test_mount_rationale_2399"
},
@@ -74618,7 +79910,7 @@
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
"source_location": "L2418",
- "community": 26,
+ "community": 171,
"norm_label": "the keep-files button cancels with discard_files=false.",
"id": "ui_test_mount_rationale_2418"
},
@@ -74627,7 +79919,7 @@
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
"source_location": "L2435",
- "community": 185,
+ "community": 172,
"norm_label": "a cancel failure is caught and toasted, not raised.",
"id": "ui_test_mount_rationale_2435"
},
@@ -74636,25 +79928,16 @@
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
"source_location": "L2451",
- "community": 186,
+ "community": 181,
"norm_label": "the back button closes the dialog without cancelling.",
"id": "ui_test_mount_rationale_2451"
},
- {
- "label": "With a job row, the dialog renders each populated field line.",
- "file_type": "rationale",
- "source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L2465",
- "community": 94,
- "norm_label": "with a job row, the dialog renders each populated field line.",
- "id": "ui_test_mount_rationale_2465"
- },
{
"label": "Without a job row the dialog shows the 'no sync job' line.",
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
"source_location": "L2493",
- "community": 94,
+ "community": 54,
"norm_label": "without a job row the dialog shows the 'no sync job' line.",
"id": "ui_test_mount_rationale_2493"
},
@@ -74663,7 +79946,7 @@
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
"source_location": "L2509",
- "community": 26,
+ "community": 23,
"norm_label": "no progress view on the wizard state -> the consumer returns at once.",
"id": "ui_test_mount_rationale_2509"
},
@@ -74672,7 +79955,7 @@
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
"source_location": "L2520",
- "community": 26,
+ "community": 23,
"norm_label": "an input_required frame opens the dialog; a done frame closes it.",
"id": "ui_test_mount_rationale_2520"
},
@@ -74681,7 +79964,7 @@
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
"source_location": "L2608",
- "community": 185,
+ "community": 172,
"norm_label": "``_render_run_wizard`` wires templates/equipment into the run-wizard page.",
"id": "ui_test_mount_rationale_2608"
},
@@ -74690,7 +79973,7 @@
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
"source_location": "L2637",
- "community": 94,
+ "community": 54,
"norm_label": "non-equipmentnode keys in the hierarchy are ignored; unknown root -> treated",
"id": "ui_test_mount_rationale_2637"
},
@@ -74699,43 +79982,25 @@
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
"source_location": "L2646",
- "community": 186,
+ "community": 181,
"norm_label": "the received_equipment kind routes to the relay-equipment builder.",
"id": "ui_test_mount_rationale_2646"
},
- {
- "label": "A schema_version mismatch (read_catalogue -> None) yields ``[]``.",
- "file_type": "rationale",
- "source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L2684",
- "community": 242,
- "norm_label": "a schema_version mismatch (read_catalogue -> none) yields ``[]``.",
- "id": "ui_test_mount_rationale_2684"
- },
{
"label": "A raising ``app.storage.tab`` degrades to an in-memory feed (no tab).",
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
"source_location": "L2696",
- "community": 77,
+ "community": 50,
"norm_label": "a raising ``app.storage.tab`` degrades to an in-memory feed (no tab).",
"id": "ui_test_mount_rationale_2696"
},
- {
- "label": "An equipment id absent from config yields ``{}``.",
- "file_type": "rationale",
- "source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L2731",
- "community": 125,
- "norm_label": "an equipment id absent from config yields ``{}``.",
- "id": "ui_test_mount_rationale_2731"
- },
{
"label": "With no SYNCED rows the sweep clears nothing and toasts 'none'.",
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
"source_location": "L2739",
- "community": 17,
+ "community": 351,
"norm_label": "with no synced rows the sweep clears nothing and toasts 'none'.",
"id": "ui_test_mount_rationale_2739"
},
@@ -74744,7 +80009,7 @@
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
"source_location": "L2774",
- "community": 26,
+ "community": 23,
"norm_label": "a failing ``controller.resume`` is caught + toasted, not raised.",
"id": "ui_test_mount_rationale_2774"
},
@@ -74753,7 +80018,7 @@
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
"source_location": "L2803",
- "community": 185,
+ "community": 172,
"norm_label": "an import/engine failure in the outer try yields ``{}``.",
"id": "ui_test_mount_rationale_2803"
},
@@ -74762,7 +80027,7 @@
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
"source_location": "L2819",
- "community": 186,
+ "community": 181,
"norm_label": "a staging-query failure degrades to an empty dock, not a crash.",
"id": "ui_test_mount_rationale_2819"
},
@@ -74807,7 +80072,7 @@
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
"source_location": "L129",
- "community": 49,
+ "community": 60,
"norm_label": "duck-typed creationcontroller for the create-flow helpers.",
"id": "ui_test_mount_rationale_129"
},
@@ -74870,7 +80135,7 @@
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
"source_location": "L460",
- "community": 2,
+ "community": 324,
"norm_label": "redesign \u00a73.1: orchestrator pipeline is always on, but a missing staging_roo",
"id": "ui_test_mount_rationale_460"
},
@@ -74879,7 +80144,7 @@
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
"source_location": "L507",
- "community": 49,
+ "community": 60,
"norm_label": "minimal stand-in for the nicegui ``ui`` object's navigate surface.",
"id": "ui_test_mount_rationale_507"
},
@@ -74888,7 +80153,7 @@
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
"source_location": "L515",
- "community": 49,
+ "community": 324,
"norm_label": "a successful save persists, then hot-reloads the live components. the old b",
"id": "ui_test_mount_rationale_515"
},
@@ -74897,7 +80162,7 @@
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
"source_location": "L592",
- "community": 49,
+ "community": 60,
"norm_label": "opt-in: a saved non-empty staging_root is created on save.",
"id": "ui_test_mount_rationale_592"
},
@@ -74906,7 +80171,7 @@
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
"source_location": "L607",
- "community": 49,
+ "community": 60,
"norm_label": "blank staging_root creates nothing -- the device is not a staging pc.",
"id": "ui_test_mount_rationale_607"
},
@@ -74915,7 +80180,7 @@
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
"source_location": "L621",
- "community": 49,
+ "community": 60,
"norm_label": "an ensure_dir failure warns but keeps the persisted config.",
"id": "ui_test_mount_rationale_621"
},
@@ -74924,7 +80189,7 @@
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
"source_location": "L648",
- "community": 2,
+ "community": 386,
"norm_label": "if the coordinator raises wholesale, the live config is still kept.",
"id": "ui_test_mount_rationale_648"
},
@@ -74951,7 +80216,7 @@
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
"source_location": "L763",
- "community": 298,
+ "community": 385,
"norm_label": "a raising keyring backend surfaces a toast, not an unhandled crash.",
"id": "ui_test_mount_rationale_763"
},
@@ -74969,25 +80234,16 @@
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
"source_location": "L1185",
- "community": 389,
+ "community": 387,
"norm_label": "both empty -> empty string. one present -> single param.",
"id": "ui_test_mount_rationale_1185"
},
- {
- "label": "Project names with spaces / special chars survive the round trip.",
- "file_type": "rationale",
- "source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L1193",
- "community": 390,
- "norm_label": "project names with spaces / special chars survive the round trip.",
- "id": "ui_test_mount_rationale_1193"
- },
{
"label": "Equipment / project / run / received_equipment all classify correctly.",
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
"source_location": "L1210",
- "community": 350,
+ "community": 80,
"norm_label": "equipment / project / run / received_equipment all classify correctly.",
"id": "ui_test_mount_rationale_1210"
},
@@ -74996,7 +80252,7 @@
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
"source_location": "L1231",
- "community": 349,
+ "community": 350,
"norm_label": "a node id whose root is not in the hierarchy returns ``(none, false)``. gua",
"id": "ui_test_mount_rationale_1231"
},
@@ -75005,7 +80261,7 @@
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
"source_location": "L1253",
- "community": 164,
+ "community": 80,
"norm_label": "an equipment node payload pulls fields from config.equipment[id].",
"id": "ui_test_mount_rationale_1253"
},
@@ -75014,7 +80270,7 @@
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
"source_location": "L1271",
- "community": 164,
+ "community": 80,
"norm_label": "asking for a node that isn't in config.equipment returns ``{}``.",
"id": "ui_test_mount_rationale_1271"
},
@@ -75023,7 +80279,7 @@
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
"source_location": "L1278",
- "community": 164,
+ "community": 80,
"norm_label": "the project payload counts run_* and testrun_* directories.",
"id": "ui_test_mount_rationale_1278"
},
@@ -75032,7 +80288,7 @@
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
"source_location": "L1342",
- "community": 242,
+ "community": 33,
"norm_label": "a run dir without a creation.json yields {path, name}, not crash.",
"id": "ui_test_mount_rationale_1342"
},
@@ -75041,7 +80297,7 @@
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
"source_location": "L1351",
- "community": 103,
+ "community": 131,
"norm_label": "the selected-node fields end up on mainpagestate for the renderer.",
"id": "ui_test_mount_rationale_1351"
},
@@ -75050,7 +80306,7 @@
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
"source_location": "L1369",
- "community": 103,
+ "community": 107,
"norm_label": "an unknown sys.platform falls through to false so the toast can warn.",
"id": "ui_test_mount_rationale_1369"
},
@@ -75059,7 +80315,7 @@
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
"source_location": "L1389",
- "community": 299,
+ "community": 50,
"norm_label": "macos dispatches to the ``open`` command.",
"id": "ui_test_mount_rationale_1389"
},
@@ -75068,7 +80324,7 @@
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
"source_location": "L1398",
- "community": 269,
+ "community": 125,
"norm_label": "a subprocess failure is caught and surfaces false so the caller can toast.",
"id": "ui_test_mount_rationale_1398"
},
@@ -75077,7 +80333,7 @@
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
"source_location": "L1422",
- "community": 17,
+ "community": 14,
"norm_label": "minimal nicegui surface stand-in: clipboard + navigate.to + notify.",
"id": "ui_test_mount_rationale_1422"
},
@@ -75086,7 +80342,7 @@
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
"source_location": "L1459",
- "community": 297,
+ "community": 131,
"norm_label": "when the opener returns false the action surfaces a negative toast.",
"id": "ui_test_mount_rationale_1459"
},
@@ -75095,7 +80351,7 @@
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
"source_location": "L1476",
- "community": 162,
+ "community": 125,
"norm_label": "an unknown action verb is logged + toasted without raising.",
"id": "ui_test_mount_rationale_1476"
},
@@ -75104,7 +80360,7 @@
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
"source_location": "L1483",
- "community": 270,
+ "community": 107,
"norm_label": "an entry with no path triggers the early-return toast.",
"id": "ui_test_mount_rationale_1483"
},
@@ -75113,7 +80369,7 @@
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
"source_location": "L1503",
- "community": 77,
+ "community": 50,
"norm_label": "run any pending mount background tasks to completion.",
"id": "ui_test_mount_rationale_1503"
},
@@ -75122,7 +80378,7 @@
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
"source_location": "L1518",
- "community": 162,
+ "community": 125,
"norm_label": "force-sync routes to ``deps.nas_sync.enqueue`` with the run path.",
"id": "ui_test_mount_rationale_1518"
},
@@ -75131,7 +80387,7 @@
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
"source_location": "L1531",
- "community": 145,
+ "community": 33,
"norm_label": "force-sync without a wired nas sync surfaces a negative toast (no raise).",
"id": "ui_test_mount_rationale_1531"
},
@@ -75140,7 +80396,7 @@
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
"source_location": "L1538",
- "community": 103,
+ "community": 107,
"norm_label": "the early-exit when config is missing keeps the action a no-op.",
"id": "ui_test_mount_rationale_1538"
},
@@ -75149,7 +80405,7 @@
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
"source_location": "L1547",
- "community": 145,
+ "community": 33,
"norm_label": "``view_log`` dispatches to the dialog opener helper.",
"id": "ui_test_mount_rationale_1547"
},
@@ -75158,25 +80414,16 @@
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
"source_location": "L1566",
- "community": 17,
+ "community": 14,
"norm_label": "``clear_verified`` deletes the run directory via the local helper.",
"id": "ui_test_mount_rationale_1566"
},
- {
- "label": "The early-exit when config is missing produces a toast, no task.",
- "file_type": "rationale",
- "source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L1618",
- "community": 55,
- "norm_label": "the early-exit when config is missing produces a toast, no task.",
- "id": "ui_test_mount_rationale_1618"
- },
{
"label": "An exception from the clear sweep is caught + toasted.",
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
"source_location": "L1627",
- "community": 162,
+ "community": 125,
"norm_label": "an exception from the clear sweep is caught + toasted.",
"id": "ui_test_mount_rationale_1627"
},
@@ -75194,7 +80441,7 @@
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
"source_location": "L1662",
- "community": 62,
+ "community": 33,
"norm_label": "without a selected node the feed isn't started and returns ``[]``.",
"id": "ui_test_mount_rationale_1662"
},
@@ -75203,7 +80450,7 @@
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
"source_location": "L1672",
- "community": 77,
+ "community": 50,
"norm_label": "the first call mounts a folderfeed + refreshcoordinator on tab storage.",
"id": "ui_test_mount_rationale_1672"
},
@@ -75212,7 +80459,7 @@
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
"source_location": "L1685",
- "community": 78,
+ "community": 86,
"norm_label": "when the feed's last_payload is set, entries are projected into filelistentr",
"id": "ui_test_mount_rationale_1685"
},
@@ -75221,7 +80468,7 @@
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
"source_location": "L1727",
- "community": 78,
+ "community": 86,
"norm_label": "the fetch is a no-op when refreshcoordinator just walked the tree.",
"id": "ui_test_mount_rationale_1727"
},
@@ -75230,7 +80477,7 @@
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
"source_location": "L1744",
- "community": 163,
+ "community": 106,
"norm_label": "a successful scan records the refresh on the coordinator.",
"id": "ui_test_mount_rationale_1744"
},
@@ -75239,7 +80486,7 @@
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
"source_location": "L1763",
- "community": 165,
+ "community": 173,
"norm_label": "a scan failure returns ``none`` so the feed keeps polling.",
"id": "ui_test_mount_rationale_1763"
},
@@ -75248,7 +80495,7 @@
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
"source_location": "L1779",
- "community": 165,
+ "community": 173,
"norm_label": "a run with no sync-queue job still renders a dialog without raising.",
"id": "ui_test_mount_rationale_1779"
},
@@ -75257,7 +80504,7 @@
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
"source_location": "L1788",
- "community": 62,
+ "community": 158,
"norm_label": "a run with a sync-queue job renders its state without raising.",
"id": "ui_test_mount_rationale_1788"
},
@@ -75266,7 +80513,7 @@
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
"source_location": "L1816",
- "community": 55,
+ "community": 69,
"norm_label": "any exception raised by a per-kind builder is logged + swallowed.",
"id": "ui_test_mount_rationale_1816"
},
@@ -75275,7 +80522,7 @@
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
"source_location": "L1829",
- "community": 62,
+ "community": 158,
"norm_label": "the relay payload pulls id+label from build_received_equipment_nodes.",
"id": "ui_test_mount_rationale_1829"
},
@@ -75284,7 +80531,7 @@
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
"source_location": "L1845",
- "community": 77,
+ "community": 158,
"norm_label": "an unknown relay id still produces a payload (best-effort label).",
"id": "ui_test_mount_rationale_1845"
},
@@ -75293,7 +80540,7 @@
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
"source_location": "L1852",
- "community": 78,
+ "community": 86,
"norm_label": "a node id without an equipment/project split returns ``{}``.",
"id": "ui_test_mount_rationale_1852"
},
@@ -75302,7 +80549,7 @@
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
"source_location": "L1858",
- "community": 78,
+ "community": 69,
"norm_label": "a missing parent dir returns 0 (no fs pre-check needed).",
"id": "ui_test_mount_rationale_1858"
},
@@ -75311,7 +80558,7 @@
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
"source_location": "L1863",
- "community": 296,
+ "community": 69,
"norm_label": "only directory children whose names start with the prefix are counted.",
"id": "ui_test_mount_rationale_1863"
},
@@ -75320,7 +80567,7 @@
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
"source_location": "L1872",
- "community": 295,
+ "community": 157,
"norm_label": "a corrupt creation.json yields {path, name}, never crashes.",
"id": "ui_test_mount_rationale_1872"
},
@@ -75329,7 +80576,7 @@
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
"source_location": "L1885",
- "community": 172,
+ "community": 69,
"norm_label": "when nas_sync.enqueue raises, the background task swallows + toasts.",
"id": "ui_test_mount_rationale_1885"
},
@@ -75338,7 +80585,7 @@
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
"source_location": "L1901",
- "community": 172,
+ "community": 106,
"norm_label": "when the clear helper raises, the background task swallows + toasts.",
"id": "ui_test_mount_rationale_1901"
},
@@ -75347,7 +80594,7 @@
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
"source_location": "L1917",
- "community": 163,
+ "community": 106,
"norm_label": "the 0-file path reports ``already cleared`` rather than ``cleared n``.",
"id": "ui_test_mount_rationale_1917"
},
@@ -75356,7 +80603,7 @@
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
"source_location": "L1930",
- "community": 165,
+ "community": 173,
"norm_label": "a clipboard write failure is caught and reported as a negative toast.",
"id": "ui_test_mount_rationale_1930"
},
@@ -75374,7 +80621,7 @@
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
"source_location": "L2023",
- "community": 62,
+ "community": 157,
"norm_label": "a reachable probe maps ok/latency into a connected result.",
"id": "ui_test_mount_rationale_2023"
},
@@ -75383,7 +80630,7 @@
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
"source_location": "L2050",
- "community": 78,
+ "community": 180,
"norm_label": "an async probe is awaited before its dict is mapped.",
"id": "ui_test_mount_rationale_2050"
},
@@ -75401,7 +80648,7 @@
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
"source_location": "L2111",
- "community": 163,
+ "community": 106,
"norm_label": "no sync-state writer wired -> negative toast, no task spawned.",
"id": "ui_test_mount_rationale_2111"
},
@@ -75410,7 +80657,7 @@
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
"source_location": "L2120",
- "community": 326,
+ "community": 14,
"norm_label": "a path with no enclosing run root surfaces a negative toast.",
"id": "ui_test_mount_rationale_2120"
},
@@ -75419,7 +80666,7 @@
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
"source_location": "L2131",
- "community": 26,
+ "community": 23,
"norm_label": "a resolvable file flips keep_local via the writer and fires on_done.",
"id": "ui_test_mount_rationale_2131"
},
@@ -75428,7 +80675,7 @@
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
"source_location": "L2186",
- "community": 17,
+ "community": 14,
"norm_label": "the ``keep_local`` action routes to ``_toggle_keep_local``.",
"id": "ui_test_mount_rationale_2186"
},
@@ -75437,7 +80684,7 @@
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
"source_location": "L2203",
- "community": 55,
+ "community": 170,
"norm_label": "on win32 the helper calls ``os.startfile`` and reports success.",
"id": "ui_test_mount_rationale_2203"
},
@@ -75446,7 +80693,7 @@
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
"source_location": "L2237",
- "community": 243,
+ "community": 180,
"norm_label": "no controller -> a negative toast and no dialog open.",
"id": "ui_test_mount_rationale_2237"
},
@@ -75455,7 +80702,7 @@
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
"source_location": "L2264",
- "community": 327,
+ "community": 300,
"norm_label": "the details dialog renders the session state plus pending/error lines.",
"id": "ui_test_mount_rationale_2264"
},
@@ -75464,7 +80711,7 @@
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
"source_location": "L2288",
- "community": 17,
+ "community": 14,
"norm_label": "a session not awaiting input cannot be resumed -> negative toast.",
"id": "ui_test_mount_rationale_2288"
},
@@ -75473,7 +80720,7 @@
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
"source_location": "L2297",
- "community": 94,
+ "community": 171,
"norm_label": "a suspended session re-opens its escalation dialog with parked fields.",
"id": "ui_test_mount_rationale_2297"
},
@@ -75482,7 +80729,7 @@
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
"source_location": "L2358",
- "community": 125,
+ "community": 23,
"norm_label": "the dialog's cancel handler routes through ``_cancel_session``.",
"id": "ui_test_mount_rationale_2358"
},
@@ -75491,7 +80738,7 @@
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
"source_location": "L2417",
- "community": 26,
+ "community": 171,
"norm_label": "the keep-files button cancels with discard_files=false.",
"id": "ui_test_mount_rationale_2417"
},
@@ -75500,7 +80747,7 @@
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
"source_location": "L2434",
- "community": 185,
+ "community": 172,
"norm_label": "a cancel failure is caught and toasted, not raised.",
"id": "ui_test_mount_rationale_2434"
},
@@ -75509,7 +80756,7 @@
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
"source_location": "L2450",
- "community": 186,
+ "community": 181,
"norm_label": "the back button closes the dialog without cancelling.",
"id": "ui_test_mount_rationale_2450"
},
@@ -75518,7 +80765,7 @@
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
"source_location": "L2464",
- "community": 94,
+ "community": 171,
"norm_label": "with a job row, the dialog renders each populated field line.",
"id": "ui_test_mount_rationale_2464"
},
@@ -75527,25 +80774,16 @@
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
"source_location": "L2508",
- "community": 26,
+ "community": 23,
"norm_label": "no progress view on the wizard state -> the consumer returns at once.",
"id": "ui_test_mount_rationale_2508"
},
- {
- "label": "A subscribe error is logged, not raised.",
- "file_type": "rationale",
- "source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L2556",
- "community": 125,
- "norm_label": "a subscribe error is logged, not raised.",
- "id": "ui_test_mount_rationale_2556"
- },
{
"label": "Submitting a run with no template selected surfaces a negative toast.",
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
"source_location": "L2596",
- "community": 55,
+ "community": 170,
"norm_label": "submitting a run with no template selected surfaces a negative toast.",
"id": "ui_test_mount_rationale_2596"
},
@@ -75554,7 +80792,7 @@
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
"source_location": "L2607",
- "community": 185,
+ "community": 172,
"norm_label": "``_render_run_wizard`` wires templates/equipment into the run-wizard page.",
"id": "ui_test_mount_rationale_2607"
},
@@ -75563,7 +80801,7 @@
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
"source_location": "L2636",
- "community": 94,
+ "community": 54,
"norm_label": "non-equipmentnode keys in the hierarchy are ignored; unknown root -> treated",
"id": "ui_test_mount_rationale_2636"
},
@@ -75572,7 +80810,7 @@
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
"source_location": "L2661",
- "community": 94,
+ "community": 54,
"norm_label": "a matching equipment id projects its config fields into the payload.",
"id": "ui_test_mount_rationale_2661"
},
@@ -75581,7 +80819,7 @@
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
"source_location": "L2683",
- "community": 242,
+ "community": 54,
"norm_label": "a schema_version mismatch (read_catalogue -> none) yields ``[]``.",
"id": "ui_test_mount_rationale_2683"
},
@@ -75590,7 +80828,7 @@
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
"source_location": "L2695",
- "community": 77,
+ "community": 50,
"norm_label": "a raising ``app.storage.tab`` degrades to an in-memory feed (no tab).",
"id": "ui_test_mount_rationale_2695"
},
@@ -75599,7 +80837,7 @@
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
"source_location": "L2717",
- "community": 26,
+ "community": 50,
"norm_label": "a raising evaluator degrades to 'not ready' (banner stays up).",
"id": "ui_test_mount_rationale_2717"
},
@@ -75608,7 +80846,7 @@
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
"source_location": "L2730",
- "community": 125,
+ "community": 54,
"norm_label": "an equipment id absent from config yields ``{}``.",
"id": "ui_test_mount_rationale_2730"
},
@@ -75617,7 +80855,7 @@
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
"source_location": "L2738",
- "community": 17,
+ "community": 351,
"norm_label": "with no synced rows the sweep clears nothing and toasts 'none'.",
"id": "ui_test_mount_rationale_2738"
},
@@ -75626,7 +80864,7 @@
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
"source_location": "L2773",
- "community": 26,
+ "community": 23,
"norm_label": "a failing ``controller.resume`` is caught + toasted, not raised.",
"id": "ui_test_mount_rationale_2773"
},
@@ -75635,7 +80873,7 @@
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
"source_location": "L2818",
- "community": 186,
+ "community": 181,
"norm_label": "a staging-query failure degrades to an empty dock, not a crash.",
"id": "ui_test_mount_rationale_2818"
},
@@ -75644,7 +80882,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/ui/pages/main.py",
"source_location": "L484",
- "community": 196,
+ "community": 182,
"norm_label": "render the centre-pane file list (redesign \u00a74.3). each row carries a right-",
"id": "pages_main_rationale_484"
},
@@ -75653,7 +80891,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/ui/pages/main.py",
"source_location": "L523",
- "community": 205,
+ "community": 192,
"norm_label": "render the right metadata / problems pane (redesign \u00a74.4).",
"id": "pages_main_rationale_523"
},
@@ -75662,7 +80900,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/ui/pages/main.py",
"source_location": "L463",
- "community": 196,
+ "community": 182,
"norm_label": "render the centre-pane file list (redesign \u00a74.3). each row carries a right-",
"id": "pages_main_rationale_463"
},
@@ -75671,7 +80909,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/ui/pages/main.py",
"source_location": "L502",
- "community": 205,
+ "community": 192,
"norm_label": "render the right metadata / problems pane (redesign \u00a74.4).",
"id": "pages_main_rationale_502"
},
@@ -75680,7 +80918,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/ui/components/framed_pane.py",
"source_location": "L86",
- "community": 70,
+ "community": 61,
"norm_label": "context manager rendering a framed, titled pane; yields the body element. u",
"id": "components_framed_pane_rationale_86"
},
@@ -75689,7 +80927,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/ui/pages/main.py",
"source_location": "L462",
- "community": 196,
+ "community": 182,
"norm_label": "render the centre-pane file list (redesign \u00a74.3). each row carries a right-",
"id": "pages_main_rationale_462"
},
@@ -75698,7 +80936,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/ui/pages/main.py",
"source_location": "L494",
- "community": 205,
+ "community": 192,
"norm_label": "render the right metadata / problems pane (redesign \u00a74.4).",
"id": "pages_main_rationale_494"
},
@@ -75707,7 +80945,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/ui/pages/main.py",
"source_location": "L170",
- "community": 126,
+ "community": 81,
"norm_label": "render the rebuilt three-region file-explorer main window. gui/orchestrator",
"id": "pages_main_rationale_170"
},
@@ -75716,7 +80954,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/ui/pages/main.py",
"source_location": "L460",
- "community": 196,
+ "community": 182,
"norm_label": "render the centre-pane file list (redesign \u00a74.3). each row carries a right-",
"id": "pages_main_rationale_460"
},
@@ -75725,7 +80963,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/ui/pages/main.py",
"source_location": "L492",
- "community": 205,
+ "community": 192,
"norm_label": "render the right metadata / problems pane (redesign \u00a74.4).",
"id": "pages_main_rationale_492"
},
@@ -75734,7 +80972,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/ui/components/metadata_pane.py",
"source_location": "L30",
- "community": 156,
+ "community": 146,
"norm_label": "mutable state for the metadata pane.",
"id": "components_metadata_pane_rationale_30"
},
@@ -75743,7 +80981,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/ui/components/metadata_pane.py",
"source_location": "L43",
- "community": 170,
+ "community": 132,
"norm_label": "render the right-pane metadata content for ``state.selected_node``. dispatc",
"id": "components_metadata_pane_rationale_43"
},
@@ -75752,7 +80990,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/ui/components/file_list.py",
"source_location": "L212",
- "community": 195,
+ "community": 202,
"norm_label": "render the file-list column header row (name / size / modified / status).",
"id": "components_file_list_rationale_212"
},
@@ -75761,7 +80999,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/ui/components/file_list.py",
"source_location": "L172",
- "community": 195,
+ "community": 202,
"norm_label": "render the centre-pane file list. pure render function. double-clicking a f",
"id": "components_file_list_rationale_172"
},
@@ -75770,7 +81008,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/ui/components/file_list.py",
"source_location": "L210",
- "community": 195,
+ "community": 202,
"norm_label": "render the file-list column header row (name / size / modified / status).",
"id": "components_file_list_rationale_210"
},
@@ -75779,7 +81017,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/ui/components/file_list.py",
"source_location": "L69",
- "community": 195,
+ "community": 201,
"norm_label": "result of comparing two successive folder-list snapshots.",
"id": "components_file_list_rationale_69"
},
@@ -75788,7 +81026,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/ui/components/file_list.py",
"source_location": "L80",
- "community": 169,
+ "community": 201,
"norm_label": "return additions / removals / modifications between two snapshots. pure fun",
"id": "components_file_list_rationale_80"
},
@@ -75797,7 +81035,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/ui/components/file_list.py",
"source_location": "L119",
- "community": 169,
+ "community": 139,
"norm_label": "return the css background + decoration fragment for one file-list row. pure",
"id": "components_file_list_rationale_119"
},
@@ -75806,7 +81044,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/ui/components/file_list.py",
"source_location": "L169",
- "community": 195,
+ "community": 202,
"norm_label": "render the centre-pane file list. pure render function. double-clicking a f",
"id": "components_file_list_rationale_169"
},
@@ -75815,7 +81053,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/ui/components/file_list.py",
"source_location": "L207",
- "community": 195,
+ "community": 202,
"norm_label": "render the file-list column header row (name / size / modified / status).",
"id": "components_file_list_rationale_207"
},
@@ -75824,7 +81062,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/ui/mount.py",
"source_location": "L462",
- "community": 45,
+ "community": 77,
"norm_label": "build the lims-password save / clear handlers for the settings dialog. cred",
"id": "ui_mount_rationale_462"
},
@@ -75833,7 +81071,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/ui/mount.py",
"source_location": "L516",
- "community": 237,
+ "community": 228,
"norm_label": "run the rclone nas-remote probe and adapt it for the inline panel. rclone.c",
"id": "ui_mount_rationale_516"
},
@@ -75842,7 +81080,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/ui/mount.py",
"source_location": "L572",
- "community": 193,
+ "community": 77,
"norm_label": "write ``updated`` via ``deps.save_config`` and hot-reload components. retur",
"id": "ui_mount_rationale_572"
},
@@ -75851,7 +81089,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/ui/mount.py",
"source_location": "L604",
- "community": 193,
+ "community": 77,
"norm_label": "create the staging directory when the operator saved a non-empty path. ``st",
"id": "ui_mount_rationale_604"
},
@@ -75860,7 +81098,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/ui/mount.py",
"source_location": "L630",
- "community": 193,
+ "community": 77,
"norm_label": "push ``updated`` into the running components (no tray relaunch). wraps :fun",
"id": "ui_mount_rationale_630"
},
@@ -75869,7 +81107,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/ui/mount.py",
"source_location": "L647",
- "community": 204,
+ "community": 82,
"norm_label": "true when nas-mode equipment exist but the ``nas:`` remote is unusable. rcl",
"id": "ui_mount_rationale_647"
},
@@ -75878,7 +81116,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/ui/mount.py",
"source_location": "L671",
- "community": 45,
+ "community": 52,
"norm_label": "return true when the \u00a74.9 setup state is ``ready``. delegates to :func:`api",
"id": "ui_mount_rationale_671"
},
@@ -75887,7 +81125,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/ui/mount.py",
"source_location": "L703",
- "community": 149,
+ "community": 153,
"norm_label": "register / unregister platform autostart; return the real post-op state. re",
"id": "ui_mount_rationale_703"
},
@@ -75896,7 +81134,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/ui/mount.py",
"source_location": "L762",
- "community": 45,
+ "community": 204,
"norm_label": "return the (session_id, session) pairs the operations panel shows. the \u00a79.5",
"id": "ui_mount_rationale_762"
},
@@ -75905,7 +81143,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/ui/mount.py",
"source_location": "L779",
- "community": 45,
+ "community": 204,
"norm_label": "return ``(panel_count, input_required, active)`` operation counts. ``panel_",
"id": "ui_mount_rationale_779"
},
@@ -75914,7 +81152,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/ui/mount.py",
"source_location": "L796",
- "community": 45,
+ "community": 52,
"norm_label": "return the \u00a74.9.3 next-action string for the banner subline. unlike :func:`",
"id": "ui_mount_rationale_796"
},
@@ -75923,7 +81161,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/ui/mount.py",
"source_location": "L826",
- "community": 302,
+ "community": 209,
"norm_label": "compose the ``?selected=...&right_pane=...`` query string for /main. omits",
"id": "ui_mount_rationale_826"
},
@@ -75932,7 +81170,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/ui/mount.py",
"source_location": "L859",
- "community": 303,
+ "community": 209,
"norm_label": "map a selected node id to ``(kind, is_received)``. mirrors the shape classi",
"id": "ui_mount_rationale_859"
},
@@ -75941,7 +81179,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/ui/mount.py",
"source_location": "L903",
- "community": 176,
+ "community": 151,
"norm_label": "build the metadata-pane payload for the selected node, by kind. returns ``{",
"id": "ui_mount_rationale_903"
},
@@ -75950,7 +81188,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/ui/mount.py",
"source_location": "L930",
- "community": 176,
+ "community": 151,
"norm_label": "project equipment-config fields into the owned-equipment payload.",
"id": "ui_mount_rationale_930"
},
@@ -75959,7 +81197,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/ui/mount.py",
"source_location": "L945",
- "community": 176,
+ "community": 151,
"norm_label": "return the relay-equipment payload (label, source_host).",
"id": "ui_mount_rationale_945"
},
@@ -75968,7 +81206,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/ui/mount.py",
"source_location": "L959",
- "community": 226,
+ "community": 210,
"norm_label": "derive a project payload from the on-disk project directory. ``node_id`` is",
"id": "ui_mount_rationale_959"
},
@@ -75977,7 +81215,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/ui/mount.py",
"source_location": "L993",
- "community": 226,
+ "community": 210,
"norm_label": "count immediate child directories of ``parent`` whose names start with ``pre",
"id": "ui_mount_rationale_993"
},
@@ -75986,7 +81224,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/ui/mount.py",
"source_location": "L1008",
- "community": 192,
+ "community": 163,
"norm_label": "decode the run's creation.json into the metadata-pane payload. returns ``{}",
"id": "ui_mount_rationale_1008"
},
@@ -75995,7 +81233,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/ui/mount.py",
"source_location": "L1051",
- "community": 192,
+ "community": 163,
"norm_label": "resolve a centre-list selection (file or folder) to a render payload. phase",
"id": "ui_mount_rationale_1051"
},
@@ -76004,7 +81242,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/ui/mount.py",
"source_location": "L1100",
- "community": 192,
+ "community": 163,
"norm_label": "aggregate a one-level folder scan into a folder-card payload (oq-4/b). phas",
"id": "ui_mount_rationale_1100"
},
@@ -76013,7 +81251,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/ui/mount.py",
"source_location": "L1141",
- "community": 203,
+ "community": 188,
"norm_label": "mount / rebind the per-tab folderfeed and return current entries. uses ``ap",
"id": "ui_mount_rationale_1141"
},
@@ -76022,7 +81260,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/ui/mount.py",
"source_location": "L1202",
- "community": 203,
+ "community": 188,
"norm_label": "folderfeed fetch hook. skips when the tree just walked. runs the synchronou",
"id": "ui_mount_rationale_1202"
},
@@ -76031,7 +81269,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/ui/mount.py",
"source_location": "L1226",
- "community": 68,
+ "community": 55,
"norm_label": "force a fresh single-folder scan and prime the feed payload (oq-1/a). the f",
"id": "ui_mount_rationale_1226"
},
@@ -76040,7 +81278,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/ui/mount.py",
"source_location": "L1259",
- "community": 68,
+ "community": 55,
"norm_label": "dispatch a per-run context action to its backend surface. mirrors :func:`ap",
"id": "ui_mount_rationale_1259"
},
@@ -76049,7 +81287,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/ui/mount.py",
"source_location": "L1317",
- "community": 168,
+ "community": 161,
"norm_label": "bulk-clear every staged run whose sync job is verified. wired from the file",
"id": "ui_mount_rationale_1317"
},
@@ -76058,7 +81296,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/ui/mount.py",
"source_location": "L1362",
- "community": 168,
+ "community": 161,
"norm_label": "handle ``open in os`` / ``copy path`` / ``keep local`` file actions.",
"id": "ui_mount_rationale_1362"
},
@@ -76067,7 +81305,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/ui/mount.py",
"source_location": "L1401",
- "community": 175,
+ "community": 55,
"norm_label": "flip a file's ``keep_local`` flag via the orchestrator's writer. operator-f",
"id": "ui_mount_rationale_1401"
},
@@ -76076,7 +81314,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/ui/mount.py",
"source_location": "L1444",
- "community": 175,
+ "community": 164,
"norm_label": "launch the host os's default opener for ``path``. returns false on platform",
"id": "ui_mount_rationale_1444"
},
@@ -76085,7 +81323,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/ui/mount.py",
"source_location": "L1472",
- "community": 57,
+ "community": 28,
"norm_label": "build the operations-panel rows from the live session store (t3). uses the",
"id": "ui_mount_rationale_1472"
},
@@ -76094,7 +81332,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/ui/mount.py",
"source_location": "L1484",
- "community": 57,
+ "community": 28,
"norm_label": "open the in-flight operations panel (frontend \u00a79.5). builds a fresh snapsho",
"id": "ui_mount_rationale_1484"
},
@@ -76103,7 +81341,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/ui/mount.py",
"source_location": "L1508",
- "community": 175,
+ "community": 164,
"norm_label": "show a lightweight details/\"log\" dialog for one in-flight operation. the \u00a79",
"id": "ui_mount_rationale_1508"
},
@@ -76112,7 +81350,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/ui/mount.py",
"source_location": "L1542",
- "community": 154,
+ "community": 28,
"norm_label": "resume a suspended session by re-opening its \u00a79.1 input dialog (t5). reads",
"id": "ui_mount_rationale_1542"
},
@@ -76121,7 +81359,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/ui/mount.py",
"source_location": "L1574",
- "community": 154,
+ "community": 63,
"norm_label": "open the \u00a79.1 escalation dialog; submit resumes, cancel confirms (t5). subm",
"id": "ui_mount_rationale_1574"
},
@@ -76130,7 +81368,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/ui/mount.py",
"source_location": "L1612",
- "community": 57,
+ "community": 28,
"norm_label": "resolve the controller off ``deps`` and open the \u00a79.4 cancel dialog.",
"id": "ui_mount_rationale_1612"
},
@@ -76139,7 +81377,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/ui/mount.py",
"source_location": "L1662",
- "community": 68,
+ "community": 55,
"norm_label": "open a nicegui dialog showing the run's sync-queue job state. the operator-",
"id": "ui_mount_rationale_1662"
},
@@ -76148,7 +81386,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/ui/mount.py",
"source_location": "L1710",
- "community": 204,
+ "community": 82,
"norm_label": "return the settings sections the operator still needs to fill in. mirrors a",
"id": "ui_mount_rationale_1710"
},
@@ -76157,7 +81395,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/ui/mount.py",
"source_location": "L1743",
- "community": 69,
+ "community": 40,
"norm_label": "return the configured templates directory, or ``none``.",
"id": "ui_mount_rationale_1743"
},
@@ -76166,7 +81404,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/ui/mount.py",
"source_location": "L1751",
- "community": 69,
+ "community": 40,
"norm_label": "list template directory names of ``template_type`` under templates_dir.",
"id": "ui_mount_rationale_1751"
},
@@ -76175,7 +81413,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/ui/mount.py",
"source_location": "L1768",
- "community": 69,
+ "community": 63,
"norm_label": "map each ``template_type`` template name to its parsed copier questions. re",
"id": "ui_mount_rationale_1768"
},
@@ -76184,7 +81422,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/ui/mount.py",
"source_location": "L1801",
- "community": 119,
+ "community": 162,
"norm_label": "read the offline-catalogue projects (disconnected-workstation source). read",
"id": "ui_mount_rationale_1801"
},
@@ -76193,7 +81431,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/ui/mount.py",
"source_location": "L1835",
- "community": 266,
+ "community": 162,
"norm_label": "return the lims projects backing the project wizard's picker. tries the liv",
"id": "ui_mount_rationale_1835"
},
@@ -76202,7 +81440,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/ui/mount.py",
"source_location": "L1865",
- "community": 119,
+ "community": 63,
"norm_label": "return the configured equipment ids.",
"id": "ui_mount_rationale_1865"
},
@@ -76211,7 +81449,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/ui/mount.py",
"source_location": "L1873",
- "community": 100,
+ "community": 63,
"norm_label": "await a controller session's pipeline task and return the final handle. ``c",
"id": "ui_mount_rationale_1873"
},
@@ -76220,7 +81458,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/ui/mount.py",
"source_location": "L1892",
- "community": 194,
+ "community": 40,
"norm_label": "fold the controller's ws frames into the wizard's live phase bar (t2) and su",
"id": "ui_mount_rationale_1892"
},
@@ -76229,7 +81467,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/ui/mount.py",
"source_location": "L1935",
- "community": 194,
+ "community": 40,
"norm_label": "best-effort close of a nicegui dialog (no-op when ``none`` / test mode).",
"id": "ui_mount_rationale_1935"
},
@@ -76238,7 +81476,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/ui/mount.py",
"source_location": "L1943",
- "community": 119,
+ "community": 63,
"norm_label": "build a projectcreaterequest from the wizard state and run it.",
"id": "ui_mount_rationale_1943"
},
@@ -76247,7 +81485,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/ui/mount.py",
"source_location": "L1976",
- "community": 69,
+ "community": 99,
"norm_label": "build a runcreaterequest from the wizard state and run it.",
"id": "ui_mount_rationale_1976"
},
@@ -76256,7 +81494,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/ui/mount.py",
"source_location": "L2017",
- "community": 100,
+ "community": 99,
"norm_label": "drive a create_* call to completion and toast the outcome. when ``wizard_st",
"id": "ui_mount_rationale_2017"
},
@@ -76265,7 +81503,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/ui/mount.py",
"source_location": "L2060",
- "community": 100,
+ "community": 99,
"norm_label": "run the validator audit, swallowing failures to a warn log.",
"id": "ui_mount_rationale_2060"
},
@@ -76274,7 +81512,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/ui/mount.py",
"source_location": "L427",
- "community": 45,
+ "community": 77,
"norm_label": "build the lims-password save / clear handlers for the settings dialog. cred",
"id": "ui_mount_rationale_427"
},
@@ -76283,7 +81521,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/ui/mount.py",
"source_location": "L481",
- "community": 237,
+ "community": 228,
"norm_label": "run the rclone nas-remote probe and adapt it for the inline panel. rclone.c",
"id": "ui_mount_rationale_481"
},
@@ -76292,7 +81530,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/ui/mount.py",
"source_location": "L537",
- "community": 193,
+ "community": 77,
"norm_label": "write ``updated`` via ``deps.save_config`` and hot-reload components. retur",
"id": "ui_mount_rationale_537"
},
@@ -76301,7 +81539,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/ui/mount.py",
"source_location": "L569",
- "community": 193,
+ "community": 77,
"norm_label": "create the staging directory when the operator saved a non-empty path. ``st",
"id": "ui_mount_rationale_569"
},
@@ -76310,7 +81548,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/ui/mount.py",
"source_location": "L595",
- "community": 193,
+ "community": 77,
"norm_label": "push ``updated`` into the running components (no tray relaunch). wraps :fun",
"id": "ui_mount_rationale_595"
},
@@ -76319,7 +81557,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/ui/mount.py",
"source_location": "L612",
- "community": 204,
+ "community": 82,
"norm_label": "true when nas-mode equipment exist but the ``nas:`` remote is unusable. rcl",
"id": "ui_mount_rationale_612"
},
@@ -76328,7 +81566,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/ui/mount.py",
"source_location": "L636",
- "community": 45,
+ "community": 52,
"norm_label": "return true when the \u00a74.9 setup state is ``ready``. delegates to :func:`api",
"id": "ui_mount_rationale_636"
},
@@ -76337,7 +81575,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/ui/mount.py",
"source_location": "L668",
- "community": 149,
+ "community": 153,
"norm_label": "register / unregister platform autostart; return the real post-op state. re",
"id": "ui_mount_rationale_668"
},
@@ -76346,7 +81584,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/ui/mount.py",
"source_location": "L727",
- "community": 45,
+ "community": 204,
"norm_label": "return the (session_id, session) pairs the operations panel shows. the \u00a79.5",
"id": "ui_mount_rationale_727"
},
@@ -76355,7 +81593,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/ui/mount.py",
"source_location": "L744",
- "community": 45,
+ "community": 204,
"norm_label": "return ``(panel_count, input_required, active)`` operation counts. ``panel_",
"id": "ui_mount_rationale_744"
},
@@ -76364,7 +81602,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/ui/mount.py",
"source_location": "L761",
- "community": 45,
+ "community": 52,
"norm_label": "return the \u00a74.9.3 next-action string for the banner subline. unlike :func:`",
"id": "ui_mount_rationale_761"
},
@@ -76373,7 +81611,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/ui/mount.py",
"source_location": "L791",
- "community": 302,
+ "community": 209,
"norm_label": "compose the ``?selected=...&right_pane=...`` query string for /main. omits",
"id": "ui_mount_rationale_791"
},
@@ -76382,7 +81620,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/ui/mount.py",
"source_location": "L824",
- "community": 303,
+ "community": 209,
"norm_label": "map a selected node id to ``(kind, is_received)``. mirrors the shape classi",
"id": "ui_mount_rationale_824"
},
@@ -76391,7 +81629,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/ui/mount.py",
"source_location": "L868",
- "community": 176,
+ "community": 151,
"norm_label": "build the metadata-pane payload for the selected node, by kind. returns ``{",
"id": "ui_mount_rationale_868"
},
@@ -76400,7 +81638,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/ui/mount.py",
"source_location": "L895",
- "community": 176,
+ "community": 151,
"norm_label": "project equipment-config fields into the owned-equipment payload.",
"id": "ui_mount_rationale_895"
},
@@ -76409,7 +81647,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/ui/mount.py",
"source_location": "L924",
- "community": 226,
+ "community": 210,
"norm_label": "derive a project payload from the on-disk project directory. ``node_id`` is",
"id": "ui_mount_rationale_924"
},
@@ -76418,7 +81656,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/ui/mount.py",
"source_location": "L958",
- "community": 226,
+ "community": 210,
"norm_label": "count immediate child directories of ``parent`` whose names start with ``pre",
"id": "ui_mount_rationale_958"
},
@@ -76427,7 +81665,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/ui/mount.py",
"source_location": "L973",
- "community": 192,
+ "community": 163,
"norm_label": "decode the run's creation.json into the metadata-pane payload. returns ``{}",
"id": "ui_mount_rationale_973"
},
@@ -76436,7 +81674,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/ui/mount.py",
"source_location": "L1016",
- "community": 192,
+ "community": 163,
"norm_label": "resolve a centre-list selection (file or folder) to a render payload. phase",
"id": "ui_mount_rationale_1016"
},
@@ -76445,7 +81683,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/ui/mount.py",
"source_location": "L1065",
- "community": 192,
+ "community": 163,
"norm_label": "aggregate a one-level folder scan into a folder-card payload (oq-4/b). phas",
"id": "ui_mount_rationale_1065"
},
@@ -76454,7 +81692,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/ui/mount.py",
"source_location": "L1106",
- "community": 203,
+ "community": 188,
"norm_label": "mount / rebind the per-tab folderfeed and return current entries. uses ``ap",
"id": "ui_mount_rationale_1106"
},
@@ -76463,7 +81701,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/ui/mount.py",
"source_location": "L1167",
- "community": 203,
+ "community": 188,
"norm_label": "folderfeed fetch hook. skips when the tree just walked. runs the synchronou",
"id": "ui_mount_rationale_1167"
},
@@ -76472,7 +81710,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/ui/mount.py",
"source_location": "L1191",
- "community": 68,
+ "community": 55,
"norm_label": "force a fresh single-folder scan and prime the feed payload (oq-1/a). the f",
"id": "ui_mount_rationale_1191"
},
@@ -76481,7 +81719,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/ui/mount.py",
"source_location": "L1224",
- "community": 68,
+ "community": 55,
"norm_label": "dispatch a per-run context action to its backend surface. mirrors :func:`ap",
"id": "ui_mount_rationale_1224"
},
@@ -76490,7 +81728,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/ui/mount.py",
"source_location": "L1282",
- "community": 168,
+ "community": 161,
"norm_label": "bulk-clear every staged run whose sync job is verified. wired from the file",
"id": "ui_mount_rationale_1282"
},
@@ -76499,7 +81737,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/ui/mount.py",
"source_location": "L1327",
- "community": 168,
+ "community": 161,
"norm_label": "handle ``open in os`` / ``copy path`` / ``keep local`` file actions.",
"id": "ui_mount_rationale_1327"
},
@@ -76508,7 +81746,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/ui/mount.py",
"source_location": "L1366",
- "community": 68,
+ "community": 55,
"norm_label": "flip a file's ``keep_local`` flag via the orchestrator's writer. operator-f",
"id": "ui_mount_rationale_1366"
},
@@ -76517,7 +81755,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/ui/mount.py",
"source_location": "L1409",
- "community": 175,
+ "community": 164,
"norm_label": "launch the host os's default opener for ``path``. returns false on platform",
"id": "ui_mount_rationale_1409"
},
@@ -76526,7 +81764,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/ui/mount.py",
"source_location": "L1437",
- "community": 57,
+ "community": 28,
"norm_label": "build the operations-panel rows from the live session store (t3). uses the",
"id": "ui_mount_rationale_1437"
},
@@ -76535,7 +81773,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/ui/mount.py",
"source_location": "L1449",
- "community": 57,
+ "community": 28,
"norm_label": "open the in-flight operations panel (frontend \u00a79.5). builds a fresh snapsho",
"id": "ui_mount_rationale_1449"
},
@@ -76544,7 +81782,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/ui/mount.py",
"source_location": "L1473",
- "community": 175,
+ "community": 164,
"norm_label": "show a lightweight details/\"log\" dialog for one in-flight operation. the \u00a79",
"id": "ui_mount_rationale_1473"
},
@@ -76553,7 +81791,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/ui/mount.py",
"source_location": "L1507",
- "community": 154,
+ "community": 28,
"norm_label": "resume a suspended session by re-opening its \u00a79.1 input dialog (t5). reads",
"id": "ui_mount_rationale_1507"
},
@@ -76562,7 +81800,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/ui/mount.py",
"source_location": "L1539",
- "community": 154,
+ "community": 40,
"norm_label": "open the \u00a79.1 escalation dialog; submit resumes, cancel confirms (t5). subm",
"id": "ui_mount_rationale_1539"
},
@@ -76571,7 +81809,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/ui/mount.py",
"source_location": "L1577",
- "community": 57,
+ "community": 28,
"norm_label": "resolve the controller off ``deps`` and open the \u00a79.4 cancel dialog.",
"id": "ui_mount_rationale_1577"
},
@@ -76580,7 +81818,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/ui/mount.py",
"source_location": "L1586",
- "community": 68,
+ "community": 28,
"norm_label": "cancel an in-flight session via the \u00a79.4 discard / keep dialog (t4). the op",
"id": "ui_mount_rationale_1586"
},
@@ -76589,7 +81827,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/ui/mount.py",
"source_location": "L1627",
- "community": 68,
+ "community": 55,
"norm_label": "open a nicegui dialog showing the run's sync-queue job state. the operator-",
"id": "ui_mount_rationale_1627"
},
@@ -76598,7 +81836,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/ui/mount.py",
"source_location": "L1675",
- "community": 204,
+ "community": 82,
"norm_label": "return the settings sections the operator still needs to fill in. mirrors a",
"id": "ui_mount_rationale_1675"
},
@@ -76607,7 +81845,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/ui/mount.py",
"source_location": "L1708",
- "community": 69,
+ "community": 40,
"norm_label": "return the configured templates directory, or ``none``.",
"id": "ui_mount_rationale_1708"
},
@@ -76616,7 +81854,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/ui/mount.py",
"source_location": "L1716",
- "community": 69,
+ "community": 40,
"norm_label": "list template directory names of ``template_type`` under templates_dir.",
"id": "ui_mount_rationale_1716"
},
@@ -76625,7 +81863,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/ui/mount.py",
"source_location": "L1733",
- "community": 69,
+ "community": 63,
"norm_label": "map each ``template_type`` template name to its parsed copier questions. re",
"id": "ui_mount_rationale_1733"
},
@@ -76634,7 +81872,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/ui/mount.py",
"source_location": "L1766",
- "community": 119,
+ "community": 162,
"norm_label": "read the offline-catalogue projects (disconnected-workstation source). read",
"id": "ui_mount_rationale_1766"
},
@@ -76643,7 +81881,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/ui/mount.py",
"source_location": "L1800",
- "community": 266,
+ "community": 162,
"norm_label": "return the lims projects backing the project wizard's picker. tries the liv",
"id": "ui_mount_rationale_1800"
},
@@ -76652,7 +81890,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/ui/mount.py",
"source_location": "L1830",
- "community": 100,
+ "community": 63,
"norm_label": "return the configured equipment ids.",
"id": "ui_mount_rationale_1830"
},
@@ -76661,7 +81899,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/ui/mount.py",
"source_location": "L1838",
- "community": 100,
+ "community": 63,
"norm_label": "await a controller session's pipeline task and return the final handle. ``c",
"id": "ui_mount_rationale_1838"
},
@@ -76670,7 +81908,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/ui/mount.py",
"source_location": "L1857",
- "community": 194,
+ "community": 40,
"norm_label": "fold the controller's ws frames into the wizard's live phase bar (t2) and su",
"id": "ui_mount_rationale_1857"
},
@@ -76679,7 +81917,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/ui/mount.py",
"source_location": "L1900",
- "community": 194,
+ "community": 40,
"norm_label": "best-effort close of a nicegui dialog (no-op when ``none`` / test mode).",
"id": "ui_mount_rationale_1900"
},
@@ -76688,7 +81926,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/ui/mount.py",
"source_location": "L1908",
- "community": 119,
+ "community": 63,
"norm_label": "build a projectcreaterequest from the wizard state and run it.",
"id": "ui_mount_rationale_1908"
},
@@ -76697,7 +81935,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/ui/mount.py",
"source_location": "L1941",
- "community": 69,
+ "community": 99,
"norm_label": "build a runcreaterequest from the wizard state and run it.",
"id": "ui_mount_rationale_1941"
},
@@ -76706,7 +81944,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/ui/mount.py",
"source_location": "L1982",
- "community": 100,
+ "community": 99,
"norm_label": "drive a create_* call to completion and toast the outcome. when ``wizard_st",
"id": "ui_mount_rationale_1982"
},
@@ -76715,7 +81953,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/ui/mount.py",
"source_location": "L2025",
- "community": 100,
+ "community": 99,
"norm_label": "run the validator audit, swallowing failures to a warn log.",
"id": "ui_mount_rationale_2025"
},
@@ -76724,7 +81962,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/ui/mount.py",
"source_location": "L719",
- "community": 45,
+ "community": 204,
"norm_label": "return the (session_id, session) pairs the operations panel shows. the \u00a79.5",
"id": "ui_mount_rationale_719"
},
@@ -76733,7 +81971,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/ui/mount.py",
"source_location": "L736",
- "community": 45,
+ "community": 204,
"norm_label": "return ``(panel_count, input_required, active)`` operation counts. ``panel_",
"id": "ui_mount_rationale_736"
},
@@ -76742,7 +81980,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/ui/mount.py",
"source_location": "L753",
- "community": 45,
+ "community": 52,
"norm_label": "return the \u00a74.9.3 next-action string for the banner subline. unlike :func:`",
"id": "ui_mount_rationale_753"
},
@@ -76751,7 +81989,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/ui/mount.py",
"source_location": "L783",
- "community": 302,
+ "community": 209,
"norm_label": "compose the ``?selected=...&right_pane=...`` query string for /main. omits",
"id": "ui_mount_rationale_783"
},
@@ -76760,7 +81998,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/ui/mount.py",
"source_location": "L816",
- "community": 303,
+ "community": 209,
"norm_label": "map a selected node id to ``(kind, is_received)``. mirrors the shape classi",
"id": "ui_mount_rationale_816"
},
@@ -76769,7 +82007,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/ui/mount.py",
"source_location": "L860",
- "community": 176,
+ "community": 151,
"norm_label": "build the metadata-pane payload for the selected node, by kind. returns ``{",
"id": "ui_mount_rationale_860"
},
@@ -76778,7 +82016,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/ui/mount.py",
"source_location": "L887",
- "community": 176,
+ "community": 151,
"norm_label": "project equipment-config fields into the owned-equipment payload.",
"id": "ui_mount_rationale_887"
},
@@ -76787,7 +82025,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/ui/mount.py",
"source_location": "L902",
- "community": 176,
+ "community": 151,
"norm_label": "return the relay-equipment payload (label, source_host).",
"id": "ui_mount_rationale_902"
},
@@ -76796,7 +82034,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/ui/mount.py",
"source_location": "L916",
- "community": 226,
+ "community": 210,
"norm_label": "derive a project payload from the on-disk project directory. ``node_id`` is",
"id": "ui_mount_rationale_916"
},
@@ -76805,7 +82043,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/ui/mount.py",
"source_location": "L950",
- "community": 226,
+ "community": 210,
"norm_label": "count immediate child directories of ``parent`` whose names start with ``pre",
"id": "ui_mount_rationale_950"
},
@@ -76814,7 +82052,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/ui/mount.py",
"source_location": "L965",
- "community": 192,
+ "community": 163,
"norm_label": "decode the run's creation.json into the metadata-pane payload. returns ``{}",
"id": "ui_mount_rationale_965"
},
@@ -76823,7 +82061,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/ui/mount.py",
"source_location": "L1057",
- "community": 192,
+ "community": 163,
"norm_label": "aggregate a one-level folder scan into a folder-card payload (oq-4/b). phas",
"id": "ui_mount_rationale_1057"
},
@@ -76832,7 +82070,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/ui/mount.py",
"source_location": "L1098",
- "community": 203,
+ "community": 188,
"norm_label": "mount / rebind the per-tab folderfeed and return current entries. uses ``ap",
"id": "ui_mount_rationale_1098"
},
@@ -76841,7 +82079,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/ui/mount.py",
"source_location": "L1159",
- "community": 203,
+ "community": 188,
"norm_label": "folderfeed fetch hook. skips when the tree just walked. runs the synchronou",
"id": "ui_mount_rationale_1159"
},
@@ -76850,7 +82088,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/ui/mount.py",
"source_location": "L1183",
- "community": 68,
+ "community": 55,
"norm_label": "force a fresh single-folder scan and prime the feed payload (oq-1/a). the f",
"id": "ui_mount_rationale_1183"
},
@@ -76859,7 +82097,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/ui/mount.py",
"source_location": "L1216",
- "community": 68,
+ "community": 55,
"norm_label": "dispatch a per-run context action to its backend surface. mirrors :func:`ap",
"id": "ui_mount_rationale_1216"
},
@@ -76868,7 +82106,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/ui/mount.py",
"source_location": "L1274",
- "community": 168,
+ "community": 161,
"norm_label": "bulk-clear every staged run whose sync job is verified. wired from the file",
"id": "ui_mount_rationale_1274"
},
@@ -76877,7 +82115,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/ui/mount.py",
"source_location": "L1358",
- "community": 68,
+ "community": 55,
"norm_label": "flip a file's ``keep_local`` flag via the orchestrator's writer. operator-f",
"id": "ui_mount_rationale_1358"
},
@@ -76886,7 +82124,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/ui/mount.py",
"source_location": "L1429",
- "community": 57,
+ "community": 28,
"norm_label": "build the operations-panel rows from the live session store (t3). uses the",
"id": "ui_mount_rationale_1429"
},
@@ -76895,7 +82133,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/ui/mount.py",
"source_location": "L1441",
- "community": 57,
+ "community": 28,
"norm_label": "open the in-flight operations panel (frontend \u00a79.5). builds a fresh snapsho",
"id": "ui_mount_rationale_1441"
},
@@ -76904,7 +82142,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/ui/mount.py",
"source_location": "L1465",
- "community": 175,
+ "community": 164,
"norm_label": "show a lightweight details/\"log\" dialog for one in-flight operation. the \u00a79",
"id": "ui_mount_rationale_1465"
},
@@ -76913,7 +82151,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/ui/mount.py",
"source_location": "L1499",
- "community": 154,
+ "community": 28,
"norm_label": "resume a suspended session by re-opening its \u00a79.1 input dialog (t5). reads",
"id": "ui_mount_rationale_1499"
},
@@ -76922,7 +82160,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/ui/mount.py",
"source_location": "L1531",
- "community": 154,
+ "community": 40,
"norm_label": "open the \u00a79.1 escalation dialog; submit resumes, cancel confirms (t5). subm",
"id": "ui_mount_rationale_1531"
},
@@ -76931,7 +82169,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/ui/mount.py",
"source_location": "L1569",
- "community": 57,
+ "community": 28,
"norm_label": "resolve the controller off ``deps`` and open the \u00a79.4 cancel dialog.",
"id": "ui_mount_rationale_1569"
},
@@ -76940,7 +82178,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/ui/mount.py",
"source_location": "L1578",
- "community": 57,
+ "community": 28,
"norm_label": "cancel an in-flight session via the \u00a79.4 discard / keep dialog (t4). the op",
"id": "ui_mount_rationale_1578"
},
@@ -76949,7 +82187,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/ui/mount.py",
"source_location": "L1619",
- "community": 68,
+ "community": 55,
"norm_label": "open a nicegui dialog showing the run's sync-queue job state. the operator-",
"id": "ui_mount_rationale_1619"
},
@@ -76958,7 +82196,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/ui/mount.py",
"source_location": "L1667",
- "community": 204,
+ "community": 82,
"norm_label": "return the settings sections the operator still needs to fill in. mirrors a",
"id": "ui_mount_rationale_1667"
},
@@ -76967,7 +82205,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/ui/mount.py",
"source_location": "L1700",
- "community": 69,
+ "community": 40,
"norm_label": "return the configured templates directory, or ``none``.",
"id": "ui_mount_rationale_1700"
},
@@ -76976,7 +82214,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/ui/mount.py",
"source_location": "L1725",
- "community": 119,
+ "community": 63,
"norm_label": "map each ``template_type`` template name to its parsed copier questions. re",
"id": "ui_mount_rationale_1725"
},
@@ -76985,7 +82223,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/ui/mount.py",
"source_location": "L1758",
- "community": 119,
+ "community": 162,
"norm_label": "read the offline-catalogue projects (disconnected-workstation source). read",
"id": "ui_mount_rationale_1758"
},
@@ -76994,7 +82232,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/ui/mount.py",
"source_location": "L1792",
- "community": 266,
+ "community": 162,
"norm_label": "return the lims projects backing the project wizard's picker. tries the liv",
"id": "ui_mount_rationale_1792"
},
@@ -77003,7 +82241,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/ui/mount.py",
"source_location": "L1822",
- "community": 119,
+ "community": 63,
"norm_label": "return the configured equipment ids.",
"id": "ui_mount_rationale_1822"
},
@@ -77012,7 +82250,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/ui/mount.py",
"source_location": "L1933",
- "community": 69,
+ "community": 99,
"norm_label": "build a runcreaterequest from the wizard state and run it.",
"id": "ui_mount_rationale_1933"
},
@@ -77021,7 +82259,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/ui/mount.py",
"source_location": "L1974",
- "community": 100,
+ "community": 99,
"norm_label": "drive a create_* call to completion and toast the outcome. when ``wizard_st",
"id": "ui_mount_rationale_1974"
},
@@ -77030,7 +82268,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/ui/mount.py",
"source_location": "L1241",
- "community": 168,
+ "community": 161,
"norm_label": "bulk-clear every staged run whose sync job is verified. wired from the file",
"id": "ui_mount_rationale_1241"
},
@@ -77039,7 +82277,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/ui/mount.py",
"source_location": "L1286",
- "community": 168,
+ "community": 161,
"norm_label": "handle ``open in os`` / ``copy path`` / ``keep local`` file actions.",
"id": "ui_mount_rationale_1286"
},
@@ -77048,7 +82286,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/ui/mount.py",
"source_location": "L1325",
- "community": 68,
+ "community": 55,
"norm_label": "flip a file's ``keep_local`` flag via the orchestrator's writer. operator-f",
"id": "ui_mount_rationale_1325"
},
@@ -77057,7 +82295,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/ui/mount.py",
"source_location": "L1368",
- "community": 175,
+ "community": 164,
"norm_label": "launch the host os's default opener for ``path``. returns false on platform",
"id": "ui_mount_rationale_1368"
},
@@ -77066,7 +82304,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/ui/mount.py",
"source_location": "L1396",
- "community": 57,
+ "community": 28,
"norm_label": "build the operations-panel rows from the live session store (t3). uses the",
"id": "ui_mount_rationale_1396"
},
@@ -77075,7 +82313,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/ui/mount.py",
"source_location": "L1408",
- "community": 57,
+ "community": 28,
"norm_label": "open the in-flight operations panel (frontend \u00a79.5). builds a fresh snapsho",
"id": "ui_mount_rationale_1408"
},
@@ -77084,34 +82322,16 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/ui/mount.py",
"source_location": "L1432",
- "community": 175,
+ "community": 164,
"norm_label": "show a lightweight details/\"log\" dialog for one in-flight operation. the \u00a79",
"id": "ui_mount_rationale_1432"
},
- {
- "label": "Resume a suspended session by re-opening its \u00a79.1 input dialog (T5). Reads",
- "file_type": "rationale",
- "source_file": "src/exlab_wizard/ui/mount.py",
- "source_location": "L1466",
- "community": 154,
- "norm_label": "resume a suspended session by re-opening its \u00a79.1 input dialog (t5). reads",
- "id": "ui_mount_rationale_1466"
- },
- {
- "label": "Resolve the controller off ``deps`` and open the \u00a79.4 cancel dialog.",
- "file_type": "rationale",
- "source_file": "src/exlab_wizard/ui/mount.py",
- "source_location": "L1536",
- "community": 57,
- "norm_label": "resolve the controller off ``deps`` and open the \u00a79.4 cancel dialog.",
- "id": "ui_mount_rationale_1536"
- },
{
"label": "Cancel an in-flight session via the \u00a79.4 Discard / Keep dialog (T4). The op",
"file_type": "rationale",
"source_file": "src/exlab_wizard/ui/mount.py",
"source_location": "L1545",
- "community": 57,
+ "community": 28,
"norm_label": "cancel an in-flight session via the \u00a79.4 discard / keep dialog (t4). the op",
"id": "ui_mount_rationale_1545"
},
@@ -77120,7 +82340,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/ui/mount.py",
"source_location": "L1634",
- "community": 204,
+ "community": 82,
"norm_label": "return the settings sections the operator still needs to fill in. mirrors a",
"id": "ui_mount_rationale_1634"
},
@@ -77129,7 +82349,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/ui/mount.py",
"source_location": "L1692",
- "community": 69,
+ "community": 63,
"norm_label": "map each ``template_type`` template name to its parsed copier questions. re",
"id": "ui_mount_rationale_1692"
},
@@ -77138,7 +82358,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/ui/mount.py",
"source_location": "L1759",
- "community": 266,
+ "community": 162,
"norm_label": "return the lims projects backing the project wizard's picker. tries the liv",
"id": "ui_mount_rationale_1759"
},
@@ -77147,7 +82367,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/ui/mount.py",
"source_location": "L1789",
- "community": 119,
+ "community": 63,
"norm_label": "return the configured equipment ids.",
"id": "ui_mount_rationale_1789"
},
@@ -77156,7 +82376,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/ui/mount.py",
"source_location": "L1797",
- "community": 100,
+ "community": 63,
"norm_label": "await a controller session's pipeline task and return the final handle. ``c",
"id": "ui_mount_rationale_1797"
},
@@ -77165,25 +82385,16 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/ui/mount.py",
"source_location": "L1816",
- "community": 194,
+ "community": 40,
"norm_label": "fold the controller's ws frames into the wizard's live phase bar (t2) and su",
"id": "ui_mount_rationale_1816"
},
- {
- "label": "Best-effort close of a NiceGUI dialog (no-op when ``None`` / test mode).",
- "file_type": "rationale",
- "source_file": "src/exlab_wizard/ui/mount.py",
- "source_location": "L1859",
- "community": 194,
- "norm_label": "best-effort close of a nicegui dialog (no-op when ``none`` / test mode).",
- "id": "ui_mount_rationale_1859"
- },
{
"label": "Run the validator audit, swallowing failures to a WARN log.",
"file_type": "rationale",
"source_file": "src/exlab_wizard/ui/mount.py",
"source_location": "L1984",
- "community": 100,
+ "community": 99,
"norm_label": "run the validator audit, swallowing failures to a warn log.",
"id": "ui_mount_rationale_1984"
},
@@ -77192,7 +82403,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/ui/mount.py",
"source_location": "L999",
- "community": 203,
+ "community": 188,
"norm_label": "mount / rebind the per-tab folderfeed and return current entries. uses ``ap",
"id": "ui_mount_rationale_999"
},
@@ -77201,7 +82412,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/ui/mount.py",
"source_location": "L1060",
- "community": 203,
+ "community": 188,
"norm_label": "folderfeed fetch hook. skips when the tree just walked. runs the synchronou",
"id": "ui_mount_rationale_1060"
},
@@ -77210,7 +82421,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/ui/mount.py",
"source_location": "L1084",
- "community": 68,
+ "community": 55,
"norm_label": "dispatch a per-run context action to its backend surface. mirrors :func:`ap",
"id": "ui_mount_rationale_1084"
},
@@ -77219,7 +82430,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/ui/mount.py",
"source_location": "L1142",
- "community": 168,
+ "community": 161,
"norm_label": "bulk-clear every staged run whose sync job is verified. wired from the file",
"id": "ui_mount_rationale_1142"
},
@@ -77228,7 +82439,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/ui/mount.py",
"source_location": "L1187",
- "community": 168,
+ "community": 161,
"norm_label": "handle ``open in os`` / ``copy path`` / ``keep local`` file actions.",
"id": "ui_mount_rationale_1187"
},
@@ -77237,7 +82448,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/ui/mount.py",
"source_location": "L1269",
- "community": 175,
+ "community": 164,
"norm_label": "launch the host os's default opener for ``path``. returns false on platform",
"id": "ui_mount_rationale_1269"
},
@@ -77246,7 +82457,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/ui/mount.py",
"source_location": "L1297",
- "community": 57,
+ "community": 28,
"norm_label": "build the operations-panel rows from the live session store (t3). uses the",
"id": "ui_mount_rationale_1297"
},
@@ -77255,7 +82466,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/ui/mount.py",
"source_location": "L1309",
- "community": 57,
+ "community": 28,
"norm_label": "open the in-flight operations panel (frontend \u00a79.5). builds a fresh snapsho",
"id": "ui_mount_rationale_1309"
},
@@ -77264,7 +82475,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/ui/mount.py",
"source_location": "L1333",
- "community": 175,
+ "community": 164,
"norm_label": "show a lightweight details/\"log\" dialog for one in-flight operation. the \u00a79",
"id": "ui_mount_rationale_1333"
},
@@ -77273,7 +82484,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/ui/mount.py",
"source_location": "L1367",
- "community": 154,
+ "community": 28,
"norm_label": "resume a suspended session by re-opening its \u00a79.1 input dialog (t5). reads",
"id": "ui_mount_rationale_1367"
},
@@ -77282,7 +82493,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/ui/mount.py",
"source_location": "L1399",
- "community": 154,
+ "community": 40,
"norm_label": "open the \u00a79.1 escalation dialog; submit resumes, cancel confirms (t5). subm",
"id": "ui_mount_rationale_1399"
},
@@ -77291,7 +82502,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/ui/mount.py",
"source_location": "L1487",
- "community": 68,
+ "community": 55,
"norm_label": "open a nicegui dialog showing the run's sync-queue job state. the operator-",
"id": "ui_mount_rationale_1487"
},
@@ -77300,25 +82511,16 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/ui/mount.py",
"source_location": "L1535",
- "community": 204,
+ "community": 82,
"norm_label": "return the settings sections the operator still needs to fill in. mirrors a",
"id": "ui_mount_rationale_1535"
},
- {
- "label": "Return the configured templates directory, or ``None``.",
- "file_type": "rationale",
- "source_file": "src/exlab_wizard/ui/mount.py",
- "source_location": "L1568",
- "community": 69,
- "norm_label": "return the configured templates directory, or ``none``.",
- "id": "ui_mount_rationale_1568"
- },
{
"label": "Map each ``template_type`` template name to its parsed copier questions. Re",
"file_type": "rationale",
"source_file": "src/exlab_wizard/ui/mount.py",
"source_location": "L1593",
- "community": 69,
+ "community": 63,
"norm_label": "map each ``template_type`` template name to its parsed copier questions. re",
"id": "ui_mount_rationale_1593"
},
@@ -77327,7 +82529,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/ui/mount.py",
"source_location": "L1660",
- "community": 266,
+ "community": 162,
"norm_label": "return the lims projects backing the project wizard's picker. tries the liv",
"id": "ui_mount_rationale_1660"
},
@@ -77336,7 +82538,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/ui/mount.py",
"source_location": "L1690",
- "community": 119,
+ "community": 63,
"norm_label": "return the configured equipment ids.",
"id": "ui_mount_rationale_1690"
},
@@ -77345,7 +82547,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/ui/mount.py",
"source_location": "L1698",
- "community": 100,
+ "community": 63,
"norm_label": "await a controller session's pipeline task and return the final handle. ``c",
"id": "ui_mount_rationale_1698"
},
@@ -77354,7 +82556,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/ui/mount.py",
"source_location": "L1717",
- "community": 194,
+ "community": 40,
"norm_label": "fold the controller's ws frames into the wizard's live phase bar (t2) and su",
"id": "ui_mount_rationale_1717"
},
@@ -77363,7 +82565,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/ui/mount.py",
"source_location": "L1842",
- "community": 100,
+ "community": 99,
"norm_label": "drive a create_* call to completion and toast the outcome. when ``wizard_st",
"id": "ui_mount_rationale_1842"
},
@@ -77372,7 +82574,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/ui/mount.py",
"source_location": "L1885",
- "community": 100,
+ "community": 99,
"norm_label": "run the validator audit, swallowing failures to a warn log.",
"id": "ui_mount_rationale_1885"
},
@@ -77381,7 +82583,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/ui/mount.py",
"source_location": "L776",
- "community": 302,
+ "community": 209,
"norm_label": "compose the ``?selected=...&right_pane=...`` query string for /main. omits",
"id": "ui_mount_rationale_776"
},
@@ -77390,7 +82592,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/ui/mount.py",
"source_location": "L797",
- "community": 303,
+ "community": 209,
"norm_label": "map a selected node id to ``(kind, is_received)``. mirrors the shape classi",
"id": "ui_mount_rationale_797"
},
@@ -77399,7 +82601,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/ui/mount.py",
"source_location": "L841",
- "community": 176,
+ "community": 151,
"norm_label": "build the metadata-pane payload for the selected node, by kind. returns ``{",
"id": "ui_mount_rationale_841"
},
@@ -77408,7 +82610,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/ui/mount.py",
"source_location": "L883",
- "community": 176,
+ "community": 151,
"norm_label": "return the relay-equipment payload (label, source_host).",
"id": "ui_mount_rationale_883"
},
@@ -77417,7 +82619,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/ui/mount.py",
"source_location": "L897",
- "community": 226,
+ "community": 210,
"norm_label": "derive a project payload from the on-disk project directory. ``node_id`` is",
"id": "ui_mount_rationale_897"
},
@@ -77426,7 +82628,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/ui/mount.py",
"source_location": "L931",
- "community": 226,
+ "community": 210,
"norm_label": "count immediate child directories of ``parent`` whose names start with ``pre",
"id": "ui_mount_rationale_931"
},
@@ -77435,7 +82637,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/ui/mount.py",
"source_location": "L946",
- "community": 192,
+ "community": 163,
"norm_label": "decode the run's creation.json into the metadata-pane payload. returns ``{}",
"id": "ui_mount_rationale_946"
},
@@ -77444,7 +82646,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/ui/mount.py",
"source_location": "L980",
- "community": 203,
+ "community": 188,
"norm_label": "mount / rebind the per-tab folderfeed and return current entries. uses ``ap",
"id": "ui_mount_rationale_980"
},
@@ -77453,7 +82655,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/ui/mount.py",
"source_location": "L1041",
- "community": 203,
+ "community": 188,
"norm_label": "folderfeed fetch hook. skips when the tree just walked. runs the synchronou",
"id": "ui_mount_rationale_1041"
},
@@ -77462,7 +82664,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/ui/mount.py",
"source_location": "L1123",
- "community": 168,
+ "community": 161,
"norm_label": "bulk-clear every staged run whose sync job is verified. wired from the file",
"id": "ui_mount_rationale_1123"
},
@@ -77471,7 +82673,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/ui/mount.py",
"source_location": "L1168",
- "community": 168,
+ "community": 161,
"norm_label": "handle ``open in os`` / ``copy path`` / ``keep local`` file actions.",
"id": "ui_mount_rationale_1168"
},
@@ -77480,7 +82682,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/ui/mount.py",
"source_location": "L1207",
- "community": 68,
+ "community": 55,
"norm_label": "flip a file's ``keep_local`` flag via the orchestrator's writer. operator-f",
"id": "ui_mount_rationale_1207"
},
@@ -77489,7 +82691,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/ui/mount.py",
"source_location": "L1250",
- "community": 175,
+ "community": 164,
"norm_label": "launch the host os's default opener for ``path``. returns false on platform",
"id": "ui_mount_rationale_1250"
},
@@ -77498,7 +82700,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/ui/mount.py",
"source_location": "L1278",
- "community": 57,
+ "community": 28,
"norm_label": "build the operations-panel rows from the live session store (t3). uses the",
"id": "ui_mount_rationale_1278"
},
@@ -77507,7 +82709,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/ui/mount.py",
"source_location": "L1290",
- "community": 57,
+ "community": 28,
"norm_label": "open the in-flight operations panel (frontend \u00a79.5). builds a fresh snapsho",
"id": "ui_mount_rationale_1290"
},
@@ -77516,7 +82718,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/ui/mount.py",
"source_location": "L1314",
- "community": 175,
+ "community": 164,
"norm_label": "show a lightweight details/\"log\" dialog for one in-flight operation. the \u00a79",
"id": "ui_mount_rationale_1314"
},
@@ -77525,7 +82727,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/ui/mount.py",
"source_location": "L1348",
- "community": 154,
+ "community": 28,
"norm_label": "resume a suspended session by re-opening its \u00a79.1 input dialog (t5). reads",
"id": "ui_mount_rationale_1348"
},
@@ -77534,7 +82736,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/ui/mount.py",
"source_location": "L1380",
- "community": 154,
+ "community": 40,
"norm_label": "open the \u00a79.1 escalation dialog; submit resumes, cancel confirms (t5). subm",
"id": "ui_mount_rationale_1380"
},
@@ -77543,7 +82745,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/ui/mount.py",
"source_location": "L1418",
- "community": 57,
+ "community": 28,
"norm_label": "resolve the controller off ``deps`` and open the \u00a79.4 cancel dialog.",
"id": "ui_mount_rationale_1418"
},
@@ -77552,7 +82754,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/ui/mount.py",
"source_location": "L1427",
- "community": 57,
+ "community": 28,
"norm_label": "cancel an in-flight session via the \u00a79.4 discard / keep dialog (t4). the op",
"id": "ui_mount_rationale_1427"
},
@@ -77561,7 +82763,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/ui/mount.py",
"source_location": "L1468",
- "community": 68,
+ "community": 55,
"norm_label": "open a nicegui dialog showing the run's sync-queue job state. the operator-",
"id": "ui_mount_rationale_1468"
},
@@ -77570,7 +82772,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/ui/mount.py",
"source_location": "L1516",
- "community": 204,
+ "community": 82,
"norm_label": "return the settings sections the operator still needs to fill in. mirrors a",
"id": "ui_mount_rationale_1516"
},
@@ -77579,7 +82781,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/ui/mount.py",
"source_location": "L1549",
- "community": 69,
+ "community": 40,
"norm_label": "return the configured templates directory, or ``none``.",
"id": "ui_mount_rationale_1549"
},
@@ -77588,7 +82790,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/ui/mount.py",
"source_location": "L1557",
- "community": 69,
+ "community": 40,
"norm_label": "list template directory names of ``template_type`` under templates_dir.",
"id": "ui_mount_rationale_1557"
},
@@ -77597,7 +82799,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/ui/mount.py",
"source_location": "L1607",
- "community": 119,
+ "community": 162,
"norm_label": "read the offline-catalogue projects (disconnected-workstation source). read",
"id": "ui_mount_rationale_1607"
},
@@ -77606,7 +82808,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/ui/mount.py",
"source_location": "L1641",
- "community": 266,
+ "community": 162,
"norm_label": "return the lims projects backing the project wizard's picker. tries the liv",
"id": "ui_mount_rationale_1641"
},
@@ -77615,7 +82817,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/ui/mount.py",
"source_location": "L1679",
- "community": 100,
+ "community": 63,
"norm_label": "await a controller session's pipeline task and return the final handle. ``c",
"id": "ui_mount_rationale_1679"
},
@@ -77624,7 +82826,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/ui/mount.py",
"source_location": "L1741",
- "community": 194,
+ "community": 40,
"norm_label": "best-effort close of a nicegui dialog (no-op when ``none`` / test mode).",
"id": "ui_mount_rationale_1741"
},
@@ -77633,7 +82835,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/ui/mount.py",
"source_location": "L1749",
- "community": 119,
+ "community": 63,
"norm_label": "build a projectcreaterequest from the wizard state and run it.",
"id": "ui_mount_rationale_1749"
},
@@ -77642,7 +82844,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/ui/mount.py",
"source_location": "L1823",
- "community": 100,
+ "community": 99,
"norm_label": "drive a create_* call to completion and toast the outcome. when ``wizard_st",
"id": "ui_mount_rationale_1823"
},
@@ -77651,7 +82853,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/ui/mount.py",
"source_location": "L1866",
- "community": 100,
+ "community": 99,
"norm_label": "run the validator audit, swallowing failures to a warn log.",
"id": "ui_mount_rationale_1866"
},
@@ -77660,7 +82862,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/ui/pages/main.py",
"source_location": "L77",
- "community": 126,
+ "community": 81,
"norm_label": "the three default chips on the left-tree filter strip (\u00a73.5.4).",
"id": "pages_main_rationale_77"
},
@@ -77669,7 +82871,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/ui/pages/main.py",
"source_location": "L87",
- "community": 126,
+ "community": 81,
"norm_label": "translate a chip group state into a :class:`treefilters`.",
"id": "pages_main_rationale_87"
},
@@ -77678,7 +82880,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/ui/pages/main.py",
"source_location": "L98",
- "community": 126,
+ "community": 81,
"norm_label": "return the count text shown on the problems tab. frontend \u00a73.2: hard count",
"id": "pages_main_rationale_98"
},
@@ -77687,7 +82889,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/ui/pages/main.py",
"source_location": "L158",
- "community": 126,
+ "community": 81,
"norm_label": "render the rebuilt three-region file-explorer main window. gui/orchestrator",
"id": "pages_main_rationale_158"
},
@@ -77696,7 +82898,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/ui/pages/main.py",
"source_location": "L448",
- "community": 196,
+ "community": 182,
"norm_label": "render the centre-pane file list (redesign \u00a74.3). each row carries a right-",
"id": "pages_main_rationale_448"
},
@@ -77705,7 +82907,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/ui/pages/main.py",
"source_location": "L480",
- "community": 205,
+ "community": 192,
"norm_label": "render the right metadata / problems pane (redesign \u00a74.4).",
"id": "pages_main_rationale_480"
},
@@ -77714,7 +82916,7 @@
"file_type": "code",
"source_file": "tests/unit/ui/test_framed_pane.py",
"source_location": "L50",
- "community": 70,
+ "community": 61,
"norm_label": "test_framed_pane_yields_none_without_nicegui()",
"id": "ui_test_framed_pane_test_framed_pane_yields_none_without_nicegui"
},
@@ -77723,7 +82925,7 @@
"file_type": "code",
"source_file": "tests/unit/ui/test_framed_pane.py",
"source_location": "L56",
- "community": 70,
+ "community": 61,
"norm_label": "test_framed_pane_with_count_yields_none_without_nicegui()",
"id": "ui_test_framed_pane_test_framed_pane_with_count_yields_none_without_nicegui"
},
@@ -77732,7 +82934,7 @@
"file_type": "code",
"source_file": "tests/unit/ui/test_framed_pane.py",
"source_location": "L61",
- "community": 70,
+ "community": 61,
"norm_label": "test_framed_pane_nests_children_in_body_under_nicegui()",
"id": "ui_test_framed_pane_test_framed_pane_nests_children_in_body_under_nicegui"
},
@@ -77741,7 +82943,7 @@
"file_type": "rationale",
"source_file": "tests/unit/ui/test_framed_pane.py",
"source_location": "L62",
- "community": 70,
+ "community": 61,
"norm_label": "under a nicegui app context the card > header > body nesting holds and child",
"id": "ui_test_framed_pane_rationale_62"
},
@@ -77750,7 +82952,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/ui/pages/main.py",
"source_location": "L446",
- "community": 196,
+ "community": 182,
"norm_label": "render the centre-pane file list (redesign \u00a74.3). each row carries a right-",
"id": "pages_main_rationale_446"
},
@@ -77759,7 +82961,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/ui/pages/main.py",
"source_location": "L478",
- "community": 205,
+ "community": 192,
"norm_label": "render the right metadata / problems pane (redesign \u00a74.4).",
"id": "pages_main_rationale_478"
},
@@ -77768,7 +82970,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/ui/pages/main.py",
"source_location": "L440",
- "community": 196,
+ "community": 182,
"norm_label": "render the centre-pane file list (redesign \u00a74.3). each row carries a right-",
"id": "pages_main_rationale_440"
},
@@ -77777,7 +82979,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/ui/pages/main.py",
"source_location": "L472",
- "community": 205,
+ "community": 192,
"norm_label": "render the right metadata / problems pane (redesign \u00a74.4).",
"id": "pages_main_rationale_472"
},
@@ -77786,7 +82988,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/ui/pages/main.py",
"source_location": "L434",
- "community": 196,
+ "community": 182,
"norm_label": "render the centre-pane file list (redesign \u00a74.3). each row carries a right-",
"id": "pages_main_rationale_434"
},
@@ -77795,7 +82997,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/ui/pages/main.py",
"source_location": "L466",
- "community": 205,
+ "community": 192,
"norm_label": "render the right metadata / problems pane (redesign \u00a74.4).",
"id": "pages_main_rationale_466"
},
@@ -77804,7 +83006,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/ui/pages/main.py",
"source_location": "L428",
- "community": 196,
+ "community": 182,
"norm_label": "render the centre-pane file list (redesign \u00a74.3). each row carries a right-",
"id": "pages_main_rationale_428"
},
@@ -77813,7 +83015,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/ui/pages/main.py",
"source_location": "L33",
- "community": 126,
+ "community": 81,
"norm_label": "render state for the main page. gui/orchestrator redesign \u00a74: the legacy tw",
"id": "pages_main_rationale_33"
},
@@ -77822,7 +83024,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/ui/pages/main.py",
"source_location": "L76",
- "community": 126,
+ "community": 81,
"norm_label": "the three default chips on the left-tree filter strip (\u00a73.5.4).",
"id": "pages_main_rationale_76"
},
@@ -77831,25 +83033,16 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/ui/pages/main.py",
"source_location": "L86",
- "community": 126,
+ "community": 81,
"norm_label": "translate a chip group state into a :class:`treefilters`.",
"id": "pages_main_rationale_86"
},
- {
- "label": "Return the count text shown on the Problems tab. Frontend \u00a73.2: hard count",
- "file_type": "rationale",
- "source_file": "src/exlab_wizard/ui/pages/main.py",
- "source_location": "L97",
- "community": 126,
- "norm_label": "return the count text shown on the problems tab. frontend \u00a73.2: hard count",
- "id": "pages_main_rationale_97"
- },
{
"label": "Banner content for the setup-incomplete state (\u00a73.1.4). ``next_action`` is",
"file_type": "rationale",
"source_file": "src/exlab_wizard/ui/pages/main.py",
"source_location": "L109",
- "community": 126,
+ "community": 81,
"norm_label": "banner content for the setup-incomplete state (\u00a73.1.4). ``next_action`` is",
"id": "pages_main_rationale_109"
},
@@ -77858,7 +83051,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/ui/pages/main.py",
"source_location": "L157",
- "community": 126,
+ "community": 81,
"norm_label": "render the rebuilt three-region file-explorer main window. gui/orchestrator",
"id": "pages_main_rationale_157"
},
@@ -77867,7 +83060,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/ui/pages/main.py",
"source_location": "L427",
- "community": 196,
+ "community": 182,
"norm_label": "render the centre-pane file list (redesign \u00a74.3). each row carries a right-",
"id": "pages_main_rationale_427"
},
@@ -77876,7 +83069,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/ui/pages/main.py",
"source_location": "L459",
- "community": 205,
+ "community": 192,
"norm_label": "render the right metadata / problems pane (redesign \u00a74.4).",
"id": "pages_main_rationale_459"
},
@@ -77885,7 +83078,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/ui/components/sync_status_icon.py",
"source_location": "L162",
- "community": 143,
+ "community": 251,
"norm_label": "build a nicegui row containing the icon and optional retry counter. ``stric",
"id": "components_sync_status_icon_rationale_162"
},
@@ -77894,7 +83087,7 @@
"file_type": "rationale",
"source_file": "tests/unit/ui/test_file_list.py",
"source_location": "L79",
- "community": 378,
+ "community": 139,
"norm_label": "a bare entry defaults ``keep_local`` and ``tombstone`` to false.",
"id": "ui_test_file_list_rationale_79"
},
@@ -77903,7 +83096,7 @@
"file_type": "rationale",
"source_file": "tests/unit/ui/test_file_list.py",
"source_location": "L86",
- "community": 379,
+ "community": 201,
"norm_label": "flipping ``keep_local`` is a modification (drives a re-render).",
"id": "ui_test_file_list_rationale_86"
},
@@ -77912,7 +83105,7 @@
"file_type": "rationale",
"source_file": "tests/unit/ui/test_file_list.py",
"source_location": "L94",
- "community": 381,
+ "community": 201,
"norm_label": "a file transitioning to a tombstone is a modification.",
"id": "ui_test_file_list_rationale_94"
},
@@ -77921,7 +83114,7 @@
"file_type": "rationale",
"source_file": "tests/unit/ui/test_file_list.py",
"source_location": "L102",
- "community": 380,
+ "community": 372,
"norm_label": "``file_context_keep_local`` is a distinct discriminator value.",
"id": "ui_test_file_list_rationale_102"
},
@@ -77930,7 +83123,7 @@
"file_type": "rationale",
"source_file": "tests/unit/ui/test_file_list.py",
"source_location": "L107",
- "community": 376,
+ "community": 373,
"norm_label": "the renderer wires the keep-local menu item and tombstone row. exercises th",
"id": "ui_test_file_list_rationale_107"
},
@@ -77939,7 +83132,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/ui/components/sync_status_icon.py",
"source_location": "L161",
- "community": 143,
+ "community": 251,
"norm_label": "build a nicegui row containing the icon and optional retry counter.",
"id": "components_sync_status_icon_rationale_161"
},
@@ -77948,7 +83141,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/ui/components/sync_status_icon.py",
"source_location": "L113",
- "community": 143,
+ "community": 205,
"norm_label": "compute icon + tooltip + retry-counter for a sync status. the ``retry_n``/`",
"id": "components_sync_status_icon_rationale_113"
},
@@ -77957,7 +83150,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/ui/components/sync_status_icon.py",
"source_location": "L140",
- "community": 143,
+ "community": 251,
"norm_label": "build a nicegui row containing the icon and optional retry counter.",
"id": "components_sync_status_icon_rationale_140"
},
@@ -77966,7 +83159,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/ui/components/file_list.py",
"source_location": "L118",
- "community": 195,
+ "community": 202,
"norm_label": "render the centre-pane file list. pure render function. double-clicking a f",
"id": "components_file_list_rationale_118"
},
@@ -77975,7 +83168,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/ui/components/file_list.py",
"source_location": "L156",
- "community": 195,
+ "community": 202,
"norm_label": "render the file-list column header row (name / size / modified / status).",
"id": "components_file_list_rationale_156"
},
@@ -77984,7 +83177,7 @@
"file_type": "rationale",
"source_file": "tests/unit/ui/test_theme.py",
"source_location": "L82",
- "community": 117,
+ "community": 70,
"norm_label": "all shadows are navy-tinted (design.md \u00a704).",
"id": "ui_test_theme_rationale_82"
},
@@ -77993,7 +83186,7 @@
"file_type": "rationale",
"source_file": "tests/unit/ui/test_theme.py",
"source_location": "L95",
- "community": 117,
+ "community": 70,
"norm_label": "the block opens with ``:root {`` per design.md \u00a707.",
"id": "ui_test_theme_rationale_95"
},
@@ -78002,7 +83195,7 @@
"file_type": "rationale",
"source_file": "tests/unit/ui/test_theme.py",
"source_location": "L102",
- "community": 117,
+ "community": 70,
"norm_label": "a body / heading / mono reset block follows the ``:root {}``.",
"id": "ui_test_theme_rationale_102"
},
@@ -78011,7 +83204,7 @@
"file_type": "rationale",
"source_file": "tests/unit/ui/test_theme.py",
"source_location": "L111",
- "community": 117,
+ "community": 70,
"norm_label": "in source layout, the resolver returns ``/assets/``.",
"id": "ui_test_theme_rationale_111"
},
@@ -78020,7 +83213,7 @@
"file_type": "rationale",
"source_file": "tests/unit/ui/test_design.py",
"source_location": "L43",
- "community": 421,
+ "community": 462,
"norm_label": "semantic tokens alias the okabe-ito palette per design.md \u00a701.",
"id": "ui_test_design_rationale_43"
},
@@ -78029,7 +83222,7 @@
"file_type": "rationale",
"source_file": "tests/unit/ui/test_design.py",
"source_location": "L52",
- "community": 430,
+ "community": 468,
"norm_label": "frontend \u00a72.1.4: warning is canonically ``--oi-orange``.",
"id": "ui_test_design_rationale_52"
},
@@ -78038,7 +83231,7 @@
"file_type": "rationale",
"source_file": "tests/unit/ui/test_design.py",
"source_location": "L58",
- "community": 328,
+ "community": 470,
"norm_label": "frontend \u00a72.1.3 overrides dm sans / dm mono with ibm plex / system mono.",
"id": "ui_test_design_rationale_58"
},
@@ -78047,7 +83240,7 @@
"file_type": "rationale",
"source_file": "tests/unit/ui/test_design.py",
"source_location": "L68",
- "community": 426,
+ "community": 458,
"norm_label": "type scale tokens are verbatim from design.md \u00a702.",
"id": "ui_test_design_rationale_68"
},
@@ -78056,7 +83249,7 @@
"file_type": "rationale",
"source_file": "tests/unit/ui/test_design.py",
"source_location": "L82",
- "community": 422,
+ "community": 465,
"norm_label": "spacing tokens follow the 4px grid (design.md \u00a703).",
"id": "ui_test_design_rationale_82"
},
@@ -78065,7 +83258,7 @@
"file_type": "rationale",
"source_file": "tests/unit/ui/test_design.py",
"source_location": "L99",
- "community": 431,
+ "community": 463,
"norm_label": "border radius tokens (design.md \u00a704).",
"id": "ui_test_design_rationale_99"
},
@@ -78074,7 +83267,7 @@
"file_type": "rationale",
"source_file": "tests/unit/ui/test_design.py",
"source_location": "L108",
- "community": 428,
+ "community": 461,
"norm_label": "all shadow definitions use ``rgba(0,54,96,...)`` (design.md \u00a704).",
"id": "ui_test_design_rationale_108"
},
@@ -78083,7 +83276,7 @@
"file_type": "rationale",
"source_file": "tests/unit/ui/test_design.py",
"source_location": "L115",
- "community": 420,
+ "community": 459,
"norm_label": "motion tokens (design.md \u00a707).",
"id": "ui_test_design_rationale_115"
},
@@ -78092,7 +83285,7 @@
"file_type": "rationale",
"source_file": "tests/unit/ui/test_design.py",
"source_location": "L122",
- "community": 424,
+ "community": 457,
"norm_label": "series order is fixed (design.md absolute constraint).",
"id": "ui_test_design_rationale_122"
},
@@ -78101,7 +83294,7 @@
"file_type": "rationale",
"source_file": "tests/unit/ui/test_design.py",
"source_location": "L136",
- "community": 423,
+ "community": 460,
"norm_label": "vermilion is reserved for the error / alert series (design.md \u00a706).",
"id": "ui_test_design_rationale_136"
},
@@ -78110,7 +83303,7 @@
"file_type": "rationale",
"source_file": "tests/unit/ui/test_design.py",
"source_location": "L142",
- "community": 425,
+ "community": 466,
"norm_label": "frontend rules (design.md): series 5 is oi_blue but only after 4 prior series.",
"id": "ui_test_design_rationale_142"
},
@@ -78119,7 +83312,7 @@
"file_type": "rationale",
"source_file": "tests/unit/ui/test_design.py",
"source_location": "L153",
- "community": 432,
+ "community": 464,
"norm_label": "badge text variants are the documented darkened hexes (design.md \u00a705).",
"id": "ui_test_design_rationale_153"
},
@@ -78128,7 +83321,7 @@
"file_type": "rationale",
"source_file": "tests/unit/ui/test_design.py",
"source_location": "L165",
- "community": 429,
+ "community": 469,
"norm_label": "alert text variants are the documented hexes (design.md \u00a705).",
"id": "ui_test_design_rationale_165"
},
@@ -78137,7 +83330,7 @@
"file_type": "rationale",
"source_file": "tests/unit/ui/test_design.py",
"source_location": "L176",
- "community": 427,
+ "community": 467,
"norm_label": "``#f0e442`` is exposed as a token but never used for chrome. the chip strip",
"id": "ui_test_design_rationale_176"
},
@@ -78146,7 +83339,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/ui/theme.py",
"source_location": "L101",
- "community": 177,
+ "community": 39,
"norm_label": "register the design tokens with nicegui / quasar at app start. imports nice",
"id": "ui_theme_rationale_101"
},
@@ -78155,7 +83348,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/ui/theme.py",
"source_location": "L123",
- "community": 177,
+ "community": 39,
"norm_label": "return the absolute path to the bundled ``assets/`` directory. resolves bot",
"id": "ui_theme_rationale_123"
},
@@ -78164,7 +83357,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/ui/theme.py",
"source_location": "L138",
- "community": 177,
+ "community": 39,
"norm_label": "mount the project's ``assets/`` directory at ``/assets``. idempotent: a mod",
"id": "ui_theme_rationale_138"
},
@@ -78173,7 +83366,7 @@
"file_type": "code",
"source_file": "tests/unit/test_paths.py",
"source_location": "L876",
- "community": 153,
+ "community": 160,
"norm_label": "test_evaluate_setup_state_nas_keyring_missing()",
"id": "unit_test_paths_test_evaluate_setup_state_nas_keyring_missing"
},
@@ -78182,7 +83375,7 @@
"file_type": "code",
"source_file": "tests/unit/test_paths.py",
"source_location": "L895",
- "community": 153,
+ "community": 160,
"norm_label": "test_evaluate_setup_state_nas_state_resolves_once_password_added()",
"id": "unit_test_paths_test_evaluate_setup_state_nas_state_resolves_once_password_added"
},
@@ -78191,7 +83384,7 @@
"file_type": "code",
"source_file": "tests/unit/test_paths.py",
"source_location": "L905",
- "community": 153,
+ "community": 160,
"norm_label": "test_setup_state_missing_for_no_nas_credential_lists_per_equipment()",
"id": "unit_test_paths_test_setup_state_missing_for_no_nas_credential_lists_per_equipment"
},
@@ -78200,7 +83393,7 @@
"file_type": "code",
"source_file": "tests/unit/test_paths.py",
"source_location": "L919",
- "community": 210,
+ "community": 75,
"norm_label": "test_setup_state_next_action_for_no_nas_credential()",
"id": "unit_test_paths_test_setup_state_next_action_for_no_nas_credential"
},
@@ -78209,7 +83402,7 @@
"file_type": "rationale",
"source_file": "tests/unit/test_paths.py",
"source_location": "L71",
- "community": 52,
+ "community": 59,
"norm_label": "minimal orchestrator identity (redesign \u00a73.1) for setup-state fixtures.",
"id": "unit_test_paths_rationale_71"
},
@@ -78218,7 +83411,7 @@
"file_type": "rationale",
"source_file": "tests/unit/test_paths.py",
"source_location": "L81",
- "community": 153,
+ "community": 160,
"norm_label": "construct a fully ready config (paths + equipment + lims endpoint+email). r",
"id": "unit_test_paths_rationale_81"
},
@@ -78227,7 +83420,7 @@
"file_type": "rationale",
"source_file": "tests/unit/test_paths.py",
"source_location": "L106",
- "community": 82,
+ "community": 489,
"norm_label": "return a fake home under tmp_path; route ``path.home()`` to it.",
"id": "unit_test_paths_rationale_106"
},
@@ -78236,7 +83429,7 @@
"file_type": "rationale",
"source_file": "tests/unit/test_paths.py",
"source_location": "L351",
- "community": 64,
+ "community": 76,
"norm_label": "the suggestion now nests under app_name on every platform, so the test-mode",
"id": "unit_test_paths_rationale_351"
},
@@ -78245,7 +83438,7 @@
"file_type": "rationale",
"source_file": "tests/unit/test_paths.py",
"source_location": "L360",
- "community": 64,
+ "community": 76,
"norm_label": "unset / non-'1' values must leave the real os dirs untouched.",
"id": "unit_test_paths_rationale_360"
},
@@ -78254,7 +83447,7 @@
"file_type": "rationale",
"source_file": "tests/unit/test_paths.py",
"source_location": "L474",
- "community": 82,
+ "community": 75,
"norm_label": "non-str input hits the isinstance guard, not the regex.",
"id": "unit_test_paths_rationale_474"
},
@@ -78263,7 +83456,7 @@
"file_type": "rationale",
"source_file": "tests/unit/test_paths.py",
"source_location": "L481",
- "community": 82,
+ "community": 75,
"norm_label": "non-str input hits the isinstance guard, not the length / regex check.",
"id": "unit_test_paths_rationale_481"
},
@@ -78272,7 +83465,7 @@
"file_type": "rationale",
"source_file": "tests/unit/test_paths.py",
"source_location": "L489",
- "community": 82,
+ "community": 75,
"norm_label": "spec contract: input must already be canonical; no silent uppercasing.",
"id": "unit_test_paths_rationale_489"
},
@@ -78281,7 +83474,7 @@
"file_type": "rationale",
"source_file": "tests/unit/test_paths.py",
"source_location": "L531",
- "community": 167,
+ "community": 176,
"norm_label": "the leaf is iso 8601 with colons replaced by hyphens. \u00a73.1. redesign \u00a73.4:",
"id": "unit_test_paths_rationale_531"
},
@@ -78290,7 +83483,7 @@
"file_type": "rationale",
"source_file": "tests/unit/test_paths.py",
"source_location": "L548",
- "community": 167,
+ "community": 176,
"norm_label": "redesign \u00a73.4: experimental runs live under /runs/run_*.",
"id": "unit_test_paths_rationale_548"
},
@@ -78299,7 +83492,7 @@
"file_type": "rationale",
"source_file": "tests/unit/test_paths.py",
"source_location": "L561",
- "community": 167,
+ "community": 176,
"norm_label": "redesign \u00a73.4: two runs in the same minute resolve to the same path (copier",
"id": "unit_test_paths_rationale_561"
},
@@ -78308,7 +83501,7 @@
"file_type": "rationale",
"source_file": "tests/unit/test_paths.py",
"source_location": "L632",
- "community": 167,
+ "community": 176,
"norm_label": "a non-str project_name hits the isinstance guard.",
"id": "unit_test_paths_rationale_632"
},
@@ -78317,7 +83510,7 @@
"file_type": "rationale",
"source_file": "tests/unit/test_paths.py",
"source_location": "L645",
- "community": 167,
+ "community": 176,
"norm_label": "an empty-string project_name also hits the same guard.",
"id": "unit_test_paths_rationale_645"
},
@@ -78326,7 +83519,7 @@
"file_type": "rationale",
"source_file": "tests/unit/test_paths.py",
"source_location": "L673",
- "community": 252,
+ "community": 256,
"norm_label": "spaces and ordinary punctuation are fine -- the name is used verbatim.",
"id": "unit_test_paths_rationale_673"
},
@@ -78335,7 +83528,7 @@
"file_type": "rationale",
"source_file": "tests/unit/test_paths.py",
"source_location": "L709",
- "community": 252,
+ "community": 256,
"norm_label": "the \u00a73.2 contract is 'used verbatim' -- no canonicalisation.",
"id": "unit_test_paths_rationale_709"
},
@@ -78344,7 +83537,7 @@
"file_type": "rationale",
"source_file": "tests/unit/test_paths.py",
"source_location": "L733",
- "community": 52,
+ "community": 59,
"norm_label": "only one path is empty -- still incomplete_missing_paths.",
"id": "unit_test_paths_rationale_733"
},
@@ -78353,7 +83546,7 @@
"file_type": "rationale",
"source_file": "tests/unit/test_paths.py",
"source_location": "L760",
- "community": 52,
+ "community": 59,
"norm_label": "only ``label`` gates orchestrator identity; a blank label trips it.",
"id": "unit_test_paths_rationale_760"
},
@@ -78362,7 +83555,7 @@
"file_type": "rationale",
"source_file": "tests/unit/test_paths.py",
"source_location": "L773",
- "community": 52,
+ "community": 59,
"norm_label": "a staging root without a label still trips -- staging never substitutes.",
"id": "unit_test_paths_rationale_773"
},
@@ -78380,7 +83573,7 @@
"file_type": "rationale",
"source_file": "tests/unit/test_paths.py",
"source_location": "L806",
- "community": 52,
+ "community": 59,
"norm_label": "the orchestrator missing-field rollup no longer mentions staging_root.",
"id": "unit_test_paths_rationale_806"
},
@@ -78389,7 +83582,7 @@
"file_type": "rationale",
"source_file": "tests/unit/test_paths.py",
"source_location": "L837",
- "community": 52,
+ "community": 59,
"norm_label": "offline catalogue path satisfies the lims slot without endpoint+email.",
"id": "unit_test_paths_rationale_837"
},
@@ -78398,7 +83591,7 @@
"file_type": "rationale",
"source_file": "tests/unit/test_paths.py",
"source_location": "L868",
- "community": 153,
+ "community": 160,
"norm_label": "endpoint+email present but keyring lacks the password -> incomplete_no_lims.",
"id": "unit_test_paths_rationale_868"
},
@@ -78407,7 +83600,7 @@
"file_type": "rationale",
"source_file": "tests/unit/test_paths.py",
"source_location": "L877",
- "community": 153,
+ "community": 160,
"norm_label": "nas-mode equipment without its keyring entry gates with the new state.",
"id": "unit_test_paths_rationale_877"
},
@@ -78416,7 +83609,7 @@
"file_type": "rationale",
"source_file": "tests/unit/test_paths.py",
"source_location": "L884",
- "community": 153,
+ "community": 160,
"norm_label": "a configured lims does not mask the missing nas credential.",
"id": "unit_test_paths_rationale_884"
},
@@ -78425,7 +83618,7 @@
"file_type": "rationale",
"source_file": "tests/unit/test_paths.py",
"source_location": "L896",
- "community": 153,
+ "community": 160,
"norm_label": "adding the keyring entry advances the state to the next gate.",
"id": "unit_test_paths_rationale_896"
},
@@ -78434,7 +83627,7 @@
"file_type": "rationale",
"source_file": "tests/unit/test_paths.py",
"source_location": "L906",
- "community": 153,
+ "community": 160,
"norm_label": "the missing list names each equipment id whose keyring entry is absent.",
"id": "unit_test_paths_rationale_906"
},
@@ -78443,7 +83636,7 @@
"file_type": "rationale",
"source_file": "tests/unit/test_paths.py",
"source_location": "L929",
- "community": 52,
+ "community": 59,
"norm_label": "endpoint present but email empty -> incomplete_no_lims (email is required).",
"id": "unit_test_paths_rationale_929"
},
@@ -78452,7 +83645,7 @@
"file_type": "rationale",
"source_file": "tests/unit/test_paths.py",
"source_location": "L981",
- "community": 153,
+ "community": 160,
"norm_label": "soft block: surfaces a banner, not a missing-field list.",
"id": "unit_test_paths_rationale_981"
},
@@ -78461,7 +83654,7 @@
"file_type": "rationale",
"source_file": "tests/unit/test_paths.py",
"source_location": "L1019",
- "community": 60,
+ "community": 177,
"norm_label": "when config is none but state is incomplete_missing_paths, every paths field",
"id": "unit_test_paths_rationale_1019"
},
@@ -78470,7 +83663,7 @@
"file_type": "rationale",
"source_file": "tests/unit/test_paths.py",
"source_location": "L1030",
- "community": 460,
+ "community": 177,
"norm_label": "when config is none but state is incomplete_no_lims, the whole lims block is",
"id": "unit_test_paths_rationale_1030"
},
@@ -78479,7 +83672,7 @@
"file_type": "rationale",
"source_file": "tests/unit/test_paths.py",
"source_location": "L1038",
- "community": 52,
+ "community": 59,
"norm_label": "endpoint+email both filled in but no offline catalogue -> the keyring-passwo",
"id": "unit_test_paths_rationale_1038"
},
@@ -78488,7 +83681,7 @@
"file_type": "rationale",
"source_file": "tests/unit/test_paths.py",
"source_location": "L1064",
- "community": 459,
+ "community": 177,
"norm_label": "defensive fallback: any value that isn't a recognized setupstate returns an",
"id": "unit_test_paths_rationale_1064"
},
@@ -78497,7 +83690,7 @@
"file_type": "rationale",
"source_file": "tests/unit/ui/test_components.py",
"source_location": "L715",
- "community": 407,
+ "community": 394,
"norm_label": "archived projects are hidden by default.",
"id": "ui_test_components_rationale_715"
},
@@ -78506,7 +83699,7 @@
"file_type": "rationale",
"source_file": "tests/unit/ui/test_components.py",
"source_location": "L735",
- "community": 408,
+ "community": 393,
"norm_label": "deleted-from-lims rows always render (frontend \u00a73.5.3).",
"id": "ui_test_components_rationale_735"
},
@@ -78515,7 +83708,7 @@
"file_type": "rationale",
"source_file": "tests/unit/ui/test_components.py",
"source_location": "L782",
- "community": 405,
+ "community": 326,
"norm_label": "``runnode.sync_status`` flows through to the resulting ``treenode``.",
"id": "ui_test_components_rationale_782"
},
@@ -78524,7 +83717,7 @@
"file_type": "rationale",
"source_file": "tests/unit/ui/test_components.py",
"source_location": "L799",
- "community": 410,
+ "community": 326,
"norm_label": "a ``cleared`` run row carries the cloud-icon url and its sync_status. opera",
"id": "ui_test_components_rationale_799"
},
@@ -78533,7 +83726,7 @@
"file_type": "rationale",
"source_file": "tests/unit/ui/test_components.py",
"source_location": "L824",
- "community": 413,
+ "community": 391,
"norm_label": "any non-``cleaned`` sync status (or unset) maps to the local-icon url.",
"id": "ui_test_components_rationale_824"
},
@@ -78542,25 +83735,16 @@
"file_type": "rationale",
"source_file": "tests/unit/ui/test_components.py",
"source_location": "L850",
- "community": 415,
+ "community": 327,
"norm_label": "equipment and project rows render without the per-row sync icon.",
"id": "ui_test_components_rationale_850"
},
- {
- "label": "An ``EquipmentNode(relay=True)`` builds a ``received_equipment`` row.",
- "file_type": "rationale",
- "source_file": "tests/unit/ui/test_components.py",
- "source_location": "L872",
- "community": 409,
- "norm_label": "an ``equipmentnode(relay=true)`` builds a ``received_equipment`` row.",
- "id": "ui_test_components_rationale_872"
- },
{
"label": "Each row carries a ``testid_kind`` matching the Playwright contract.",
"file_type": "rationale",
"source_file": "tests/unit/ui/test_components.py",
"source_location": "L886",
- "community": 406,
+ "community": 395,
"norm_label": "each row carries a ``testid_kind`` matching the playwright contract.",
"id": "ui_test_components_rationale_886"
},
@@ -78569,7 +83753,7 @@
"file_type": "rationale",
"source_file": "tests/unit/ui/test_components.py",
"source_location": "L910",
- "community": 412,
+ "community": 390,
"norm_label": "the ``default-header`` template carries the per-row anchors the playwright f",
"id": "ui_test_components_rationale_910"
},
@@ -78578,7 +83762,7 @@
"file_type": "rationale",
"source_file": "tests/unit/ui/test_components.py",
"source_location": "L950",
- "community": 414,
+ "community": 392,
"norm_label": "each factory emits a dict (or nicegui element) without crashing. the factor",
"id": "ui_test_components_rationale_950"
},
@@ -78587,7 +83771,7 @@
"file_type": "rationale",
"source_file": "tests/unit/ui/test_components.py",
"source_location": "L983",
- "community": 411,
+ "community": 389,
"norm_label": "the pre-commit ``no-direct-ui-notify`` rule is mirrored in tests. any call",
"id": "ui_test_components_rationale_983"
},
@@ -78596,7 +83780,7 @@
"file_type": "code",
"source_file": "tests/unit/ui/test_pages.py",
"source_location": "L94",
- "community": 416,
+ "community": 397,
"norm_label": "test_main_setup_banner_subline_tailored_for_nas_credentials()",
"id": "ui_test_pages_test_main_setup_banner_subline_tailored_for_nas_credentials"
},
@@ -78605,7 +83789,7 @@
"file_type": "code",
"source_file": "tests/unit/ui/test_pages.py",
"source_location": "L275",
- "community": 417,
+ "community": 396,
"norm_label": "test_settings_first_incomplete_resolves_nas_credentials()",
"id": "ui_test_pages_test_settings_first_incomplete_resolves_nas_credentials"
},
@@ -78708,21 +83892,12 @@
"norm_label": "real config with one password-requiring nas-mode equipment. ``offline_catal",
"id": "ui_test_mount_rationale_342"
},
- {
- "label": "Redesign \u00a73.1: orchestrator pipeline is always on, but a missing staging_roo",
- "file_type": "rationale",
- "source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L446",
- "community": 2,
- "norm_label": "redesign \u00a73.1: orchestrator pipeline is always on, but a missing staging_roo",
- "id": "ui_test_mount_rationale_446"
- },
{
"label": "Minimal stand-in for the NiceGUI ``ui`` object's navigate surface.",
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
"source_location": "L493",
- "community": 49,
+ "community": 60,
"norm_label": "minimal stand-in for the nicegui ``ui`` object's navigate surface.",
"id": "ui_test_mount_rationale_493"
},
@@ -78731,7 +83906,7 @@
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
"source_location": "L501",
- "community": 49,
+ "community": 324,
"norm_label": "a successful save persists, then hot-reloads the live components. the old b",
"id": "ui_test_mount_rationale_501"
},
@@ -78740,7 +83915,7 @@
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
"source_location": "L578",
- "community": 49,
+ "community": 60,
"norm_label": "opt-in: a saved non-empty staging_root is created on save.",
"id": "ui_test_mount_rationale_578"
},
@@ -78749,7 +83924,7 @@
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
"source_location": "L634",
- "community": 2,
+ "community": 386,
"norm_label": "if the coordinator raises wholesale, the live config is still kept.",
"id": "ui_test_mount_rationale_634"
},
@@ -78776,7 +83951,7 @@
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
"source_location": "L749",
- "community": 298,
+ "community": 385,
"norm_label": "a raising keyring backend surfaces a toast, not an unhandled crash.",
"id": "ui_test_mount_rationale_749"
},
@@ -78794,7 +83969,7 @@
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
"source_location": "L1227",
- "community": 389,
+ "community": 387,
"norm_label": "both empty -> empty string. one present -> single param.",
"id": "ui_test_mount_rationale_1227"
},
@@ -78803,7 +83978,7 @@
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
"source_location": "L1235",
- "community": 390,
+ "community": 80,
"norm_label": "project names with spaces / special chars survive the round trip.",
"id": "ui_test_mount_rationale_1235"
},
@@ -78812,7 +83987,7 @@
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
"source_location": "L1252",
- "community": 350,
+ "community": 80,
"norm_label": "equipment / project / run / received_equipment all classify correctly.",
"id": "ui_test_mount_rationale_1252"
},
@@ -78821,7 +83996,7 @@
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
"source_location": "L1273",
- "community": 349,
+ "community": 350,
"norm_label": "a node id whose root is not in the hierarchy returns ``(none, false)``. gua",
"id": "ui_test_mount_rationale_1273"
},
@@ -78830,7 +84005,7 @@
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
"source_location": "L1313",
- "community": 164,
+ "community": 80,
"norm_label": "asking for a node that isn't in config.equipment returns ``{}``.",
"id": "ui_test_mount_rationale_1313"
},
@@ -78839,7 +84014,7 @@
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
"source_location": "L1320",
- "community": 164,
+ "community": 80,
"norm_label": "the project payload counts run_* and testrun_* directories.",
"id": "ui_test_mount_rationale_1320"
},
@@ -78848,34 +84023,16 @@
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
"source_location": "L1339",
- "community": 164,
+ "community": 80,
"norm_label": "the run payload decodes creation.json into the metadata fields.",
"id": "ui_test_mount_rationale_1339"
},
- {
- "label": "A run dir without a creation.json yields {path, name}, not crash.",
- "file_type": "rationale",
- "source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L1384",
- "community": 242,
- "norm_label": "a run dir without a creation.json yields {path, name}, not crash.",
- "id": "ui_test_mount_rationale_1384"
- },
- {
- "label": "An unknown sys.platform falls through to False so the toast can warn.",
- "file_type": "rationale",
- "source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L1411",
- "community": 103,
- "norm_label": "an unknown sys.platform falls through to false so the toast can warn.",
- "id": "ui_test_mount_rationale_1411"
- },
{
"label": "Linux dispatches to xdg-open via subprocess.Popen.",
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
"source_location": "L1417",
- "community": 103,
+ "community": 131,
"norm_label": "linux dispatches to xdg-open via subprocess.popen.",
"id": "ui_test_mount_rationale_1417"
},
@@ -78884,7 +84041,7 @@
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
"source_location": "L1431",
- "community": 299,
+ "community": 50,
"norm_label": "macos dispatches to the ``open`` command.",
"id": "ui_test_mount_rationale_1431"
},
@@ -78893,7 +84050,7 @@
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
"source_location": "L1464",
- "community": 17,
+ "community": 14,
"norm_label": "minimal nicegui surface stand-in: clipboard + navigate.to + notify.",
"id": "ui_test_mount_rationale_1464"
},
@@ -78902,7 +84059,7 @@
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
"source_location": "L1489",
- "community": 17,
+ "community": 14,
"norm_label": "``open_in_os`` action calls the platform opener and reports success.",
"id": "ui_test_mount_rationale_1489"
},
@@ -78911,7 +84068,7 @@
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
"source_location": "L1501",
- "community": 297,
+ "community": 131,
"norm_label": "when the opener returns false the action surfaces a negative toast.",
"id": "ui_test_mount_rationale_1501"
},
@@ -78920,7 +84077,7 @@
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
"source_location": "L1510",
- "community": 62,
+ "community": 33,
"norm_label": "``copy_path`` writes the entry path to the nicegui clipboard.",
"id": "ui_test_mount_rationale_1510"
},
@@ -78929,7 +84086,7 @@
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
"source_location": "L1560",
- "community": 162,
+ "community": 86,
"norm_label": "force-sync routes to ``deps.nas_sync.enqueue`` with the run path.",
"id": "ui_test_mount_rationale_1560"
},
@@ -78938,7 +84095,7 @@
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
"source_location": "L1580",
- "community": 103,
+ "community": 107,
"norm_label": "the early-exit when config is missing keeps the action a no-op.",
"id": "ui_test_mount_rationale_1580"
},
@@ -78947,7 +84104,7 @@
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
"source_location": "L1589",
- "community": 145,
+ "community": 33,
"norm_label": "``view_log`` dispatches to the dialog opener helper.",
"id": "ui_test_mount_rationale_1589"
},
@@ -78956,7 +84113,7 @@
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
"source_location": "L1599",
- "community": 145,
+ "community": 33,
"norm_label": "an unknown action verb is reported but doesn't raise.",
"id": "ui_test_mount_rationale_1599"
},
@@ -78965,7 +84122,7 @@
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
"source_location": "L1608",
- "community": 17,
+ "community": 14,
"norm_label": "``clear_verified`` deletes the run directory via the local helper.",
"id": "ui_test_mount_rationale_1608"
},
@@ -78974,7 +84131,7 @@
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
"source_location": "L1633",
- "community": 17,
+ "community": 14,
"norm_label": "the bulk action clears every ``synced`` row and toasts the count.",
"id": "ui_test_mount_rationale_1633"
},
@@ -78983,7 +84140,7 @@
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
"source_location": "L1660",
- "community": 55,
+ "community": 86,
"norm_label": "the early-exit when config is missing produces a toast, no task.",
"id": "ui_test_mount_rationale_1660"
},
@@ -79001,7 +84158,7 @@
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
"source_location": "L1704",
- "community": 62,
+ "community": 33,
"norm_label": "without a selected node the feed isn't started and returns ``[]``.",
"id": "ui_test_mount_rationale_1704"
},
@@ -79010,7 +84167,7 @@
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
"source_location": "L1714",
- "community": 77,
+ "community": 50,
"norm_label": "the first call mounts a folderfeed + refreshcoordinator on tab storage.",
"id": "ui_test_mount_rationale_1714"
},
@@ -79019,7 +84176,7 @@
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
"source_location": "L1769",
- "community": 78,
+ "community": 157,
"norm_label": "the fetch is a no-op when refreshcoordinator just walked the tree.",
"id": "ui_test_mount_rationale_1769"
},
@@ -79028,7 +84185,7 @@
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
"source_location": "L1821",
- "community": 165,
+ "community": 173,
"norm_label": "a run with no sync-queue job still renders a dialog without raising.",
"id": "ui_test_mount_rationale_1821"
},
@@ -79037,7 +84194,7 @@
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
"source_location": "L1887",
- "community": 77,
+ "community": 158,
"norm_label": "an unknown relay id still produces a payload (best-effort label).",
"id": "ui_test_mount_rationale_1887"
},
@@ -79046,25 +84203,16 @@
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
"source_location": "L1894",
- "community": 78,
+ "community": 86,
"norm_label": "a node id without an equipment/project split returns ``{}``.",
"id": "ui_test_mount_rationale_1894"
},
- {
- "label": "A missing parent dir returns 0 (no FS pre-check needed).",
- "file_type": "rationale",
- "source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L1900",
- "community": 78,
- "norm_label": "a missing parent dir returns 0 (no fs pre-check needed).",
- "id": "ui_test_mount_rationale_1900"
- },
{
"label": "Only directory children whose names start with the prefix are counted.",
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
"source_location": "L1905",
- "community": 296,
+ "community": 69,
"norm_label": "only directory children whose names start with the prefix are counted.",
"id": "ui_test_mount_rationale_1905"
},
@@ -79073,7 +84221,7 @@
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
"source_location": "L1914",
- "community": 295,
+ "community": 157,
"norm_label": "a corrupt creation.json yields {path, name}, never crashes.",
"id": "ui_test_mount_rationale_1914"
},
@@ -79082,7 +84230,7 @@
"file_type": "rationale",
"source_file": "tests/unit/ui/test_mount.py",
"source_location": "L1959",
- "community": 163,
+ "community": 106,
"norm_label": "the 0-file path reports ``already cleared`` rather than ``cleared n``.",
"id": "ui_test_mount_rationale_1959"
},
@@ -79091,7 +84239,7 @@
"file_type": "code",
"source_file": "tests/unit/ui/test_wizard_equipment.py",
"source_location": "L62",
- "community": 71,
+ "community": 242,
"norm_label": "test_can_advance_sync_mode_nas_requires_rclone_fields()",
"id": "ui_test_wizard_equipment_test_can_advance_sync_mode_nas_requires_rclone_fields"
},
@@ -79100,7 +84248,7 @@
"file_type": "code",
"source_file": "tests/unit/ui/test_wizard_equipment.py",
"source_location": "L69",
- "community": 71,
+ "community": 242,
"norm_label": "test_can_advance_sync_mode_stage_requires_staging_fields()",
"id": "ui_test_wizard_equipment_test_can_advance_sync_mode_stage_requires_staging_fields"
},
@@ -79109,7 +84257,7 @@
"file_type": "code",
"source_file": "tests/unit/ui/test_dynamic_form.py",
"source_location": "L140",
- "community": 197,
+ "community": 194,
"norm_label": "test_build_equipment_sftp()",
"id": "ui_test_dynamic_form_test_build_equipment_sftp"
},
@@ -79118,7 +84266,7 @@
"file_type": "code",
"source_file": "tests/unit/ui/test_dynamic_form.py",
"source_location": "L147",
- "community": 197,
+ "community": 194,
"norm_label": "test_build_equipment_smb()",
"id": "ui_test_dynamic_form_test_build_equipment_smb"
},
@@ -79127,7 +84275,7 @@
"file_type": "code",
"source_file": "tests/unit/ui/test_settings_nas_credentials.py",
"source_location": "L1",
- "community": 249,
+ "community": 250,
"norm_label": "test_settings_nas_credentials.py",
"id": "tests_unit_ui_test_settings_nas_credentials_py"
},
@@ -79136,7 +84284,7 @@
"file_type": "code",
"source_file": "tests/unit/ui/test_settings_nas_credentials.py",
"source_location": "L25",
- "community": 249,
+ "community": 250,
"norm_label": "_nas_equipment()",
"id": "ui_test_settings_nas_credentials_nas_equipment"
},
@@ -79145,7 +84293,7 @@
"file_type": "code",
"source_file": "tests/unit/ui/test_settings_nas_credentials.py",
"source_location": "L41",
- "community": 249,
+ "community": 250,
"norm_label": "_stage_equipment()",
"id": "ui_test_settings_nas_credentials_stage_equipment"
},
@@ -79154,7 +84302,7 @@
"file_type": "code",
"source_file": "tests/unit/ui/test_settings_nas_credentials.py",
"source_location": "L56",
- "community": 249,
+ "community": 250,
"norm_label": "_config_with()",
"id": "ui_test_settings_nas_credentials_config_with"
},
@@ -79163,7 +84311,7 @@
"file_type": "code",
"source_file": "tests/unit/ui/test_settings_nas_credentials.py",
"source_location": "L64",
- "community": 249,
+ "community": 250,
"norm_label": "_testids()",
"id": "ui_test_settings_nas_credentials_testids"
},
@@ -79172,7 +84320,7 @@
"file_type": "code",
"source_file": "tests/unit/ui/test_settings_nas_credentials.py",
"source_location": "L77",
- "community": 249,
+ "community": 250,
"norm_label": "test_sections_omit_nas_credentials_without_password_equipment()",
"id": "ui_test_settings_nas_credentials_test_sections_omit_nas_credentials_without_password_equipment"
},
@@ -79181,7 +84329,7 @@
"file_type": "code",
"source_file": "tests/unit/ui/test_settings_nas_credentials.py",
"source_location": "L85",
- "community": 249,
+ "community": 250,
"norm_label": "test_sections_insert_nas_credentials_after_equipment()",
"id": "ui_test_settings_nas_credentials_test_sections_insert_nas_credentials_after_equipment"
},
@@ -79190,7 +84338,7 @@
"file_type": "code",
"source_file": "tests/unit/ui/test_settings_nas_credentials.py",
"source_location": "L99",
- "community": 249,
+ "community": 250,
"norm_label": "test_section_renders_one_row_per_password_equipment()",
"id": "ui_test_settings_nas_credentials_test_section_renders_one_row_per_password_equipment"
},
@@ -79199,7 +84347,7 @@
"file_type": "code",
"source_file": "tests/unit/ui/test_settings_nas_credentials.py",
"source_location": "L118",
- "community": 249,
+ "community": 250,
"norm_label": "test_section_nav_entry_present_when_password_equipment_exists()",
"id": "ui_test_settings_nas_credentials_test_section_nav_entry_present_when_password_equipment_exists"
},
@@ -79208,7 +84356,7 @@
"file_type": "code",
"source_file": "tests/unit/ui/test_settings_nas_credentials.py",
"source_location": "L130",
- "community": 249,
+ "community": 250,
"norm_label": "test_section_nav_entry_absent_for_stage_only_config()",
"id": "ui_test_settings_nas_credentials_test_section_nav_entry_absent_for_stage_only_config"
},
@@ -79217,7 +84365,7 @@
"file_type": "code",
"source_file": "tests/unit/ui/test_settings_nas_credentials.py",
"source_location": "L141",
- "community": 249,
+ "community": 250,
"norm_label": "test_present_password_opens_set_state_with_clear_action()",
"id": "ui_test_settings_nas_credentials_test_present_password_opens_set_state_with_clear_action"
},
@@ -79226,7 +84374,7 @@
"file_type": "code",
"source_file": "tests/unit/ui/test_settings_nas_credentials.py",
"source_location": "L155",
- "community": 249,
+ "community": 250,
"norm_label": "test_handlers_factory_called_per_equipment_id()",
"id": "ui_test_settings_nas_credentials_test_handlers_factory_called_per_equipment_id"
},
@@ -79235,7 +84383,7 @@
"file_type": "rationale",
"source_file": "tests/unit/ui/test_settings_nas_credentials.py",
"source_location": "L1",
- "community": 249,
+ "community": 250,
"norm_label": "tests for the settings nas-credentials section (rclone-only migration). the sec",
"id": "ui_test_settings_nas_credentials_rationale_1"
},
@@ -79244,7 +84392,7 @@
"file_type": "rationale",
"source_file": "tests/unit/config/test_loader.py",
"source_location": "L307",
- "community": 13,
+ "community": 108,
"norm_label": "the default code path is a no-op: no env var, no rewrite.",
"id": "config_test_loader_rationale_307"
},
@@ -79253,7 +84401,7 @@
"file_type": "rationale",
"source_file": "tests/unit/config/test_loader.py",
"source_location": "L314",
- "community": 13,
+ "community": 108,
"norm_label": "a truthy env value rewrites every id with the canonical prefix.",
"id": "config_test_loader_rationale_314"
},
@@ -79262,7 +84410,7 @@
"file_type": "rationale",
"source_file": "tests/unit/config/test_loader.py",
"source_location": "L329",
- "community": 13,
+ "community": 108,
"norm_label": "an already-``test_``-prefixed id must not be re-prefixed.",
"id": "config_test_loader_rationale_329"
},
@@ -79271,7 +84419,7 @@
"file_type": "rationale",
"source_file": "tests/unit/config/test_loader.py",
"source_location": "L359",
- "community": 13,
+ "community": 108,
"norm_label": "the transformed config still passes config.model_validate.",
"id": "config_test_loader_rationale_359"
},
@@ -79280,7 +84428,7 @@
"file_type": "rationale",
"source_file": "tests/unit/config/test_loader.py",
"source_location": "L377",
- "community": 13,
+ "community": 108,
"norm_label": "every accepted spelling flips the loader on (case-insensitive).",
"id": "config_test_loader_rationale_377"
},
@@ -79289,7 +84437,7 @@
"file_type": "rationale",
"source_file": "tests/unit/config/test_loader.py",
"source_location": "L389",
- "community": 13,
+ "community": 108,
"norm_label": "falsy / unrecognized values leave the loaded config untouched.",
"id": "config_test_loader_rationale_389"
},
@@ -79298,7 +84446,7 @@
"file_type": "rationale",
"source_file": "tests/unit/config/test_loader.py",
"source_location": "L398",
- "community": 13,
+ "community": 108,
"norm_label": "an absent env var (not just empty) leaves the config untouched.",
"id": "config_test_loader_rationale_398"
},
@@ -79307,7 +84455,7 @@
"file_type": "rationale",
"source_file": "tests/unit/config/test_loader.py",
"source_location": "L407",
- "community": 13,
+ "community": 108,
"norm_label": "``apply_test_mode_prefix`` itself ignores the env var. the env-var check is",
"id": "config_test_loader_rationale_407"
},
@@ -79316,7 +84464,7 @@
"file_type": "code",
"source_file": "tests/unit/config/test_models.py",
"source_location": "L48",
- "community": 112,
+ "community": 4,
"norm_label": "_sftp_transport_dict()",
"id": "config_test_models_sftp_transport_dict"
},
@@ -79325,7 +84473,7 @@
"file_type": "code",
"source_file": "tests/unit/config/test_models.py",
"source_location": "L59",
- "community": 112,
+ "community": 212,
"norm_label": "_smb_transport_dict()",
"id": "config_test_models_smb_transport_dict"
},
@@ -79334,7 +84482,7 @@
"file_type": "code",
"source_file": "tests/unit/config/test_models.py",
"source_location": "L388",
- "community": 112,
+ "community": 4,
"norm_label": "test_sftp_transport_minimal()",
"id": "config_test_models_test_sftp_transport_minimal"
},
@@ -79343,7 +84491,7 @@
"file_type": "code",
"source_file": "tests/unit/config/test_models.py",
"source_location": "L395",
- "community": 112,
+ "community": 4,
"norm_label": "test_sftp_transport_rejects_missing_host()",
"id": "config_test_models_test_sftp_transport_rejects_missing_host"
},
@@ -79352,7 +84500,7 @@
"file_type": "code",
"source_file": "tests/unit/config/test_models.py",
"source_location": "L402",
- "community": 112,
+ "community": 4,
"norm_label": "test_sftp_transport_rejects_empty_user()",
"id": "config_test_models_test_sftp_transport_rejects_empty_user"
},
@@ -79361,7 +84509,7 @@
"file_type": "code",
"source_file": "tests/unit/config/test_models.py",
"source_location": "L409",
- "community": 112,
+ "community": 4,
"norm_label": "test_sftp_transport_rejects_empty_remote_path()",
"id": "config_test_models_test_sftp_transport_rejects_empty_remote_path"
},
@@ -79370,7 +84518,7 @@
"file_type": "code",
"source_file": "tests/unit/config/test_models.py",
"source_location": "L416",
- "community": 112,
+ "community": 4,
"norm_label": "test_sftp_transport_rejects_out_of_range_port()",
"id": "config_test_models_test_sftp_transport_rejects_out_of_range_port"
},
@@ -79379,7 +84527,7 @@
"file_type": "code",
"source_file": "tests/unit/config/test_models.py",
"source_location": "L423",
- "community": 112,
+ "community": 4,
"norm_label": "test_sftp_transport_rejects_wrong_type_tag()",
"id": "config_test_models_test_sftp_transport_rejects_wrong_type_tag"
},
@@ -79388,7 +84536,7 @@
"file_type": "code",
"source_file": "tests/unit/config/test_models.py",
"source_location": "L435",
- "community": 112,
+ "community": 212,
"norm_label": "test_smb_transport_minimal()",
"id": "config_test_models_test_smb_transport_minimal"
},
@@ -79397,7 +84545,7 @@
"file_type": "code",
"source_file": "tests/unit/config/test_models.py",
"source_location": "L443",
- "community": 112,
+ "community": 212,
"norm_label": "test_smb_transport_accepts_optional_domain_and_subpath()",
"id": "config_test_models_test_smb_transport_accepts_optional_domain_and_subpath"
},
@@ -79406,7 +84554,7 @@
"file_type": "code",
"source_file": "tests/unit/config/test_models.py",
"source_location": "L452",
- "community": 112,
+ "community": 212,
"norm_label": "test_smb_transport_rejects_missing_share()",
"id": "config_test_models_test_smb_transport_rejects_missing_share"
},
@@ -79415,7 +84563,7 @@
"file_type": "code",
"source_file": "tests/unit/config/test_models.py",
"source_location": "L464",
- "community": 112,
+ "community": 212,
"norm_label": "test_requires_keyring_password_true_for_sftp_and_smb()",
"id": "config_test_models_test_requires_keyring_password_true_for_sftp_and_smb"
},
@@ -79424,7 +84572,7 @@
"file_type": "code",
"source_file": "tests/unit/config/test_models.py",
"source_location": "L471",
- "community": 112,
+ "community": 212,
"norm_label": "test_requires_keyring_password_false_for_none()",
"id": "config_test_models_test_requires_keyring_password_false_for_none"
},
@@ -79433,7 +84581,7 @@
"file_type": "code",
"source_file": "tests/unit/config/test_models.py",
"source_location": "L480",
- "community": 6,
+ "community": 4,
"norm_label": "test_equipment_transport_discriminates_on_type_sftp()",
"id": "config_test_models_test_equipment_transport_discriminates_on_type_sftp"
},
@@ -79442,7 +84590,7 @@
"file_type": "code",
"source_file": "tests/unit/config/test_models.py",
"source_location": "L485",
- "community": 112,
+ "community": 212,
"norm_label": "test_equipment_transport_discriminates_on_type_smb()",
"id": "config_test_models_test_equipment_transport_discriminates_on_type_smb"
},
@@ -79451,7 +84599,7 @@
"file_type": "code",
"source_file": "tests/unit/config/test_models.py",
"source_location": "L495",
- "community": 6,
+ "community": 4,
"norm_label": "test_equipment_transport_rejects_unknown_type()",
"id": "config_test_models_test_equipment_transport_rejects_unknown_type"
},
@@ -79460,7 +84608,7 @@
"file_type": "code",
"source_file": "tests/unit/config/test_models.py",
"source_location": "L507",
- "community": 79,
+ "community": 378,
"norm_label": "test_orchestrator_staging_transport_smb_mount()",
"id": "config_test_models_test_orchestrator_staging_transport_smb_mount"
},
@@ -79469,7 +84617,7 @@
"file_type": "code",
"source_file": "tests/unit/config/test_models.py",
"source_location": "L514",
- "community": 79,
+ "community": 378,
"norm_label": "test_orchestrator_staging_transport_file_transfer()",
"id": "config_test_models_test_orchestrator_staging_transport_file_transfer"
},
@@ -79478,7 +84626,7 @@
"file_type": "code",
"source_file": "tests/unit/config/test_models.py",
"source_location": "L521",
- "community": 79,
+ "community": 378,
"norm_label": "test_orchestrator_staging_transport_rejects_unknown_type()",
"id": "config_test_models_test_orchestrator_staging_transport_rejects_unknown_type"
},
@@ -79487,7 +84635,7 @@
"file_type": "code",
"source_file": "tests/unit/config/test_models.py",
"source_location": "L599",
- "community": 6,
+ "community": 4,
"norm_label": "test_equipment_orchestrator_staging_transport_optional()",
"id": "config_test_models_test_equipment_orchestrator_staging_transport_optional"
},
@@ -79496,7 +84644,7 @@
"file_type": "code",
"source_file": "tests/unit/config/test_models.py",
"source_location": "L609",
- "community": 6,
+ "community": 4,
"norm_label": "_orch_staging_transport_dict()",
"id": "config_test_models_orch_staging_transport_dict"
},
@@ -79505,7 +84653,7 @@
"file_type": "code",
"source_file": "tests/unit/config/test_models.py",
"source_location": "L622",
- "community": 6,
+ "community": 4,
"norm_label": "test_sync_mode_nas_requires_transport_block()",
"id": "config_test_models_test_sync_mode_nas_requires_transport_block"
},
@@ -79514,7 +84662,7 @@
"file_type": "code",
"source_file": "tests/unit/config/test_models.py",
"source_location": "L631",
- "community": 6,
+ "community": 4,
"norm_label": "test_sync_mode_nas_forbids_orchestrator_staging_transport()",
"id": "config_test_models_test_sync_mode_nas_forbids_orchestrator_staging_transport"
},
@@ -79523,7 +84671,7 @@
"file_type": "code",
"source_file": "tests/unit/config/test_models.py",
"source_location": "L640",
- "community": 6,
+ "community": 4,
"norm_label": "test_sync_mode_stage_requires_orchestrator_staging_transport()",
"id": "config_test_models_test_sync_mode_stage_requires_orchestrator_staging_transport"
},
@@ -79532,7 +84680,7 @@
"file_type": "code",
"source_file": "tests/unit/config/test_models.py",
"source_location": "L649",
- "community": 6,
+ "community": 4,
"norm_label": "test_sync_mode_stage_forbids_transport_block()",
"id": "config_test_models_test_sync_mode_stage_forbids_transport_block"
},
@@ -79541,7 +84689,7 @@
"file_type": "code",
"source_file": "tests/unit/config/test_models.py",
"source_location": "L659",
- "community": 6,
+ "community": 4,
"norm_label": "test_sync_mode_stage_with_only_orchestrator_transport_is_valid()",
"id": "config_test_models_test_sync_mode_stage_with_only_orchestrator_transport_is_valid"
},
@@ -79550,7 +84698,7 @@
"file_type": "rationale",
"source_file": "tests/unit/config/test_models.py",
"source_location": "L49",
- "community": 112,
+ "community": 4,
"norm_label": "minimal valid rclone_sftp transport block.",
"id": "config_test_models_rationale_49"
},
@@ -79559,7 +84707,7 @@
"file_type": "rationale",
"source_file": "tests/unit/config/test_models.py",
"source_location": "L74",
- "community": 6,
+ "community": 4,
"norm_label": "build a valid equipmentconfig dict with sensible defaults.",
"id": "config_test_models_rationale_74"
},
@@ -79568,7 +84716,7 @@
"file_type": "rationale",
"source_file": "tests/unit/config/test_models.py",
"source_location": "L85",
- "community": 112,
+ "community": 212,
"norm_label": "full config dict mirroring the \u00a79 example. used by round-trip tests.",
"id": "config_test_models_rationale_85"
},
@@ -79577,7 +84725,7 @@
"file_type": "rationale",
"source_file": "tests/unit/config/test_models.py",
"source_location": "L568",
- "community": 6,
+ "community": 4,
"norm_label": "the operator-free quiescence redesign drops the per-equipment completeness-s",
"id": "config_test_models_rationale_568"
},
@@ -79586,7 +84734,7 @@
"file_type": "rationale",
"source_file": "tests/unit/config/test_models.py",
"source_location": "L686",
- "community": 6,
+ "community": 4,
"norm_label": "build a stage-mode equipmentconfig from a dict, dump it, compare.",
"id": "config_test_models_rationale_686"
},
@@ -79595,7 +84743,7 @@
"file_type": "rationale",
"source_file": "tests/unit/config/test_models.py",
"source_location": "L904",
- "community": 437,
+ "community": 493,
"norm_label": "redesign \u00a73.1: the ``enabled`` toggle is removed; ``label`` and ``staging_ro",
"id": "config_test_models_rationale_904"
},
@@ -79604,7 +84752,7 @@
"file_type": "rationale",
"source_file": "tests/unit/config/test_models.py",
"source_location": "L955",
- "community": 436,
+ "community": 492,
"norm_label": "redesign \u00a73.1: the ``enabled`` toggle is removed; old configs that carry it",
"id": "config_test_models_rationale_955"
},
@@ -79613,7 +84761,7 @@
"file_type": "rationale",
"source_file": "tests/unit/config/test_models.py",
"source_location": "L971",
- "community": 438,
+ "community": 494,
"norm_label": "they can be empty at load time (the setup-incomplete gate trips, not the pyd",
"id": "config_test_models_rationale_971"
},
@@ -79622,7 +84770,7 @@
"file_type": "rationale",
"source_file": "tests/unit/config/test_models.py",
"source_location": "L1010",
- "community": 112,
+ "community": 212,
"norm_label": "build a config from a \u00a79-shaped dict, dump it, and compare. ``model_dump()`",
"id": "config_test_models_rationale_1010"
},
@@ -79631,7 +84779,7 @@
"file_type": "rationale",
"source_file": "tests/unit/config/test_models.py",
"source_location": "L1045",
- "community": 250,
+ "community": 261,
"norm_label": "a ``none`` config (fresh install) yields a default config + the device.",
"id": "config_test_models_rationale_1045"
},
@@ -79640,7 +84788,7 @@
"file_type": "rationale",
"source_file": "tests/unit/config/test_models.py",
"source_location": "L1053",
- "community": 250,
+ "community": 261,
"norm_label": "appending keeps prior equipment and other config sections, unmutated.",
"id": "config_test_models_rationale_1053"
},
@@ -79649,7 +84797,7 @@
"file_type": "rationale",
"source_file": "tests/unit/config/test_models.py",
"source_location": "L1070",
- "community": 250,
+ "community": 261,
"norm_label": "a device whose id already exists raises configerror, not a silent merge.",
"id": "config_test_models_rationale_1070"
},
@@ -79658,7 +84806,7 @@
"file_type": "code",
"source_file": "tests/unit/constants/test_enums.py",
"source_location": "L173",
- "community": 63,
+ "community": 73,
"norm_label": "test_transport_type_values()",
"id": "constants_test_enums_test_transport_type_values"
},
@@ -79667,7 +84815,7 @@
"file_type": "code",
"source_file": "tests/unit/constants/test_enums.py",
"source_location": "L219",
- "community": 63,
+ "community": 73,
"norm_label": "test_orchestrator_transport_type_values()",
"id": "constants_test_enums_test_orchestrator_transport_type_values"
},
@@ -79676,7 +84824,7 @@
"file_type": "code",
"source_file": "tests/unit/constants/test_keyring.py",
"source_location": "L23",
- "community": 283,
+ "community": 289,
"norm_label": "test_keyring_username_nas_template_literal()",
"id": "constants_test_keyring_test_keyring_username_nas_template_literal"
},
@@ -79685,7 +84833,7 @@
"file_type": "code",
"source_file": "tests/unit/constants/test_keyring.py",
"source_location": "L28",
- "community": 283,
+ "community": 289,
"norm_label": "test_keyring_nas_username_formats_template()",
"id": "constants_test_keyring_test_keyring_nas_username_formats_template"
},
@@ -79694,7 +84842,7 @@
"file_type": "code",
"source_file": "tests/unit/constants/test_keyring.py",
"source_location": "L33",
- "community": 283,
+ "community": 289,
"norm_label": "test_keyring_nas_username_handles_various_ids()",
"id": "constants_test_keyring_test_keyring_nas_username_handles_various_ids"
},
@@ -79703,7 +84851,7 @@
"file_type": "code",
"source_file": "tests/unit/tray/test_dependencies.py",
"source_location": "L194",
- "community": 48,
+ "community": 43,
"norm_label": "test_check_nas_passwords_present_returns_only_populated_ids()",
"id": "tray_test_dependencies_test_check_nas_passwords_present_returns_only_populated_ids"
},
@@ -79712,7 +84860,7 @@
"file_type": "code",
"source_file": "tests/unit/tray/test_dependencies.py",
"source_location": "L208",
- "community": 48,
+ "community": 43,
"norm_label": "test_check_nas_passwords_present_handles_none_store_and_config()",
"id": "tray_test_dependencies_test_check_nas_passwords_present_handles_none_store_and_config"
},
@@ -79721,7 +84869,7 @@
"file_type": "code",
"source_file": "tests/unit/tray/test_dependencies.py",
"source_location": "L214",
- "community": 48,
+ "community": 43,
"norm_label": "test_make_equipment_probe_short_circuits_when_password_missing()",
"id": "tray_test_dependencies_test_make_equipment_probe_short_circuits_when_password_missing"
},
@@ -79730,7 +84878,7 @@
"file_type": "code",
"source_file": "tests/unit/tray/test_dependencies.py",
"source_location": "L237",
- "community": 48,
+ "community": 43,
"norm_label": "test_make_equipment_probe_targets_remote_root_with_colon()",
"id": "tray_test_dependencies_test_make_equipment_probe_targets_remote_root_with_colon"
},
@@ -79739,7 +84887,7 @@
"file_type": "rationale",
"source_file": "tests/unit/tray/test_dependencies.py",
"source_location": "L45",
- "community": 48,
+ "community": 43,
"norm_label": "trivial in-memory keyring backend, mirroring the keyring-store tests.",
"id": "tray_test_dependencies_rationale_45"
},
@@ -79748,7 +84896,7 @@
"file_type": "rationale",
"source_file": "tests/unit/tray/test_dependencies.py",
"source_location": "L73",
- "community": 14,
+ "community": 22,
"norm_label": "the settings gui persists the lims password through deps.keyring_store.",
"id": "tray_test_dependencies_rationale_73"
},
@@ -79766,7 +84914,7 @@
"file_type": "rationale",
"source_file": "tests/unit/tray/test_dependencies.py",
"source_location": "L121",
- "community": 48,
+ "community": 43,
"norm_label": "the probe must look up the password under keyring_username_lims. regression",
"id": "tray_test_dependencies_rationale_121"
},
@@ -79775,7 +84923,7 @@
"file_type": "rationale",
"source_file": "tests/unit/tray/test_dependencies.py",
"source_location": "L140",
- "community": 48,
+ "community": 43,
"norm_label": "the lims client's keyring provider resolves the stored password.",
"id": "tray_test_dependencies_rationale_140"
},
@@ -79784,7 +84932,7 @@
"file_type": "rationale",
"source_file": "tests/unit/tray/test_dependencies.py",
"source_location": "L160",
- "community": 48,
+ "community": 43,
"norm_label": "build a two-equipment nas-mode config for the nas-presence tests.",
"id": "tray_test_dependencies_rationale_160"
},
@@ -79793,7 +84941,7 @@
"file_type": "rationale",
"source_file": "tests/unit/tray/test_dependencies.py",
"source_location": "L217",
- "community": 48,
+ "community": 43,
"norm_label": "missing keyring entry must not spawn rclone.",
"id": "tray_test_dependencies_rationale_217"
},
@@ -79802,7 +84950,7 @@
"file_type": "rationale",
"source_file": "tests/unit/tray/test_dependencies.py",
"source_location": "L240",
- "community": 48,
+ "community": 43,
"norm_label": "the probe must call ``rclone about :`` (spec, not bare name). regre",
"id": "tray_test_dependencies_rationale_240"
},
@@ -79811,7 +84959,7 @@
"file_type": "rationale",
"source_file": "tests/unit/tray/test_live_reload.py",
"source_location": "L41",
- "community": 97,
+ "community": 101,
"norm_label": "stub the real logging reconfigure so tests don't churn global handlers. ret",
"id": "tray_test_live_reload_rationale_41"
},
@@ -79820,7 +84968,7 @@
"file_type": "rationale",
"source_file": "tests/unit/tray/test_live_reload.py",
"source_location": "L87",
- "community": 134,
+ "community": 0,
"norm_label": "stub controller / nas_sync / poller recording ``apply_config`` calls.",
"id": "tray_test_live_reload_rationale_87"
},
@@ -79829,7 +84977,7 @@
"file_type": "rationale",
"source_file": "tests/unit/tray/test_live_reload.py",
"source_location": "L107",
- "community": 134,
+ "community": 0,
"norm_label": "fresh-built nas_sync / poller stub with async init / start.",
"id": "tray_test_live_reload_rationale_107"
},
@@ -79838,7 +84986,7 @@
"file_type": "rationale",
"source_file": "tests/unit/tray/test_live_reload.py",
"source_location": "L121",
- "community": 97,
+ "community": 101,
"norm_label": "build a deps bundle whose config-dependent components already exist.",
"id": "tray_test_live_reload_rationale_121"
},
@@ -79847,7 +84995,7 @@
"file_type": "rationale",
"source_file": "tests/unit/tray/test_live_reload.py",
"source_location": "L157",
- "community": 97,
+ "community": 101,
"norm_label": "one component raising must not abort the rest, and config still lands.",
"id": "tray_test_live_reload_rationale_157"
},
@@ -79856,7 +85004,7 @@
"file_type": "rationale",
"source_file": "tests/unit/tray/test_live_reload.py",
"source_location": "L229",
- "community": 97,
+ "community": 101,
"norm_label": "on a first save the absent components are built and their async bring-up is",
"id": "tray_test_live_reload_rationale_229"
},
@@ -79865,7 +85013,7 @@
"file_type": "code",
"source_file": "tests/unit/api/test_setup.py",
"source_location": "L103",
- "community": 1,
+ "community": 95,
"norm_label": "test_compute_setup_state_returns_incomplete_no_nas_credential()",
"id": "api_test_setup_test_compute_setup_state_returns_incomplete_no_nas_credential"
},
@@ -79874,7 +85022,7 @@
"file_type": "code",
"source_file": "tests/unit/api/test_setup.py",
"source_location": "L109",
- "community": 1,
+ "community": 95,
"norm_label": "test_get_setup_status_lists_missing_nas_credential_per_equipment()",
"id": "api_test_setup_test_get_setup_status_lists_missing_nas_credential_per_equipment"
},
@@ -79892,7 +85040,7 @@
"file_type": "rationale",
"source_file": "tests/unit/api/test_setup.py",
"source_location": "L104",
- "community": 1,
+ "community": 95,
"norm_label": "equipment with a password-requiring transport but no keyring entry gates.",
"id": "api_test_setup_rationale_104"
},
@@ -79901,7 +85049,7 @@
"file_type": "rationale",
"source_file": "tests/unit/api/test_setup.py",
"source_location": "L122",
- "community": 1,
+ "community": 95,
"norm_label": "each non-soft incomplete_* state returns a 503 with the right code.",
"id": "api_test_setup_rationale_122"
},
@@ -79910,7 +85058,7 @@
"file_type": "rationale",
"source_file": "tests/unit/api/test_sessions.py",
"source_location": "L54",
- "community": 129,
+ "community": 135,
"norm_label": "minimal in-memory controller for routing tests.",
"id": "api_test_sessions_rationale_54"
},
@@ -79919,7 +85067,7 @@
"file_type": "rationale",
"source_file": "tests/unit/api/test_sessions.py",
"source_location": "L339",
- "community": 129,
+ "community": 135,
"norm_label": "posting without ``kind`` discriminator must 422.",
"id": "api_test_sessions_rationale_339"
},
@@ -79928,7 +85076,7 @@
"file_type": "rationale",
"source_file": "tests/unit/api/test_browse.py",
"source_location": "L117",
- "community": 1,
+ "community": 94,
"norm_label": "when config has no equipment the setup gate blocks /tree.",
"id": "api_test_browse_rationale_117"
},
@@ -79937,7 +85085,7 @@
"file_type": "rationale",
"source_file": "tests/unit/api/test_browse.py",
"source_location": "L185",
- "community": 1,
+ "community": 12,
"norm_label": "``testruns`` directory under a project surfaces as ``test_runs`` list.",
"id": "api_test_browse_rationale_185"
},
@@ -79946,7 +85094,7 @@
"file_type": "rationale",
"source_file": "tests/unit/api/test_browse.py",
"source_location": "L205",
- "community": 1,
+ "community": 12,
"norm_label": "a creation.json that is present but malformed surfaces as 422.",
"id": "api_test_browse_rationale_205"
},
@@ -79955,7 +85103,7 @@
"file_type": "rationale",
"source_file": "tests/unit/api/test_browse.py",
"source_location": "L226",
- "community": 1,
+ "community": 12,
"norm_label": "run with creation.json but no readme.md returns readme: null.",
"id": "api_test_browse_rationale_226"
},
@@ -79964,7 +85112,7 @@
"file_type": "rationale",
"source_file": "tests/unit/api/test_browse.py",
"source_location": "L289",
- "community": 1,
+ "community": 12,
"norm_label": "path-confinement guard: only the configured local_root / staging_root / temp",
"id": "api_test_browse_rationale_289"
},
@@ -79991,7 +85139,7 @@
"file_type": "rationale",
"source_file": "tests/unit/api/test_browse.py",
"source_location": "L339",
- "community": 1,
+ "community": 12,
"norm_label": "a staged run's sync-queue job state is surfaced as the log.",
"id": "api_test_browse_rationale_339"
},
@@ -80000,7 +85148,7 @@
"file_type": "rationale",
"source_file": "tests/unit/api/test_browse.py",
"source_location": "L362",
- "community": 1,
+ "community": 12,
"norm_label": "a failed job row's ``last_error`` / ``attempts`` / ``verify_passes`` / ``nas",
"id": "api_test_browse_rationale_362"
},
@@ -80009,7 +85157,7 @@
"file_type": "rationale",
"source_file": "tests/unit/api/test_browse.py",
"source_location": "L395",
- "community": 1,
+ "community": 12,
"norm_label": "a run with no sync-queue job returns an empty history + 'none' state.",
"id": "api_test_browse_rationale_395"
},
@@ -80018,7 +85166,7 @@
"file_type": "rationale",
"source_file": "tests/unit/api/test_browse.py",
"source_location": "L413",
- "community": 1,
+ "community": 12,
"norm_label": "a run directory that does not exist returns 404 ``session_not_found``.",
"id": "api_test_browse_rationale_413"
},
@@ -80027,7 +85175,7 @@
"file_type": "rationale",
"source_file": "tests/unit/api/test_browse.py",
"source_location": "L434",
- "community": 1,
+ "community": 12,
"norm_label": "the nested dict surfaces both owned and received-equipment roots with their",
"id": "api_test_browse_rationale_434"
},
@@ -80036,7 +85184,7 @@
"file_type": "rationale",
"source_file": "tests/unit/api/test_browse.py",
"source_location": "L469",
- "community": 1,
+ "community": 12,
"norm_label": "``scan_folder_sync`` shares the same shape as the route handler.",
"id": "api_test_browse_rationale_469"
},
@@ -80045,7 +85193,7 @@
"file_type": "rationale",
"source_file": "tests/unit/api/test_browse.py",
"source_location": "L488",
- "community": 1,
+ "community": 12,
"norm_label": "a missing folder raises the same 404 httpexception the route does.",
"id": "api_test_browse_rationale_488"
},
@@ -80054,7 +85202,7 @@
"file_type": "rationale",
"source_file": "tests/unit/api/test_browse.py",
"source_location": "L509",
- "community": 1,
+ "community": 12,
"norm_label": "create a run dir with a creation.json so it is recognised as a run.",
"id": "api_test_browse_rationale_509"
},
@@ -80063,7 +85211,7 @@
"file_type": "rationale",
"source_file": "tests/unit/api/test_browse.py",
"source_location": "L518",
- "community": 1,
+ "community": 12,
"norm_label": "write a sync_state.json with the given per-file records.",
"id": "api_test_browse_rationale_518"
},
@@ -80072,7 +85220,7 @@
"file_type": "rationale",
"source_file": "tests/unit/api/test_browse.py",
"source_location": "L540",
- "community": 1,
+ "community": 12,
"norm_label": "a file on disk but absent from sync_state.json reads as ``acquiring``.",
"id": "api_test_browse_rationale_540"
},
@@ -80081,7 +85229,7 @@
"file_type": "rationale",
"source_file": "tests/unit/api/test_browse.py",
"source_location": "L553",
- "community": 1,
+ "community": 12,
"norm_label": "a recorded file with verified_at null + on disk reads as ``syncing``.",
"id": "api_test_browse_rationale_553"
},
@@ -80090,7 +85238,7 @@
"file_type": "rationale",
"source_file": "tests/unit/api/test_browse.py",
"source_location": "L567",
- "community": 1,
+ "community": 12,
"norm_label": "a recorded+verified file still on disk reads as ``synced``.",
"id": "api_test_browse_rationale_567"
},
@@ -80099,7 +85247,7 @@
"file_type": "rationale",
"source_file": "tests/unit/api/test_browse.py",
"source_location": "L584",
- "community": 1,
+ "community": 12,
"norm_label": "a cleared run lists verified-but-absent files as ``on_nas`` tombstones.",
"id": "api_test_browse_rationale_584"
},
@@ -80108,7 +85256,7 @@
"file_type": "rationale",
"source_file": "tests/unit/api/test_browse.py",
"source_location": "L607",
- "community": 1,
+ "community": 12,
"norm_label": "a keep_local file carries the flag alongside its sync status.",
"id": "api_test_browse_rationale_607"
},
@@ -80117,7 +85265,7 @@
"file_type": "rationale",
"source_file": "tests/unit/api/test_browse.py",
"source_location": "L631",
- "community": 1,
+ "community": 12,
"norm_label": "the tree run-node sync_status is the sync_state.json rollup, not creation.json.",
"id": "api_test_browse_rationale_631"
},
@@ -80126,7 +85274,7 @@
"file_type": "rationale",
"source_file": "tests/unit/api/test_browse.py",
"source_location": "L647",
- "community": 1,
+ "community": 12,
"norm_label": "a cleared run rolls up to ``cleared`` in the tree.",
"id": "api_test_browse_rationale_647"
},
@@ -80153,7 +85301,7 @@
"file_type": "rationale",
"source_file": "tests/unit/api/test_staging_router.py",
"source_location": "L141",
- "community": 5,
+ "community": 35,
"norm_label": "write a fully-verified ``sync_state.json`` so the run rolls up to ``synced``.",
"id": "api_test_staging_router_rationale_141"
},
@@ -80162,7 +85310,7 @@
"file_type": "rationale",
"source_file": "tests/unit/api/test_staging_router.py",
"source_location": "L297",
- "community": 5,
+ "community": 35,
"norm_label": "a run with no queue job and no directory clears to zeros.",
"id": "api_test_staging_router_rationale_297"
},
@@ -80171,7 +85319,7 @@
"file_type": "rationale",
"source_file": "tests/unit/api/test_staging_router.py",
"source_location": "L315",
- "community": 5,
+ "community": 35,
"norm_label": "the bulk endpoint clears every fully-``synced`` run and reports paths.",
"id": "api_test_staging_router_rationale_315"
},
@@ -80180,7 +85328,7 @@
"file_type": "rationale",
"source_file": "tests/unit/api/test_staging_router.py",
"source_location": "L341",
- "community": 5,
+ "community": 35,
"norm_label": "no verified rows -> empty cleared_paths, no error.",
"id": "api_test_staging_router_rationale_341"
},
@@ -80189,7 +85337,7 @@
"file_type": "rationale",
"source_file": "tests/unit/api/test_staging_router.py",
"source_location": "L352",
- "community": 1,
+ "community": 94,
"norm_label": "a deps without a config raises the standard 503.",
"id": "api_test_staging_router_rationale_352"
},
@@ -80198,7 +85346,7 @@
"file_type": "rationale",
"source_file": "tests/unit/api/test_staging_router.py",
"source_location": "L367",
- "community": 5,
+ "community": 35,
"norm_label": "the endpoint flips ``keep_local`` in the run's ``sync_state.json``.",
"id": "api_test_staging_router_rationale_367"
},
@@ -80207,7 +85355,7 @@
"file_type": "rationale",
"source_file": "tests/unit/api/test_staging_router.py",
"source_location": "L390",
- "community": 5,
+ "community": 35,
"norm_label": "setting ``keep_local`` false after true clears the flag on disk.",
"id": "api_test_staging_router_rationale_390"
},
@@ -80216,7 +85364,7 @@
"file_type": "rationale",
"source_file": "tests/unit/api/test_staging_router.py",
"source_location": "L408",
- "community": 5,
+ "community": 35,
"norm_label": "a deps without a ``sync_state_writer`` raises the standard 503.",
"id": "api_test_staging_router_rationale_408"
},
@@ -80225,7 +85373,7 @@
"file_type": "rationale",
"source_file": "tests/unit/api/test_staging_router.py",
"source_location": "L422",
- "community": 1,
+ "community": 94,
"norm_label": "a deps without a config raises the standard 503.",
"id": "api_test_staging_router_rationale_422"
},
@@ -80234,7 +85382,7 @@
"file_type": "rationale",
"source_file": "tests/unit/api/test_staging_router.py",
"source_location": "L434",
- "community": 5,
+ "community": 35,
"norm_label": "the request model forbids unknown fields.",
"id": "api_test_staging_router_rationale_434"
},
@@ -80243,7 +85391,7 @@
"file_type": "rationale",
"source_file": "tests/unit/api/test_staging_router.py",
"source_location": "L448",
- "community": 5,
+ "community": 35,
"norm_label": "a path outside the configured roots is rejected before any write. operator-",
"id": "api_test_staging_router_rationale_448"
},
@@ -80252,7 +85400,7 @@
"file_type": "rationale",
"source_file": "tests/unit/api/test_staging_router.py",
"source_location": "L469",
- "community": 5,
+ "community": 35,
"norm_label": "a dir under an allowed root but without a creation.json is not a run.",
"id": "api_test_staging_router_rationale_469"
},
@@ -80261,7 +85409,7 @@
"file_type": "rationale",
"source_file": "tests/unit/api/test_staging_router.py",
"source_location": "L487",
- "community": 5,
+ "community": 35,
"norm_label": "the writer mkdir's the .exlab-wizard/ dir -- a real run with only a creation",
"id": "api_test_staging_router_rationale_487"
},
@@ -80270,7 +85418,7 @@
"file_type": "rationale",
"source_file": "tests/unit/api/test_problems.py",
"source_location": "L259",
- "community": 107,
+ "community": 121,
"norm_label": "connecting to /problems/events emits a snapshot frame immediately.",
"id": "api_test_problems_rationale_259"
},
@@ -80279,7 +85427,7 @@
"file_type": "rationale",
"source_file": "tests/unit/api/test_problems.py",
"source_location": "L281",
- "community": 107,
+ "community": 121,
"norm_label": "without an audit channel the websocket closes with 1011.",
"id": "api_test_problems_rationale_281"
},
@@ -80288,7 +85436,7 @@
"file_type": "rationale",
"source_file": "tests/unit/api/test_problems.py",
"source_location": "L302",
- "community": 107,
+ "community": 121,
"norm_label": "``post /problems/refresh`` invokes audit and publishes to the channel.",
"id": "api_test_problems_rationale_302"
},
@@ -80297,7 +85445,7 @@
"file_type": "code",
"source_file": "tests/unit/sync/test_nas_client_extra.py",
"source_location": "L124",
- "community": 134,
+ "community": 1,
"norm_label": "_stubkeyring",
"id": "sync_test_nas_client_extra_stubkeyring"
},
@@ -80306,7 +85454,7 @@
"file_type": "code",
"source_file": "tests/unit/sync/test_nas_client_extra.py",
"source_location": "L127",
- "community": 134,
+ "community": 1,
"norm_label": ".__init__()",
"id": "sync_test_nas_client_extra_stubkeyring_init"
},
@@ -80315,7 +85463,7 @@
"file_type": "code",
"source_file": "tests/unit/sync/test_nas_client_extra.py",
"source_location": "L130",
- "community": 134,
+ "community": 1,
"norm_label": ".get_password()",
"id": "sync_test_nas_client_extra_stubkeyring_get_password"
},
@@ -80324,7 +85472,7 @@
"file_type": "code",
"source_file": "tests/unit/sync/test_nas_client_extra.py",
"source_location": "L135",
- "community": 134,
+ "community": 1,
"norm_label": "test_build_transport_driver_sftp()",
"id": "sync_test_nas_client_extra_test_build_transport_driver_sftp"
},
@@ -80333,7 +85481,7 @@
"file_type": "code",
"source_file": "tests/unit/sync/test_nas_client_extra.py",
"source_location": "L154",
- "community": 134,
+ "community": 1,
"norm_label": "test_build_transport_driver_smb()",
"id": "sync_test_nas_client_extra_test_build_transport_driver_smb"
},
@@ -80342,7 +85490,7 @@
"file_type": "code",
"source_file": "tests/unit/sync/test_nas_client_extra.py",
"source_location": "L780",
- "community": 12,
+ "community": 1,
"norm_label": "test_verifier_mismatch_first_failure_then_pass()",
"id": "sync_test_nas_client_extra_test_verifier_mismatch_first_failure_then_pass"
},
@@ -80351,7 +85499,7 @@
"file_type": "code",
"source_file": "tests/unit/sync/test_nas_client_extra.py",
"source_location": "L831",
- "community": 12,
+ "community": 1,
"norm_label": "test_verifier_mismatch_second_failure_terminal()",
"id": "sync_test_nas_client_extra_test_verifier_mismatch_second_failure_terminal"
},
@@ -80360,7 +85508,7 @@
"file_type": "code",
"source_file": "tests/unit/sync/test_nas_client_extra.py",
"source_location": "L945",
- "community": 134,
+ "community": 1,
"norm_label": "test_build_transport_driver_rejects_unknown_type()",
"id": "sync_test_nas_client_extra_test_build_transport_driver_rejects_unknown_type"
},
@@ -80369,7 +85517,7 @@
"file_type": "code",
"source_file": "tests/unit/sync/test_nas_client_extra.py",
"source_location": "L1026",
- "community": 12,
+ "community": 1,
"norm_label": "test_partial_batch_credits_verified_files_in_sync_state()",
"id": "sync_test_nas_client_extra_test_partial_batch_credits_verified_files_in_sync_state"
},
@@ -80378,7 +85526,7 @@
"file_type": "rationale",
"source_file": "tests/unit/sync/test_nas_client_extra.py",
"source_location": "L125",
- "community": 134,
+ "community": 1,
"norm_label": "minimal keyring stub returning a fixed password by username.",
"id": "sync_test_nas_client_extra_rationale_125"
},
@@ -80387,7 +85535,7 @@
"file_type": "rationale",
"source_file": "tests/unit/sync/test_nas_client_extra.py",
"source_location": "L181",
- "community": 12,
+ "community": 1,
"norm_label": "a first hash-mismatch from the transport re-queues without backoff. the fir",
"id": "sync_test_nas_client_extra_rationale_181"
},
@@ -80396,7 +85544,7 @@
"file_type": "rationale",
"source_file": "tests/unit/sync/test_nas_client_extra.py",
"source_location": "L238",
- "community": 12,
+ "community": 1,
"norm_label": "a second consecutive hash-mismatch terminates failed.",
"id": "sync_test_nas_client_extra_rationale_238"
},
@@ -80405,7 +85553,7 @@
"file_type": "rationale",
"source_file": "tests/unit/sync/test_nas_client_extra.py",
"source_location": "L276",
- "community": 12,
+ "community": 1,
"norm_label": "``retain_cache=false`` removes the entire run directory after cleaned.",
"id": "sync_test_nas_client_extra_rationale_276"
},
@@ -80414,7 +85562,7 @@
"file_type": "rationale",
"source_file": "tests/unit/sync/test_nas_client_extra.py",
"source_location": "L312",
- "community": 12,
+ "community": 1,
"norm_label": "``retain_cache=true`` deletes data files but keeps ``.exlab-wizard/``.",
"id": "sync_test_nas_client_extra_rationale_312"
},
@@ -80423,7 +85571,7 @@
"file_type": "rationale",
"source_file": "tests/unit/sync/test_nas_client_extra.py",
"source_location": "L350",
- "community": 12,
+ "community": 1,
"norm_label": "``nas_cleanup.enabled=false`` -> job stays verified, no cleanup.",
"id": "sync_test_nas_client_extra_rationale_350"
},
@@ -80432,7 +85580,7 @@
"file_type": "rationale",
"source_file": "tests/unit/sync/test_nas_client_extra.py",
"source_location": "L388",
- "community": 12,
+ "community": 1,
"norm_label": "job lands in cleanup_eligible when min_verify_passes > current passes.",
"id": "sync_test_nas_client_extra_rationale_388"
},
@@ -80441,7 +85589,7 @@
"file_type": "rationale",
"source_file": "tests/unit/sync/test_nas_client_extra.py",
"source_location": "L424",
- "community": 12,
+ "community": 1,
"norm_label": "a failing remote_stat keeps the job in cleanup_eligible, not cleaned.",
"id": "sync_test_nas_client_extra_rationale_424"
},
@@ -80450,7 +85598,7 @@
"file_type": "rationale",
"source_file": "tests/unit/sync/test_nas_client_extra.py",
"source_location": "L466",
- "community": 222,
+ "community": 1,
"norm_label": "build an un-init'd client for direct ``_delete_local`` calls.",
"id": "sync_test_nas_client_extra_rationale_466"
},
@@ -80459,7 +85607,7 @@
"file_type": "rationale",
"source_file": "tests/unit/sync/test_nas_client_extra.py",
"source_location": "L505",
- "community": 222,
+ "community": 1,
"norm_label": "a directory holding only deleted files is pruned (deepest-first); a parent s",
"id": "sync_test_nas_client_extra_rationale_505"
},
@@ -80468,7 +85616,7 @@
"file_type": "rationale",
"source_file": "tests/unit/sync/test_nas_client_extra.py",
"source_location": "L538",
- "community": 12,
+ "community": 1,
"norm_label": "a directory symlink inside the run is left untouched -- its target's content",
"id": "sync_test_nas_client_extra_rationale_538"
},
@@ -80477,7 +85625,7 @@
"file_type": "rationale",
"source_file": "tests/unit/sync/test_nas_client_extra.py",
"source_location": "L564",
- "community": 222,
+ "community": 1,
"norm_label": "a ``keep_local`` file survives even when ``retain_cache=false``.",
"id": "sync_test_nas_client_extra_rationale_564"
},
@@ -80486,7 +85634,7 @@
"file_type": "rationale",
"source_file": "tests/unit/sync/test_nas_client_extra.py",
"source_location": "L583",
- "community": 222,
+ "community": 1,
"norm_label": "with ``retain_cache=false`` and no kept files the run dir is removed.",
"id": "sync_test_nas_client_extra_rationale_583"
},
@@ -80495,7 +85643,7 @@
"file_type": "rationale",
"source_file": "tests/unit/sync/test_nas_client_extra.py",
"source_location": "L595",
- "community": 12,
+ "community": 1,
"norm_label": "a full cleanup pass stamps ``cleared_at`` in ``sync_state.json``.",
"id": "sync_test_nas_client_extra_rationale_595"
},
@@ -80504,7 +85652,7 @@
"file_type": "rationale",
"source_file": "tests/unit/sync/test_nas_client_extra.py",
"source_location": "L635",
- "community": 12,
+ "community": 1,
"norm_label": "a file flagged ``keep_local`` survives the cleanup sweep.",
"id": "sync_test_nas_client_extra_rationale_635"
},
@@ -80513,7 +85661,7 @@
"file_type": "rationale",
"source_file": "tests/unit/sync/test_nas_client_extra.py",
"source_location": "L678",
- "community": 12,
+ "community": 1,
"norm_label": "cleanup does not run while a tracked file remains unverified. a pre-existin",
"id": "sync_test_nas_client_extra_rationale_678"
},
@@ -80522,7 +85670,7 @@
"file_type": "rationale",
"source_file": "tests/unit/sync/test_nas_client_extra.py",
"source_location": "L735",
- "community": 12,
+ "community": 1,
"norm_label": "a run dir deleted between enqueue and worker pick -> failed.",
"id": "sync_test_nas_client_extra_rationale_735"
},
@@ -80531,7 +85679,7 @@
"file_type": "rationale",
"source_file": "tests/unit/sync/test_nas_client_extra.py",
"source_location": "L781",
- "community": 12,
+ "community": 1,
"norm_label": "a rclone-check mismatch retries once, then passes.",
"id": "sync_test_nas_client_extra_rationale_781"
},
@@ -80540,7 +85688,7 @@
"file_type": "rationale",
"source_file": "tests/unit/sync/test_nas_client_extra.py",
"source_location": "L832",
- "community": 12,
+ "community": 1,
"norm_label": "two consecutive verifier mismatches terminate failed.",
"id": "sync_test_nas_client_extra_rationale_832"
},
@@ -80549,7 +85697,7 @@
"file_type": "rationale",
"source_file": "tests/unit/sync/test_nas_client_extra.py",
"source_location": "L872",
- "community": 447,
+ "community": 1,
"norm_label": "when no factory is injected, the client builds the per-equipment driver. we",
"id": "sync_test_nas_client_extra_rationale_872"
},
@@ -80567,7 +85715,7 @@
"file_type": "rationale",
"source_file": "tests/unit/sync/test_nas_client_extra.py",
"source_location": "L946",
- "community": 134,
+ "community": 1,
"norm_label": "an unknown transport type raises valueerror from the helper.",
"id": "sync_test_nas_client_extra_rationale_946"
},
@@ -80576,7 +85724,7 @@
"file_type": "rationale",
"source_file": "tests/unit/sync/test_nas_client_extra.py",
"source_location": "L964",
- "community": 448,
+ "community": 1,
"norm_label": "``_mark_synced`` is a no-op when ``creation.json`` doesn't exist.",
"id": "sync_test_nas_client_extra_rationale_964"
},
@@ -80585,7 +85733,7 @@
"file_type": "rationale",
"source_file": "tests/unit/sync/test_nas_client_extra.py",
"source_location": "L982",
- "community": 449,
+ "community": 1,
"norm_label": "``_delete_local`` is a no-op when the run directory is already gone.",
"id": "sync_test_nas_client_extra_rationale_982"
},
@@ -80594,7 +85742,7 @@
"file_type": "rationale",
"source_file": "tests/unit/sync/test_nas_client_extra.py",
"source_location": "L996",
- "community": 451,
+ "community": 0,
"norm_label": "if neither ``creation.paths.local`` nor ``run_path`` contains a configured e",
"id": "sync_test_nas_client_extra_rationale_996"
},
@@ -80603,7 +85751,7 @@
"file_type": "rationale",
"source_file": "tests/unit/sync/test_nas_client_extra.py",
"source_location": "L1027",
- "community": 12,
+ "community": 1,
"norm_label": "a batch where one file fails verification still credits the others in ``sync",
"id": "sync_test_nas_client_extra_rationale_1027"
},
@@ -80612,7 +85760,7 @@
"file_type": "rationale",
"source_file": "tests/unit/sync/test_nas_client_extra.py",
"source_location": "L1084",
- "community": 12,
+ "community": 1,
"norm_label": "a fully-successful batch credits every verified file in sync_state.json.",
"id": "sync_test_nas_client_extra_rationale_1084"
},
@@ -80621,7 +85769,7 @@
"file_type": "code",
"source_file": "tests/unit/sync/test_transports.py",
"source_location": "L123",
- "community": 38,
+ "community": 68,
"norm_label": "test_rclone_push_forwards_env()",
"id": "sync_test_transports_test_rclone_push_forwards_env"
},
@@ -80630,7 +85778,7 @@
"file_type": "code",
"source_file": "tests/unit/sync/test_transports.py",
"source_location": "L247",
- "community": 189,
+ "community": 425,
"norm_label": "test_obscure_returns_stdout_stripped()",
"id": "sync_test_transports_test_obscure_returns_stdout_stripped"
},
@@ -80639,7 +85787,7 @@
"file_type": "code",
"source_file": "tests/unit/sync/test_transports.py",
"source_location": "L257",
- "community": 189,
+ "community": 425,
"norm_label": "test_obscure_missing_binary_raises_auth()",
"id": "sync_test_transports_test_obscure_missing_binary_raises_auth"
},
@@ -80648,7 +85796,7 @@
"file_type": "rationale",
"source_file": "tests/unit/sync/test_transports.py",
"source_location": "L34",
- "community": 38,
+ "community": 495,
"norm_label": "install the rclone stub under ``tmp_path/bin`` and prepend to path.",
"id": "sync_test_transports_rationale_34"
},
@@ -80657,7 +85805,7 @@
"file_type": "rationale",
"source_file": "tests/unit/sync/test_transports.py",
"source_location": "L48",
- "community": 38,
+ "community": 496,
"norm_label": "tell the stub to append every invocation's argv to a log file.",
"id": "sync_test_transports_rationale_48"
},
@@ -80666,7 +85814,7 @@
"file_type": "rationale",
"source_file": "tests/unit/sync/test_transports.py",
"source_location": "L55",
- "community": 38,
+ "community": 68,
"norm_label": "return the recorded argv lists, in invocation order.",
"id": "sync_test_transports_rationale_55"
},
@@ -80675,7 +85823,7 @@
"file_type": "rationale",
"source_file": "tests/unit/sync/test_transports.py",
"source_location": "L117",
- "community": 38,
+ "community": 68,
"norm_label": "a missing binary raises :class:`transporterror`, not a retry result.",
"id": "sync_test_transports_rationale_117"
},
@@ -80684,7 +85832,7 @@
"file_type": "rationale",
"source_file": "tests/unit/sync/test_transports.py",
"source_location": "L129",
- "community": 38,
+ "community": 68,
"norm_label": "``env`` arrives in the subprocess; ``mask_for_log`` redacts the password. t",
"id": "sync_test_transports_rationale_129"
},
@@ -80693,7 +85841,7 @@
"file_type": "rationale",
"source_file": "tests/unit/sync/test_nas_client.py",
"source_location": "L405",
- "community": 18,
+ "community": 8,
"norm_label": "re-enqueueing a failed row resets it back to queued.",
"id": "sync_test_nas_client_rationale_405"
},
@@ -80702,7 +85850,7 @@
"file_type": "rationale",
"source_file": "tests/unit/sync/test_nas_client.py",
"source_location": "L438",
- "community": 18,
+ "community": 8,
"norm_label": "enqueueing twice for the same path returns the same job id.",
"id": "sync_test_nas_client_rationale_438"
},
@@ -80711,7 +85859,7 @@
"file_type": "rationale",
"source_file": "tests/unit/sync/test_nas_client.py",
"source_location": "L490",
- "community": 18,
+ "community": 8,
"norm_label": "``_mark_cleaned`` flips ``creation.json.sync_status`` to ``\"cleaned\"``.",
"id": "sync_test_nas_client_rationale_490"
},
@@ -80720,7 +85868,7 @@
"file_type": "rationale",
"source_file": "tests/unit/sync/test_nas_client.py",
"source_location": "L512",
- "community": 18,
+ "community": 8,
"norm_label": "with ``retain_cache=false`` the cache dir is gone; ``_mark_cleaned`` no-ops.",
"id": "sync_test_nas_client_rationale_512"
},
@@ -80729,7 +85877,7 @@
"file_type": "rationale",
"source_file": "tests/unit/sync/test_nas_client.py",
"source_location": "L537",
- "community": 18,
+ "community": 8,
"norm_label": "``enqueue(run, files=[...])`` stores the subset on the queue row.",
"id": "sync_test_nas_client_rationale_537"
},
@@ -80738,7 +85886,7 @@
"file_type": "rationale",
"source_file": "tests/unit/sync/test_nas_client.py",
"source_location": "L567",
- "community": 18,
+ "community": 8,
"norm_label": "a terminal (failed) job is re-armed in queued with a fresh file subset.",
"id": "sync_test_nas_client_rationale_567"
},
@@ -80747,7 +85895,7 @@
"file_type": "rationale",
"source_file": "tests/unit/sync/test_nas_client.py",
"source_location": "L602",
- "community": 18,
+ "community": 8,
"norm_label": "an active (queued) job is left untouched when re-enqueued with new files.",
"id": "sync_test_nas_client_rationale_602"
},
@@ -80756,7 +85904,7 @@
"file_type": "rationale",
"source_file": "tests/unit/sync/test_nas_client.py",
"source_location": "L637",
- "community": 18,
+ "community": 8,
"norm_label": "a live config swap rebuilds the equipment lookup in place.",
"id": "sync_test_nas_client_rationale_637"
},
@@ -80765,7 +85913,7 @@
"file_type": "rationale",
"source_file": "tests/unit/sync/_helpers.py",
"source_location": "L30",
- "community": 273,
+ "community": 1,
"norm_label": "read run-relative paths from a ``--files-from`` tempfile.",
"id": "sync_helpers_rationale_30"
},
@@ -80774,7 +85922,7 @@
"file_type": "rationale",
"source_file": "tests/unit/sync/_helpers.py",
"source_location": "L41",
- "community": 12,
+ "community": 1,
"norm_label": "check factory whose closure declares every file equal. returns a closure co",
"id": "sync_helpers_rationale_41"
},
@@ -80783,7 +85931,7 @@
"file_type": "rationale",
"source_file": "tests/unit/sync/_helpers.py",
"source_location": "L62",
- "community": 273,
+ "community": 1,
"norm_label": "check factory whose closure flags ``corrupt_rel`` as ``differ``. every othe",
"id": "sync_helpers_rationale_62"
},
@@ -80792,7 +85940,7 @@
"file_type": "code",
"source_file": "tests/unit/sync/transports/test_rclone_env.py",
"source_location": "L1",
- "community": 148,
+ "community": 111,
"norm_label": "test_rclone_env.py",
"id": "tests_unit_sync_transports_test_rclone_env_py"
},
@@ -80801,7 +85949,7 @@
"file_type": "code",
"source_file": "tests/unit/sync/transports/test_rclone_env.py",
"source_location": "L36",
- "community": 134,
+ "community": 1,
"norm_label": "test_build_rclone_env_sftp_emits_all_keys()",
"id": "transports_test_rclone_env_test_build_rclone_env_sftp_emits_all_keys"
},
@@ -80810,7 +85958,7 @@
"file_type": "code",
"source_file": "tests/unit/sync/transports/test_rclone_env.py",
"source_location": "L59",
- "community": 148,
+ "community": 111,
"norm_label": "test_build_rclone_env_smb_minimal_omits_domain()",
"id": "transports_test_rclone_env_test_build_rclone_env_smb_minimal_omits_domain"
},
@@ -80819,7 +85967,7 @@
"file_type": "code",
"source_file": "tests/unit/sync/transports/test_rclone_env.py",
"source_location": "L83",
- "community": 148,
+ "community": 111,
"norm_label": "test_build_rclone_env_smb_with_domain_includes_domain_key()",
"id": "transports_test_rclone_env_test_build_rclone_env_smb_with_domain_includes_domain_key"
},
@@ -80828,7 +85976,7 @@
"file_type": "code",
"source_file": "tests/unit/sync/transports/test_rclone_env.py",
"source_location": "L100",
- "community": 189,
+ "community": 111,
"norm_label": "test_pass_env_keys_for_names_only_the_password_key()",
"id": "transports_test_rclone_env_test_pass_env_keys_for_names_only_the_password_key"
},
@@ -80837,7 +85985,7 @@
"file_type": "code",
"source_file": "tests/unit/sync/transports/test_rclone_env.py",
"source_location": "L111",
- "community": 148,
+ "community": 111,
"norm_label": "_keyring",
"id": "transports_test_rclone_env_keyring"
},
@@ -80846,7 +85994,7 @@
"file_type": "code",
"source_file": "tests/unit/sync/transports/test_rclone_env.py",
"source_location": "L114",
- "community": 148,
+ "community": 111,
"norm_label": ".__init__()",
"id": "transports_test_rclone_env_keyring_init"
},
@@ -80855,7 +86003,7 @@
"file_type": "code",
"source_file": "tests/unit/sync/transports/test_rclone_env.py",
"source_location": "L117",
- "community": 148,
+ "community": 111,
"norm_label": ".get_password()",
"id": "transports_test_rclone_env_keyring_get_password"
},
@@ -80864,7 +86012,7 @@
"file_type": "code",
"source_file": "tests/unit/sync/transports/test_rclone_env.py",
"source_location": "L122",
- "community": 148,
+ "community": 111,
"norm_label": "_brokenkeyring",
"id": "transports_test_rclone_env_brokenkeyring"
},
@@ -80873,7 +86021,7 @@
"file_type": "code",
"source_file": "tests/unit/sync/transports/test_rclone_env.py",
"source_location": "L125",
- "community": 148,
+ "community": 111,
"norm_label": ".get_password()",
"id": "transports_test_rclone_env_brokenkeyring_get_password"
},
@@ -80882,7 +86030,7 @@
"file_type": "code",
"source_file": "tests/unit/sync/transports/test_rclone_env.py",
"source_location": "L131",
- "community": 148,
+ "community": 111,
"norm_label": "_equipment()",
"id": "transports_test_rclone_env_equipment"
},
@@ -80891,7 +86039,7 @@
"file_type": "code",
"source_file": "tests/unit/sync/transports/test_rclone_env.py",
"source_location": "L157",
- "community": 148,
+ "community": 111,
"norm_label": "test_resolve_env_raises_auth_when_keyring_store_is_none()",
"id": "transports_test_rclone_env_test_resolve_env_raises_auth_when_keyring_store_is_none"
},
@@ -80900,7 +86048,7 @@
"file_type": "code",
"source_file": "tests/unit/sync/transports/test_rclone_env.py",
"source_location": "L164",
- "community": 148,
+ "community": 111,
"norm_label": "test_resolve_env_raises_auth_when_password_is_none()",
"id": "transports_test_rclone_env_test_resolve_env_raises_auth_when_password_is_none"
},
@@ -80909,7 +86057,7 @@
"file_type": "code",
"source_file": "tests/unit/sync/transports/test_rclone_env.py",
"source_location": "L171",
- "community": 148,
+ "community": 111,
"norm_label": "test_resolve_env_raises_auth_when_password_is_empty_string()",
"id": "transports_test_rclone_env_test_resolve_env_raises_auth_when_password_is_empty_string"
},
@@ -80918,7 +86066,7 @@
"file_type": "code",
"source_file": "tests/unit/sync/transports/test_rclone_env.py",
"source_location": "L178",
- "community": 148,
+ "community": 111,
"norm_label": "test_resolve_env_raises_auth_when_keyring_backend_explodes()",
"id": "transports_test_rclone_env_test_resolve_env_raises_auth_when_keyring_backend_explodes"
},
@@ -80927,7 +86075,7 @@
"file_type": "rationale",
"source_file": "tests/unit/sync/transports/test_rclone_env.py",
"source_location": "L1",
- "community": 148,
+ "community": 111,
"norm_label": "unit tests for ``build_rclone_env`` and ``_resolve_env_for_equipment``. the new",
"id": "transports_test_rclone_env_rationale_1"
},
@@ -80936,7 +86084,7 @@
"file_type": "rationale",
"source_file": "tests/unit/sync/transports/test_rclone_env.py",
"source_location": "L101",
- "community": 189,
+ "community": 111,
"norm_label": "the only secret in build_rclone_env's output is _pass.",
"id": "transports_test_rclone_env_rationale_101"
},
@@ -80945,7 +86093,7 @@
"file_type": "rationale",
"source_file": "tests/unit/sync/transports/test_rclone_env.py",
"source_location": "L112",
- "community": 148,
+ "community": 111,
"norm_label": "in-memory keyring stub used by the auth-path tests below.",
"id": "transports_test_rclone_env_rationale_112"
},
@@ -80954,7 +86102,7 @@
"file_type": "rationale",
"source_file": "tests/unit/sync/transports/test_rclone_env.py",
"source_location": "L123",
- "community": 148,
+ "community": 111,
"norm_label": "keyring stub whose ``get_password`` raises an exception.",
"id": "transports_test_rclone_env_rationale_123"
},
@@ -80963,7 +86111,7 @@
"file_type": "rationale",
"source_file": "tests/unit/sync/transports/test_rclone_env.py",
"source_location": "L179",
- "community": 148,
+ "community": 111,
"norm_label": "a keyring backend failure must surface as auth with the real cause attached.",
"id": "transports_test_rclone_env_rationale_179"
},
@@ -80972,7 +86120,7 @@
"file_type": "code",
"source_file": "tests/unit/sync/transports/test_run.py",
"source_location": "L28",
- "community": 147,
+ "community": 167,
"norm_label": "test_run_subprocess_forwards_env()",
"id": "transports_test_run_test_run_subprocess_forwards_env"
},
@@ -80981,7 +86129,7 @@
"file_type": "code",
"source_file": "tests/unit/sync/transports/test_run.py",
"source_location": "L38",
- "community": 147,
+ "community": 167,
"norm_label": "test_run_subprocess_preserves_existing_environ()",
"id": "transports_test_run_test_run_subprocess_preserves_existing_environ"
},
@@ -80990,7 +86138,7 @@
"file_type": "code",
"source_file": "tests/unit/sync/transports/test_run.py",
"source_location": "L56",
- "community": 147,
+ "community": 167,
"norm_label": "test_run_subprocess_pipes_stdin_payload()",
"id": "transports_test_run_test_run_subprocess_pipes_stdin_payload"
},
@@ -80999,7 +86147,7 @@
"file_type": "code",
"source_file": "tests/unit/sync/transports/test_run.py",
"source_location": "L66",
- "community": 147,
+ "community": 167,
"norm_label": "test_run_subprocess_masks_named_env_in_debug_log()",
"id": "transports_test_run_test_run_subprocess_masks_named_env_in_debug_log"
},
@@ -81008,7 +86156,7 @@
"file_type": "code",
"source_file": "tests/unit/sync/transports/test_run.py",
"source_location": "L86",
- "community": 147,
+ "community": 167,
"norm_label": "test_run_subprocess_omits_env_log_when_env_is_none()",
"id": "transports_test_run_test_run_subprocess_omits_env_log_when_env_is_none"
},
@@ -81017,7 +86165,7 @@
"file_type": "rationale",
"source_file": "tests/unit/sync/transports/test_run.py",
"source_location": "L29",
- "community": 147,
+ "community": 167,
"norm_label": "an env-dict entry must surface in the child process' environment.",
"id": "transports_test_run_rationale_29"
},
@@ -81026,7 +86174,7 @@
"file_type": "rationale",
"source_file": "tests/unit/sync/transports/test_run.py",
"source_location": "L39",
- "community": 147,
+ "community": 167,
"norm_label": "caller-supplied env is *merged* over ``os.environ`` -- it does not replace it.",
"id": "transports_test_run_rationale_39"
},
@@ -81035,7 +86183,7 @@
"file_type": "rationale",
"source_file": "tests/unit/sync/transports/test_run.py",
"source_location": "L57",
- "community": 147,
+ "community": 167,
"norm_label": "a bytes payload is fed to stdin and closed.",
"id": "transports_test_run_rationale_57"
},
@@ -81044,7 +86192,7 @@
"file_type": "rationale",
"source_file": "tests/unit/sync/transports/test_run.py",
"source_location": "L67",
- "community": 147,
+ "community": 167,
"norm_label": "``mask_for_log`` redacts the listed env keys from the debug log line.",
"id": "transports_test_run_rationale_67"
},
@@ -81053,7 +86201,7 @@
"file_type": "rationale",
"source_file": "tests/unit/sync/transports/test_run.py",
"source_location": "L87",
- "community": 147,
+ "community": 167,
"norm_label": "no env block in the log when the caller passes ``env=none``.",
"id": "transports_test_run_rationale_87"
},
@@ -81062,7 +86210,7 @@
"file_type": "code",
"source_file": "tests/unit/orchestrator/test_quiescence_poller.py",
"source_location": "L60",
- "community": 27,
+ "community": 30,
"norm_label": "_transport()",
"id": "orchestrator_test_quiescence_poller_transport"
},
@@ -81071,7 +86219,7 @@
"file_type": "rationale",
"source_file": "tests/unit/orchestrator/test_quiescence_poller.py",
"source_location": "L42",
- "community": 27,
+ "community": 30,
"norm_label": "in-memory nas-sync stub recording per-file enqueue calls.",
"id": "orchestrator_test_quiescence_poller_rationale_42"
},
@@ -81080,7 +86228,7 @@
"file_type": "rationale",
"source_file": "tests/unit/orchestrator/test_quiescence_poller.py",
"source_location": "L76",
- "community": 27,
+ "community": 30,
"norm_label": "build a config with an optional staging root and a nas-mode equipment.",
"id": "orchestrator_test_quiescence_poller_rationale_76"
},
@@ -81089,7 +86237,7 @@
"file_type": "rationale",
"source_file": "tests/unit/orchestrator/test_quiescence_poller.py",
"source_location": "L102",
- "community": 27,
+ "community": 30,
"norm_label": "create a run-leaf directory mirroring the \u00a713.2 staging layout.",
"id": "orchestrator_test_quiescence_poller_rationale_102"
},
@@ -81098,7 +86246,7 @@
"file_type": "rationale",
"source_file": "tests/unit/orchestrator/test_quiescence_poller.py",
"source_location": "L129",
- "community": 27,
+ "community": 30,
"norm_label": "a file is enqueued only after its signature settles for the window.",
"id": "orchestrator_test_quiescence_poller_rationale_129"
},
@@ -81107,7 +86255,7 @@
"file_type": "rationale",
"source_file": "tests/unit/orchestrator/test_quiescence_poller.py",
"source_location": "L151",
- "community": 27,
+ "community": 30,
"norm_label": "a signature change resets ``first_seen``; the window restarts.",
"id": "orchestrator_test_quiescence_poller_rationale_151"
},
@@ -81116,7 +86264,7 @@
"file_type": "rationale",
"source_file": "tests/unit/orchestrator/test_quiescence_poller.py",
"source_location": "L177",
- "community": 27,
+ "community": 30,
"norm_label": "a run holding only ignore-glob files never enqueues.",
"id": "orchestrator_test_quiescence_poller_rationale_177"
},
@@ -81125,7 +86273,7 @@
"file_type": "rationale",
"source_file": "tests/unit/orchestrator/test_quiescence_poller.py",
"source_location": "L193",
- "community": 27,
+ "community": 30,
"norm_label": "a quiet non-ignored file enqueues even when ignored files coexist.",
"id": "orchestrator_test_quiescence_poller_rationale_193"
},
@@ -81134,7 +86282,7 @@
"file_type": "rationale",
"source_file": "tests/unit/orchestrator/test_quiescence_poller.py",
"source_location": "L213",
- "community": 27,
+ "community": 30,
"norm_label": "a sweep finds runs under staging_root and under nas-mode local_root.",
"id": "orchestrator_test_quiescence_poller_rationale_213"
},
@@ -81143,7 +86291,7 @@
"file_type": "rationale",
"source_file": "tests/unit/orchestrator/test_quiescence_poller.py",
"source_location": "L235",
- "community": 27,
+ "community": 30,
"norm_label": "a ``stage``-mode equipment sharing one ``local_root`` with a ``nas``-mode eq",
"id": "orchestrator_test_quiescence_poller_rationale_235"
},
@@ -81152,7 +86300,7 @@
"file_type": "rationale",
"source_file": "tests/unit/orchestrator/test_quiescence_poller.py",
"source_location": "L286",
- "community": 27,
+ "community": 30,
"norm_label": "a quiet file already synced at its current signature is skipped.",
"id": "orchestrator_test_quiescence_poller_rationale_286"
},
@@ -81161,7 +86309,7 @@
"file_type": "rationale",
"source_file": "tests/unit/orchestrator/test_quiescence_poller.py",
"source_location": "L310",
- "community": 27,
+ "community": 30,
"norm_label": "a file modified after its recorded sync re-enters the eligible set.",
"id": "orchestrator_test_quiescence_poller_rationale_310"
},
@@ -81170,7 +86318,7 @@
"file_type": "rationale",
"source_file": "tests/unit/orchestrator/test_quiescence_poller.py",
"source_location": "L333",
- "community": 27,
+ "community": 30,
"norm_label": "a run with a mix of synced + modified files enqueues only the dirty one.",
"id": "orchestrator_test_quiescence_poller_rationale_333"
},
@@ -81179,7 +86327,7 @@
"file_type": "rationale",
"source_file": "tests/unit/orchestrator/test_quiescence_poller.py",
"source_location": "L364",
- "community": 27,
+ "community": 30,
"norm_label": "start()/stop() can be called repeatedly without error.",
"id": "orchestrator_test_quiescence_poller_rationale_364"
},
@@ -81188,7 +86336,7 @@
"file_type": "rationale",
"source_file": "tests/unit/orchestrator/test_quiescence_poller.py",
"source_location": "L387",
- "community": 27,
+ "community": 30,
"norm_label": "a live quiescence-window change takes effect on the next sweep. poll_once r",
"id": "orchestrator_test_quiescence_poller_rationale_387"
},
@@ -81197,7 +86345,7 @@
"file_type": "rationale",
"source_file": "tests/integration/test_orchestrator_lifecycle.py",
"source_location": "L54",
- "community": 8,
+ "community": 13,
"norm_label": "in-memory sync client that records per-file enqueue + serves status/list_all.",
"id": "integration_test_orchestrator_lifecycle_rationale_54"
},
@@ -81206,7 +86354,7 @@
"file_type": "rationale",
"source_file": "tests/integration/test_orchestrator_lifecycle.py",
"source_location": "L117",
- "community": 8,
+ "community": 13,
"norm_label": "a staged run is enqueued only once its files settle for the window.",
"id": "integration_test_orchestrator_lifecycle_rationale_117"
},
@@ -81215,7 +86363,7 @@
"file_type": "rationale",
"source_file": "tests/integration/test_orchestrator_lifecycle.py",
"source_location": "L135",
- "community": 8,
+ "community": 13,
"norm_label": "a quiet file recorded in sync_state.json at its current signature is not re-",
"id": "integration_test_orchestrator_lifecycle_rationale_135"
},
@@ -81224,7 +86372,7 @@
"file_type": "rationale",
"source_file": "tests/integration/test_orchestrator_lifecycle.py",
"source_location": "L171",
- "community": 8,
+ "community": 13,
"norm_label": "``get /staging`` reports the run with its ``sync_state.json`` rollup.",
"id": "integration_test_orchestrator_lifecycle_rationale_171"
},
@@ -81233,7 +86381,7 @@
"file_type": "rationale",
"source_file": "tests/integration/test_orchestrator_lifecycle.py",
"source_location": "L188",
- "community": 8,
+ "community": 13,
"norm_label": "``post /staging/.../clear`` deletes a fully-``synced`` run's data files, ret",
"id": "integration_test_orchestrator_lifecycle_rationale_188"
},
@@ -81242,7 +86390,7 @@
"file_type": "rationale",
"source_file": "tests/integration/test_orchestrator_lifecycle.py",
"source_location": "L211",
- "community": 8,
+ "community": 13,
"norm_label": "a run that is not fully ``synced`` cannot be cleared.",
"id": "integration_test_orchestrator_lifecycle_rationale_211"
},
@@ -81251,7 +86399,7 @@
"file_type": "code",
"source_file": "tests/integration/test_nas_sync.py",
"source_location": "L349",
- "community": 28,
+ "community": 37,
"norm_label": "test_remote_hash_mismatch_triggers_retry()",
"id": "integration_test_nas_sync_test_remote_hash_mismatch_triggers_retry"
},
@@ -81260,7 +86408,7 @@
"file_type": "code",
"source_file": "tests/integration/test_nas_sync.py",
"source_location": "L422",
- "community": 28,
+ "community": 37,
"norm_label": "test_remote_hashsum_probe_failure_does_not_skip_verify()",
"id": "integration_test_nas_sync_test_remote_hashsum_probe_failure_does_not_skip_verify"
},
@@ -81269,7 +86417,7 @@
"file_type": "code",
"source_file": "tests/integration/test_nas_sync.py",
"source_location": "L489",
- "community": 28,
+ "community": 37,
"norm_label": "test_remote_hash_mismatch_terminal()",
"id": "integration_test_nas_sync_test_remote_hash_mismatch_terminal"
},
@@ -81278,7 +86426,7 @@
"file_type": "rationale",
"source_file": "tests/integration/test_nas_sync.py",
"source_location": "L54",
- "community": 28,
+ "community": 37,
"norm_label": "minimal keyring stub returning a fixed password for every username. the new",
"id": "integration_test_nas_sync_rationale_54"
},
@@ -81287,7 +86435,7 @@
"file_type": "rationale",
"source_file": "tests/integration/test_nas_sync.py",
"source_location": "L72",
- "community": 453,
+ "community": 37,
"norm_label": "install the rclone stub on path for the test.",
"id": "integration_test_nas_sync_rationale_72"
},
@@ -81296,7 +86444,7 @@
"file_type": "rationale",
"source_file": "tests/integration/test_nas_sync.py",
"source_location": "L149",
- "community": 28,
+ "community": 37,
"norm_label": "poll ``queue.get_by_id`` until ``state`` is in ``targets`` or timeout.",
"id": "integration_test_nas_sync_rationale_149"
},
@@ -81305,7 +86453,7 @@
"file_type": "rationale",
"source_file": "tests/integration/test_nas_sync.py",
"source_location": "L166",
- "community": 28,
+ "community": 37,
"norm_label": "enqueue -> running -> awaiting_verify -> verified -> cleaned. uses the pyth",
"id": "integration_test_nas_sync_rationale_166"
},
@@ -81314,7 +86462,7 @@
"file_type": "rationale",
"source_file": "tests/integration/test_nas_sync.py",
"source_location": "L240",
- "community": 28,
+ "community": 37,
"norm_label": "a run path with ```` is gated; sync_status -> blocked_by_validation.",
"id": "integration_test_nas_sync_rationale_240"
},
@@ -81323,7 +86471,7 @@
"file_type": "rationale",
"source_file": "tests/integration/test_nas_sync.py",
"source_location": "L279",
- "community": 28,
+ "community": 37,
"norm_label": "the stub returns ``auth_error`` -> queue row terminates failed.",
"id": "integration_test_nas_sync_rationale_279"
},
@@ -81332,7 +86480,7 @@
"file_type": "rationale",
"source_file": "tests/integration/test_nas_sync.py",
"source_location": "L310",
- "community": 28,
+ "community": 37,
"norm_label": "``force_verify`` runs a manifest pass against the local subtree.",
"id": "integration_test_nas_sync_rationale_310"
},
@@ -81341,7 +86489,7 @@
"file_type": "rationale",
"source_file": "tests/integration/test_nas_sync.py",
"source_location": "L354",
- "community": 28,
+ "community": 37,
"norm_label": "a first ``rclone check`` mismatch retries the transport phase once. the inj",
"id": "integration_test_nas_sync_rationale_354"
},
@@ -81350,7 +86498,7 @@
"file_type": "rationale",
"source_file": "tests/integration/test_nas_sync.py",
"source_location": "L427",
- "community": 28,
+ "community": 37,
"norm_label": "a ``rclone check`` transporterror must not promote the job to verified. the",
"id": "integration_test_nas_sync_rationale_427"
},
@@ -81359,7 +86507,7 @@
"file_type": "rationale",
"source_file": "tests/integration/test_nas_sync.py",
"source_location": "L552",
- "community": 28,
+ "community": 37,
"norm_label": "poller sweep -> per-file enqueue -> drive -> verify -> sync_state.json recor",
"id": "integration_test_nas_sync_rationale_552"
},
@@ -81368,7 +86516,7 @@
"file_type": "rationale",
"source_file": "tests/integration/test_nas_sync.py",
"source_location": "L626",
- "community": 28,
+ "community": 37,
"norm_label": "full phase 5 path: poller sweep -> enqueue -> verify -> synced rollup -> cle",
"id": "integration_test_nas_sync_rationale_626"
},
@@ -81377,7 +86525,7 @@
"file_type": "rationale",
"source_file": "tests/integration/controller/test_creation_flow.py",
"source_location": "L68",
- "community": 3,
+ "community": 140,
"norm_label": "construct a minimal config with one equipment configured.",
"id": "controller_test_creation_flow_rationale_68"
},
@@ -81386,7 +86534,7 @@
"file_type": "rationale",
"source_file": "tests/integration/controller/test_creation_flow.py",
"source_location": "L178",
- "community": 3,
+ "community": 141,
"norm_label": "wait for the session task to finish and return the final state dict.",
"id": "controller_test_creation_flow_rationale_178"
},
@@ -81395,7 +86543,7 @@
"file_type": "rationale",
"source_file": "tests/integration/controller/test_creation_flow.py",
"source_location": "L195",
- "community": 3,
+ "community": 140,
"norm_label": "project creation walks every state and emits a current-version creation.json.",
"id": "controller_test_creation_flow_rationale_195"
},
@@ -81404,7 +86552,7 @@
"file_type": "rationale",
"source_file": "tests/integration/controller/test_creation_flow.py",
"source_location": "L249",
- "community": 3,
+ "community": 141,
"norm_label": "redesign \u00a73.4: two creations on the same instrument within the same minute r",
"id": "controller_test_creation_flow_rationale_249"
},
@@ -81413,7 +86561,7 @@
"file_type": "rationale",
"source_file": "tests/integration/controller/test_creation_flow.py",
"source_location": "L385",
- "community": 3,
+ "community": 483,
"norm_label": "a run whose parent project name is not a safe path segment (\u00a73.2) is rejecte",
"id": "controller_test_creation_flow_rationale_385"
},
@@ -81422,7 +86570,7 @@
"file_type": "rationale",
"source_file": "tests/integration/controller/test_creation_flow.py",
"source_location": "L432",
- "community": 3,
+ "community": 141,
"norm_label": "when a plugin raises plugininputrequired, controller emits the event and res",
"id": "controller_test_creation_flow_rationale_432"
},
@@ -81431,7 +86579,7 @@
"file_type": "rationale",
"source_file": "tests/integration/controller/test_creation_flow.py",
"source_location": "L503",
- "community": 3,
+ "community": 415,
"norm_label": "a cancel with ``discard_files=true`` deletes the partial directory.",
"id": "controller_test_creation_flow_rationale_503"
},
@@ -81440,7 +86588,7 @@
"file_type": "rationale",
"source_file": "tests/integration/controller/test_creation_flow.py",
"source_location": "L541",
- "community": 3,
+ "community": 410,
"norm_label": "a cancel with ``discard_files=false`` leaves the partial directory.",
"id": "controller_test_creation_flow_rationale_541"
},
@@ -81449,7 +86597,7 @@
"file_type": "rationale",
"source_file": "tests/integration/controller/test_creation_flow.py",
"source_location": "L565",
- "community": 3,
+ "community": 141,
"norm_label": "a rendered file containing ```` must trip the post-validate gate.",
"id": "controller_test_creation_flow_rationale_565"
},
@@ -81458,7 +86606,7 @@
"file_type": "rationale",
"source_file": "tests/integration/controller/test_creation_flow.py",
"source_location": "L695",
- "community": 3,
+ "community": 403,
"norm_label": "t1 (\u00a7c1): the production ``readmegenerator`` -- injected by ``tray.dependenc",
"id": "controller_test_creation_flow_rationale_695"
},
@@ -81467,7 +86615,7 @@
"file_type": "rationale",
"source_file": "tests/integration/controller/test_creation_flow.py",
"source_location": "L771",
- "community": 3,
+ "community": 409,
"norm_label": "a template-required readme field missing from ``readme_extra`` must trigger",
"id": "controller_test_creation_flow_rationale_771"
},
@@ -81476,7 +86624,7 @@
"file_type": "rationale",
"source_file": "tests/integration/controller/test_creation_flow.py",
"source_location": "L807",
- "community": 3,
+ "community": 141,
"norm_label": "when ``readme_extra`` supplies a non-empty value for a required field the va",
"id": "controller_test_creation_flow_rationale_807"
},
@@ -81485,7 +86633,7 @@
"file_type": "rationale",
"source_file": "tests/integration/controller/test_creation_flow.py",
"source_location": "L851",
- "community": 3,
+ "community": 405,
"norm_label": "when the operator cancels the input-required prompt (host returns ``aborted=",
"id": "controller_test_creation_flow_rationale_851"
},
@@ -81494,7 +86642,7 @@
"file_type": "rationale",
"source_file": "tests/integration/controller/test_creation_flow.py",
"source_location": "L909",
- "community": 3,
+ "community": 406,
"norm_label": "``_cleanup`` swallows compose-path errors gracefully.",
"id": "controller_test_creation_flow_rationale_909"
},
@@ -81503,7 +86651,7 @@
"file_type": "rationale",
"source_file": "tests/integration/controller/test_creation_flow.py",
"source_location": "L932",
- "community": 3,
+ "community": 408,
"norm_label": "``_cleanup`` removes the destination directory when ``discard_files=true``.",
"id": "controller_test_creation_flow_rationale_932"
},
@@ -81512,7 +86660,7 @@
"file_type": "rationale",
"source_file": "tests/integration/controller/test_creation_flow.py",
"source_location": "L949",
- "community": 3,
+ "community": 413,
"norm_label": "a config.yaml-required readme field missing from ``readme_extra`` must trigg",
"id": "controller_test_creation_flow_rationale_949"
},
@@ -81521,7 +86669,7 @@
"file_type": "rationale",
"source_file": "tests/integration/controller/test_creation_flow.py",
"source_location": "L975",
- "community": 3,
+ "community": 412,
"norm_label": "a copier render failure (e.g. dst exists) transitions the session to ``faile",
"id": "controller_test_creation_flow_rationale_975"
},
@@ -81530,7 +86678,7 @@
"file_type": "rationale",
"source_file": "tests/integration/controller/test_creation_flow.py",
"source_location": "L1003",
- "community": 3,
+ "community": 307,
"norm_label": "the controller writes ``equipment.json`` under ``//.exlab-wiz",
"id": "controller_test_creation_flow_rationale_1003"
},
@@ -81539,7 +86687,7 @@
"file_type": "rationale",
"source_file": "tests/integration/controller/test_creation_flow.py",
"source_location": "L1026",
- "community": 3,
+ "community": 333,
"norm_label": "the best-effort log appender writes to the equipment cache dir.",
"id": "controller_test_creation_flow_rationale_1026"
},
@@ -81548,7 +86696,7 @@
"file_type": "rationale",
"source_file": "tests/integration/controller/test_creation_flow.py",
"source_location": "L1042",
- "community": 3,
+ "community": 307,
"norm_label": "a run inherits its lims identity from the parent project's creation.json (ba",
"id": "controller_test_creation_flow_rationale_1042"
},
@@ -81557,7 +86705,7 @@
"file_type": "rationale",
"source_file": "tests/integration/controller/test_creation_flow.py",
"source_location": "L1066",
- "community": 3,
+ "community": 411,
"norm_label": "if ``cancel`` is invoked on a session that has not yet started a pipeline ta",
"id": "controller_test_creation_flow_rationale_1066"
},
@@ -81566,7 +86714,7 @@
"file_type": "rationale",
"source_file": "tests/integration/controller/test_creation_flow.py",
"source_location": "L1086",
- "community": 3,
+ "community": 414,
"norm_label": "resume against a session that has no resume queue raises.",
"id": "controller_test_creation_flow_rationale_1086"
},
@@ -81575,7 +86723,7 @@
"file_type": "rationale",
"source_file": "tests/integration/controller/test_creation_flow.py",
"source_location": "L1107",
- "community": 3,
+ "community": 404,
"norm_label": "``subscribe`` initializes ``event_queue`` if the session opened with none (d",
"id": "controller_test_creation_flow_rationale_1107"
},
@@ -81584,7 +86732,7 @@
"file_type": "rationale",
"source_file": "tests/integration/controller/test_creation_flow.py",
"source_location": "L1131",
- "community": 3,
+ "community": 402,
"norm_label": "when :class:`pluginhost` returns ``aborted=true``, the controller transition",
"id": "controller_test_creation_flow_rationale_1131"
},
@@ -81593,7 +86741,7 @@
"file_type": "rationale",
"source_file": "tests/integration/controller/test_creation_flow.py",
"source_location": "L1176",
- "community": 3,
+ "community": 407,
"norm_label": "the ``_required_field_ids`` helper must skip non-dict entries in the templat",
"id": "controller_test_creation_flow_rationale_1176"
},
@@ -81602,7 +86750,7 @@
"file_type": "rationale",
"source_file": "tests/integration/controller/test_creation_flow.py",
"source_location": "L1192",
- "community": 3,
+ "community": 141,
"norm_label": "a run whose parent project folder has no readable creation.json still produc",
"id": "controller_test_creation_flow_rationale_1192"
},
@@ -81611,7 +86759,7 @@
"file_type": "rationale",
"source_file": "tests/integration/api/test_full_flow.py",
"source_location": "L81",
- "community": 51,
+ "community": 10,
"norm_label": "build a fastapi app with the real controller + validator wired.",
"id": "api_test_full_flow_rationale_81"
},
@@ -81620,7 +86768,7 @@
"file_type": "rationale",
"source_file": "tests/integration/api/test_full_flow.py",
"source_location": "L117",
- "community": 135,
+ "community": 175,
"norm_label": "end-to-end: post /sessions -> session reaches done -> creation.json on disk.",
"id": "api_test_full_flow_rationale_117"
},
@@ -81629,7 +86777,7 @@
"file_type": "rationale",
"source_file": "tests/integration/api/test_full_flow.py",
"source_location": "L181",
- "community": 135,
+ "community": 175,
"norm_label": "each non-soft incomplete_* state surfaces the right next_action.",
"id": "api_test_full_flow_rationale_181"
},
@@ -81638,7 +86786,7 @@
"file_type": "rationale",
"source_file": "tests/integration/api/test_full_flow.py",
"source_location": "L215",
- "community": 135,
+ "community": 175,
"norm_label": "post /sessions returns 503 + setup_incomplete in non-soft incomplete_* states.",
"id": "api_test_full_flow_rationale_215"
},
@@ -81647,7 +86795,7 @@
"file_type": "rationale",
"source_file": "tests/integration/api/test_full_flow.py",
"source_location": "L239",
- "community": 135,
+ "community": 10,
"norm_label": "the soft block does not gate post /sessions per \u00a74.9.4.",
"id": "api_test_full_flow_rationale_239"
},
@@ -81656,7 +86804,7 @@
"file_type": "rationale",
"source_file": "tests/integration/api/test_full_flow.py",
"source_location": "L291",
- "community": 135,
+ "community": 175,
"norm_label": "``post /problems/refresh`` invokes validator.audit and returns the count.",
"id": "api_test_full_flow_rationale_291"
},
@@ -81665,7 +86813,7 @@
"file_type": "rationale",
"source_file": "tests/integration/api/test_full_flow.py",
"source_location": "L367",
- "community": 9,
+ "community": 10,
"norm_label": "end-to-end websocket stream of phase frames. uses the synchronous testclien",
"id": "api_test_full_flow_rationale_367"
},
@@ -81674,7 +86822,7 @@
"file_type": "code",
"source_file": "tests/fixtures/stub_rclone.py",
"source_location": "L124",
- "community": 202,
+ "community": 203,
"norm_label": "_dump_env()",
"id": "fixtures_stub_rclone_dump_env"
},
@@ -81683,7 +86831,7 @@
"file_type": "code",
"source_file": "tests/fixtures/stub_rclone.py",
"source_location": "L135",
- "community": 202,
+ "community": 203,
"norm_label": "_require_env()",
"id": "fixtures_stub_rclone_require_env"
},
@@ -81692,7 +86840,7 @@
"file_type": "rationale",
"source_file": "tests/fixtures/stub_rclone.py",
"source_location": "L55",
- "community": 202,
+ "community": 203,
"norm_label": "return ``(local, remote_spec)`` from a ``rclone copy`` argv.",
"id": "fixtures_stub_rclone_rationale_55"
},
@@ -81701,7 +86849,7 @@
"file_type": "rationale",
"source_file": "tests/fixtures/stub_rclone.py",
"source_location": "L67",
- "community": 202,
+ "community": 203,
"norm_label": "return true if ``arg`` is the value-half of a ``--flag value`` pair.",
"id": "fixtures_stub_rclone_rationale_67"
},
@@ -81710,7 +86858,7 @@
"file_type": "rationale",
"source_file": "tests/fixtures/stub_rclone.py",
"source_location": "L85",
- "community": 202,
+ "community": 203,
"norm_label": "write `` `` per file in ``--files-from`` to ``--combined``. `",
"id": "fixtures_stub_rclone_rationale_85"
},
@@ -81719,7 +86867,7 @@
"file_type": "rationale",
"source_file": "tests/fixtures/stub_rclone.py",
"source_location": "L114",
- "community": 202,
+ "community": 203,
"norm_label": "return the value following ``flag`` in ``argv`` or ``none``.",
"id": "fixtures_stub_rclone_rationale_114"
},
@@ -81728,7 +86876,7 @@
"file_type": "rationale",
"source_file": "tests/fixtures/stub_rclone.py",
"source_location": "L125",
- "community": 202,
+ "community": 203,
"norm_label": "when ``stub_rclone_env_dump`` is set, write the rclone-prefixed env.",
"id": "fixtures_stub_rclone_rationale_125"
},
@@ -81737,7 +86885,7 @@
"file_type": "rationale",
"source_file": "tests/fixtures/stub_rclone.py",
"source_location": "L136",
- "community": 202,
+ "community": 203,
"norm_label": "enforce ``stub_rclone_require_env``; return 0 if satisfied else 3. confirms",
"id": "fixtures_stub_rclone_rationale_136"
},
@@ -81746,7 +86894,7 @@
"file_type": "code",
"source_file": "tests/e2e/test_flow_00_full_lifecycle.py",
"source_location": "L86",
- "community": 139,
+ "community": 185,
"norm_label": "_pick_radio()",
"id": "e2e_test_flow_00_full_lifecycle_pick_radio"
},
@@ -81755,7 +86903,7 @@
"file_type": "rationale",
"source_file": "tests/e2e/test_flow_00_full_lifecycle.py",
"source_location": "L87",
- "community": 139,
+ "community": 185,
"norm_label": "select a quasar ``ui.radio`` option by its label within the group.",
"id": "e2e_test_flow_00_full_lifecycle_rationale_87"
},
@@ -81764,7 +86912,7 @@
"file_type": "rationale",
"source_file": "tests/e2e/test_flow_00_full_lifecycle.py",
"source_location": "L100",
- "community": 139,
+ "community": 185,
"norm_label": "click a stepper-navigation button scoped to its step container. the next /",
"id": "e2e_test_flow_00_full_lifecycle_rationale_100"
},
@@ -81773,7 +86921,7 @@
"file_type": "rationale",
"source_file": "tests/e2e/test_flow_00_full_lifecycle.py",
"source_location": "L112",
- "community": 139,
+ "community": 185,
"norm_label": "advance the project wizard from ``step_id`` via its next button.",
"id": "e2e_test_flow_00_full_lifecycle_rationale_112"
},
@@ -81782,7 +86930,7 @@
"file_type": "rationale",
"source_file": "tests/e2e/test_flow_00_full_lifecycle.py",
"source_location": "L117",
- "community": 139,
+ "community": 185,
"norm_label": "advance the run wizard from ``step_id`` via its next button.",
"id": "e2e_test_flow_00_full_lifecycle_rationale_117"
},
@@ -81791,7 +86939,7 @@
"file_type": "rationale",
"source_file": "tests/e2e/test_flow_00_full_lifecycle.py",
"source_location": "L122",
- "community": 139,
+ "community": 185,
"norm_label": "navigate to a nicegui page, tolerating a transient err_aborted. nicegui's c",
"id": "e2e_test_flow_00_full_lifecycle_rationale_122"
},
@@ -81800,7 +86948,7 @@
"file_type": "rationale",
"source_file": "tests/e2e/test_flow_00_full_lifecycle.py",
"source_location": "L147",
- "community": 139,
+ "community": 270,
"norm_label": "yield a started :class:`prodserver` rooted at a fresh tmp home. the keyring",
"id": "e2e_test_flow_00_full_lifecycle_rationale_147"
},
@@ -81809,7 +86957,7 @@
"file_type": "code",
"source_file": "tests/e2e/test_flow_27_nas_credential_settings.py",
"source_location": "L179",
- "community": 287,
+ "community": 291,
"norm_label": "test_nas_credential_gate_set_test_and_clear()",
"id": "e2e_test_flow_27_nas_credential_settings_test_nas_credential_gate_set_test_and_clear"
},
@@ -81827,7 +86975,7 @@
"file_type": "rationale",
"source_file": "tests/e2e/test_flow_27_nas_credential_settings.py",
"source_location": "L106",
- "community": 287,
+ "community": 291,
"norm_label": "spawn the production wizard seeded with a credential-less nas equipment. yi",
"id": "e2e_test_flow_27_nas_credential_settings_rationale_106"
},
@@ -81836,7 +86984,7 @@
"file_type": "code",
"source_file": "tests/e2e/page_objects/wizard_equipment_page.py",
"source_location": "L44",
- "community": 142,
+ "community": 150,
"norm_label": "transport_type()",
"id": "page_objects_wizard_equipment_page_transport_type"
},
@@ -81845,7 +86993,7 @@
"file_type": "code",
"source_file": "tests/e2e/page_objects/wizard_equipment_page.py",
"source_location": "L49",
- "community": 142,
+ "community": 150,
"norm_label": "sftp_host()",
"id": "page_objects_wizard_equipment_page_sftp_host"
},
@@ -81854,7 +87002,7 @@
"file_type": "code",
"source_file": "tests/e2e/page_objects/wizard_equipment_page.py",
"source_location": "L53",
- "community": 142,
+ "community": 150,
"norm_label": "sftp_user()",
"id": "page_objects_wizard_equipment_page_sftp_user"
},
@@ -81863,7 +87011,7 @@
"file_type": "code",
"source_file": "tests/e2e/page_objects/wizard_equipment_page.py",
"source_location": "L57",
- "community": 142,
+ "community": 150,
"norm_label": "sftp_remote_path()",
"id": "page_objects_wizard_equipment_page_sftp_remote_path"
},
@@ -81872,7 +87020,7 @@
"file_type": "code",
"source_file": "tests/e2e/page_objects/wizard_equipment_page.py",
"source_location": "L62",
- "community": 142,
+ "community": 150,
"norm_label": "smb_host()",
"id": "page_objects_wizard_equipment_page_smb_host"
},
@@ -81881,7 +87029,7 @@
"file_type": "code",
"source_file": "tests/e2e/page_objects/wizard_equipment_page.py",
"source_location": "L66",
- "community": 142,
+ "community": 150,
"norm_label": "smb_share()",
"id": "page_objects_wizard_equipment_page_smb_share"
},
@@ -81890,7 +87038,7 @@
"file_type": "code",
"source_file": "tests/e2e/page_objects/wizard_equipment_page.py",
"source_location": "L70",
- "community": 142,
+ "community": 150,
"norm_label": "smb_user()",
"id": "page_objects_wizard_equipment_page_smb_user"
},
@@ -81899,7 +87047,7 @@
"file_type": "code",
"source_file": "src/exlab_wizard/paths.py",
"source_location": "L447",
- "community": 60,
+ "community": 187,
"norm_label": "_password_required_equipment()",
"id": "exlab_wizard_paths_password_required_equipment"
},
@@ -81908,7 +87056,7 @@
"file_type": "code",
"source_file": "src/exlab_wizard/paths.py",
"source_location": "L466",
- "community": 60,
+ "community": 187,
"norm_label": "_nas_slot_satisfied()",
"id": "exlab_wizard_paths_nas_slot_satisfied"
},
@@ -81917,7 +87065,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/paths.py",
"source_location": "L471",
- "community": 60,
+ "community": 187,
"norm_label": "return true when every nas-mode equipment has its keyring password. rclone-",
"id": "exlab_wizard_paths_rationale_471"
},
@@ -81926,7 +87074,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/paths.py",
"source_location": "L490",
- "community": 52,
+ "community": 59,
"norm_label": "evaluate the \u00a74.9.1 setup state. order of gates (first-failing wins):",
"id": "exlab_wizard_paths_rationale_490"
},
@@ -81935,7 +87083,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/paths.py",
"source_location": "L534",
- "community": 60,
+ "community": 187,
"norm_label": "return true when this device has an orchestrator label. only ``label`` is r",
"id": "exlab_wizard_paths_rationale_534"
},
@@ -81944,7 +87092,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/paths.py",
"source_location": "L550",
- "community": 60,
+ "community": 177,
"norm_label": "translate a state into ``{field, reason}`` dicts for ``/api/v1/setup/status``.",
"id": "exlab_wizard_paths_rationale_550"
},
@@ -81953,7 +87101,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/paths.py",
"source_location": "L583",
- "community": 60,
+ "community": 187,
"norm_label": "per-equipment missing-keyring rows for ``incomplete_no_nas_credential``. re",
"id": "exlab_wizard_paths_rationale_583"
},
@@ -81962,7 +87110,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/paths.py",
"source_location": "L602",
- "community": 60,
+ "community": 177,
"norm_label": "only ``label`` is required; ``staging_root`` is opt-in (see gate).",
"id": "exlab_wizard_paths_rationale_602"
},
@@ -81971,7 +87119,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/paths.py",
"source_location": "L674",
- "community": 210,
+ "community": 3,
"norm_label": "return the ``.exlab-wizard/`` subdirectory for a run or project root.",
"id": "exlab_wizard_paths_rationale_674"
},
@@ -81980,7 +87128,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/paths.py",
"source_location": "L689",
- "community": 210,
+ "community": 491,
"norm_label": "return the ``readme_fields.json`` path under a run or project directory.",
"id": "exlab_wizard_paths_rationale_689"
},
@@ -81989,7 +87137,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/paths.py",
"source_location": "L699",
- "community": 109,
+ "community": 71,
"norm_label": "true if ``name`` is an experimental-run directory. note: ``run_dir_prefix``",
"id": "exlab_wizard_paths_rationale_699"
},
@@ -81998,7 +87146,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/paths.py",
"source_location": "L709",
- "community": 213,
+ "community": 11,
"norm_label": "true if ``name`` is a test-run directory.",
"id": "exlab_wizard_paths_rationale_709"
},
@@ -82007,7 +87155,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/paths.py",
"source_location": "L714",
- "community": 210,
+ "community": 56,
"norm_label": "return ``run_`` or ``testrun_``.",
"id": "exlab_wizard_paths_rationale_714"
},
@@ -82016,7 +87164,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/ui/equipment_form.py",
"source_location": "L54",
- "community": 197,
+ "community": 194,
"norm_label": "assemble a validated :class:`equipmentconfig` from raw form fields. redesig",
"id": "ui_equipment_form_rationale_54"
},
@@ -82025,7 +87173,7 @@
"file_type": "code",
"source_file": "src/exlab_wizard/ui/mount.py",
"source_location": "L486",
- "community": 45,
+ "community": 77,
"norm_label": "_nas_credential_handlers()",
"id": "ui_mount_nas_credential_handlers"
},
@@ -82034,7 +87182,7 @@
"file_type": "code",
"source_file": "src/exlab_wizard/ui/mount.py",
"source_location": "L668",
- "community": 204,
+ "community": 82,
"norm_label": "_nas_credential_missing()",
"id": "ui_mount_nas_credential_missing"
},
@@ -82043,7 +87191,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/ui/mount.py",
"source_location": "L433",
- "community": 45,
+ "community": 77,
"norm_label": "build the lims-password save / clear handlers for the settings dialog. cred",
"id": "ui_mount_rationale_433"
},
@@ -82052,7 +87200,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/ui/mount.py",
"source_location": "L489",
- "community": 45,
+ "community": 77,
"norm_label": "build the nas-password save / clear handlers for one equipment. rclone-only",
"id": "ui_mount_rationale_489"
},
@@ -82061,7 +87209,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/ui/mount.py",
"source_location": "L544",
- "community": 237,
+ "community": 228,
"norm_label": "run the rclone equipment probe for ``equipment_id`` and adapt it. resolves",
"id": "ui_mount_rationale_544"
},
@@ -82070,7 +87218,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/ui/mount.py",
"source_location": "L594",
- "community": 193,
+ "community": 77,
"norm_label": "write ``updated`` via ``deps.save_config`` and hot-reload components. retur",
"id": "ui_mount_rationale_594"
},
@@ -82079,7 +87227,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/ui/mount.py",
"source_location": "L626",
- "community": 193,
+ "community": 77,
"norm_label": "create the staging directory when the operator saved a non-empty path. ``st",
"id": "ui_mount_rationale_626"
},
@@ -82088,7 +87236,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/ui/mount.py",
"source_location": "L652",
- "community": 193,
+ "community": 77,
"norm_label": "push ``updated`` into the running components (no tray relaunch). wraps :fun",
"id": "ui_mount_rationale_652"
},
@@ -82097,7 +87245,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/ui/mount.py",
"source_location": "L669",
- "community": 204,
+ "community": 82,
"norm_label": "true when a password-requiring nas-mode equipment lacks its keyring entry.",
"id": "ui_mount_rationale_669"
},
@@ -82106,7 +87254,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/ui/mount.py",
"source_location": "L690",
- "community": 45,
+ "community": 52,
"norm_label": "return true when the \u00a74.9 setup state is ``ready``. delegates to :func:`api",
"id": "ui_mount_rationale_690"
},
@@ -82115,7 +87263,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/ui/mount.py",
"source_location": "L722",
- "community": 149,
+ "community": 153,
"norm_label": "register / unregister platform autostart; return the real post-op state. re",
"id": "ui_mount_rationale_722"
},
@@ -82124,7 +87272,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/ui/mount.py",
"source_location": "L773",
- "community": 45,
+ "community": 204,
"norm_label": "return the (session_id, session) pairs the operations panel shows. the \u00a79.5",
"id": "ui_mount_rationale_773"
},
@@ -82133,7 +87281,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/ui/mount.py",
"source_location": "L790",
- "community": 45,
+ "community": 204,
"norm_label": "return ``(panel_count, input_required, active)`` operation counts. ``panel_",
"id": "ui_mount_rationale_790"
},
@@ -82142,7 +87290,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/ui/mount.py",
"source_location": "L807",
- "community": 45,
+ "community": 52,
"norm_label": "return the \u00a74.9.3 next-action string for the banner subline. unlike :func:`",
"id": "ui_mount_rationale_807"
},
@@ -82151,25 +87299,16 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/ui/mount.py",
"source_location": "L830",
- "community": 302,
+ "community": 209,
"norm_label": "compose the ``?selected=...&right_pane=...`` query string for /main. omits",
"id": "ui_mount_rationale_830"
},
- {
- "label": "Map a selected node id to ``(kind, is_received)``. Mirrors the shape classi",
- "file_type": "rationale",
- "source_file": "src/exlab_wizard/ui/mount.py",
- "source_location": "L851",
- "community": 303,
- "norm_label": "map a selected node id to ``(kind, is_received)``. mirrors the shape classi",
- "id": "ui_mount_rationale_851"
- },
{
"label": "Project equipment-config fields into the owned-equipment payload.",
"file_type": "rationale",
"source_file": "src/exlab_wizard/ui/mount.py",
"source_location": "L922",
- "community": 176,
+ "community": 151,
"norm_label": "project equipment-config fields into the owned-equipment payload.",
"id": "ui_mount_rationale_922"
},
@@ -82178,7 +87317,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/ui/mount.py",
"source_location": "L951",
- "community": 226,
+ "community": 210,
"norm_label": "derive a project payload from the on-disk project directory. ``node_id`` is",
"id": "ui_mount_rationale_951"
},
@@ -82187,7 +87326,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/ui/mount.py",
"source_location": "L985",
- "community": 226,
+ "community": 210,
"norm_label": "count immediate child directories of ``parent`` whose names start with ``pre",
"id": "ui_mount_rationale_985"
},
@@ -82196,7 +87335,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/ui/mount.py",
"source_location": "L1034",
- "community": 203,
+ "community": 188,
"norm_label": "mount / rebind the per-tab folderfeed and return current entries. uses ``ap",
"id": "ui_mount_rationale_1034"
},
@@ -82205,7 +87344,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/ui/mount.py",
"source_location": "L1095",
- "community": 203,
+ "community": 188,
"norm_label": "folderfeed fetch hook. skips when the tree just walked. runs the synchronou",
"id": "ui_mount_rationale_1095"
},
@@ -82214,7 +87353,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/ui/mount.py",
"source_location": "L1119",
- "community": 68,
+ "community": 55,
"norm_label": "dispatch a per-run context action to its backend surface. mirrors :func:`ap",
"id": "ui_mount_rationale_1119"
},
@@ -82223,7 +87362,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/ui/mount.py",
"source_location": "L1177",
- "community": 168,
+ "community": 161,
"norm_label": "bulk-clear every staged run whose sync job is verified. wired from the file",
"id": "ui_mount_rationale_1177"
},
@@ -82232,7 +87371,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/ui/mount.py",
"source_location": "L1222",
- "community": 168,
+ "community": 161,
"norm_label": "handle ``open in os`` / ``copy path`` / ``keep local`` file actions.",
"id": "ui_mount_rationale_1222"
},
@@ -82241,7 +87380,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/ui/mount.py",
"source_location": "L1304",
- "community": 175,
+ "community": 164,
"norm_label": "launch the host os's default opener for ``path``. returns false on platform",
"id": "ui_mount_rationale_1304"
},
@@ -82250,7 +87389,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/ui/mount.py",
"source_location": "L1332",
- "community": 57,
+ "community": 28,
"norm_label": "build the operations-panel rows from the live session store (t3). uses the",
"id": "ui_mount_rationale_1332"
},
@@ -82259,7 +87398,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/ui/mount.py",
"source_location": "L1344",
- "community": 57,
+ "community": 28,
"norm_label": "open the in-flight operations panel (frontend \u00a79.5). builds a fresh snapsho",
"id": "ui_mount_rationale_1344"
},
@@ -82268,7 +87407,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/ui/mount.py",
"source_location": "L1402",
- "community": 154,
+ "community": 28,
"norm_label": "resume a suspended session by re-opening its \u00a79.1 input dialog (t5). reads",
"id": "ui_mount_rationale_1402"
},
@@ -82277,7 +87416,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/ui/mount.py",
"source_location": "L1434",
- "community": 154,
+ "community": 40,
"norm_label": "open the \u00a79.1 escalation dialog; submit resumes, cancel confirms (t5). subm",
"id": "ui_mount_rationale_1434"
},
@@ -82286,7 +87425,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/ui/mount.py",
"source_location": "L1570",
- "community": 204,
+ "community": 82,
"norm_label": "return the settings sections the operator still needs to fill in. mirrors a",
"id": "ui_mount_rationale_1570"
},
@@ -82295,7 +87434,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/ui/mount.py",
"source_location": "L1603",
- "community": 69,
+ "community": 40,
"norm_label": "return the configured templates directory, or ``none``.",
"id": "ui_mount_rationale_1603"
},
@@ -82304,7 +87443,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/ui/mount.py",
"source_location": "L1611",
- "community": 69,
+ "community": 40,
"norm_label": "list template directory names of ``template_type`` under templates_dir.",
"id": "ui_mount_rationale_1611"
},
@@ -82313,7 +87452,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/ui/mount.py",
"source_location": "L1628",
- "community": 69,
+ "community": 63,
"norm_label": "map each ``template_type`` template name to its parsed copier questions. re",
"id": "ui_mount_rationale_1628"
},
@@ -82322,7 +87461,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/ui/mount.py",
"source_location": "L1661",
- "community": 119,
+ "community": 162,
"norm_label": "read the offline-catalogue projects (disconnected-workstation source). read",
"id": "ui_mount_rationale_1661"
},
@@ -82331,25 +87470,16 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/ui/mount.py",
"source_location": "L1695",
- "community": 266,
+ "community": 162,
"norm_label": "return the lims projects backing the project wizard's picker. tries the liv",
"id": "ui_mount_rationale_1695"
},
- {
- "label": "Best-effort close of a NiceGUI dialog (no-op when ``None`` / test mode).",
- "file_type": "rationale",
- "source_file": "src/exlab_wizard/ui/mount.py",
- "source_location": "L1795",
- "community": 194,
- "norm_label": "best-effort close of a nicegui dialog (no-op when ``none`` / test mode).",
- "id": "ui_mount_rationale_1795"
- },
{
"label": "Build a RunCreateRequest from the wizard state and run it.",
"file_type": "rationale",
"source_file": "src/exlab_wizard/ui/mount.py",
"source_location": "L1836",
- "community": 69,
+ "community": 99,
"norm_label": "build a runcreaterequest from the wizard state and run it.",
"id": "ui_mount_rationale_1836"
},
@@ -82358,7 +87488,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/ui/mount.py",
"source_location": "L1877",
- "community": 100,
+ "community": 99,
"norm_label": "drive a create_* call to completion and toast the outcome. when ``wizard_st",
"id": "ui_mount_rationale_1877"
},
@@ -82367,7 +87497,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/ui/mount.py",
"source_location": "L1920",
- "community": 100,
+ "community": 99,
"norm_label": "run the validator audit, swallowing failures to a warn log.",
"id": "ui_mount_rationale_1920"
},
@@ -82376,7 +87506,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/ui/pages/wizard_equipment.py",
"source_location": "L50",
- "community": 71,
+ "community": 260,
"norm_label": "mutable state for the in-flight add-equipment wizard.",
"id": "pages_wizard_equipment_rationale_50"
},
@@ -82385,7 +87515,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/ui/pages/wizard_equipment.py",
"source_location": "L85",
- "community": 71,
+ "community": 229,
"norm_label": "return true if the active step has the data it needs to advance. pure funct",
"id": "pages_wizard_equipment_rationale_85"
},
@@ -82394,7 +87524,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/ui/pages/wizard_equipment.py",
"source_location": "L122",
- "community": 71,
+ "community": 229,
"norm_label": "build the final equipmentconfig from the wizard's state. raises a pydantic",
"id": "pages_wizard_equipment_rationale_122"
},
@@ -82403,7 +87533,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/ui/pages/wizard_equipment.py",
"source_location": "L155",
- "community": 71,
+ "community": 260,
"norm_label": "render the self-contained add-equipment wizard. next / back navigation is h",
"id": "pages_wizard_equipment_rationale_155"
},
@@ -82412,7 +87542,7 @@
"file_type": "code",
"source_file": "src/exlab_wizard/ui/pages/settings.py",
"source_location": "L60",
- "community": 290,
+ "community": 248,
"norm_label": "_password_requiring_nas_equipment()",
"id": "pages_settings_password_requiring_nas_equipment"
},
@@ -82421,7 +87551,7 @@
"file_type": "code",
"source_file": "src/exlab_wizard/ui/pages/settings.py",
"source_location": "L839",
- "community": 290,
+ "community": 248,
"norm_label": "_render_nas_credentials_section()",
"id": "pages_settings_render_nas_credentials_section"
},
@@ -82430,7 +87560,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/ui/pages/settings.py",
"source_location": "L61",
- "community": 290,
+ "community": 248,
"norm_label": "return nas-mode equipment whose transport sources a keyring password. share",
"id": "pages_settings_rationale_61"
},
@@ -82439,7 +87569,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/ui/pages/settings.py",
"source_location": "L79",
- "community": 290,
+ "community": 248,
"norm_label": "return the visible section ids for ``config``. the nas-credentials section",
"id": "pages_settings_rationale_79"
},
@@ -82448,7 +87578,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/ui/pages/settings.py",
"source_location": "L99",
- "community": 182,
+ "community": 421,
"norm_label": "mutable state for the dialog.",
"id": "pages_settings_rationale_99"
},
@@ -82457,7 +87587,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/ui/pages/settings.py",
"source_location": "L108",
- "community": 182,
+ "community": 420,
"norm_label": "return the first section id in canonical order that's incomplete. the dynam",
"id": "pages_settings_rationale_108"
},
@@ -82466,7 +87596,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/ui/pages/settings.py",
"source_location": "L129",
- "community": 182,
+ "community": 220,
"norm_label": "compute the *save all* button label, including the badge count.",
"id": "pages_settings_rationale_129"
},
@@ -82475,7 +87605,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/ui/pages/settings.py",
"source_location": "L139",
- "community": 182,
+ "community": 220,
"norm_label": "return ``true`` when the sidebar should decorate ``section``.",
"id": "pages_settings_rationale_139"
},
@@ -82484,7 +87614,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/ui/pages/settings.py",
"source_location": "L145",
- "community": 182,
+ "community": 220,
"norm_label": "return ``true`` when ``section`` has uncommitted edits.",
"id": "pages_settings_rationale_145"
},
@@ -82493,7 +87623,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/ui/pages/settings.py",
"source_location": "L151",
- "community": 219,
+ "community": 178,
"norm_label": "return the editable deep-copy draft the settings dialog mutates. ``none`` (",
"id": "pages_settings_rationale_151"
},
@@ -82502,7 +87632,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/ui/pages/settings.py",
"source_location": "L162",
- "community": 219,
+ "community": 178,
"norm_label": "re-validate a mutated draft into a clean :class:`config`. the dialog's two-",
"id": "pages_settings_rationale_162"
},
@@ -82511,7 +87641,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/ui/pages/settings.py",
"source_location": "L180",
- "community": 360,
+ "community": 310,
"norm_label": "return the credential-row state seeding the lims password field. a password",
"id": "pages_settings_rationale_180"
},
@@ -82520,7 +87650,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/ui/pages/settings.py",
"source_location": "L211",
- "community": 182,
+ "community": 220,
"norm_label": "render the settings dialog. ``config`` is the live ``config.yaml`` model (o",
"id": "pages_settings_rationale_211"
},
@@ -82529,7 +87659,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/ui/pages/settings.py",
"source_location": "L401",
- "community": 289,
+ "community": 230,
"norm_label": "reusable chip / list editor bound to a draft string list (t7 / t10). mutate",
"id": "pages_settings_rationale_401"
},
@@ -82538,7 +87668,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/ui/pages/settings.py",
"source_location": "L492",
- "community": 289,
+ "community": 230,
"norm_label": "render the content for a single section, bound to ``draft``. every scalar f",
"id": "pages_settings_rationale_492"
},
@@ -82547,7 +87677,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/ui/pages/settings.py",
"source_location": "L713",
- "community": 289,
+ "community": 230,
"norm_label": "render the equipment list + a full add-equipment sub-form. adding an entry",
"id": "pages_settings_rationale_713"
},
@@ -82556,7 +87686,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/ui/pages/settings.py",
"source_location": "L847",
- "community": 290,
+ "community": 248,
"norm_label": "render one keyring-credential row + test-connection panel per equipment. rc",
"id": "pages_settings_rationale_847"
},
@@ -82574,7 +87704,7 @@
"file_type": "code",
"source_file": "src/exlab_wizard/config/models.py",
"source_location": "L247",
- "community": 148,
+ "community": 111,
"norm_label": "rclonesmbtransport",
"id": "config_models_rclonesmbtransport"
},
@@ -82583,7 +87713,7 @@
"file_type": "code",
"source_file": "src/exlab_wizard/config/models.py",
"source_location": "L276",
- "community": 112,
+ "community": 212,
"norm_label": "transport_requires_keyring_password()",
"id": "config_models_transport_requires_keyring_password"
},
@@ -82592,7 +87722,7 @@
"file_type": "code",
"source_file": "src/exlab_wizard/config/models.py",
"source_location": "L288",
- "community": 79,
+ "community": 378,
"norm_label": "orchestratorstagingtransport",
"id": "config_models_orchestratorstagingtransport"
},
@@ -82601,7 +87731,7 @@
"file_type": "code",
"source_file": "src/exlab_wizard/config/models.py",
"source_location": "L345",
- "community": 79,
+ "community": 38,
"norm_label": "_sync_mode_dictates_transport()",
"id": "config_models_sync_mode_dictates_transport"
},
@@ -82610,7 +87740,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/config/models.py",
"source_location": "L74",
- "community": 79,
+ "community": 38,
"norm_label": "return ``datetime.time`` for a strict zero-padded ``hh:mm`` string. the wiz",
"id": "config_models_rationale_74"
},
@@ -82637,7 +87767,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/config/models.py",
"source_location": "L129",
- "community": 166,
+ "community": 4,
"norm_label": "one operator-defined extra readme field. backend spec \u00a79, \u00a710.",
"id": "config_models_rationale_129"
},
@@ -82646,7 +87776,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/config/models.py",
"source_location": "L170",
- "community": 79,
+ "community": 38,
"norm_label": "``readme:`` block. lab-policy fields layered on top of the core set.",
"id": "config_models_rationale_170"
},
@@ -82655,7 +87785,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/config/models.py",
"source_location": "L183",
- "community": 80,
+ "community": 89,
"norm_label": "one ``{days, from, to}`` window. backend spec \u00a79.",
"id": "config_models_rationale_183"
},
@@ -82664,7 +87794,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/config/models.py",
"source_location": "L206",
- "community": 134,
+ "community": 1,
"norm_label": "``bandwidth:`` sub-block on a transport.",
"id": "config_models_rationale_206"
},
@@ -82682,7 +87812,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/config/models.py",
"source_location": "L248",
- "community": 148,
+ "community": 111,
"norm_label": "``transport:`` block for an smb share with password auth. the wizard invoke",
"id": "config_models_rationale_248"
},
@@ -82691,7 +87821,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/config/models.py",
"source_location": "L277",
- "community": 112,
+ "community": 212,
"norm_label": "return true when ``transport`` sources its credential from the keyring. bot",
"id": "config_models_rationale_277"
},
@@ -82700,7 +87830,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/config/models.py",
"source_location": "L289",
- "community": 79,
+ "community": 378,
"norm_label": "``orchestrator_staging_transport:`` -- staging hop only. backend spec \u00a713.",
"id": "config_models_rationale_289"
},
@@ -82718,7 +87848,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/config/models.py",
"source_location": "L376",
- "community": 351,
+ "community": 37,
"norm_label": "``nas_cleanup:`` block. local-copy retention after nas verify.",
"id": "config_models_rationale_376"
},
@@ -82727,7 +87857,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/config/models.py",
"source_location": "L392",
- "community": 271,
+ "community": 19,
"norm_label": "``logging:`` block. central app-log rotation + level.",
"id": "config_models_rationale_392"
},
@@ -82736,7 +87866,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/config/models.py",
"source_location": "L423",
- "community": 370,
+ "community": 38,
"norm_label": "``operators:`` block. optional case-sensitive allowlist.",
"id": "config_models_rationale_423"
},
@@ -82745,7 +87875,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/config/models.py",
"source_location": "L455",
- "community": 133,
+ "community": 211,
"norm_label": "``validator:`` block. content-scan tuning. backend spec \u00a78.1.1, \u00a711.8.",
"id": "config_models_rationale_455"
},
@@ -82754,7 +87884,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/config/models.py",
"source_location": "L480",
- "community": 79,
+ "community": 423,
"norm_label": "``plugins:`` block. master opt-in for network-declaring plugins.",
"id": "config_models_rationale_480"
},
@@ -82763,7 +87893,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/config/models.py",
"source_location": "L497",
- "community": 166,
+ "community": 292,
"norm_label": "``sync:`` block. nas sync engine kill-switch + retry / quiescence policy.",
"id": "config_models_rationale_497"
},
@@ -82772,7 +87902,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/config/models.py",
"source_location": "L514",
- "community": 8,
+ "community": 13,
"norm_label": "``orchestrator.staging_cleanup:`` sub-block. backend spec \u00a713.7.",
"id": "config_models_rationale_514"
},
@@ -82799,7 +87929,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/config/models.py",
"source_location": "L593",
- "community": 250,
+ "community": 261,
"norm_label": "return a copy of ``config`` with ``equipment`` appended. the single place t",
"id": "config_models_rationale_593"
},
@@ -82808,7 +87938,7 @@
"file_type": "code",
"source_file": "src/exlab_wizard/constants/enums.py",
"source_location": "L159",
- "community": 19,
+ "community": 78,
"norm_label": "transporttype",
"id": "constants_enums_transporttype"
},
@@ -82817,7 +87947,7 @@
"file_type": "code",
"source_file": "src/exlab_wizard/constants/enums.py",
"source_location": "L214",
- "community": 19,
+ "community": 29,
"norm_label": "orchestratortransporttype",
"id": "constants_enums_orchestratortransporttype"
},
@@ -82826,7 +87956,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/constants/enums.py",
"source_location": "L188",
- "community": 19,
+ "community": 29,
"norm_label": "how nas staging directories are eventually purged. backend spec \u00a713.7.",
"id": "constants_enums_rationale_188"
},
@@ -82835,7 +87965,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/constants/enums.py",
"source_location": "L195",
- "community": 15,
+ "community": 21,
"norm_label": "plugin invocation outcome reported by the host. backend spec \u00a76.2.4.",
"id": "constants_enums_rationale_195"
},
@@ -82844,7 +87974,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/constants/enums.py",
"source_location": "L205",
- "community": 19,
+ "community": 29,
"norm_label": "whether a creation.json describes a project root or a run directory. stored",
"id": "constants_enums_rationale_205"
},
@@ -82853,7 +87983,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/constants/enums.py",
"source_location": "L215",
- "community": 19,
+ "community": 29,
"norm_label": "how the orchestrator delivered run data to the staging area. distinct from",
"id": "constants_enums_rationale_215"
},
@@ -82862,7 +87992,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/constants/enums.py",
"source_location": "L226",
- "community": 19,
+ "community": 29,
"norm_label": "allowed input types for readme field declarations. backend spec \u00a710.",
"id": "constants_enums_rationale_226"
},
@@ -82871,7 +88001,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/constants/enums.py",
"source_location": "L236",
- "community": 19,
+ "community": 29,
"norm_label": "day-of-week values for nas sync bandwidth windows. backend spec \u00a77.1.",
"id": "constants_enums_rationale_236"
},
@@ -82880,7 +88010,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/constants/enums.py",
"source_location": "L248",
- "community": 19,
+ "community": 29,
"norm_label": "whether a wizard session creates a project root or a run directory. mirrors",
"id": "constants_enums_rationale_248"
},
@@ -82889,7 +88019,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/constants/enums.py",
"source_location": "L260",
- "community": 19,
+ "community": 29,
"norm_label": "outcome of a session-store transition. backend spec \u00a74.7.",
"id": "constants_enums_rationale_260"
},
@@ -82898,7 +88028,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/constants/enums.py",
"source_location": "L267",
- "community": 398,
+ "community": 29,
"norm_label": "kind discriminator for validator audit scopes. backend spec \u00a78.1. values ma",
"id": "constants_enums_rationale_267"
},
@@ -82907,7 +88037,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/constants/enums.py",
"source_location": "L297",
- "community": 19,
+ "community": 29,
"norm_label": "normalized platform tag used for os-conditional path dispatch.",
"id": "constants_enums_rationale_297"
},
@@ -82916,7 +88046,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/constants/enums.py",
"source_location": "L305",
- "community": 19,
+ "community": 29,
"norm_label": "next action returned by ``paths.setup_state_next_action``. backend spec \u00a74.",
"id": "constants_enums_rationale_305"
},
@@ -82925,7 +88055,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/constants/enums.py",
"source_location": "L319",
- "community": 19,
+ "community": 29,
"norm_label": "in-process state of a nas sync job handle as observed by callers. distinct",
"id": "constants_enums_rationale_319"
},
@@ -82934,7 +88064,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/constants/enums.py",
"source_location": "L331",
- "community": 19,
+ "community": 29,
"norm_label": "origin of a plugin record. backend spec \u00a76.1.1.",
"id": "constants_enums_rationale_331"
},
@@ -82943,7 +88073,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/constants/enums.py",
"source_location": "L338",
- "community": 83,
+ "community": 79,
"norm_label": "ui-layer project status displayed in the tree view. distinct from :class:`l",
"id": "constants_enums_rationale_338"
},
@@ -82952,7 +88082,7 @@
"file_type": "code",
"source_file": "src/exlab_wizard/constants/keyring.py",
"source_location": "L26",
- "community": 2,
+ "community": 43,
"norm_label": "keyring_nas_username()",
"id": "constants_keyring_keyring_nas_username"
},
@@ -82961,7 +88091,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/constants/keyring.py",
"source_location": "L27",
- "community": 2,
+ "community": 43,
"norm_label": "return the keyring username for the given equipment's nas credential. equip",
"id": "constants_keyring_rationale_27"
},
@@ -82970,7 +88100,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/tray/main.py",
"source_location": "L358",
- "community": 114,
+ "community": 110,
"norm_label": "server-only loop. boots the fastapi server, prints the published port, waits",
"id": "tray_main_rationale_358"
},
@@ -82979,7 +88109,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/tray/main.py",
"source_location": "L391",
- "community": 114,
+ "community": 110,
"norm_label": "``exlab-wizard-tray`` entry point. the main thread runs pystray; the fastap",
"id": "tray_main_rationale_391"
},
@@ -82988,7 +88118,7 @@
"file_type": "code",
"source_file": "src/exlab_wizard/tray/dependencies.py",
"source_location": "L624",
- "community": 14,
+ "community": 43,
"norm_label": "_nas_keyring_password()",
"id": "tray_dependencies_nas_keyring_password"
},
@@ -82997,7 +88127,7 @@
"file_type": "code",
"source_file": "src/exlab_wizard/tray/dependencies.py",
"source_location": "L643",
- "community": 48,
+ "community": 43,
"norm_label": "_check_nas_passwords_present()",
"id": "tray_dependencies_check_nas_passwords_present"
},
@@ -83006,7 +88136,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/tray/dependencies.py",
"source_location": "L48",
- "community": 14,
+ "community": 22,
"norm_label": "return a populated :class:`appdependencies` for the live tray. every per-co",
"id": "tray_dependencies_rationale_48"
},
@@ -83015,7 +88145,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/tray/dependencies.py",
"source_location": "L168",
- "community": 97,
+ "community": 101,
"norm_label": "push a freshly saved ``config.yaml`` into the running components. replaces",
"id": "tray_dependencies_rationale_168"
},
@@ -83024,7 +88154,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/tray/dependencies.py",
"source_location": "L271",
- "community": 97,
+ "community": 101,
"norm_label": "return the ``(endpoint, email)`` pair that defines a lims client. trailing",
"id": "tray_dependencies_rationale_271"
},
@@ -83033,7 +88163,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/tray/dependencies.py",
"source_location": "L283",
- "community": 97,
+ "community": 101,
"norm_label": "re-derive the plugin-host status counters after a rebuild. mirrors the boot",
"id": "tray_dependencies_rationale_283"
},
@@ -83042,7 +88172,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/tray/dependencies.py",
"source_location": "L298",
- "community": 14,
+ "community": 22,
"norm_label": "rebuild ``deps.lims_client`` for a changed endpoint / email. builds a fresh",
"id": "tray_dependencies_rationale_298"
},
@@ -83051,7 +88181,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/tray/dependencies.py",
"source_location": "L319",
- "community": 14,
+ "community": 22,
"norm_label": "reconfigure the nas-sync client in place, or build it fresh. returns ``true",
"id": "tray_dependencies_rationale_319"
},
@@ -83060,7 +88190,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/tray/dependencies.py",
"source_location": "L350",
- "community": 14,
+ "community": 22,
"norm_label": "reconfigure the quiescence poller in place, or build it fresh. returns ``tr",
"id": "tray_dependencies_rationale_350"
},
@@ -83069,7 +88199,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/tray/dependencies.py",
"source_location": "L378",
- "community": 14,
+ "community": 22,
"norm_label": "schedule ``nas_sync.init()`` / ``poller.start()`` on the running loop. used",
"id": "tray_dependencies_rationale_378"
},
@@ -83078,7 +88208,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/tray/dependencies.py",
"source_location": "L403",
- "community": 14,
+ "community": 22,
"norm_label": "run ``coro`` on the running loop, logging failures; no-op if loop-less.",
"id": "tray_dependencies_rationale_403"
},
@@ -83087,7 +88217,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/tray/dependencies.py",
"source_location": "L416",
- "community": 14,
+ "community": 22,
"norm_label": "run ``fn(*args, **kwargs)`` swallowing exceptions with a warn log.",
"id": "tray_dependencies_rationale_416"
},
@@ -83096,7 +88226,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/tray/dependencies.py",
"source_location": "L443",
- "community": 14,
+ "community": 22,
"norm_label": "derive ``(validator_config, equipment_roots, staging_root)`` from config. s",
"id": "tray_dependencies_rationale_443"
},
@@ -83105,7 +88235,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/tray/dependencies.py",
"source_location": "L560",
- "community": 14,
+ "community": 22,
"norm_label": "build the lims/nas secret store with an optional fallback passphrase. when",
"id": "tray_dependencies_rationale_560"
},
@@ -83114,7 +88244,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/tray/dependencies.py",
"source_location": "L577",
- "community": 14,
+ "community": 22,
"norm_label": "return the stored lims password, or ``none`` if absent/unavailable. the cre",
"id": "tray_dependencies_rationale_577"
},
@@ -83123,7 +88253,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/tray/dependencies.py",
"source_location": "L625",
- "community": 14,
+ "community": 43,
"norm_label": "return the stored nas password for ``equipment_id`` or ``none``. the creden",
"id": "tray_dependencies_rationale_625"
},
@@ -83132,7 +88262,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/tray/dependencies.py",
"source_location": "L644",
- "community": 48,
+ "community": 43,
"norm_label": "return the set of nas-mode equipment ids that have a keyring entry. rclone-",
"id": "tray_dependencies_rationale_644"
},
@@ -83141,7 +88271,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/tray/dependencies.py",
"source_location": "L668",
- "community": 48,
+ "community": 43,
"norm_label": "build the ``deps.equipment_probe`` callable. rclone-only nas sync migration",
"id": "tray_dependencies_rationale_668"
},
@@ -83150,7 +88280,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/tray/dependencies.py",
"source_location": "L757",
- "community": 14,
+ "community": 22,
"norm_label": "build the :class:`nassyncclient` -- the public nas-sync surface. the client",
"id": "tray_dependencies_rationale_757"
},
@@ -83159,7 +88289,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/tray/dependencies.py",
"source_location": "L804",
- "community": 14,
+ "community": 22,
"norm_label": "build the orchestrator-only ``sync_state.json`` writer. operator-free per-f",
"id": "tray_dependencies_rationale_804"
},
@@ -83168,7 +88298,7 @@
"file_type": "code",
"source_file": "src/exlab_wizard/api/_dependencies.py",
"source_location": "L51",
- "community": 261,
+ "community": 82,
"norm_label": "nas_password_present()",
"id": "api_dependencies_nas_password_present"
},
@@ -83177,7 +88307,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/api/_dependencies.py",
"source_location": "L76",
- "community": 127,
+ "community": 82,
"norm_label": "return ``app.state.dependencies`` or raise a structured 503. a missing depe",
"id": "api_dependencies_rationale_76"
},
@@ -83186,7 +88316,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/api/_dependencies.py",
"source_location": "L96",
- "community": 261,
+ "community": 82,
"norm_label": "return ``deps.controller`` or raise a structured 503. used by the routes th",
"id": "api_dependencies_rationale_96"
},
@@ -83195,7 +88325,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/api/setup.py",
"source_location": "L73",
- "community": 7,
+ "community": 112,
"norm_label": "``get /setup/status`` response. backend spec \u00a74.9.3.",
"id": "api_setup_rationale_73"
},
@@ -83204,7 +88334,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/api/setup.py",
"source_location": "L84",
- "community": 7,
+ "community": 112,
"norm_label": "``post /setup/test-lims`` request body. either reference the currently-conf",
"id": "api_setup_rationale_84"
},
@@ -83213,7 +88343,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/api/setup.py",
"source_location": "L100",
- "community": 7,
+ "community": 112,
"norm_label": "``post /setup/test-equipment`` request body. rclone-only nas sync migration",
"id": "api_setup_rationale_100"
},
@@ -83222,7 +88352,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/api/setup.py",
"source_location": "L116",
- "community": 7,
+ "community": 112,
"norm_label": "common ``ok``/``reason`` payload for the diagnostics endpoints.",
"id": "api_setup_rationale_116"
},
@@ -83231,7 +88361,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/api/setup.py",
"source_location": "L134",
- "community": 7,
+ "community": 112,
"norm_label": "``post /setup/autostart`` request body. backend spec \u00a74.9.5 step 0.",
"id": "api_setup_rationale_134"
},
@@ -83240,7 +88370,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/api/setup.py",
"source_location": "L142",
- "community": 7,
+ "community": 112,
"norm_label": "``post /setup/autostart`` response.",
"id": "api_setup_rationale_142"
},
@@ -83249,7 +88379,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/api/setup.py",
"source_location": "L156",
- "community": 1,
+ "community": 95,
"norm_label": "evaluate the \u00a74.9.1 state for the app's current dependencies. the dependenc",
"id": "api_setup_rationale_156"
},
@@ -83258,7 +88388,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/api/setup.py",
"source_location": "L173",
- "community": 7,
+ "community": 331,
"norm_label": "return true when ``state`` should gate creation flows. per \u00a74.9.4 the soft",
"id": "api_setup_rationale_173"
},
@@ -83267,7 +88397,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/api/setup.py",
"source_location": "L183",
- "community": 7,
+ "community": 331,
"norm_label": "fastapi dependency that gates a route on setup state. looks up the app's bo",
"id": "api_setup_rationale_183"
},
@@ -83276,7 +88406,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/api/setup.py",
"source_location": "L222",
- "community": 7,
+ "community": 94,
"norm_label": "construct the ``/setup/*`` router. always-available endpoints.",
"id": "api_setup_rationale_222"
},
@@ -83285,7 +88415,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/api/setup.py",
"source_location": "L313",
- "community": 7,
+ "community": 112,
"norm_label": "build a ``proberesult`` from a probe's plain-dict return value. wired throu",
"id": "api_setup_rationale_313"
},
@@ -83294,7 +88424,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/api/setup.py",
"source_location": "L330",
- "community": 7,
+ "community": 112,
"norm_label": "resolve the equipment to probe by id through ``deps.config``. rclone-only n",
"id": "api_setup_rationale_330"
},
@@ -83303,7 +88433,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/api/setup.py",
"source_location": "L349",
- "community": 7,
+ "community": 112,
"norm_label": "invoke a probe that may be sync or async; await the result. the probes are",
"id": "api_setup_rationale_349"
},
@@ -83312,7 +88442,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/api/app.py",
"source_location": "L261",
- "community": 1,
+ "community": 94,
"norm_label": "build the fastapi app. backend spec \u00a74.6. ``config``: optional pre-loaded `",
"id": "api_app_rationale_261"
},
@@ -83321,7 +88451,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/api/app.py",
"source_location": "L340",
- "community": 51,
+ "community": 67,
"norm_label": "background task that re-runs the validator audit every interval. diffs the",
"id": "api_app_rationale_340"
},
@@ -83330,7 +88460,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/api/app.py",
"source_location": "L384",
- "community": 51,
+ "community": 67,
"norm_label": "return ``(added, removed, changed)`` keyed on ``(rule, offending_path)``. t",
"id": "api_app_rationale_384"
},
@@ -83339,7 +88469,7 @@
"file_type": "code",
"source_file": "src/exlab_wizard/sync/nas_client.py",
"source_location": "L117",
- "community": 53,
+ "community": 111,
"norm_label": "_remote_name_for()",
"id": "sync_nas_client_remote_name_for"
},
@@ -83348,7 +88478,7 @@
"file_type": "code",
"source_file": "src/exlab_wizard/sync/nas_client.py",
"source_location": "L128",
- "community": 53,
+ "community": 3,
"norm_label": "_build_target_for()",
"id": "sync_nas_client_build_target_for"
},
@@ -83357,7 +88487,7 @@
"file_type": "code",
"source_file": "src/exlab_wizard/sync/nas_client.py",
"source_location": "L143",
- "community": 148,
+ "community": 111,
"norm_label": "_resolve_env_for_equipment()",
"id": "sync_nas_client_resolve_env_for_equipment"
},
@@ -83366,7 +88496,7 @@
"file_type": "code",
"source_file": "src/exlab_wizard/sync/nas_client.py",
"source_location": "L189",
- "community": 134,
+ "community": 1,
"norm_label": "_build_transport_driver()",
"id": "sync_nas_client_build_transport_driver"
},
@@ -83375,7 +88505,7 @@
"file_type": "code",
"source_file": "src/exlab_wizard/sync/nas_client.py",
"source_location": "L846",
- "community": 53,
+ "community": 3,
"norm_label": "._reconcile_synced_files()",
"id": "sync_nas_client_nassyncclient_reconcile_synced_files"
},
@@ -83384,7 +88514,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/sync/nas_client.py",
"source_location": "L99",
- "community": 174,
+ "community": 3,
"norm_label": "lightweight handle returned by :meth:`nassyncclient.enqueue`. ``job_id`` is",
"id": "sync_nas_client_rationale_99"
},
@@ -83393,7 +88523,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/sync/nas_client.py",
"source_location": "L118",
- "community": 53,
+ "community": 111,
"norm_label": "return the inline rclone remote name used for ``equipment``. the remote nam",
"id": "sync_nas_client_rationale_118"
},
@@ -83402,7 +88532,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/sync/nas_client.py",
"source_location": "L133",
- "community": 53,
+ "community": 3,
"norm_label": "compose the rclone destination string for a run directory.",
"id": "sync_nas_client_rationale_133"
},
@@ -83411,7 +88541,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/sync/nas_client.py",
"source_location": "L147",
- "community": 148,
+ "community": 111,
"norm_label": "look up the password, obscure it, build the rclone env. returns ``(env, mas",
"id": "sync_nas_client_rationale_147"
},
@@ -83420,7 +88550,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/sync/nas_client.py",
"source_location": "L193",
- "community": 134,
+ "community": 1,
"norm_label": "return a ``(driver, push_callable, check_callable)`` triple. both supported",
"id": "sync_nas_client_rationale_193"
},
@@ -83429,7 +88559,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/sync/nas_client.py",
"source_location": "L258",
- "community": 18,
+ "community": 8,
"norm_label": "durable, per-equipment nas sync queue with pre-sync gate. backend spec \u00a77.1",
"id": "sync_nas_client_rationale_258"
},
@@ -83438,7 +88568,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/sync/nas_client.py",
"source_location": "L314",
- "community": 446,
+ "community": 8,
"norm_label": "swap the cached config + equipment map in place (no relaunch). the ``eq",
"id": "sync_nas_client_rationale_314"
},
@@ -83447,7 +88577,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/sync/nas_client.py",
"source_location": "L329",
- "community": 286,
+ "community": 8,
"norm_label": "open the queue and start the worker task. backend spec \u00a77.1.2.",
"id": "sync_nas_client_rationale_329"
},
@@ -83456,7 +88586,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/sync/nas_client.py",
"source_location": "L335",
- "community": 188,
+ "community": 3,
"norm_label": "stop the worker and close the queue db. idempotent.",
"id": "sync_nas_client_rationale_335"
},
@@ -83465,7 +88595,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/sync/nas_client.py",
"source_location": "L352",
- "community": 272,
+ "community": 3,
"norm_label": "pre-sync gate -> if hard-tier finding without override, mark ``sync_stat",
"id": "sync_nas_client_rationale_352"
},
@@ -83474,7 +88604,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/sync/nas_client.py",
"source_location": "L442",
- "community": 452,
+ "community": 8,
"norm_label": "return the queue state of the job for ``run_path``. ``\"none\"`` when no",
"id": "sync_nas_client_rationale_442"
},
@@ -83483,7 +88613,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/sync/nas_client.py",
"source_location": "L453",
- "community": 450,
+ "community": 8,
"norm_label": "re-arm a ``failed`` job. backend spec \u00a77.1.5 (problems-tab retry).",
"id": "sync_nas_client_rationale_453"
},
@@ -83492,7 +88622,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/sync/nas_client.py",
"source_location": "L458",
- "community": 188,
+ "community": 3,
"norm_label": "re-run ``rclone check --download`` against the configured remote. used",
"id": "sync_nas_client_rationale_458"
},
@@ -83501,7 +88631,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/sync/nas_client.py",
"source_location": "L503",
- "community": 286,
+ "community": 8,
"norm_label": "pick the next due job and drive it through the state machine.",
"id": "sync_nas_client_rationale_503"
},
@@ -83510,7 +88640,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/sync/nas_client.py",
"source_location": "L523",
- "community": 286,
+ "community": 8,
"norm_label": "return the next queued row whose backoff has passed (or none).",
"id": "sync_nas_client_rationale_523"
},
@@ -83519,7 +88649,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/sync/nas_client.py",
"source_location": "L534",
- "community": 53,
+ "community": 3,
"norm_label": "drive ``job`` from queued through one transport+verify pass. worker sem",
"id": "sync_nas_client_rationale_534"
},
@@ -83528,7 +88658,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/sync/nas_client.py",
"source_location": "L755",
- "community": 53,
+ "community": 3,
"norm_label": "resolve the push callable for ``equipment.transport``. tests can inject",
"id": "sync_nas_client_rationale_755"
},
@@ -83537,7 +88667,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/sync/nas_client.py",
"source_location": "L767",
- "community": 188,
+ "community": 3,
"norm_label": "resolve the ``rclone check`` callable for ``equipment.transport``. test",
"id": "sync_nas_client_rationale_767"
},
@@ -83546,7 +88676,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/sync/nas_client.py",
"source_location": "L784",
- "community": 53,
+ "community": 3,
"norm_label": "compute the sha-256 hex digest of each file in ``files``. slot a of the",
"id": "sync_nas_client_rationale_784"
},
@@ -83555,7 +88685,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/sync/nas_client.py",
"source_location": "L823",
- "community": 53,
+ "community": 3,
"norm_label": "translate a transport failure into a queue update.",
"id": "sync_nas_client_rationale_823"
},
@@ -83564,7 +88694,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/sync/nas_client.py",
"source_location": "L852",
- "community": 53,
+ "community": 3,
"norm_label": "credit every individually-verified file in ``sync_state.json``. per-fil",
"id": "sync_nas_client_rationale_852"
},
@@ -83573,7 +88703,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/sync/nas_client.py",
"source_location": "L913",
- "community": 641,
+ "community": 670,
"norm_label": "return the ``(st_size, st_mtime_ns)`` signature for ``path``.",
"id": "sync_nas_client_rationale_913"
},
@@ -83582,7 +88712,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/sync/nas_client.py",
"source_location": "L922",
- "community": 642,
+ "community": 671,
"norm_label": "write a transport ``--files-from`` list and return its path. one run-re",
"id": "sync_nas_client_rationale_922"
},
@@ -83591,7 +88721,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/sync/nas_client.py",
"source_location": "L941",
- "community": 188,
+ "community": 3,
"norm_label": "apply the \u00a77.1.6 interlocks; if all pass, run the cleanup. operator-fre",
"id": "sync_nas_client_rationale_941"
},
@@ -83600,7 +88730,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/sync/nas_client.py",
"source_location": "L1007",
- "community": 246,
+ "community": 3,
"norm_label": "delete ``run_path`` data files honoring ``retain_cache`` and ``keep_local``.",
"id": "sync_nas_client_rationale_1007"
},
@@ -83609,7 +88739,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/sync/nas_client.py",
"source_location": "L1024",
- "community": 272,
+ "community": 3,
"norm_label": "return the equipment id for a run path. prefers an explicit equipment i",
"id": "sync_nas_client_rationale_1024"
},
@@ -83618,7 +88748,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/sync/nas_client.py",
"source_location": "L1047",
- "community": 643,
+ "community": 672,
"norm_label": "return the recorded nas-side path from a creation payload.",
"id": "sync_nas_client_rationale_1047"
},
@@ -83627,7 +88757,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/sync/nas_client.py",
"source_location": "L1051",
- "community": 272,
+ "community": 3,
"norm_label": "mutate ``creation.json`` ``sync_status`` to ``blocked_by_validation``.",
"id": "sync_nas_client_rationale_1051"
},
@@ -83636,7 +88766,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/sync/nas_client.py",
"source_location": "L1060",
- "community": 53,
+ "community": 3,
"norm_label": "mutate ``creation.json`` ``sync_status`` to ``synced``. backend spec \u00a77.1.4.",
"id": "sync_nas_client_rationale_1060"
},
@@ -83645,7 +88775,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/sync/nas_client.py",
"source_location": "L1073",
- "community": 188,
+ "community": 3,
"norm_label": "mutate ``creation.json`` ``sync_status`` to ``cleaned``. backend spec \u00a77.1.10.",
"id": "sync_nas_client_rationale_1073"
},
@@ -83654,7 +88784,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/sync/verifier.py",
"source_location": "L118",
- "community": 265,
+ "community": 293,
"norm_label": "run ``rclone check --download`` over ``files_from`` and translate. rais",
"id": "sync_verifier_rationale_118"
},
@@ -83663,7 +88793,7 @@
"file_type": "code",
"source_file": "src/exlab_wizard/sync/transports/rclone.py",
"source_location": "L135",
- "community": 148,
+ "community": 111,
"norm_label": "build_rclone_env()",
"id": "transports_rclone_build_rclone_env"
},
@@ -83672,7 +88802,7 @@
"file_type": "code",
"source_file": "src/exlab_wizard/sync/transports/rclone.py",
"source_location": "L173",
- "community": 189,
+ "community": 111,
"norm_label": "pass_env_keys_for()",
"id": "transports_rclone_pass_env_keys_for"
},
@@ -83681,7 +88811,7 @@
"file_type": "code",
"source_file": "src/exlab_wizard/sync/transports/rclone.py",
"source_location": "L188",
- "community": 189,
+ "community": 425,
"norm_label": "obscure()",
"id": "transports_rclone_obscure"
},
@@ -83690,7 +88820,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/sync/transports/rclone.py",
"source_location": "L70",
- "community": 90,
+ "community": 104,
"norm_label": "map a (returncode, stderr) into a :class:`transporterrorkind`. auth failure",
"id": "transports_rclone_rationale_70"
},
@@ -83699,7 +88829,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/sync/transports/rclone.py",
"source_location": "L94",
- "community": 189,
+ "community": 232,
"norm_label": "parsed result of a ``rclone check --combined`` run. the combined-output for",
"id": "transports_rclone_rationale_94"
},
@@ -83708,7 +88838,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/sync/transports/rclone.py",
"source_location": "L117",
- "community": 90,
+ "community": 232,
"norm_label": "outcome of ``rclone about --json``. surfaces as the equipment-prob",
"id": "transports_rclone_rationale_117"
},
@@ -83717,7 +88847,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/sync/transports/rclone.py",
"source_location": "L174",
- "community": 189,
+ "community": 111,
"norm_label": "return the env-key tuple that must be redacted from subprocess logs. the on",
"id": "transports_rclone_rationale_174"
},
@@ -83726,7 +88856,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/sync/transports/rclone.py",
"source_location": "L189",
- "community": 189,
+ "community": 425,
"norm_label": "return the rclone-obscured form of ``password``. rclone refuses raw passwor",
"id": "transports_rclone_rationale_189"
},
@@ -83735,7 +88865,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/sync/transports/rclone.py",
"source_location": "L221",
- "community": 38,
+ "community": 68,
"norm_label": "rclone transport driver. backend spec \u00a77.1.3.",
"id": "transports_rclone_rationale_221"
},
@@ -83744,7 +88874,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/sync/transports/rclone.py",
"source_location": "L236",
- "community": 90,
+ "community": 104,
"norm_label": "run ``rclone copy --checksum`` from ``local`` to ``remote``. ``remote``",
"id": "transports_rclone_rationale_236"
},
@@ -83753,7 +88883,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/sync/transports/rclone.py",
"source_location": "L286",
- "community": 188,
+ "community": 104,
"norm_label": "run ``rclone check --download --files-from --combined`` over ``files_from``.",
"id": "transports_rclone_rationale_286"
},
@@ -83762,7 +88892,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/sync/transports/rclone.py",
"source_location": "L365",
- "community": 90,
+ "community": 104,
"norm_label": "run ``rclone about --json`` -- the equipment probe. used by th",
"id": "transports_rclone_rationale_365"
},
@@ -83771,7 +88901,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/sync/transports/rclone.py",
"source_location": "L401",
- "community": 189,
+ "community": 232,
"norm_label": "parse ``rclone check --combined`` output into a :class:`checkresult`. each",
"id": "transports_rclone_rationale_401"
},
@@ -83780,7 +88910,7 @@
"file_type": "rationale",
"source_file": "src/exlab_wizard/sync/transports/_run.py",
"source_location": "L36",
- "community": 147,
+ "community": 167,
"norm_label": "launch ``cmd`` and return ``(returncode, stdout, stderr)`` as text. ``env``",
"id": "transports_run_rationale_36"
},
@@ -83789,7 +88919,7 @@
"file_type": "document",
"source_file": "tests/docker/README.md",
"source_location": "L87",
- "community": 140,
+ "community": 145,
"norm_label": "`rclone_sftp` transport",
"id": "docker_readme_rclone_sftp_transport"
},
@@ -83798,7 +88928,7 @@
"file_type": "document",
"source_file": "tests/docker/README.md",
"source_location": "L103",
- "community": 140,
+ "community": 145,
"norm_label": "`rclone_smb` transport",
"id": "docker_readme_rclone_smb_transport"
},
@@ -83807,7 +88937,7 @@
"file_type": "document",
"source_file": "docs/UX_INTERACTIONS.md",
"source_location": "L55",
- "community": 262,
+ "community": 266,
"norm_label": "nas credentials",
"id": "docs_ux_interactions_nas_credentials"
},
@@ -83816,7 +88946,7 @@
"file_type": "document",
"source_file": "design_specs/design_spec_sections/07_Sync_and_Database_Integration.md",
"source_location": "L63",
- "community": 37,
+ "community": 45,
"norm_label": "7.1.3 transport drivers",
"id": "design_spec_sections_07_sync_and_database_integration_7_1_3_transport_drivers"
},
@@ -83825,7 +88955,7 @@
"file_type": "document",
"source_file": "design_specs/design_spec_sections/07_Sync_and_Database_Integration.md",
"source_location": "L73",
- "community": 37,
+ "community": 45,
"norm_label": "7.1.4 hash verification",
"id": "design_spec_sections_07_sync_and_database_integration_7_1_4_hash_verification"
}
@@ -88957,6 +94087,16 @@
"source": "tests_unit_ui_test_components_py",
"target": "ui_test_components_test_sync_status_unknown_raises"
},
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/ui/test_components.py",
+ "source_location": "L178",
+ "weight": 1.0,
+ "source": "tests_unit_ui_test_components_py",
+ "target": "ui_test_components_test_sync_legend_entries_cover_every_state",
+ "confidence_score": 1.0
+ },
{
"relation": "contains",
"confidence": "EXTRACTED",
@@ -89477,6 +94617,36 @@
"source": "tests_unit_ui_test_components_py",
"target": "ui_test_components_test_to_nicegui_nodes_equipment_and_project_have_no_sync_icon"
},
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/ui/test_components.py",
+ "source_location": "L888",
+ "weight": 1.0,
+ "source": "tests_unit_ui_test_components_py",
+ "target": "ui_test_components_test_to_nicegui_nodes_carries_sync_title",
+ "confidence_score": 1.0
+ },
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/ui/test_components.py",
+ "source_location": "L912",
+ "weight": 1.0,
+ "source": "tests_unit_ui_test_components_py",
+ "target": "ui_test_components_test_build_tree_seeds_selected_node",
+ "confidence_score": 1.0
+ },
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/ui/test_components.py",
+ "source_location": "L930",
+ "weight": 1.0,
+ "source": "tests_unit_ui_test_components_py",
+ "target": "ui_test_components_test_build_tree_no_selection_leaves_selected_unset",
+ "confidence_score": 1.0
+ },
{
"relation": "contains",
"confidence": "EXTRACTED",
@@ -89677,6 +94847,26 @@
"source": "ui_test_components_rationale_172",
"target": "ui_test_components_test_sync_status_unknown_raises"
},
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/ui/test_components.py",
+ "source_location": "L179",
+ "weight": 1.0,
+ "source": "ui_test_components_rationale_179",
+ "target": "ui_test_components_test_sync_legend_entries_cover_every_state",
+ "confidence_score": 1.0
+ },
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/ui/test_components.py",
+ "source_location": "L201",
+ "weight": 1.0,
+ "source": "ui_test_components_rationale_201",
+ "target": "ui_test_components_test_session_progress_phase_order_is_canonical",
+ "confidence_score": 1.0
+ },
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
@@ -89687,6 +94877,16 @@
"source": "ui_test_components_rationale_184",
"target": "ui_test_components_test_session_progress_phase_order_is_canonical"
},
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/ui/test_components.py",
+ "source_location": "L249",
+ "weight": 1.0,
+ "source": "ui_test_components_rationale_249",
+ "target": "ui_test_components_test_session_progress_active_phase_marked",
+ "confidence_score": 1.0
+ },
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
@@ -89697,6 +94897,16 @@
"source": "ui_test_components_rationale_232",
"target": "ui_test_components_test_session_progress_active_phase_marked"
},
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/ui/test_components.py",
+ "source_location": "L262",
+ "weight": 1.0,
+ "source": "ui_test_components_rationale_262",
+ "target": "ui_test_components_test_session_progress_plugin_sub_row_present",
+ "confidence_score": 1.0
+ },
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
@@ -89707,6 +94917,16 @@
"source": "ui_test_components_rationale_245",
"target": "ui_test_components_test_session_progress_plugin_sub_row_present"
},
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/ui/test_components.py",
+ "source_location": "L309",
+ "weight": 1.0,
+ "source": "ui_test_components_rationale_309",
+ "target": "ui_test_components_test_begin_edit_from_not_set_enters_editing_remembering_not_set",
+ "confidence_score": 1.0
+ },
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
@@ -89717,6 +94937,16 @@
"source": "ui_test_components_rationale_292",
"target": "ui_test_components_test_begin_edit_from_not_set_enters_editing_remembering_not_set"
},
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/ui/test_components.py",
+ "source_location": "L319",
+ "weight": 1.0,
+ "source": "ui_test_components_rationale_319",
+ "target": "ui_test_components_test_begin_edit_from_set_remembers_set_as_resting",
+ "confidence_score": 1.0
+ },
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
@@ -89727,6 +94957,16 @@
"source": "ui_test_components_rationale_302",
"target": "ui_test_components_test_begin_edit_from_set_remembers_set_as_resting"
},
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/ui/test_components.py",
+ "source_location": "L351",
+ "weight": 1.0,
+ "source": "ui_test_components_rationale_351",
+ "target": "ui_test_components_test_commit_edit_with_empty_value_stays_editing_and_skips_save",
+ "confidence_score": 1.0
+ },
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
@@ -89737,6 +94977,16 @@
"source": "ui_test_components_rationale_334",
"target": "ui_test_components_test_commit_edit_with_empty_value_stays_editing_and_skips_save"
},
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/ui/test_components.py",
+ "source_location": "L471",
+ "weight": 1.0,
+ "source": "ui_test_components_rationale_471",
+ "target": "ui_test_components_test_banner_stack_shows_visible_and_overflow_split",
+ "confidence_score": 1.0
+ },
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
@@ -89747,6 +94997,16 @@
"source": "ui_test_components_rationale_454",
"target": "ui_test_components_test_banner_stack_shows_visible_and_overflow_split"
},
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/ui/test_components.py",
+ "source_location": "L520",
+ "weight": 1.0,
+ "source": "ui_test_components_rationale_520",
+ "target": "ui_test_components_test_operations_modal_sort_suspended_first_oldest_first",
+ "confidence_score": 1.0
+ },
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
@@ -89779,6 +95039,16 @@
"source": "ui_test_components_test_input_required_dialog_builds_without_raising",
"target": "components_input_required_dialog_input_required_dialog"
},
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/ui/test_components.py",
+ "source_location": "L737",
+ "weight": 1.0,
+ "source": "ui_test_components_rationale_737",
+ "target": "ui_test_components_test_tree_filter_archived_default_off_hides_archived",
+ "confidence_score": 1.0
+ },
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
@@ -89799,6 +95069,16 @@
"source": "ui_test_components_rationale_715",
"target": "ui_test_components_test_tree_filter_archived_default_off_hides_archived"
},
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/ui/test_components.py",
+ "source_location": "L757",
+ "weight": 1.0,
+ "source": "ui_test_components_rationale_757",
+ "target": "ui_test_components_test_tree_filter_deleted_always_shown",
+ "confidence_score": 1.0
+ },
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
@@ -89819,6 +95099,16 @@
"source": "ui_test_components_rationale_735",
"target": "ui_test_components_test_tree_filter_deleted_always_shown"
},
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/ui/test_components.py",
+ "source_location": "L804",
+ "weight": 1.0,
+ "source": "ui_test_components_rationale_804",
+ "target": "ui_test_components_test_tree_run_node_propagates_sync_status",
+ "confidence_score": 1.0
+ },
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
@@ -89839,6 +95129,16 @@
"source": "ui_test_components_rationale_782",
"target": "ui_test_components_test_tree_run_node_propagates_sync_status"
},
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/ui/test_components.py",
+ "source_location": "L821",
+ "weight": 1.0,
+ "source": "ui_test_components_rationale_821",
+ "target": "ui_test_components_test_to_nicegui_nodes_cleared_run_uses_cloud_icon",
+ "confidence_score": 1.0
+ },
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
@@ -89859,6 +95159,16 @@
"source": "ui_test_components_rationale_799",
"target": "ui_test_components_test_to_nicegui_nodes_cleared_run_uses_cloud_icon"
},
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/ui/test_components.py",
+ "source_location": "L846",
+ "weight": 1.0,
+ "source": "ui_test_components_rationale_846",
+ "target": "ui_test_components_test_to_nicegui_nodes_local_run_uses_local_icon",
+ "confidence_score": 1.0
+ },
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
@@ -89879,6 +95189,16 @@
"source": "ui_test_components_rationale_824",
"target": "ui_test_components_test_to_nicegui_nodes_local_run_uses_local_icon"
},
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/ui/test_components.py",
+ "source_location": "L872",
+ "weight": 1.0,
+ "source": "ui_test_components_rationale_872",
+ "target": "ui_test_components_test_to_nicegui_nodes_equipment_and_project_have_no_sync_icon",
+ "confidence_score": 1.0
+ },
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
@@ -89899,6 +95219,46 @@
"source": "ui_test_components_rationale_850",
"target": "ui_test_components_test_to_nicegui_nodes_equipment_and_project_have_no_sync_icon"
},
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/ui/test_components.py",
+ "source_location": "L889",
+ "weight": 1.0,
+ "source": "ui_test_components_rationale_889",
+ "target": "ui_test_components_test_to_nicegui_nodes_carries_sync_title",
+ "confidence_score": 1.0
+ },
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/ui/test_components.py",
+ "source_location": "L913",
+ "weight": 1.0,
+ "source": "ui_test_components_rationale_913",
+ "target": "ui_test_components_test_build_tree_seeds_selected_node",
+ "confidence_score": 1.0
+ },
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/ui/test_components.py",
+ "source_location": "L931",
+ "weight": 1.0,
+ "source": "ui_test_components_rationale_931",
+ "target": "ui_test_components_test_build_tree_no_selection_leaves_selected_unset",
+ "confidence_score": 1.0
+ },
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/ui/test_components.py",
+ "source_location": "L949",
+ "weight": 1.0,
+ "source": "ui_test_components_rationale_949",
+ "target": "ui_test_components_test_equipment_node_relay_flag_emits_received_equipment_kind",
+ "confidence_score": 1.0
+ },
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
@@ -89919,6 +95279,16 @@
"source": "ui_test_components_rationale_872",
"target": "ui_test_components_test_equipment_node_relay_flag_emits_received_equipment_kind"
},
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/ui/test_components.py",
+ "source_location": "L963",
+ "weight": 1.0,
+ "source": "ui_test_components_rationale_963",
+ "target": "ui_test_components_test_to_nicegui_nodes_emits_testid_kind",
+ "confidence_score": 1.0
+ },
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
@@ -89939,6 +95309,16 @@
"source": "ui_test_components_rationale_886",
"target": "ui_test_components_test_to_nicegui_nodes_emits_testid_kind"
},
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/ui/test_components.py",
+ "source_location": "L987",
+ "weight": 1.0,
+ "source": "ui_test_components_rationale_987",
+ "target": "ui_test_components_test_slot_template_emits_testid_data_node_id_and_context_menus",
+ "confidence_score": 1.0
+ },
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
@@ -89959,6 +95339,16 @@
"source": "ui_test_components_rationale_910",
"target": "ui_test_components_test_slot_template_emits_testid_data_node_id_and_context_menus"
},
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/ui/test_components.py",
+ "source_location": "L1027",
+ "weight": 1.0,
+ "source": "ui_test_components_rationale_1027",
+ "target": "ui_test_components_test_factories_smoke_outside_nicegui",
+ "confidence_score": 1.0
+ },
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
@@ -89979,6 +95369,16 @@
"source": "ui_test_components_rationale_950",
"target": "ui_test_components_test_factories_smoke_outside_nicegui"
},
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/ui/test_components.py",
+ "source_location": "L1060",
+ "weight": 1.0,
+ "source": "ui_test_components_rationale_1060",
+ "target": "ui_test_components_test_no_stray_ui_notify_calls_in_ui_package",
+ "confidence_score": 1.0
+ },
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
@@ -90069,6 +95469,26 @@
"source": "tests_unit_ui_test_framed_pane_py",
"target": "ui_test_framed_pane_test_framed_pane_card_carries_testid"
},
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/ui/test_framed_pane.py",
+ "source_location": "L77",
+ "weight": 1.0,
+ "source": "tests_unit_ui_test_framed_pane_py",
+ "target": "ui_test_framed_pane_test_framed_pane_applies_card_classes",
+ "confidence_score": 1.0
+ },
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/ui/test_framed_pane.py",
+ "source_location": "L89",
+ "weight": 1.0,
+ "source": "tests_unit_ui_test_framed_pane_py",
+ "target": "ui_test_framed_pane_test_framed_pane_no_card_classes_by_default",
+ "confidence_score": 1.0
+ },
{
"relation": "contains",
"confidence": "EXTRACTED",
@@ -90242,9 +95662,51 @@
"source_file": "tests/unit/ui/test_framed_pane.py",
"source_location": "L78",
"weight": 1.0,
- "confidence_score": 1.0,
"source": "ui_test_framed_pane_rationale_78",
- "target": "ui_test_framed_pane_test_framed_pane_renders_header_extra_in_strip"
+ "target": "ui_test_framed_pane_test_framed_pane_applies_card_classes",
+ "confidence_score": 1.0
+ },
+ {
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/ui/test_framed_pane.py",
+ "source_location": "L80",
+ "weight": 1.0,
+ "source": "ui_test_framed_pane_test_framed_pane_applies_card_classes",
+ "target": "components_framed_pane_framed_pane"
+ },
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/ui/test_framed_pane.py",
+ "source_location": "L90",
+ "weight": 1.0,
+ "source": "ui_test_framed_pane_rationale_90",
+ "target": "ui_test_framed_pane_test_framed_pane_no_card_classes_by_default",
+ "confidence_score": 1.0
+ },
+ {
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/ui/test_framed_pane.py",
+ "source_location": "L91",
+ "weight": 1.0,
+ "source": "ui_test_framed_pane_test_framed_pane_no_card_classes_by_default",
+ "target": "components_framed_pane_framed_pane"
+ },
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/ui/test_framed_pane.py",
+ "source_location": "L99",
+ "weight": 1.0,
+ "source": "ui_test_framed_pane_rationale_99",
+ "target": "ui_test_framed_pane_test_framed_pane_renders_header_extra_in_strip",
+ "confidence_score": 1.0
},
{
"relation": "calls",
@@ -90257,6 +95719,16 @@
"source": "ui_test_framed_pane_test_framed_pane_renders_header_extra_in_strip",
"target": "components_framed_pane_framed_pane"
},
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/ui/test_framed_pane.py",
+ "source_location": "L78",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "ui_test_framed_pane_rationale_78",
+ "target": "ui_test_framed_pane_test_framed_pane_renders_header_extra_in_strip"
+ },
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
@@ -90347,6 +95819,66 @@
"source": "tests_unit_ui_test_pages_py",
"target": "ui_test_pages_test_main_setup_banner_subline_tailored_for_rclone_remote"
},
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/ui/test_pages.py",
+ "source_location": "L116",
+ "weight": 1.0,
+ "source": "tests_unit_ui_test_pages_py",
+ "target": "ui_test_pages_search_hierarchy",
+ "confidence_score": 1.0
+ },
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/ui/test_pages.py",
+ "source_location": "L129",
+ "weight": 1.0,
+ "source": "tests_unit_ui_test_pages_py",
+ "target": "ui_test_pages_test_main_chip_state_to_tree_filters_threads_search",
+ "confidence_score": 1.0
+ },
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/ui/test_pages.py",
+ "source_location": "L137",
+ "weight": 1.0,
+ "source": "tests_unit_ui_test_pages_py",
+ "target": "ui_test_pages_test_main_count_search_results_counts_projects_and_runs",
+ "confidence_score": 1.0
+ },
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/ui/test_pages.py",
+ "source_location": "L146",
+ "weight": 1.0,
+ "source": "tests_unit_ui_test_pages_py",
+ "target": "ui_test_pages_test_main_count_search_results_narrows_with_query",
+ "confidence_score": 1.0
+ },
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/ui/test_pages.py",
+ "source_location": "L155",
+ "weight": 1.0,
+ "source": "tests_unit_ui_test_pages_py",
+ "target": "ui_test_pages_test_main_count_search_results_zero_on_no_match",
+ "confidence_score": 1.0
+ },
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/ui/test_pages.py",
+ "source_location": "L166",
+ "weight": 1.0,
+ "source": "tests_unit_ui_test_pages_py",
+ "target": "ui_test_pages_test_main_density_card_class_maps_compact",
+ "confidence_score": 1.0
+ },
{
"relation": "contains",
"confidence": "EXTRACTED",
@@ -90757,6 +96289,16 @@
"source": "tests_unit_ui_test_pages_py",
"target": "ui_test_pages_test_settings_first_incomplete_resolves_nas_credentials"
},
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/ui/test_pages.py",
+ "source_location": "L33",
+ "weight": 1.0,
+ "source": "ui_test_pages_rationale_33",
+ "target": "ui_test_pages_test_welcome_card_spec_default_autostart_on",
+ "confidence_score": 1.0
+ },
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
@@ -90767,6 +96309,16 @@
"source": "ui_test_pages_rationale_26",
"target": "ui_test_pages_test_welcome_card_spec_default_autostart_on"
},
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/ui/test_pages.py",
+ "source_location": "L44",
+ "weight": 1.0,
+ "source": "ui_test_pages_rationale_44",
+ "target": "ui_test_pages_test_welcome_card_three_bullets",
+ "confidence_score": 1.0
+ },
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
@@ -90777,6 +96329,16 @@
"source": "ui_test_pages_rationale_37",
"target": "ui_test_pages_test_welcome_card_three_bullets"
},
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/ui/test_pages.py",
+ "source_location": "L64",
+ "weight": 1.0,
+ "source": "ui_test_pages_rationale_64",
+ "target": "ui_test_pages_test_main_default_chips_match_spec",
+ "confidence_score": 1.0
+ },
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
@@ -90787,6 +96349,16 @@
"source": "ui_test_pages_rationale_57",
"target": "ui_test_pages_test_main_default_chips_match_spec"
},
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/ui/test_pages.py",
+ "source_location": "L74",
+ "weight": 1.0,
+ "source": "ui_test_pages_rationale_74",
+ "target": "ui_test_pages_test_main_chip_state_to_tree_filters_round_trip",
+ "confidence_score": 1.0
+ },
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
@@ -90797,6 +96369,16 @@
"source": "ui_test_pages_rationale_67",
"target": "ui_test_pages_test_main_chip_state_to_tree_filters_round_trip"
},
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/ui/test_pages.py",
+ "source_location": "L94",
+ "weight": 1.0,
+ "source": "ui_test_pages_rationale_94",
+ "target": "ui_test_pages_test_main_setup_incomplete_banner_uses_warning",
+ "confidence_score": 1.0
+ },
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
@@ -90807,6 +96389,16 @@
"source": "ui_test_pages_rationale_87",
"target": "ui_test_pages_test_main_setup_incomplete_banner_uses_warning"
},
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/ui/test_pages.py",
+ "source_location": "L102",
+ "weight": 1.0,
+ "source": "ui_test_pages_rationale_102",
+ "target": "ui_test_pages_test_main_setup_banner_subline_tailored_for_rclone_remote",
+ "confidence_score": 1.0
+ },
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
@@ -90817,6 +96409,142 @@
"source": "ui_test_pages_rationale_95",
"target": "ui_test_pages_test_main_setup_banner_subline_tailored_for_rclone_remote"
},
+ {
+ "relation": "calls",
+ "context": "call",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/ui/test_pages.py",
+ "source_location": "L141",
+ "weight": 1.0,
+ "source": "ui_test_pages_test_main_count_search_results_counts_projects_and_runs",
+ "target": "ui_test_pages_search_hierarchy",
+ "confidence_score": 1.0
+ },
+ {
+ "relation": "calls",
+ "context": "call",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/ui/test_pages.py",
+ "source_location": "L150",
+ "weight": 1.0,
+ "source": "ui_test_pages_test_main_count_search_results_narrows_with_query",
+ "target": "ui_test_pages_search_hierarchy",
+ "confidence_score": 1.0
+ },
+ {
+ "relation": "calls",
+ "context": "call",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/ui/test_pages.py",
+ "source_location": "L162",
+ "weight": 1.0,
+ "source": "ui_test_pages_test_main_count_search_results_zero_on_no_match",
+ "target": "ui_test_pages_search_hierarchy",
+ "confidence_score": 1.0
+ },
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/ui/test_pages.py",
+ "source_location": "L117",
+ "weight": 1.0,
+ "source": "ui_test_pages_rationale_117",
+ "target": "ui_test_pages_search_hierarchy",
+ "confidence_score": 1.0
+ },
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/ui/test_pages.py",
+ "source_location": "L130",
+ "weight": 1.0,
+ "source": "ui_test_pages_rationale_130",
+ "target": "ui_test_pages_test_main_chip_state_to_tree_filters_threads_search",
+ "confidence_score": 1.0
+ },
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/ui/test_pages.py",
+ "source_location": "L138",
+ "weight": 1.0,
+ "source": "ui_test_pages_rationale_138",
+ "target": "ui_test_pages_test_main_count_search_results_counts_projects_and_runs",
+ "confidence_score": 1.0
+ },
+ {
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/ui/test_pages.py",
+ "source_location": "L141",
+ "weight": 1.0,
+ "source": "ui_test_pages_test_main_count_search_results_counts_projects_and_runs",
+ "target": "components_tree_build_nodes"
+ },
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/ui/test_pages.py",
+ "source_location": "L147",
+ "weight": 1.0,
+ "source": "ui_test_pages_rationale_147",
+ "target": "ui_test_pages_test_main_count_search_results_narrows_with_query",
+ "confidence_score": 1.0
+ },
+ {
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/ui/test_pages.py",
+ "source_location": "L150",
+ "weight": 1.0,
+ "source": "ui_test_pages_test_main_count_search_results_narrows_with_query",
+ "target": "components_tree_build_nodes"
+ },
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/ui/test_pages.py",
+ "source_location": "L156",
+ "weight": 1.0,
+ "source": "ui_test_pages_rationale_156",
+ "target": "ui_test_pages_test_main_count_search_results_zero_on_no_match",
+ "confidence_score": 1.0
+ },
+ {
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/ui/test_pages.py",
+ "source_location": "L162",
+ "weight": 1.0,
+ "source": "ui_test_pages_test_main_count_search_results_zero_on_no_match",
+ "target": "components_tree_build_nodes"
+ },
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/ui/test_pages.py",
+ "source_location": "L167",
+ "weight": 1.0,
+ "source": "ui_test_pages_rationale_167",
+ "target": "ui_test_pages_test_main_density_card_class_maps_compact",
+ "confidence_score": 1.0
+ },
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/ui/test_pages.py",
+ "source_location": "L181",
+ "weight": 1.0,
+ "source": "ui_test_pages_rationale_181",
+ "target": "ui_test_pages_test_wizard_project_seven_steps",
+ "confidence_score": 1.0
+ },
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
@@ -90827,6 +96555,16 @@
"source": "ui_test_pages_rationale_110",
"target": "ui_test_pages_test_wizard_project_seven_steps"
},
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/ui/test_pages.py",
+ "source_location": "L189",
+ "weight": 1.0,
+ "source": "ui_test_pages_rationale_189",
+ "target": "ui_test_pages_test_wizard_project_can_advance_blocks_until_lims_picked",
+ "confidence_score": 1.0
+ },
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
@@ -90837,6 +96575,16 @@
"source": "ui_test_pages_rationale_118",
"target": "ui_test_pages_test_wizard_project_can_advance_blocks_until_lims_picked"
},
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/ui/test_pages.py",
+ "source_location": "L220",
+ "weight": 1.0,
+ "source": "ui_test_pages_rationale_220",
+ "target": "ui_test_pages_test_wizard_project_preview_blocks_with_low_disk",
+ "confidence_score": 1.0
+ },
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
@@ -90847,6 +96595,16 @@
"source": "ui_test_pages_rationale_149",
"target": "ui_test_pages_test_wizard_project_preview_blocks_with_low_disk"
},
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/ui/test_pages.py",
+ "source_location": "L268",
+ "weight": 1.0,
+ "source": "ui_test_pages_rationale_268",
+ "target": "ui_test_pages_test_wizard_run_test_button_uses_warning_color",
+ "confidence_score": 1.0
+ },
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
@@ -90857,6 +96615,16 @@
"source": "ui_test_pages_rationale_197",
"target": "ui_test_pages_test_wizard_run_test_button_uses_warning_color"
},
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/ui/test_pages.py",
+ "source_location": "L282",
+ "weight": 1.0,
+ "source": "ui_test_pages_rationale_282",
+ "target": "ui_test_pages_test_wizard_run_preview_test_path_highlights",
+ "confidence_score": 1.0
+ },
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
@@ -90867,6 +96635,16 @@
"source": "ui_test_pages_rationale_211",
"target": "ui_test_pages_test_wizard_run_preview_test_path_highlights"
},
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/ui/test_pages.py",
+ "source_location": "L327",
+ "weight": 1.0,
+ "source": "ui_test_pages_rationale_327",
+ "target": "ui_test_pages_test_settings_nine_sections_includes_operators",
+ "confidence_score": 1.0
+ },
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
@@ -90877,6 +96655,16 @@
"source": "ui_test_pages_rationale_256",
"target": "ui_test_pages_test_settings_nine_sections_includes_operators"
},
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/ui/test_pages.py",
+ "source_location": "L340",
+ "weight": 1.0,
+ "source": "ui_test_pages_rationale_340",
+ "target": "ui_test_pages_test_settings_first_incomplete_returns_canonical_first",
+ "confidence_score": 1.0
+ },
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
@@ -90887,6 +96675,16 @@
"source": "ui_test_pages_rationale_269",
"target": "ui_test_pages_test_settings_first_incomplete_returns_canonical_first"
},
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/ui/test_pages.py",
+ "source_location": "L347",
+ "weight": 1.0,
+ "source": "ui_test_pages_rationale_347",
+ "target": "ui_test_pages_test_settings_first_incomplete_resolves_nas_remote",
+ "confidence_score": 1.0
+ },
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
@@ -90941,6 +96739,16 @@
"source": "ui_test_pages_test_problems_filter_scope_filters_by_equipment",
"target": "ui_test_pages_sample_findings"
},
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/ui/test_pages.py",
+ "source_location": "L408",
+ "weight": 1.0,
+ "source": "ui_test_pages_rationale_408",
+ "target": "ui_test_pages_test_problems_filter_default_shows_hard_only",
+ "confidence_score": 1.0
+ },
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
@@ -90951,6 +96759,16 @@
"source": "ui_test_pages_rationale_337",
"target": "ui_test_pages_test_problems_filter_default_shows_hard_only"
},
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/ui/test_pages.py",
+ "source_location": "L436",
+ "weight": 1.0,
+ "source": "ui_test_pages_rationale_436",
+ "target": "ui_test_pages_test_problems_override_reason_min_length",
+ "confidence_score": 1.0
+ },
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
@@ -90961,6 +96779,16 @@
"source": "ui_test_pages_rationale_365",
"target": "ui_test_pages_test_problems_override_reason_min_length"
},
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/ui/test_pages.py",
+ "source_location": "L444",
+ "weight": 1.0,
+ "source": "ui_test_pages_rationale_444",
+ "target": "ui_test_pages_test_problems_override_reason_max_length",
+ "confidence_score": 1.0
+ },
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
@@ -90971,6 +96799,16 @@
"source": "ui_test_pages_rationale_373",
"target": "ui_test_pages_test_problems_override_reason_max_length"
},
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/ui/test_pages.py",
+ "source_location": "L459",
+ "weight": 1.0,
+ "source": "ui_test_pages_rationale_459",
+ "target": "ui_test_pages_test_problems_override_reason_trims_whitespace",
+ "confidence_score": 1.0
+ },
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
@@ -90985,41 +96823,41 @@
"relation": "rationale_for",
"confidence": "EXTRACTED",
"source_file": "tests/unit/ui/test_pages.py",
- "source_location": "L395",
+ "source_location": "L466",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "ui_test_pages_rationale_395",
- "target": "ui_test_pages_test_problems_near_limit_flag"
+ "source": "ui_test_pages_rationale_466",
+ "target": "ui_test_pages_test_problems_near_limit_flag",
+ "confidence_score": 1.0
},
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
"source_file": "tests/unit/ui/test_pages.py",
- "source_location": "L419",
+ "source_location": "L395",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "ui_test_pages_rationale_419",
- "target": "ui_test_pages_test_problems_chip_definitions_match_spec"
+ "source": "ui_test_pages_rationale_395",
+ "target": "ui_test_pages_test_problems_near_limit_flag"
},
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
"source_file": "tests/unit/ui/test_pages.py",
- "source_location": "L95",
+ "source_location": "L490",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "ui_test_pages_rationale_95",
- "target": "ui_test_pages_test_main_setup_banner_subline_tailored_for_nas_credentials"
+ "source": "ui_test_pages_rationale_490",
+ "target": "ui_test_pages_test_problems_chip_definitions_match_spec",
+ "confidence_score": 1.0
},
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
"source_file": "tests/unit/ui/test_pages.py",
- "source_location": "L276",
+ "source_location": "L419",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "ui_test_pages_rationale_276",
- "target": "ui_test_pages_test_settings_first_incomplete_resolves_nas_credentials"
+ "source": "ui_test_pages_rationale_419",
+ "target": "ui_test_pages_test_problems_chip_definitions_match_spec"
},
{
"relation": "contains",
@@ -91051,26 +96889,6 @@
"source": "tests_unit_ui_test_mount_py",
"target": "ui_test_mount_fluent"
},
- {
- "relation": "contains",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L98",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "tests_unit_ui_test_mount_py",
- "target": "ui_test_mount_fakeui"
- },
- {
- "relation": "contains",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L116",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "tests_unit_ui_test_mount_py",
- "target": "ui_test_mount_boomui"
- },
{
"relation": "contains",
"confidence": "EXTRACTED",
@@ -91351,36 +97169,6 @@
"source": "tests_unit_ui_test_mount_py",
"target": "ui_test_mount_test_safe_audit_forwards_validator_output"
},
- {
- "relation": "contains",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L445",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "tests_unit_ui_test_mount_py",
- "target": "ui_test_mount_test_staging_state_when_staging_root_missing"
- },
- {
- "relation": "contains",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L460",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "tests_unit_ui_test_mount_py",
- "target": "ui_test_mount_test_staging_state_none_when_no_config"
- },
- {
- "relation": "contains",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L464",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "tests_unit_ui_test_mount_py",
- "target": "ui_test_mount_test_staging_state_returns_empty_rows_on_query_failure"
- },
{
"relation": "contains",
"confidence": "EXTRACTED",
@@ -91471,26 +97259,6 @@
"source": "tests_unit_ui_test_mount_py",
"target": "ui_test_mount_test_apply_live_config_falls_back_to_setting_config"
},
- {
- "relation": "contains",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L656",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "tests_unit_ui_test_mount_py",
- "target": "ui_test_mount_test_render_unavailable_renders_headline_and_subline"
- },
- {
- "relation": "contains",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L663",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "tests_unit_ui_test_mount_py",
- "target": "ui_test_mount_test_render_unavailable_swallows_failure"
- },
{
"relation": "contains",
"confidence": "EXTRACTED",
@@ -92281,16 +98049,6 @@
"source": "tests_unit_ui_test_mount_py",
"target": "ui_test_mount_stubnassync"
},
- {
- "relation": "contains",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L1544",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "tests_unit_ui_test_mount_py",
- "target": "ui_test_mount_drain_background"
- },
{
"relation": "contains",
"confidence": "EXTRACTED",
@@ -92351,36 +98109,6 @@
"source": "tests_unit_ui_test_mount_py",
"target": "ui_test_mount_test_run_staging_action_clear_verified_invokes_clear"
},
- {
- "relation": "contains",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L1630",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "tests_unit_ui_test_mount_py",
- "target": "ui_test_mount_test_bulk_clear_verified_clears_verified_rows"
- },
- {
- "relation": "contains",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L1659",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "tests_unit_ui_test_mount_py",
- "target": "ui_test_mount_test_bulk_clear_verified_no_config_toasts_and_returns"
- },
- {
- "relation": "contains",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L1666",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "tests_unit_ui_test_mount_py",
- "target": "ui_test_mount_test_bulk_clear_verified_logs_helper_exception"
- },
{
"relation": "contains",
"confidence": "EXTRACTED",
@@ -93115,61 +98843,201 @@
"relation": "contains",
"confidence": "EXTRACTED",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L2735",
+ "source_location": "L2752",
"weight": 1.0,
"confidence_score": 1.0,
"source": "tests_unit_ui_test_mount_py",
- "target": "ui_test_mount_test_bulk_clear_verified_no_verified_rows_toasts"
+ "target": "ui_test_mount_test_toggle_keep_local_unresolvable_relative_path_toasts"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L2752",
+ "source_location": "L2770",
"weight": 1.0,
"confidence_score": 1.0,
"source": "tests_unit_ui_test_mount_py",
- "target": "ui_test_mount_test_toggle_keep_local_unresolvable_relative_path_toasts"
+ "target": "ui_test_mount_test_open_input_required_dialog_submit_swallows_resume_failure"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L2770",
+ "source_location": "L2799",
"weight": 1.0,
"confidence_score": 1.0,
"source": "tests_unit_ui_test_mount_py",
- "target": "ui_test_mount_test_open_input_required_dialog_submit_swallows_resume_failure"
+ "target": "ui_test_mount_test_template_questions_map_swallows_outer_failure"
+ },
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/ui/test_mount.py",
+ "source_location": "L1",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "ui_test_mount_rationale_1",
+ "target": "tests_unit_ui_test_mount_py"
+ },
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/ui/test_mount.py",
+ "source_location": "L425",
+ "weight": 1.0,
+ "source": "ui_test_mount_rationale_425",
+ "target": "tests_unit_ui_test_mount_py",
+ "confidence_score": 1.0
+ },
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/ui/test_mount.py",
+ "source_location": "L596",
+ "weight": 1.0,
+ "source": "ui_test_mount_rationale_596",
+ "target": "tests_unit_ui_test_mount_py",
+ "confidence_score": 1.0
+ },
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/ui/test_mount.py",
+ "source_location": "L1683",
+ "weight": 1.0,
+ "source": "ui_test_mount_rationale_1683",
+ "target": "tests_unit_ui_test_mount_py",
+ "confidence_score": 1.0
},
{
"relation": "contains",
"confidence": "EXTRACTED",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L2799",
+ "source_location": "L98",
"weight": 1.0,
"confidence_score": 1.0,
"source": "tests_unit_ui_test_mount_py",
- "target": "ui_test_mount_test_template_questions_map_swallows_outer_failure"
+ "target": "ui_test_mount_fakeui"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L2815",
+ "source_location": "L116",
"weight": 1.0,
"confidence_score": 1.0,
"source": "tests_unit_ui_test_mount_py",
- "target": "ui_test_mount_test_build_staging_state_query_failure_returns_empty_rows"
+ "target": "ui_test_mount_boomui"
},
{
- "relation": "rationale_for",
+ "relation": "contains",
"confidence": "EXTRACTED",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L1",
+ "source_location": "L445",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "ui_test_mount_rationale_1",
- "target": "tests_unit_ui_test_mount_py"
+ "source": "tests_unit_ui_test_mount_py",
+ "target": "ui_test_mount_test_staging_state_when_staging_root_missing"
+ },
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/ui/test_mount.py",
+ "source_location": "L460",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "tests_unit_ui_test_mount_py",
+ "target": "ui_test_mount_test_staging_state_none_when_no_config"
+ },
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/ui/test_mount.py",
+ "source_location": "L464",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "tests_unit_ui_test_mount_py",
+ "target": "ui_test_mount_test_staging_state_returns_empty_rows_on_query_failure"
+ },
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/ui/test_mount.py",
+ "source_location": "L656",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "tests_unit_ui_test_mount_py",
+ "target": "ui_test_mount_test_render_unavailable_renders_headline_and_subline"
+ },
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/ui/test_mount.py",
+ "source_location": "L663",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "tests_unit_ui_test_mount_py",
+ "target": "ui_test_mount_test_render_unavailable_swallows_failure"
+ },
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/ui/test_mount.py",
+ "source_location": "L1544",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "tests_unit_ui_test_mount_py",
+ "target": "ui_test_mount_drain_background"
+ },
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/ui/test_mount.py",
+ "source_location": "L1630",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "tests_unit_ui_test_mount_py",
+ "target": "ui_test_mount_test_bulk_clear_verified_clears_verified_rows"
+ },
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/ui/test_mount.py",
+ "source_location": "L1659",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "tests_unit_ui_test_mount_py",
+ "target": "ui_test_mount_test_bulk_clear_verified_no_config_toasts_and_returns"
+ },
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/ui/test_mount.py",
+ "source_location": "L1666",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "tests_unit_ui_test_mount_py",
+ "target": "ui_test_mount_test_bulk_clear_verified_logs_helper_exception"
+ },
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/ui/test_mount.py",
+ "source_location": "L2735",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "tests_unit_ui_test_mount_py",
+ "target": "ui_test_mount_test_bulk_clear_verified_no_verified_rows_toasts"
+ },
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/ui/test_mount.py",
+ "source_location": "L2815",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "tests_unit_ui_test_mount_py",
+ "target": "ui_test_mount_test_build_staging_state_query_failure_returns_empty_rows"
},
{
"relation": "contains",
@@ -93461,39 +99329,6 @@
"source": "ui_test_mount_test_safe_audit_forwards_validator_output",
"target": "ui_test_mount_deps"
},
- {
- "relation": "calls",
- "context": "call",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L448",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "ui_test_mount_test_staging_state_when_staging_root_missing",
- "target": "ui_test_mount_deps"
- },
- {
- "relation": "calls",
- "context": "call",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L461",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "ui_test_mount_test_staging_state_none_when_no_config",
- "target": "ui_test_mount_deps"
- },
- {
- "relation": "calls",
- "context": "call",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L467",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "ui_test_mount_test_staging_state_returns_empty_rows_on_query_failure",
- "target": "ui_test_mount_deps"
- },
{
"relation": "calls",
"context": "call",
@@ -94176,39 +100011,6 @@
"source": "ui_test_mount_test_run_staging_action_clear_verified_invokes_clear",
"target": "ui_test_mount_deps"
},
- {
- "relation": "calls",
- "context": "call",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L1649",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "ui_test_mount_test_bulk_clear_verified_clears_verified_rows",
- "target": "ui_test_mount_deps"
- },
- {
- "relation": "calls",
- "context": "call",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L1661",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "ui_test_mount_test_bulk_clear_verified_no_config_toasts_and_returns",
- "target": "ui_test_mount_deps"
- },
- {
- "relation": "calls",
- "context": "call",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L1675",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "ui_test_mount_test_bulk_clear_verified_logs_helper_exception",
- "target": "ui_test_mount_deps"
- },
{
"relation": "calls",
"context": "call",
@@ -94621,10 +100423,10 @@
"context": "call",
"confidence": "EXTRACTED",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L2746",
+ "source_location": "L2765",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "ui_test_mount_test_bulk_clear_verified_no_verified_rows_toasts",
+ "source": "ui_test_mount_test_toggle_keep_local_unresolvable_relative_path_toasts",
"target": "ui_test_mount_deps"
},
{
@@ -94632,10 +100434,20 @@
"context": "call",
"confidence": "EXTRACTED",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L2765",
+ "source_location": "L2811",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "ui_test_mount_test_toggle_keep_local_unresolvable_relative_path_toasts",
+ "source": "ui_test_mount_test_template_questions_map_swallows_outer_failure",
+ "target": "ui_test_mount_deps"
+ },
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/ui/test_mount.py",
+ "source_location": "L31",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "ui_test_mount_rationale_31",
"target": "ui_test_mount_deps"
},
{
@@ -94643,10 +100455,10 @@
"context": "call",
"confidence": "EXTRACTED",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L2811",
+ "source_location": "L448",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "ui_test_mount_test_template_questions_map_swallows_outer_failure",
+ "source": "ui_test_mount_test_staging_state_when_staging_root_missing",
"target": "ui_test_mount_deps"
},
{
@@ -94654,20 +100466,76 @@
"context": "call",
"confidence": "EXTRACTED",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L2826",
+ "source_location": "L461",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "ui_test_mount_test_build_staging_state_query_failure_returns_empty_rows",
+ "source": "ui_test_mount_test_staging_state_none_when_no_config",
"target": "ui_test_mount_deps"
},
{
- "relation": "rationale_for",
+ "relation": "calls",
+ "context": "call",
"confidence": "EXTRACTED",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L31",
+ "source_location": "L467",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "ui_test_mount_rationale_31",
+ "source": "ui_test_mount_test_staging_state_returns_empty_rows_on_query_failure",
+ "target": "ui_test_mount_deps"
+ },
+ {
+ "relation": "calls",
+ "context": "call",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/ui/test_mount.py",
+ "source_location": "L1649",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "ui_test_mount_test_bulk_clear_verified_clears_verified_rows",
+ "target": "ui_test_mount_deps"
+ },
+ {
+ "relation": "calls",
+ "context": "call",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/ui/test_mount.py",
+ "source_location": "L1661",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "ui_test_mount_test_bulk_clear_verified_no_config_toasts_and_returns",
+ "target": "ui_test_mount_deps"
+ },
+ {
+ "relation": "calls",
+ "context": "call",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/ui/test_mount.py",
+ "source_location": "L1675",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "ui_test_mount_test_bulk_clear_verified_logs_helper_exception",
+ "target": "ui_test_mount_deps"
+ },
+ {
+ "relation": "calls",
+ "context": "call",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/ui/test_mount.py",
+ "source_location": "L2746",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "ui_test_mount_test_bulk_clear_verified_no_verified_rows_toasts",
+ "target": "ui_test_mount_deps"
+ },
+ {
+ "relation": "calls",
+ "context": "call",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/ui/test_mount.py",
+ "source_location": "L2826",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "ui_test_mount_test_build_staging_state_query_failure_returns_empty_rows",
"target": "ui_test_mount_deps"
},
{
@@ -94801,28 +100669,6 @@
"source": "ui_test_mount_test_missing_sections_empty_when_fully_configured",
"target": "ui_test_mount_config"
},
- {
- "relation": "calls",
- "context": "call",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L449",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "ui_test_mount_test_staging_state_when_staging_root_missing",
- "target": "ui_test_mount_config"
- },
- {
- "relation": "calls",
- "context": "call",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L468",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "ui_test_mount_test_staging_state_returns_empty_rows_on_query_failure",
- "target": "ui_test_mount_config"
- },
{
"relation": "calls",
"context": "call",
@@ -95197,28 +101043,6 @@
"source": "ui_test_mount_test_run_staging_action_clear_verified_invokes_clear",
"target": "ui_test_mount_config"
},
- {
- "relation": "calls",
- "context": "call",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L1649",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "ui_test_mount_test_bulk_clear_verified_clears_verified_rows",
- "target": "ui_test_mount_config"
- },
- {
- "relation": "calls",
- "context": "call",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L1675",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "ui_test_mount_test_bulk_clear_verified_logs_helper_exception",
- "target": "ui_test_mount_config"
- },
{
"relation": "calls",
"context": "call",
@@ -95356,10 +101180,10 @@
"context": "call",
"confidence": "EXTRACTED",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L2746",
+ "source_location": "L2811",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "ui_test_mount_test_bulk_clear_verified_no_verified_rows_toasts",
+ "source": "ui_test_mount_test_template_questions_map_swallows_outer_failure",
"target": "ui_test_mount_config"
},
{
@@ -95367,10 +101191,54 @@
"context": "call",
"confidence": "EXTRACTED",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L2811",
+ "source_location": "L449",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "ui_test_mount_test_template_questions_map_swallows_outer_failure",
+ "source": "ui_test_mount_test_staging_state_when_staging_root_missing",
+ "target": "ui_test_mount_config"
+ },
+ {
+ "relation": "calls",
+ "context": "call",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/ui/test_mount.py",
+ "source_location": "L468",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "ui_test_mount_test_staging_state_returns_empty_rows_on_query_failure",
+ "target": "ui_test_mount_config"
+ },
+ {
+ "relation": "calls",
+ "context": "call",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/ui/test_mount.py",
+ "source_location": "L1649",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "ui_test_mount_test_bulk_clear_verified_clears_verified_rows",
+ "target": "ui_test_mount_config"
+ },
+ {
+ "relation": "calls",
+ "context": "call",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/ui/test_mount.py",
+ "source_location": "L1675",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "ui_test_mount_test_bulk_clear_verified_logs_helper_exception",
+ "target": "ui_test_mount_config"
+ },
+ {
+ "relation": "calls",
+ "context": "call",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/ui/test_mount.py",
+ "source_location": "L2746",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "ui_test_mount_test_bulk_clear_verified_no_verified_rows_toasts",
"target": "ui_test_mount_config"
},
{
@@ -95444,28 +101312,6 @@
"source": "ui_test_mount_dialogstub",
"target": "ui_test_mount_fluent"
},
- {
- "relation": "calls",
- "context": "call",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L109",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "ui_test_mount_fakeui_card",
- "target": "ui_test_mount_fluent"
- },
- {
- "relation": "calls",
- "context": "call",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L113",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "ui_test_mount_fakeui_label",
- "target": "ui_test_mount_fluent"
- },
{
"relation": "calls",
"context": "call",
@@ -95671,427 +101517,37 @@
"source": "ui_test_mount_fluent",
"target": "routers_browse_folderresponse"
},
- {
- "relation": "rationale_for",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L80",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "ui_test_mount_rationale_80",
- "target": "ui_test_mount_fluent"
- },
- {
- "relation": "uses",
- "confidence": "INFERRED",
- "source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L350",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "ui_test_mount_fluent",
- "target": "config_models_rclonesftptransport"
- },
- {
- "relation": "method",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L101",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "ui_test_mount_fakeui",
- "target": "ui_test_mount_fakeui_init"
- },
- {
- "relation": "method",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L107",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "ui_test_mount_fakeui",
- "target": "ui_test_mount_fakeui_card"
- },
- {
- "relation": "method",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L111",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "ui_test_mount_fakeui",
- "target": "ui_test_mount_fakeui_label"
- },
{
"relation": "calls",
"context": "call",
"confidence": "EXTRACTED",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L657",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "ui_test_mount_test_render_unavailable_renders_headline_and_subline",
- "target": "ui_test_mount_fakeui"
- },
- {
- "relation": "rationale_for",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L100",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "ui_test_mount_rationale_100",
- "target": "ui_test_mount_fakeui"
- },
- {
- "relation": "uses",
- "confidence": "INFERRED",
- "source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L27",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "ui_test_mount_fakeui",
- "target": "components_file_list_filelistentry"
- },
- {
- "relation": "uses",
- "confidence": "INFERRED",
- "source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L282",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "ui_test_mount_fakeui",
- "target": "controller_session_store_sessionstore"
- },
- {
- "relation": "uses",
- "confidence": "INFERRED",
- "source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L350",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "ui_test_mount_fakeui",
- "target": "config_models_config"
- },
- {
- "relation": "uses",
- "confidence": "INFERRED",
- "source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L350",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "ui_test_mount_fakeui",
- "target": "config_models_equipmentconfig"
- },
- {
- "relation": "uses",
- "confidence": "INFERRED",
- "source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L350",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "ui_test_mount_fakeui",
- "target": "config_models_limsconfig"
- },
- {
- "relation": "uses",
- "confidence": "INFERRED",
- "source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L360",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "ui_test_mount_fakeui",
- "target": "config_models_nasconfig"
- },
- {
- "relation": "uses",
- "confidence": "INFERRED",
- "source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L350",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "ui_test_mount_fakeui",
- "target": "config_models_orchestratorconfig"
- },
- {
- "relation": "uses",
- "confidence": "INFERRED",
- "source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L350",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "ui_test_mount_fakeui",
- "target": "config_models_pathsconfig"
- },
- {
- "relation": "uses",
- "confidence": "INFERRED",
- "source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L1344",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "ui_test_mount_fakeui",
- "target": "api_schemas_creationjson"
- },
- {
- "relation": "uses",
- "confidence": "INFERRED",
- "source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L1344",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "ui_test_mount_fakeui",
- "target": "api_schemas_limsprojectblock"
- },
- {
- "relation": "uses",
- "confidence": "INFERRED",
- "source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L1344",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "ui_test_mount_fakeui",
- "target": "api_schemas_pathsblock"
- },
- {
- "relation": "uses",
- "confidence": "INFERRED",
- "source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L1344",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "ui_test_mount_fakeui",
- "target": "api_schemas_templateblock"
- },
- {
- "relation": "uses",
- "confidence": "INFERRED",
- "source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L1729",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "ui_test_mount_fakeui",
- "target": "routers_browse_folderentry"
- },
- {
- "relation": "uses",
- "confidence": "INFERRED",
- "source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L1729",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "ui_test_mount_fakeui",
- "target": "routers_browse_folderresponse"
- },
- {
- "relation": "rationale_for",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L99",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "ui_test_mount_rationale_99",
- "target": "ui_test_mount_fakeui"
- },
- {
- "relation": "uses",
- "confidence": "INFERRED",
- "source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L350",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "ui_test_mount_fakeui",
- "target": "config_models_rclonesftptransport"
- },
- {
- "relation": "method",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L119",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "ui_test_mount_boomui",
- "target": "ui_test_mount_boomui_card"
- },
- {
- "relation": "method",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L123",
+ "source_location": "L109",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "ui_test_mount_boomui",
- "target": "ui_test_mount_boomui_label"
+ "source": "ui_test_mount_fakeui_card",
+ "target": "ui_test_mount_fluent"
},
{
"relation": "calls",
"context": "call",
"confidence": "EXTRACTED",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L665",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "ui_test_mount_test_render_unavailable_swallows_failure",
- "target": "ui_test_mount_boomui"
- },
- {
- "relation": "rationale_for",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L118",
+ "source_location": "L113",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "ui_test_mount_rationale_118",
- "target": "ui_test_mount_boomui"
- },
- {
- "relation": "uses",
- "confidence": "INFERRED",
- "source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L27",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "ui_test_mount_boomui",
- "target": "components_file_list_filelistentry"
- },
- {
- "relation": "uses",
- "confidence": "INFERRED",
- "source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L282",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "ui_test_mount_boomui",
- "target": "controller_session_store_sessionstore"
- },
- {
- "relation": "uses",
- "confidence": "INFERRED",
- "source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L350",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "ui_test_mount_boomui",
- "target": "config_models_config"
- },
- {
- "relation": "uses",
- "confidence": "INFERRED",
- "source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L350",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "ui_test_mount_boomui",
- "target": "config_models_equipmentconfig"
- },
- {
- "relation": "uses",
- "confidence": "INFERRED",
- "source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L350",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "ui_test_mount_boomui",
- "target": "config_models_limsconfig"
- },
- {
- "relation": "uses",
- "confidence": "INFERRED",
- "source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L360",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "ui_test_mount_boomui",
- "target": "config_models_nasconfig"
- },
- {
- "relation": "uses",
- "confidence": "INFERRED",
- "source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L350",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "ui_test_mount_boomui",
- "target": "config_models_orchestratorconfig"
- },
- {
- "relation": "uses",
- "confidence": "INFERRED",
- "source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L350",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "ui_test_mount_boomui",
- "target": "config_models_pathsconfig"
- },
- {
- "relation": "uses",
- "confidence": "INFERRED",
- "source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L1344",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "ui_test_mount_boomui",
- "target": "api_schemas_creationjson"
- },
- {
- "relation": "uses",
- "confidence": "INFERRED",
- "source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L1344",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "ui_test_mount_boomui",
- "target": "api_schemas_limsprojectblock"
- },
- {
- "relation": "uses",
- "confidence": "INFERRED",
- "source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L1344",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "ui_test_mount_boomui",
- "target": "api_schemas_pathsblock"
- },
- {
- "relation": "uses",
- "confidence": "INFERRED",
- "source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L1344",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "ui_test_mount_boomui",
- "target": "api_schemas_templateblock"
- },
- {
- "relation": "uses",
- "confidence": "INFERRED",
- "source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L1729",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "ui_test_mount_boomui",
- "target": "routers_browse_folderentry"
- },
- {
- "relation": "uses",
- "confidence": "INFERRED",
- "source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L1729",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "ui_test_mount_boomui",
- "target": "routers_browse_folderresponse"
+ "source": "ui_test_mount_fakeui_label",
+ "target": "ui_test_mount_fluent"
},
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L117",
+ "source_location": "L80",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "ui_test_mount_rationale_117",
- "target": "ui_test_mount_boomui"
+ "source": "ui_test_mount_rationale_80",
+ "target": "ui_test_mount_fluent"
},
{
"relation": "uses",
@@ -96100,7 +101556,7 @@
"source_location": "L350",
"weight": 0.8,
"confidence_score": 0.5,
- "source": "ui_test_mount_boomui",
+ "source": "ui_test_mount_fluent",
"target": "config_models_rclonesftptransport"
},
{
@@ -96246,11 +101702,11 @@
"relation": "rationale_for",
"confidence": "EXTRACTED",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L130",
+ "source_location": "L100",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "ui_test_mount_rationale_130",
- "target": "ui_test_mount_fakecontroller"
+ "source": "ui_test_mount_rationale_100",
+ "target": "ui_test_mount_fakecontroller",
+ "confidence_score": 1.0
},
{
"relation": "uses",
@@ -96392,6 +101848,16 @@
"source": "ui_test_mount_fakecontroller",
"target": "routers_browse_folderresponse"
},
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/ui/test_mount.py",
+ "source_location": "L130",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "ui_test_mount_rationale_130",
+ "target": "ui_test_mount_fakecontroller"
+ },
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
@@ -96434,6 +101900,16 @@
"source": "ui_test_mount_test_is_setup_ready_false_when_keyring_missing",
"target": "ui_test_mount_nas_config"
},
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/ui/test_mount.py",
+ "source_location": "L155",
+ "weight": 1.0,
+ "source": "ui_test_mount_rationale_155",
+ "target": "ui_test_mount_test_is_setup_ready_false_when_keyring_missing",
+ "confidence_score": 1.0
+ },
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
@@ -96487,6 +101963,16 @@
"source": "ui_test_mount_test_is_setup_ready_false_when_nas_remote_unset",
"target": "ui_test_mount_nas_config"
},
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/ui/test_mount.py",
+ "source_location": "L183",
+ "weight": 1.0,
+ "source": "ui_test_mount_rationale_183",
+ "target": "ui_test_mount_test_is_setup_ready_false_when_nas_remote_unset",
+ "confidence_score": 1.0
+ },
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
@@ -96518,6 +102004,16 @@
"source": "ui_test_mount_test_is_setup_ready_false_when_nas_remote_unavailable",
"target": "ui_test_mount_nas_config"
},
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/ui/test_mount.py",
+ "source_location": "L193",
+ "weight": 1.0,
+ "source": "ui_test_mount_rationale_193",
+ "target": "ui_test_mount_test_is_setup_ready_false_when_nas_remote_unavailable",
+ "confidence_score": 1.0
+ },
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
@@ -96549,6 +102045,16 @@
"source": "ui_test_mount_test_is_setup_ready_true_with_offline_catalogue_lims",
"target": "ui_test_mount_nas_config"
},
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/ui/test_mount.py",
+ "source_location": "L204",
+ "weight": 1.0,
+ "source": "ui_test_mount_rationale_204",
+ "target": "ui_test_mount_test_is_setup_ready_true_with_offline_catalogue_lims",
+ "confidence_score": 1.0
+ },
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
@@ -96579,6 +102085,16 @@
"source": "ui_test_mount_rationale_226",
"target": "ui_test_mount_test_is_setup_ready_true_with_offline_catalogue_lims"
},
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/ui/test_mount.py",
+ "source_location": "L241",
+ "weight": 1.0,
+ "source": "ui_test_mount_rationale_241",
+ "target": "ui_test_mount_test_build_main_state_always_on_orchestrator",
+ "confidence_score": 1.0
+ },
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
@@ -96767,11 +102283,11 @@
"relation": "rationale_for",
"confidence": "EXTRACTED",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L349",
+ "source_location": "L319",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "ui_test_mount_rationale_349",
- "target": "ui_test_mount_nas_config"
+ "source": "ui_test_mount_rationale_319",
+ "target": "ui_test_mount_nas_config",
+ "confidence_score": 1.0
},
{
"relation": "calls",
@@ -96828,6 +102344,16 @@
"source": "ui_test_mount_nas_config",
"target": "config_models_nasconfig"
},
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/ui/test_mount.py",
+ "source_location": "L349",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "ui_test_mount_rationale_349",
+ "target": "ui_test_mount_nas_config"
+ },
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
@@ -97244,36 +102770,6 @@
"source": "ui_test_mount_okvalidator",
"target": "config_models_rclonesftptransport"
},
- {
- "relation": "rationale_for",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L461",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "ui_test_mount_rationale_461",
- "target": "ui_test_mount_test_staging_state_when_staging_root_missing"
- },
- {
- "relation": "rationale_for",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L460",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "ui_test_mount_rationale_460",
- "target": "ui_test_mount_test_staging_state_when_staging_root_missing"
- },
- {
- "relation": "rationale_for",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L446",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "ui_test_mount_rationale_446",
- "target": "ui_test_mount_test_staging_state_when_staging_root_missing"
- },
{
"relation": "method",
"confidence": "EXTRACTED",
@@ -97453,11 +102949,11 @@
"relation": "rationale_for",
"confidence": "EXTRACTED",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L508",
+ "source_location": "L438",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "ui_test_mount_rationale_508",
- "target": "ui_test_mount_navspy"
+ "source": "ui_test_mount_rationale_438",
+ "target": "ui_test_mount_navspy",
+ "confidence_score": 1.0
},
{
"relation": "uses",
@@ -97599,6 +103095,16 @@
"source": "ui_test_mount_navspy",
"target": "routers_browse_folderresponse"
},
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/ui/test_mount.py",
+ "source_location": "L508",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "ui_test_mount_rationale_508",
+ "target": "ui_test_mount_navspy"
+ },
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
@@ -97629,6 +103135,16 @@
"source": "ui_test_mount_navspy",
"target": "config_models_rclonesftptransport"
},
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/ui/test_mount.py",
+ "source_location": "L446",
+ "weight": 1.0,
+ "source": "ui_test_mount_rationale_446",
+ "target": "ui_test_mount_test_persist_config_writes_and_applies_live",
+ "confidence_score": 1.0
+ },
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
@@ -97659,6 +103175,16 @@
"source": "ui_test_mount_rationale_501",
"target": "ui_test_mount_test_persist_config_writes_and_applies_live"
},
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/ui/test_mount.py",
+ "source_location": "L523",
+ "weight": 1.0,
+ "source": "ui_test_mount_rationale_523",
+ "target": "ui_test_mount_test_persist_config_creates_staging_root_when_set",
+ "confidence_score": 1.0
+ },
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
@@ -97689,6 +103215,16 @@
"source": "ui_test_mount_rationale_578",
"target": "ui_test_mount_test_persist_config_creates_staging_root_when_set"
},
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/ui/test_mount.py",
+ "source_location": "L538",
+ "weight": 1.0,
+ "source": "ui_test_mount_rationale_538",
+ "target": "ui_test_mount_test_persist_config_does_not_create_staging_root_when_blank",
+ "confidence_score": 1.0
+ },
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
@@ -97719,6 +103255,16 @@
"source": "ui_test_mount_rationale_593",
"target": "ui_test_mount_test_persist_config_does_not_create_staging_root_when_blank"
},
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/ui/test_mount.py",
+ "source_location": "L552",
+ "weight": 1.0,
+ "source": "ui_test_mount_rationale_552",
+ "target": "ui_test_mount_test_persist_config_staging_dir_failure_is_non_fatal",
+ "confidence_score": 1.0
+ },
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
@@ -97749,6 +103295,16 @@
"source": "ui_test_mount_rationale_607",
"target": "ui_test_mount_test_persist_config_staging_dir_failure_is_non_fatal"
},
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/ui/test_mount.py",
+ "source_location": "L579",
+ "weight": 1.0,
+ "source": "ui_test_mount_rationale_579",
+ "target": "ui_test_mount_test_apply_live_config_falls_back_to_setting_config",
+ "confidence_score": 1.0
+ },
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
@@ -97846,11 +103402,11 @@
"relation": "rationale_for",
"confidence": "EXTRACTED",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L716",
+ "source_location": "L632",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "ui_test_mount_rationale_716",
- "target": "ui_test_mount_recordingkeyringstore"
+ "source": "ui_test_mount_rationale_632",
+ "target": "ui_test_mount_recordingkeyringstore",
+ "confidence_score": 1.0
},
{
"relation": "uses",
@@ -97992,6 +103548,16 @@
"source": "ui_test_mount_recordingkeyringstore",
"target": "routers_browse_folderresponse"
},
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/ui/test_mount.py",
+ "source_location": "L716",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "ui_test_mount_rationale_716",
+ "target": "ui_test_mount_recordingkeyringstore"
+ },
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
@@ -98055,6 +103621,16 @@
"source": "ui_test_mount_recordingkeyringstore",
"target": "config_models_rclonesftptransport"
},
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/ui/test_mount.py",
+ "source_location": "L671",
+ "weight": 1.0,
+ "source": "ui_test_mount_rationale_671",
+ "target": "ui_test_mount_test_lims_credential_handlers_tolerate_missing_keyring_store",
+ "confidence_score": 1.0
+ },
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
@@ -98085,6 +103661,16 @@
"source": "ui_test_mount_rationale_740",
"target": "ui_test_mount_test_lims_credential_handlers_tolerate_missing_keyring_store"
},
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/ui/test_mount.py",
+ "source_location": "L680",
+ "weight": 1.0,
+ "source": "ui_test_mount_rationale_680",
+ "target": "ui_test_mount_test_lims_credential_handlers_swallow_backend_errors",
+ "confidence_score": 1.0
+ },
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
@@ -98172,11 +103758,11 @@
"relation": "rationale_for",
"confidence": "EXTRACTED",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L940",
+ "source_location": "L856",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "ui_test_mount_rationale_940",
- "target": "ui_test_mount_fakelimsclient"
+ "source": "ui_test_mount_rationale_856",
+ "target": "ui_test_mount_fakelimsclient",
+ "confidence_score": 1.0
},
{
"relation": "uses",
@@ -98318,6 +103904,16 @@
"source": "ui_test_mount_fakelimsclient",
"target": "routers_browse_folderresponse"
},
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/ui/test_mount.py",
+ "source_location": "L940",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "ui_test_mount_rationale_940",
+ "target": "ui_test_mount_fakelimsclient"
+ },
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
@@ -98348,6 +103944,16 @@
"source": "ui_test_mount_fakelimsclient",
"target": "config_models_rclonesftptransport"
},
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/ui/test_mount.py",
+ "source_location": "L1102",
+ "weight": 1.0,
+ "source": "ui_test_mount_rationale_1102",
+ "target": "ui_test_mount_test_build_main_query_omits_empty_params",
+ "confidence_score": 1.0
+ },
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
@@ -98378,6 +103984,16 @@
"source": "ui_test_mount_rationale_1227",
"target": "ui_test_mount_test_build_main_query_omits_empty_params"
},
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/ui/test_mount.py",
+ "source_location": "L1110",
+ "weight": 1.0,
+ "source": "ui_test_mount_rationale_1110",
+ "target": "ui_test_mount_test_build_main_query_url_encodes_special_chars",
+ "confidence_score": 1.0
+ },
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
@@ -98408,6 +104024,16 @@
"source": "ui_test_mount_rationale_1235",
"target": "ui_test_mount_test_build_main_query_url_encodes_special_chars"
},
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/ui/test_mount.py",
+ "source_location": "L1122",
+ "weight": 1.0,
+ "source": "ui_test_mount_rationale_1122",
+ "target": "ui_test_mount_test_build_main_query_includes_file_q_density",
+ "confidence_score": 1.0
+ },
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
@@ -98418,6 +104044,16 @@
"source": "ui_test_mount_rationale_1206",
"target": "ui_test_mount_test_build_main_query_includes_file_q_density"
},
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/ui/test_mount.py",
+ "source_location": "L1131",
+ "weight": 1.0,
+ "source": "ui_test_mount_rationale_1131",
+ "target": "ui_test_mount_test_build_main_query_omits_empty_phase4_params",
+ "confidence_score": 1.0
+ },
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
@@ -98438,6 +104074,16 @@
"source": "ui_test_mount_rationale_1217",
"target": "ui_test_mount_test_build_main_query_omits_empty_phase4_params"
},
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/ui/test_mount.py",
+ "source_location": "L1136",
+ "weight": 1.0,
+ "source": "ui_test_mount_rationale_1136",
+ "target": "ui_test_mount_test_build_main_query_encodes_file_path_and_search",
+ "confidence_score": 1.0
+ },
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
@@ -98458,6 +104104,16 @@
"source": "ui_test_mount_rationale_1222",
"target": "ui_test_mount_test_build_main_query_encodes_file_path_and_search"
},
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/ui/test_mount.py",
+ "source_location": "L1150",
+ "weight": 1.0,
+ "source": "ui_test_mount_rationale_1150",
+ "target": "ui_test_mount_test_classify_node_discriminates_kinds",
+ "confidence_score": 1.0
+ },
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
@@ -98508,6 +104164,16 @@
"source": "ui_test_mount_rationale_1252",
"target": "ui_test_mount_test_classify_node_discriminates_kinds"
},
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/ui/test_mount.py",
+ "source_location": "L1171",
+ "weight": 1.0,
+ "source": "ui_test_mount_rationale_1171",
+ "target": "ui_test_mount_test_classify_node_rejects_unknown_root",
+ "confidence_score": 1.0
+ },
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
@@ -98558,6 +104224,16 @@
"source": "ui_test_mount_rationale_1273",
"target": "ui_test_mount_test_classify_node_rejects_unknown_root"
},
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/ui/test_mount.py",
+ "source_location": "L1193",
+ "weight": 1.0,
+ "source": "ui_test_mount_rationale_1193",
+ "target": "ui_test_mount_test_build_metadata_payload_owned_equipment_reads_config",
+ "confidence_score": 1.0
+ },
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
@@ -98608,6 +104284,16 @@
"source": "ui_test_mount_rationale_1295",
"target": "ui_test_mount_test_build_metadata_payload_owned_equipment_reads_config"
},
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/ui/test_mount.py",
+ "source_location": "L1211",
+ "weight": 1.0,
+ "source": "ui_test_mount_rationale_1211",
+ "target": "ui_test_mount_test_build_metadata_payload_unknown_equipment_id_returns_empty",
+ "confidence_score": 1.0
+ },
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
@@ -98658,6 +104344,16 @@
"source": "ui_test_mount_rationale_1313",
"target": "ui_test_mount_test_build_metadata_payload_unknown_equipment_id_returns_empty"
},
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/ui/test_mount.py",
+ "source_location": "L1218",
+ "weight": 1.0,
+ "source": "ui_test_mount_rationale_1218",
+ "target": "ui_test_mount_test_build_metadata_payload_project_scans_run_counts",
+ "confidence_score": 1.0
+ },
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
@@ -98712,11 +104408,11 @@
"relation": "rationale_for",
"confidence": "EXTRACTED",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L1321",
+ "source_location": "L1237",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "ui_test_mount_rationale_1321",
- "target": "ui_test_mount_test_build_metadata_payload_run_parses_creation_json"
+ "source": "ui_test_mount_rationale_1237",
+ "target": "ui_test_mount_test_build_metadata_payload_run_parses_creation_json",
+ "confidence_score": 1.0
},
{
"relation": "calls",
@@ -98762,6 +104458,16 @@
"source": "ui_test_mount_test_build_metadata_payload_run_parses_creation_json",
"target": "api_schemas_pathsblock"
},
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/ui/test_mount.py",
+ "source_location": "L1321",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "ui_test_mount_rationale_1321",
+ "target": "ui_test_mount_test_build_metadata_payload_run_parses_creation_json"
+ },
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
@@ -98802,6 +104508,16 @@
"source": "ui_test_mount_rationale_1339",
"target": "ui_test_mount_test_build_metadata_payload_run_parses_creation_json"
},
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/ui/test_mount.py",
+ "source_location": "L1282",
+ "weight": 1.0,
+ "source": "ui_test_mount_rationale_1282",
+ "target": "ui_test_mount_test_build_metadata_payload_run_missing_creation_returns_path_only",
+ "confidence_score": 1.0
+ },
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
@@ -98852,6 +104568,16 @@
"source": "ui_test_mount_rationale_1384",
"target": "ui_test_mount_test_build_metadata_payload_run_missing_creation_returns_path_only"
},
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/ui/test_mount.py",
+ "source_location": "L1291",
+ "weight": 1.0,
+ "source": "ui_test_mount_rationale_1291",
+ "target": "ui_test_mount_test_build_main_state_threads_selection_into_state",
+ "confidence_score": 1.0
+ },
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
@@ -98902,6 +104628,16 @@
"source": "ui_test_mount_rationale_1393",
"target": "ui_test_mount_test_build_main_state_threads_selection_into_state"
},
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/ui/test_mount.py",
+ "source_location": "L1307",
+ "weight": 1.0,
+ "source": "ui_test_mount_rationale_1307",
+ "target": "ui_test_mount_test_build_main_state_threads_file_search_density",
+ "confidence_score": 1.0
+ },
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
@@ -98926,11 +104662,11 @@
"relation": "rationale_for",
"confidence": "EXTRACTED",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L1412",
+ "source_location": "L1328",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "ui_test_mount_rationale_1412",
- "target": "ui_test_mount_test_build_selected_file_resolves_file_by_path_match"
+ "source": "ui_test_mount_rationale_1328",
+ "target": "ui_test_mount_test_build_selected_file_resolves_file_by_path_match",
+ "confidence_score": 1.0
},
{
"relation": "calls",
@@ -98954,6 +104690,16 @@
"source": "ui_test_mount_test_build_selected_file_resolves_file_by_path_match",
"target": "pages_staging_format_bytes"
},
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/ui/test_mount.py",
+ "source_location": "L1412",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "ui_test_mount_rationale_1412",
+ "target": "ui_test_mount_test_build_selected_file_resolves_file_by_path_match"
+ },
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
@@ -98968,11 +104714,11 @@
"relation": "rationale_for",
"confidence": "EXTRACTED",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L1438",
+ "source_location": "L1354",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "ui_test_mount_rationale_1438",
- "target": "ui_test_mount_test_build_selected_file_none_for_empty_or_missing_path"
+ "source": "ui_test_mount_rationale_1354",
+ "target": "ui_test_mount_test_build_selected_file_none_for_empty_or_missing_path",
+ "confidence_score": 1.0
},
{
"relation": "calls",
@@ -98985,6 +104731,16 @@
"source": "ui_test_mount_test_build_selected_file_none_for_empty_or_missing_path",
"target": "components_file_list_filelistentry"
},
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/ui/test_mount.py",
+ "source_location": "L1438",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "ui_test_mount_rationale_1438",
+ "target": "ui_test_mount_test_build_selected_file_none_for_empty_or_missing_path"
+ },
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
@@ -98999,11 +104755,11 @@
"relation": "rationale_for",
"confidence": "EXTRACTED",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L1447",
+ "source_location": "L1363",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "ui_test_mount_rationale_1447",
- "target": "ui_test_mount_test_build_selected_file_tombstone_omits_size"
+ "source": "ui_test_mount_rationale_1363",
+ "target": "ui_test_mount_test_build_selected_file_tombstone_omits_size",
+ "confidence_score": 1.0
},
{
"relation": "calls",
@@ -99016,6 +104772,16 @@
"source": "ui_test_mount_test_build_selected_file_tombstone_omits_size",
"target": "components_file_list_filelistentry"
},
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/ui/test_mount.py",
+ "source_location": "L1447",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "ui_test_mount_rationale_1447",
+ "target": "ui_test_mount_test_build_selected_file_tombstone_omits_size"
+ },
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
@@ -99030,11 +104796,11 @@
"relation": "rationale_for",
"confidence": "EXTRACTED",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L1468",
+ "source_location": "L1384",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "ui_test_mount_rationale_1468",
- "target": "ui_test_mount_test_build_selected_file_folder_delegates_to_aggregate"
+ "source": "ui_test_mount_rationale_1384",
+ "target": "ui_test_mount_test_build_selected_file_folder_delegates_to_aggregate",
+ "confidence_score": 1.0
},
{
"relation": "calls",
@@ -99047,6 +104813,16 @@
"source": "ui_test_mount_test_build_selected_file_folder_delegates_to_aggregate",
"target": "components_file_list_filelistentry"
},
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/ui/test_mount.py",
+ "source_location": "L1468",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "ui_test_mount_rationale_1468",
+ "target": "ui_test_mount_test_build_selected_file_folder_delegates_to_aggregate"
+ },
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
@@ -99057,6 +104833,16 @@
"source": "ui_test_mount_rationale_1470",
"target": "ui_test_mount_test_build_selected_file_folder_delegates_to_aggregate"
},
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/ui/test_mount.py",
+ "source_location": "L1411",
+ "weight": 1.0,
+ "source": "ui_test_mount_rationale_1411",
+ "target": "ui_test_mount_test_build_selected_folder_degrades_on_scan_failure",
+ "confidence_score": 1.0
+ },
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
@@ -99077,6 +104863,16 @@
"source": "ui_test_mount_rationale_1497",
"target": "ui_test_mount_test_build_selected_folder_degrades_on_scan_failure"
},
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/ui/test_mount.py",
+ "source_location": "L1439",
+ "weight": 1.0,
+ "source": "ui_test_mount_rationale_1439",
+ "target": "ui_test_mount_test_refresh_selected_folder_primes_feed_payload",
+ "confidence_score": 1.0
+ },
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
@@ -99097,6 +104893,16 @@
"source": "ui_test_mount_rationale_1525",
"target": "ui_test_mount_test_refresh_selected_folder_primes_feed_payload"
},
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/ui/test_mount.py",
+ "source_location": "L1457",
+ "weight": 1.0,
+ "source": "ui_test_mount_rationale_1457",
+ "target": "ui_test_mount_test_refresh_selected_folder_noop_when_path_none",
+ "confidence_score": 1.0
+ },
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
@@ -99127,6 +104933,16 @@
"source": "ui_test_mount_rationale_1537",
"target": "ui_test_mount_test_refresh_selected_folder_noop_when_path_none"
},
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/ui/test_mount.py",
+ "source_location": "L1465",
+ "weight": 1.0,
+ "source": "ui_test_mount_rationale_1465",
+ "target": "ui_test_mount_test_refresh_selected_folder_swallows_scan_failure",
+ "confidence_score": 1.0
+ },
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
@@ -99157,6 +104973,16 @@
"source": "ui_test_mount_rationale_1545",
"target": "ui_test_mount_test_refresh_selected_folder_swallows_scan_failure"
},
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/ui/test_mount.py",
+ "source_location": "L1484",
+ "weight": 1.0,
+ "source": "ui_test_mount_rationale_1484",
+ "target": "ui_test_mount_test_open_in_os_returns_false_on_unhandled_platform",
+ "confidence_score": 1.0
+ },
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
@@ -99227,6 +105053,16 @@
"source": "ui_test_mount_rationale_1411",
"target": "ui_test_mount_test_open_in_os_returns_false_on_unhandled_platform"
},
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/ui/test_mount.py",
+ "source_location": "L1490",
+ "weight": 1.0,
+ "source": "ui_test_mount_rationale_1490",
+ "target": "ui_test_mount_test_open_in_os_linux_invokes_xdg_open",
+ "confidence_score": 1.0
+ },
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
@@ -99297,6 +105133,16 @@
"source": "ui_test_mount_rationale_1417",
"target": "ui_test_mount_test_open_in_os_linux_invokes_xdg_open"
},
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/ui/test_mount.py",
+ "source_location": "L1504",
+ "weight": 1.0,
+ "source": "ui_test_mount_rationale_1504",
+ "target": "ui_test_mount_test_open_in_os_darwin_invokes_open",
+ "confidence_score": 1.0
+ },
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
@@ -99367,6 +105213,16 @@
"source": "ui_test_mount_rationale_1431",
"target": "ui_test_mount_test_open_in_os_darwin_invokes_open"
},
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/ui/test_mount.py",
+ "source_location": "L1513",
+ "weight": 1.0,
+ "source": "ui_test_mount_rationale_1513",
+ "target": "ui_test_mount_test_open_in_os_returns_false_when_popen_raises",
+ "confidence_score": 1.0
+ },
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
@@ -99759,39 +105615,6 @@
"source": "ui_test_mount_test_run_staging_action_clear_verified_invokes_clear",
"target": "ui_test_mount_uispy"
},
- {
- "relation": "calls",
- "context": "call",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L1650",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "ui_test_mount_test_bulk_clear_verified_clears_verified_rows",
- "target": "ui_test_mount_uispy"
- },
- {
- "relation": "calls",
- "context": "call",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L1662",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "ui_test_mount_test_bulk_clear_verified_no_config_toasts_and_returns",
- "target": "ui_test_mount_uispy"
- },
- {
- "relation": "calls",
- "context": "call",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L1676",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "ui_test_mount_test_bulk_clear_verified_logs_helper_exception",
- "target": "ui_test_mount_uispy"
- },
{
"relation": "calls",
"context": "call",
@@ -100067,17 +105890,6 @@
"source": "ui_test_mount_test_render_run_wizard_builds_page",
"target": "ui_test_mount_uispy"
},
- {
- "relation": "calls",
- "context": "call",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L2746",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "ui_test_mount_test_bulk_clear_verified_no_verified_rows_toasts",
- "target": "ui_test_mount_uispy"
- },
{
"relation": "calls",
"context": "call",
@@ -100104,11 +105916,11 @@
"relation": "rationale_for",
"confidence": "EXTRACTED",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L1621",
+ "source_location": "L1537",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "ui_test_mount_rationale_1621",
- "target": "ui_test_mount_uispy"
+ "source": "ui_test_mount_rationale_1537",
+ "target": "ui_test_mount_uispy",
+ "confidence_score": 1.0
},
{
"relation": "uses",
@@ -100250,6 +106062,60 @@
"source": "ui_test_mount_uispy",
"target": "routers_browse_folderresponse"
},
+ {
+ "relation": "calls",
+ "context": "call",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/ui/test_mount.py",
+ "source_location": "L1650",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "ui_test_mount_test_bulk_clear_verified_clears_verified_rows",
+ "target": "ui_test_mount_uispy"
+ },
+ {
+ "relation": "calls",
+ "context": "call",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/ui/test_mount.py",
+ "source_location": "L1662",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "ui_test_mount_test_bulk_clear_verified_no_config_toasts_and_returns",
+ "target": "ui_test_mount_uispy"
+ },
+ {
+ "relation": "calls",
+ "context": "call",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/ui/test_mount.py",
+ "source_location": "L1676",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "ui_test_mount_test_bulk_clear_verified_logs_helper_exception",
+ "target": "ui_test_mount_uispy"
+ },
+ {
+ "relation": "calls",
+ "context": "call",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/ui/test_mount.py",
+ "source_location": "L2746",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "ui_test_mount_test_bulk_clear_verified_no_verified_rows_toasts",
+ "target": "ui_test_mount_uispy"
+ },
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/ui/test_mount.py",
+ "source_location": "L1621",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "ui_test_mount_rationale_1621",
+ "target": "ui_test_mount_uispy"
+ },
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
@@ -100320,6 +106186,16 @@
"source": "ui_test_mount_uispy",
"target": "config_models_rclonesftptransport"
},
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/ui/test_mount.py",
+ "source_location": "L1562",
+ "weight": 1.0,
+ "source": "ui_test_mount_rationale_1562",
+ "target": "ui_test_mount_test_file_context_action_open_in_os_dispatches_to_helper",
+ "confidence_score": 1.0
+ },
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
@@ -100390,6 +106266,16 @@
"source": "ui_test_mount_rationale_1489",
"target": "ui_test_mount_test_file_context_action_open_in_os_dispatches_to_helper"
},
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/ui/test_mount.py",
+ "source_location": "L1574",
+ "weight": 1.0,
+ "source": "ui_test_mount_rationale_1574",
+ "target": "ui_test_mount_test_file_context_action_open_in_os_failure_toasts_negative",
+ "confidence_score": 1.0
+ },
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
@@ -100460,6 +106346,16 @@
"source": "ui_test_mount_rationale_1501",
"target": "ui_test_mount_test_file_context_action_open_in_os_failure_toasts_negative"
},
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/ui/test_mount.py",
+ "source_location": "L1583",
+ "weight": 1.0,
+ "source": "ui_test_mount_rationale_1583",
+ "target": "ui_test_mount_test_file_context_action_copy_path_writes_clipboard",
+ "confidence_score": 1.0
+ },
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
@@ -100530,6 +106426,16 @@
"source": "ui_test_mount_rationale_1510",
"target": "ui_test_mount_test_file_context_action_copy_path_writes_clipboard"
},
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/ui/test_mount.py",
+ "source_location": "L1591",
+ "weight": 1.0,
+ "source": "ui_test_mount_rationale_1591",
+ "target": "ui_test_mount_test_file_context_action_unknown_action_no_raise",
+ "confidence_score": 1.0
+ },
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
@@ -100600,6 +106506,16 @@
"source": "ui_test_mount_rationale_1518",
"target": "ui_test_mount_test_file_context_action_unknown_action_no_raise"
},
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/ui/test_mount.py",
+ "source_location": "L1598",
+ "weight": 1.0,
+ "source": "ui_test_mount_rationale_1598",
+ "target": "ui_test_mount_test_file_context_action_empty_path_toasts_negative",
+ "confidence_score": 1.0
+ },
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
@@ -100851,86 +106767,15 @@
"source": "ui_test_mount_stubnassync",
"target": "config_models_rclonesftptransport"
},
- {
- "relation": "calls",
- "context": "call",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L1514",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "ui_test_mount_drain_background",
- "target": "ui_test_mount_dialogstub_close"
- },
- {
- "relation": "rationale_for",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L1702",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "ui_test_mount_rationale_1702",
- "target": "ui_test_mount_drain_background"
- },
- {
- "relation": "rationale_for",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L1696",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "ui_test_mount_rationale_1696",
- "target": "ui_test_mount_drain_background"
- },
- {
- "relation": "rationale_for",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L1698",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "ui_test_mount_rationale_1698",
- "target": "ui_test_mount_drain_background"
- },
- {
- "relation": "rationale_for",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L1529",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "ui_test_mount_rationale_1529",
- "target": "ui_test_mount_drain_background"
- },
- {
- "relation": "rationale_for",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L1504",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "ui_test_mount_rationale_1504",
- "target": "ui_test_mount_drain_background"
- },
- {
- "relation": "rationale_for",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L1503",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "ui_test_mount_rationale_1503",
- "target": "ui_test_mount_drain_background"
- },
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L1545",
+ "source_location": "L1618",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "ui_test_mount_rationale_1545",
- "target": "ui_test_mount_drain_background"
+ "source": "ui_test_mount_rationale_1618",
+ "target": "ui_test_mount_test_run_staging_action_force_sync_invokes_nas_sync_enqueue",
+ "confidence_score": 1.0
},
{
"relation": "rationale_for",
@@ -101002,6 +106847,16 @@
"source": "ui_test_mount_rationale_1560",
"target": "ui_test_mount_test_run_staging_action_force_sync_invokes_nas_sync_enqueue"
},
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/ui/test_mount.py",
+ "source_location": "L1631",
+ "weight": 1.0,
+ "source": "ui_test_mount_rationale_1631",
+ "target": "ui_test_mount_test_run_staging_action_force_sync_missing_nas_sync_toasts",
+ "confidence_score": 1.0
+ },
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
@@ -101072,6 +106927,16 @@
"source": "ui_test_mount_rationale_1573",
"target": "ui_test_mount_test_run_staging_action_force_sync_missing_nas_sync_toasts"
},
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/ui/test_mount.py",
+ "source_location": "L1638",
+ "weight": 1.0,
+ "source": "ui_test_mount_rationale_1638",
+ "target": "ui_test_mount_test_run_staging_action_no_config_toasts_negative",
+ "confidence_score": 1.0
+ },
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
@@ -101142,6 +107007,16 @@
"source": "ui_test_mount_rationale_1580",
"target": "ui_test_mount_test_run_staging_action_no_config_toasts_negative"
},
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/ui/test_mount.py",
+ "source_location": "L1647",
+ "weight": 1.0,
+ "source": "ui_test_mount_rationale_1647",
+ "target": "ui_test_mount_test_run_staging_action_view_log_invokes_log_dialog",
+ "confidence_score": 1.0
+ },
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
@@ -101212,6 +107087,16 @@
"source": "ui_test_mount_rationale_1589",
"target": "ui_test_mount_test_run_staging_action_view_log_invokes_log_dialog"
},
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/ui/test_mount.py",
+ "source_location": "L1657",
+ "weight": 1.0,
+ "source": "ui_test_mount_rationale_1657",
+ "target": "ui_test_mount_test_run_staging_action_unknown_action_no_raise",
+ "confidence_score": 1.0
+ },
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
@@ -101282,6 +107167,16 @@
"source": "ui_test_mount_rationale_1599",
"target": "ui_test_mount_test_run_staging_action_unknown_action_no_raise"
},
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/ui/test_mount.py",
+ "source_location": "L1666",
+ "weight": 1.0,
+ "source": "ui_test_mount_rationale_1666",
+ "target": "ui_test_mount_test_run_staging_action_clear_verified_invokes_clear",
+ "confidence_score": 1.0
+ },
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
@@ -101352,216 +107247,6 @@
"source": "ui_test_mount_rationale_1608",
"target": "ui_test_mount_test_run_staging_action_clear_verified_invokes_clear"
},
- {
- "relation": "rationale_for",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L1790",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "ui_test_mount_rationale_1790",
- "target": "ui_test_mount_test_bulk_clear_verified_clears_verified_rows"
- },
- {
- "relation": "rationale_for",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L1784",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "ui_test_mount_rationale_1784",
- "target": "ui_test_mount_test_bulk_clear_verified_clears_verified_rows"
- },
- {
- "relation": "rationale_for",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L1786",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "ui_test_mount_rationale_1786",
- "target": "ui_test_mount_test_bulk_clear_verified_clears_verified_rows"
- },
- {
- "relation": "rationale_for",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L1617",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "ui_test_mount_rationale_1617",
- "target": "ui_test_mount_test_bulk_clear_verified_clears_verified_rows"
- },
- {
- "relation": "rationale_for",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L1592",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "ui_test_mount_rationale_1592",
- "target": "ui_test_mount_test_bulk_clear_verified_clears_verified_rows"
- },
- {
- "relation": "rationale_for",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L1591",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "ui_test_mount_rationale_1591",
- "target": "ui_test_mount_test_bulk_clear_verified_clears_verified_rows"
- },
- {
- "relation": "rationale_for",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L1633",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "ui_test_mount_rationale_1633",
- "target": "ui_test_mount_test_bulk_clear_verified_clears_verified_rows"
- },
- {
- "relation": "rationale_for",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L1817",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "ui_test_mount_rationale_1817",
- "target": "ui_test_mount_test_bulk_clear_verified_no_config_toasts_and_returns"
- },
- {
- "relation": "rationale_for",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L1811",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "ui_test_mount_rationale_1811",
- "target": "ui_test_mount_test_bulk_clear_verified_no_config_toasts_and_returns"
- },
- {
- "relation": "rationale_for",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L1813",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "ui_test_mount_rationale_1813",
- "target": "ui_test_mount_test_bulk_clear_verified_no_config_toasts_and_returns"
- },
- {
- "relation": "rationale_for",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L1644",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "ui_test_mount_rationale_1644",
- "target": "ui_test_mount_test_bulk_clear_verified_no_config_toasts_and_returns"
- },
- {
- "relation": "rationale_for",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L1619",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "ui_test_mount_rationale_1619",
- "target": "ui_test_mount_test_bulk_clear_verified_no_config_toasts_and_returns"
- },
- {
- "relation": "rationale_for",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L1618",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "ui_test_mount_rationale_1618",
- "target": "ui_test_mount_test_bulk_clear_verified_no_config_toasts_and_returns"
- },
- {
- "relation": "rationale_for",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L1660",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "ui_test_mount_rationale_1660",
- "target": "ui_test_mount_test_bulk_clear_verified_no_config_toasts_and_returns"
- },
- {
- "relation": "rationale_for",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L1826",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "ui_test_mount_rationale_1826",
- "target": "ui_test_mount_test_bulk_clear_verified_logs_helper_exception"
- },
- {
- "relation": "rationale_for",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L1820",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "ui_test_mount_rationale_1820",
- "target": "ui_test_mount_test_bulk_clear_verified_logs_helper_exception"
- },
- {
- "relation": "rationale_for",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L1822",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "ui_test_mount_rationale_1822",
- "target": "ui_test_mount_test_bulk_clear_verified_logs_helper_exception"
- },
- {
- "relation": "rationale_for",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L1653",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "ui_test_mount_rationale_1653",
- "target": "ui_test_mount_test_bulk_clear_verified_logs_helper_exception"
- },
- {
- "relation": "rationale_for",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L1628",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "ui_test_mount_rationale_1628",
- "target": "ui_test_mount_test_bulk_clear_verified_logs_helper_exception"
- },
- {
- "relation": "rationale_for",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L1627",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "ui_test_mount_rationale_1627",
- "target": "ui_test_mount_test_bulk_clear_verified_logs_helper_exception"
- },
- {
- "relation": "rationale_for",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L1669",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "ui_test_mount_rationale_1669",
- "target": "ui_test_mount_test_bulk_clear_verified_logs_helper_exception"
- },
{
"relation": "inherits",
"confidence": "EXTRACTED",
@@ -102008,6 +107693,28 @@
"source": "controller_creation_format_error",
"target": "dict"
},
+ {
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "src/exlab_wizard/controller/metadata_assembly.py",
+ "source_location": "L214",
+ "weight": 1.0,
+ "source": "controller_metadata_assembly_build_creation_json",
+ "target": "dict"
+ },
+ {
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "src/exlab_wizard/sample_data/generator.py",
+ "source_location": "L377",
+ "weight": 1.0,
+ "source": "sample_data_generator_sampledatagenerator_write_project",
+ "target": "dict"
+ },
{
"relation": "calls",
"context": "call",
@@ -102187,11 +107894,11 @@
"relation": "rationale_for",
"confidence": "EXTRACTED",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L1850",
+ "source_location": "L1699",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "ui_test_mount_rationale_1850",
- "target": "ui_test_mount_stubapp"
+ "source": "ui_test_mount_rationale_1699",
+ "target": "ui_test_mount_stubapp",
+ "confidence_score": 1.0
},
{
"relation": "uses",
@@ -102333,6 +108040,16 @@
"source": "ui_test_mount_stubapp",
"target": "routers_browse_folderresponse"
},
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/ui/test_mount.py",
+ "source_location": "L1850",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "ui_test_mount_rationale_1850",
+ "target": "ui_test_mount_stubapp"
+ },
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
@@ -102403,6 +108120,16 @@
"source": "ui_test_mount_stubapp",
"target": "config_models_rclonesftptransport"
},
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/ui/test_mount.py",
+ "source_location": "L1710",
+ "weight": 1.0,
+ "source": "ui_test_mount_rationale_1710",
+ "target": "ui_test_mount_test_drive_folder_feed_returns_empty_when_no_selection",
+ "confidence_score": 1.0
+ },
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
@@ -102484,6 +108211,16 @@
"source": "ui_test_mount_test_drive_folder_feed_creates_feed_on_first_render",
"target": "ui_test_mount_dialogstub_close"
},
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/ui/test_mount.py",
+ "source_location": "L1720",
+ "weight": 1.0,
+ "source": "ui_test_mount_rationale_1720",
+ "target": "ui_test_mount_test_drive_folder_feed_creates_feed_on_first_render",
+ "confidence_score": 1.0
+ },
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
@@ -102569,11 +108306,11 @@
"relation": "rationale_for",
"confidence": "EXTRACTED",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L1884",
+ "source_location": "L1733",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "ui_test_mount_rationale_1884",
- "target": "ui_test_mount_test_drive_folder_feed_converts_cached_payload_to_entries"
+ "source": "ui_test_mount_rationale_1733",
+ "target": "ui_test_mount_test_drive_folder_feed_converts_cached_payload_to_entries",
+ "confidence_score": 1.0
},
{
"relation": "calls",
@@ -102597,6 +108334,16 @@
"source": "ui_test_mount_test_drive_folder_feed_converts_cached_payload_to_entries",
"target": "routers_browse_folderentry"
},
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/ui/test_mount.py",
+ "source_location": "L1884",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "ui_test_mount_rationale_1884",
+ "target": "ui_test_mount_test_drive_folder_feed_converts_cached_payload_to_entries"
+ },
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
@@ -102657,6 +108404,16 @@
"source": "ui_test_mount_rationale_1727",
"target": "ui_test_mount_test_drive_folder_feed_converts_cached_payload_to_entries"
},
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/ui/test_mount.py",
+ "source_location": "L1775",
+ "weight": 1.0,
+ "source": "ui_test_mount_rationale_1775",
+ "target": "ui_test_mount_test_fetch_folder_async_skips_when_coord_says_skip",
+ "confidence_score": 1.0
+ },
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
@@ -102727,6 +108484,16 @@
"source": "ui_test_mount_rationale_1769",
"target": "ui_test_mount_test_fetch_folder_async_skips_when_coord_says_skip"
},
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/ui/test_mount.py",
+ "source_location": "L1792",
+ "weight": 1.0,
+ "source": "ui_test_mount_rationale_1792",
+ "target": "ui_test_mount_test_fetch_folder_async_records_refresh_on_success",
+ "confidence_score": 1.0
+ },
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
@@ -102797,6 +108564,16 @@
"source": "ui_test_mount_rationale_1786",
"target": "ui_test_mount_test_fetch_folder_async_records_refresh_on_success"
},
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/ui/test_mount.py",
+ "source_location": "L1811",
+ "weight": 1.0,
+ "source": "ui_test_mount_rationale_1811",
+ "target": "ui_test_mount_test_fetch_folder_async_swallows_helper_exceptions",
+ "confidence_score": 1.0
+ },
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
@@ -102867,6 +108644,16 @@
"source": "ui_test_mount_rationale_1805",
"target": "ui_test_mount_test_fetch_folder_async_swallows_helper_exceptions"
},
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/ui/test_mount.py",
+ "source_location": "L1827",
+ "weight": 1.0,
+ "source": "ui_test_mount_rationale_1827",
+ "target": "ui_test_mount_test_open_log_dialog_no_queue_job_renders_dialog",
+ "confidence_score": 1.0
+ },
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
@@ -102937,6 +108724,16 @@
"source": "ui_test_mount_rationale_1821",
"target": "ui_test_mount_test_open_log_dialog_no_queue_job_renders_dialog"
},
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/ui/test_mount.py",
+ "source_location": "L1836",
+ "weight": 1.0,
+ "source": "ui_test_mount_rationale_1836",
+ "target": "ui_test_mount_test_open_log_dialog_with_queue_job_renders_dialog",
+ "confidence_score": 1.0
+ },
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
@@ -103007,6 +108804,16 @@
"source": "ui_test_mount_rationale_1830",
"target": "ui_test_mount_test_open_log_dialog_with_queue_job_renders_dialog"
},
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/ui/test_mount.py",
+ "source_location": "L1864",
+ "weight": 1.0,
+ "source": "ui_test_mount_rationale_1864",
+ "target": "ui_test_mount_test_build_metadata_payload_returns_empty_on_builder_exception",
+ "confidence_score": 1.0
+ },
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
@@ -103077,6 +108884,16 @@
"source": "ui_test_mount_rationale_1858",
"target": "ui_test_mount_test_build_metadata_payload_returns_empty_on_builder_exception"
},
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/ui/test_mount.py",
+ "source_location": "L1877",
+ "weight": 1.0,
+ "source": "ui_test_mount_rationale_1877",
+ "target": "ui_test_mount_test_metadata_for_relay_equipment_emits_id_label_source_host",
+ "confidence_score": 1.0
+ },
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
@@ -103147,6 +108964,16 @@
"source": "ui_test_mount_rationale_1871",
"target": "ui_test_mount_test_metadata_for_relay_equipment_emits_id_label_source_host"
},
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/ui/test_mount.py",
+ "source_location": "L1893",
+ "weight": 1.0,
+ "source": "ui_test_mount_rationale_1893",
+ "target": "ui_test_mount_test_metadata_for_relay_equipment_unknown_id_falls_back",
+ "confidence_score": 1.0
+ },
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
@@ -103217,6 +109044,16 @@
"source": "ui_test_mount_rationale_1887",
"target": "ui_test_mount_test_metadata_for_relay_equipment_unknown_id_falls_back"
},
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/ui/test_mount.py",
+ "source_location": "L1900",
+ "weight": 1.0,
+ "source": "ui_test_mount_rationale_1900",
+ "target": "ui_test_mount_test_metadata_for_project_returns_empty_for_single_segment_id",
+ "confidence_score": 1.0
+ },
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
@@ -103287,6 +109124,16 @@
"source": "ui_test_mount_rationale_1894",
"target": "ui_test_mount_test_metadata_for_project_returns_empty_for_single_segment_id"
},
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/ui/test_mount.py",
+ "source_location": "L1906",
+ "weight": 1.0,
+ "source": "ui_test_mount_rationale_1906",
+ "target": "ui_test_mount_test_count_dir_children_returns_zero_for_missing_dir",
+ "confidence_score": 1.0
+ },
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
@@ -103357,6 +109204,16 @@
"source": "ui_test_mount_rationale_1900",
"target": "ui_test_mount_test_count_dir_children_returns_zero_for_missing_dir"
},
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/ui/test_mount.py",
+ "source_location": "L1911",
+ "weight": 1.0,
+ "source": "ui_test_mount_rationale_1911",
+ "target": "ui_test_mount_test_count_dir_children_filters_by_prefix",
+ "confidence_score": 1.0
+ },
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
@@ -103427,6 +109284,16 @@
"source": "ui_test_mount_rationale_1905",
"target": "ui_test_mount_test_count_dir_children_filters_by_prefix"
},
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/ui/test_mount.py",
+ "source_location": "L1920",
+ "weight": 1.0,
+ "source": "ui_test_mount_rationale_1920",
+ "target": "ui_test_mount_test_metadata_for_run_returns_partial_on_decode_failure",
+ "confidence_score": 1.0
+ },
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
@@ -103497,6 +109364,16 @@
"source": "ui_test_mount_rationale_1914",
"target": "ui_test_mount_test_metadata_for_run_returns_partial_on_decode_failure"
},
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/ui/test_mount.py",
+ "source_location": "L1933",
+ "weight": 1.0,
+ "source": "ui_test_mount_rationale_1933",
+ "target": "ui_test_mount_test_run_staging_action_force_sync_exception_path_no_raise",
+ "confidence_score": 1.0
+ },
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
@@ -103567,6 +109444,16 @@
"source": "ui_test_mount_rationale_1927",
"target": "ui_test_mount_test_run_staging_action_force_sync_exception_path_no_raise"
},
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/ui/test_mount.py",
+ "source_location": "L1949",
+ "weight": 1.0,
+ "source": "ui_test_mount_rationale_1949",
+ "target": "ui_test_mount_test_run_staging_action_clear_verified_exception_path_no_raise",
+ "confidence_score": 1.0
+ },
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
@@ -103637,6 +109524,16 @@
"source": "ui_test_mount_rationale_1943",
"target": "ui_test_mount_test_run_staging_action_clear_verified_exception_path_no_raise"
},
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/ui/test_mount.py",
+ "source_location": "L1965",
+ "weight": 1.0,
+ "source": "ui_test_mount_rationale_1965",
+ "target": "ui_test_mount_test_run_staging_action_clear_verified_zero_files_branch",
+ "confidence_score": 1.0
+ },
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
@@ -103707,6 +109604,16 @@
"source": "ui_test_mount_rationale_1959",
"target": "ui_test_mount_test_run_staging_action_clear_verified_zero_files_branch"
},
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/ui/test_mount.py",
+ "source_location": "L1978",
+ "weight": 1.0,
+ "source": "ui_test_mount_rationale_1978",
+ "target": "ui_test_mount_test_file_context_action_clipboard_failure_toasts",
+ "confidence_score": 1.0
+ },
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
@@ -103980,6 +109887,17 @@
"source": "ui_test_mount_test_drive_folder_feed_tolerates_storage_error",
"target": "ui_test_mount_dialogstub_close"
},
+ {
+ "relation": "calls",
+ "context": "call",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/ui/test_mount.py",
+ "source_location": "L1514",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "ui_test_mount_drain_background",
+ "target": "ui_test_mount_dialogstub_close"
+ },
{
"relation": "method",
"confidence": "EXTRACTED",
@@ -104131,11 +110049,11 @@
"relation": "rationale_for",
"confidence": "EXTRACTED",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L2166",
+ "source_location": "L2015",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "ui_test_mount_rationale_2166",
- "target": "ui_test_mount_dialogui"
+ "source": "ui_test_mount_rationale_2015",
+ "target": "ui_test_mount_dialogui",
+ "confidence_score": 1.0
},
{
"relation": "uses",
@@ -104277,6 +110195,16 @@
"source": "ui_test_mount_dialogui",
"target": "routers_browse_folderresponse"
},
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/ui/test_mount.py",
+ "source_location": "L2166",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "ui_test_mount_rationale_2166",
+ "target": "ui_test_mount_dialogui"
+ },
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
@@ -104327,6 +110255,16 @@
"source": "ui_test_mount_rationale_1967",
"target": "ui_test_mount_dialogui"
},
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/ui/test_mount.py",
+ "source_location": "L2059",
+ "weight": 1.0,
+ "source": "ui_test_mount_rationale_2059",
+ "target": "ui_test_mount_test_nas_test_connection_unavailable_when_probe_missing",
+ "confidence_score": 1.0
+ },
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
@@ -104387,6 +110325,16 @@
"source": "ui_test_mount_rationale_2011",
"target": "ui_test_mount_test_nas_test_connection_unavailable_when_probe_missing"
},
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/ui/test_mount.py",
+ "source_location": "L2071",
+ "weight": 1.0,
+ "source": "ui_test_mount_rationale_2071",
+ "target": "ui_test_mount_test_nas_test_connection_success_maps_latency",
+ "confidence_score": 1.0
+ },
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
@@ -104447,6 +110395,16 @@
"source": "ui_test_mount_rationale_2023",
"target": "ui_test_mount_test_nas_test_connection_success_maps_latency"
},
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/ui/test_mount.py",
+ "source_location": "L2098",
+ "weight": 1.0,
+ "source": "ui_test_mount_rationale_2098",
+ "target": "ui_test_mount_test_nas_test_connection_awaits_coroutine_probe",
+ "confidence_score": 1.0
+ },
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
@@ -104507,6 +110465,16 @@
"source": "ui_test_mount_rationale_2050",
"target": "ui_test_mount_test_nas_test_connection_awaits_coroutine_probe"
},
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/ui/test_mount.py",
+ "source_location": "L2128",
+ "weight": 1.0,
+ "source": "ui_test_mount_rationale_2128",
+ "target": "ui_test_mount_test_setup_next_action_returns_action_for_incomplete_setup",
+ "confidence_score": 1.0
+ },
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
@@ -104567,6 +110535,16 @@
"source": "ui_test_mount_rationale_2080",
"target": "ui_test_mount_test_setup_next_action_returns_action_for_incomplete_setup"
},
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/ui/test_mount.py",
+ "source_location": "L2135",
+ "weight": 1.0,
+ "source": "ui_test_mount_rationale_2135",
+ "target": "ui_test_mount_test_setup_next_action_none_when_ready",
+ "confidence_score": 1.0
+ },
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
@@ -104627,6 +110605,16 @@
"source": "ui_test_mount_rationale_2087",
"target": "ui_test_mount_test_setup_next_action_none_when_ready"
},
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/ui/test_mount.py",
+ "source_location": "L2159",
+ "weight": 1.0,
+ "source": "ui_test_mount_rationale_2159",
+ "target": "ui_test_mount_test_toggle_keep_local_no_writer_toasts",
+ "confidence_score": 1.0
+ },
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
@@ -104687,6 +110675,16 @@
"source": "ui_test_mount_rationale_2111",
"target": "ui_test_mount_test_toggle_keep_local_no_writer_toasts"
},
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/ui/test_mount.py",
+ "source_location": "L2168",
+ "weight": 1.0,
+ "source": "ui_test_mount_rationale_2168",
+ "target": "ui_test_mount_test_toggle_keep_local_file_not_in_run_toasts",
+ "confidence_score": 1.0
+ },
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
@@ -104747,6 +110745,16 @@
"source": "ui_test_mount_rationale_2120",
"target": "ui_test_mount_test_toggle_keep_local_file_not_in_run_toasts"
},
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/ui/test_mount.py",
+ "source_location": "L2179",
+ "weight": 1.0,
+ "source": "ui_test_mount_rationale_2179",
+ "target": "ui_test_mount_test_toggle_keep_local_invokes_writer_and_on_done",
+ "confidence_score": 1.0
+ },
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
@@ -104807,6 +110815,16 @@
"source": "ui_test_mount_rationale_2131",
"target": "ui_test_mount_test_toggle_keep_local_invokes_writer_and_on_done"
},
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/ui/test_mount.py",
+ "source_location": "L2234",
+ "weight": 1.0,
+ "source": "ui_test_mount_rationale_2234",
+ "target": "ui_test_mount_test_file_context_action_keep_local_dispatches",
+ "confidence_score": 1.0
+ },
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
@@ -104867,6 +110885,16 @@
"source": "ui_test_mount_rationale_2186",
"target": "ui_test_mount_test_file_context_action_keep_local_dispatches"
},
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/ui/test_mount.py",
+ "source_location": "L2251",
+ "weight": 1.0,
+ "source": "ui_test_mount_rationale_2251",
+ "target": "ui_test_mount_test_open_in_os_win32_invokes_startfile",
+ "confidence_score": 1.0
+ },
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
@@ -104960,6 +110988,16 @@
"source": "ui_test_mount_store_with_running_session",
"target": "controller_session_store_sessionstore"
},
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/ui/test_mount.py",
+ "source_location": "L2285",
+ "weight": 1.0,
+ "source": "ui_test_mount_rationale_2285",
+ "target": "ui_test_mount_test_open_operations_modal_no_controller_toasts",
+ "confidence_score": 1.0
+ },
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
@@ -105020,6 +111058,16 @@
"source": "ui_test_mount_rationale_2237",
"target": "ui_test_mount_test_open_operations_modal_no_controller_toasts"
},
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/ui/test_mount.py",
+ "source_location": "L2291",
+ "weight": 1.0,
+ "source": "ui_test_mount_rationale_2291",
+ "target": "ui_test_mount_test_open_operations_modal_opens_with_controller",
+ "confidence_score": 1.0
+ },
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
@@ -105080,6 +111128,16 @@
"source": "ui_test_mount_rationale_2243",
"target": "ui_test_mount_test_open_operations_modal_opens_with_controller"
},
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/ui/test_mount.py",
+ "source_location": "L2312",
+ "weight": 1.0,
+ "source": "ui_test_mount_rationale_2312",
+ "target": "ui_test_mount_test_open_operation_details_renders_state_and_pending",
+ "confidence_score": 1.0
+ },
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
@@ -105140,6 +111198,16 @@
"source": "ui_test_mount_rationale_2264",
"target": "ui_test_mount_test_open_operation_details_renders_state_and_pending"
},
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/ui/test_mount.py",
+ "source_location": "L2336",
+ "weight": 1.0,
+ "source": "ui_test_mount_rationale_2336",
+ "target": "ui_test_mount_test_resume_operation_no_pending_input_toasts",
+ "confidence_score": 1.0
+ },
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
@@ -105200,6 +111268,16 @@
"source": "ui_test_mount_rationale_2288",
"target": "ui_test_mount_test_resume_operation_no_pending_input_toasts"
},
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/ui/test_mount.py",
+ "source_location": "L2345",
+ "weight": 1.0,
+ "source": "ui_test_mount_rationale_2345",
+ "target": "ui_test_mount_test_resume_operation_opens_input_dialog",
+ "confidence_score": 1.0
+ },
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
@@ -105260,6 +111338,16 @@
"source": "ui_test_mount_rationale_2297",
"target": "ui_test_mount_test_resume_operation_opens_input_dialog"
},
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/ui/test_mount.py",
+ "source_location": "L2374",
+ "weight": 1.0,
+ "source": "ui_test_mount_rationale_2374",
+ "target": "ui_test_mount_test_open_input_required_dialog_submit_resumes_controller",
+ "confidence_score": 1.0
+ },
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
@@ -105331,6 +111419,16 @@
"source": "ui_test_mount_rationale_2326",
"target": "ui_test_mount_test_open_input_required_dialog_submit_resumes_controller"
},
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/ui/test_mount.py",
+ "source_location": "L2406",
+ "weight": 1.0,
+ "source": "ui_test_mount_rationale_2406",
+ "target": "ui_test_mount_test_open_input_required_dialog_cancel_routes_to_cancel_session",
+ "confidence_score": 1.0
+ },
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
@@ -105391,6 +111489,16 @@
"source": "ui_test_mount_rationale_2358",
"target": "ui_test_mount_test_open_input_required_dialog_cancel_routes_to_cancel_session"
},
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/ui/test_mount.py",
+ "source_location": "L2446",
+ "weight": 1.0,
+ "source": "ui_test_mount_rationale_2446",
+ "target": "ui_test_mount_test_cancel_session_discard_calls_controller_cancel",
+ "confidence_score": 1.0
+ },
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
@@ -105462,6 +111570,16 @@
"source": "ui_test_mount_rationale_2398",
"target": "ui_test_mount_test_cancel_session_discard_calls_controller_cancel"
},
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/ui/test_mount.py",
+ "source_location": "L2465",
+ "weight": 1.0,
+ "source": "ui_test_mount_rationale_2465",
+ "target": "ui_test_mount_test_cancel_session_keep_files_calls_controller_cancel",
+ "confidence_score": 1.0
+ },
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
@@ -105533,6 +111651,16 @@
"source": "ui_test_mount_rationale_2417",
"target": "ui_test_mount_test_cancel_session_keep_files_calls_controller_cancel"
},
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/ui/test_mount.py",
+ "source_location": "L2482",
+ "weight": 1.0,
+ "source": "ui_test_mount_rationale_2482",
+ "target": "ui_test_mount_test_cancel_session_swallows_controller_failure",
+ "confidence_score": 1.0
+ },
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
@@ -105604,6 +111732,16 @@
"source": "ui_test_mount_rationale_2434",
"target": "ui_test_mount_test_cancel_session_swallows_controller_failure"
},
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/ui/test_mount.py",
+ "source_location": "L2498",
+ "weight": 1.0,
+ "source": "ui_test_mount_rationale_2498",
+ "target": "ui_test_mount_test_cancel_session_back_button_closes_dialog",
+ "confidence_score": 1.0
+ },
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
@@ -105664,6 +111802,16 @@
"source": "ui_test_mount_rationale_2450",
"target": "ui_test_mount_test_cancel_session_back_button_closes_dialog"
},
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/ui/test_mount.py",
+ "source_location": "L2512",
+ "weight": 1.0,
+ "source": "ui_test_mount_rationale_2512",
+ "target": "ui_test_mount_test_open_log_dialog_renders_row_fields",
+ "confidence_score": 1.0
+ },
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
@@ -105724,6 +111872,16 @@
"source": "ui_test_mount_rationale_2464",
"target": "ui_test_mount_test_open_log_dialog_renders_row_fields"
},
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/ui/test_mount.py",
+ "source_location": "L2540",
+ "weight": 1.0,
+ "source": "ui_test_mount_rationale_2540",
+ "target": "ui_test_mount_test_open_log_dialog_no_row_renders_empty_line",
+ "confidence_score": 1.0
+ },
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
@@ -105784,6 +111942,16 @@
"source": "ui_test_mount_rationale_2492",
"target": "ui_test_mount_test_open_log_dialog_no_row_renders_empty_line"
},
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/ui/test_mount.py",
+ "source_location": "L2556",
+ "weight": 1.0,
+ "source": "ui_test_mount_rationale_2556",
+ "target": "ui_test_mount_test_consume_session_progress_early_return_without_progress",
+ "confidence_score": 1.0
+ },
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
@@ -105855,6 +112023,16 @@
"source": "ui_test_mount_rationale_2508",
"target": "ui_test_mount_test_consume_session_progress_early_return_without_progress"
},
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/ui/test_mount.py",
+ "source_location": "L2567",
+ "weight": 1.0,
+ "source": "ui_test_mount_rationale_2567",
+ "target": "ui_test_mount_test_consume_session_progress_opens_dialog_then_closes_on_done",
+ "confidence_score": 1.0
+ },
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
@@ -105926,6 +112104,16 @@
"source": "ui_test_mount_rationale_2519",
"target": "ui_test_mount_test_consume_session_progress_opens_dialog_then_closes_on_done"
},
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/ui/test_mount.py",
+ "source_location": "L2604",
+ "weight": 1.0,
+ "source": "ui_test_mount_rationale_2604",
+ "target": "ui_test_mount_test_consume_session_progress_swallows_stream_failure",
+ "confidence_score": 1.0
+ },
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
@@ -105997,6 +112185,16 @@
"source": "ui_test_mount_rationale_2556",
"target": "ui_test_mount_test_consume_session_progress_swallows_stream_failure"
},
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/ui/test_mount.py",
+ "source_location": "L2644",
+ "weight": 1.0,
+ "source": "ui_test_mount_rationale_2644",
+ "target": "ui_test_mount_test_submit_run_toasts_without_template",
+ "confidence_score": 1.0
+ },
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
@@ -106057,6 +112255,16 @@
"source": "ui_test_mount_rationale_2596",
"target": "ui_test_mount_test_submit_run_toasts_without_template"
},
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/ui/test_mount.py",
+ "source_location": "L2655",
+ "weight": 1.0,
+ "source": "ui_test_mount_rationale_2655",
+ "target": "ui_test_mount_test_render_run_wizard_builds_page",
+ "confidence_score": 1.0
+ },
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
@@ -106117,6 +112325,16 @@
"source": "ui_test_mount_rationale_2607",
"target": "ui_test_mount_test_render_run_wizard_builds_page"
},
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/ui/test_mount.py",
+ "source_location": "L2684",
+ "weight": 1.0,
+ "source": "ui_test_mount_rationale_2684",
+ "target": "ui_test_mount_test_classify_node_skips_non_equipment_hierarchy_keys",
+ "confidence_score": 1.0
+ },
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
@@ -106177,6 +112395,16 @@
"source": "ui_test_mount_rationale_2636",
"target": "ui_test_mount_test_classify_node_skips_non_equipment_hierarchy_keys"
},
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/ui/test_mount.py",
+ "source_location": "L2693",
+ "weight": 1.0,
+ "source": "ui_test_mount_rationale_2693",
+ "target": "ui_test_mount_test_build_metadata_payload_received_equipment_kind",
+ "confidence_score": 1.0
+ },
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
@@ -106237,6 +112465,16 @@
"source": "ui_test_mount_rationale_2645",
"target": "ui_test_mount_test_build_metadata_payload_received_equipment_kind"
},
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/ui/test_mount.py",
+ "source_location": "L2709",
+ "weight": 1.0,
+ "source": "ui_test_mount_rationale_2709",
+ "target": "ui_test_mount_test_metadata_for_owned_equipment_projects_fields",
+ "confidence_score": 1.0
+ },
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
@@ -106297,6 +112535,16 @@
"source": "ui_test_mount_rationale_2661",
"target": "ui_test_mount_test_metadata_for_owned_equipment_projects_fields"
},
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/ui/test_mount.py",
+ "source_location": "L2731",
+ "weight": 1.0,
+ "source": "ui_test_mount_rationale_2731",
+ "target": "ui_test_mount_test_lims_catalogue_projects_schema_mismatch_returns_empty",
+ "confidence_score": 1.0
+ },
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
@@ -106357,6 +112605,16 @@
"source": "ui_test_mount_rationale_2683",
"target": "ui_test_mount_test_lims_catalogue_projects_schema_mismatch_returns_empty"
},
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/ui/test_mount.py",
+ "source_location": "L2743",
+ "weight": 1.0,
+ "source": "ui_test_mount_rationale_2743",
+ "target": "ui_test_mount_test_drive_folder_feed_tolerates_storage_error",
+ "confidence_score": 1.0
+ },
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
@@ -106417,6 +112675,16 @@
"source": "ui_test_mount_rationale_2695",
"target": "ui_test_mount_test_drive_folder_feed_tolerates_storage_error"
},
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/ui/test_mount.py",
+ "source_location": "L2765",
+ "weight": 1.0,
+ "source": "ui_test_mount_rationale_2765",
+ "target": "ui_test_mount_test_is_setup_ready_swallows_evaluation_failure",
+ "confidence_score": 1.0
+ },
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
@@ -106477,6 +112745,16 @@
"source": "ui_test_mount_rationale_2717",
"target": "ui_test_mount_test_is_setup_ready_swallows_evaluation_failure"
},
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/ui/test_mount.py",
+ "source_location": "L2778",
+ "weight": 1.0,
+ "source": "ui_test_mount_rationale_2778",
+ "target": "ui_test_mount_test_metadata_for_owned_equipment_no_match_returns_empty",
+ "confidence_score": 1.0
+ },
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
@@ -106541,61 +112819,11 @@
"relation": "rationale_for",
"confidence": "EXTRACTED",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L2937",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "ui_test_mount_rationale_2937",
- "target": "ui_test_mount_test_bulk_clear_verified_no_verified_rows_toasts"
- },
- {
- "relation": "rationale_for",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L2931",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "ui_test_mount_rationale_2931",
- "target": "ui_test_mount_test_bulk_clear_verified_no_verified_rows_toasts"
- },
- {
- "relation": "rationale_for",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L2933",
+ "source_location": "L2786",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "ui_test_mount_rationale_2933",
- "target": "ui_test_mount_test_bulk_clear_verified_no_verified_rows_toasts"
- },
- {
- "relation": "rationale_for",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L2764",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "ui_test_mount_rationale_2764",
- "target": "ui_test_mount_test_bulk_clear_verified_no_verified_rows_toasts"
- },
- {
- "relation": "rationale_for",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L2739",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "ui_test_mount_rationale_2739",
- "target": "ui_test_mount_test_bulk_clear_verified_no_verified_rows_toasts"
- },
- {
- "relation": "rationale_for",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L2738",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "ui_test_mount_rationale_2738",
- "target": "ui_test_mount_test_bulk_clear_verified_no_verified_rows_toasts"
+ "source": "ui_test_mount_rationale_2786",
+ "target": "ui_test_mount_test_toggle_keep_local_unresolvable_relative_path_toasts",
+ "confidence_score": 1.0
},
{
"relation": "rationale_for",
@@ -106657,6 +112885,16 @@
"source": "ui_test_mount_rationale_2755",
"target": "ui_test_mount_test_toggle_keep_local_unresolvable_relative_path_toasts"
},
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/ui/test_mount.py",
+ "source_location": "L2804",
+ "weight": 1.0,
+ "source": "ui_test_mount_rationale_2804",
+ "target": "ui_test_mount_test_open_input_required_dialog_submit_swallows_resume_failure",
+ "confidence_score": 1.0
+ },
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
@@ -106728,6 +112966,16 @@
"source": "ui_test_mount_rationale_2773",
"target": "ui_test_mount_test_open_input_required_dialog_submit_swallows_resume_failure"
},
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/ui/test_mount.py",
+ "source_location": "L2833",
+ "weight": 1.0,
+ "source": "ui_test_mount_rationale_2833",
+ "target": "ui_test_mount_test_template_questions_map_swallows_outer_failure",
+ "confidence_score": 1.0
+ },
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
@@ -106792,61 +113040,61 @@
"relation": "rationale_for",
"confidence": "EXTRACTED",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L3017",
+ "source_location": "L100",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "ui_test_mount_rationale_3017",
- "target": "ui_test_mount_test_build_staging_state_query_failure_returns_empty_rows"
+ "source": "ui_test_mount_rationale_100",
+ "target": "ui_test_mount_fakeui"
},
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L3011",
+ "source_location": "L446",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "ui_test_mount_rationale_3011",
- "target": "ui_test_mount_test_build_staging_state_query_failure_returns_empty_rows"
+ "source": "ui_test_mount_rationale_446",
+ "target": "ui_test_mount_test_staging_state_when_staging_root_missing"
},
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L3013",
+ "source_location": "L1504",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "ui_test_mount_rationale_3013",
- "target": "ui_test_mount_test_build_staging_state_query_failure_returns_empty_rows"
+ "source": "ui_test_mount_rationale_1504",
+ "target": "ui_test_mount_drain_background"
},
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L2844",
+ "source_location": "L1591",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "ui_test_mount_rationale_2844",
- "target": "ui_test_mount_test_build_staging_state_query_failure_returns_empty_rows"
+ "source": "ui_test_mount_rationale_1591",
+ "target": "ui_test_mount_test_bulk_clear_verified_clears_verified_rows"
},
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L2819",
+ "source_location": "L1618",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "ui_test_mount_rationale_2819",
- "target": "ui_test_mount_test_build_staging_state_query_failure_returns_empty_rows"
+ "source": "ui_test_mount_rationale_1618",
+ "target": "ui_test_mount_test_bulk_clear_verified_no_config_toasts_and_returns"
},
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
"source_file": "tests/unit/ui/test_mount.py",
- "source_location": "L2818",
+ "source_location": "L1811",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "ui_test_mount_rationale_2818",
- "target": "ui_test_mount_test_build_staging_state_query_failure_returns_empty_rows"
+ "source": "ui_test_mount_rationale_1811",
+ "target": "ui_test_mount_test_bulk_clear_verified_no_config_toasts_and_returns"
},
{
"relation": "contains",
@@ -106908,6 +113156,16 @@
"source": "tests_unit_ui_test_settings_page_py",
"target": "ui_test_settings_page_test_finalize_allows_blank_staging_root"
},
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/ui/test_settings_page.py",
+ "source_location": "L106",
+ "weight": 1.0,
+ "source": "tests_unit_ui_test_settings_page_py",
+ "target": "ui_test_settings_page_test_orchestrator_section_is_titled_workstation",
+ "confidence_score": 1.0
+ },
{
"relation": "contains",
"confidence": "EXTRACTED",
@@ -107029,11 +113287,11 @@
"relation": "rationale_for",
"confidence": "EXTRACTED",
"source_file": "tests/unit/ui/test_settings_page.py",
- "source_location": "L91",
+ "source_location": "L93",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "ui_test_settings_page_rationale_91",
- "target": "ui_test_settings_page_test_finalize_allows_blank_staging_root"
+ "source": "ui_test_settings_page_rationale_93",
+ "target": "ui_test_settings_page_test_finalize_allows_blank_staging_root",
+ "confidence_score": 1.0
},
{
"relation": "calls",
@@ -107057,6 +113315,26 @@
"source": "ui_test_settings_page_test_finalize_allows_blank_staging_root",
"target": "pages_settings_finalize_settings_draft"
},
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/ui/test_settings_page.py",
+ "source_location": "L91",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "ui_test_settings_page_rationale_91",
+ "target": "ui_test_settings_page_test_finalize_allows_blank_staging_root"
+ },
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/ui/test_settings_page.py",
+ "source_location": "L107",
+ "weight": 1.0,
+ "source": "ui_test_settings_page_rationale_107",
+ "target": "ui_test_settings_page_test_orchestrator_section_is_titled_workstation",
+ "confidence_score": 1.0
+ },
{
"relation": "calls",
"context": "call",
@@ -107094,11 +113372,11 @@
"relation": "rationale_for",
"confidence": "EXTRACTED",
"source_file": "tests/unit/ui/test_settings_page.py",
- "source_location": "L119",
+ "source_location": "L132",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "ui_test_settings_page_rationale_119",
- "target": "ui_test_settings_page_test_lims_credential_initial_state_set_when_keyring_has_password"
+ "source": "ui_test_settings_page_rationale_132",
+ "target": "ui_test_settings_page_test_lims_credential_initial_state_set_when_keyring_has_password",
+ "confidence_score": 1.0
},
{
"relation": "calls",
@@ -107111,6 +113389,16 @@
"source": "ui_test_settings_page_test_lims_credential_initial_state_set_when_keyring_has_password",
"target": "pages_settings_lims_credential_initial_state"
},
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/ui/test_settings_page.py",
+ "source_location": "L119",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "ui_test_settings_page_rationale_119",
+ "target": "ui_test_settings_page_test_lims_credential_initial_state_set_when_keyring_has_password"
+ },
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
@@ -107137,9 +113425,19 @@
"source_file": "tests/unit/ui/test_wizard_equipment.py",
"source_location": "L17",
"weight": 1.0,
- "confidence_score": 1.0,
"source": "tests_unit_ui_test_wizard_equipment_py",
- "target": "ui_test_wizard_equipment_test_wizard_has_four_steps_without_signal_step"
+ "target": "ui_test_wizard_equipment_test_wizard_has_three_steps_with_sync_mode_hidden",
+ "confidence_score": 1.0
+ },
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/ui/test_wizard_equipment.py",
+ "source_location": "L28",
+ "weight": 1.0,
+ "source": "tests_unit_ui_test_wizard_equipment_py",
+ "target": "ui_test_wizard_equipment_test_assembled_equipment_defaults_to_nas_sync_mode",
+ "confidence_score": 1.0
},
{
"relation": "contains",
@@ -107241,6 +113539,16 @@
"source": "ui_test_wizard_equipment_rationale_1",
"target": "tests_unit_ui_test_wizard_equipment_py"
},
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/ui/test_wizard_equipment.py",
+ "source_location": "L17",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "tests_unit_ui_test_wizard_equipment_py",
+ "target": "ui_test_wizard_equipment_test_wizard_has_four_steps_without_signal_step"
+ },
{
"relation": "contains",
"confidence": "EXTRACTED",
@@ -107267,9 +113575,41 @@
"source_file": "tests/unit/ui/test_wizard_equipment.py",
"source_location": "L18",
"weight": 1.0,
- "confidence_score": 1.0,
"source": "ui_test_wizard_equipment_rationale_18",
- "target": "ui_test_wizard_equipment_test_wizard_has_four_steps_without_signal_step"
+ "target": "ui_test_wizard_equipment_test_wizard_has_three_steps_with_sync_mode_hidden",
+ "confidence_score": 1.0
+ },
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/ui/test_wizard_equipment.py",
+ "source_location": "L29",
+ "weight": 1.0,
+ "source": "ui_test_wizard_equipment_rationale_29",
+ "target": "ui_test_wizard_equipment_test_assembled_equipment_defaults_to_nas_sync_mode",
+ "confidence_score": 1.0
+ },
+ {
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/ui/test_wizard_equipment.py",
+ "source_location": "L32",
+ "weight": 1.0,
+ "source": "ui_test_wizard_equipment_test_assembled_equipment_defaults_to_nas_sync_mode",
+ "target": "pages_wizard_equipment_equipmentwizardstate"
+ },
+ {
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/ui/test_wizard_equipment.py",
+ "source_location": "L37",
+ "weight": 1.0,
+ "source": "ui_test_wizard_equipment_test_assembled_equipment_defaults_to_nas_sync_mode",
+ "target": "pages_wizard_equipment_assemble_equipment_config"
},
{
"relation": "calls",
@@ -107425,6 +113765,16 @@
"source": "ui_test_wizard_equipment_test_assemble_rejects_invalid_input",
"target": "pages_wizard_equipment_assemble_equipment_config"
},
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/ui/test_wizard_equipment.py",
+ "source_location": "L18",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "ui_test_wizard_equipment_rationale_18",
+ "target": "ui_test_wizard_equipment_test_wizard_has_four_steps_without_signal_step"
+ },
{
"relation": "contains",
"confidence": "EXTRACTED",
@@ -107837,11 +114187,11 @@
"relation": "rationale_for",
"confidence": "EXTRACTED",
"source_file": "tests/unit/ui/test_staging_page.py",
- "source_location": "L150",
+ "source_location": "L161",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "ui_test_staging_page_rationale_150",
- "target": "ui_test_staging_page_test_row_props_marks_synced_rollup_as_clearable"
+ "source": "ui_test_staging_page_rationale_161",
+ "target": "ui_test_staging_page_test_row_props_marks_synced_rollup_as_clearable",
+ "confidence_score": 1.0
},
{
"relation": "calls",
@@ -107854,6 +114204,16 @@
"source": "ui_test_staging_page_test_row_props_marks_synced_rollup_as_clearable",
"target": "pages_staging_row_props"
},
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/ui/test_staging_page.py",
+ "source_location": "L150",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "ui_test_staging_page_rationale_150",
+ "target": "ui_test_staging_page_test_row_props_marks_synced_rollup_as_clearable"
+ },
{
"relation": "calls",
"context": "call",
@@ -107880,11 +114240,11 @@
"relation": "rationale_for",
"confidence": "EXTRACTED",
"source_file": "tests/unit/ui/test_staging_page.py",
- "source_location": "L175",
+ "source_location": "L186",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "ui_test_staging_page_rationale_175",
- "target": "ui_test_staging_page_test_render_staging_dock_returns_dict_when_nicegui_unavailable"
+ "source": "ui_test_staging_page_rationale_186",
+ "target": "ui_test_staging_page_test_render_staging_dock_returns_dict_when_nicegui_unavailable",
+ "confidence_score": 1.0
},
{
"relation": "calls",
@@ -107912,11 +114272,21 @@
"relation": "rationale_for",
"confidence": "EXTRACTED",
"source_file": "tests/unit/ui/test_staging_page.py",
- "source_location": "L192",
+ "source_location": "L175",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "ui_test_staging_page_rationale_192",
- "target": "ui_test_staging_page_test_staging_dock_state_defaults"
+ "source": "ui_test_staging_page_rationale_175",
+ "target": "ui_test_staging_page_test_render_staging_dock_returns_dict_when_nicegui_unavailable"
+ },
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/ui/test_staging_page.py",
+ "source_location": "L203",
+ "weight": 1.0,
+ "source": "ui_test_staging_page_rationale_203",
+ "target": "ui_test_staging_page_test_staging_dock_state_defaults",
+ "confidence_score": 1.0
},
{
"relation": "calls",
@@ -107929,6 +114299,16 @@
"source": "ui_test_staging_page_test_staging_dock_state_defaults",
"target": "pages_staging_stagingdockstate"
},
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/ui/test_staging_page.py",
+ "source_location": "L192",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "ui_test_staging_page_rationale_192",
+ "target": "ui_test_staging_page_test_staging_dock_state_defaults"
+ },
{
"relation": "contains",
"confidence": "EXTRACTED",
@@ -108281,6 +114661,317 @@
"source": "ui_test_notifications_test_action_spec_is_frozen",
"target": "ui_notifications_actionspec"
},
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/ui/test_status_bar_segment.py",
+ "source_location": "L19",
+ "weight": 1.0,
+ "source": "tests_unit_ui_test_status_bar_segment_py",
+ "target": "ui_test_status_bar_segment_test_footer_segments_all_clear_default_normal",
+ "confidence_score": 1.0
+ },
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/ui/test_status_bar_segment.py",
+ "source_location": "L32",
+ "weight": 1.0,
+ "source": "tests_unit_ui_test_status_bar_segment_py",
+ "target": "ui_test_status_bar_segment_test_footer_validator_warns_on_hard_findings",
+ "confidence_score": 1.0
+ },
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/ui/test_status_bar_segment.py",
+ "source_location": "L42",
+ "weight": 1.0,
+ "source": "tests_unit_ui_test_status_bar_segment_py",
+ "target": "ui_test_status_bar_segment_test_footer_lims_danger_when_unreachable",
+ "confidence_score": 1.0
+ },
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/ui/test_status_bar_segment.py",
+ "source_location": "L50",
+ "weight": 1.0,
+ "source": "tests_unit_ui_test_status_bar_segment_py",
+ "target": "ui_test_status_bar_segment_test_footer_staging_warns_when_pending",
+ "confidence_score": 1.0
+ },
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/ui/test_status_bar_segment.py",
+ "source_location": "L59",
+ "weight": 1.0,
+ "source": "tests_unit_ui_test_status_bar_segment_py",
+ "target": "ui_test_status_bar_segment_test_footer_segments_defaults_are_safe",
+ "confidence_score": 1.0
+ },
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/ui/test_status_bar_segment.py",
+ "source_location": "L1",
+ "weight": 1.0,
+ "source": "ui_test_status_bar_segment_rationale_1",
+ "target": "tests_unit_ui_test_status_bar_segment_py",
+ "confidence_score": 1.0
+ },
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/ui/test_status_bar_segment.py",
+ "source_location": "L20",
+ "weight": 1.0,
+ "source": "ui_test_status_bar_segment_rationale_20",
+ "target": "ui_test_status_bar_segment_test_footer_segments_all_clear_default_normal",
+ "confidence_score": 1.0
+ },
+ {
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/ui/test_status_bar_segment.py",
+ "source_location": "L22",
+ "weight": 1.0,
+ "source": "ui_test_status_bar_segment_test_footer_segments_all_clear_default_normal",
+ "target": "components_status_bar_segment_derive_footer_segment_states"
+ },
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/ui/test_status_bar_segment.py",
+ "source_location": "L33",
+ "weight": 1.0,
+ "source": "ui_test_status_bar_segment_rationale_33",
+ "target": "ui_test_status_bar_segment_test_footer_validator_warns_on_hard_findings",
+ "confidence_score": 1.0
+ },
+ {
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/ui/test_status_bar_segment.py",
+ "source_location": "L35",
+ "weight": 1.0,
+ "source": "ui_test_status_bar_segment_test_footer_validator_warns_on_hard_findings",
+ "target": "components_status_bar_segment_derive_footer_segment_states"
+ },
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/ui/test_status_bar_segment.py",
+ "source_location": "L43",
+ "weight": 1.0,
+ "source": "ui_test_status_bar_segment_rationale_43",
+ "target": "ui_test_status_bar_segment_test_footer_lims_danger_when_unreachable",
+ "confidence_score": 1.0
+ },
+ {
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/ui/test_status_bar_segment.py",
+ "source_location": "L45",
+ "weight": 1.0,
+ "source": "ui_test_status_bar_segment_test_footer_lims_danger_when_unreachable",
+ "target": "components_status_bar_segment_derive_footer_segment_states"
+ },
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/ui/test_status_bar_segment.py",
+ "source_location": "L51",
+ "weight": 1.0,
+ "source": "ui_test_status_bar_segment_rationale_51",
+ "target": "ui_test_status_bar_segment_test_footer_staging_warns_when_pending",
+ "confidence_score": 1.0
+ },
+ {
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/ui/test_status_bar_segment.py",
+ "source_location": "L53",
+ "weight": 1.0,
+ "source": "ui_test_status_bar_segment_test_footer_staging_warns_when_pending",
+ "target": "components_status_bar_segment_derive_footer_segment_states"
+ },
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/ui/test_status_bar_segment.py",
+ "source_location": "L60",
+ "weight": 1.0,
+ "source": "ui_test_status_bar_segment_rationale_60",
+ "target": "ui_test_status_bar_segment_test_footer_segments_defaults_are_safe",
+ "confidence_score": 1.0
+ },
+ {
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/ui/test_status_bar_segment.py",
+ "source_location": "L62",
+ "weight": 1.0,
+ "source": "ui_test_status_bar_segment_test_footer_segments_defaults_are_safe",
+ "target": "components_status_bar_segment_derive_footer_segment_states"
+ },
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/ui/test_empty_state.py",
+ "source_location": "L15",
+ "weight": 1.0,
+ "source": "tests_unit_ui_test_empty_state_py",
+ "target": "ui_test_empty_state_walk",
+ "confidence_score": 1.0
+ },
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/ui/test_empty_state.py",
+ "source_location": "L22",
+ "weight": 1.0,
+ "source": "tests_unit_ui_test_empty_state_py",
+ "target": "ui_test_empty_state_by_testid",
+ "confidence_score": 1.0
+ },
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/ui/test_empty_state.py",
+ "source_location": "L26",
+ "weight": 1.0,
+ "source": "tests_unit_ui_test_empty_state_py",
+ "target": "ui_test_empty_state_texts",
+ "confidence_score": 1.0
+ },
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/ui/test_empty_state.py",
+ "source_location": "L30",
+ "weight": 1.0,
+ "source": "tests_unit_ui_test_empty_state_py",
+ "target": "ui_test_empty_state_test_empty_state_carries_testid_and_message",
+ "confidence_score": 1.0
+ },
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/ui/test_empty_state.py",
+ "source_location": "L42",
+ "weight": 1.0,
+ "source": "tests_unit_ui_test_empty_state_py",
+ "target": "ui_test_empty_state_test_empty_state_renders_the_icon",
+ "confidence_score": 1.0
+ },
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/ui/test_empty_state.py",
+ "source_location": "L1",
+ "weight": 1.0,
+ "source": "ui_test_empty_state_rationale_1",
+ "target": "tests_unit_ui_test_empty_state_py",
+ "confidence_score": 1.0
+ },
+ {
+ "relation": "calls",
+ "context": "call",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/ui/test_empty_state.py",
+ "source_location": "L23",
+ "weight": 1.0,
+ "source": "ui_test_empty_state_by_testid",
+ "target": "ui_test_empty_state_walk",
+ "confidence_score": 1.0
+ },
+ {
+ "relation": "calls",
+ "context": "call",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/ui/test_empty_state.py",
+ "source_location": "L27",
+ "weight": 1.0,
+ "source": "ui_test_empty_state_texts",
+ "target": "ui_test_empty_state_walk",
+ "confidence_score": 1.0
+ },
+ {
+ "relation": "calls",
+ "context": "call",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/ui/test_empty_state.py",
+ "source_location": "L38",
+ "weight": 1.0,
+ "source": "ui_test_empty_state_test_empty_state_carries_testid_and_message",
+ "target": "ui_test_empty_state_walk",
+ "confidence_score": 1.0
+ },
+ {
+ "relation": "calls",
+ "context": "call",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/ui/test_empty_state.py",
+ "source_location": "L46",
+ "weight": 1.0,
+ "source": "ui_test_empty_state_test_empty_state_renders_the_icon",
+ "target": "ui_test_empty_state_walk",
+ "confidence_score": 1.0
+ },
+ {
+ "relation": "calls",
+ "context": "call",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/ui/test_empty_state.py",
+ "source_location": "L37",
+ "weight": 1.0,
+ "source": "ui_test_empty_state_test_empty_state_carries_testid_and_message",
+ "target": "ui_test_empty_state_by_testid",
+ "confidence_score": 1.0
+ },
+ {
+ "relation": "calls",
+ "context": "call",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/ui/test_empty_state.py",
+ "source_location": "L39",
+ "weight": 1.0,
+ "source": "ui_test_empty_state_test_empty_state_carries_testid_and_message",
+ "target": "ui_test_empty_state_texts",
+ "confidence_score": 1.0
+ },
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/ui/test_empty_state.py",
+ "source_location": "L31",
+ "weight": 1.0,
+ "source": "ui_test_empty_state_rationale_31",
+ "target": "ui_test_empty_state_test_empty_state_carries_testid_and_message",
+ "confidence_score": 1.0
+ },
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/ui/test_empty_state.py",
+ "source_location": "L43",
+ "weight": 1.0,
+ "source": "ui_test_empty_state_rationale_43",
+ "target": "ui_test_empty_state_test_empty_state_renders_the_icon",
+ "confidence_score": 1.0
+ },
{
"relation": "contains",
"confidence": "EXTRACTED",
@@ -111116,6 +117807,26 @@
"source": "ui_test_file_list_rationale_301",
"target": "ui_test_file_list_test_no_click_listener_when_on_select_absent"
},
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/ui/test_theme.py",
+ "source_location": "L13",
+ "weight": 1.0,
+ "source": "tests_unit_ui_test_theme_py",
+ "target": "ui_test_theme_test_root_css_includes_compact_density_rule",
+ "confidence_score": 1.0
+ },
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/ui/test_theme.py",
+ "source_location": "L22",
+ "weight": 1.0,
+ "source": "tests_unit_ui_test_theme_py",
+ "target": "ui_test_theme_test_root_css_includes_tree_selection_rule",
+ "confidence_score": 1.0
+ },
{
"relation": "contains",
"confidence": "EXTRACTED",
@@ -111266,6 +117977,36 @@
"source": "ui_test_theme_rationale_1",
"target": "tests_unit_ui_test_theme_py"
},
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/ui/test_theme.py",
+ "source_location": "L14",
+ "weight": 1.0,
+ "source": "ui_test_theme_rationale_14",
+ "target": "ui_test_theme_test_root_css_includes_compact_density_rule",
+ "confidence_score": 1.0
+ },
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/ui/test_theme.py",
+ "source_location": "L23",
+ "weight": 1.0,
+ "source": "ui_test_theme_rationale_23",
+ "target": "ui_test_theme_test_root_css_includes_tree_selection_rule",
+ "confidence_score": 1.0
+ },
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/ui/test_theme.py",
+ "source_location": "L63",
+ "weight": 1.0,
+ "source": "ui_test_theme_rationale_63",
+ "target": "ui_test_theme_test_root_css_contains_ui_refresh_surface_tokens",
+ "confidence_score": 1.0
+ },
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
@@ -111276,6 +118017,16 @@
"source": "ui_test_theme_rationale_44",
"target": "ui_test_theme_test_root_css_contains_ui_refresh_surface_tokens"
},
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/ui/test_theme.py",
+ "source_location": "L76",
+ "weight": 1.0,
+ "source": "ui_test_theme_rationale_76",
+ "target": "ui_test_theme_test_root_css_emits_previously_undefined_referenced_vars",
+ "confidence_score": 1.0
+ },
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
@@ -111286,6 +118037,16 @@
"source": "ui_test_theme_rationale_57",
"target": "ui_test_theme_test_root_css_emits_previously_undefined_referenced_vars"
},
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/ui/test_theme.py",
+ "source_location": "L153",
+ "weight": 1.0,
+ "source": "ui_test_theme_rationale_153",
+ "target": "ui_test_theme_test_root_css_navy_tinted_shadows",
+ "confidence_score": 1.0
+ },
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
@@ -111306,6 +118067,16 @@
"source": "ui_test_theme_rationale_82",
"target": "ui_test_theme_test_root_css_navy_tinted_shadows"
},
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/ui/test_theme.py",
+ "source_location": "L166",
+ "weight": 1.0,
+ "source": "ui_test_theme_rationale_166",
+ "target": "ui_test_theme_test_root_css_starts_with_root_block",
+ "confidence_score": 1.0
+ },
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
@@ -111326,6 +118097,16 @@
"source": "ui_test_theme_rationale_95",
"target": "ui_test_theme_test_root_css_starts_with_root_block"
},
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/ui/test_theme.py",
+ "source_location": "L173",
+ "weight": 1.0,
+ "source": "ui_test_theme_rationale_173",
+ "target": "ui_test_theme_test_root_css_includes_body_resets",
+ "confidence_score": 1.0
+ },
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
@@ -111346,6 +118127,16 @@
"source": "ui_test_theme_rationale_102",
"target": "ui_test_theme_test_root_css_includes_body_resets"
},
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/ui/test_theme.py",
+ "source_location": "L182",
+ "weight": 1.0,
+ "source": "ui_test_theme_rationale_182",
+ "target": "ui_test_theme_test_resolve_assets_dir_points_at_repo_assets_in_source_layout",
+ "confidence_score": 1.0
+ },
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
@@ -114544,28763 +121335,31085 @@
"source_file": "tests/unit/ui/test_design.py",
"source_location": "L172",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "ui_test_design_rationale_172",
- "target": "ui_test_design_test_badge_text_variants_are_wcag_aa"
+ "confidence_score": 1.0,
+ "source": "ui_test_design_rationale_172",
+ "target": "ui_test_design_test_badge_text_variants_are_wcag_aa"
+ },
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/ui/test_design.py",
+ "source_location": "L153",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "ui_test_design_rationale_153",
+ "target": "ui_test_design_test_badge_text_variants_are_wcag_aa"
+ },
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/ui/test_design.py",
+ "source_location": "L184",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "ui_test_design_rationale_184",
+ "target": "ui_test_design_test_alert_text_variants_match_designmd"
+ },
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/ui/test_design.py",
+ "source_location": "L165",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "ui_test_design_rationale_165",
+ "target": "ui_test_design_test_alert_text_variants_match_designmd"
+ },
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/ui/test_design.py",
+ "source_location": "L195",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "ui_test_design_rationale_195",
+ "target": "ui_test_design_test_yellow_is_present_but_only_for_fills"
+ },
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/ui/test_design.py",
+ "source_location": "L176",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "ui_test_design_rationale_176",
+ "target": "ui_test_design_test_yellow_is_present_but_only_for_fills"
+ },
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/ui/test_travelling_badge.py",
+ "source_location": "L17",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "tests_unit_ui_test_travelling_badge_py",
+ "target": "ui_test_travelling_badge_hard"
+ },
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/ui/test_travelling_badge.py",
+ "source_location": "L21",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "tests_unit_ui_test_travelling_badge_py",
+ "target": "ui_test_travelling_badge_soft"
+ },
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/ui/test_travelling_badge.py",
+ "source_location": "L25",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "tests_unit_ui_test_travelling_badge_py",
+ "target": "ui_test_travelling_badge_test_badge_on_root_when_all_collapsed"
+ },
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/ui/test_travelling_badge.py",
+ "source_location": "L34",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "tests_unit_ui_test_travelling_badge_py",
+ "target": "ui_test_travelling_badge_test_badge_travels_inward_as_nodes_expand"
+ },
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/ui/test_travelling_badge.py",
+ "source_location": "L41",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "tests_unit_ui_test_travelling_badge_py",
+ "target": "ui_test_travelling_badge_test_badge_lands_on_leaf_when_fully_expanded"
+ },
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/ui/test_travelling_badge.py",
+ "source_location": "L52",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "tests_unit_ui_test_travelling_badge_py",
+ "target": "ui_test_travelling_badge_test_red_beats_amber_when_aggregated_on_same_node"
+ },
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/ui/test_travelling_badge.py",
+ "source_location": "L62",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "tests_unit_ui_test_travelling_badge_py",
+ "target": "ui_test_travelling_badge_test_amber_only_when_no_hard_findings"
+ },
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/ui/test_travelling_badge.py",
+ "source_location": "L68",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "tests_unit_ui_test_travelling_badge_py",
+ "target": "ui_test_travelling_badge_test_two_equipment_get_independent_badges"
+ },
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/ui/test_travelling_badge.py",
+ "source_location": "L1",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "ui_test_travelling_badge_rationale_1",
+ "target": "tests_unit_ui_test_travelling_badge_py"
+ },
+ {
+ "relation": "calls",
+ "context": "call",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/ui/test_travelling_badge.py",
+ "source_location": "L28",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "ui_test_travelling_badge_test_badge_on_root_when_all_collapsed",
+ "target": "ui_test_travelling_badge_hard"
+ },
+ {
+ "relation": "calls",
+ "context": "call",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/ui/test_travelling_badge.py",
+ "source_location": "L36",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "ui_test_travelling_badge_test_badge_travels_inward_as_nodes_expand",
+ "target": "ui_test_travelling_badge_hard"
+ },
+ {
+ "relation": "calls",
+ "context": "call",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/ui/test_travelling_badge.py",
+ "source_location": "L42",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "ui_test_travelling_badge_test_badge_lands_on_leaf_when_fully_expanded",
+ "target": "ui_test_travelling_badge_hard"
+ },
+ {
+ "relation": "calls",
+ "context": "call",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/ui/test_travelling_badge.py",
+ "source_location": "L54",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "ui_test_travelling_badge_test_red_beats_amber_when_aggregated_on_same_node",
+ "target": "ui_test_travelling_badge_hard"
+ },
+ {
+ "relation": "calls",
+ "context": "call",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/ui/test_travelling_badge.py",
+ "source_location": "L70",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "ui_test_travelling_badge_test_two_equipment_get_independent_badges",
+ "target": "ui_test_travelling_badge_hard"
+ },
+ {
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/ui/test_travelling_badge.py",
+ "source_location": "L18",
+ "weight": 1.0,
+ "source": "ui_test_travelling_badge_hard",
+ "target": "components_travelling_badge_findinglocation"
+ },
+ {
+ "relation": "calls",
+ "context": "call",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/ui/test_travelling_badge.py",
+ "source_location": "L55",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "ui_test_travelling_badge_test_red_beats_amber_when_aggregated_on_same_node",
+ "target": "ui_test_travelling_badge_soft"
+ },
+ {
+ "relation": "calls",
+ "context": "call",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/ui/test_travelling_badge.py",
+ "source_location": "L63",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "ui_test_travelling_badge_test_amber_only_when_no_hard_findings",
+ "target": "ui_test_travelling_badge_soft"
+ },
+ {
+ "relation": "calls",
+ "context": "call",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/ui/test_travelling_badge.py",
+ "source_location": "L71",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "ui_test_travelling_badge_test_two_equipment_get_independent_badges",
+ "target": "ui_test_travelling_badge_soft"
+ },
+ {
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/ui/test_travelling_badge.py",
+ "source_location": "L22",
+ "weight": 1.0,
+ "source": "ui_test_travelling_badge_soft",
+ "target": "components_travelling_badge_findinglocation"
+ },
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/ui/test_travelling_badge.py",
+ "source_location": "L26",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "ui_test_travelling_badge_rationale_26",
+ "target": "ui_test_travelling_badge_test_badge_on_root_when_all_collapsed"
+ },
+ {
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/ui/test_travelling_badge.py",
+ "source_location": "L30",
+ "weight": 1.0,
+ "source": "ui_test_travelling_badge_test_badge_on_root_when_all_collapsed",
+ "target": "components_travelling_badge_travelling_badges"
+ },
+ {
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/ui/test_travelling_badge.py",
+ "source_location": "L31",
+ "weight": 1.0,
+ "source": "ui_test_travelling_badge_test_badge_on_root_when_all_collapsed",
+ "target": "components_travelling_badge_badgeprops"
+ },
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/ui/test_travelling_badge.py",
+ "source_location": "L35",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "ui_test_travelling_badge_rationale_35",
+ "target": "ui_test_travelling_badge_test_badge_travels_inward_as_nodes_expand"
+ },
+ {
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/ui/test_travelling_badge.py",
+ "source_location": "L37",
+ "weight": 1.0,
+ "source": "ui_test_travelling_badge_test_badge_travels_inward_as_nodes_expand",
+ "target": "components_travelling_badge_travelling_badges"
+ },
+ {
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/ui/test_travelling_badge.py",
+ "source_location": "L38",
+ "weight": 1.0,
+ "source": "ui_test_travelling_badge_test_badge_travels_inward_as_nodes_expand",
+ "target": "components_travelling_badge_badgeprops"
+ },
+ {
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/ui/test_travelling_badge.py",
+ "source_location": "L48",
+ "weight": 1.0,
+ "source": "ui_test_travelling_badge_test_badge_lands_on_leaf_when_fully_expanded",
+ "target": "components_travelling_badge_travelling_badges"
+ },
+ {
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/ui/test_travelling_badge.py",
+ "source_location": "L49",
+ "weight": 1.0,
+ "source": "ui_test_travelling_badge_test_badge_lands_on_leaf_when_fully_expanded",
+ "target": "components_travelling_badge_badgeprops"
+ },
+ {
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/ui/test_travelling_badge.py",
+ "source_location": "L57",
+ "weight": 1.0,
+ "source": "ui_test_travelling_badge_test_red_beats_amber_when_aggregated_on_same_node",
+ "target": "components_travelling_badge_travelling_badges"
+ },
+ {
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/ui/test_travelling_badge.py",
+ "source_location": "L59",
+ "weight": 1.0,
+ "source": "ui_test_travelling_badge_test_red_beats_amber_when_aggregated_on_same_node",
+ "target": "components_travelling_badge_badgeprops"
+ },
+ {
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/ui/test_travelling_badge.py",
+ "source_location": "L64",
+ "weight": 1.0,
+ "source": "ui_test_travelling_badge_test_amber_only_when_no_hard_findings",
+ "target": "components_travelling_badge_travelling_badges"
+ },
+ {
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/ui/test_travelling_badge.py",
+ "source_location": "L65",
+ "weight": 1.0,
+ "source": "ui_test_travelling_badge_test_amber_only_when_no_hard_findings",
+ "target": "components_travelling_badge_badgeprops"
+ },
+ {
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/ui/test_travelling_badge.py",
+ "source_location": "L73",
+ "weight": 1.0,
+ "source": "ui_test_travelling_badge_test_two_equipment_get_independent_badges",
+ "target": "components_travelling_badge_travelling_badges"
+ },
+ {
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/ui/test_travelling_badge.py",
+ "source_location": "L75",
+ "weight": 1.0,
+ "source": "ui_test_travelling_badge_test_two_equipment_get_independent_badges",
+ "target": "components_travelling_badge_badgeprops"
+ },
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/ui/test_wizard_project_page.py",
+ "source_location": "L30",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "tests_unit_ui_test_wizard_project_page_py",
+ "target": "ui_test_wizard_project_page_test_can_advance_equipment_step_requires_selection"
+ },
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/ui/test_wizard_project_page.py",
+ "source_location": "L37",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "tests_unit_ui_test_wizard_project_page_py",
+ "target": "ui_test_wizard_project_page_test_can_advance_variables_step_always_true"
+ },
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/ui/test_wizard_project_page.py",
+ "source_location": "L45",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "tests_unit_ui_test_wizard_project_page_py",
+ "target": "ui_test_wizard_project_page_test_can_advance_confirm_step_always_true"
+ },
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/ui/test_wizard_project_page.py",
+ "source_location": "L49",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "tests_unit_ui_test_wizard_project_page_py",
+ "target": "ui_test_wizard_project_page_test_can_advance_default_step_is_lims_project"
+ },
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/ui/test_wizard_project_page.py",
+ "source_location": "L58",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "tests_unit_ui_test_wizard_project_page_py",
+ "target": "ui_test_wizard_project_page_test_can_advance_readme_blocks_on_partial_core_fields"
+ },
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/ui/test_wizard_project_page.py",
+ "source_location": "L71",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "tests_unit_ui_test_wizard_project_page_py",
+ "target": "ui_test_wizard_project_page_test_disk_space_message_none_when_unknown"
+ },
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/ui/test_wizard_project_page.py",
+ "source_location": "L76",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "tests_unit_ui_test_wizard_project_page_py",
+ "target": "ui_test_wizard_project_page_test_disk_space_message_none_when_ample"
+ },
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/ui/test_wizard_project_page.py",
+ "source_location": "L81",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "tests_unit_ui_test_wizard_project_page_py",
+ "target": "ui_test_wizard_project_page_test_disk_space_message_present_just_below_threshold"
+ },
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/ui/test_wizard_project_page.py",
+ "source_location": "L92",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "tests_unit_ui_test_wizard_project_page_py",
+ "target": "ui_test_wizard_project_page_test_state_lims_project_name_defaults_empty_and_is_settable"
+ },
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/ui/test_wizard_project_page.py",
+ "source_location": "L104",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "tests_unit_ui_test_wizard_project_page_py",
+ "target": "ui_test_wizard_project_page_test_render_project_wizard_with_choices_does_not_raise"
+ },
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/ui/test_wizard_project_page.py",
+ "source_location": "L114",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "tests_unit_ui_test_wizard_project_page_py",
+ "target": "ui_test_wizard_project_page_test_render_project_wizard_with_empty_choices_does_not_raise"
+ },
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/ui/test_wizard_project_page.py",
+ "source_location": "L123",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "tests_unit_ui_test_wizard_project_page_py",
+ "target": "ui_test_wizard_project_page_test_render_project_wizard_defaults_state_when_omitted"
+ },
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/ui/test_wizard_project_page.py",
+ "source_location": "L128",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "tests_unit_ui_test_wizard_project_page_py",
+ "target": "ui_test_wizard_project_page_test_wizard_project_step_titles_cover_every_step"
+ },
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/ui/test_wizard_project_page.py",
+ "source_location": "L1",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "ui_test_wizard_project_page_rationale_1",
+ "target": "tests_unit_ui_test_wizard_project_page_py"
+ },
+ {
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/ui/test_wizard_project_page.py",
+ "source_location": "L31",
+ "weight": 1.0,
+ "source": "ui_test_wizard_project_page_test_can_advance_equipment_step_requires_selection",
+ "target": "pages_wizard_project_projectwizardstate"
+ },
+ {
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/ui/test_wizard_project_page.py",
+ "source_location": "L39",
+ "weight": 1.0,
+ "source": "ui_test_wizard_project_page_test_can_advance_variables_step_always_true",
+ "target": "pages_wizard_project_projectwizardstate"
+ },
+ {
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/ui/test_wizard_project_page.py",
+ "source_location": "L46",
+ "weight": 1.0,
+ "source": "ui_test_wizard_project_page_test_can_advance_confirm_step_always_true",
+ "target": "pages_wizard_project_projectwizardstate"
+ },
+ {
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/ui/test_wizard_project_page.py",
+ "source_location": "L51",
+ "weight": 1.0,
+ "source": "ui_test_wizard_project_page_test_can_advance_default_step_is_lims_project",
+ "target": "pages_wizard_project_projectwizardstate"
+ },
+ {
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/ui/test_wizard_project_page.py",
+ "source_location": "L59",
+ "weight": 1.0,
+ "source": "ui_test_wizard_project_page_test_can_advance_readme_blocks_on_partial_core_fields",
+ "target": "pages_wizard_project_projectwizardstate"
+ },
+ {
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/ui/test_wizard_project_page.py",
+ "source_location": "L72",
+ "weight": 1.0,
+ "source": "ui_test_wizard_project_page_test_disk_space_message_none_when_unknown",
+ "target": "pages_wizard_project_projectwizardstate"
+ },
+ {
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/ui/test_wizard_project_page.py",
+ "source_location": "L73",
+ "weight": 1.0,
+ "source": "ui_test_wizard_project_page_test_disk_space_message_none_when_unknown",
+ "target": "pages_wizard_project_disk_space_pre_flight_message"
+ },
+ {
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/ui/test_wizard_project_page.py",
+ "source_location": "L77",
+ "weight": 1.0,
+ "source": "ui_test_wizard_project_page_test_disk_space_message_none_when_ample",
+ "target": "pages_wizard_project_projectwizardstate"
+ },
+ {
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/ui/test_wizard_project_page.py",
+ "source_location": "L78",
+ "weight": 1.0,
+ "source": "ui_test_wizard_project_page_test_disk_space_message_none_when_ample",
+ "target": "pages_wizard_project_disk_space_pre_flight_message"
+ },
+ {
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/ui/test_wizard_project_page.py",
+ "source_location": "L82",
+ "weight": 1.0,
+ "source": "ui_test_wizard_project_page_test_disk_space_message_present_just_below_threshold",
+ "target": "pages_wizard_project_projectwizardstate"
+ },
+ {
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/ui/test_wizard_project_page.py",
+ "source_location": "L83",
+ "weight": 1.0,
+ "source": "ui_test_wizard_project_page_test_disk_space_message_present_just_below_threshold",
+ "target": "pages_wizard_project_disk_space_pre_flight_message"
+ },
+ {
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/ui/test_wizard_project_page.py",
+ "source_location": "L93",
+ "weight": 1.0,
+ "source": "ui_test_wizard_project_page_test_state_lims_project_name_defaults_empty_and_is_settable",
+ "target": "pages_wizard_project_projectwizardstate"
+ },
+ {
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/ui/test_wizard_project_page.py",
+ "source_location": "L105",
+ "weight": 1.0,
+ "source": "ui_test_wizard_project_page_test_render_project_wizard_with_choices_does_not_raise",
+ "target": "pages_wizard_project_render_project_wizard"
+ },
+ {
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/ui/test_wizard_project_page.py",
+ "source_location": "L106",
+ "weight": 1.0,
+ "source": "ui_test_wizard_project_page_test_render_project_wizard_with_choices_does_not_raise",
+ "target": "pages_wizard_project_projectwizardstate"
+ },
+ {
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/ui/test_wizard_project_page.py",
+ "source_location": "L115",
+ "weight": 1.0,
+ "source": "ui_test_wizard_project_page_test_render_project_wizard_with_empty_choices_does_not_raise",
+ "target": "pages_wizard_project_render_project_wizard"
+ },
+ {
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/ui/test_wizard_project_page.py",
+ "source_location": "L116",
+ "weight": 1.0,
+ "source": "ui_test_wizard_project_page_test_render_project_wizard_with_empty_choices_does_not_raise",
+ "target": "pages_wizard_project_projectwizardstate"
+ },
+ {
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/ui/test_wizard_project_page.py",
+ "source_location": "L124",
+ "weight": 1.0,
+ "source": "ui_test_wizard_project_page_test_render_project_wizard_defaults_state_when_omitted",
+ "target": "pages_wizard_project_render_project_wizard"
+ },
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/ui/test_folder_feed.py",
+ "source_location": "L18",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "tests_unit_ui_test_folder_feed_py",
+ "target": "ui_test_folder_feed_test_folder_feed_start_then_stop_calls_fetch_at_least_once"
+ },
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/ui/test_folder_feed.py",
+ "source_location": "L34",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "tests_unit_ui_test_folder_feed_py",
+ "target": "ui_test_folder_feed_test_folder_feed_switching_paths_stops_previous"
+ },
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/ui/test_folder_feed.py",
+ "source_location": "L53",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "tests_unit_ui_test_folder_feed_py",
+ "target": "ui_test_folder_feed_test_folder_feed_pause_skips_fetch"
+ },
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/ui/test_folder_feed.py",
+ "source_location": "L73",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "tests_unit_ui_test_folder_feed_py",
+ "target": "ui_test_folder_feed_test_refresh_coordinator_coalesces_within_window"
+ },
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/ui/test_folder_feed.py",
+ "source_location": "L1",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "ui_test_folder_feed_rationale_1",
+ "target": "tests_unit_ui_test_folder_feed_py"
+ },
+ {
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/ui/test_folder_feed.py",
+ "source_location": "L25",
+ "weight": 1.0,
+ "source": "ui_test_folder_feed_test_folder_feed_start_then_stop_calls_fetch_at_least_once",
+ "target": "client_folder_feed_folderfeed"
},
{
- "relation": "rationale_for",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/ui/test_design.py",
- "source_location": "L153",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/ui/test_folder_feed.py",
+ "source_location": "L41",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "ui_test_design_rationale_153",
- "target": "ui_test_design_test_badge_text_variants_are_wcag_aa"
+ "source": "ui_test_folder_feed_test_folder_feed_switching_paths_stops_previous",
+ "target": "client_folder_feed_folderfeed"
},
{
- "relation": "rationale_for",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/ui/test_design.py",
- "source_location": "L184",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/ui/test_folder_feed.py",
+ "source_location": "L60",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "ui_test_design_rationale_184",
- "target": "ui_test_design_test_alert_text_variants_match_designmd"
+ "source": "ui_test_folder_feed_test_folder_feed_pause_skips_fetch",
+ "target": "client_folder_feed_folderfeed"
},
{
- "relation": "rationale_for",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/ui/test_design.py",
- "source_location": "L165",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/ui/test_folder_feed.py",
+ "source_location": "L74",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "ui_test_design_rationale_165",
- "target": "ui_test_design_test_alert_text_variants_match_designmd"
+ "source": "ui_test_folder_feed_test_refresh_coordinator_coalesces_within_window",
+ "target": "client_refresh_coordinator_refreshcoordinator"
},
{
- "relation": "rationale_for",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/ui/test_design.py",
- "source_location": "L195",
+ "source_file": "tests/unit/lims/test_catalogue.py",
+ "source_location": "L14",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "ui_test_design_rationale_195",
- "target": "ui_test_design_test_yellow_is_present_but_only_for_fills"
+ "source": "tests_unit_lims_test_catalogue_py",
+ "target": "lims_test_catalogue_make_catalogue"
},
{
- "relation": "rationale_for",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/ui/test_design.py",
- "source_location": "L176",
+ "source_file": "tests/unit/lims/test_catalogue.py",
+ "source_location": "L36",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "ui_test_design_rationale_176",
- "target": "ui_test_design_test_yellow_is_present_but_only_for_fills"
+ "source": "tests_unit_lims_test_catalogue_py",
+ "target": "lims_test_catalogue_test_round_trip_via_write_then_read"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/ui/test_travelling_badge.py",
- "source_location": "L17",
+ "source_file": "tests/unit/lims/test_catalogue.py",
+ "source_location": "L48",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_ui_test_travelling_badge_py",
- "target": "ui_test_travelling_badge_hard"
+ "source": "tests_unit_lims_test_catalogue_py",
+ "target": "lims_test_catalogue_test_read_missing_file_raises"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/ui/test_travelling_badge.py",
- "source_location": "L21",
+ "source_file": "tests/unit/lims/test_catalogue.py",
+ "source_location": "L53",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_ui_test_travelling_badge_py",
- "target": "ui_test_travelling_badge_soft"
+ "source": "tests_unit_lims_test_catalogue_py",
+ "target": "lims_test_catalogue_test_read_invalid_json_raises"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/ui/test_travelling_badge.py",
- "source_location": "L25",
+ "source_file": "tests/unit/lims/test_catalogue.py",
+ "source_location": "L60",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_ui_test_travelling_badge_py",
- "target": "ui_test_travelling_badge_test_badge_on_root_when_all_collapsed"
+ "source": "tests_unit_lims_test_catalogue_py",
+ "target": "lims_test_catalogue_test_read_non_object_raises"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/ui/test_travelling_badge.py",
- "source_location": "L34",
+ "source_file": "tests/unit/lims/test_catalogue.py",
+ "source_location": "L67",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_ui_test_travelling_badge_py",
- "target": "ui_test_travelling_badge_test_badge_travels_inward_as_nodes_expand"
+ "source": "tests_unit_lims_test_catalogue_py",
+ "target": "lims_test_catalogue_test_schema_version_mismatch_treated_as_absent"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/ui/test_travelling_badge.py",
- "source_location": "L41",
+ "source_file": "tests/unit/lims/test_catalogue.py",
+ "source_location": "L85",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_ui_test_travelling_badge_py",
- "target": "ui_test_travelling_badge_test_badge_lands_on_leaf_when_fully_expanded"
+ "source": "tests_unit_lims_test_catalogue_py",
+ "target": "lims_test_catalogue_test_endpoint_mismatch_raises"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/ui/test_travelling_badge.py",
- "source_location": "L52",
+ "source_file": "tests/unit/lims/test_catalogue.py",
+ "source_location": "L93",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_ui_test_travelling_badge_py",
- "target": "ui_test_travelling_badge_test_red_beats_amber_when_aggregated_on_same_node"
+ "source": "tests_unit_lims_test_catalogue_py",
+ "target": "lims_test_catalogue_test_write_creates_parent_directory"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/ui/test_travelling_badge.py",
- "source_location": "L62",
+ "source_file": "tests/unit/lims/test_catalogue.py",
+ "source_location": "L100",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_ui_test_travelling_badge_py",
- "target": "ui_test_travelling_badge_test_amber_only_when_no_hard_findings"
+ "source": "tests_unit_lims_test_catalogue_py",
+ "target": "lims_test_catalogue_test_write_atomic_replaces_previous_file"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/ui/test_travelling_badge.py",
- "source_location": "L68",
+ "source_file": "tests/unit/lims/test_catalogue.py",
+ "source_location": "L121",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_ui_test_travelling_badge_py",
- "target": "ui_test_travelling_badge_test_two_equipment_get_independent_badges"
+ "source": "tests_unit_lims_test_catalogue_py",
+ "target": "lims_test_catalogue_test_read_handles_missing_projects_array"
},
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/ui/test_travelling_badge.py",
+ "source_file": "tests/unit/lims/test_catalogue.py",
"source_location": "L1",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "ui_test_travelling_badge_rationale_1",
- "target": "tests_unit_ui_test_travelling_badge_py"
+ "source": "lims_test_catalogue_rationale_1",
+ "target": "tests_unit_lims_test_catalogue_py"
},
{
"relation": "calls",
"context": "call",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/ui/test_travelling_badge.py",
- "source_location": "L28",
+ "source_file": "tests/unit/lims/test_catalogue.py",
+ "source_location": "L38",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "ui_test_travelling_badge_test_badge_on_root_when_all_collapsed",
- "target": "ui_test_travelling_badge_hard"
+ "source": "lims_test_catalogue_test_round_trip_via_write_then_read",
+ "target": "lims_test_catalogue_make_catalogue"
},
{
"relation": "calls",
"context": "call",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/ui/test_travelling_badge.py",
- "source_location": "L36",
+ "source_file": "tests/unit/lims/test_catalogue.py",
+ "source_location": "L87",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "ui_test_travelling_badge_test_badge_travels_inward_as_nodes_expand",
- "target": "ui_test_travelling_badge_hard"
+ "source": "lims_test_catalogue_test_endpoint_mismatch_raises",
+ "target": "lims_test_catalogue_make_catalogue"
},
{
"relation": "calls",
"context": "call",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/ui/test_travelling_badge.py",
- "source_location": "L42",
+ "source_file": "tests/unit/lims/test_catalogue.py",
+ "source_location": "L95",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "ui_test_travelling_badge_test_badge_lands_on_leaf_when_fully_expanded",
- "target": "ui_test_travelling_badge_hard"
+ "source": "lims_test_catalogue_test_write_creates_parent_directory",
+ "target": "lims_test_catalogue_make_catalogue"
},
{
"relation": "calls",
"context": "call",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/ui/test_travelling_badge.py",
- "source_location": "L54",
+ "source_file": "tests/unit/lims/test_catalogue.py",
+ "source_location": "L102",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "ui_test_travelling_badge_test_red_beats_amber_when_aggregated_on_same_node",
- "target": "ui_test_travelling_badge_hard"
+ "source": "lims_test_catalogue_test_write_atomic_replaces_previous_file",
+ "target": "lims_test_catalogue_make_catalogue"
},
{
"relation": "calls",
"context": "call",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/ui/test_travelling_badge.py",
- "source_location": "L70",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/lims/test_catalogue.py",
+ "source_location": "L15",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "ui_test_travelling_badge_test_two_equipment_get_independent_badges",
- "target": "ui_test_travelling_badge_hard"
+ "source": "lims_test_catalogue_make_catalogue",
+ "target": "lims_catalogue_offlinecatalogue"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "tests/unit/ui/test_travelling_badge.py",
- "source_location": "L18",
+ "source_file": "tests/unit/lims/test_catalogue.py",
+ "source_location": "L21",
"weight": 1.0,
- "source": "ui_test_travelling_badge_hard",
- "target": "components_travelling_badge_findinglocation"
+ "source": "lims_test_catalogue_make_catalogue",
+ "target": "lims_schemas_limsproject"
},
{
"relation": "calls",
"context": "call",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/ui/test_travelling_badge.py",
- "source_location": "L55",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/lims/test_catalogue.py",
+ "source_location": "L39",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "ui_test_travelling_badge_test_red_beats_amber_when_aggregated_on_same_node",
- "target": "ui_test_travelling_badge_soft"
+ "source": "lims_test_catalogue_test_round_trip_via_write_then_read",
+ "target": "lims_catalogue_write_catalogue"
},
{
"relation": "calls",
"context": "call",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/ui/test_travelling_badge.py",
- "source_location": "L63",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/lims/test_catalogue.py",
+ "source_location": "L40",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "ui_test_travelling_badge_test_amber_only_when_no_hard_findings",
- "target": "ui_test_travelling_badge_soft"
+ "source": "lims_test_catalogue_test_round_trip_via_write_then_read",
+ "target": "lims_catalogue_read_catalogue"
},
{
"relation": "calls",
"context": "call",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/ui/test_travelling_badge.py",
- "source_location": "L71",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/lims/test_catalogue.py",
+ "source_location": "L50",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "ui_test_travelling_badge_test_two_equipment_get_independent_badges",
- "target": "ui_test_travelling_badge_soft"
+ "source": "lims_test_catalogue_test_read_missing_file_raises",
+ "target": "lims_catalogue_read_catalogue"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "tests/unit/ui/test_travelling_badge.py",
- "source_location": "L22",
- "weight": 1.0,
- "source": "ui_test_travelling_badge_soft",
- "target": "components_travelling_badge_findinglocation"
- },
- {
- "relation": "rationale_for",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/ui/test_travelling_badge.py",
- "source_location": "L26",
+ "source_file": "tests/unit/lims/test_catalogue.py",
+ "source_location": "L57",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "ui_test_travelling_badge_rationale_26",
- "target": "ui_test_travelling_badge_test_badge_on_root_when_all_collapsed"
+ "source": "lims_test_catalogue_test_read_invalid_json_raises",
+ "target": "lims_catalogue_read_catalogue"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "tests/unit/ui/test_travelling_badge.py",
- "source_location": "L30",
+ "source_file": "tests/unit/lims/test_catalogue.py",
+ "source_location": "L64",
"weight": 1.0,
- "source": "ui_test_travelling_badge_test_badge_on_root_when_all_collapsed",
- "target": "components_travelling_badge_travelling_badges"
+ "source": "lims_test_catalogue_test_read_non_object_raises",
+ "target": "lims_catalogue_read_catalogue"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "tests/unit/ui/test_travelling_badge.py",
- "source_location": "L31",
- "weight": 1.0,
- "source": "ui_test_travelling_badge_test_badge_on_root_when_all_collapsed",
- "target": "components_travelling_badge_badgeprops"
- },
- {
- "relation": "rationale_for",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/ui/test_travelling_badge.py",
- "source_location": "L35",
+ "source_file": "tests/unit/lims/test_catalogue.py",
+ "source_location": "L80",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "ui_test_travelling_badge_rationale_35",
- "target": "ui_test_travelling_badge_test_badge_travels_inward_as_nodes_expand"
+ "source": "lims_test_catalogue_test_schema_version_mismatch_treated_as_absent",
+ "target": "lims_catalogue_read_catalogue"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "tests/unit/ui/test_travelling_badge.py",
- "source_location": "L37",
+ "source_file": "tests/unit/lims/test_catalogue.py",
+ "source_location": "L88",
"weight": 1.0,
- "source": "ui_test_travelling_badge_test_badge_travels_inward_as_nodes_expand",
- "target": "components_travelling_badge_travelling_badges"
+ "source": "lims_test_catalogue_test_endpoint_mismatch_raises",
+ "target": "lims_catalogue_write_catalogue"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "tests/unit/ui/test_travelling_badge.py",
- "source_location": "L38",
+ "source_file": "tests/unit/lims/test_catalogue.py",
+ "source_location": "L90",
"weight": 1.0,
- "source": "ui_test_travelling_badge_test_badge_travels_inward_as_nodes_expand",
- "target": "components_travelling_badge_badgeprops"
+ "source": "lims_test_catalogue_test_endpoint_mismatch_raises",
+ "target": "lims_catalogue_read_catalogue"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "tests/unit/ui/test_travelling_badge.py",
- "source_location": "L48",
+ "source_file": "tests/unit/lims/test_catalogue.py",
+ "source_location": "L96",
"weight": 1.0,
- "source": "ui_test_travelling_badge_test_badge_lands_on_leaf_when_fully_expanded",
- "target": "components_travelling_badge_travelling_badges"
+ "source": "lims_test_catalogue_test_write_creates_parent_directory",
+ "target": "lims_catalogue_write_catalogue"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "tests/unit/ui/test_travelling_badge.py",
- "source_location": "L49",
+ "source_file": "tests/unit/lims/test_catalogue.py",
+ "source_location": "L103",
"weight": 1.0,
- "source": "ui_test_travelling_badge_test_badge_lands_on_leaf_when_fully_expanded",
- "target": "components_travelling_badge_badgeprops"
+ "source": "lims_test_catalogue_test_write_atomic_replaces_previous_file",
+ "target": "lims_catalogue_write_catalogue"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "tests/unit/ui/test_travelling_badge.py",
- "source_location": "L57",
+ "source_file": "tests/unit/lims/test_catalogue.py",
+ "source_location": "L106",
"weight": 1.0,
- "source": "ui_test_travelling_badge_test_red_beats_amber_when_aggregated_on_same_node",
- "target": "components_travelling_badge_travelling_badges"
+ "source": "lims_test_catalogue_test_write_atomic_replaces_previous_file",
+ "target": "lims_catalogue_offlinecatalogue"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "tests/unit/ui/test_travelling_badge.py",
- "source_location": "L59",
+ "source_file": "tests/unit/lims/test_catalogue.py",
+ "source_location": "L116",
"weight": 1.0,
- "source": "ui_test_travelling_badge_test_red_beats_amber_when_aggregated_on_same_node",
- "target": "components_travelling_badge_badgeprops"
+ "source": "lims_test_catalogue_test_write_atomic_replaces_previous_file",
+ "target": "lims_catalogue_read_catalogue"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "tests/unit/ui/test_travelling_badge.py",
- "source_location": "L64",
+ "source_file": "tests/unit/lims/test_catalogue.py",
+ "source_location": "L130",
"weight": 1.0,
- "source": "ui_test_travelling_badge_test_amber_only_when_no_hard_findings",
- "target": "components_travelling_badge_travelling_badges"
+ "source": "lims_test_catalogue_test_read_handles_missing_projects_array",
+ "target": "lims_catalogue_read_catalogue"
},
{
- "relation": "calls",
- "context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/ui/test_travelling_badge.py",
- "source_location": "L65",
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/lims/test_keyring_store.py",
+ "source_location": "L25",
"weight": 1.0,
- "source": "ui_test_travelling_badge_test_amber_only_when_no_hard_findings",
- "target": "components_travelling_badge_badgeprops"
+ "confidence_score": 1.0,
+ "source": "tests_unit_lims_test_keyring_store_py",
+ "target": "lims_test_keyring_store_inmemorykeyring"
},
{
- "relation": "calls",
- "context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/ui/test_travelling_badge.py",
- "source_location": "L73",
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/lims/test_keyring_store.py",
+ "source_location": "L45",
"weight": 1.0,
- "source": "ui_test_travelling_badge_test_two_equipment_get_independent_badges",
- "target": "components_travelling_badge_travelling_badges"
+ "confidence_score": 1.0,
+ "source": "tests_unit_lims_test_keyring_store_py",
+ "target": "lims_test_keyring_store_brokenkeyring"
},
{
- "relation": "calls",
- "context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/ui/test_travelling_badge.py",
- "source_location": "L75",
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/lims/test_keyring_store.py",
+ "source_location": "L61",
"weight": 1.0,
- "source": "ui_test_travelling_badge_test_two_equipment_get_independent_badges",
- "target": "components_travelling_badge_badgeprops"
+ "confidence_score": 1.0,
+ "source": "tests_unit_lims_test_keyring_store_py",
+ "target": "lims_test_keyring_store_swap_keyring"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/ui/test_wizard_project_page.py",
- "source_location": "L30",
+ "source_file": "tests/unit/lims/test_keyring_store.py",
+ "source_location": "L70",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_ui_test_wizard_project_page_py",
- "target": "ui_test_wizard_project_page_test_can_advance_equipment_step_requires_selection"
+ "source": "tests_unit_lims_test_keyring_store_py",
+ "target": "lims_test_keyring_store_test_set_get_delete_via_os_keyring"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/ui/test_wizard_project_page.py",
- "source_location": "L37",
+ "source_file": "tests/unit/lims/test_keyring_store.py",
+ "source_location": "L79",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_ui_test_wizard_project_page_py",
- "target": "ui_test_wizard_project_page_test_can_advance_variables_step_always_true"
+ "source": "tests_unit_lims_test_keyring_store_py",
+ "target": "lims_test_keyring_store_test_get_returns_none_for_missing"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/ui/test_wizard_project_page.py",
- "source_location": "L45",
+ "source_file": "tests/unit/lims/test_keyring_store.py",
+ "source_location": "L85",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_ui_test_wizard_project_page_py",
- "target": "ui_test_wizard_project_page_test_can_advance_confirm_step_always_true"
+ "source": "tests_unit_lims_test_keyring_store_py",
+ "target": "lims_test_keyring_store_test_delete_missing_is_silent"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/ui/test_wizard_project_page.py",
- "source_location": "L49",
+ "source_file": "tests/unit/lims/test_keyring_store.py",
+ "source_location": "L93",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_ui_test_wizard_project_page_py",
- "target": "ui_test_wizard_project_page_test_can_advance_default_step_is_lims_project"
+ "source": "tests_unit_lims_test_keyring_store_py",
+ "target": "lims_test_keyring_store_test_is_keyring_available_true"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/ui/test_wizard_project_page.py",
- "source_location": "L58",
+ "source_file": "tests/unit/lims/test_keyring_store.py",
+ "source_location": "L99",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_ui_test_wizard_project_page_py",
- "target": "ui_test_wizard_project_page_test_can_advance_readme_blocks_on_partial_core_fields"
+ "source": "tests_unit_lims_test_keyring_store_py",
+ "target": "lims_test_keyring_store_test_is_keyring_available_false_on_broken_backend"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/ui/test_wizard_project_page.py",
- "source_location": "L71",
+ "source_file": "tests/unit/lims/test_keyring_store.py",
+ "source_location": "L105",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_ui_test_wizard_project_page_py",
- "target": "ui_test_wizard_project_page_test_disk_space_message_none_when_unknown"
+ "source": "tests_unit_lims_test_keyring_store_py",
+ "target": "lims_test_keyring_store_test_fallback_round_trip"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/ui/test_wizard_project_page.py",
- "source_location": "L76",
+ "source_file": "tests/unit/lims/test_keyring_store.py",
+ "source_location": "L122",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_ui_test_wizard_project_page_py",
- "target": "ui_test_wizard_project_page_test_disk_space_message_none_when_ample"
+ "source": "tests_unit_lims_test_keyring_store_py",
+ "target": "lims_test_keyring_store_test_fallback_delete"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/ui/test_wizard_project_page.py",
- "source_location": "L81",
+ "source_file": "tests/unit/lims/test_keyring_store.py",
+ "source_location": "L138",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_ui_test_wizard_project_page_py",
- "target": "ui_test_wizard_project_page_test_disk_space_message_present_just_below_threshold"
+ "source": "tests_unit_lims_test_keyring_store_py",
+ "target": "lims_test_keyring_store_test_fallback_wrong_passphrase_raises"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/ui/test_wizard_project_page.py",
- "source_location": "L92",
+ "source_file": "tests/unit/lims/test_keyring_store.py",
+ "source_location": "L155",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_ui_test_wizard_project_page_py",
- "target": "ui_test_wizard_project_page_test_state_lims_project_name_defaults_empty_and_is_settable"
+ "source": "tests_unit_lims_test_keyring_store_py",
+ "target": "lims_test_keyring_store_test_fallback_no_passphrase_raises"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/ui/test_wizard_project_page.py",
- "source_location": "L104",
+ "source_file": "tests/unit/lims/test_keyring_store.py",
+ "source_location": "L162",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_ui_test_wizard_project_page_py",
- "target": "ui_test_wizard_project_page_test_render_project_wizard_with_choices_does_not_raise"
+ "source": "tests_unit_lims_test_keyring_store_py",
+ "target": "lims_test_keyring_store_test_fallback_empty_passphrase_raises"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/ui/test_wizard_project_page.py",
- "source_location": "L114",
+ "source_file": "tests/unit/lims/test_keyring_store.py",
+ "source_location": "L169",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_ui_test_wizard_project_page_py",
- "target": "ui_test_wizard_project_page_test_render_project_wizard_with_empty_choices_does_not_raise"
+ "source": "tests_unit_lims_test_keyring_store_py",
+ "target": "lims_test_keyring_store_test_fallback_file_format_integrity"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/ui/test_wizard_project_page.py",
- "source_location": "L123",
+ "source_file": "tests/unit/lims/test_keyring_store.py",
+ "source_location": "L185",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_ui_test_wizard_project_page_py",
- "target": "ui_test_wizard_project_page_test_render_project_wizard_defaults_state_when_omitted"
+ "source": "tests_unit_lims_test_keyring_store_py",
+ "target": "lims_test_keyring_store_test_fallback_corrupt_file_raises"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/ui/test_wizard_project_page.py",
- "source_location": "L128",
+ "source_file": "tests/unit/lims/test_keyring_store.py",
+ "source_location": "L198",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_ui_test_wizard_project_page_py",
- "target": "ui_test_wizard_project_page_test_wizard_project_step_titles_cover_every_step"
+ "source": "tests_unit_lims_test_keyring_store_py",
+ "target": "lims_test_keyring_store_test_fallback_unsupported_version_raises"
+ },
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/lims/test_keyring_store.py",
+ "source_location": "L212",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "tests_unit_lims_test_keyring_store_py",
+ "target": "lims_test_keyring_store_test_fallback_missing_fields_raises"
+ },
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/lims/test_keyring_store.py",
+ "source_location": "L224",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "tests_unit_lims_test_keyring_store_py",
+ "target": "lims_test_keyring_store_test_fallback_set_then_overwrite"
+ },
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/lims/test_keyring_store.py",
+ "source_location": "L236",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "tests_unit_lims_test_keyring_store_py",
+ "target": "lims_test_keyring_store_test_keyring_set_failure_falls_back"
+ },
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/lims/test_keyring_store.py",
+ "source_location": "L249",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "tests_unit_lims_test_keyring_store_py",
+ "target": "lims_test_keyring_store_test_is_keyring_available_false_on_unexpected_exception"
+ },
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/lims/test_keyring_store.py",
+ "source_location": "L269",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "tests_unit_lims_test_keyring_store_py",
+ "target": "lims_test_keyring_store_test_fallback_get_when_no_secrets_file"
+ },
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/lims/test_keyring_store.py",
+ "source_location": "L281",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "tests_unit_lims_test_keyring_store_py",
+ "target": "lims_test_keyring_store_test_fallback_delete_when_no_file"
+ },
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/lims/test_keyring_store.py",
+ "source_location": "L292",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "tests_unit_lims_test_keyring_store_py",
+ "target": "lims_test_keyring_store_test_fallback_delete_when_username_absent"
+ },
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/lims/test_keyring_store.py",
+ "source_location": "L306",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "tests_unit_lims_test_keyring_store_py",
+ "target": "lims_test_keyring_store_test_load_fallback_unreadable_path_raises"
+ },
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/lims/test_keyring_store.py",
+ "source_location": "L324",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "tests_unit_lims_test_keyring_store_py",
+ "target": "lims_test_keyring_store_test_fallback_plaintext_must_be_object"
+ },
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/lims/test_keyring_store.py",
+ "source_location": "L360",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "tests_unit_lims_test_keyring_store_py",
+ "target": "lims_test_keyring_store_test_envelope_must_be_object"
+ },
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/lims/test_keyring_store.py",
+ "source_location": "L373",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "tests_unit_lims_test_keyring_store_py",
+ "target": "lims_test_keyring_store_test_get_consults_fallback_when_keyring_missing"
},
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/ui/test_wizard_project_page.py",
+ "source_file": "tests/unit/lims/test_keyring_store.py",
"source_location": "L1",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "ui_test_wizard_project_page_rationale_1",
- "target": "tests_unit_ui_test_wizard_project_page_py"
+ "source": "lims_test_keyring_store_rationale_1",
+ "target": "tests_unit_lims_test_keyring_store_py"
+ },
+ {
+ "relation": "method",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/lims/test_keyring_store.py",
+ "source_location": "L30",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "lims_test_keyring_store_inmemorykeyring",
+ "target": "lims_test_keyring_store_inmemorykeyring_init"
+ },
+ {
+ "relation": "method",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/lims/test_keyring_store.py",
+ "source_location": "L33",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "lims_test_keyring_store_inmemorykeyring",
+ "target": "lims_test_keyring_store_inmemorykeyring_get_password"
+ },
+ {
+ "relation": "method",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/lims/test_keyring_store.py",
+ "source_location": "L36",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "lims_test_keyring_store_inmemorykeyring",
+ "target": "lims_test_keyring_store_inmemorykeyring_set_password"
+ },
+ {
+ "relation": "method",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/lims/test_keyring_store.py",
+ "source_location": "L39",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "lims_test_keyring_store_inmemorykeyring",
+ "target": "lims_test_keyring_store_inmemorykeyring_delete_password"
},
{
"relation": "calls",
"context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/ui/test_wizard_project_page.py",
- "source_location": "L31",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/lims/test_keyring_store.py",
+ "source_location": "L71",
"weight": 1.0,
- "source": "ui_test_wizard_project_page_test_can_advance_equipment_step_requires_selection",
- "target": "pages_wizard_project_projectwizardstate"
+ "confidence_score": 1.0,
+ "source": "lims_test_keyring_store_test_set_get_delete_via_os_keyring",
+ "target": "lims_test_keyring_store_inmemorykeyring"
},
{
"relation": "calls",
"context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/ui/test_wizard_project_page.py",
- "source_location": "L39",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/lims/test_keyring_store.py",
+ "source_location": "L80",
"weight": 1.0,
- "source": "ui_test_wizard_project_page_test_can_advance_variables_step_always_true",
- "target": "pages_wizard_project_projectwizardstate"
+ "confidence_score": 1.0,
+ "source": "lims_test_keyring_store_test_get_returns_none_for_missing",
+ "target": "lims_test_keyring_store_inmemorykeyring"
},
{
"relation": "calls",
"context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/ui/test_wizard_project_page.py",
- "source_location": "L46",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/lims/test_keyring_store.py",
+ "source_location": "L86",
"weight": 1.0,
- "source": "ui_test_wizard_project_page_test_can_advance_confirm_step_always_true",
- "target": "pages_wizard_project_projectwizardstate"
+ "confidence_score": 1.0,
+ "source": "lims_test_keyring_store_test_delete_missing_is_silent",
+ "target": "lims_test_keyring_store_inmemorykeyring"
},
{
"relation": "calls",
"context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/ui/test_wizard_project_page.py",
- "source_location": "L51",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/lims/test_keyring_store.py",
+ "source_location": "L94",
"weight": 1.0,
- "source": "ui_test_wizard_project_page_test_can_advance_default_step_is_lims_project",
- "target": "pages_wizard_project_projectwizardstate"
+ "confidence_score": 1.0,
+ "source": "lims_test_keyring_store_test_is_keyring_available_true",
+ "target": "lims_test_keyring_store_inmemorykeyring"
},
{
"relation": "calls",
"context": "call",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/lims/test_keyring_store.py",
+ "source_location": "L386",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "lims_test_keyring_store_test_get_consults_fallback_when_keyring_missing",
+ "target": "lims_test_keyring_store_inmemorykeyring"
+ },
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/lims/test_keyring_store.py",
+ "source_location": "L26",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "lims_test_keyring_store_rationale_26",
+ "target": "lims_test_keyring_store_inmemorykeyring"
+ },
+ {
+ "relation": "uses",
"confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/ui/test_wizard_project_page.py",
- "source_location": "L59",
+ "source_file": "tests/unit/lims/test_keyring_store.py",
+ "source_location": "L21",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "lims_test_keyring_store_inmemorykeyring",
+ "target": "exlab_wizard_errors_keyringunavailableerror"
+ },
+ {
+ "relation": "uses",
+ "confidence": "INFERRED",
+ "source_file": "tests/unit/lims/test_keyring_store.py",
+ "source_location": "L22",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "lims_test_keyring_store_inmemorykeyring",
+ "target": "lims_keyring_store_keyringstore"
+ },
+ {
+ "relation": "method",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/lims/test_keyring_store.py",
+ "source_location": "L50",
"weight": 1.0,
- "source": "ui_test_wizard_project_page_test_can_advance_readme_blocks_on_partial_core_fields",
- "target": "pages_wizard_project_projectwizardstate"
+ "confidence_score": 1.0,
+ "source": "lims_test_keyring_store_brokenkeyring",
+ "target": "lims_test_keyring_store_brokenkeyring_get_password"
+ },
+ {
+ "relation": "method",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/lims/test_keyring_store.py",
+ "source_location": "L53",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "lims_test_keyring_store_brokenkeyring",
+ "target": "lims_test_keyring_store_brokenkeyring_set_password"
+ },
+ {
+ "relation": "method",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/lims/test_keyring_store.py",
+ "source_location": "L56",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "lims_test_keyring_store_brokenkeyring",
+ "target": "lims_test_keyring_store_brokenkeyring_delete_password"
},
{
"relation": "calls",
"context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/ui/test_wizard_project_page.py",
- "source_location": "L72",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/lims/test_keyring_store.py",
+ "source_location": "L100",
"weight": 1.0,
- "source": "ui_test_wizard_project_page_test_disk_space_message_none_when_unknown",
- "target": "pages_wizard_project_projectwizardstate"
+ "confidence_score": 1.0,
+ "source": "lims_test_keyring_store_test_is_keyring_available_false_on_broken_backend",
+ "target": "lims_test_keyring_store_brokenkeyring"
},
{
"relation": "calls",
"context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/ui/test_wizard_project_page.py",
- "source_location": "L73",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/lims/test_keyring_store.py",
+ "source_location": "L107",
"weight": 1.0,
- "source": "ui_test_wizard_project_page_test_disk_space_message_none_when_unknown",
- "target": "pages_wizard_project_disk_space_pre_flight_message"
+ "confidence_score": 1.0,
+ "source": "lims_test_keyring_store_test_fallback_round_trip",
+ "target": "lims_test_keyring_store_brokenkeyring"
},
{
"relation": "calls",
"context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/ui/test_wizard_project_page.py",
- "source_location": "L77",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/lims/test_keyring_store.py",
+ "source_location": "L123",
"weight": 1.0,
- "source": "ui_test_wizard_project_page_test_disk_space_message_none_when_ample",
- "target": "pages_wizard_project_projectwizardstate"
+ "confidence_score": 1.0,
+ "source": "lims_test_keyring_store_test_fallback_delete",
+ "target": "lims_test_keyring_store_brokenkeyring"
},
{
"relation": "calls",
"context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/ui/test_wizard_project_page.py",
- "source_location": "L78",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/lims/test_keyring_store.py",
+ "source_location": "L139",
"weight": 1.0,
- "source": "ui_test_wizard_project_page_test_disk_space_message_none_when_ample",
- "target": "pages_wizard_project_disk_space_pre_flight_message"
+ "confidence_score": 1.0,
+ "source": "lims_test_keyring_store_test_fallback_wrong_passphrase_raises",
+ "target": "lims_test_keyring_store_brokenkeyring"
},
{
"relation": "calls",
"context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/ui/test_wizard_project_page.py",
- "source_location": "L82",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/lims/test_keyring_store.py",
+ "source_location": "L156",
"weight": 1.0,
- "source": "ui_test_wizard_project_page_test_disk_space_message_present_just_below_threshold",
- "target": "pages_wizard_project_projectwizardstate"
+ "confidence_score": 1.0,
+ "source": "lims_test_keyring_store_test_fallback_no_passphrase_raises",
+ "target": "lims_test_keyring_store_brokenkeyring"
},
{
"relation": "calls",
"context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/ui/test_wizard_project_page.py",
- "source_location": "L83",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/lims/test_keyring_store.py",
+ "source_location": "L163",
"weight": 1.0,
- "source": "ui_test_wizard_project_page_test_disk_space_message_present_just_below_threshold",
- "target": "pages_wizard_project_disk_space_pre_flight_message"
+ "confidence_score": 1.0,
+ "source": "lims_test_keyring_store_test_fallback_empty_passphrase_raises",
+ "target": "lims_test_keyring_store_brokenkeyring"
},
{
"relation": "calls",
"context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/ui/test_wizard_project_page.py",
- "source_location": "L93",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/lims/test_keyring_store.py",
+ "source_location": "L171",
"weight": 1.0,
- "source": "ui_test_wizard_project_page_test_state_lims_project_name_defaults_empty_and_is_settable",
- "target": "pages_wizard_project_projectwizardstate"
+ "confidence_score": 1.0,
+ "source": "lims_test_keyring_store_test_fallback_file_format_integrity",
+ "target": "lims_test_keyring_store_brokenkeyring"
},
{
"relation": "calls",
"context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/ui/test_wizard_project_page.py",
- "source_location": "L105",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/lims/test_keyring_store.py",
+ "source_location": "L189",
"weight": 1.0,
- "source": "ui_test_wizard_project_page_test_render_project_wizard_with_choices_does_not_raise",
- "target": "pages_wizard_project_render_project_wizard"
+ "confidence_score": 1.0,
+ "source": "lims_test_keyring_store_test_fallback_corrupt_file_raises",
+ "target": "lims_test_keyring_store_brokenkeyring"
},
{
"relation": "calls",
"context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/ui/test_wizard_project_page.py",
- "source_location": "L106",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/lims/test_keyring_store.py",
+ "source_location": "L203",
"weight": 1.0,
- "source": "ui_test_wizard_project_page_test_render_project_wizard_with_choices_does_not_raise",
- "target": "pages_wizard_project_projectwizardstate"
+ "confidence_score": 1.0,
+ "source": "lims_test_keyring_store_test_fallback_unsupported_version_raises",
+ "target": "lims_test_keyring_store_brokenkeyring"
},
{
"relation": "calls",
"context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/ui/test_wizard_project_page.py",
- "source_location": "L115",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/lims/test_keyring_store.py",
+ "source_location": "L215",
"weight": 1.0,
- "source": "ui_test_wizard_project_page_test_render_project_wizard_with_empty_choices_does_not_raise",
- "target": "pages_wizard_project_render_project_wizard"
+ "confidence_score": 1.0,
+ "source": "lims_test_keyring_store_test_fallback_missing_fields_raises",
+ "target": "lims_test_keyring_store_brokenkeyring"
},
{
"relation": "calls",
"context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/ui/test_wizard_project_page.py",
- "source_location": "L116",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/lims/test_keyring_store.py",
+ "source_location": "L226",
"weight": 1.0,
- "source": "ui_test_wizard_project_page_test_render_project_wizard_with_empty_choices_does_not_raise",
- "target": "pages_wizard_project_projectwizardstate"
+ "confidence_score": 1.0,
+ "source": "lims_test_keyring_store_test_fallback_set_then_overwrite",
+ "target": "lims_test_keyring_store_brokenkeyring"
+ },
+ {
+ "relation": "calls",
+ "context": "call",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/lims/test_keyring_store.py",
+ "source_location": "L240",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "lims_test_keyring_store_test_keyring_set_failure_falls_back",
+ "target": "lims_test_keyring_store_brokenkeyring"
+ },
+ {
+ "relation": "calls",
+ "context": "call",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/lims/test_keyring_store.py",
+ "source_location": "L273",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "lims_test_keyring_store_test_fallback_get_when_no_secrets_file",
+ "target": "lims_test_keyring_store_brokenkeyring"
+ },
+ {
+ "relation": "calls",
+ "context": "call",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/lims/test_keyring_store.py",
+ "source_location": "L283",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "lims_test_keyring_store_test_fallback_delete_when_no_file",
+ "target": "lims_test_keyring_store_brokenkeyring"
+ },
+ {
+ "relation": "calls",
+ "context": "call",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/lims/test_keyring_store.py",
+ "source_location": "L294",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "lims_test_keyring_store_test_fallback_delete_when_username_absent",
+ "target": "lims_test_keyring_store_brokenkeyring"
+ },
+ {
+ "relation": "calls",
+ "context": "call",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/lims/test_keyring_store.py",
+ "source_location": "L315",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "lims_test_keyring_store_test_load_fallback_unreadable_path_raises",
+ "target": "lims_test_keyring_store_brokenkeyring"
+ },
+ {
+ "relation": "calls",
+ "context": "call",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/lims/test_keyring_store.py",
+ "source_location": "L351",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "lims_test_keyring_store_test_fallback_plaintext_must_be_object",
+ "target": "lims_test_keyring_store_brokenkeyring"
+ },
+ {
+ "relation": "calls",
+ "context": "call",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/lims/test_keyring_store.py",
+ "source_location": "L364",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "lims_test_keyring_store_test_envelope_must_be_object",
+ "target": "lims_test_keyring_store_brokenkeyring"
},
{
"relation": "calls",
"context": "call",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/lims/test_keyring_store.py",
+ "source_location": "L378",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "lims_test_keyring_store_test_get_consults_fallback_when_keyring_missing",
+ "target": "lims_test_keyring_store_brokenkeyring"
+ },
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/lims/test_keyring_store.py",
+ "source_location": "L46",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "lims_test_keyring_store_rationale_46",
+ "target": "lims_test_keyring_store_brokenkeyring"
+ },
+ {
+ "relation": "uses",
"confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/ui/test_wizard_project_page.py",
- "source_location": "L124",
+ "source_file": "tests/unit/lims/test_keyring_store.py",
+ "source_location": "L21",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "lims_test_keyring_store_brokenkeyring",
+ "target": "exlab_wizard_errors_keyringunavailableerror"
+ },
+ {
+ "relation": "uses",
+ "confidence": "INFERRED",
+ "source_file": "tests/unit/lims/test_keyring_store.py",
+ "source_location": "L22",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "lims_test_keyring_store_brokenkeyring",
+ "target": "lims_keyring_store_keyringstore"
+ },
+ {
+ "relation": "calls",
+ "context": "call",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/lims/test_keyring_store.py",
+ "source_location": "L74",
"weight": 1.0,
- "source": "ui_test_wizard_project_page_test_render_project_wizard_defaults_state_when_omitted",
- "target": "pages_wizard_project_render_project_wizard"
+ "confidence_score": 1.0,
+ "source": "lims_test_keyring_store_test_set_get_delete_via_os_keyring",
+ "target": "lims_test_keyring_store_brokenkeyring_get_password"
+ },
+ {
+ "relation": "calls",
+ "context": "call",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/lims/test_keyring_store.py",
+ "source_location": "L82",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "lims_test_keyring_store_test_get_returns_none_for_missing",
+ "target": "lims_test_keyring_store_brokenkeyring_get_password"
},
{
- "relation": "contains",
+ "relation": "calls",
+ "context": "call",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/ui/test_folder_feed.py",
- "source_location": "L18",
+ "source_file": "tests/unit/lims/test_keyring_store.py",
+ "source_location": "L119",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_ui_test_folder_feed_py",
- "target": "ui_test_folder_feed_test_folder_feed_start_then_stop_calls_fetch_at_least_once"
+ "source": "lims_test_keyring_store_test_fallback_round_trip",
+ "target": "lims_test_keyring_store_brokenkeyring_get_password"
},
{
- "relation": "contains",
+ "relation": "calls",
+ "context": "call",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/ui/test_folder_feed.py",
- "source_location": "L34",
+ "source_file": "tests/unit/lims/test_keyring_store.py",
+ "source_location": "L135",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_ui_test_folder_feed_py",
- "target": "ui_test_folder_feed_test_folder_feed_switching_paths_stops_previous"
+ "source": "lims_test_keyring_store_test_fallback_delete",
+ "target": "lims_test_keyring_store_brokenkeyring_get_password"
},
{
- "relation": "contains",
+ "relation": "calls",
+ "context": "call",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/ui/test_folder_feed.py",
- "source_location": "L53",
+ "source_file": "tests/unit/lims/test_keyring_store.py",
+ "source_location": "L152",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_ui_test_folder_feed_py",
- "target": "ui_test_folder_feed_test_folder_feed_pause_skips_fetch"
+ "source": "lims_test_keyring_store_test_fallback_wrong_passphrase_raises",
+ "target": "lims_test_keyring_store_brokenkeyring_get_password"
},
{
- "relation": "contains",
+ "relation": "calls",
+ "context": "call",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/ui/test_folder_feed.py",
- "source_location": "L73",
+ "source_file": "tests/unit/lims/test_keyring_store.py",
+ "source_location": "L195",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_ui_test_folder_feed_py",
- "target": "ui_test_folder_feed_test_refresh_coordinator_coalesces_within_window"
+ "source": "lims_test_keyring_store_test_fallback_corrupt_file_raises",
+ "target": "lims_test_keyring_store_brokenkeyring_get_password"
},
{
- "relation": "rationale_for",
+ "relation": "calls",
+ "context": "call",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/ui/test_folder_feed.py",
- "source_location": "L1",
+ "source_file": "tests/unit/lims/test_keyring_store.py",
+ "source_location": "L209",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "ui_test_folder_feed_rationale_1",
- "target": "tests_unit_ui_test_folder_feed_py"
+ "source": "lims_test_keyring_store_test_fallback_unsupported_version_raises",
+ "target": "lims_test_keyring_store_brokenkeyring_get_password"
},
{
"relation": "calls",
"context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/ui/test_folder_feed.py",
- "source_location": "L25",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/lims/test_keyring_store.py",
+ "source_location": "L221",
"weight": 1.0,
- "source": "ui_test_folder_feed_test_folder_feed_start_then_stop_calls_fetch_at_least_once",
- "target": "client_folder_feed_folderfeed"
+ "confidence_score": 1.0,
+ "source": "lims_test_keyring_store_test_fallback_missing_fields_raises",
+ "target": "lims_test_keyring_store_brokenkeyring_get_password"
},
{
"relation": "calls",
"context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/ui/test_folder_feed.py",
- "source_location": "L41",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/lims/test_keyring_store.py",
+ "source_location": "L233",
"weight": 1.0,
- "source": "ui_test_folder_feed_test_folder_feed_switching_paths_stops_previous",
- "target": "client_folder_feed_folderfeed"
+ "confidence_score": 1.0,
+ "source": "lims_test_keyring_store_test_fallback_set_then_overwrite",
+ "target": "lims_test_keyring_store_brokenkeyring_get_password"
},
{
"relation": "calls",
"context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/ui/test_folder_feed.py",
- "source_location": "L60",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/lims/test_keyring_store.py",
+ "source_location": "L246",
"weight": 1.0,
- "source": "ui_test_folder_feed_test_folder_feed_pause_skips_fetch",
- "target": "client_folder_feed_folderfeed"
+ "confidence_score": 1.0,
+ "source": "lims_test_keyring_store_test_keyring_set_failure_falls_back",
+ "target": "lims_test_keyring_store_brokenkeyring_get_password"
},
{
"relation": "calls",
"context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/ui/test_folder_feed.py",
- "source_location": "L74",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/lims/test_keyring_store.py",
+ "source_location": "L278",
"weight": 1.0,
- "source": "ui_test_folder_feed_test_refresh_coordinator_coalesces_within_window",
- "target": "client_refresh_coordinator_refreshcoordinator"
+ "confidence_score": 1.0,
+ "source": "lims_test_keyring_store_test_fallback_get_when_no_secrets_file",
+ "target": "lims_test_keyring_store_brokenkeyring_get_password"
},
{
- "relation": "contains",
+ "relation": "calls",
+ "context": "call",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/lims/test_catalogue.py",
- "source_location": "L14",
+ "source_file": "tests/unit/lims/test_keyring_store.py",
+ "source_location": "L303",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_lims_test_catalogue_py",
- "target": "lims_test_catalogue_make_catalogue"
+ "source": "lims_test_keyring_store_test_fallback_delete_when_username_absent",
+ "target": "lims_test_keyring_store_brokenkeyring_get_password"
},
{
- "relation": "contains",
+ "relation": "calls",
+ "context": "call",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/lims/test_catalogue.py",
- "source_location": "L36",
+ "source_file": "tests/unit/lims/test_keyring_store.py",
+ "source_location": "L321",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_lims_test_catalogue_py",
- "target": "lims_test_catalogue_test_round_trip_via_write_then_read"
+ "source": "lims_test_keyring_store_test_load_fallback_unreadable_path_raises",
+ "target": "lims_test_keyring_store_brokenkeyring_get_password"
},
{
- "relation": "contains",
+ "relation": "calls",
+ "context": "call",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/lims/test_catalogue.py",
- "source_location": "L48",
+ "source_file": "tests/unit/lims/test_keyring_store.py",
+ "source_location": "L357",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_lims_test_catalogue_py",
- "target": "lims_test_catalogue_test_read_missing_file_raises"
+ "source": "lims_test_keyring_store_test_fallback_plaintext_must_be_object",
+ "target": "lims_test_keyring_store_brokenkeyring_get_password"
},
{
- "relation": "contains",
+ "relation": "calls",
+ "context": "call",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/lims/test_catalogue.py",
- "source_location": "L53",
+ "source_file": "tests/unit/lims/test_keyring_store.py",
+ "source_location": "L370",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_lims_test_catalogue_py",
- "target": "lims_test_catalogue_test_read_invalid_json_raises"
+ "source": "lims_test_keyring_store_test_envelope_must_be_object",
+ "target": "lims_test_keyring_store_brokenkeyring_get_password"
},
{
- "relation": "contains",
+ "relation": "calls",
+ "context": "call",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/lims/test_catalogue.py",
- "source_location": "L60",
+ "source_file": "tests/unit/lims/test_keyring_store.py",
+ "source_location": "L391",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_lims_test_catalogue_py",
- "target": "lims_test_catalogue_test_read_non_object_raises"
+ "source": "lims_test_keyring_store_test_get_consults_fallback_when_keyring_missing",
+ "target": "lims_test_keyring_store_brokenkeyring_get_password"
},
{
- "relation": "contains",
+ "relation": "calls",
+ "context": "call",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/lims/test_catalogue.py",
- "source_location": "L67",
+ "source_file": "tests/unit/lims/test_keyring_store.py",
+ "source_location": "L73",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_lims_test_catalogue_py",
- "target": "lims_test_catalogue_test_schema_version_mismatch_treated_as_absent"
+ "source": "lims_test_keyring_store_test_set_get_delete_via_os_keyring",
+ "target": "lims_test_keyring_store_brokenkeyring_set_password"
},
{
- "relation": "contains",
+ "relation": "calls",
+ "context": "call",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/lims/test_catalogue.py",
- "source_location": "L85",
+ "source_file": "tests/unit/lims/test_keyring_store.py",
+ "source_location": "L112",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_lims_test_catalogue_py",
- "target": "lims_test_catalogue_test_endpoint_mismatch_raises"
+ "source": "lims_test_keyring_store_test_fallback_round_trip",
+ "target": "lims_test_keyring_store_brokenkeyring_set_password"
},
{
- "relation": "contains",
+ "relation": "calls",
+ "context": "call",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/lims/test_catalogue.py",
- "source_location": "L93",
+ "source_file": "tests/unit/lims/test_keyring_store.py",
+ "source_location": "L128",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_lims_test_catalogue_py",
- "target": "lims_test_catalogue_test_write_creates_parent_directory"
+ "source": "lims_test_keyring_store_test_fallback_delete",
+ "target": "lims_test_keyring_store_brokenkeyring_set_password"
},
{
- "relation": "contains",
+ "relation": "calls",
+ "context": "call",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/lims/test_catalogue.py",
- "source_location": "L100",
+ "source_file": "tests/unit/lims/test_keyring_store.py",
+ "source_location": "L144",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_lims_test_catalogue_py",
- "target": "lims_test_catalogue_test_write_atomic_replaces_previous_file"
+ "source": "lims_test_keyring_store_test_fallback_wrong_passphrase_raises",
+ "target": "lims_test_keyring_store_brokenkeyring_set_password"
},
{
- "relation": "contains",
+ "relation": "calls",
+ "context": "call",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/lims/test_catalogue.py",
- "source_location": "L121",
+ "source_file": "tests/unit/lims/test_keyring_store.py",
+ "source_location": "L159",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_lims_test_catalogue_py",
- "target": "lims_test_catalogue_test_read_handles_missing_projects_array"
+ "source": "lims_test_keyring_store_test_fallback_no_passphrase_raises",
+ "target": "lims_test_keyring_store_brokenkeyring_set_password"
},
{
- "relation": "rationale_for",
+ "relation": "calls",
+ "context": "call",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/lims/test_catalogue.py",
- "source_location": "L1",
+ "source_file": "tests/unit/lims/test_keyring_store.py",
+ "source_location": "L166",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "lims_test_catalogue_rationale_1",
- "target": "tests_unit_lims_test_catalogue_py"
+ "source": "lims_test_keyring_store_test_fallback_empty_passphrase_raises",
+ "target": "lims_test_keyring_store_brokenkeyring_set_password"
},
{
"relation": "calls",
"context": "call",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/lims/test_catalogue.py",
- "source_location": "L38",
+ "source_file": "tests/unit/lims/test_keyring_store.py",
+ "source_location": "L176",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "lims_test_catalogue_test_round_trip_via_write_then_read",
- "target": "lims_test_catalogue_make_catalogue"
+ "source": "lims_test_keyring_store_test_fallback_file_format_integrity",
+ "target": "lims_test_keyring_store_brokenkeyring_set_password"
},
{
"relation": "calls",
"context": "call",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/lims/test_catalogue.py",
- "source_location": "L87",
+ "source_file": "tests/unit/lims/test_keyring_store.py",
+ "source_location": "L231",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "lims_test_catalogue_test_endpoint_mismatch_raises",
- "target": "lims_test_catalogue_make_catalogue"
+ "source": "lims_test_keyring_store_test_fallback_set_then_overwrite",
+ "target": "lims_test_keyring_store_brokenkeyring_set_password"
},
{
"relation": "calls",
"context": "call",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/lims/test_catalogue.py",
- "source_location": "L95",
+ "source_file": "tests/unit/lims/test_keyring_store.py",
+ "source_location": "L245",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "lims_test_catalogue_test_write_creates_parent_directory",
- "target": "lims_test_catalogue_make_catalogue"
+ "source": "lims_test_keyring_store_test_keyring_set_failure_falls_back",
+ "target": "lims_test_keyring_store_brokenkeyring_set_password"
},
{
"relation": "calls",
"context": "call",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/lims/test_catalogue.py",
- "source_location": "L102",
+ "source_file": "tests/unit/lims/test_keyring_store.py",
+ "source_location": "L299",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "lims_test_catalogue_test_write_atomic_replaces_previous_file",
- "target": "lims_test_catalogue_make_catalogue"
+ "source": "lims_test_keyring_store_test_fallback_delete_when_username_absent",
+ "target": "lims_test_keyring_store_brokenkeyring_set_password"
},
{
"relation": "calls",
"context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/lims/test_catalogue.py",
- "source_location": "L15",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/lims/test_keyring_store.py",
+ "source_location": "L383",
"weight": 1.0,
- "source": "lims_test_catalogue_make_catalogue",
- "target": "lims_catalogue_offlinecatalogue"
+ "confidence_score": 1.0,
+ "source": "lims_test_keyring_store_test_get_consults_fallback_when_keyring_missing",
+ "target": "lims_test_keyring_store_brokenkeyring_set_password"
},
{
"relation": "calls",
"context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/lims/test_catalogue.py",
- "source_location": "L21",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/lims/test_keyring_store.py",
+ "source_location": "L75",
"weight": 1.0,
- "source": "lims_test_catalogue_make_catalogue",
- "target": "lims_schemas_limsproject"
+ "confidence_score": 1.0,
+ "source": "lims_test_keyring_store_test_set_get_delete_via_os_keyring",
+ "target": "lims_test_keyring_store_brokenkeyring_delete_password"
},
{
"relation": "calls",
"context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/lims/test_catalogue.py",
- "source_location": "L39",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/lims/test_keyring_store.py",
+ "source_location": "L90",
"weight": 1.0,
- "source": "lims_test_catalogue_test_round_trip_via_write_then_read",
- "target": "lims_catalogue_write_catalogue"
+ "confidence_score": 1.0,
+ "source": "lims_test_keyring_store_test_delete_missing_is_silent",
+ "target": "lims_test_keyring_store_brokenkeyring_delete_password"
},
{
"relation": "calls",
"context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/lims/test_catalogue.py",
- "source_location": "L40",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/lims/test_keyring_store.py",
+ "source_location": "L129",
"weight": 1.0,
- "source": "lims_test_catalogue_test_round_trip_via_write_then_read",
- "target": "lims_catalogue_read_catalogue"
+ "confidence_score": 1.0,
+ "source": "lims_test_keyring_store_test_fallback_delete",
+ "target": "lims_test_keyring_store_brokenkeyring_delete_password"
},
{
"relation": "calls",
"context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/lims/test_catalogue.py",
- "source_location": "L50",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/lims/test_keyring_store.py",
+ "source_location": "L289",
"weight": 1.0,
- "source": "lims_test_catalogue_test_read_missing_file_raises",
- "target": "lims_catalogue_read_catalogue"
+ "confidence_score": 1.0,
+ "source": "lims_test_keyring_store_test_fallback_delete_when_no_file",
+ "target": "lims_test_keyring_store_brokenkeyring_delete_password"
},
{
"relation": "calls",
"context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/lims/test_catalogue.py",
- "source_location": "L57",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/lims/test_keyring_store.py",
+ "source_location": "L302",
"weight": 1.0,
- "source": "lims_test_catalogue_test_read_invalid_json_raises",
- "target": "lims_catalogue_read_catalogue"
+ "confidence_score": 1.0,
+ "source": "lims_test_keyring_store_test_fallback_delete_when_username_absent",
+ "target": "lims_test_keyring_store_brokenkeyring_delete_password"
},
{
"relation": "calls",
"context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/lims/test_catalogue.py",
- "source_location": "L64",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/lims/test_keyring_store.py",
+ "source_location": "L71",
"weight": 1.0,
- "source": "lims_test_catalogue_test_read_non_object_raises",
- "target": "lims_catalogue_read_catalogue"
+ "confidence_score": 1.0,
+ "source": "lims_test_keyring_store_test_set_get_delete_via_os_keyring",
+ "target": "lims_test_keyring_store_swap_keyring"
},
{
"relation": "calls",
"context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/lims/test_catalogue.py",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/lims/test_keyring_store.py",
"source_location": "L80",
"weight": 1.0,
- "source": "lims_test_catalogue_test_schema_version_mismatch_treated_as_absent",
- "target": "lims_catalogue_read_catalogue"
+ "confidence_score": 1.0,
+ "source": "lims_test_keyring_store_test_get_returns_none_for_missing",
+ "target": "lims_test_keyring_store_swap_keyring"
},
{
"relation": "calls",
"context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/lims/test_catalogue.py",
- "source_location": "L88",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/lims/test_keyring_store.py",
+ "source_location": "L86",
"weight": 1.0,
- "source": "lims_test_catalogue_test_endpoint_mismatch_raises",
- "target": "lims_catalogue_write_catalogue"
+ "confidence_score": 1.0,
+ "source": "lims_test_keyring_store_test_delete_missing_is_silent",
+ "target": "lims_test_keyring_store_swap_keyring"
},
{
"relation": "calls",
"context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/lims/test_catalogue.py",
- "source_location": "L90",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/lims/test_keyring_store.py",
+ "source_location": "L94",
"weight": 1.0,
- "source": "lims_test_catalogue_test_endpoint_mismatch_raises",
- "target": "lims_catalogue_read_catalogue"
+ "confidence_score": 1.0,
+ "source": "lims_test_keyring_store_test_is_keyring_available_true",
+ "target": "lims_test_keyring_store_swap_keyring"
},
{
"relation": "calls",
"context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/lims/test_catalogue.py",
- "source_location": "L96",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/lims/test_keyring_store.py",
+ "source_location": "L100",
"weight": 1.0,
- "source": "lims_test_catalogue_test_write_creates_parent_directory",
- "target": "lims_catalogue_write_catalogue"
+ "confidence_score": 1.0,
+ "source": "lims_test_keyring_store_test_is_keyring_available_false_on_broken_backend",
+ "target": "lims_test_keyring_store_swap_keyring"
},
{
"relation": "calls",
"context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/lims/test_catalogue.py",
- "source_location": "L103",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/lims/test_keyring_store.py",
+ "source_location": "L107",
"weight": 1.0,
- "source": "lims_test_catalogue_test_write_atomic_replaces_previous_file",
- "target": "lims_catalogue_write_catalogue"
+ "confidence_score": 1.0,
+ "source": "lims_test_keyring_store_test_fallback_round_trip",
+ "target": "lims_test_keyring_store_swap_keyring"
},
{
"relation": "calls",
"context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/lims/test_catalogue.py",
- "source_location": "L106",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/lims/test_keyring_store.py",
+ "source_location": "L123",
"weight": 1.0,
- "source": "lims_test_catalogue_test_write_atomic_replaces_previous_file",
- "target": "lims_catalogue_offlinecatalogue"
+ "confidence_score": 1.0,
+ "source": "lims_test_keyring_store_test_fallback_delete",
+ "target": "lims_test_keyring_store_swap_keyring"
},
{
"relation": "calls",
"context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/lims/test_catalogue.py",
- "source_location": "L116",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/lims/test_keyring_store.py",
+ "source_location": "L139",
"weight": 1.0,
- "source": "lims_test_catalogue_test_write_atomic_replaces_previous_file",
- "target": "lims_catalogue_read_catalogue"
+ "confidence_score": 1.0,
+ "source": "lims_test_keyring_store_test_fallback_wrong_passphrase_raises",
+ "target": "lims_test_keyring_store_swap_keyring"
},
{
"relation": "calls",
"context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/lims/test_catalogue.py",
- "source_location": "L130",
- "weight": 1.0,
- "source": "lims_test_catalogue_test_read_handles_missing_projects_array",
- "target": "lims_catalogue_read_catalogue"
- },
- {
- "relation": "contains",
"confidence": "EXTRACTED",
"source_file": "tests/unit/lims/test_keyring_store.py",
- "source_location": "L25",
+ "source_location": "L156",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_lims_test_keyring_store_py",
- "target": "lims_test_keyring_store_inmemorykeyring"
+ "source": "lims_test_keyring_store_test_fallback_no_passphrase_raises",
+ "target": "lims_test_keyring_store_swap_keyring"
},
{
- "relation": "contains",
+ "relation": "calls",
+ "context": "call",
"confidence": "EXTRACTED",
"source_file": "tests/unit/lims/test_keyring_store.py",
- "source_location": "L45",
+ "source_location": "L163",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_lims_test_keyring_store_py",
- "target": "lims_test_keyring_store_brokenkeyring"
+ "source": "lims_test_keyring_store_test_fallback_empty_passphrase_raises",
+ "target": "lims_test_keyring_store_swap_keyring"
},
{
- "relation": "contains",
+ "relation": "calls",
+ "context": "call",
"confidence": "EXTRACTED",
"source_file": "tests/unit/lims/test_keyring_store.py",
- "source_location": "L61",
+ "source_location": "L171",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_lims_test_keyring_store_py",
+ "source": "lims_test_keyring_store_test_fallback_file_format_integrity",
"target": "lims_test_keyring_store_swap_keyring"
},
{
- "relation": "contains",
+ "relation": "calls",
+ "context": "call",
"confidence": "EXTRACTED",
"source_file": "tests/unit/lims/test_keyring_store.py",
- "source_location": "L70",
+ "source_location": "L189",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_lims_test_keyring_store_py",
- "target": "lims_test_keyring_store_test_set_get_delete_via_os_keyring"
+ "source": "lims_test_keyring_store_test_fallback_corrupt_file_raises",
+ "target": "lims_test_keyring_store_swap_keyring"
},
{
- "relation": "contains",
+ "relation": "calls",
+ "context": "call",
"confidence": "EXTRACTED",
"source_file": "tests/unit/lims/test_keyring_store.py",
- "source_location": "L79",
+ "source_location": "L203",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_lims_test_keyring_store_py",
- "target": "lims_test_keyring_store_test_get_returns_none_for_missing"
+ "source": "lims_test_keyring_store_test_fallback_unsupported_version_raises",
+ "target": "lims_test_keyring_store_swap_keyring"
},
{
- "relation": "contains",
+ "relation": "calls",
+ "context": "call",
"confidence": "EXTRACTED",
"source_file": "tests/unit/lims/test_keyring_store.py",
- "source_location": "L85",
+ "source_location": "L215",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_lims_test_keyring_store_py",
- "target": "lims_test_keyring_store_test_delete_missing_is_silent"
+ "source": "lims_test_keyring_store_test_fallback_missing_fields_raises",
+ "target": "lims_test_keyring_store_swap_keyring"
},
{
- "relation": "contains",
+ "relation": "calls",
+ "context": "call",
"confidence": "EXTRACTED",
"source_file": "tests/unit/lims/test_keyring_store.py",
- "source_location": "L93",
+ "source_location": "L226",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_lims_test_keyring_store_py",
- "target": "lims_test_keyring_store_test_is_keyring_available_true"
+ "source": "lims_test_keyring_store_test_fallback_set_then_overwrite",
+ "target": "lims_test_keyring_store_swap_keyring"
},
{
- "relation": "contains",
+ "relation": "calls",
+ "context": "call",
"confidence": "EXTRACTED",
"source_file": "tests/unit/lims/test_keyring_store.py",
- "source_location": "L99",
+ "source_location": "L240",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_lims_test_keyring_store_py",
- "target": "lims_test_keyring_store_test_is_keyring_available_false_on_broken_backend"
+ "source": "lims_test_keyring_store_test_keyring_set_failure_falls_back",
+ "target": "lims_test_keyring_store_swap_keyring"
},
{
- "relation": "contains",
+ "relation": "calls",
+ "context": "call",
"confidence": "EXTRACTED",
"source_file": "tests/unit/lims/test_keyring_store.py",
- "source_location": "L105",
+ "source_location": "L264",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_lims_test_keyring_store_py",
- "target": "lims_test_keyring_store_test_fallback_round_trip"
+ "source": "lims_test_keyring_store_test_is_keyring_available_false_on_unexpected_exception",
+ "target": "lims_test_keyring_store_swap_keyring"
},
{
- "relation": "contains",
+ "relation": "calls",
+ "context": "call",
"confidence": "EXTRACTED",
"source_file": "tests/unit/lims/test_keyring_store.py",
- "source_location": "L122",
+ "source_location": "L273",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_lims_test_keyring_store_py",
- "target": "lims_test_keyring_store_test_fallback_delete"
+ "source": "lims_test_keyring_store_test_fallback_get_when_no_secrets_file",
+ "target": "lims_test_keyring_store_swap_keyring"
},
{
- "relation": "contains",
+ "relation": "calls",
+ "context": "call",
"confidence": "EXTRACTED",
"source_file": "tests/unit/lims/test_keyring_store.py",
- "source_location": "L138",
+ "source_location": "L283",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_lims_test_keyring_store_py",
- "target": "lims_test_keyring_store_test_fallback_wrong_passphrase_raises"
+ "source": "lims_test_keyring_store_test_fallback_delete_when_no_file",
+ "target": "lims_test_keyring_store_swap_keyring"
},
{
- "relation": "contains",
+ "relation": "calls",
+ "context": "call",
"confidence": "EXTRACTED",
"source_file": "tests/unit/lims/test_keyring_store.py",
- "source_location": "L155",
+ "source_location": "L294",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_lims_test_keyring_store_py",
- "target": "lims_test_keyring_store_test_fallback_no_passphrase_raises"
+ "source": "lims_test_keyring_store_test_fallback_delete_when_username_absent",
+ "target": "lims_test_keyring_store_swap_keyring"
},
{
- "relation": "contains",
+ "relation": "calls",
+ "context": "call",
"confidence": "EXTRACTED",
"source_file": "tests/unit/lims/test_keyring_store.py",
- "source_location": "L162",
+ "source_location": "L315",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_lims_test_keyring_store_py",
- "target": "lims_test_keyring_store_test_fallback_empty_passphrase_raises"
+ "source": "lims_test_keyring_store_test_load_fallback_unreadable_path_raises",
+ "target": "lims_test_keyring_store_swap_keyring"
},
{
- "relation": "contains",
+ "relation": "calls",
+ "context": "call",
"confidence": "EXTRACTED",
"source_file": "tests/unit/lims/test_keyring_store.py",
- "source_location": "L169",
+ "source_location": "L351",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_lims_test_keyring_store_py",
- "target": "lims_test_keyring_store_test_fallback_file_format_integrity"
+ "source": "lims_test_keyring_store_test_fallback_plaintext_must_be_object",
+ "target": "lims_test_keyring_store_swap_keyring"
},
{
- "relation": "contains",
+ "relation": "calls",
+ "context": "call",
"confidence": "EXTRACTED",
"source_file": "tests/unit/lims/test_keyring_store.py",
- "source_location": "L185",
+ "source_location": "L364",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_lims_test_keyring_store_py",
- "target": "lims_test_keyring_store_test_fallback_corrupt_file_raises"
+ "source": "lims_test_keyring_store_test_envelope_must_be_object",
+ "target": "lims_test_keyring_store_swap_keyring"
},
{
- "relation": "contains",
+ "relation": "calls",
+ "context": "call",
"confidence": "EXTRACTED",
"source_file": "tests/unit/lims/test_keyring_store.py",
- "source_location": "L198",
+ "source_location": "L378",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_lims_test_keyring_store_py",
- "target": "lims_test_keyring_store_test_fallback_unsupported_version_raises"
+ "source": "lims_test_keyring_store_test_get_consults_fallback_when_keyring_missing",
+ "target": "lims_test_keyring_store_swap_keyring"
},
{
- "relation": "contains",
- "confidence": "EXTRACTED",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
"source_file": "tests/unit/lims/test_keyring_store.py",
- "source_location": "L212",
+ "source_location": "L72",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "tests_unit_lims_test_keyring_store_py",
- "target": "lims_test_keyring_store_test_fallback_missing_fields_raises"
+ "source": "lims_test_keyring_store_test_set_get_delete_via_os_keyring",
+ "target": "lims_keyring_store_keyringstore"
},
{
- "relation": "contains",
- "confidence": "EXTRACTED",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
"source_file": "tests/unit/lims/test_keyring_store.py",
- "source_location": "L224",
+ "source_location": "L81",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "tests_unit_lims_test_keyring_store_py",
- "target": "lims_test_keyring_store_test_fallback_set_then_overwrite"
+ "source": "lims_test_keyring_store_test_get_returns_none_for_missing",
+ "target": "lims_keyring_store_keyringstore"
},
{
- "relation": "contains",
- "confidence": "EXTRACTED",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
"source_file": "tests/unit/lims/test_keyring_store.py",
- "source_location": "L236",
+ "source_location": "L87",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "tests_unit_lims_test_keyring_store_py",
- "target": "lims_test_keyring_store_test_keyring_set_failure_falls_back"
+ "source": "lims_test_keyring_store_test_delete_missing_is_silent",
+ "target": "lims_keyring_store_keyringstore"
},
{
- "relation": "contains",
- "confidence": "EXTRACTED",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
"source_file": "tests/unit/lims/test_keyring_store.py",
- "source_location": "L249",
+ "source_location": "L95",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "tests_unit_lims_test_keyring_store_py",
- "target": "lims_test_keyring_store_test_is_keyring_available_false_on_unexpected_exception"
+ "source": "lims_test_keyring_store_test_is_keyring_available_true",
+ "target": "lims_keyring_store_keyringstore"
},
{
- "relation": "contains",
- "confidence": "EXTRACTED",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
"source_file": "tests/unit/lims/test_keyring_store.py",
- "source_location": "L269",
+ "source_location": "L101",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "tests_unit_lims_test_keyring_store_py",
- "target": "lims_test_keyring_store_test_fallback_get_when_no_secrets_file"
+ "source": "lims_test_keyring_store_test_is_keyring_available_false_on_broken_backend",
+ "target": "lims_keyring_store_keyringstore"
},
{
- "relation": "contains",
+ "relation": "rationale_for",
"confidence": "EXTRACTED",
"source_file": "tests/unit/lims/test_keyring_store.py",
- "source_location": "L281",
+ "source_location": "L106",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_lims_test_keyring_store_py",
- "target": "lims_test_keyring_store_test_fallback_delete_when_no_file"
+ "source": "lims_test_keyring_store_rationale_106",
+ "target": "lims_test_keyring_store_test_fallback_round_trip"
},
{
- "relation": "contains",
- "confidence": "EXTRACTED",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
"source_file": "tests/unit/lims/test_keyring_store.py",
- "source_location": "L292",
+ "source_location": "L108",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "tests_unit_lims_test_keyring_store_py",
- "target": "lims_test_keyring_store_test_fallback_delete_when_username_absent"
+ "source": "lims_test_keyring_store_test_fallback_round_trip",
+ "target": "lims_keyring_store_keyringstore"
},
{
- "relation": "contains",
- "confidence": "EXTRACTED",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
"source_file": "tests/unit/lims/test_keyring_store.py",
- "source_location": "L306",
+ "source_location": "L124",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "tests_unit_lims_test_keyring_store_py",
- "target": "lims_test_keyring_store_test_load_fallback_unreadable_path_raises"
+ "source": "lims_test_keyring_store_test_fallback_delete",
+ "target": "lims_keyring_store_keyringstore"
},
{
- "relation": "contains",
- "confidence": "EXTRACTED",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
"source_file": "tests/unit/lims/test_keyring_store.py",
- "source_location": "L324",
+ "source_location": "L140",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "tests_unit_lims_test_keyring_store_py",
- "target": "lims_test_keyring_store_test_fallback_plaintext_must_be_object"
+ "source": "lims_test_keyring_store_test_fallback_wrong_passphrase_raises",
+ "target": "lims_keyring_store_keyringstore"
},
{
- "relation": "contains",
- "confidence": "EXTRACTED",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
"source_file": "tests/unit/lims/test_keyring_store.py",
- "source_location": "L360",
+ "source_location": "L157",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "tests_unit_lims_test_keyring_store_py",
- "target": "lims_test_keyring_store_test_envelope_must_be_object"
+ "source": "lims_test_keyring_store_test_fallback_no_passphrase_raises",
+ "target": "lims_keyring_store_keyringstore"
},
{
- "relation": "contains",
- "confidence": "EXTRACTED",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
"source_file": "tests/unit/lims/test_keyring_store.py",
- "source_location": "L373",
+ "source_location": "L164",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "tests_unit_lims_test_keyring_store_py",
- "target": "lims_test_keyring_store_test_get_consults_fallback_when_keyring_missing"
+ "source": "lims_test_keyring_store_test_fallback_empty_passphrase_raises",
+ "target": "lims_keyring_store_keyringstore"
},
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
"source_file": "tests/unit/lims/test_keyring_store.py",
- "source_location": "L1",
+ "source_location": "L170",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "lims_test_keyring_store_rationale_1",
- "target": "tests_unit_lims_test_keyring_store_py"
+ "source": "lims_test_keyring_store_rationale_170",
+ "target": "lims_test_keyring_store_test_fallback_file_format_integrity"
},
{
- "relation": "method",
- "confidence": "EXTRACTED",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
"source_file": "tests/unit/lims/test_keyring_store.py",
- "source_location": "L30",
+ "source_location": "L172",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "lims_test_keyring_store_inmemorykeyring",
- "target": "lims_test_keyring_store_inmemorykeyring_init"
+ "source": "lims_test_keyring_store_test_fallback_file_format_integrity",
+ "target": "lims_keyring_store_keyringstore"
},
{
- "relation": "method",
- "confidence": "EXTRACTED",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
"source_file": "tests/unit/lims/test_keyring_store.py",
- "source_location": "L33",
+ "source_location": "L190",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "lims_test_keyring_store_inmemorykeyring",
- "target": "lims_test_keyring_store_inmemorykeyring_get_password"
+ "source": "lims_test_keyring_store_test_fallback_corrupt_file_raises",
+ "target": "lims_keyring_store_keyringstore"
},
{
- "relation": "method",
- "confidence": "EXTRACTED",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
"source_file": "tests/unit/lims/test_keyring_store.py",
- "source_location": "L36",
+ "source_location": "L204",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "lims_test_keyring_store_inmemorykeyring",
- "target": "lims_test_keyring_store_inmemorykeyring_set_password"
+ "source": "lims_test_keyring_store_test_fallback_unsupported_version_raises",
+ "target": "lims_keyring_store_keyringstore"
},
{
- "relation": "method",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/lims/test_keyring_store.py",
+ "source_location": "L216",
+ "weight": 1.0,
+ "source": "lims_test_keyring_store_test_fallback_missing_fields_raises",
+ "target": "lims_keyring_store_keyringstore"
+ },
+ {
+ "relation": "rationale_for",
"confidence": "EXTRACTED",
"source_file": "tests/unit/lims/test_keyring_store.py",
- "source_location": "L39",
+ "source_location": "L225",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "lims_test_keyring_store_inmemorykeyring",
- "target": "lims_test_keyring_store_inmemorykeyring_delete_password"
+ "source": "lims_test_keyring_store_rationale_225",
+ "target": "lims_test_keyring_store_test_fallback_set_then_overwrite"
},
{
"relation": "calls",
"context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/lims/test_keyring_store.py",
+ "source_location": "L227",
+ "weight": 1.0,
+ "source": "lims_test_keyring_store_test_fallback_set_then_overwrite",
+ "target": "lims_keyring_store_keyringstore"
+ },
+ {
+ "relation": "rationale_for",
"confidence": "EXTRACTED",
"source_file": "tests/unit/lims/test_keyring_store.py",
- "source_location": "L71",
+ "source_location": "L237",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "lims_test_keyring_store_test_set_get_delete_via_os_keyring",
- "target": "lims_test_keyring_store_inmemorykeyring"
+ "source": "lims_test_keyring_store_rationale_237",
+ "target": "lims_test_keyring_store_test_keyring_set_failure_falls_back"
},
{
"relation": "calls",
"context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/lims/test_keyring_store.py",
+ "source_location": "L241",
+ "weight": 1.0,
+ "source": "lims_test_keyring_store_test_keyring_set_failure_falls_back",
+ "target": "lims_keyring_store_keyringstore"
+ },
+ {
+ "relation": "rationale_for",
"confidence": "EXTRACTED",
"source_file": "tests/unit/lims/test_keyring_store.py",
- "source_location": "L80",
+ "source_location": "L250",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "lims_test_keyring_store_test_get_returns_none_for_missing",
- "target": "lims_test_keyring_store_inmemorykeyring"
+ "source": "lims_test_keyring_store_rationale_250",
+ "target": "lims_test_keyring_store_test_is_keyring_available_false_on_unexpected_exception"
},
{
"relation": "calls",
"context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/lims/test_keyring_store.py",
+ "source_location": "L265",
+ "weight": 1.0,
+ "source": "lims_test_keyring_store_test_is_keyring_available_false_on_unexpected_exception",
+ "target": "lims_keyring_store_keyringstore"
+ },
+ {
+ "relation": "rationale_for",
"confidence": "EXTRACTED",
"source_file": "tests/unit/lims/test_keyring_store.py",
- "source_location": "L86",
+ "source_location": "L270",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "lims_test_keyring_store_test_delete_missing_is_silent",
- "target": "lims_test_keyring_store_inmemorykeyring"
+ "source": "lims_test_keyring_store_rationale_270",
+ "target": "lims_test_keyring_store_test_fallback_get_when_no_secrets_file"
},
{
"relation": "calls",
"context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/lims/test_keyring_store.py",
+ "source_location": "L274",
+ "weight": 1.0,
+ "source": "lims_test_keyring_store_test_fallback_get_when_no_secrets_file",
+ "target": "lims_keyring_store_keyringstore"
+ },
+ {
+ "relation": "rationale_for",
"confidence": "EXTRACTED",
"source_file": "tests/unit/lims/test_keyring_store.py",
- "source_location": "L94",
+ "source_location": "L282",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "lims_test_keyring_store_test_is_keyring_available_true",
- "target": "lims_test_keyring_store_inmemorykeyring"
+ "source": "lims_test_keyring_store_rationale_282",
+ "target": "lims_test_keyring_store_test_fallback_delete_when_no_file"
},
{
"relation": "calls",
"context": "call",
- "confidence": "EXTRACTED",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
"source_file": "tests/unit/lims/test_keyring_store.py",
- "source_location": "L386",
+ "source_location": "L284",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "lims_test_keyring_store_test_get_consults_fallback_when_keyring_missing",
- "target": "lims_test_keyring_store_inmemorykeyring"
+ "source": "lims_test_keyring_store_test_fallback_delete_when_no_file",
+ "target": "lims_keyring_store_keyringstore"
},
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
"source_file": "tests/unit/lims/test_keyring_store.py",
- "source_location": "L26",
+ "source_location": "L293",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "lims_test_keyring_store_rationale_26",
- "target": "lims_test_keyring_store_inmemorykeyring"
+ "source": "lims_test_keyring_store_rationale_293",
+ "target": "lims_test_keyring_store_test_fallback_delete_when_username_absent"
},
{
- "relation": "uses",
+ "relation": "calls",
+ "context": "call",
"confidence": "INFERRED",
+ "confidence_score": 0.8,
"source_file": "tests/unit/lims/test_keyring_store.py",
- "source_location": "L21",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "lims_test_keyring_store_inmemorykeyring",
- "target": "exlab_wizard_errors_keyringunavailableerror"
+ "source_location": "L295",
+ "weight": 1.0,
+ "source": "lims_test_keyring_store_test_fallback_delete_when_username_absent",
+ "target": "lims_keyring_store_keyringstore"
},
{
- "relation": "uses",
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/lims/test_keyring_store.py",
+ "source_location": "L307",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "lims_test_keyring_store_rationale_307",
+ "target": "lims_test_keyring_store_test_load_fallback_unreadable_path_raises"
+ },
+ {
+ "relation": "calls",
+ "context": "call",
"confidence": "INFERRED",
+ "confidence_score": 0.8,
"source_file": "tests/unit/lims/test_keyring_store.py",
- "source_location": "L22",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "lims_test_keyring_store_inmemorykeyring",
+ "source_location": "L316",
+ "weight": 1.0,
+ "source": "lims_test_keyring_store_test_load_fallback_unreadable_path_raises",
"target": "lims_keyring_store_keyringstore"
},
{
- "relation": "method",
+ "relation": "rationale_for",
"confidence": "EXTRACTED",
"source_file": "tests/unit/lims/test_keyring_store.py",
- "source_location": "L50",
+ "source_location": "L325",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "lims_test_keyring_store_brokenkeyring",
- "target": "lims_test_keyring_store_brokenkeyring_get_password"
+ "source": "lims_test_keyring_store_rationale_325",
+ "target": "lims_test_keyring_store_test_fallback_plaintext_must_be_object"
},
{
- "relation": "method",
- "confidence": "EXTRACTED",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
"source_file": "tests/unit/lims/test_keyring_store.py",
- "source_location": "L53",
+ "source_location": "L352",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "lims_test_keyring_store_brokenkeyring",
- "target": "lims_test_keyring_store_brokenkeyring_set_password"
+ "source": "lims_test_keyring_store_test_fallback_plaintext_must_be_object",
+ "target": "lims_keyring_store_keyringstore"
},
{
- "relation": "method",
+ "relation": "rationale_for",
"confidence": "EXTRACTED",
"source_file": "tests/unit/lims/test_keyring_store.py",
- "source_location": "L56",
+ "source_location": "L361",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "lims_test_keyring_store_brokenkeyring",
- "target": "lims_test_keyring_store_brokenkeyring_delete_password"
+ "source": "lims_test_keyring_store_rationale_361",
+ "target": "lims_test_keyring_store_test_envelope_must_be_object"
},
{
"relation": "calls",
"context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/lims/test_keyring_store.py",
+ "source_location": "L365",
+ "weight": 1.0,
+ "source": "lims_test_keyring_store_test_envelope_must_be_object",
+ "target": "lims_keyring_store_keyringstore"
+ },
+ {
+ "relation": "rationale_for",
"confidence": "EXTRACTED",
"source_file": "tests/unit/lims/test_keyring_store.py",
- "source_location": "L100",
+ "source_location": "L374",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "lims_test_keyring_store_test_is_keyring_available_false_on_broken_backend",
- "target": "lims_test_keyring_store_brokenkeyring"
+ "source": "lims_test_keyring_store_rationale_374",
+ "target": "lims_test_keyring_store_test_get_consults_fallback_when_keyring_missing"
},
{
"relation": "calls",
"context": "call",
- "confidence": "EXTRACTED",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
"source_file": "tests/unit/lims/test_keyring_store.py",
- "source_location": "L107",
+ "source_location": "L379",
+ "weight": 1.0,
+ "source": "lims_test_keyring_store_test_get_consults_fallback_when_keyring_missing",
+ "target": "lims_keyring_store_keyringstore"
+ },
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/lims/__init__.py",
+ "source_location": "L1",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "lims_test_keyring_store_test_fallback_round_trip",
- "target": "lims_test_keyring_store_brokenkeyring"
+ "source": "lims_init_rationale_1",
+ "target": "tests_unit_lims_init_py"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "rationale_for",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/lims/test_keyring_store.py",
- "source_location": "L123",
+ "source_file": "src/exlab_wizard/lims/__init__.py",
+ "source_location": "L1",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "lims_test_keyring_store_test_fallback_delete",
- "target": "lims_test_keyring_store_brokenkeyring"
+ "source": "lims_init_rationale_1",
+ "target": "src_exlab_wizard_lims_init_py"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/lims/test_keyring_store.py",
- "source_location": "L139",
+ "source_file": "tests/unit/lims/test_client.py",
+ "source_location": "L22",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "lims_test_keyring_store_test_fallback_wrong_passphrase_raises",
- "target": "lims_test_keyring_store_brokenkeyring"
+ "source": "tests_unit_lims_test_client_py",
+ "target": "lims_test_client_make_client"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/lims/test_keyring_store.py",
- "source_location": "L156",
+ "source_file": "tests/unit/lims/test_client.py",
+ "source_location": "L35",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "lims_test_keyring_store_test_fallback_no_passphrase_raises",
- "target": "lims_test_keyring_store_brokenkeyring"
+ "source": "tests_unit_lims_test_client_py",
+ "target": "lims_test_client_test_login_happy_path"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/lims/test_keyring_store.py",
- "source_location": "L163",
+ "source_file": "tests/unit/lims/test_client.py",
+ "source_location": "L48",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "lims_test_keyring_store_test_fallback_empty_passphrase_raises",
- "target": "lims_test_keyring_store_brokenkeyring"
+ "source": "tests_unit_lims_test_client_py",
+ "target": "lims_test_client_test_login_uses_explicit_password_over_provider"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/lims/test_keyring_store.py",
- "source_location": "L171",
+ "source_file": "tests/unit/lims/test_client.py",
+ "source_location": "L59",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "lims_test_keyring_store_test_fallback_file_format_integrity",
- "target": "lims_test_keyring_store_brokenkeyring"
+ "source": "tests_unit_lims_test_client_py",
+ "target": "lims_test_client_test_login_wrong_password_raises"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/lims/test_keyring_store.py",
- "source_location": "L189",
+ "source_file": "tests/unit/lims/test_client.py",
+ "source_location": "L69",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "lims_test_keyring_store_test_fallback_corrupt_file_raises",
- "target": "lims_test_keyring_store_brokenkeyring"
+ "source": "tests_unit_lims_test_client_py",
+ "target": "lims_test_client_test_login_with_no_password_raises_config_error"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/lims/test_keyring_store.py",
- "source_location": "L203",
+ "source_file": "tests/unit/lims/test_client.py",
+ "source_location": "L79",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "lims_test_keyring_store_test_fallback_unsupported_version_raises",
- "target": "lims_test_keyring_store_brokenkeyring"
+ "source": "tests_unit_lims_test_client_py",
+ "target": "lims_test_client_test_list_projects_returns_typed_rows"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/lims/test_keyring_store.py",
- "source_location": "L215",
+ "source_file": "tests/unit/lims/test_client.py",
+ "source_location": "L93",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "lims_test_keyring_store_test_fallback_missing_fields_raises",
- "target": "lims_test_keyring_store_brokenkeyring"
+ "source": "tests_unit_lims_test_client_py",
+ "target": "lims_test_client_test_list_projects_status_filter"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/lims/test_keyring_store.py",
- "source_location": "L226",
+ "source_file": "tests/unit/lims/test_client.py",
+ "source_location": "L122",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "lims_test_keyring_store_test_fallback_set_then_overwrite",
- "target": "lims_test_keyring_store_brokenkeyring"
+ "source": "tests_unit_lims_test_client_py",
+ "target": "lims_test_client_test_get_project_by_uid"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/lims/test_keyring_store.py",
- "source_location": "L240",
+ "source_file": "tests/unit/lims/test_client.py",
+ "source_location": "L134",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "lims_test_keyring_store_test_keyring_set_failure_falls_back",
- "target": "lims_test_keyring_store_brokenkeyring"
+ "source": "tests_unit_lims_test_client_py",
+ "target": "lims_test_client_test_get_project_by_short_id"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/lims/test_keyring_store.py",
- "source_location": "L273",
+ "source_file": "tests/unit/lims/test_client.py",
+ "source_location": "L146",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "lims_test_keyring_store_test_fallback_get_when_no_secrets_file",
- "target": "lims_test_keyring_store_brokenkeyring"
+ "source": "tests_unit_lims_test_client_py",
+ "target": "lims_test_client_test_get_project_404_returns_none"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/lims/test_keyring_store.py",
- "source_location": "L283",
+ "source_file": "tests/unit/lims/test_client.py",
+ "source_location": "L157",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "lims_test_keyring_store_test_fallback_delete_when_no_file",
- "target": "lims_test_keyring_store_brokenkeyring"
+ "source": "tests_unit_lims_test_client_py",
+ "target": "lims_test_client_test_get_me"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/lims/test_keyring_store.py",
- "source_location": "L294",
+ "source_file": "tests/unit/lims/test_client.py",
+ "source_location": "L169",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "lims_test_keyring_store_test_fallback_delete_when_username_absent",
- "target": "lims_test_keyring_store_brokenkeyring"
+ "source": "tests_unit_lims_test_client_py",
+ "target": "lims_test_client_test_health_check_ok"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/lims/test_keyring_store.py",
- "source_location": "L315",
+ "source_file": "tests/unit/lims/test_client.py",
+ "source_location": "L182",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "lims_test_keyring_store_test_load_fallback_unreadable_path_raises",
- "target": "lims_test_keyring_store_brokenkeyring"
+ "source": "tests_unit_lims_test_client_py",
+ "target": "lims_test_client_test_health_check_failure_returns_status"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/lims/test_keyring_store.py",
- "source_location": "L351",
+ "source_file": "tests/unit/lims/test_client.py",
+ "source_location": "L197",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "lims_test_keyring_store_test_fallback_plaintext_must_be_object",
- "target": "lims_test_keyring_store_brokenkeyring"
+ "source": "tests_unit_lims_test_client_py",
+ "target": "lims_test_client_test_relogin_after_401"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/lims/test_keyring_store.py",
- "source_location": "L364",
+ "source_file": "tests/unit/lims/test_client.py",
+ "source_location": "L213",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "lims_test_keyring_store_test_envelope_must_be_object",
- "target": "lims_test_keyring_store_brokenkeyring"
+ "source": "tests_unit_lims_test_client_py",
+ "target": "lims_test_client_test_health_check_returns_non200_status"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/lims/test_keyring_store.py",
- "source_location": "L378",
+ "source_file": "tests/unit/lims/test_client.py",
+ "source_location": "L243",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "lims_test_keyring_store_test_get_consults_fallback_when_keyring_missing",
- "target": "lims_test_keyring_store_brokenkeyring"
+ "source": "tests_unit_lims_test_client_py",
+ "target": "lims_test_client_test_endpoint_strips_trailing_slash"
},
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/lims/test_keyring_store.py",
- "source_location": "L46",
+ "source_file": "tests/unit/lims/test_client.py",
+ "source_location": "L1",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "lims_test_keyring_store_rationale_46",
- "target": "lims_test_keyring_store_brokenkeyring"
- },
- {
- "relation": "uses",
- "confidence": "INFERRED",
- "source_file": "tests/unit/lims/test_keyring_store.py",
- "source_location": "L21",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "lims_test_keyring_store_brokenkeyring",
- "target": "exlab_wizard_errors_keyringunavailableerror"
- },
- {
- "relation": "uses",
- "confidence": "INFERRED",
- "source_file": "tests/unit/lims/test_keyring_store.py",
- "source_location": "L22",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "lims_test_keyring_store_brokenkeyring",
- "target": "lims_keyring_store_keyringstore"
+ "source": "lims_test_client_rationale_1",
+ "target": "tests_unit_lims_test_client_py"
},
{
"relation": "calls",
"context": "call",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/lims/test_keyring_store.py",
- "source_location": "L74",
+ "source_file": "tests/unit/lims/test_client.py",
+ "source_location": "L37",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "lims_test_keyring_store_test_set_get_delete_via_os_keyring",
- "target": "lims_test_keyring_store_brokenkeyring_get_password"
+ "source": "lims_test_client_test_login_happy_path",
+ "target": "lims_test_client_make_client"
},
{
"relation": "calls",
"context": "call",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/lims/test_keyring_store.py",
- "source_location": "L82",
+ "source_file": "tests/unit/lims/test_client.py",
+ "source_location": "L50",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "lims_test_keyring_store_test_get_returns_none_for_missing",
- "target": "lims_test_keyring_store_brokenkeyring_get_password"
+ "source": "lims_test_client_test_login_uses_explicit_password_over_provider",
+ "target": "lims_test_client_make_client"
},
{
"relation": "calls",
"context": "call",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/lims/test_keyring_store.py",
- "source_location": "L119",
+ "source_file": "tests/unit/lims/test_client.py",
+ "source_location": "L61",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "lims_test_keyring_store_test_fallback_round_trip",
- "target": "lims_test_keyring_store_brokenkeyring_get_password"
+ "source": "lims_test_client_test_login_wrong_password_raises",
+ "target": "lims_test_client_make_client"
},
{
"relation": "calls",
"context": "call",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/lims/test_keyring_store.py",
- "source_location": "L135",
+ "source_file": "tests/unit/lims/test_client.py",
+ "source_location": "L71",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "lims_test_keyring_store_test_fallback_delete",
- "target": "lims_test_keyring_store_brokenkeyring_get_password"
+ "source": "lims_test_client_test_login_with_no_password_raises_config_error",
+ "target": "lims_test_client_make_client"
},
{
"relation": "calls",
"context": "call",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/lims/test_keyring_store.py",
- "source_location": "L152",
+ "source_file": "tests/unit/lims/test_client.py",
+ "source_location": "L81",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "lims_test_keyring_store_test_fallback_wrong_passphrase_raises",
- "target": "lims_test_keyring_store_brokenkeyring_get_password"
+ "source": "lims_test_client_test_list_projects_returns_typed_rows",
+ "target": "lims_test_client_make_client"
},
{
"relation": "calls",
"context": "call",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/lims/test_keyring_store.py",
- "source_location": "L195",
+ "source_file": "tests/unit/lims/test_client.py",
+ "source_location": "L113",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "lims_test_keyring_store_test_fallback_corrupt_file_raises",
- "target": "lims_test_keyring_store_brokenkeyring_get_password"
+ "source": "lims_test_client_test_list_projects_status_filter",
+ "target": "lims_test_client_make_client"
},
{
"relation": "calls",
"context": "call",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/lims/test_keyring_store.py",
- "source_location": "L209",
+ "source_file": "tests/unit/lims/test_client.py",
+ "source_location": "L124",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "lims_test_keyring_store_test_fallback_unsupported_version_raises",
- "target": "lims_test_keyring_store_brokenkeyring_get_password"
+ "source": "lims_test_client_test_get_project_by_uid",
+ "target": "lims_test_client_make_client"
},
{
"relation": "calls",
"context": "call",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/lims/test_keyring_store.py",
- "source_location": "L221",
+ "source_file": "tests/unit/lims/test_client.py",
+ "source_location": "L136",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "lims_test_keyring_store_test_fallback_missing_fields_raises",
- "target": "lims_test_keyring_store_brokenkeyring_get_password"
+ "source": "lims_test_client_test_get_project_by_short_id",
+ "target": "lims_test_client_make_client"
},
{
"relation": "calls",
"context": "call",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/lims/test_keyring_store.py",
- "source_location": "L233",
+ "source_file": "tests/unit/lims/test_client.py",
+ "source_location": "L148",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "lims_test_keyring_store_test_fallback_set_then_overwrite",
- "target": "lims_test_keyring_store_brokenkeyring_get_password"
+ "source": "lims_test_client_test_get_project_404_returns_none",
+ "target": "lims_test_client_make_client"
},
{
"relation": "calls",
"context": "call",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/lims/test_keyring_store.py",
- "source_location": "L246",
+ "source_file": "tests/unit/lims/test_client.py",
+ "source_location": "L159",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "lims_test_keyring_store_test_keyring_set_failure_falls_back",
- "target": "lims_test_keyring_store_brokenkeyring_get_password"
+ "source": "lims_test_client_test_get_me",
+ "target": "lims_test_client_make_client"
},
{
"relation": "calls",
"context": "call",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/lims/test_keyring_store.py",
- "source_location": "L278",
+ "source_file": "tests/unit/lims/test_client.py",
+ "source_location": "L171",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "lims_test_keyring_store_test_fallback_get_when_no_secrets_file",
- "target": "lims_test_keyring_store_brokenkeyring_get_password"
+ "source": "lims_test_client_test_health_check_ok",
+ "target": "lims_test_client_make_client"
},
{
"relation": "calls",
"context": "call",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/lims/test_keyring_store.py",
- "source_location": "L303",
+ "source_file": "tests/unit/lims/test_client.py",
+ "source_location": "L185",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "lims_test_keyring_store_test_fallback_delete_when_username_absent",
- "target": "lims_test_keyring_store_brokenkeyring_get_password"
+ "source": "lims_test_client_test_health_check_failure_returns_status",
+ "target": "lims_test_client_make_client"
},
{
"relation": "calls",
"context": "call",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/lims/test_keyring_store.py",
- "source_location": "L321",
+ "source_file": "tests/unit/lims/test_client.py",
+ "source_location": "L202",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "lims_test_keyring_store_test_load_fallback_unreadable_path_raises",
- "target": "lims_test_keyring_store_brokenkeyring_get_password"
+ "source": "lims_test_client_test_relogin_after_401",
+ "target": "lims_test_client_make_client"
},
{
"relation": "calls",
"context": "call",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/lims/test_keyring_store.py",
- "source_location": "L357",
+ "source_file": "tests/unit/lims/test_client.py",
+ "source_location": "L233",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "lims_test_keyring_store_test_fallback_plaintext_must_be_object",
- "target": "lims_test_keyring_store_brokenkeyring_get_password"
+ "source": "lims_test_client_test_health_check_returns_non200_status",
+ "target": "lims_test_client_make_client"
},
{
"relation": "calls",
"context": "call",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/lims/test_keyring_store.py",
- "source_location": "L370",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/lims/test_client.py",
+ "source_location": "L23",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "lims_test_keyring_store_test_envelope_must_be_object",
- "target": "lims_test_keyring_store_brokenkeyring_get_password"
+ "source": "lims_test_client_make_client",
+ "target": "lims_client_limsclient"
},
{
"relation": "calls",
"context": "call",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/lims/test_keyring_store.py",
- "source_location": "L391",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/lims/test_client.py",
+ "source_location": "L36",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "lims_test_keyring_store_test_get_consults_fallback_when_keyring_missing",
- "target": "lims_test_keyring_store_brokenkeyring_get_password"
+ "source": "lims_test_client_test_login_happy_path",
+ "target": "fixtures_mock_lims_make_mock_lims_app"
},
{
"relation": "calls",
"context": "call",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/lims/test_keyring_store.py",
- "source_location": "L73",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/lims/test_client.py",
+ "source_location": "L49",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "lims_test_keyring_store_test_set_get_delete_via_os_keyring",
- "target": "lims_test_keyring_store_brokenkeyring_set_password"
+ "source": "lims_test_client_test_login_uses_explicit_password_over_provider",
+ "target": "fixtures_mock_lims_make_mock_lims_app"
},
{
"relation": "calls",
"context": "call",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/lims/test_keyring_store.py",
- "source_location": "L112",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/lims/test_client.py",
+ "source_location": "L60",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "lims_test_keyring_store_test_fallback_round_trip",
- "target": "lims_test_keyring_store_brokenkeyring_set_password"
+ "source": "lims_test_client_test_login_wrong_password_raises",
+ "target": "fixtures_mock_lims_make_mock_lims_app"
},
{
"relation": "calls",
"context": "call",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/lims/test_keyring_store.py",
- "source_location": "L128",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/lims/test_client.py",
+ "source_location": "L70",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "lims_test_keyring_store_test_fallback_delete",
- "target": "lims_test_keyring_store_brokenkeyring_set_password"
+ "source": "lims_test_client_test_login_with_no_password_raises_config_error",
+ "target": "fixtures_mock_lims_make_mock_lims_app"
},
{
"relation": "calls",
"context": "call",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/lims/test_keyring_store.py",
- "source_location": "L144",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/lims/test_client.py",
+ "source_location": "L80",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "lims_test_keyring_store_test_fallback_wrong_passphrase_raises",
- "target": "lims_test_keyring_store_brokenkeyring_set_password"
+ "source": "lims_test_client_test_list_projects_returns_typed_rows",
+ "target": "fixtures_mock_lims_make_mock_lims_app"
},
{
"relation": "calls",
"context": "call",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/lims/test_keyring_store.py",
- "source_location": "L159",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/lims/test_client.py",
+ "source_location": "L112",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "lims_test_keyring_store_test_fallback_no_passphrase_raises",
- "target": "lims_test_keyring_store_brokenkeyring_set_password"
+ "source": "lims_test_client_test_list_projects_status_filter",
+ "target": "fixtures_mock_lims_make_mock_lims_app"
},
{
"relation": "calls",
"context": "call",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/lims/test_keyring_store.py",
- "source_location": "L166",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/lims/test_client.py",
+ "source_location": "L123",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "lims_test_keyring_store_test_fallback_empty_passphrase_raises",
- "target": "lims_test_keyring_store_brokenkeyring_set_password"
+ "source": "lims_test_client_test_get_project_by_uid",
+ "target": "fixtures_mock_lims_make_mock_lims_app"
},
{
"relation": "calls",
"context": "call",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/lims/test_keyring_store.py",
- "source_location": "L176",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/lims/test_client.py",
+ "source_location": "L135",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "lims_test_keyring_store_test_fallback_file_format_integrity",
- "target": "lims_test_keyring_store_brokenkeyring_set_password"
+ "source": "lims_test_client_test_get_project_by_short_id",
+ "target": "fixtures_mock_lims_make_mock_lims_app"
},
{
"relation": "calls",
"context": "call",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/lims/test_keyring_store.py",
- "source_location": "L231",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/lims/test_client.py",
+ "source_location": "L147",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "lims_test_keyring_store_test_fallback_set_then_overwrite",
- "target": "lims_test_keyring_store_brokenkeyring_set_password"
+ "source": "lims_test_client_test_get_project_404_returns_none",
+ "target": "fixtures_mock_lims_make_mock_lims_app"
},
{
"relation": "calls",
"context": "call",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/lims/test_keyring_store.py",
- "source_location": "L245",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/lims/test_client.py",
+ "source_location": "L158",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "lims_test_keyring_store_test_keyring_set_failure_falls_back",
- "target": "lims_test_keyring_store_brokenkeyring_set_password"
+ "source": "lims_test_client_test_get_me",
+ "target": "fixtures_mock_lims_make_mock_lims_app"
},
{
"relation": "calls",
"context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/lims/test_client.py",
+ "source_location": "L170",
+ "weight": 1.0,
+ "source": "lims_test_client_test_health_check_ok",
+ "target": "fixtures_mock_lims_make_mock_lims_app"
+ },
+ {
+ "relation": "rationale_for",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/lims/test_keyring_store.py",
- "source_location": "L299",
+ "source_file": "tests/unit/lims/test_client.py",
+ "source_location": "L183",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "lims_test_keyring_store_test_fallback_delete_when_username_absent",
- "target": "lims_test_keyring_store_brokenkeyring_set_password"
+ "source": "lims_test_client_rationale_183",
+ "target": "lims_test_client_test_health_check_failure_returns_status"
},
{
"relation": "calls",
"context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/lims/test_client.py",
+ "source_location": "L184",
+ "weight": 1.0,
+ "source": "lims_test_client_test_health_check_failure_returns_status",
+ "target": "fixtures_mock_lims_make_mock_lims_app"
+ },
+ {
+ "relation": "rationale_for",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/lims/test_keyring_store.py",
- "source_location": "L383",
+ "source_file": "tests/unit/lims/test_client.py",
+ "source_location": "L198",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "lims_test_keyring_store_test_get_consults_fallback_when_keyring_missing",
- "target": "lims_test_keyring_store_brokenkeyring_set_password"
+ "source": "lims_test_client_rationale_198",
+ "target": "lims_test_client_test_relogin_after_401"
},
{
"relation": "calls",
"context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/lims/test_client.py",
+ "source_location": "L201",
+ "weight": 1.0,
+ "source": "lims_test_client_test_relogin_after_401",
+ "target": "fixtures_mock_lims_make_mock_lims_app"
+ },
+ {
+ "relation": "rationale_for",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/lims/test_keyring_store.py",
- "source_location": "L75",
+ "source_file": "tests/unit/lims/test_client.py",
+ "source_location": "L214",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "lims_test_keyring_store_test_set_get_delete_via_os_keyring",
- "target": "lims_test_keyring_store_brokenkeyring_delete_password"
+ "source": "lims_test_client_rationale_214",
+ "target": "lims_test_client_test_health_check_returns_non200_status"
},
{
"relation": "calls",
"context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/lims/test_client.py",
+ "source_location": "L244",
+ "weight": 1.0,
+ "source": "lims_test_client_test_endpoint_strips_trailing_slash",
+ "target": "lims_client_limsclient"
+ },
+ {
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/lims/test_keyring_store.py",
- "source_location": "L90",
+ "source_file": "tests/unit/lims/test_cache.py",
+ "source_location": "L19",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "lims_test_keyring_store_test_delete_missing_is_silent",
- "target": "lims_test_keyring_store_brokenkeyring_delete_password"
+ "source": "tests_unit_lims_test_cache_py",
+ "target": "lims_test_cache_project"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/lims/test_keyring_store.py",
- "source_location": "L129",
+ "source_file": "tests/unit/lims/test_cache.py",
+ "source_location": "L39",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "lims_test_keyring_store_test_fallback_delete",
- "target": "lims_test_keyring_store_brokenkeyring_delete_password"
+ "source": "tests_unit_lims_test_cache_py",
+ "target": "lims_test_cache_test_init_creates_table_idempotent"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/lims/test_keyring_store.py",
- "source_location": "L289",
+ "source_file": "tests/unit/lims/test_cache.py",
+ "source_location": "L47",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "lims_test_keyring_store_test_fallback_delete_when_no_file",
- "target": "lims_test_keyring_store_brokenkeyring_delete_password"
+ "source": "tests_unit_lims_test_cache_py",
+ "target": "lims_test_cache_test_upsert_many_then_list"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/lims/test_keyring_store.py",
- "source_location": "L302",
+ "source_file": "tests/unit/lims/test_cache.py",
+ "source_location": "L59",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "lims_test_keyring_store_test_fallback_delete_when_username_absent",
- "target": "lims_test_keyring_store_brokenkeyring_delete_password"
+ "source": "tests_unit_lims_test_cache_py",
+ "target": "lims_test_cache_test_upsert_many_empty_is_noop"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/lims/test_keyring_store.py",
- "source_location": "L71",
+ "source_file": "tests/unit/lims/test_cache.py",
+ "source_location": "L70",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "lims_test_keyring_store_test_set_get_delete_via_os_keyring",
- "target": "lims_test_keyring_store_swap_keyring"
+ "source": "tests_unit_lims_test_cache_py",
+ "target": "lims_test_cache_test_upsert_updates_existing_row"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/lims/test_keyring_store.py",
- "source_location": "L80",
+ "source_file": "tests/unit/lims/test_cache.py",
+ "source_location": "L95",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "lims_test_keyring_store_test_get_returns_none_for_missing",
- "target": "lims_test_keyring_store_swap_keyring"
+ "source": "tests_unit_lims_test_cache_py",
+ "target": "lims_test_cache_test_get_project_by_uid_or_short_id"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/lims/test_keyring_store.py",
- "source_location": "L86",
+ "source_file": "tests/unit/lims/test_cache.py",
+ "source_location": "L108",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "lims_test_keyring_store_test_delete_missing_is_silent",
- "target": "lims_test_keyring_store_swap_keyring"
+ "source": "tests_unit_lims_test_cache_py",
+ "target": "lims_test_cache_test_get_project_missing_returns_none"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/lims/test_keyring_store.py",
- "source_location": "L94",
+ "source_file": "tests/unit/lims/test_cache.py",
+ "source_location": "L118",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "lims_test_keyring_store_test_is_keyring_available_true",
- "target": "lims_test_keyring_store_swap_keyring"
+ "source": "tests_unit_lims_test_cache_py",
+ "target": "lims_test_cache_test_list_projects_status_filter"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/lims/test_keyring_store.py",
- "source_location": "L100",
+ "source_file": "tests/unit/lims/test_cache.py",
+ "source_location": "L135",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "lims_test_keyring_store_test_is_keyring_available_false_on_broken_backend",
- "target": "lims_test_keyring_store_swap_keyring"
+ "source": "tests_unit_lims_test_cache_py",
+ "target": "lims_test_cache_test_is_fresh_true_when_within_ttl"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/lims/test_keyring_store.py",
- "source_location": "L107",
+ "source_file": "tests/unit/lims/test_cache.py",
+ "source_location": "L145",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "lims_test_keyring_store_test_fallback_round_trip",
- "target": "lims_test_keyring_store_swap_keyring"
+ "source": "tests_unit_lims_test_cache_py",
+ "target": "lims_test_cache_test_is_fresh_false_when_stale"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/lims/test_keyring_store.py",
- "source_location": "L123",
+ "source_file": "tests/unit/lims/test_cache.py",
+ "source_location": "L156",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "lims_test_keyring_store_test_fallback_delete",
- "target": "lims_test_keyring_store_swap_keyring"
+ "source": "tests_unit_lims_test_cache_py",
+ "target": "lims_test_cache_test_is_fresh_false_when_empty"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/lims/test_keyring_store.py",
- "source_location": "L139",
+ "source_file": "tests/unit/lims/test_cache.py",
+ "source_location": "L165",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "lims_test_keyring_store_test_fallback_wrong_passphrase_raises",
- "target": "lims_test_keyring_store_swap_keyring"
+ "source": "tests_unit_lims_test_cache_py",
+ "target": "lims_test_cache_test_is_fresh_handles_zulu_suffix"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/lims/test_keyring_store.py",
- "source_location": "L156",
+ "source_file": "tests/unit/lims/test_cache.py",
+ "source_location": "L179",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "lims_test_keyring_store_test_fallback_no_passphrase_raises",
- "target": "lims_test_keyring_store_swap_keyring"
+ "source": "tests_unit_lims_test_cache_py",
+ "target": "lims_test_cache_test_is_fresh_ignores_invalid_timestamp"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/lims/test_keyring_store.py",
- "source_location": "L163",
+ "source_file": "tests/unit/lims/test_cache.py",
+ "source_location": "L192",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "lims_test_keyring_store_test_fallback_empty_passphrase_raises",
- "target": "lims_test_keyring_store_swap_keyring"
+ "source": "tests_unit_lims_test_cache_py",
+ "target": "lims_test_cache_test_endpoint_isolates_rows"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/lims/test_keyring_store.py",
- "source_location": "L171",
+ "source_file": "tests/unit/lims/test_cache.py",
+ "source_location": "L206",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "lims_test_keyring_store_test_fallback_file_format_integrity",
- "target": "lims_test_keyring_store_swap_keyring"
+ "source": "tests_unit_lims_test_cache_py",
+ "target": "lims_test_cache_test_require_conn_before_init_raises"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/lims/test_keyring_store.py",
- "source_location": "L189",
+ "source_file": "tests/unit/lims/test_cache.py",
+ "source_location": "L212",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "lims_test_keyring_store_test_fallback_corrupt_file_raises",
- "target": "lims_test_keyring_store_swap_keyring"
+ "source": "tests_unit_lims_test_cache_py",
+ "target": "lims_test_cache_test_close_is_idempotent"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/lims/test_keyring_store.py",
- "source_location": "L203",
+ "source_file": "tests/unit/lims/test_cache.py",
+ "source_location": "L220",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "lims_test_keyring_store_test_fallback_unsupported_version_raises",
- "target": "lims_test_keyring_store_swap_keyring"
+ "source": "tests_unit_lims_test_cache_py",
+ "target": "lims_test_cache_test_is_fresh_handles_naive_timestamp"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "rationale_for",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/lims/test_keyring_store.py",
- "source_location": "L215",
+ "source_file": "tests/unit/lims/test_cache.py",
+ "source_location": "L1",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "lims_test_keyring_store_test_fallback_missing_fields_raises",
- "target": "lims_test_keyring_store_swap_keyring"
+ "source": "lims_test_cache_rationale_1",
+ "target": "tests_unit_lims_test_cache_py"
},
{
"relation": "calls",
"context": "call",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/lims/test_keyring_store.py",
- "source_location": "L226",
+ "source_file": "tests/unit/lims/test_cache.py",
+ "source_location": "L51",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "lims_test_keyring_store_test_fallback_set_then_overwrite",
- "target": "lims_test_keyring_store_swap_keyring"
+ "source": "lims_test_cache_test_upsert_many_then_list",
+ "target": "lims_test_cache_project"
},
{
"relation": "calls",
"context": "call",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/lims/test_keyring_store.py",
- "source_location": "L240",
+ "source_file": "tests/unit/lims/test_cache.py",
+ "source_location": "L74",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "lims_test_keyring_store_test_keyring_set_failure_falls_back",
- "target": "lims_test_keyring_store_swap_keyring"
+ "source": "lims_test_cache_test_upsert_updates_existing_row",
+ "target": "lims_test_cache_project"
},
{
"relation": "calls",
"context": "call",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/lims/test_keyring_store.py",
- "source_location": "L264",
+ "source_file": "tests/unit/lims/test_cache.py",
+ "source_location": "L99",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "lims_test_keyring_store_test_is_keyring_available_false_on_unexpected_exception",
- "target": "lims_test_keyring_store_swap_keyring"
+ "source": "lims_test_cache_test_get_project_by_uid_or_short_id",
+ "target": "lims_test_cache_project"
},
{
"relation": "calls",
"context": "call",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/lims/test_keyring_store.py",
- "source_location": "L273",
+ "source_file": "tests/unit/lims/test_cache.py",
+ "source_location": "L125",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "lims_test_keyring_store_test_fallback_get_when_no_secrets_file",
- "target": "lims_test_keyring_store_swap_keyring"
+ "source": "lims_test_cache_test_list_projects_status_filter",
+ "target": "lims_test_cache_project"
},
{
"relation": "calls",
"context": "call",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/lims/test_keyring_store.py",
- "source_location": "L283",
+ "source_file": "tests/unit/lims/test_cache.py",
+ "source_location": "L139",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "lims_test_keyring_store_test_fallback_delete_when_no_file",
- "target": "lims_test_keyring_store_swap_keyring"
+ "source": "lims_test_cache_test_is_fresh_true_when_within_ttl",
+ "target": "lims_test_cache_project"
},
{
"relation": "calls",
"context": "call",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/lims/test_keyring_store.py",
- "source_location": "L294",
+ "source_file": "tests/unit/lims/test_cache.py",
+ "source_location": "L150",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "lims_test_keyring_store_test_fallback_delete_when_username_absent",
- "target": "lims_test_keyring_store_swap_keyring"
+ "source": "lims_test_cache_test_is_fresh_false_when_stale",
+ "target": "lims_test_cache_project"
},
{
"relation": "calls",
"context": "call",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/lims/test_keyring_store.py",
- "source_location": "L315",
+ "source_file": "tests/unit/lims/test_cache.py",
+ "source_location": "L172",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "lims_test_keyring_store_test_load_fallback_unreadable_path_raises",
- "target": "lims_test_keyring_store_swap_keyring"
+ "source": "lims_test_cache_test_is_fresh_handles_zulu_suffix",
+ "target": "lims_test_cache_project"
},
{
"relation": "calls",
"context": "call",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/lims/test_keyring_store.py",
- "source_location": "L351",
+ "source_file": "tests/unit/lims/test_cache.py",
+ "source_location": "L185",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "lims_test_keyring_store_test_fallback_plaintext_must_be_object",
- "target": "lims_test_keyring_store_swap_keyring"
+ "source": "lims_test_cache_test_is_fresh_ignores_invalid_timestamp",
+ "target": "lims_test_cache_project"
},
{
"relation": "calls",
"context": "call",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/lims/test_keyring_store.py",
- "source_location": "L364",
+ "source_file": "tests/unit/lims/test_cache.py",
+ "source_location": "L196",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "lims_test_keyring_store_test_envelope_must_be_object",
- "target": "lims_test_keyring_store_swap_keyring"
+ "source": "lims_test_cache_test_endpoint_isolates_rows",
+ "target": "lims_test_cache_project"
},
{
"relation": "calls",
"context": "call",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/lims/test_keyring_store.py",
- "source_location": "L378",
+ "source_file": "tests/unit/lims/test_cache.py",
+ "source_location": "L227",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "lims_test_keyring_store_test_get_consults_fallback_when_keyring_missing",
- "target": "lims_test_keyring_store_swap_keyring"
+ "source": "lims_test_cache_test_is_fresh_handles_naive_timestamp",
+ "target": "lims_test_cache_project"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "tests/unit/lims/test_keyring_store.py",
- "source_location": "L72",
+ "source_file": "tests/unit/lims/test_cache.py",
+ "source_location": "L26",
"weight": 1.0,
- "source": "lims_test_keyring_store_test_set_get_delete_via_os_keyring",
- "target": "lims_keyring_store_keyringstore"
+ "source": "lims_test_cache_project",
+ "target": "lims_schemas_limsproject"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "tests/unit/lims/test_keyring_store.py",
- "source_location": "L81",
+ "source_file": "tests/unit/lims/test_cache.py",
+ "source_location": "L40",
"weight": 1.0,
- "source": "lims_test_keyring_store_test_get_returns_none_for_missing",
- "target": "lims_keyring_store_keyringstore"
+ "source": "lims_test_cache_test_init_creates_table_idempotent",
+ "target": "lims_cache_limscache"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "tests/unit/lims/test_keyring_store.py",
- "source_location": "L87",
+ "source_file": "tests/unit/lims/test_cache.py",
+ "source_location": "L48",
"weight": 1.0,
- "source": "lims_test_keyring_store_test_delete_missing_is_silent",
- "target": "lims_keyring_store_keyringstore"
+ "source": "lims_test_cache_test_upsert_many_then_list",
+ "target": "lims_cache_limscache"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "tests/unit/lims/test_keyring_store.py",
- "source_location": "L95",
+ "source_file": "tests/unit/lims/test_cache.py",
+ "source_location": "L60",
"weight": 1.0,
- "source": "lims_test_keyring_store_test_is_keyring_available_true",
- "target": "lims_keyring_store_keyringstore"
+ "source": "lims_test_cache_test_upsert_many_empty_is_noop",
+ "target": "lims_cache_limscache"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "tests/unit/lims/test_keyring_store.py",
- "source_location": "L101",
- "weight": 1.0,
- "source": "lims_test_keyring_store_test_is_keyring_available_false_on_broken_backend",
- "target": "lims_keyring_store_keyringstore"
- },
- {
- "relation": "rationale_for",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/lims/test_keyring_store.py",
- "source_location": "L106",
+ "source_file": "tests/unit/lims/test_cache.py",
+ "source_location": "L71",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "lims_test_keyring_store_rationale_106",
- "target": "lims_test_keyring_store_test_fallback_round_trip"
+ "source": "lims_test_cache_test_upsert_updates_existing_row",
+ "target": "lims_cache_limscache"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "tests/unit/lims/test_keyring_store.py",
- "source_location": "L108",
+ "source_file": "tests/unit/lims/test_cache.py",
+ "source_location": "L77",
"weight": 1.0,
- "source": "lims_test_keyring_store_test_fallback_round_trip",
- "target": "lims_keyring_store_keyringstore"
+ "source": "lims_test_cache_test_upsert_updates_existing_row",
+ "target": "lims_schemas_limsproject"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "tests/unit/lims/test_keyring_store.py",
- "source_location": "L124",
+ "source_file": "tests/unit/lims/test_cache.py",
+ "source_location": "L96",
"weight": 1.0,
- "source": "lims_test_keyring_store_test_fallback_delete",
- "target": "lims_keyring_store_keyringstore"
+ "source": "lims_test_cache_test_get_project_by_uid_or_short_id",
+ "target": "lims_cache_limscache"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "tests/unit/lims/test_keyring_store.py",
- "source_location": "L140",
+ "source_file": "tests/unit/lims/test_cache.py",
+ "source_location": "L109",
"weight": 1.0,
- "source": "lims_test_keyring_store_test_fallback_wrong_passphrase_raises",
- "target": "lims_keyring_store_keyringstore"
+ "source": "lims_test_cache_test_get_project_missing_returns_none",
+ "target": "lims_cache_limscache"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "tests/unit/lims/test_keyring_store.py",
- "source_location": "L157",
+ "source_file": "tests/unit/lims/test_cache.py",
+ "source_location": "L119",
"weight": 1.0,
- "source": "lims_test_keyring_store_test_fallback_no_passphrase_raises",
- "target": "lims_keyring_store_keyringstore"
+ "source": "lims_test_cache_test_list_projects_status_filter",
+ "target": "lims_cache_limscache"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "tests/unit/lims/test_keyring_store.py",
- "source_location": "L164",
- "weight": 1.0,
- "source": "lims_test_keyring_store_test_fallback_empty_passphrase_raises",
- "target": "lims_keyring_store_keyringstore"
- },
- {
- "relation": "rationale_for",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/lims/test_keyring_store.py",
- "source_location": "L170",
+ "source_file": "tests/unit/lims/test_cache.py",
+ "source_location": "L136",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "lims_test_keyring_store_rationale_170",
- "target": "lims_test_keyring_store_test_fallback_file_format_integrity"
+ "source": "lims_test_cache_test_is_fresh_true_when_within_ttl",
+ "target": "lims_cache_limscache"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "tests/unit/lims/test_keyring_store.py",
- "source_location": "L172",
+ "source_file": "tests/unit/lims/test_cache.py",
+ "source_location": "L146",
"weight": 1.0,
- "source": "lims_test_keyring_store_test_fallback_file_format_integrity",
- "target": "lims_keyring_store_keyringstore"
+ "source": "lims_test_cache_test_is_fresh_false_when_stale",
+ "target": "lims_cache_limscache"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "tests/unit/lims/test_keyring_store.py",
- "source_location": "L190",
+ "source_file": "tests/unit/lims/test_cache.py",
+ "source_location": "L157",
"weight": 1.0,
- "source": "lims_test_keyring_store_test_fallback_corrupt_file_raises",
- "target": "lims_keyring_store_keyringstore"
+ "source": "lims_test_cache_test_is_fresh_false_when_empty",
+ "target": "lims_cache_limscache"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "tests/unit/lims/test_keyring_store.py",
- "source_location": "L204",
+ "source_file": "tests/unit/lims/test_cache.py",
+ "source_location": "L166",
"weight": 1.0,
- "source": "lims_test_keyring_store_test_fallback_unsupported_version_raises",
- "target": "lims_keyring_store_keyringstore"
+ "source": "lims_test_cache_test_is_fresh_handles_zulu_suffix",
+ "target": "lims_cache_limscache"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "tests/unit/lims/test_keyring_store.py",
- "source_location": "L216",
- "weight": 1.0,
- "source": "lims_test_keyring_store_test_fallback_missing_fields_raises",
- "target": "lims_keyring_store_keyringstore"
- },
- {
- "relation": "rationale_for",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/lims/test_keyring_store.py",
- "source_location": "L225",
+ "source_file": "tests/unit/lims/test_cache.py",
+ "source_location": "L180",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "lims_test_keyring_store_rationale_225",
- "target": "lims_test_keyring_store_test_fallback_set_then_overwrite"
+ "source": "lims_test_cache_test_is_fresh_ignores_invalid_timestamp",
+ "target": "lims_cache_limscache"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "tests/unit/lims/test_keyring_store.py",
- "source_location": "L227",
- "weight": 1.0,
- "source": "lims_test_keyring_store_test_fallback_set_then_overwrite",
- "target": "lims_keyring_store_keyringstore"
- },
- {
- "relation": "rationale_for",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/lims/test_keyring_store.py",
- "source_location": "L237",
+ "source_file": "tests/unit/lims/test_cache.py",
+ "source_location": "L193",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "lims_test_keyring_store_rationale_237",
- "target": "lims_test_keyring_store_test_keyring_set_failure_falls_back"
+ "source": "lims_test_cache_test_endpoint_isolates_rows",
+ "target": "lims_cache_limscache"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "tests/unit/lims/test_keyring_store.py",
- "source_location": "L241",
- "weight": 1.0,
- "source": "lims_test_keyring_store_test_keyring_set_failure_falls_back",
- "target": "lims_keyring_store_keyringstore"
- },
- {
- "relation": "rationale_for",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/lims/test_keyring_store.py",
- "source_location": "L250",
+ "source_file": "tests/unit/lims/test_cache.py",
+ "source_location": "L207",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "lims_test_keyring_store_rationale_250",
- "target": "lims_test_keyring_store_test_is_keyring_available_false_on_unexpected_exception"
+ "source": "lims_test_cache_test_require_conn_before_init_raises",
+ "target": "lims_cache_limscache"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "tests/unit/lims/test_keyring_store.py",
- "source_location": "L265",
+ "source_file": "tests/unit/lims/test_cache.py",
+ "source_location": "L213",
"weight": 1.0,
- "source": "lims_test_keyring_store_test_is_keyring_available_false_on_unexpected_exception",
- "target": "lims_keyring_store_keyringstore"
+ "source": "lims_test_cache_test_close_is_idempotent",
+ "target": "lims_cache_limscache"
},
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/lims/test_keyring_store.py",
- "source_location": "L270",
+ "source_file": "tests/unit/lims/test_cache.py",
+ "source_location": "L221",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "lims_test_keyring_store_rationale_270",
- "target": "lims_test_keyring_store_test_fallback_get_when_no_secrets_file"
+ "source": "lims_test_cache_rationale_221",
+ "target": "lims_test_cache_test_is_fresh_handles_naive_timestamp"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "tests/unit/lims/test_keyring_store.py",
- "source_location": "L274",
+ "source_file": "tests/unit/lims/test_cache.py",
+ "source_location": "L222",
"weight": 1.0,
- "source": "lims_test_keyring_store_test_fallback_get_when_no_secrets_file",
- "target": "lims_keyring_store_keyringstore"
+ "source": "lims_test_cache_test_is_fresh_handles_naive_timestamp",
+ "target": "lims_cache_limscache"
},
{
- "relation": "rationale_for",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/lims/test_keyring_store.py",
- "source_location": "L282",
+ "source_file": "tests/unit/validator/test_engine_creation.py",
+ "source_location": "L38",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "lims_test_keyring_store_rationale_282",
- "target": "lims_test_keyring_store_test_fallback_delete_when_no_file"
- },
- {
- "relation": "calls",
- "context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/lims/test_keyring_store.py",
- "source_location": "L284",
- "weight": 1.0,
- "source": "lims_test_keyring_store_test_fallback_delete_when_no_file",
- "target": "lims_keyring_store_keyringstore"
+ "source": "tests_unit_validator_test_engine_creation_py",
+ "target": "validator_test_engine_creation_clean_input"
},
{
- "relation": "rationale_for",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/lims/test_keyring_store.py",
- "source_location": "L293",
+ "source_file": "tests/unit/validator/test_engine_creation.py",
+ "source_location": "L85",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "lims_test_keyring_store_rationale_293",
- "target": "lims_test_keyring_store_test_fallback_delete_when_username_absent"
- },
- {
- "relation": "calls",
- "context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/lims/test_keyring_store.py",
- "source_location": "L295",
- "weight": 1.0,
- "source": "lims_test_keyring_store_test_fallback_delete_when_username_absent",
- "target": "lims_keyring_store_keyringstore"
+ "source": "tests_unit_validator_test_engine_creation_py",
+ "target": "validator_test_engine_creation_test_split_path_segments_posix_path"
},
{
- "relation": "rationale_for",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/lims/test_keyring_store.py",
- "source_location": "L307",
+ "source_file": "tests/unit/validator/test_engine_creation.py",
+ "source_location": "L90",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "lims_test_keyring_store_rationale_307",
- "target": "lims_test_keyring_store_test_load_fallback_unreadable_path_raises"
+ "source": "tests_unit_validator_test_engine_creation_py",
+ "target": "validator_test_engine_creation_test_split_path_segments_windows_path"
},
{
- "relation": "calls",
- "context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/lims/test_keyring_store.py",
- "source_location": "L316",
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/validator/test_engine_creation.py",
+ "source_location": "L96",
"weight": 1.0,
- "source": "lims_test_keyring_store_test_load_fallback_unreadable_path_raises",
- "target": "lims_keyring_store_keyringstore"
+ "confidence_score": 1.0,
+ "source": "tests_unit_validator_test_engine_creation_py",
+ "target": "validator_test_engine_creation_test_split_path_segments_empty_string"
},
{
- "relation": "rationale_for",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/lims/test_keyring_store.py",
- "source_location": "L325",
+ "source_file": "tests/unit/validator/test_engine_creation.py",
+ "source_location": "L100",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "lims_test_keyring_store_rationale_325",
- "target": "lims_test_keyring_store_test_fallback_plaintext_must_be_object"
+ "source": "tests_unit_validator_test_engine_creation_py",
+ "target": "validator_test_engine_creation_test_split_path_segments_drops_trailing_slash"
},
{
- "relation": "calls",
- "context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/lims/test_keyring_store.py",
- "source_location": "L352",
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/validator/test_engine_creation.py",
+ "source_location": "L110",
"weight": 1.0,
- "source": "lims_test_keyring_store_test_fallback_plaintext_must_be_object",
- "target": "lims_keyring_store_keyringstore"
+ "confidence_score": 1.0,
+ "source": "tests_unit_validator_test_engine_creation_py",
+ "target": "validator_test_engine_creation_test_validator_default_config_uses_spec_defaults"
},
{
- "relation": "rationale_for",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/lims/test_keyring_store.py",
- "source_location": "L361",
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/validator/test_engine_creation.py",
+ "source_location": "L119",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "lims_test_keyring_store_rationale_361",
- "target": "lims_test_keyring_store_test_envelope_must_be_object"
+ "source": "tests_unit_validator_test_engine_creation_py",
+ "target": "validator_test_engine_creation_test_validator_accepts_explicit_config"
},
{
- "relation": "calls",
- "context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/lims/test_keyring_store.py",
- "source_location": "L365",
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/validator/test_engine_creation.py",
+ "source_location": "L131",
"weight": 1.0,
- "source": "lims_test_keyring_store_test_envelope_must_be_object",
- "target": "lims_keyring_store_keyringstore"
+ "confidence_score": 1.0,
+ "source": "tests_unit_validator_test_engine_creation_py",
+ "target": "validator_test_engine_creation_test_clean_input_returns_empty_list"
},
{
- "relation": "rationale_for",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/lims/test_keyring_store.py",
- "source_location": "L374",
+ "source_file": "tests/unit/validator/test_engine_creation.py",
+ "source_location": "L136",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "lims_test_keyring_store_rationale_374",
- "target": "lims_test_keyring_store_test_get_consults_fallback_when_keyring_missing"
+ "source": "tests_unit_validator_test_engine_creation_py",
+ "target": "validator_test_engine_creation_test_clean_input_with_test_run_returns_empty_list"
},
{
- "relation": "calls",
- "context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/lims/test_keyring_store.py",
- "source_location": "L379",
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/validator/test_engine_creation.py",
+ "source_location": "L152",
"weight": 1.0,
- "source": "lims_test_keyring_store_test_get_consults_fallback_when_keyring_missing",
- "target": "lims_keyring_store_keyringstore"
+ "confidence_score": 1.0,
+ "source": "tests_unit_validator_test_engine_creation_py",
+ "target": "validator_test_engine_creation_test_unresolved_placeholder_in_path_segment_triggers_finding"
},
{
- "relation": "rationale_for",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/lims/__init__.py",
- "source_location": "L1",
+ "source_file": "tests/unit/validator/test_engine_creation.py",
+ "source_location": "L167",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "lims_init_rationale_1",
- "target": "tests_unit_lims_init_py"
+ "source": "tests_unit_validator_test_engine_creation_py",
+ "target": "validator_test_engine_creation_test_unresolved_placeholder_in_file_name_triggers_finding"
},
{
- "relation": "rationale_for",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "src/exlab_wizard/lims/__init__.py",
- "source_location": "L1",
+ "source_file": "tests/unit/validator/test_engine_creation.py",
+ "source_location": "L183",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "lims_init_rationale_1",
- "target": "src_exlab_wizard_lims_init_py"
+ "source": "tests_unit_validator_test_engine_creation_py",
+ "target": "validator_test_engine_creation_test_leftover_jinja_marker_in_file_content_triggers_finding"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/lims/test_client.py",
- "source_location": "L22",
+ "source_file": "tests/unit/validator/test_engine_creation.py",
+ "source_location": "L195",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_lims_test_client_py",
- "target": "lims_test_client_make_client"
+ "source": "tests_unit_validator_test_engine_creation_py",
+ "target": "validator_test_engine_creation_test_illegal_filesystem_character_in_file_name_triggers_finding"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/lims/test_client.py",
- "source_location": "L35",
+ "source_file": "tests/unit/validator/test_engine_creation.py",
+ "source_location": "L211",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_lims_test_client_py",
- "target": "lims_test_client_test_login_happy_path"
+ "source": "tests_unit_validator_test_engine_creation_py",
+ "target": "validator_test_engine_creation_test_reserved_filesystem_name_triggers_finding"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/lims/test_client.py",
- "source_location": "L48",
+ "source_file": "tests/unit/validator/test_engine_creation.py",
+ "source_location": "L225",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_lims_test_client_py",
- "target": "lims_test_client_test_login_uses_explicit_password_over_provider"
+ "source": "tests_unit_validator_test_engine_creation_py",
+ "target": "validator_test_engine_creation_test_run_leaf_with_test_run_kind_triggers_mode_prefix_mismatch"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/lims/test_client.py",
- "source_location": "L59",
+ "source_file": "tests/unit/validator/test_engine_creation.py",
+ "source_location": "L238",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_lims_test_client_py",
- "target": "lims_test_client_test_login_wrong_password_raises"
+ "source": "tests_unit_validator_test_engine_creation_py",
+ "target": "validator_test_engine_creation_test_test_run_leaf_with_experimental_run_kind_triggers_mode_prefix_mismatch"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/lims/test_client.py",
- "source_location": "L69",
+ "source_file": "tests/unit/validator/test_engine_creation.py",
+ "source_location": "L254",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_lims_test_client_py",
- "target": "lims_test_client_test_login_with_no_password_raises_config_error"
+ "source": "tests_unit_validator_test_engine_creation_py",
+ "target": "validator_test_engine_creation_test_missing_required_field_triggers_soft_tier_finding"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/lims/test_client.py",
- "source_location": "L79",
+ "source_file": "tests/unit/validator/test_engine_creation.py",
+ "source_location": "L272",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_lims_test_client_py",
- "target": "lims_test_client_test_list_projects_returns_typed_rows"
+ "source": "tests_unit_validator_test_engine_creation_py",
+ "target": "validator_test_engine_creation_test_required_field_present_does_not_trigger_finding"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/lims/test_client.py",
- "source_location": "L93",
+ "source_file": "tests/unit/validator/test_engine_creation.py",
+ "source_location": "L288",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_lims_test_client_py",
- "target": "lims_test_client_test_list_projects_status_filter"
+ "source": "tests_unit_validator_test_engine_creation_py",
+ "target": "validator_test_engine_creation_test_malformed_yaml_front_matter_triggers_soft_tier_finding"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/lims/test_client.py",
- "source_location": "L122",
+ "source_file": "tests/unit/validator/test_engine_creation.py",
+ "source_location": "L304",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_lims_test_client_py",
- "target": "lims_test_client_test_get_project_by_uid"
+ "source": "tests_unit_validator_test_engine_creation_py",
+ "target": "validator_test_engine_creation_test_no_readme_md_skips_front_matter_rule"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/lims/test_client.py",
- "source_location": "L134",
+ "source_file": "tests/unit/validator/test_engine_creation.py",
+ "source_location": "L320",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_lims_test_client_py",
- "target": "lims_test_client_test_get_project_by_short_id"
+ "source": "tests_unit_validator_test_engine_creation_py",
+ "target": "validator_test_engine_creation_test_multiple_findings_aggregate_in_one_call"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/lims/test_client.py",
- "source_location": "L146",
+ "source_file": "tests/unit/validator/test_engine_creation.py",
+ "source_location": "L342",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_lims_test_client_py",
- "target": "lims_test_client_test_get_project_404_returns_none"
+ "source": "tests_unit_validator_test_engine_creation_py",
+ "target": "validator_test_engine_creation_test_findings_are_sorted_with_hard_tier_first"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/lims/test_client.py",
- "source_location": "L157",
+ "source_file": "tests/unit/validator/test_engine_creation.py",
+ "source_location": "L366",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_lims_test_client_py",
- "target": "lims_test_client_test_get_me"
+ "source": "tests_unit_validator_test_engine_creation_py",
+ "target": "validator_test_engine_creation_test_findings_sorted_lexicographically_within_same_tier"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/lims/test_client.py",
- "source_location": "L169",
+ "source_file": "tests/unit/validator/test_engine_creation.py",
+ "source_location": "L386",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_lims_test_client_py",
- "target": "lims_test_client_test_health_check_ok"
+ "source": "tests_unit_validator_test_engine_creation_py",
+ "target": "validator_test_engine_creation_test_findings_carry_run_path_from_proposed_path"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/lims/test_client.py",
- "source_location": "L182",
+ "source_file": "tests/unit/validator/test_engine_creation.py",
+ "source_location": "L395",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_lims_test_client_py",
- "target": "lims_test_client_test_health_check_failure_returns_status"
+ "source": "tests_unit_validator_test_engine_creation_py",
+ "target": "validator_test_engine_creation_test_findings_default_audit_flags_to_false"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/lims/test_client.py",
- "source_location": "L197",
+ "source_file": "tests/unit/validator/test_engine_creation.py",
+ "source_location": "L408",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_lims_test_client_py",
- "target": "lims_test_client_test_relogin_after_401"
+ "source": "tests_unit_validator_test_engine_creation_py",
+ "target": "validator_test_engine_creation_test_findings_are_finding_instances"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/lims/test_client.py",
- "source_location": "L213",
+ "source_file": "tests/unit/validator/test_engine_creation.py",
+ "source_location": "L424",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_lims_test_client_py",
- "target": "lims_test_client_test_health_check_returns_non200_status"
+ "source": "tests_unit_validator_test_engine_creation_py",
+ "target": "validator_test_engine_creation_test_creation_validation_input_is_frozen"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/lims/test_client.py",
- "source_location": "L243",
+ "source_file": "tests/unit/validator/test_engine_creation.py",
+ "source_location": "L431",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_lims_test_client_py",
- "target": "lims_test_client_test_endpoint_strips_trailing_slash"
+ "source": "tests_unit_validator_test_engine_creation_py",
+ "target": "validator_test_engine_creation_test_creation_validation_input_defaults"
},
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/lims/test_client.py",
+ "source_file": "tests/unit/validator/test_engine_creation.py",
"source_location": "L1",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "lims_test_client_rationale_1",
- "target": "tests_unit_lims_test_client_py"
+ "source": "validator_test_engine_creation_rationale_1",
+ "target": "tests_unit_validator_test_engine_creation_py"
},
{
"relation": "calls",
"context": "call",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/lims/test_client.py",
- "source_location": "L37",
+ "source_file": "tests/unit/validator/test_engine_creation.py",
+ "source_location": "L132",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "lims_test_client_test_login_happy_path",
- "target": "lims_test_client_make_client"
+ "source": "validator_test_engine_creation_test_clean_input_returns_empty_list",
+ "target": "validator_test_engine_creation_clean_input"
},
{
"relation": "calls",
"context": "call",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/lims/test_client.py",
- "source_location": "L50",
+ "source_file": "tests/unit/validator/test_engine_creation.py",
+ "source_location": "L139",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "lims_test_client_test_login_uses_explicit_password_over_provider",
- "target": "lims_test_client_make_client"
+ "source": "validator_test_engine_creation_test_clean_input_with_test_run_returns_empty_list",
+ "target": "validator_test_engine_creation_clean_input"
},
{
"relation": "calls",
"context": "call",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/lims/test_client.py",
- "source_location": "L61",
+ "source_file": "tests/unit/validator/test_engine_creation.py",
+ "source_location": "L155",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "lims_test_client_test_login_wrong_password_raises",
- "target": "lims_test_client_make_client"
+ "source": "validator_test_engine_creation_test_unresolved_placeholder_in_path_segment_triggers_finding",
+ "target": "validator_test_engine_creation_clean_input"
},
{
"relation": "calls",
"context": "call",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/lims/test_client.py",
- "source_location": "L71",
+ "source_file": "tests/unit/validator/test_engine_creation.py",
+ "source_location": "L169",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "lims_test_client_test_login_with_no_password_raises_config_error",
- "target": "lims_test_client_make_client"
+ "source": "validator_test_engine_creation_test_unresolved_placeholder_in_file_name_triggers_finding",
+ "target": "validator_test_engine_creation_clean_input"
},
{
"relation": "calls",
"context": "call",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/lims/test_client.py",
- "source_location": "L81",
+ "source_file": "tests/unit/validator/test_engine_creation.py",
+ "source_location": "L185",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "lims_test_client_test_list_projects_returns_typed_rows",
- "target": "lims_test_client_make_client"
+ "source": "validator_test_engine_creation_test_leftover_jinja_marker_in_file_content_triggers_finding",
+ "target": "validator_test_engine_creation_clean_input"
},
{
"relation": "calls",
"context": "call",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/lims/test_client.py",
- "source_location": "L113",
+ "source_file": "tests/unit/validator/test_engine_creation.py",
+ "source_location": "L198",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "lims_test_client_test_list_projects_status_filter",
- "target": "lims_test_client_make_client"
+ "source": "validator_test_engine_creation_test_illegal_filesystem_character_in_file_name_triggers_finding",
+ "target": "validator_test_engine_creation_clean_input"
},
{
"relation": "calls",
"context": "call",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/lims/test_client.py",
- "source_location": "L124",
+ "source_file": "tests/unit/validator/test_engine_creation.py",
+ "source_location": "L214",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "lims_test_client_test_get_project_by_uid",
- "target": "lims_test_client_make_client"
+ "source": "validator_test_engine_creation_test_reserved_filesystem_name_triggers_finding",
+ "target": "validator_test_engine_creation_clean_input"
},
{
"relation": "calls",
"context": "call",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/lims/test_client.py",
- "source_location": "L136",
+ "source_file": "tests/unit/validator/test_engine_creation.py",
+ "source_location": "L228",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "lims_test_client_test_get_project_by_short_id",
- "target": "lims_test_client_make_client"
+ "source": "validator_test_engine_creation_test_run_leaf_with_test_run_kind_triggers_mode_prefix_mismatch",
+ "target": "validator_test_engine_creation_clean_input"
},
{
"relation": "calls",
"context": "call",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/lims/test_client.py",
- "source_location": "L148",
+ "source_file": "tests/unit/validator/test_engine_creation.py",
+ "source_location": "L241",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "lims_test_client_test_get_project_404_returns_none",
- "target": "lims_test_client_make_client"
+ "source": "validator_test_engine_creation_test_test_run_leaf_with_experimental_run_kind_triggers_mode_prefix_mismatch",
+ "target": "validator_test_engine_creation_clean_input"
},
{
"relation": "calls",
"context": "call",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/lims/test_client.py",
- "source_location": "L159",
+ "source_file": "tests/unit/validator/test_engine_creation.py",
+ "source_location": "L257",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "lims_test_client_test_get_me",
- "target": "lims_test_client_make_client"
+ "source": "validator_test_engine_creation_test_missing_required_field_triggers_soft_tier_finding",
+ "target": "validator_test_engine_creation_clean_input"
},
{
"relation": "calls",
"context": "call",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/lims/test_client.py",
- "source_location": "L171",
+ "source_file": "tests/unit/validator/test_engine_creation.py",
+ "source_location": "L275",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "lims_test_client_test_health_check_ok",
- "target": "lims_test_client_make_client"
+ "source": "validator_test_engine_creation_test_required_field_present_does_not_trigger_finding",
+ "target": "validator_test_engine_creation_clean_input"
},
{
"relation": "calls",
"context": "call",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/lims/test_client.py",
- "source_location": "L185",
+ "source_file": "tests/unit/validator/test_engine_creation.py",
+ "source_location": "L291",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "lims_test_client_test_health_check_failure_returns_status",
- "target": "lims_test_client_make_client"
+ "source": "validator_test_engine_creation_test_malformed_yaml_front_matter_triggers_soft_tier_finding",
+ "target": "validator_test_engine_creation_clean_input"
},
{
"relation": "calls",
"context": "call",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/lims/test_client.py",
- "source_location": "L202",
+ "source_file": "tests/unit/validator/test_engine_creation.py",
+ "source_location": "L307",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "lims_test_client_test_relogin_after_401",
- "target": "lims_test_client_make_client"
+ "source": "validator_test_engine_creation_test_no_readme_md_skips_front_matter_rule",
+ "target": "validator_test_engine_creation_clean_input"
},
{
"relation": "calls",
"context": "call",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/lims/test_client.py",
- "source_location": "L233",
+ "source_file": "tests/unit/validator/test_engine_creation.py",
+ "source_location": "L323",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "lims_test_client_test_health_check_returns_non200_status",
- "target": "lims_test_client_make_client"
+ "source": "validator_test_engine_creation_test_multiple_findings_aggregate_in_one_call",
+ "target": "validator_test_engine_creation_clean_input"
},
{
"relation": "calls",
"context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/lims/test_client.py",
- "source_location": "L23",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/validator/test_engine_creation.py",
+ "source_location": "L345",
"weight": 1.0,
- "source": "lims_test_client_make_client",
- "target": "lims_client_limsclient"
+ "confidence_score": 1.0,
+ "source": "validator_test_engine_creation_test_findings_are_sorted_with_hard_tier_first",
+ "target": "validator_test_engine_creation_clean_input"
},
{
"relation": "calls",
"context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/lims/test_client.py",
- "source_location": "L36",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/validator/test_engine_creation.py",
+ "source_location": "L369",
"weight": 1.0,
- "source": "lims_test_client_test_login_happy_path",
- "target": "fixtures_mock_lims_make_mock_lims_app"
+ "confidence_score": 1.0,
+ "source": "validator_test_engine_creation_test_findings_sorted_lexicographically_within_same_tier",
+ "target": "validator_test_engine_creation_clean_input"
},
{
"relation": "calls",
"context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/lims/test_client.py",
- "source_location": "L49",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/validator/test_engine_creation.py",
+ "source_location": "L389",
"weight": 1.0,
- "source": "lims_test_client_test_login_uses_explicit_password_over_provider",
- "target": "fixtures_mock_lims_make_mock_lims_app"
+ "confidence_score": 1.0,
+ "source": "validator_test_engine_creation_test_findings_carry_run_path_from_proposed_path",
+ "target": "validator_test_engine_creation_clean_input"
},
{
"relation": "calls",
"context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/lims/test_client.py",
- "source_location": "L60",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/validator/test_engine_creation.py",
+ "source_location": "L398",
"weight": 1.0,
- "source": "lims_test_client_test_login_wrong_password_raises",
- "target": "fixtures_mock_lims_make_mock_lims_app"
+ "confidence_score": 1.0,
+ "source": "validator_test_engine_creation_test_findings_default_audit_flags_to_false",
+ "target": "validator_test_engine_creation_clean_input"
},
{
"relation": "calls",
"context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/lims/test_client.py",
- "source_location": "L70",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/validator/test_engine_creation.py",
+ "source_location": "L411",
"weight": 1.0,
- "source": "lims_test_client_test_login_with_no_password_raises_config_error",
- "target": "fixtures_mock_lims_make_mock_lims_app"
+ "confidence_score": 1.0,
+ "source": "validator_test_engine_creation_test_findings_are_finding_instances",
+ "target": "validator_test_engine_creation_clean_input"
},
{
"relation": "calls",
"context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/lims/test_client.py",
- "source_location": "L80",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/validator/test_engine_creation.py",
+ "source_location": "L426",
"weight": 1.0,
- "source": "lims_test_client_test_list_projects_returns_typed_rows",
- "target": "fixtures_mock_lims_make_mock_lims_app"
+ "confidence_score": 1.0,
+ "source": "validator_test_engine_creation_test_creation_validation_input_is_frozen",
+ "target": "validator_test_engine_creation_clean_input"
},
{
- "relation": "calls",
- "context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/lims/test_client.py",
- "source_location": "L112",
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/validator/test_engine_creation.py",
+ "source_location": "L39",
"weight": 1.0,
- "source": "lims_test_client_test_list_projects_status_filter",
- "target": "fixtures_mock_lims_make_mock_lims_app"
+ "confidence_score": 1.0,
+ "source": "validator_test_engine_creation_rationale_39",
+ "target": "validator_test_engine_creation_clean_input"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "tests/unit/lims/test_client.py",
- "source_location": "L123",
+ "source_file": "tests/unit/validator/test_engine_creation.py",
+ "source_location": "L77",
"weight": 1.0,
- "source": "lims_test_client_test_get_project_by_uid",
- "target": "fixtures_mock_lims_make_mock_lims_app"
+ "source": "validator_test_engine_creation_clean_input",
+ "target": "validator_engine_creationvalidationinput"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "tests/unit/lims/test_client.py",
- "source_location": "L135",
+ "source_file": "tests/unit/validator/test_engine_creation.py",
+ "source_location": "L86",
"weight": 1.0,
- "source": "lims_test_client_test_get_project_by_short_id",
- "target": "fixtures_mock_lims_make_mock_lims_app"
+ "source": "validator_test_engine_creation_test_split_path_segments_posix_path",
+ "target": "validator_engine_split_path_segments"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "tests/unit/lims/test_client.py",
- "source_location": "L147",
+ "source_file": "tests/unit/validator/test_engine_creation.py",
+ "source_location": "L91",
"weight": 1.0,
- "source": "lims_test_client_test_get_project_404_returns_none",
- "target": "fixtures_mock_lims_make_mock_lims_app"
+ "source": "validator_test_engine_creation_test_split_path_segments_windows_path",
+ "target": "validator_engine_split_path_segments"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "tests/unit/lims/test_client.py",
- "source_location": "L158",
+ "source_file": "tests/unit/validator/test_engine_creation.py",
+ "source_location": "L97",
"weight": 1.0,
- "source": "lims_test_client_test_get_me",
- "target": "fixtures_mock_lims_make_mock_lims_app"
+ "source": "validator_test_engine_creation_test_split_path_segments_empty_string",
+ "target": "validator_engine_split_path_segments"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "tests/unit/lims/test_client.py",
- "source_location": "L170",
+ "source_file": "tests/unit/validator/test_engine_creation.py",
+ "source_location": "L101",
"weight": 1.0,
- "source": "lims_test_client_test_health_check_ok",
- "target": "fixtures_mock_lims_make_mock_lims_app"
+ "source": "validator_test_engine_creation_test_split_path_segments_drops_trailing_slash",
+ "target": "validator_engine_split_path_segments"
},
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/lims/test_client.py",
- "source_location": "L183",
+ "source_file": "tests/unit/validator/test_engine_creation.py",
+ "source_location": "L111",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "lims_test_client_rationale_183",
- "target": "lims_test_client_test_health_check_failure_returns_status"
+ "source": "validator_test_engine_creation_rationale_111",
+ "target": "validator_test_engine_creation_test_validator_default_config_uses_spec_defaults"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "tests/unit/lims/test_client.py",
- "source_location": "L184",
+ "source_file": "tests/unit/validator/test_engine_creation.py",
+ "source_location": "L120",
"weight": 1.0,
- "source": "lims_test_client_test_health_check_failure_returns_status",
- "target": "fixtures_mock_lims_make_mock_lims_app"
+ "source": "validator_test_engine_creation_test_validator_accepts_explicit_config",
+ "target": "config_models_validatorconfig"
},
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/lims/test_client.py",
- "source_location": "L198",
+ "source_file": "tests/unit/validator/test_engine_creation.py",
+ "source_location": "L137",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "lims_test_client_rationale_198",
- "target": "lims_test_client_test_relogin_after_401"
+ "source": "validator_test_engine_creation_rationale_137",
+ "target": "validator_test_engine_creation_test_clean_input_with_test_run_returns_empty_list"
+ },
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/validator/test_engine_creation.py",
+ "source_location": "L153",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "validator_test_engine_creation_rationale_153",
+ "target": "validator_test_engine_creation_test_unresolved_placeholder_in_path_segment_triggers_finding"
+ },
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/validator/test_engine_creation.py",
+ "source_location": "L196",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "validator_test_engine_creation_rationale_196",
+ "target": "validator_test_engine_creation_test_illegal_filesystem_character_in_file_name_triggers_finding"
+ },
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/validator/test_engine_creation.py",
+ "source_location": "L212",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "validator_test_engine_creation_rationale_212",
+ "target": "validator_test_engine_creation_test_reserved_filesystem_name_triggers_finding"
+ },
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/validator/test_engine_creation.py",
+ "source_location": "L226",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "validator_test_engine_creation_rationale_226",
+ "target": "validator_test_engine_creation_test_run_leaf_with_test_run_kind_triggers_mode_prefix_mismatch"
+ },
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/validator/test_engine_creation.py",
+ "source_location": "L239",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "validator_test_engine_creation_rationale_239",
+ "target": "validator_test_engine_creation_test_test_run_leaf_with_experimental_run_kind_triggers_mode_prefix_mismatch"
+ },
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/validator/test_engine_creation.py",
+ "source_location": "L255",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "validator_test_engine_creation_rationale_255",
+ "target": "validator_test_engine_creation_test_missing_required_field_triggers_soft_tier_finding"
+ },
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/validator/test_engine_creation.py",
+ "source_location": "L273",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "validator_test_engine_creation_rationale_273",
+ "target": "validator_test_engine_creation_test_required_field_present_does_not_trigger_finding"
+ },
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/validator/test_engine_creation.py",
+ "source_location": "L289",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "validator_test_engine_creation_rationale_289",
+ "target": "validator_test_engine_creation_test_malformed_yaml_front_matter_triggers_soft_tier_finding"
+ },
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/validator/test_engine_creation.py",
+ "source_location": "L305",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "validator_test_engine_creation_rationale_305",
+ "target": "validator_test_engine_creation_test_no_readme_md_skips_front_matter_rule"
+ },
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/validator/test_engine_creation.py",
+ "source_location": "L321",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "validator_test_engine_creation_rationale_321",
+ "target": "validator_test_engine_creation_test_multiple_findings_aggregate_in_one_call"
+ },
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/validator/test_engine_creation.py",
+ "source_location": "L343",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "validator_test_engine_creation_rationale_343",
+ "target": "validator_test_engine_creation_test_findings_are_sorted_with_hard_tier_first"
+ },
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/validator/test_engine_creation.py",
+ "source_location": "L367",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "validator_test_engine_creation_rationale_367",
+ "target": "validator_test_engine_creation_test_findings_sorted_lexicographically_within_same_tier"
+ },
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/validator/test_engine_creation.py",
+ "source_location": "L387",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "validator_test_engine_creation_rationale_387",
+ "target": "validator_test_engine_creation_test_findings_carry_run_path_from_proposed_path"
+ },
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/validator/test_engine_creation.py",
+ "source_location": "L396",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "validator_test_engine_creation_rationale_396",
+ "target": "validator_test_engine_creation_test_findings_default_audit_flags_to_false"
+ },
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/validator/test_engine_creation.py",
+ "source_location": "L409",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "validator_test_engine_creation_rationale_409",
+ "target": "validator_test_engine_creation_test_findings_are_finding_instances"
+ },
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/validator/test_engine_creation.py",
+ "source_location": "L425",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "validator_test_engine_creation_rationale_425",
+ "target": "validator_test_engine_creation_test_creation_validation_input_is_frozen"
+ },
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/validator/test_engine_creation.py",
+ "source_location": "L432",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "validator_test_engine_creation_rationale_432",
+ "target": "validator_test_engine_creation_test_creation_validation_input_defaults"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "tests/unit/lims/test_client.py",
- "source_location": "L201",
+ "source_file": "tests/unit/validator/test_engine_creation.py",
+ "source_location": "L433",
"weight": 1.0,
- "source": "lims_test_client_test_relogin_after_401",
- "target": "fixtures_mock_lims_make_mock_lims_app"
+ "source": "validator_test_engine_creation_test_creation_validation_input_defaults",
+ "target": "validator_engine_creationvalidationinput"
+ },
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/validator/test_engine_reconfigure.py",
+ "source_location": "L16",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "tests_unit_validator_test_engine_reconfigure_py",
+ "target": "validator_test_engine_reconfigure_test_reconfigure_refreshes_scan_limits_and_roots"
+ },
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/validator/test_engine_reconfigure.py",
+ "source_location": "L37",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "tests_unit_validator_test_engine_reconfigure_py",
+ "target": "validator_test_engine_reconfigure_test_reconfigure_defaults_to_empty_roots"
},
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/lims/test_client.py",
- "source_location": "L214",
+ "source_file": "tests/unit/validator/test_engine_reconfigure.py",
+ "source_location": "L1",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "lims_test_client_rationale_214",
- "target": "lims_test_client_test_health_check_returns_non200_status"
+ "source": "validator_test_engine_reconfigure_rationale_1",
+ "target": "tests_unit_validator_test_engine_reconfigure_py"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "tests/unit/lims/test_client.py",
- "source_location": "L244",
+ "source_file": "tests/unit/validator/test_engine_reconfigure.py",
+ "source_location": "L18",
"weight": 1.0,
- "source": "lims_test_client_test_endpoint_strips_trailing_slash",
- "target": "lims_client_limsclient"
+ "source": "validator_test_engine_reconfigure_test_reconfigure_refreshes_scan_limits_and_roots",
+ "target": "config_models_validatorconfig"
+ },
+ {
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/validator/test_engine_reconfigure.py",
+ "source_location": "L39",
+ "weight": 1.0,
+ "source": "validator_test_engine_reconfigure_test_reconfigure_defaults_to_empty_roots",
+ "target": "config_models_validatorconfig"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/lims/test_cache.py",
- "source_location": "L19",
+ "source_file": "tests/unit/validator/test_findings.py",
+ "source_location": "L23",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_lims_test_cache_py",
- "target": "lims_test_cache_project"
+ "source": "tests_unit_validator_test_findings_py",
+ "target": "validator_test_findings_make_finding"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/lims/test_cache.py",
- "source_location": "L39",
+ "source_file": "tests/unit/validator/test_findings.py",
+ "source_location": "L45",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_lims_test_cache_py",
- "target": "lims_test_cache_test_init_creates_table_idempotent"
+ "source": "tests_unit_validator_test_findings_py",
+ "target": "validator_test_findings_test_finding_instantiation_with_all_fields"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/lims/test_cache.py",
- "source_location": "L47",
+ "source_file": "tests/unit/validator/test_findings.py",
+ "source_location": "L58",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_lims_test_cache_py",
- "target": "lims_test_cache_test_upsert_many_then_list"
+ "source": "tests_unit_validator_test_findings_py",
+ "target": "validator_test_findings_test_finding_minimum_required_fields"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/lims/test_cache.py",
- "source_location": "L59",
+ "source_file": "tests/unit/validator/test_findings.py",
+ "source_location": "L74",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_lims_test_cache_py",
- "target": "lims_test_cache_test_upsert_many_empty_is_noop"
+ "source": "tests_unit_validator_test_findings_py",
+ "target": "validator_test_findings_test_finding_is_frozen"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/lims/test_cache.py",
- "source_location": "L70",
+ "source_file": "tests/unit/validator/test_findings.py",
+ "source_location": "L86",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_lims_test_cache_py",
- "target": "lims_test_cache_test_upsert_updates_existing_row"
+ "source": "tests_unit_validator_test_findings_py",
+ "target": "validator_test_findings_test_to_dict_contains_all_spec_keys"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/lims/test_cache.py",
- "source_location": "L95",
+ "source_file": "tests/unit/validator/test_findings.py",
+ "source_location": "L103",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_lims_test_cache_py",
- "target": "lims_test_cache_test_get_project_by_uid_or_short_id"
+ "source": "tests_unit_validator_test_findings_py",
+ "target": "validator_test_findings_test_to_dict_values_match_field_values"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/lims/test_cache.py",
- "source_location": "L108",
+ "source_file": "tests/unit/validator/test_findings.py",
+ "source_location": "L113",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_lims_test_cache_py",
- "target": "lims_test_cache_test_get_project_missing_returns_none"
+ "source": "tests_unit_validator_test_findings_py",
+ "target": "validator_test_findings_test_to_dict_from_dict_round_trip_identity"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/lims/test_cache.py",
- "source_location": "L118",
+ "source_file": "tests/unit/validator/test_findings.py",
+ "source_location": "L119",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_lims_test_cache_py",
- "target": "lims_test_cache_test_list_projects_status_filter"
+ "source": "tests_unit_validator_test_findings_py",
+ "target": "validator_test_findings_test_from_dict_accepts_minimal_payload"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/lims/test_cache.py",
+ "source_file": "tests/unit/validator/test_findings.py",
"source_location": "L135",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_lims_test_cache_py",
- "target": "lims_test_cache_test_is_fresh_true_when_within_ttl"
+ "source": "tests_unit_validator_test_findings_py",
+ "target": "validator_test_findings_test_from_dict_ignores_unknown_keys"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/lims/test_cache.py",
- "source_location": "L145",
+ "source_file": "tests/unit/validator/test_findings.py",
+ "source_location": "L149",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_lims_test_cache_py",
- "target": "lims_test_cache_test_is_fresh_false_when_stale"
+ "source": "tests_unit_validator_test_findings_py",
+ "target": "validator_test_findings_test_to_dict_preserves_none_matched_token"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/lims/test_cache.py",
- "source_location": "L156",
+ "source_file": "tests/unit/validator/test_findings.py",
+ "source_location": "L169",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_lims_test_cache_py",
- "target": "lims_test_cache_test_is_fresh_false_when_empty"
+ "source": "tests_unit_validator_test_findings_py",
+ "target": "validator_test_findings_test_finding_is_hashable"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/lims/test_cache.py",
- "source_location": "L165",
+ "source_file": "tests/unit/validator/test_findings.py",
+ "source_location": "L176",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_lims_test_cache_py",
- "target": "lims_test_cache_test_is_fresh_handles_zulu_suffix"
+ "source": "tests_unit_validator_test_findings_py",
+ "target": "validator_test_findings_test_findings_in_set_dedupe_by_value"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/lims/test_cache.py",
- "source_location": "L179",
+ "source_file": "tests/unit/validator/test_findings.py",
+ "source_location": "L184",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_lims_test_cache_py",
- "target": "lims_test_cache_test_is_fresh_ignores_invalid_timestamp"
+ "source": "tests_unit_validator_test_findings_py",
+ "target": "validator_test_findings_test_findings_in_set_distinguish_by_value"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/lims/test_cache.py",
- "source_location": "L192",
+ "source_file": "tests/unit/validator/test_findings.py",
+ "source_location": "L198",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_lims_test_cache_py",
- "target": "lims_test_cache_test_endpoint_isolates_rows"
+ "source": "tests_unit_validator_test_findings_py",
+ "target": "validator_test_findings_test_findings_can_be_sorted_by_to_dict_key"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/lims/test_cache.py",
+ "source_file": "tests/unit/validator/test_findings.py",
"source_location": "L206",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_lims_test_cache_py",
- "target": "lims_test_cache_test_require_conn_before_init_raises"
+ "source": "tests_unit_validator_test_findings_py",
+ "target": "validator_test_findings_test_findings_sort_by_tier_then_rule_then_path"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/lims/test_cache.py",
- "source_location": "L212",
+ "source_file": "tests/unit/validator/test_findings.py",
+ "source_location": "L224",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_lims_test_cache_py",
- "target": "lims_test_cache_test_close_is_idempotent"
+ "source": "tests_unit_validator_test_findings_py",
+ "target": "validator_test_findings_test_equality_with_same_field_values"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/lims/test_cache.py",
- "source_location": "L220",
+ "source_file": "tests/unit/validator/test_findings.py",
+ "source_location": "L230",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_lims_test_cache_py",
- "target": "lims_test_cache_test_is_fresh_handles_naive_timestamp"
+ "source": "tests_unit_validator_test_findings_py",
+ "target": "validator_test_findings_test_inequality_when_one_field_differs"
+ },
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/validator/test_findings.py",
+ "source_location": "L236",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "tests_unit_validator_test_findings_py",
+ "target": "validator_test_findings_test_finding_equality_is_not_identity"
+ },
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/validator/test_findings.py",
+ "source_location": "L243",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "tests_unit_validator_test_findings_py",
+ "target": "validator_test_findings_test_audit_mode_flags_round_trip"
},
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/lims/test_cache.py",
+ "source_file": "tests/unit/validator/test_findings.py",
"source_location": "L1",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "lims_test_cache_rationale_1",
- "target": "tests_unit_lims_test_cache_py"
+ "source": "validator_test_findings_rationale_1",
+ "target": "tests_unit_validator_test_findings_py"
},
{
"relation": "calls",
"context": "call",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/lims/test_cache.py",
- "source_location": "L51",
+ "source_file": "tests/unit/validator/test_findings.py",
+ "source_location": "L46",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "lims_test_cache_test_upsert_many_then_list",
- "target": "lims_test_cache_project"
+ "source": "validator_test_findings_test_finding_instantiation_with_all_fields",
+ "target": "validator_test_findings_make_finding"
},
{
"relation": "calls",
"context": "call",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/lims/test_cache.py",
- "source_location": "L74",
+ "source_file": "tests/unit/validator/test_findings.py",
+ "source_location": "L76",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "lims_test_cache_test_upsert_updates_existing_row",
- "target": "lims_test_cache_project"
+ "source": "validator_test_findings_test_finding_is_frozen",
+ "target": "validator_test_findings_make_finding"
+ },
+ {
+ "relation": "calls",
+ "context": "call",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/validator/test_findings.py",
+ "source_location": "L87",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "validator_test_findings_test_to_dict_contains_all_spec_keys",
+ "target": "validator_test_findings_make_finding"
+ },
+ {
+ "relation": "calls",
+ "context": "call",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/validator/test_findings.py",
+ "source_location": "L104",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "validator_test_findings_test_to_dict_values_match_field_values",
+ "target": "validator_test_findings_make_finding"
+ },
+ {
+ "relation": "calls",
+ "context": "call",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/validator/test_findings.py",
+ "source_location": "L114",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "validator_test_findings_test_to_dict_from_dict_round_trip_identity",
+ "target": "validator_test_findings_make_finding"
},
{
"relation": "calls",
"context": "call",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/lims/test_cache.py",
- "source_location": "L99",
+ "source_file": "tests/unit/validator/test_findings.py",
+ "source_location": "L170",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "validator_test_findings_test_finding_is_hashable",
+ "target": "validator_test_findings_make_finding"
+ },
+ {
+ "relation": "calls",
+ "context": "call",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/validator/test_findings.py",
+ "source_location": "L178",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "validator_test_findings_test_findings_in_set_dedupe_by_value",
+ "target": "validator_test_findings_make_finding"
+ },
+ {
+ "relation": "calls",
+ "context": "call",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/validator/test_findings.py",
+ "source_location": "L187",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "validator_test_findings_test_findings_in_set_distinguish_by_value",
+ "target": "validator_test_findings_make_finding"
+ },
+ {
+ "relation": "calls",
+ "context": "call",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/validator/test_findings.py",
+ "source_location": "L200",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "validator_test_findings_test_findings_can_be_sorted_by_to_dict_key",
+ "target": "validator_test_findings_make_finding"
+ },
+ {
+ "relation": "calls",
+ "context": "call",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/validator/test_findings.py",
+ "source_location": "L208",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "validator_test_findings_test_findings_sort_by_tier_then_rule_then_path",
+ "target": "validator_test_findings_make_finding"
+ },
+ {
+ "relation": "calls",
+ "context": "call",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/validator/test_findings.py",
+ "source_location": "L225",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "validator_test_findings_test_equality_with_same_field_values",
+ "target": "validator_test_findings_make_finding"
+ },
+ {
+ "relation": "calls",
+ "context": "call",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/validator/test_findings.py",
+ "source_location": "L231",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "validator_test_findings_test_inequality_when_one_field_differs",
+ "target": "validator_test_findings_make_finding"
+ },
+ {
+ "relation": "calls",
+ "context": "call",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/validator/test_findings.py",
+ "source_location": "L237",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "validator_test_findings_test_finding_equality_is_not_identity",
+ "target": "validator_test_findings_make_finding"
+ },
+ {
+ "relation": "calls",
+ "context": "call",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/validator/test_findings.py",
+ "source_location": "L247",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "validator_test_findings_test_audit_mode_flags_round_trip",
+ "target": "validator_test_findings_make_finding"
+ },
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/validator/test_findings.py",
+ "source_location": "L24",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "validator_test_findings_rationale_24",
+ "target": "validator_test_findings_make_finding"
+ },
+ {
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "src/exlab_wizard/validator/rules.py",
+ "source_location": "L381",
+ "weight": 1.0,
+ "source": "validator_rules_check_mode_prefix_mismatch",
+ "target": "validator_test_findings_make_finding"
+ },
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/validator/test_findings.py",
+ "source_location": "L59",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "validator_test_findings_rationale_59",
+ "target": "validator_test_findings_test_finding_minimum_required_fields"
+ },
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/validator/test_findings.py",
+ "source_location": "L75",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "lims_test_cache_test_get_project_by_uid_or_short_id",
- "target": "lims_test_cache_project"
+ "source": "validator_test_findings_rationale_75",
+ "target": "validator_test_findings_test_finding_is_frozen"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "rationale_for",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/lims/test_cache.py",
- "source_location": "L125",
+ "source_file": "tests/unit/validator/test_findings.py",
+ "source_location": "L120",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "lims_test_cache_test_list_projects_status_filter",
- "target": "lims_test_cache_project"
+ "source": "validator_test_findings_rationale_120",
+ "target": "validator_test_findings_test_from_dict_accepts_minimal_payload"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "rationale_for",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/lims/test_cache.py",
- "source_location": "L139",
+ "source_file": "tests/unit/validator/test_findings.py",
+ "source_location": "L136",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "lims_test_cache_test_is_fresh_true_when_within_ttl",
- "target": "lims_test_cache_project"
+ "source": "validator_test_findings_rationale_136",
+ "target": "validator_test_findings_test_from_dict_ignores_unknown_keys"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "rationale_for",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/lims/test_cache.py",
+ "source_file": "tests/unit/validator/test_findings.py",
"source_location": "L150",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "lims_test_cache_test_is_fresh_false_when_stale",
- "target": "lims_test_cache_project"
+ "source": "validator_test_findings_rationale_150",
+ "target": "validator_test_findings_test_to_dict_preserves_none_matched_token"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "rationale_for",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/lims/test_cache.py",
- "source_location": "L172",
+ "source_file": "tests/unit/validator/test_findings.py",
+ "source_location": "L177",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "lims_test_cache_test_is_fresh_handles_zulu_suffix",
- "target": "lims_test_cache_project"
+ "source": "validator_test_findings_rationale_177",
+ "target": "validator_test_findings_test_findings_in_set_dedupe_by_value"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "rationale_for",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/lims/test_cache.py",
+ "source_file": "tests/unit/validator/test_findings.py",
"source_location": "L185",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "lims_test_cache_test_is_fresh_ignores_invalid_timestamp",
- "target": "lims_test_cache_project"
+ "source": "validator_test_findings_rationale_185",
+ "target": "validator_test_findings_test_findings_in_set_distinguish_by_value"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "rationale_for",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/lims/test_cache.py",
- "source_location": "L196",
+ "source_file": "tests/unit/validator/test_findings.py",
+ "source_location": "L199",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "lims_test_cache_test_endpoint_isolates_rows",
- "target": "lims_test_cache_project"
+ "source": "validator_test_findings_rationale_199",
+ "target": "validator_test_findings_test_findings_can_be_sorted_by_to_dict_key"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "rationale_for",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/lims/test_cache.py",
- "source_location": "L227",
+ "source_file": "tests/unit/validator/test_findings.py",
+ "source_location": "L207",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "lims_test_cache_test_is_fresh_handles_naive_timestamp",
- "target": "lims_test_cache_project"
+ "source": "validator_test_findings_rationale_207",
+ "target": "validator_test_findings_test_findings_sort_by_tier_then_rule_then_path"
},
{
- "relation": "calls",
- "context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/lims/test_cache.py",
- "source_location": "L26",
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/validator/test_findings.py",
+ "source_location": "L244",
"weight": 1.0,
- "source": "lims_test_cache_project",
- "target": "lims_schemas_limsproject"
+ "confidence_score": 1.0,
+ "source": "validator_test_findings_rationale_244",
+ "target": "validator_test_findings_test_audit_mode_flags_round_trip"
},
{
- "relation": "calls",
- "context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/lims/test_cache.py",
- "source_location": "L40",
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/validator/__init__.py",
+ "source_location": "L1",
"weight": 1.0,
- "source": "lims_test_cache_test_init_creates_table_idempotent",
- "target": "lims_cache_limscache"
+ "confidence_score": 1.0,
+ "source": "validator_init_rationale_1",
+ "target": "tests_unit_validator_init_py"
},
{
- "relation": "calls",
- "context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/lims/test_cache.py",
- "source_location": "L48",
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "src/exlab_wizard/validator/__init__.py",
+ "source_location": "L1",
"weight": 1.0,
- "source": "lims_test_cache_test_upsert_many_then_list",
- "target": "lims_cache_limscache"
+ "confidence_score": 1.0,
+ "source": "validator_init_rationale_1",
+ "target": "src_exlab_wizard_validator_init_py"
},
{
- "relation": "calls",
- "context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/lims/test_cache.py",
- "source_location": "L60",
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/validator/test_rules.py",
+ "source_location": "L37",
"weight": 1.0,
- "source": "lims_test_cache_test_upsert_many_empty_is_noop",
- "target": "lims_cache_limscache"
+ "confidence_score": 1.0,
+ "source": "tests_unit_validator_test_rules_py",
+ "target": "validator_test_rules_test_angle_bracket_token_in_segment_fires"
},
{
- "relation": "calls",
- "context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/lims/test_cache.py",
- "source_location": "L71",
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/validator/test_rules.py",
+ "source_location": "L64",
"weight": 1.0,
- "source": "lims_test_cache_test_upsert_updates_existing_row",
- "target": "lims_cache_limscache"
+ "confidence_score": 1.0,
+ "source": "tests_unit_validator_test_rules_py",
+ "target": "validator_test_rules_test_non_token_angle_brackets_pass"
},
{
- "relation": "calls",
- "context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/lims/test_cache.py",
- "source_location": "L77",
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/validator/test_rules.py",
+ "source_location": "L75",
"weight": 1.0,
- "source": "lims_test_cache_test_upsert_updates_existing_row",
- "target": "lims_schemas_limsproject"
+ "confidence_score": 1.0,
+ "source": "tests_unit_validator_test_rules_py",
+ "target": "validator_test_rules_test_jinja_var_marker_in_filename_fires"
},
{
- "relation": "calls",
- "context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/lims/test_cache.py",
- "source_location": "L96",
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/validator/test_rules.py",
+ "source_location": "L88",
"weight": 1.0,
- "source": "lims_test_cache_test_get_project_by_uid_or_short_id",
- "target": "lims_cache_limscache"
+ "confidence_score": 1.0,
+ "source": "tests_unit_validator_test_rules_py",
+ "target": "validator_test_rules_test_jinja_block_marker_in_content_fires"
},
{
- "relation": "calls",
- "context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/lims/test_cache.py",
- "source_location": "L109",
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/validator/test_rules.py",
+ "source_location": "L101",
"weight": 1.0,
- "source": "lims_test_cache_test_get_project_missing_returns_none",
- "target": "lims_cache_limscache"
+ "confidence_score": 1.0,
+ "source": "tests_unit_validator_test_rules_py",
+ "target": "validator_test_rules_test_unresolved_placeholder_in_content_fires"
},
{
- "relation": "calls",
- "context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/lims/test_cache.py",
- "source_location": "L119",
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/validator/test_rules.py",
+ "source_location": "L110",
"weight": 1.0,
- "source": "lims_test_cache_test_list_projects_status_filter",
- "target": "lims_cache_limscache"
+ "confidence_score": 1.0,
+ "source": "tests_unit_validator_test_rules_py",
+ "target": "validator_test_rules_test_no_findings_on_clean_inputs"
},
{
- "relation": "calls",
- "context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/lims/test_cache.py",
- "source_location": "L136",
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/validator/test_rules.py",
+ "source_location": "L119",
"weight": 1.0,
- "source": "lims_test_cache_test_is_fresh_true_when_within_ttl",
- "target": "lims_cache_limscache"
+ "confidence_score": 1.0,
+ "source": "tests_unit_validator_test_rules_py",
+ "target": "validator_test_rules_test_large_text_file_skipped_from_content_scan"
},
{
- "relation": "calls",
- "context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/lims/test_cache.py",
- "source_location": "L146",
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/validator/test_rules.py",
+ "source_location": "L131",
"weight": 1.0,
- "source": "lims_test_cache_test_is_fresh_false_when_stale",
- "target": "lims_cache_limscache"
+ "confidence_score": 1.0,
+ "source": "tests_unit_validator_test_rules_py",
+ "target": "validator_test_rules_test_under_size_cap_content_is_scanned"
},
{
- "relation": "calls",
- "context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/lims/test_cache.py",
- "source_location": "L157",
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/validator/test_rules.py",
+ "source_location": "L142",
"weight": 1.0,
- "source": "lims_test_cache_test_is_fresh_false_when_empty",
- "target": "lims_cache_limscache"
+ "confidence_score": 1.0,
+ "source": "tests_unit_validator_test_rules_py",
+ "target": "validator_test_rules_test_multiple_matches_in_same_input_each_yield_finding"
},
{
- "relation": "calls",
- "context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/lims/test_cache.py",
- "source_location": "L166",
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/validator/test_rules.py",
+ "source_location": "L152",
"weight": 1.0,
- "source": "lims_test_cache_test_is_fresh_handles_zulu_suffix",
- "target": "lims_cache_limscache"
+ "confidence_score": 1.0,
+ "source": "tests_unit_validator_test_rules_py",
+ "target": "validator_test_rules_test_empty_file_contents_dict_is_path_only_scan"
},
{
- "relation": "calls",
- "context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/lims/test_cache.py",
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/validator/test_rules.py",
"source_location": "L180",
"weight": 1.0,
- "source": "lims_test_cache_test_is_fresh_ignores_invalid_timestamp",
- "target": "lims_cache_limscache"
- },
- {
- "relation": "calls",
- "context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/lims/test_cache.py",
- "source_location": "L193",
- "weight": 1.0,
- "source": "lims_test_cache_test_endpoint_isolates_rows",
- "target": "lims_cache_limscache"
- },
- {
- "relation": "calls",
- "context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/lims/test_cache.py",
- "source_location": "L207",
- "weight": 1.0,
- "source": "lims_test_cache_test_require_conn_before_init_raises",
- "target": "lims_cache_limscache"
- },
- {
- "relation": "calls",
- "context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/lims/test_cache.py",
- "source_location": "L213",
- "weight": 1.0,
- "source": "lims_test_cache_test_close_is_idempotent",
- "target": "lims_cache_limscache"
+ "confidence_score": 1.0,
+ "source": "tests_unit_validator_test_rules_py",
+ "target": "validator_test_rules_test_windows_illegal_char_in_segment_fires"
},
{
- "relation": "rationale_for",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/lims/test_cache.py",
- "source_location": "L221",
+ "source_file": "tests/unit/validator/test_rules.py",
+ "source_location": "L191",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "lims_test_cache_rationale_221",
- "target": "lims_test_cache_test_is_fresh_handles_naive_timestamp"
+ "source": "tests_unit_validator_test_rules_py",
+ "target": "validator_test_rules_test_nul_byte_in_name_fires"
},
{
- "relation": "calls",
- "context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/lims/test_cache.py",
- "source_location": "L222",
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/validator/test_rules.py",
+ "source_location": "L200",
"weight": 1.0,
- "source": "lims_test_cache_test_is_fresh_handles_naive_timestamp",
- "target": "lims_cache_limscache"
+ "confidence_score": 1.0,
+ "source": "tests_unit_validator_test_rules_py",
+ "target": "validator_test_rules_test_low_ascii_control_char_fires"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/validator/test_engine_creation.py",
- "source_location": "L38",
+ "source_file": "tests/unit/validator/test_rules.py",
+ "source_location": "L210",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_validator_test_engine_creation_py",
- "target": "validator_test_engine_creation_clean_input"
+ "source": "tests_unit_validator_test_rules_py",
+ "target": "validator_test_rules_test_trailing_dot_fires"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/validator/test_engine_creation.py",
- "source_location": "L85",
+ "source_file": "tests/unit/validator/test_rules.py",
+ "source_location": "L218",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_validator_test_engine_creation_py",
- "target": "validator_test_engine_creation_test_split_path_segments_posix_path"
+ "source": "tests_unit_validator_test_rules_py",
+ "target": "validator_test_rules_test_trailing_space_fires"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/validator/test_engine_creation.py",
- "source_location": "L90",
+ "source_file": "tests/unit/validator/test_rules.py",
+ "source_location": "L237",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_validator_test_engine_creation_py",
- "target": "validator_test_engine_creation_test_split_path_segments_windows_path"
+ "source": "tests_unit_validator_test_rules_py",
+ "target": "validator_test_rules_test_normal_names_pass"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/validator/test_engine_creation.py",
- "source_location": "L96",
+ "source_file": "tests/unit/validator/test_rules.py",
+ "source_location": "L245",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_validator_test_engine_creation_py",
- "target": "validator_test_engine_creation_test_split_path_segments_empty_string"
+ "source": "tests_unit_validator_test_rules_py",
+ "target": "validator_test_rules_test_findings_have_hard_tier"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/validator/test_engine_creation.py",
- "source_location": "L100",
+ "source_file": "tests/unit/validator/test_rules.py",
+ "source_location": "L276",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_validator_test_engine_creation_py",
- "target": "validator_test_engine_creation_test_split_path_segments_drops_trailing_slash"
+ "source": "tests_unit_validator_test_rules_py",
+ "target": "validator_test_rules_test_reserved_name_fires"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/validator/test_engine_creation.py",
- "source_location": "L110",
+ "source_file": "tests/unit/validator/test_rules.py",
+ "source_location": "L297",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_validator_test_engine_creation_py",
- "target": "validator_test_engine_creation_test_validator_default_config_uses_spec_defaults"
+ "source": "tests_unit_validator_test_rules_py",
+ "target": "validator_test_rules_test_non_reserved_name_passes"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/validator/test_engine_creation.py",
- "source_location": "L119",
+ "source_file": "tests/unit/validator/test_rules.py",
+ "source_location": "L320",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_validator_test_engine_creation_py",
- "target": "validator_test_engine_creation_test_validator_accepts_explicit_config"
+ "source": "tests_unit_validator_test_rules_py",
+ "target": "validator_test_rules_test_unsafe_project_name_fires"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/validator/test_engine_creation.py",
- "source_location": "L131",
+ "source_file": "tests/unit/validator/test_rules.py",
+ "source_location": "L340",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_validator_test_engine_creation_py",
- "target": "validator_test_engine_creation_test_clean_input_returns_empty_list"
+ "source": "tests_unit_validator_test_rules_py",
+ "target": "validator_test_rules_test_safe_project_name_passes"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/validator/test_engine_creation.py",
- "source_location": "L136",
+ "source_file": "tests/unit/validator/test_rules.py",
+ "source_location": "L349",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_validator_test_engine_creation_py",
- "target": "validator_test_engine_creation_test_clean_input_with_test_run_returns_empty_list"
+ "source": "tests_unit_validator_test_rules_py",
+ "target": "validator_test_rules_test_experimental_with_run_prefix_under_runs_parent_passes"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/validator/test_engine_creation.py",
- "source_location": "L152",
+ "source_file": "tests/unit/validator/test_rules.py",
+ "source_location": "L359",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_validator_test_engine_creation_py",
- "target": "validator_test_engine_creation_test_unresolved_placeholder_in_path_segment_triggers_finding"
+ "source": "tests_unit_validator_test_rules_py",
+ "target": "validator_test_rules_test_experimental_with_run_prefix_at_project_level_fires"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/validator/test_engine_creation.py",
- "source_location": "L167",
+ "source_file": "tests/unit/validator/test_rules.py",
+ "source_location": "L372",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_validator_test_engine_creation_py",
- "target": "validator_test_engine_creation_test_unresolved_placeholder_in_file_name_triggers_finding"
+ "source": "tests_unit_validator_test_rules_py",
+ "target": "validator_test_rules_test_experimental_with_test_run_prefix_fires"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/validator/test_engine_creation.py",
- "source_location": "L183",
+ "source_file": "tests/unit/validator/test_rules.py",
+ "source_location": "L382",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_validator_test_engine_creation_py",
- "target": "validator_test_engine_creation_test_leftover_jinja_marker_in_file_content_triggers_finding"
+ "source": "tests_unit_validator_test_rules_py",
+ "target": "validator_test_rules_test_experimental_under_test_runs_parent_fires"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/validator/test_engine_creation.py",
- "source_location": "L195",
+ "source_file": "tests/unit/validator/test_rules.py",
+ "source_location": "L391",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_validator_test_engine_creation_py",
- "target": "validator_test_engine_creation_test_illegal_filesystem_character_in_file_name_triggers_finding"
+ "source": "tests_unit_validator_test_rules_py",
+ "target": "validator_test_rules_test_test_with_test_run_prefix_under_test_runs_passes"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/validator/test_engine_creation.py",
- "source_location": "L211",
+ "source_file": "tests/unit/validator/test_rules.py",
+ "source_location": "L400",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_validator_test_engine_creation_py",
- "target": "validator_test_engine_creation_test_reserved_filesystem_name_triggers_finding"
+ "source": "tests_unit_validator_test_rules_py",
+ "target": "validator_test_rules_test_test_with_run_prefix_fires"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/validator/test_engine_creation.py",
- "source_location": "L225",
+ "source_file": "tests/unit/validator/test_rules.py",
+ "source_location": "L409",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_validator_test_engine_creation_py",
- "target": "validator_test_engine_creation_test_run_leaf_with_test_run_kind_triggers_mode_prefix_mismatch"
+ "source": "tests_unit_validator_test_rules_py",
+ "target": "validator_test_rules_test_test_with_test_run_prefix_but_wrong_parent_fires"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/validator/test_engine_creation.py",
- "source_location": "L238",
+ "source_file": "tests/unit/validator/test_rules.py",
+ "source_location": "L418",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_validator_test_engine_creation_py",
- "target": "validator_test_engine_creation_test_test_run_leaf_with_experimental_run_kind_triggers_mode_prefix_mismatch"
+ "source": "tests_unit_validator_test_rules_py",
+ "target": "validator_test_rules_test_run_kind_none_returns_no_findings"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/validator/test_engine_creation.py",
- "source_location": "L254",
+ "source_file": "tests/unit/validator/test_rules.py",
+ "source_location": "L432",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_validator_test_engine_creation_py",
- "target": "validator_test_engine_creation_test_missing_required_field_triggers_soft_tier_finding"
+ "source": "tests_unit_validator_test_rules_py",
+ "target": "validator_test_rules_test_project_without_creation_json_fires"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/validator/test_engine_creation.py",
- "source_location": "L272",
+ "source_file": "tests/unit/validator/test_rules.py",
+ "source_location": "L439",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_validator_test_engine_creation_py",
- "target": "validator_test_engine_creation_test_required_field_present_does_not_trigger_finding"
+ "source": "tests_unit_validator_test_rules_py",
+ "target": "validator_test_rules_test_run_without_creation_json_fires"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/validator/test_engine_creation.py",
- "source_location": "L288",
+ "source_file": "tests/unit/validator/test_rules.py",
+ "source_location": "L445",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_validator_test_engine_creation_py",
- "target": "validator_test_engine_creation_test_malformed_yaml_front_matter_triggers_soft_tier_finding"
+ "source": "tests_unit_validator_test_rules_py",
+ "target": "validator_test_rules_test_equipment_without_creation_json_does_not_fire"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/validator/test_engine_creation.py",
- "source_location": "L304",
+ "source_file": "tests/unit/validator/test_rules.py",
+ "source_location": "L450",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_validator_test_engine_creation_py",
- "target": "validator_test_engine_creation_test_no_readme_md_skips_front_matter_rule"
+ "source": "tests_unit_validator_test_rules_py",
+ "target": "validator_test_rules_test_project_with_creation_json_passes"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/validator/test_engine_creation.py",
- "source_location": "L320",
+ "source_file": "tests/unit/validator/test_rules.py",
+ "source_location": "L455",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_validator_test_engine_creation_py",
- "target": "validator_test_engine_creation_test_multiple_findings_aggregate_in_one_call"
+ "source": "tests_unit_validator_test_rules_py",
+ "target": "validator_test_rules_test_run_with_creation_json_passes"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/validator/test_engine_creation.py",
- "source_location": "L342",
+ "source_file": "tests/unit/validator/test_rules.py",
+ "source_location": "L465",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_validator_test_engine_creation_py",
- "target": "validator_test_engine_creation_test_findings_are_sorted_with_hard_tier_first"
+ "source": "tests_unit_validator_test_rules_py",
+ "target": "validator_test_rules_test_missing_id_fires"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/validator/test_engine_creation.py",
- "source_location": "L366",
+ "source_file": "tests/unit/validator/test_rules.py",
+ "source_location": "L479",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_validator_test_engine_creation_py",
- "target": "validator_test_engine_creation_test_findings_sorted_lexicographically_within_same_tier"
+ "source": "tests_unit_validator_test_rules_py",
+ "target": "validator_test_rules_test_empty_string_value_fires"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/validator/test_engine_creation.py",
- "source_location": "L386",
+ "source_file": "tests/unit/validator/test_rules.py",
+ "source_location": "L492",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_validator_test_engine_creation_py",
- "target": "validator_test_engine_creation_test_findings_carry_run_path_from_proposed_path"
+ "source": "tests_unit_validator_test_rules_py",
+ "target": "validator_test_rules_test_present_id_with_non_empty_value_passes"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/validator/test_engine_creation.py",
- "source_location": "L395",
+ "source_file": "tests/unit/validator/test_rules.py",
+ "source_location": "L504",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_validator_test_engine_creation_py",
- "target": "validator_test_engine_creation_test_findings_default_audit_flags_to_false"
+ "source": "tests_unit_validator_test_rules_py",
+ "target": "validator_test_rules_test_field_present_in_template_fields_layer_passes"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/validator/test_engine_creation.py",
- "source_location": "L408",
+ "source_file": "tests/unit/validator/test_rules.py",
+ "source_location": "L516",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_validator_test_engine_creation_py",
- "target": "validator_test_engine_creation_test_findings_are_finding_instances"
+ "source": "tests_unit_validator_test_rules_py",
+ "target": "validator_test_rules_test_none_readme_fields_treats_all_required_as_missing"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/validator/test_engine_creation.py",
- "source_location": "L424",
+ "source_file": "tests/unit/validator/test_rules.py",
+ "source_location": "L524",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_validator_test_engine_creation_py",
- "target": "validator_test_engine_creation_test_creation_validation_input_is_frozen"
+ "source": "tests_unit_validator_test_rules_py",
+ "target": "validator_test_rules_test_value_explicit_none_fires"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/validator/test_engine_creation.py",
- "source_location": "L431",
+ "source_file": "tests/unit/validator/test_rules.py",
+ "source_location": "L541",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_validator_test_engine_creation_py",
- "target": "validator_test_engine_creation_test_creation_validation_input_defaults"
+ "source": "tests_unit_validator_test_rules_py",
+ "target": "validator_test_rules_test_well_formed_front_matter_passes"
},
{
- "relation": "rationale_for",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/validator/test_engine_creation.py",
- "source_location": "L1",
+ "source_file": "tests/unit/validator/test_rules.py",
+ "source_location": "L546",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "validator_test_engine_creation_rationale_1",
- "target": "tests_unit_validator_test_engine_creation_py"
+ "source": "tests_unit_validator_test_rules_py",
+ "target": "validator_test_rules_test_unterminated_front_matter_fires"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/validator/test_engine_creation.py",
- "source_location": "L132",
+ "source_file": "tests/unit/validator/test_rules.py",
+ "source_location": "L554",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "validator_test_engine_creation_test_clean_input_returns_empty_list",
- "target": "validator_test_engine_creation_clean_input"
+ "source": "tests_unit_validator_test_rules_py",
+ "target": "validator_test_rules_test_malformed_yaml_in_block_fires"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/validator/test_engine_creation.py",
- "source_location": "L139",
+ "source_file": "tests/unit/validator/test_rules.py",
+ "source_location": "L562",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "validator_test_engine_creation_test_clean_input_with_test_run_returns_empty_list",
- "target": "validator_test_engine_creation_clean_input"
+ "source": "tests_unit_validator_test_rules_py",
+ "target": "validator_test_rules_test_no_front_matter_passes"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/validator/test_engine_creation.py",
- "source_location": "L155",
+ "source_file": "tests/unit/validator/test_rules.py",
+ "source_location": "L567",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "validator_test_engine_creation_test_unresolved_placeholder_in_path_segment_triggers_finding",
- "target": "validator_test_engine_creation_clean_input"
+ "source": "tests_unit_validator_test_rules_py",
+ "target": "validator_test_rules_test_empty_content_passes"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/validator/test_engine_creation.py",
- "source_location": "L169",
+ "source_file": "tests/unit/validator/test_rules.py",
+ "source_location": "L571",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "validator_test_engine_creation_test_unresolved_placeholder_in_file_name_triggers_finding",
- "target": "validator_test_engine_creation_clean_input"
+ "source": "tests_unit_validator_test_rules_py",
+ "target": "validator_test_rules_test_front_matter_with_nested_yaml_passes"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "rationale_for",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/validator/test_engine_creation.py",
- "source_location": "L185",
+ "source_file": "tests/unit/validator/test_rules.py",
+ "source_location": "L1",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "validator_test_engine_creation_test_leftover_jinja_marker_in_file_content_triggers_finding",
- "target": "validator_test_engine_creation_clean_input"
+ "source": "validator_test_rules_rationale_1",
+ "target": "tests_unit_validator_test_rules_py"
},
{
"relation": "calls",
"context": "call",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/validator/test_engine_creation.py",
- "source_location": "L198",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/validator/test_rules.py",
+ "source_location": "L38",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "validator_test_engine_creation_test_illegal_filesystem_character_in_file_name_triggers_finding",
- "target": "validator_test_engine_creation_clean_input"
+ "source": "validator_test_rules_test_angle_bracket_token_in_segment_fires",
+ "target": "validator_rules_check_unresolved_placeholder"
},
{
"relation": "calls",
"context": "call",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/validator/test_engine_creation.py",
- "source_location": "L214",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/validator/test_rules.py",
+ "source_location": "L65",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "validator_test_engine_creation_test_reserved_filesystem_name_triggers_finding",
- "target": "validator_test_engine_creation_clean_input"
+ "source": "validator_test_rules_test_non_token_angle_brackets_pass",
+ "target": "validator_rules_check_unresolved_placeholder"
},
{
"relation": "calls",
"context": "call",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/validator/test_engine_creation.py",
- "source_location": "L228",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/validator/test_rules.py",
+ "source_location": "L76",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "validator_test_engine_creation_test_run_leaf_with_test_run_kind_triggers_mode_prefix_mismatch",
- "target": "validator_test_engine_creation_clean_input"
+ "source": "validator_test_rules_test_jinja_var_marker_in_filename_fires",
+ "target": "validator_rules_check_unresolved_placeholder"
},
{
"relation": "calls",
"context": "call",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/validator/test_engine_creation.py",
- "source_location": "L241",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/validator/test_rules.py",
+ "source_location": "L89",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "validator_test_engine_creation_test_test_run_leaf_with_experimental_run_kind_triggers_mode_prefix_mismatch",
- "target": "validator_test_engine_creation_clean_input"
+ "source": "validator_test_rules_test_jinja_block_marker_in_content_fires",
+ "target": "validator_rules_check_unresolved_placeholder"
},
{
"relation": "calls",
"context": "call",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/validator/test_engine_creation.py",
- "source_location": "L257",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/validator/test_rules.py",
+ "source_location": "L102",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "validator_test_engine_creation_test_missing_required_field_triggers_soft_tier_finding",
- "target": "validator_test_engine_creation_clean_input"
+ "source": "validator_test_rules_test_unresolved_placeholder_in_content_fires",
+ "target": "validator_rules_check_unresolved_placeholder"
},
{
"relation": "calls",
"context": "call",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/validator/test_engine_creation.py",
- "source_location": "L275",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/validator/test_rules.py",
+ "source_location": "L111",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "validator_test_engine_creation_test_required_field_present_does_not_trigger_finding",
- "target": "validator_test_engine_creation_clean_input"
+ "source": "validator_test_rules_test_no_findings_on_clean_inputs",
+ "target": "validator_rules_check_unresolved_placeholder"
},
{
"relation": "calls",
"context": "call",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/validator/test_engine_creation.py",
- "source_location": "L291",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/validator/test_rules.py",
+ "source_location": "L123",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "validator_test_engine_creation_test_malformed_yaml_front_matter_triggers_soft_tier_finding",
- "target": "validator_test_engine_creation_clean_input"
+ "source": "validator_test_rules_test_large_text_file_skipped_from_content_scan",
+ "target": "validator_rules_check_unresolved_placeholder"
},
{
"relation": "calls",
"context": "call",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/validator/test_engine_creation.py",
- "source_location": "L307",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/validator/test_rules.py",
+ "source_location": "L134",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "validator_test_engine_creation_test_no_readme_md_skips_front_matter_rule",
- "target": "validator_test_engine_creation_clean_input"
+ "source": "validator_test_rules_test_under_size_cap_content_is_scanned",
+ "target": "validator_rules_check_unresolved_placeholder"
},
{
"relation": "calls",
"context": "call",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/validator/test_engine_creation.py",
- "source_location": "L323",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/validator/test_rules.py",
+ "source_location": "L143",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "validator_test_engine_creation_test_multiple_findings_aggregate_in_one_call",
- "target": "validator_test_engine_creation_clean_input"
+ "source": "validator_test_rules_test_multiple_matches_in_same_input_each_yield_finding",
+ "target": "validator_rules_check_unresolved_placeholder"
},
{
"relation": "calls",
"context": "call",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/validator/test_engine_creation.py",
- "source_location": "L345",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/validator/test_rules.py",
+ "source_location": "L153",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "validator_test_engine_creation_test_findings_are_sorted_with_hard_tier_first",
- "target": "validator_test_engine_creation_clean_input"
+ "source": "validator_test_rules_test_empty_file_contents_dict_is_path_only_scan",
+ "target": "validator_rules_check_unresolved_placeholder"
},
{
"relation": "calls",
"context": "call",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/validator/test_engine_creation.py",
- "source_location": "L369",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/validator/test_rules.py",
+ "source_location": "L181",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "validator_test_engine_creation_test_findings_sorted_lexicographically_within_same_tier",
- "target": "validator_test_engine_creation_clean_input"
+ "source": "validator_test_rules_test_windows_illegal_char_in_segment_fires",
+ "target": "validator_rules_check_illegal_filesystem_character"
},
{
"relation": "calls",
"context": "call",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/validator/test_engine_creation.py",
- "source_location": "L389",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/validator/test_rules.py",
+ "source_location": "L193",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "validator_test_engine_creation_test_findings_carry_run_path_from_proposed_path",
- "target": "validator_test_engine_creation_clean_input"
+ "source": "validator_test_rules_test_nul_byte_in_name_fires",
+ "target": "validator_rules_check_illegal_filesystem_character"
},
{
"relation": "calls",
"context": "call",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/validator/test_engine_creation.py",
- "source_location": "L398",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/validator/test_rules.py",
+ "source_location": "L203",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "validator_test_engine_creation_test_findings_default_audit_flags_to_false",
- "target": "validator_test_engine_creation_clean_input"
+ "source": "validator_test_rules_test_low_ascii_control_char_fires",
+ "target": "validator_rules_check_illegal_filesystem_character"
},
{
"relation": "calls",
"context": "call",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/validator/test_engine_creation.py",
- "source_location": "L411",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/validator/test_rules.py",
+ "source_location": "L211",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "validator_test_engine_creation_test_findings_are_finding_instances",
- "target": "validator_test_engine_creation_clean_input"
+ "source": "validator_test_rules_test_trailing_dot_fires",
+ "target": "validator_rules_check_illegal_filesystem_character"
},
{
"relation": "calls",
"context": "call",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/validator/test_engine_creation.py",
- "source_location": "L426",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/validator/test_rules.py",
+ "source_location": "L219",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "validator_test_engine_creation_test_creation_validation_input_is_frozen",
- "target": "validator_test_engine_creation_clean_input"
+ "source": "validator_test_rules_test_trailing_space_fires",
+ "target": "validator_rules_check_illegal_filesystem_character"
},
{
- "relation": "rationale_for",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/validator/test_engine_creation.py",
- "source_location": "L39",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/validator/test_rules.py",
+ "source_location": "L238",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "validator_test_engine_creation_rationale_39",
- "target": "validator_test_engine_creation_clean_input"
+ "source": "validator_test_rules_test_normal_names_pass",
+ "target": "validator_rules_check_illegal_filesystem_character"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "tests/unit/validator/test_engine_creation.py",
- "source_location": "L77",
+ "source_file": "tests/unit/validator/test_rules.py",
+ "source_location": "L246",
"weight": 1.0,
- "source": "validator_test_engine_creation_clean_input",
- "target": "validator_engine_creationvalidationinput"
+ "source": "validator_test_rules_test_findings_have_hard_tier",
+ "target": "validator_rules_check_illegal_filesystem_character"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "tests/unit/validator/test_engine_creation.py",
- "source_location": "L86",
+ "source_file": "tests/unit/validator/test_rules.py",
+ "source_location": "L277",
"weight": 1.0,
- "source": "validator_test_engine_creation_test_split_path_segments_posix_path",
- "target": "validator_engine_split_path_segments"
+ "source": "validator_test_rules_test_reserved_name_fires",
+ "target": "validator_rules_check_reserved_filesystem_name"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "tests/unit/validator/test_engine_creation.py",
- "source_location": "L91",
+ "source_file": "tests/unit/validator/test_rules.py",
+ "source_location": "L298",
"weight": 1.0,
- "source": "validator_test_engine_creation_test_split_path_segments_windows_path",
- "target": "validator_engine_split_path_segments"
+ "source": "validator_test_rules_test_non_reserved_name_passes",
+ "target": "validator_rules_check_reserved_filesystem_name"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "tests/unit/validator/test_engine_creation.py",
- "source_location": "L97",
+ "source_file": "tests/unit/validator/test_rules.py",
+ "source_location": "L321",
"weight": 1.0,
- "source": "validator_test_engine_creation_test_split_path_segments_empty_string",
- "target": "validator_engine_split_path_segments"
+ "source": "validator_test_rules_test_unsafe_project_name_fires",
+ "target": "validator_rules_check_unsafe_project_name"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "tests/unit/validator/test_engine_creation.py",
- "source_location": "L101",
+ "source_file": "tests/unit/validator/test_rules.py",
+ "source_location": "L341",
"weight": 1.0,
- "source": "validator_test_engine_creation_test_split_path_segments_drops_trailing_slash",
- "target": "validator_engine_split_path_segments"
+ "source": "validator_test_rules_test_safe_project_name_passes",
+ "target": "validator_rules_check_unsafe_project_name"
},
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/validator/test_engine_creation.py",
- "source_location": "L111",
+ "source_file": "tests/unit/validator/test_rules.py",
+ "source_location": "L350",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "validator_test_engine_creation_rationale_111",
- "target": "validator_test_engine_creation_test_validator_default_config_uses_spec_defaults"
+ "source": "validator_test_rules_rationale_350",
+ "target": "validator_test_rules_test_experimental_with_run_prefix_under_runs_parent_passes"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "tests/unit/validator/test_engine_creation.py",
- "source_location": "L120",
+ "source_file": "tests/unit/validator/test_rules.py",
+ "source_location": "L351",
"weight": 1.0,
- "source": "validator_test_engine_creation_test_validator_accepts_explicit_config",
- "target": "config_models_validatorconfig"
+ "source": "validator_test_rules_test_experimental_with_run_prefix_under_runs_parent_passes",
+ "target": "validator_rules_check_mode_prefix_mismatch"
},
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/validator/test_engine_creation.py",
- "source_location": "L137",
+ "source_file": "tests/unit/validator/test_rules.py",
+ "source_location": "L360",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "validator_test_engine_creation_rationale_137",
- "target": "validator_test_engine_creation_test_clean_input_with_test_run_returns_empty_list"
+ "source": "validator_test_rules_rationale_360",
+ "target": "validator_test_rules_test_experimental_with_run_prefix_at_project_level_fires"
},
{
- "relation": "rationale_for",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/validator/test_engine_creation.py",
- "source_location": "L153",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/validator/test_rules.py",
+ "source_location": "L362",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "validator_test_engine_creation_rationale_153",
- "target": "validator_test_engine_creation_test_unresolved_placeholder_in_path_segment_triggers_finding"
+ "source": "validator_test_rules_test_experimental_with_run_prefix_at_project_level_fires",
+ "target": "validator_rules_check_mode_prefix_mismatch"
},
{
- "relation": "rationale_for",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/validator/test_engine_creation.py",
- "source_location": "L196",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/validator/test_rules.py",
+ "source_location": "L373",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "validator_test_engine_creation_rationale_196",
- "target": "validator_test_engine_creation_test_illegal_filesystem_character_in_file_name_triggers_finding"
+ "source": "validator_test_rules_test_experimental_with_test_run_prefix_fires",
+ "target": "validator_rules_check_mode_prefix_mismatch"
},
{
- "relation": "rationale_for",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/validator/test_engine_creation.py",
- "source_location": "L212",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/validator/test_rules.py",
+ "source_location": "L383",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "validator_test_engine_creation_rationale_212",
- "target": "validator_test_engine_creation_test_reserved_filesystem_name_triggers_finding"
+ "source": "validator_test_rules_test_experimental_under_test_runs_parent_fires",
+ "target": "validator_rules_check_mode_prefix_mismatch"
},
{
- "relation": "rationale_for",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/validator/test_engine_creation.py",
- "source_location": "L226",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/validator/test_rules.py",
+ "source_location": "L392",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "validator_test_engine_creation_rationale_226",
- "target": "validator_test_engine_creation_test_run_leaf_with_test_run_kind_triggers_mode_prefix_mismatch"
+ "source": "validator_test_rules_test_test_with_test_run_prefix_under_test_runs_passes",
+ "target": "validator_rules_check_mode_prefix_mismatch"
},
{
- "relation": "rationale_for",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/validator/test_engine_creation.py",
- "source_location": "L239",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/validator/test_rules.py",
+ "source_location": "L401",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "validator_test_engine_creation_rationale_239",
- "target": "validator_test_engine_creation_test_test_run_leaf_with_experimental_run_kind_triggers_mode_prefix_mismatch"
+ "source": "validator_test_rules_test_test_with_run_prefix_fires",
+ "target": "validator_rules_check_mode_prefix_mismatch"
},
{
- "relation": "rationale_for",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/validator/test_engine_creation.py",
- "source_location": "L255",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/validator/test_rules.py",
+ "source_location": "L410",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "validator_test_engine_creation_rationale_255",
- "target": "validator_test_engine_creation_test_missing_required_field_triggers_soft_tier_finding"
+ "source": "validator_test_rules_test_test_with_test_run_prefix_but_wrong_parent_fires",
+ "target": "validator_rules_check_mode_prefix_mismatch"
},
{
- "relation": "rationale_for",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/validator/test_engine_creation.py",
- "source_location": "L273",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/validator/test_rules.py",
+ "source_location": "L419",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "validator_test_engine_creation_rationale_273",
- "target": "validator_test_engine_creation_test_required_field_present_does_not_trigger_finding"
+ "source": "validator_test_rules_test_run_kind_none_returns_no_findings",
+ "target": "validator_rules_check_mode_prefix_mismatch"
},
{
- "relation": "rationale_for",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/validator/test_engine_creation.py",
- "source_location": "L289",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/validator/test_rules.py",
+ "source_location": "L433",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "validator_test_engine_creation_rationale_289",
- "target": "validator_test_engine_creation_test_malformed_yaml_front_matter_triggers_soft_tier_finding"
+ "source": "validator_test_rules_test_project_without_creation_json_fires",
+ "target": "validator_rules_check_orphan"
+ },
+ {
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/validator/test_rules.py",
+ "source_location": "L440",
+ "weight": 1.0,
+ "source": "validator_test_rules_test_run_without_creation_json_fires",
+ "target": "validator_rules_check_orphan"
},
{
- "relation": "rationale_for",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/validator/test_engine_creation.py",
- "source_location": "L305",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/validator/test_rules.py",
+ "source_location": "L446",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "validator_test_engine_creation_rationale_305",
- "target": "validator_test_engine_creation_test_no_readme_md_skips_front_matter_rule"
+ "source": "validator_test_rules_test_equipment_without_creation_json_does_not_fire",
+ "target": "validator_rules_check_orphan"
},
{
- "relation": "rationale_for",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/validator/test_engine_creation.py",
- "source_location": "L321",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/validator/test_rules.py",
+ "source_location": "L451",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "validator_test_engine_creation_rationale_321",
- "target": "validator_test_engine_creation_test_multiple_findings_aggregate_in_one_call"
+ "source": "validator_test_rules_test_project_with_creation_json_passes",
+ "target": "validator_rules_check_orphan"
},
{
- "relation": "rationale_for",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/validator/test_engine_creation.py",
- "source_location": "L343",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/validator/test_rules.py",
+ "source_location": "L456",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "validator_test_engine_creation_rationale_343",
- "target": "validator_test_engine_creation_test_findings_are_sorted_with_hard_tier_first"
+ "source": "validator_test_rules_test_run_with_creation_json_passes",
+ "target": "validator_rules_check_orphan"
},
{
- "relation": "rationale_for",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/validator/test_engine_creation.py",
- "source_location": "L367",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/validator/test_rules.py",
+ "source_location": "L466",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "validator_test_engine_creation_rationale_367",
- "target": "validator_test_engine_creation_test_findings_sorted_lexicographically_within_same_tier"
+ "source": "validator_test_rules_test_missing_id_fires",
+ "target": "validator_rules_check_missing_required_field"
},
{
- "relation": "rationale_for",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/validator/test_engine_creation.py",
- "source_location": "L387",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/validator/test_rules.py",
+ "source_location": "L480",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "validator_test_engine_creation_rationale_387",
- "target": "validator_test_engine_creation_test_findings_carry_run_path_from_proposed_path"
+ "source": "validator_test_rules_test_empty_string_value_fires",
+ "target": "validator_rules_check_missing_required_field"
},
{
- "relation": "rationale_for",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/validator/test_engine_creation.py",
- "source_location": "L396",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/validator/test_rules.py",
+ "source_location": "L493",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "validator_test_engine_creation_rationale_396",
- "target": "validator_test_engine_creation_test_findings_default_audit_flags_to_false"
+ "source": "validator_test_rules_test_present_id_with_non_empty_value_passes",
+ "target": "validator_rules_check_missing_required_field"
},
{
- "relation": "rationale_for",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/validator/test_engine_creation.py",
- "source_location": "L409",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/validator/test_rules.py",
+ "source_location": "L505",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "validator_test_engine_creation_rationale_409",
- "target": "validator_test_engine_creation_test_findings_are_finding_instances"
+ "source": "validator_test_rules_test_field_present_in_template_fields_layer_passes",
+ "target": "validator_rules_check_missing_required_field"
},
{
- "relation": "rationale_for",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/validator/test_engine_creation.py",
- "source_location": "L425",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/validator/test_rules.py",
+ "source_location": "L517",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "validator_test_engine_creation_rationale_425",
- "target": "validator_test_engine_creation_test_creation_validation_input_is_frozen"
+ "source": "validator_test_rules_test_none_readme_fields_treats_all_required_as_missing",
+ "target": "validator_rules_check_missing_required_field"
},
{
- "relation": "rationale_for",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/validator/test_engine_creation.py",
- "source_location": "L432",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/validator/test_rules.py",
+ "source_location": "L525",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "validator_test_engine_creation_rationale_432",
- "target": "validator_test_engine_creation_test_creation_validation_input_defaults"
+ "source": "validator_test_rules_test_value_explicit_none_fires",
+ "target": "validator_rules_check_missing_required_field"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "tests/unit/validator/test_engine_creation.py",
- "source_location": "L433",
+ "source_file": "tests/unit/validator/test_rules.py",
+ "source_location": "L543",
"weight": 1.0,
- "source": "validator_test_engine_creation_test_creation_validation_input_defaults",
- "target": "validator_engine_creationvalidationinput"
+ "source": "validator_test_rules_test_well_formed_front_matter_passes",
+ "target": "validator_rules_check_malformed_yaml_front_matter"
},
{
- "relation": "contains",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/validator/test_engine_reconfigure.py",
- "source_location": "L16",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/validator/test_rules.py",
+ "source_location": "L548",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "tests_unit_validator_test_engine_reconfigure_py",
- "target": "validator_test_engine_reconfigure_test_reconfigure_refreshes_scan_limits_and_roots"
+ "source": "validator_test_rules_test_unterminated_front_matter_fires",
+ "target": "validator_rules_check_malformed_yaml_front_matter"
},
{
- "relation": "contains",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/validator/test_engine_reconfigure.py",
- "source_location": "L37",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/validator/test_rules.py",
+ "source_location": "L557",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "tests_unit_validator_test_engine_reconfigure_py",
- "target": "validator_test_engine_reconfigure_test_reconfigure_defaults_to_empty_roots"
+ "source": "validator_test_rules_test_malformed_yaml_in_block_fires",
+ "target": "validator_rules_check_malformed_yaml_front_matter"
},
{
- "relation": "rationale_for",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/validator/test_engine_reconfigure.py",
- "source_location": "L1",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/validator/test_rules.py",
+ "source_location": "L564",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "validator_test_engine_reconfigure_rationale_1",
- "target": "tests_unit_validator_test_engine_reconfigure_py"
+ "source": "validator_test_rules_test_no_front_matter_passes",
+ "target": "validator_rules_check_malformed_yaml_front_matter"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "tests/unit/validator/test_engine_reconfigure.py",
- "source_location": "L18",
+ "source_file": "tests/unit/validator/test_rules.py",
+ "source_location": "L568",
"weight": 1.0,
- "source": "validator_test_engine_reconfigure_test_reconfigure_refreshes_scan_limits_and_roots",
- "target": "config_models_validatorconfig"
+ "source": "validator_test_rules_test_empty_content_passes",
+ "target": "validator_rules_check_malformed_yaml_front_matter"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "tests/unit/validator/test_engine_reconfigure.py",
- "source_location": "L39",
+ "source_file": "tests/unit/validator/test_rules.py",
+ "source_location": "L585",
"weight": 1.0,
- "source": "validator_test_engine_reconfigure_test_reconfigure_defaults_to_empty_roots",
- "target": "config_models_validatorconfig"
+ "source": "validator_test_rules_test_front_matter_with_nested_yaml_passes",
+ "target": "validator_rules_check_malformed_yaml_front_matter"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/validator/test_findings.py",
- "source_location": "L23",
+ "source_file": "tests/unit/validator/test_engine_audit.py",
+ "source_location": "L46",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_validator_test_findings_py",
- "target": "validator_test_findings_make_finding"
+ "source": "tests_unit_validator_test_engine_audit_py",
+ "target": "validator_test_engine_audit_build_creation_json_dict"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/validator/test_findings.py",
- "source_location": "L45",
+ "source_file": "tests/unit/validator/test_engine_audit.py",
+ "source_location": "L87",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_validator_test_findings_py",
- "target": "validator_test_findings_test_finding_instantiation_with_all_fields"
+ "source": "tests_unit_validator_test_engine_audit_py",
+ "target": "validator_test_engine_audit_write_creation_json"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/validator/test_findings.py",
- "source_location": "L58",
+ "source_file": "tests/unit/validator/test_engine_audit.py",
+ "source_location": "L96",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_validator_test_findings_py",
- "target": "validator_test_findings_test_finding_minimum_required_fields"
+ "source": "tests_unit_validator_test_engine_audit_py",
+ "target": "validator_test_engine_audit_make_clean_tree"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/validator/test_findings.py",
- "source_location": "L74",
+ "source_file": "tests/unit/validator/test_engine_audit.py",
+ "source_location": "L140",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_validator_test_findings_py",
- "target": "validator_test_findings_test_finding_is_frozen"
+ "source": "tests_unit_validator_test_engine_audit_py",
+ "target": "validator_test_engine_audit_make_validator"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/validator/test_findings.py",
- "source_location": "L86",
+ "source_file": "tests/unit/validator/test_engine_audit.py",
+ "source_location": "L164",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_validator_test_findings_py",
- "target": "validator_test_findings_test_to_dict_contains_all_spec_keys"
+ "source": "tests_unit_validator_test_engine_audit_py",
+ "target": "validator_test_engine_audit_by_rule"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/validator/test_findings.py",
- "source_location": "L103",
+ "source_file": "tests/unit/validator/test_engine_audit.py",
+ "source_location": "L173",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_validator_test_findings_py",
- "target": "validator_test_findings_test_to_dict_values_match_field_values"
+ "source": "tests_unit_validator_test_engine_audit_py",
+ "target": "validator_test_engine_audit_test_audit_clean_tree_returns_empty_list"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/validator/test_findings.py",
- "source_location": "L113",
+ "source_file": "tests/unit/validator/test_engine_audit.py",
+ "source_location": "L181",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_validator_test_findings_py",
- "target": "validator_test_findings_test_to_dict_from_dict_round_trip_identity"
+ "source": "tests_unit_validator_test_engine_audit_py",
+ "target": "validator_test_engine_audit_test_audit_project_missing_creation_json_returns_orphan"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/validator/test_findings.py",
- "source_location": "L119",
+ "source_file": "tests/unit/validator/test_engine_audit.py",
+ "source_location": "L202",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_validator_test_findings_py",
- "target": "validator_test_findings_test_from_dict_accepts_minimal_payload"
+ "source": "tests_unit_validator_test_engine_audit_py",
+ "target": "validator_test_engine_audit_test_audit_run_missing_creation_json_returns_orphan"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/validator/test_findings.py",
- "source_location": "L135",
+ "source_file": "tests/unit/validator/test_engine_audit.py",
+ "source_location": "L219",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_validator_test_findings_py",
- "target": "validator_test_findings_test_from_dict_ignores_unknown_keys"
+ "source": "tests_unit_validator_test_engine_audit_py",
+ "target": "validator_test_engine_audit_test_audit_unsafe_project_name_returns_soft_finding"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/validator/test_findings.py",
- "source_location": "L149",
+ "source_file": "tests/unit/validator/test_engine_audit.py",
+ "source_location": "L238",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_validator_test_findings_py",
- "target": "validator_test_findings_test_to_dict_preserves_none_matched_token"
+ "source": "tests_unit_validator_test_engine_audit_py",
+ "target": "validator_test_engine_audit_test_audit_clean_project_name_has_no_unsafe_finding"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/validator/test_findings.py",
- "source_location": "L169",
+ "source_file": "tests/unit/validator/test_engine_audit.py",
+ "source_location": "L246",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_validator_test_findings_py",
- "target": "validator_test_findings_test_finding_is_hashable"
+ "source": "tests_unit_validator_test_engine_audit_py",
+ "target": "validator_test_engine_audit_test_audit_mode_prefix_mismatch_run_with_test_kind"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/validator/test_findings.py",
- "source_location": "L176",
+ "source_file": "tests/unit/validator/test_engine_audit.py",
+ "source_location": "L268",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_validator_test_findings_py",
- "target": "validator_test_findings_test_findings_in_set_dedupe_by_value"
+ "source": "tests_unit_validator_test_engine_audit_py",
+ "target": "validator_test_engine_audit_test_audit_unresolved_placeholder_in_directory_name"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/validator/test_findings.py",
- "source_location": "L184",
+ "source_file": "tests/unit/validator/test_engine_audit.py",
+ "source_location": "L291",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_validator_test_findings_py",
- "target": "validator_test_findings_test_findings_in_set_distinguish_by_value"
+ "source": "tests_unit_validator_test_engine_audit_py",
+ "target": "validator_test_engine_audit_test_audit_override_active_flag_set_when_problem_class_overridden"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/validator/test_findings.py",
- "source_location": "L198",
+ "source_file": "tests/unit/validator/test_engine_audit.py",
+ "source_location": "L324",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_validator_test_findings_py",
- "target": "validator_test_findings_test_findings_can_be_sorted_by_to_dict_key"
+ "source": "tests_unit_validator_test_engine_audit_py",
+ "target": "validator_test_engine_audit_test_audit_synced_under_prior_policy_flag_for_hard_finding_on_synced_run"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/validator/test_findings.py",
- "source_location": "L206",
+ "source_file": "tests/unit/validator/test_engine_audit.py",
+ "source_location": "L348",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_validator_test_findings_py",
- "target": "validator_test_findings_test_findings_sort_by_tier_then_rule_then_path"
+ "source": "tests_unit_validator_test_engine_audit_py",
+ "target": "validator_test_engine_audit_test_audit_synced_under_prior_policy_flag_for_hard_finding_on_cleaned_run"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/validator/test_findings.py",
- "source_location": "L224",
+ "source_file": "tests/unit/validator/test_engine_audit.py",
+ "source_location": "L374",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_validator_test_findings_py",
- "target": "validator_test_findings_test_equality_with_same_field_values"
+ "source": "tests_unit_validator_test_engine_audit_py",
+ "target": "validator_test_engine_audit_test_audit_respects_content_scan_max_mib_cap"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/validator/test_findings.py",
- "source_location": "L230",
+ "source_file": "tests/unit/validator/test_engine_audit.py",
+ "source_location": "L398",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_validator_test_findings_py",
- "target": "validator_test_findings_test_inequality_when_one_field_differs"
+ "source": "tests_unit_validator_test_engine_audit_py",
+ "target": "validator_test_engine_audit_test_audit_respects_extensions_allowlist"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/validator/test_findings.py",
- "source_location": "L236",
+ "source_file": "tests/unit/validator/test_engine_audit.py",
+ "source_location": "L417",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_validator_test_findings_py",
- "target": "validator_test_findings_test_finding_equality_is_not_identity"
+ "source": "tests_unit_validator_test_engine_audit_py",
+ "target": "validator_test_engine_audit_test_audit_detects_binary_files_via_null_byte_sniff"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/validator/test_findings.py",
- "source_location": "L243",
+ "source_file": "tests/unit/validator/test_engine_audit.py",
+ "source_location": "L436",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_validator_test_findings_py",
- "target": "validator_test_findings_test_audit_mode_flags_round_trip"
+ "source": "tests_unit_validator_test_engine_audit_py",
+ "target": "validator_test_engine_audit_test_audit_scans_text_file_content_when_within_limits"
},
{
- "relation": "rationale_for",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/validator/test_findings.py",
- "source_location": "L1",
+ "source_file": "tests/unit/validator/test_engine_audit.py",
+ "source_location": "L452",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "validator_test_findings_rationale_1",
- "target": "tests_unit_validator_test_findings_py"
+ "source": "tests_unit_validator_test_engine_audit_py",
+ "target": "validator_test_engine_audit_test_audit_findings_are_sorted_by_tier_then_rule_then_offending_path"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/validator/test_findings.py",
- "source_location": "L46",
+ "source_file": "tests/unit/validator/test_engine_audit.py",
+ "source_location": "L474",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "validator_test_findings_test_finding_instantiation_with_all_fields",
- "target": "validator_test_findings_make_finding"
+ "source": "tests_unit_validator_test_engine_audit_py",
+ "target": "validator_test_engine_audit_test_query_problems_is_alias_for_audit"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/validator/test_findings.py",
- "source_location": "L76",
+ "source_file": "tests/unit/validator/test_engine_audit.py",
+ "source_location": "L487",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "validator_test_findings_test_finding_is_frozen",
- "target": "validator_test_findings_make_finding"
+ "source": "tests_unit_validator_test_engine_audit_py",
+ "target": "validator_test_engine_audit_test_audit_scope_equipment_id_resolves_to_configured_root"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/validator/test_findings.py",
- "source_location": "L87",
+ "source_file": "tests/unit/validator/test_engine_audit.py",
+ "source_location": "L524",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "validator_test_findings_test_to_dict_contains_all_spec_keys",
- "target": "validator_test_findings_make_finding"
+ "source": "tests_unit_validator_test_engine_audit_py",
+ "target": "validator_test_engine_audit_test_audit_scope_project_path_walks_one_subtree"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/validator/test_findings.py",
- "source_location": "L104",
+ "source_file": "tests/unit/validator/test_engine_audit.py",
+ "source_location": "L549",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "validator_test_findings_test_to_dict_values_match_field_values",
- "target": "validator_test_findings_make_finding"
+ "source": "tests_unit_validator_test_engine_audit_py",
+ "target": "validator_test_engine_audit_test_audit_scope_all_walks_every_configured_equipment"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/validator/test_findings.py",
- "source_location": "L114",
+ "source_file": "tests/unit/validator/test_engine_audit.py",
+ "source_location": "L584",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "validator_test_findings_test_to_dict_from_dict_round_trip_identity",
- "target": "validator_test_findings_make_finding"
+ "source": "tests_unit_validator_test_engine_audit_py",
+ "target": "validator_test_engine_audit_test_audit_scope_unknown_equipment_id_returns_empty"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/validator/test_findings.py",
- "source_location": "L170",
+ "source_file": "tests/unit/validator/test_engine_audit.py",
+ "source_location": "L591",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "validator_test_findings_test_finding_is_hashable",
- "target": "validator_test_findings_make_finding"
+ "source": "tests_unit_validator_test_engine_audit_py",
+ "target": "validator_test_engine_audit_test_audit_skips_cache_directory_contents"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/validator/test_findings.py",
- "source_location": "L178",
+ "source_file": "tests/unit/validator/test_engine_audit.py",
+ "source_location": "L607",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "validator_test_findings_test_findings_in_set_dedupe_by_value",
- "target": "validator_test_findings_make_finding"
+ "source": "tests_unit_validator_test_engine_audit_py",
+ "target": "validator_test_engine_audit_test_audit_revoked_override_does_not_set_override_active"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/validator/test_findings.py",
- "source_location": "L187",
+ "source_file": "tests/unit/validator/test_engine_audit.py",
+ "source_location": "L644",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "validator_test_findings_test_findings_in_set_distinguish_by_value",
- "target": "validator_test_findings_make_finding"
+ "source": "tests_unit_validator_test_engine_audit_py",
+ "target": "validator_test_engine_audit_test_audit_unresolved_placeholder_in_file_name"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/validator/test_findings.py",
- "source_location": "L200",
+ "source_file": "tests/unit/validator/test_engine_audit.py",
+ "source_location": "L660",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "validator_test_findings_test_findings_can_be_sorted_by_to_dict_key",
- "target": "validator_test_findings_make_finding"
+ "source": "tests_unit_validator_test_engine_audit_py",
+ "target": "validator_test_engine_audit_test_audit_test_run_with_experimental_kind_flagged"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/validator/test_findings.py",
- "source_location": "L208",
+ "source_file": "tests/unit/validator/test_engine_audit.py",
+ "source_location": "L680",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "validator_test_findings_test_findings_sort_by_tier_then_rule_then_path",
- "target": "validator_test_findings_make_finding"
+ "source": "tests_unit_validator_test_engine_audit_py",
+ "target": "validator_test_engine_audit_test_audit_returns_list_of_finding_dataclass_instances"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/validator/test_findings.py",
- "source_location": "L225",
+ "source_file": "tests/unit/validator/test_engine_audit.py",
+ "source_location": "L695",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "validator_test_findings_test_equality_with_same_field_values",
- "target": "validator_test_findings_make_finding"
+ "source": "tests_unit_validator_test_engine_audit_py",
+ "target": "validator_test_engine_audit_test_audit_includes_staging_root_when_orchestrator_on"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/validator/test_findings.py",
- "source_location": "L231",
+ "source_file": "tests/unit/validator/test_engine_audit.py",
+ "source_location": "L722",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "validator_test_findings_test_inequality_when_one_field_differs",
- "target": "validator_test_findings_make_finding"
+ "source": "tests_unit_validator_test_engine_audit_py",
+ "target": "validator_test_engine_audit_test_audit_findings_carry_full_section_11_8_shape"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/validator/test_findings.py",
- "source_location": "L237",
+ "source_file": "tests/unit/validator/test_engine_audit.py",
+ "source_location": "L760",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "validator_test_findings_test_finding_equality_is_not_identity",
- "target": "validator_test_findings_make_finding"
+ "source": "tests_unit_validator_test_engine_audit_py",
+ "target": "validator_test_engine_audit_test_audit_unknown_scope_kind_raises_value_error"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/validator/test_findings.py",
- "source_location": "L247",
+ "source_file": "tests/unit/validator/test_engine_audit.py",
+ "source_location": "L767",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "validator_test_findings_test_audit_mode_flags_round_trip",
- "target": "validator_test_findings_make_finding"
+ "source": "tests_unit_validator_test_engine_audit_py",
+ "target": "validator_test_engine_audit_test_audit_root_does_not_exist_returns_empty"
},
{
- "relation": "rationale_for",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/validator/test_findings.py",
- "source_location": "L24",
+ "source_file": "tests/unit/validator/test_engine_audit.py",
+ "source_location": "L775",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "validator_test_findings_rationale_24",
- "target": "validator_test_findings_make_finding"
+ "source": "tests_unit_validator_test_engine_audit_py",
+ "target": "validator_test_engine_audit_test_audit_root_is_a_file_returns_empty"
},
{
- "relation": "calls",
- "context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "src/exlab_wizard/validator/rules.py",
- "source_location": "L381",
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/validator/test_engine_audit.py",
+ "source_location": "L783",
"weight": 1.0,
- "source": "validator_rules_check_mode_prefix_mismatch",
- "target": "validator_test_findings_make_finding"
+ "confidence_score": 1.0,
+ "source": "tests_unit_validator_test_engine_audit_py",
+ "target": "validator_test_engine_audit_test_audit_handles_unreadable_directory"
},
{
- "relation": "rationale_for",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/validator/test_findings.py",
- "source_location": "L59",
+ "source_file": "tests/unit/validator/test_engine_audit.py",
+ "source_location": "L803",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "validator_test_findings_rationale_59",
- "target": "validator_test_findings_test_finding_minimum_required_fields"
+ "source": "tests_unit_validator_test_engine_audit_py",
+ "target": "validator_test_engine_audit_test_audit_other_level_subfolder_under_project"
},
{
- "relation": "rationale_for",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/validator/test_findings.py",
- "source_location": "L75",
+ "source_file": "tests/unit/validator/test_engine_audit.py",
+ "source_location": "L819",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "validator_test_findings_rationale_75",
- "target": "validator_test_findings_test_finding_is_frozen"
+ "source": "tests_unit_validator_test_engine_audit_py",
+ "target": "validator_test_engine_audit_test_audit_other_under_test_runs_unknown_leaf"
},
{
- "relation": "rationale_for",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/validator/test_findings.py",
- "source_location": "L120",
+ "source_file": "tests/unit/validator/test_engine_audit.py",
+ "source_location": "L835",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "validator_test_findings_rationale_120",
- "target": "validator_test_findings_test_from_dict_accepts_minimal_payload"
+ "source": "tests_unit_validator_test_engine_audit_py",
+ "target": "validator_test_engine_audit_test_audit_deeply_nested_other_subfolder"
},
{
- "relation": "rationale_for",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/validator/test_findings.py",
- "source_location": "L136",
+ "source_file": "tests/unit/validator/test_engine_audit.py",
+ "source_location": "L854",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "validator_test_findings_rationale_136",
- "target": "validator_test_findings_test_from_dict_ignores_unknown_keys"
+ "source": "tests_unit_validator_test_engine_audit_py",
+ "target": "validator_test_engine_audit_test_audit_creation_json_unreadable"
},
{
- "relation": "rationale_for",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/validator/test_findings.py",
- "source_location": "L150",
+ "source_file": "tests/unit/validator/test_engine_audit.py",
+ "source_location": "L876",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "validator_test_findings_rationale_150",
- "target": "validator_test_findings_test_to_dict_preserves_none_matched_token"
+ "source": "tests_unit_validator_test_engine_audit_py",
+ "target": "validator_test_engine_audit_test_audit_creation_json_malformed_raw_decode"
},
{
- "relation": "rationale_for",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/validator/test_findings.py",
- "source_location": "L177",
+ "source_file": "tests/unit/validator/test_engine_audit.py",
+ "source_location": "L888",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "validator_test_findings_rationale_177",
- "target": "validator_test_findings_test_findings_in_set_dedupe_by_value"
+ "source": "tests_unit_validator_test_engine_audit_py",
+ "target": "validator_test_engine_audit_test_audit_creation_json_missing_required_struct_field"
},
{
- "relation": "rationale_for",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/validator/test_findings.py",
- "source_location": "L185",
+ "source_file": "tests/unit/validator/test_engine_audit.py",
+ "source_location": "L908",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "validator_test_findings_rationale_185",
- "target": "validator_test_findings_test_findings_in_set_distinguish_by_value"
+ "source": "tests_unit_validator_test_engine_audit_py",
+ "target": "validator_test_engine_audit_test_audit_readme_fields_json_decode_failure"
},
{
- "relation": "rationale_for",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/validator/test_findings.py",
- "source_location": "L199",
+ "source_file": "tests/unit/validator/test_engine_audit.py",
+ "source_location": "L920",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "validator_test_findings_rationale_199",
- "target": "validator_test_findings_test_findings_can_be_sorted_by_to_dict_key"
+ "source": "tests_unit_validator_test_engine_audit_py",
+ "target": "validator_test_engine_audit_test_audit_missing_required_field_with_required_ids"
},
{
- "relation": "rationale_for",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/validator/test_findings.py",
- "source_location": "L207",
+ "source_file": "tests/unit/validator/test_engine_audit.py",
+ "source_location": "L956",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "validator_test_findings_rationale_207",
- "target": "validator_test_findings_test_findings_sort_by_tier_then_rule_then_path"
+ "source": "tests_unit_validator_test_engine_audit_py",
+ "target": "validator_test_engine_audit_test_audit_missing_required_field_required_ids_not_a_list"
},
{
- "relation": "rationale_for",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/validator/test_findings.py",
- "source_location": "L244",
+ "source_file": "tests/unit/validator/test_engine_audit.py",
+ "source_location": "L991",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "validator_test_findings_rationale_244",
- "target": "validator_test_findings_test_audit_mode_flags_round_trip"
+ "source": "tests_unit_validator_test_engine_audit_py",
+ "target": "validator_test_engine_audit_test_audit_content_scan_skips_test_runs_marker_file"
},
{
- "relation": "rationale_for",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/validator/__init__.py",
- "source_location": "L1",
+ "source_file": "tests/unit/validator/test_engine_audit.py",
+ "source_location": "L1021",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "validator_init_rationale_1",
- "target": "tests_unit_validator_init_py"
+ "source": "tests_unit_validator_test_engine_audit_py",
+ "target": "validator_test_engine_audit_test_audit_content_scan_eligibility_returns_false_on_stat_failure"
},
{
- "relation": "rationale_for",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "src/exlab_wizard/validator/__init__.py",
- "source_location": "L1",
+ "source_file": "tests/unit/validator/test_engine_audit.py",
+ "source_location": "L1048",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "validator_init_rationale_1",
- "target": "src_exlab_wizard_validator_init_py"
+ "source": "tests_unit_validator_test_engine_audit_py",
+ "target": "validator_test_engine_audit_test_audit_read_text_for_scan_handles_oserror"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/validator/test_rules.py",
- "source_location": "L37",
+ "source_file": "tests/unit/validator/test_engine_audit.py",
+ "source_location": "L1075",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_validator_test_rules_py",
- "target": "validator_test_rules_test_angle_bracket_token_in_segment_fires"
+ "source": "tests_unit_validator_test_engine_audit_py",
+ "target": "validator_test_engine_audit_test_classify_level_value_error_returns_other"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/validator/test_rules.py",
- "source_location": "L64",
+ "source_file": "tests/unit/validator/test_engine_audit.py",
+ "source_location": "L1089",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_validator_test_rules_py",
- "target": "validator_test_rules_test_non_token_angle_brackets_pass"
+ "source": "tests_unit_validator_test_engine_audit_py",
+ "target": "validator_test_engine_audit_test_finding_sort_unknown_tier_sorts_after_committed_tiers"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/validator/test_rules.py",
- "source_location": "L75",
+ "source_file": "tests/unit/validator/test_engine_audit.py",
+ "source_location": "L1113",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_validator_test_rules_py",
- "target": "validator_test_rules_test_jinja_var_marker_in_filename_fires"
+ "source": "tests_unit_validator_test_engine_audit_py",
+ "target": "validator_test_engine_audit_test_level_for_orphan_returns_none_for_unmapped_levels"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/validator/test_rules.py",
- "source_location": "L88",
+ "source_file": "tests/unit/validator/test_engine_audit.py",
+ "source_location": "L1122",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_validator_test_rules_py",
- "target": "validator_test_rules_test_jinja_block_marker_in_content_fires"
+ "source": "tests_unit_validator_test_engine_audit_py",
+ "target": "validator_test_engine_audit_test_validator_from_config_builds_engine"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/validator/test_rules.py",
- "source_location": "L101",
+ "source_file": "tests/unit/validator/test_engine_audit.py",
+ "source_location": "L1140",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_validator_test_rules_py",
- "target": "validator_test_rules_test_unresolved_placeholder_in_content_fires"
+ "source": "tests_unit_validator_test_engine_audit_py",
+ "target": "validator_test_engine_audit_test_validator_from_config_orchestrator_disabled"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/validator/test_rules.py",
- "source_location": "L110",
+ "source_file": "tests/unit/validator/test_engine_audit.py",
+ "source_location": "L1154",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_validator_test_rules_py",
- "target": "validator_test_rules_test_no_findings_on_clean_inputs"
+ "source": "tests_unit_validator_test_engine_audit_py",
+ "target": "validator_test_engine_audit_test_validator_from_config_no_orchestrator_attr"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/validator/test_rules.py",
- "source_location": "L119",
+ "source_file": "tests/unit/validator/test_engine_audit.py",
+ "source_location": "L1165",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_validator_test_rules_py",
- "target": "validator_test_rules_test_large_text_file_skipped_from_content_scan"
+ "source": "tests_unit_validator_test_engine_audit_py",
+ "target": "validator_test_engine_audit_test_classify_level_unrelated_dir_returns_other"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/validator/test_rules.py",
- "source_location": "L131",
+ "source_file": "tests/unit/validator/test_engine_audit.py",
+ "source_location": "L1175",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_validator_test_rules_py",
- "target": "validator_test_rules_test_under_size_cap_content_is_scanned"
+ "source": "tests_unit_validator_test_engine_audit_py",
+ "target": "validator_test_engine_audit_test_compute_run_path_unrelated_other_returns_input"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/validator/test_rules.py",
- "source_location": "L142",
+ "source_file": "tests/unit/validator/test_engine_audit.py",
+ "source_location": "L1187",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_validator_test_rules_py",
- "target": "validator_test_rules_test_multiple_matches_in_same_input_each_yield_finding"
+ "source": "tests_unit_validator_test_engine_audit_py",
+ "target": "validator_test_engine_audit_test_compute_run_path_root_other_returns_root"
},
{
- "relation": "contains",
+ "relation": "rationale_for",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/validator/test_rules.py",
- "source_location": "L152",
+ "source_file": "tests/unit/validator/test_engine_audit.py",
+ "source_location": "L1",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_validator_test_rules_py",
- "target": "validator_test_rules_test_empty_file_contents_dict_is_path_only_scan"
+ "source": "validator_test_engine_audit_rationale_1",
+ "target": "tests_unit_validator_test_engine_audit_py"
},
{
- "relation": "contains",
+ "relation": "rationale_for",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/validator/test_rules.py",
- "source_location": "L180",
+ "source_file": "tests/unit/validator/test_engine_audit.py",
+ "source_location": "L187",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_validator_test_rules_py",
- "target": "validator_test_rules_test_windows_illegal_char_in_segment_fires"
+ "source": "validator_test_engine_audit_rationale_187",
+ "target": "tests_unit_validator_test_engine_audit_py"
},
{
- "relation": "contains",
+ "relation": "calls",
+ "context": "call",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/validator/test_rules.py",
- "source_location": "L191",
+ "source_file": "tests/unit/validator/test_engine_audit.py",
+ "source_location": "L121",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_validator_test_rules_py",
- "target": "validator_test_rules_test_nul_byte_in_name_fires"
+ "source": "validator_test_engine_audit_make_clean_tree",
+ "target": "validator_test_engine_audit_build_creation_json_dict"
},
{
- "relation": "contains",
+ "relation": "calls",
+ "context": "call",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/validator/test_rules.py",
- "source_location": "L200",
+ "source_file": "tests/unit/validator/test_engine_audit.py",
+ "source_location": "L190",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_validator_test_rules_py",
- "target": "validator_test_rules_test_low_ascii_control_char_fires"
+ "source": "validator_test_engine_audit_test_audit_project_missing_creation_json_returns_orphan",
+ "target": "validator_test_engine_audit_build_creation_json_dict"
},
{
- "relation": "contains",
+ "relation": "calls",
+ "context": "call",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/validator/test_rules.py",
- "source_location": "L210",
+ "source_file": "tests/unit/validator/test_engine_audit.py",
+ "source_location": "L208",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_validator_test_rules_py",
- "target": "validator_test_rules_test_trailing_dot_fires"
+ "source": "validator_test_engine_audit_test_audit_run_missing_creation_json_returns_orphan",
+ "target": "validator_test_engine_audit_build_creation_json_dict"
},
{
- "relation": "contains",
+ "relation": "calls",
+ "context": "call",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/validator/test_rules.py",
- "source_location": "L218",
+ "source_file": "tests/unit/validator/test_engine_audit.py",
+ "source_location": "L227",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_validator_test_rules_py",
- "target": "validator_test_rules_test_trailing_space_fires"
+ "source": "validator_test_engine_audit_test_audit_unsafe_project_name_returns_soft_finding",
+ "target": "validator_test_engine_audit_build_creation_json_dict"
},
{
- "relation": "contains",
+ "relation": "calls",
+ "context": "call",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/validator/test_rules.py",
- "source_location": "L237",
+ "source_file": "tests/unit/validator/test_engine_audit.py",
+ "source_location": "L252",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_validator_test_rules_py",
- "target": "validator_test_rules_test_normal_names_pass"
+ "source": "validator_test_engine_audit_test_audit_mode_prefix_mismatch_run_with_test_kind",
+ "target": "validator_test_engine_audit_build_creation_json_dict"
},
{
- "relation": "contains",
+ "relation": "calls",
+ "context": "call",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/validator/test_rules.py",
- "source_location": "L245",
+ "source_file": "tests/unit/validator/test_engine_audit.py",
+ "source_location": "L277",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_validator_test_rules_py",
- "target": "validator_test_rules_test_findings_have_hard_tier"
+ "source": "validator_test_engine_audit_test_audit_unresolved_placeholder_in_directory_name",
+ "target": "validator_test_engine_audit_build_creation_json_dict"
},
{
- "relation": "contains",
+ "relation": "calls",
+ "context": "call",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/validator/test_rules.py",
- "source_location": "L276",
+ "source_file": "tests/unit/validator/test_engine_audit.py",
+ "source_location": "L309",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_validator_test_rules_py",
- "target": "validator_test_rules_test_reserved_name_fires"
+ "source": "validator_test_engine_audit_test_audit_override_active_flag_set_when_problem_class_overridden",
+ "target": "validator_test_engine_audit_build_creation_json_dict"
},
{
- "relation": "contains",
+ "relation": "calls",
+ "context": "call",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/validator/test_rules.py",
- "source_location": "L297",
+ "source_file": "tests/unit/validator/test_engine_audit.py",
+ "source_location": "L332",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_validator_test_rules_py",
- "target": "validator_test_rules_test_non_reserved_name_passes"
+ "source": "validator_test_engine_audit_test_audit_synced_under_prior_policy_flag_for_hard_finding_on_synced_run",
+ "target": "validator_test_engine_audit_build_creation_json_dict"
},
{
- "relation": "contains",
+ "relation": "calls",
+ "context": "call",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/validator/test_rules.py",
- "source_location": "L320",
+ "source_file": "tests/unit/validator/test_engine_audit.py",
+ "source_location": "L361",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_validator_test_rules_py",
- "target": "validator_test_rules_test_unsafe_project_name_fires"
+ "source": "validator_test_engine_audit_test_audit_synced_under_prior_policy_flag_for_hard_finding_on_cleaned_run",
+ "target": "validator_test_engine_audit_build_creation_json_dict"
},
{
- "relation": "contains",
+ "relation": "calls",
+ "context": "call",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/validator/test_rules.py",
- "source_location": "L340",
+ "source_file": "tests/unit/validator/test_engine_audit.py",
+ "source_location": "L462",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_validator_test_rules_py",
- "target": "validator_test_rules_test_safe_project_name_passes"
+ "source": "validator_test_engine_audit_test_audit_findings_are_sorted_by_tier_then_rule_then_offending_path",
+ "target": "validator_test_engine_audit_build_creation_json_dict"
},
{
- "relation": "contains",
+ "relation": "calls",
+ "context": "call",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/validator/test_rules.py",
- "source_location": "L349",
+ "source_file": "tests/unit/validator/test_engine_audit.py",
+ "source_location": "L479",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_validator_test_rules_py",
- "target": "validator_test_rules_test_experimental_with_run_prefix_under_runs_parent_passes"
+ "source": "validator_test_engine_audit_test_query_problems_is_alias_for_audit",
+ "target": "validator_test_engine_audit_build_creation_json_dict"
},
{
- "relation": "contains",
+ "relation": "calls",
+ "context": "call",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/validator/test_rules.py",
- "source_location": "L359",
+ "source_file": "tests/unit/validator/test_engine_audit.py",
+ "source_location": "L495",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_validator_test_rules_py",
- "target": "validator_test_rules_test_experimental_with_run_prefix_at_project_level_fires"
+ "source": "validator_test_engine_audit_test_audit_scope_equipment_id_resolves_to_configured_root",
+ "target": "validator_test_engine_audit_build_creation_json_dict"
},
{
- "relation": "contains",
+ "relation": "calls",
+ "context": "call",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/validator/test_rules.py",
- "source_location": "L372",
+ "source_file": "tests/unit/validator/test_engine_audit.py",
+ "source_location": "L531",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_validator_test_rules_py",
- "target": "validator_test_rules_test_experimental_with_test_run_prefix_fires"
+ "source": "validator_test_engine_audit_test_audit_scope_project_path_walks_one_subtree",
+ "target": "validator_test_engine_audit_build_creation_json_dict"
},
{
- "relation": "contains",
+ "relation": "calls",
+ "context": "call",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/validator/test_rules.py",
- "source_location": "L382",
+ "source_file": "tests/unit/validator/test_engine_audit.py",
+ "source_location": "L557",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_validator_test_rules_py",
- "target": "validator_test_rules_test_experimental_under_test_runs_parent_fires"
+ "source": "validator_test_engine_audit_test_audit_scope_all_walks_every_configured_equipment",
+ "target": "validator_test_engine_audit_build_creation_json_dict"
},
{
- "relation": "contains",
+ "relation": "calls",
+ "context": "call",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/validator/test_rules.py",
- "source_location": "L391",
+ "source_file": "tests/unit/validator/test_engine_audit.py",
+ "source_location": "L631",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_validator_test_rules_py",
- "target": "validator_test_rules_test_test_with_test_run_prefix_under_test_runs_passes"
+ "source": "validator_test_engine_audit_test_audit_revoked_override_does_not_set_override_active",
+ "target": "validator_test_engine_audit_build_creation_json_dict"
},
{
- "relation": "contains",
+ "relation": "calls",
+ "context": "call",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/validator/test_rules.py",
- "source_location": "L400",
+ "source_file": "tests/unit/validator/test_engine_audit.py",
+ "source_location": "L667",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_validator_test_rules_py",
- "target": "validator_test_rules_test_test_with_run_prefix_fires"
+ "source": "validator_test_engine_audit_test_audit_test_run_with_experimental_kind_flagged",
+ "target": "validator_test_engine_audit_build_creation_json_dict"
},
{
- "relation": "contains",
+ "relation": "calls",
+ "context": "call",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/validator/test_rules.py",
- "source_location": "L409",
+ "source_file": "tests/unit/validator/test_engine_audit.py",
+ "source_location": "L686",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_validator_test_rules_py",
- "target": "validator_test_rules_test_test_with_test_run_prefix_but_wrong_parent_fires"
+ "source": "validator_test_engine_audit_test_audit_returns_list_of_finding_dataclass_instances",
+ "target": "validator_test_engine_audit_build_creation_json_dict"
},
{
- "relation": "contains",
+ "relation": "calls",
+ "context": "call",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/validator/test_rules.py",
- "source_location": "L418",
+ "source_file": "tests/unit/validator/test_engine_audit.py",
+ "source_location": "L702",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_validator_test_rules_py",
- "target": "validator_test_rules_test_run_kind_none_returns_no_findings"
+ "source": "validator_test_engine_audit_test_audit_includes_staging_root_when_orchestrator_on",
+ "target": "validator_test_engine_audit_build_creation_json_dict"
},
{
- "relation": "contains",
+ "relation": "calls",
+ "context": "call",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/validator/test_rules.py",
- "source_location": "L432",
+ "source_file": "tests/unit/validator/test_engine_audit.py",
+ "source_location": "L731",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_validator_test_rules_py",
- "target": "validator_test_rules_test_project_without_creation_json_fires"
+ "source": "validator_test_engine_audit_test_audit_findings_carry_full_section_11_8_shape",
+ "target": "validator_test_engine_audit_build_creation_json_dict"
},
{
- "relation": "contains",
+ "relation": "calls",
+ "context": "call",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/validator/test_rules.py",
- "source_location": "L439",
+ "source_file": "tests/unit/validator/test_engine_audit.py",
+ "source_location": "L809",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_validator_test_rules_py",
- "target": "validator_test_rules_test_run_without_creation_json_fires"
+ "source": "validator_test_engine_audit_test_audit_other_level_subfolder_under_project",
+ "target": "validator_test_engine_audit_build_creation_json_dict"
},
{
- "relation": "contains",
+ "relation": "calls",
+ "context": "call",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/validator/test_rules.py",
- "source_location": "L445",
+ "source_file": "tests/unit/validator/test_engine_audit.py",
+ "source_location": "L826",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_validator_test_rules_py",
- "target": "validator_test_rules_test_equipment_without_creation_json_does_not_fire"
+ "source": "validator_test_engine_audit_test_audit_other_under_test_runs_unknown_leaf",
+ "target": "validator_test_engine_audit_build_creation_json_dict"
+ },
+ {
+ "relation": "calls",
+ "context": "call",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/validator/test_engine_audit.py",
+ "source_location": "L898",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "validator_test_engine_audit_test_audit_creation_json_missing_required_struct_field",
+ "target": "validator_test_engine_audit_build_creation_json_dict"
+ },
+ {
+ "relation": "calls",
+ "context": "call",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/validator/test_engine_audit.py",
+ "source_location": "L927",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "validator_test_engine_audit_test_audit_missing_required_field_with_required_ids",
+ "target": "validator_test_engine_audit_build_creation_json_dict"
+ },
+ {
+ "relation": "calls",
+ "context": "call",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/validator/test_engine_audit.py",
+ "source_location": "L964",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "validator_test_engine_audit_test_audit_missing_required_field_required_ids_not_a_list",
+ "target": "validator_test_engine_audit_build_creation_json_dict"
},
{
- "relation": "contains",
+ "relation": "calls",
+ "context": "call",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/validator/test_rules.py",
- "source_location": "L450",
+ "source_file": "tests/unit/validator/test_engine_audit.py",
+ "source_location": "L998",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_validator_test_rules_py",
- "target": "validator_test_rules_test_project_with_creation_json_passes"
+ "source": "validator_test_engine_audit_test_audit_content_scan_skips_test_runs_marker_file",
+ "target": "validator_test_engine_audit_build_creation_json_dict"
},
{
- "relation": "contains",
+ "relation": "rationale_for",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/validator/test_rules.py",
- "source_location": "L455",
+ "source_file": "tests/unit/validator/test_engine_audit.py",
+ "source_location": "L56",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_validator_test_rules_py",
- "target": "validator_test_rules_test_run_with_creation_json_passes"
+ "source": "validator_test_engine_audit_rationale_56",
+ "target": "validator_test_engine_audit_build_creation_json_dict"
},
{
- "relation": "contains",
+ "relation": "calls",
+ "context": "call",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/validator/test_rules.py",
- "source_location": "L465",
+ "source_file": "tests/unit/validator/test_engine_audit.py",
+ "source_location": "L119",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_validator_test_rules_py",
- "target": "validator_test_rules_test_missing_id_fires"
+ "source": "validator_test_engine_audit_make_clean_tree",
+ "target": "validator_test_engine_audit_write_creation_json"
},
{
- "relation": "contains",
+ "relation": "calls",
+ "context": "call",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/validator/test_rules.py",
- "source_location": "L479",
+ "source_file": "tests/unit/validator/test_engine_audit.py",
+ "source_location": "L188",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_validator_test_rules_py",
- "target": "validator_test_rules_test_empty_string_value_fires"
+ "source": "validator_test_engine_audit_test_audit_project_missing_creation_json_returns_orphan",
+ "target": "validator_test_engine_audit_write_creation_json"
},
{
- "relation": "contains",
+ "relation": "calls",
+ "context": "call",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/validator/test_rules.py",
- "source_location": "L492",
+ "source_file": "tests/unit/validator/test_engine_audit.py",
+ "source_location": "L208",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_validator_test_rules_py",
- "target": "validator_test_rules_test_present_id_with_non_empty_value_passes"
+ "source": "validator_test_engine_audit_test_audit_run_missing_creation_json_returns_orphan",
+ "target": "validator_test_engine_audit_write_creation_json"
},
{
- "relation": "contains",
+ "relation": "calls",
+ "context": "call",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/validator/test_rules.py",
- "source_location": "L504",
+ "source_file": "tests/unit/validator/test_engine_audit.py",
+ "source_location": "L227",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_validator_test_rules_py",
- "target": "validator_test_rules_test_field_present_in_template_fields_layer_passes"
+ "source": "validator_test_engine_audit_test_audit_unsafe_project_name_returns_soft_finding",
+ "target": "validator_test_engine_audit_write_creation_json"
},
{
- "relation": "contains",
+ "relation": "calls",
+ "context": "call",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/validator/test_rules.py",
- "source_location": "L516",
+ "source_file": "tests/unit/validator/test_engine_audit.py",
+ "source_location": "L252",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_validator_test_rules_py",
- "target": "validator_test_rules_test_none_readme_fields_treats_all_required_as_missing"
+ "source": "validator_test_engine_audit_test_audit_mode_prefix_mismatch_run_with_test_kind",
+ "target": "validator_test_engine_audit_write_creation_json"
},
{
- "relation": "contains",
+ "relation": "calls",
+ "context": "call",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/validator/test_rules.py",
- "source_location": "L524",
+ "source_file": "tests/unit/validator/test_engine_audit.py",
+ "source_location": "L277",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_validator_test_rules_py",
- "target": "validator_test_rules_test_value_explicit_none_fires"
+ "source": "validator_test_engine_audit_test_audit_unresolved_placeholder_in_directory_name",
+ "target": "validator_test_engine_audit_write_creation_json"
},
{
- "relation": "contains",
+ "relation": "calls",
+ "context": "call",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/validator/test_rules.py",
- "source_location": "L541",
+ "source_file": "tests/unit/validator/test_engine_audit.py",
+ "source_location": "L309",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_validator_test_rules_py",
- "target": "validator_test_rules_test_well_formed_front_matter_passes"
+ "source": "validator_test_engine_audit_test_audit_override_active_flag_set_when_problem_class_overridden",
+ "target": "validator_test_engine_audit_write_creation_json"
},
{
- "relation": "contains",
+ "relation": "calls",
+ "context": "call",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/validator/test_rules.py",
- "source_location": "L546",
+ "source_file": "tests/unit/validator/test_engine_audit.py",
+ "source_location": "L332",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_validator_test_rules_py",
- "target": "validator_test_rules_test_unterminated_front_matter_fires"
+ "source": "validator_test_engine_audit_test_audit_synced_under_prior_policy_flag_for_hard_finding_on_synced_run",
+ "target": "validator_test_engine_audit_write_creation_json"
},
{
- "relation": "contains",
+ "relation": "calls",
+ "context": "call",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/validator/test_rules.py",
- "source_location": "L554",
+ "source_file": "tests/unit/validator/test_engine_audit.py",
+ "source_location": "L361",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_validator_test_rules_py",
- "target": "validator_test_rules_test_malformed_yaml_in_block_fires"
+ "source": "validator_test_engine_audit_test_audit_synced_under_prior_policy_flag_for_hard_finding_on_cleaned_run",
+ "target": "validator_test_engine_audit_write_creation_json"
},
{
- "relation": "contains",
+ "relation": "calls",
+ "context": "call",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/validator/test_rules.py",
- "source_location": "L562",
+ "source_file": "tests/unit/validator/test_engine_audit.py",
+ "source_location": "L462",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_validator_test_rules_py",
- "target": "validator_test_rules_test_no_front_matter_passes"
+ "source": "validator_test_engine_audit_test_audit_findings_are_sorted_by_tier_then_rule_then_offending_path",
+ "target": "validator_test_engine_audit_write_creation_json"
},
{
- "relation": "contains",
+ "relation": "calls",
+ "context": "call",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/validator/test_rules.py",
- "source_location": "L567",
+ "source_file": "tests/unit/validator/test_engine_audit.py",
+ "source_location": "L479",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_validator_test_rules_py",
- "target": "validator_test_rules_test_empty_content_passes"
+ "source": "validator_test_engine_audit_test_query_problems_is_alias_for_audit",
+ "target": "validator_test_engine_audit_write_creation_json"
},
{
- "relation": "contains",
+ "relation": "calls",
+ "context": "call",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/validator/test_rules.py",
- "source_location": "L571",
+ "source_file": "tests/unit/validator/test_engine_audit.py",
+ "source_location": "L493",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_validator_test_rules_py",
- "target": "validator_test_rules_test_front_matter_with_nested_yaml_passes"
+ "source": "validator_test_engine_audit_test_audit_scope_equipment_id_resolves_to_configured_root",
+ "target": "validator_test_engine_audit_write_creation_json"
},
{
- "relation": "rationale_for",
+ "relation": "calls",
+ "context": "call",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/validator/test_rules.py",
- "source_location": "L1",
+ "source_file": "tests/unit/validator/test_engine_audit.py",
+ "source_location": "L531",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "validator_test_rules_rationale_1",
- "target": "tests_unit_validator_test_rules_py"
+ "source": "validator_test_engine_audit_test_audit_scope_project_path_walks_one_subtree",
+ "target": "validator_test_engine_audit_write_creation_json"
},
{
"relation": "calls",
"context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/validator/test_rules.py",
- "source_location": "L38",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/validator/test_engine_audit.py",
+ "source_location": "L555",
"weight": 1.0,
- "source": "validator_test_rules_test_angle_bracket_token_in_segment_fires",
- "target": "validator_rules_check_unresolved_placeholder"
+ "confidence_score": 1.0,
+ "source": "validator_test_engine_audit_test_audit_scope_all_walks_every_configured_equipment",
+ "target": "validator_test_engine_audit_write_creation_json"
},
{
"relation": "calls",
"context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/validator/test_rules.py",
- "source_location": "L65",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/validator/test_engine_audit.py",
+ "source_location": "L631",
"weight": 1.0,
- "source": "validator_test_rules_test_non_token_angle_brackets_pass",
- "target": "validator_rules_check_unresolved_placeholder"
+ "confidence_score": 1.0,
+ "source": "validator_test_engine_audit_test_audit_revoked_override_does_not_set_override_active",
+ "target": "validator_test_engine_audit_write_creation_json"
},
{
"relation": "calls",
"context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/validator/test_rules.py",
- "source_location": "L76",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/validator/test_engine_audit.py",
+ "source_location": "L667",
"weight": 1.0,
- "source": "validator_test_rules_test_jinja_var_marker_in_filename_fires",
- "target": "validator_rules_check_unresolved_placeholder"
+ "confidence_score": 1.0,
+ "source": "validator_test_engine_audit_test_audit_test_run_with_experimental_kind_flagged",
+ "target": "validator_test_engine_audit_write_creation_json"
},
{
"relation": "calls",
"context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/validator/test_rules.py",
- "source_location": "L89",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/validator/test_engine_audit.py",
+ "source_location": "L686",
"weight": 1.0,
- "source": "validator_test_rules_test_jinja_block_marker_in_content_fires",
- "target": "validator_rules_check_unresolved_placeholder"
+ "confidence_score": 1.0,
+ "source": "validator_test_engine_audit_test_audit_returns_list_of_finding_dataclass_instances",
+ "target": "validator_test_engine_audit_write_creation_json"
},
{
"relation": "calls",
"context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/validator/test_rules.py",
- "source_location": "L102",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/validator/test_engine_audit.py",
+ "source_location": "L702",
"weight": 1.0,
- "source": "validator_test_rules_test_unresolved_placeholder_in_content_fires",
- "target": "validator_rules_check_unresolved_placeholder"
+ "confidence_score": 1.0,
+ "source": "validator_test_engine_audit_test_audit_includes_staging_root_when_orchestrator_on",
+ "target": "validator_test_engine_audit_write_creation_json"
},
{
"relation": "calls",
"context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/validator/test_rules.py",
- "source_location": "L111",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/validator/test_engine_audit.py",
+ "source_location": "L731",
"weight": 1.0,
- "source": "validator_test_rules_test_no_findings_on_clean_inputs",
- "target": "validator_rules_check_unresolved_placeholder"
+ "confidence_score": 1.0,
+ "source": "validator_test_engine_audit_test_audit_findings_carry_full_section_11_8_shape",
+ "target": "validator_test_engine_audit_write_creation_json"
},
{
"relation": "calls",
"context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/validator/test_rules.py",
- "source_location": "L123",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/validator/test_engine_audit.py",
+ "source_location": "L809",
"weight": 1.0,
- "source": "validator_test_rules_test_large_text_file_skipped_from_content_scan",
- "target": "validator_rules_check_unresolved_placeholder"
+ "confidence_score": 1.0,
+ "source": "validator_test_engine_audit_test_audit_other_level_subfolder_under_project",
+ "target": "validator_test_engine_audit_write_creation_json"
},
{
"relation": "calls",
"context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/validator/test_rules.py",
- "source_location": "L134",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/validator/test_engine_audit.py",
+ "source_location": "L826",
"weight": 1.0,
- "source": "validator_test_rules_test_under_size_cap_content_is_scanned",
- "target": "validator_rules_check_unresolved_placeholder"
+ "confidence_score": 1.0,
+ "source": "validator_test_engine_audit_test_audit_other_under_test_runs_unknown_leaf",
+ "target": "validator_test_engine_audit_write_creation_json"
},
{
"relation": "calls",
"context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/validator/test_rules.py",
- "source_location": "L143",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/validator/test_engine_audit.py",
+ "source_location": "L898",
"weight": 1.0,
- "source": "validator_test_rules_test_multiple_matches_in_same_input_each_yield_finding",
- "target": "validator_rules_check_unresolved_placeholder"
+ "confidence_score": 1.0,
+ "source": "validator_test_engine_audit_test_audit_creation_json_missing_required_struct_field",
+ "target": "validator_test_engine_audit_write_creation_json"
},
{
"relation": "calls",
"context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/validator/test_rules.py",
- "source_location": "L153",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/validator/test_engine_audit.py",
+ "source_location": "L931",
"weight": 1.0,
- "source": "validator_test_rules_test_empty_file_contents_dict_is_path_only_scan",
- "target": "validator_rules_check_unresolved_placeholder"
+ "confidence_score": 1.0,
+ "source": "validator_test_engine_audit_test_audit_missing_required_field_with_required_ids",
+ "target": "validator_test_engine_audit_write_creation_json"
},
{
"relation": "calls",
"context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/validator/test_rules.py",
- "source_location": "L181",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/validator/test_engine_audit.py",
+ "source_location": "L968",
"weight": 1.0,
- "source": "validator_test_rules_test_windows_illegal_char_in_segment_fires",
- "target": "validator_rules_check_illegal_filesystem_character"
+ "confidence_score": 1.0,
+ "source": "validator_test_engine_audit_test_audit_missing_required_field_required_ids_not_a_list",
+ "target": "validator_test_engine_audit_write_creation_json"
},
{
"relation": "calls",
"context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/validator/test_rules.py",
- "source_location": "L193",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/validator/test_engine_audit.py",
+ "source_location": "L998",
"weight": 1.0,
- "source": "validator_test_rules_test_nul_byte_in_name_fires",
- "target": "validator_rules_check_illegal_filesystem_character"
+ "confidence_score": 1.0,
+ "source": "validator_test_engine_audit_test_audit_content_scan_skips_test_runs_marker_file",
+ "target": "validator_test_engine_audit_write_creation_json"
},
{
- "relation": "calls",
- "context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/validator/test_rules.py",
- "source_location": "L203",
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/validator/test_engine_audit.py",
+ "source_location": "L88",
"weight": 1.0,
- "source": "validator_test_rules_test_low_ascii_control_char_fires",
- "target": "validator_rules_check_illegal_filesystem_character"
+ "confidence_score": 1.0,
+ "source": "validator_test_engine_audit_rationale_88",
+ "target": "validator_test_engine_audit_write_creation_json"
},
{
"relation": "calls",
"context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/validator/test_rules.py",
- "source_location": "L211",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/validator/test_engine_audit.py",
+ "source_location": "L175",
"weight": 1.0,
- "source": "validator_test_rules_test_trailing_dot_fires",
- "target": "validator_rules_check_illegal_filesystem_character"
+ "confidence_score": 1.0,
+ "source": "validator_test_engine_audit_test_audit_clean_tree_returns_empty_list",
+ "target": "validator_test_engine_audit_make_clean_tree"
},
{
"relation": "calls",
"context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/validator/test_rules.py",
- "source_location": "L219",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/validator/test_engine_audit.py",
+ "source_location": "L240",
"weight": 1.0,
- "source": "validator_test_rules_test_trailing_space_fires",
- "target": "validator_rules_check_illegal_filesystem_character"
+ "confidence_score": 1.0,
+ "source": "validator_test_engine_audit_test_audit_clean_project_name_has_no_unsafe_finding",
+ "target": "validator_test_engine_audit_make_clean_tree"
},
{
"relation": "calls",
"context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/validator/test_rules.py",
- "source_location": "L238",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/validator/test_engine_audit.py",
+ "source_location": "L376",
"weight": 1.0,
- "source": "validator_test_rules_test_normal_names_pass",
- "target": "validator_rules_check_illegal_filesystem_character"
+ "confidence_score": 1.0,
+ "source": "validator_test_engine_audit_test_audit_respects_content_scan_max_mib_cap",
+ "target": "validator_test_engine_audit_make_clean_tree"
},
{
"relation": "calls",
"context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/validator/test_rules.py",
- "source_location": "L246",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/validator/test_engine_audit.py",
+ "source_location": "L400",
"weight": 1.0,
- "source": "validator_test_rules_test_findings_have_hard_tier",
- "target": "validator_rules_check_illegal_filesystem_character"
+ "confidence_score": 1.0,
+ "source": "validator_test_engine_audit_test_audit_respects_extensions_allowlist",
+ "target": "validator_test_engine_audit_make_clean_tree"
},
{
"relation": "calls",
"context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/validator/test_rules.py",
- "source_location": "L277",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/validator/test_engine_audit.py",
+ "source_location": "L419",
"weight": 1.0,
- "source": "validator_test_rules_test_reserved_name_fires",
- "target": "validator_rules_check_reserved_filesystem_name"
+ "confidence_score": 1.0,
+ "source": "validator_test_engine_audit_test_audit_detects_binary_files_via_null_byte_sniff",
+ "target": "validator_test_engine_audit_make_clean_tree"
},
{
"relation": "calls",
"context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/validator/test_rules.py",
- "source_location": "L298",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/validator/test_engine_audit.py",
+ "source_location": "L438",
"weight": 1.0,
- "source": "validator_test_rules_test_non_reserved_name_passes",
- "target": "validator_rules_check_reserved_filesystem_name"
+ "confidence_score": 1.0,
+ "source": "validator_test_engine_audit_test_audit_scans_text_file_content_when_within_limits",
+ "target": "validator_test_engine_audit_make_clean_tree"
},
{
"relation": "calls",
"context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/validator/test_rules.py",
- "source_location": "L321",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/validator/test_engine_audit.py",
+ "source_location": "L476",
"weight": 1.0,
- "source": "validator_test_rules_test_unsafe_project_name_fires",
- "target": "validator_rules_check_unsafe_project_name"
+ "confidence_score": 1.0,
+ "source": "validator_test_engine_audit_test_query_problems_is_alias_for_audit",
+ "target": "validator_test_engine_audit_make_clean_tree"
},
{
"relation": "calls",
"context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/validator/test_rules.py",
- "source_location": "L341",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/validator/test_engine_audit.py",
+ "source_location": "L593",
"weight": 1.0,
- "source": "validator_test_rules_test_safe_project_name_passes",
- "target": "validator_rules_check_unsafe_project_name"
+ "confidence_score": 1.0,
+ "source": "validator_test_engine_audit_test_audit_skips_cache_directory_contents",
+ "target": "validator_test_engine_audit_make_clean_tree"
},
{
- "relation": "rationale_for",
+ "relation": "calls",
+ "context": "call",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/validator/test_rules.py",
- "source_location": "L350",
+ "source_file": "tests/unit/validator/test_engine_audit.py",
+ "source_location": "L646",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "validator_test_rules_rationale_350",
- "target": "validator_test_rules_test_experimental_with_run_prefix_under_runs_parent_passes"
+ "source": "validator_test_engine_audit_test_audit_unresolved_placeholder_in_file_name",
+ "target": "validator_test_engine_audit_make_clean_tree"
},
{
"relation": "calls",
"context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/validator/test_rules.py",
- "source_location": "L351",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/validator/test_engine_audit.py",
+ "source_location": "L837",
"weight": 1.0,
- "source": "validator_test_rules_test_experimental_with_run_prefix_under_runs_parent_passes",
- "target": "validator_rules_check_mode_prefix_mismatch"
+ "confidence_score": 1.0,
+ "source": "validator_test_engine_audit_test_audit_deeply_nested_other_subfolder",
+ "target": "validator_test_engine_audit_make_clean_tree"
},
{
- "relation": "rationale_for",
+ "relation": "calls",
+ "context": "call",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/validator/test_rules.py",
- "source_location": "L360",
+ "source_file": "tests/unit/validator/test_engine_audit.py",
+ "source_location": "L859",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "validator_test_rules_rationale_360",
- "target": "validator_test_rules_test_experimental_with_run_prefix_at_project_level_fires"
+ "source": "validator_test_engine_audit_test_audit_creation_json_unreadable",
+ "target": "validator_test_engine_audit_make_clean_tree"
},
{
"relation": "calls",
"context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/validator/test_rules.py",
- "source_location": "L362",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/validator/test_engine_audit.py",
+ "source_location": "L878",
"weight": 1.0,
- "source": "validator_test_rules_test_experimental_with_run_prefix_at_project_level_fires",
- "target": "validator_rules_check_mode_prefix_mismatch"
+ "confidence_score": 1.0,
+ "source": "validator_test_engine_audit_test_audit_creation_json_malformed_raw_decode",
+ "target": "validator_test_engine_audit_make_clean_tree"
},
{
"relation": "calls",
"context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/validator/test_rules.py",
- "source_location": "L373",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/validator/test_engine_audit.py",
+ "source_location": "L910",
"weight": 1.0,
- "source": "validator_test_rules_test_experimental_with_test_run_prefix_fires",
- "target": "validator_rules_check_mode_prefix_mismatch"
+ "confidence_score": 1.0,
+ "source": "validator_test_engine_audit_test_audit_readme_fields_json_decode_failure",
+ "target": "validator_test_engine_audit_make_clean_tree"
},
{
"relation": "calls",
"context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/validator/test_rules.py",
- "source_location": "L383",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/validator/test_engine_audit.py",
+ "source_location": "L1026",
"weight": 1.0,
- "source": "validator_test_rules_test_experimental_under_test_runs_parent_fires",
- "target": "validator_rules_check_mode_prefix_mismatch"
+ "confidence_score": 1.0,
+ "source": "validator_test_engine_audit_test_audit_content_scan_eligibility_returns_false_on_stat_failure",
+ "target": "validator_test_engine_audit_make_clean_tree"
},
{
"relation": "calls",
"context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/validator/test_rules.py",
- "source_location": "L392",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/validator/test_engine_audit.py",
+ "source_location": "L1053",
"weight": 1.0,
- "source": "validator_test_rules_test_test_with_test_run_prefix_under_test_runs_passes",
- "target": "validator_rules_check_mode_prefix_mismatch"
+ "confidence_score": 1.0,
+ "source": "validator_test_engine_audit_test_audit_read_text_for_scan_handles_oserror",
+ "target": "validator_test_engine_audit_make_clean_tree"
},
{
- "relation": "calls",
- "context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/validator/test_rules.py",
- "source_location": "L401",
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/validator/test_engine_audit.py",
+ "source_location": "L106",
"weight": 1.0,
- "source": "validator_test_rules_test_test_with_run_prefix_fires",
- "target": "validator_rules_check_mode_prefix_mismatch"
+ "confidence_score": 1.0,
+ "source": "validator_test_engine_audit_rationale_106",
+ "target": "validator_test_engine_audit_make_clean_tree"
},
{
"relation": "calls",
"context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/validator/test_rules.py",
- "source_location": "L410",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/validator/test_engine_audit.py",
+ "source_location": "L176",
"weight": 1.0,
- "source": "validator_test_rules_test_test_with_test_run_prefix_but_wrong_parent_fires",
- "target": "validator_rules_check_mode_prefix_mismatch"
+ "confidence_score": 1.0,
+ "source": "validator_test_engine_audit_test_audit_clean_tree_returns_empty_list",
+ "target": "validator_test_engine_audit_make_validator"
},
{
"relation": "calls",
"context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/validator/test_rules.py",
- "source_location": "L419",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/validator/test_engine_audit.py",
+ "source_location": "L193",
"weight": 1.0,
- "source": "validator_test_rules_test_run_kind_none_returns_no_findings",
- "target": "validator_rules_check_mode_prefix_mismatch"
+ "confidence_score": 1.0,
+ "source": "validator_test_engine_audit_test_audit_project_missing_creation_json_returns_orphan",
+ "target": "validator_test_engine_audit_make_validator"
},
{
"relation": "calls",
"context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/validator/test_rules.py",
- "source_location": "L433",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/validator/test_engine_audit.py",
+ "source_location": "L211",
"weight": 1.0,
- "source": "validator_test_rules_test_project_without_creation_json_fires",
- "target": "validator_rules_check_orphan"
+ "confidence_score": 1.0,
+ "source": "validator_test_engine_audit_test_audit_run_missing_creation_json_returns_orphan",
+ "target": "validator_test_engine_audit_make_validator"
},
{
"relation": "calls",
"context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/validator/test_rules.py",
- "source_location": "L440",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/validator/test_engine_audit.py",
+ "source_location": "L230",
"weight": 1.0,
- "source": "validator_test_rules_test_run_without_creation_json_fires",
- "target": "validator_rules_check_orphan"
+ "confidence_score": 1.0,
+ "source": "validator_test_engine_audit_test_audit_unsafe_project_name_returns_soft_finding",
+ "target": "validator_test_engine_audit_make_validator"
},
{
"relation": "calls",
"context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/validator/test_rules.py",
- "source_location": "L446",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/validator/test_engine_audit.py",
+ "source_location": "L241",
"weight": 1.0,
- "source": "validator_test_rules_test_equipment_without_creation_json_does_not_fire",
- "target": "validator_rules_check_orphan"
+ "confidence_score": 1.0,
+ "source": "validator_test_engine_audit_test_audit_clean_project_name_has_no_unsafe_finding",
+ "target": "validator_test_engine_audit_make_validator"
},
{
"relation": "calls",
"context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/validator/test_rules.py",
- "source_location": "L451",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/validator/test_engine_audit.py",
+ "source_location": "L258",
"weight": 1.0,
- "source": "validator_test_rules_test_project_with_creation_json_passes",
- "target": "validator_rules_check_orphan"
+ "confidence_score": 1.0,
+ "source": "validator_test_engine_audit_test_audit_mode_prefix_mismatch_run_with_test_kind",
+ "target": "validator_test_engine_audit_make_validator"
},
{
"relation": "calls",
"context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/validator/test_rules.py",
- "source_location": "L456",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/validator/test_engine_audit.py",
+ "source_location": "L283",
"weight": 1.0,
- "source": "validator_test_rules_test_run_with_creation_json_passes",
- "target": "validator_rules_check_orphan"
+ "confidence_score": 1.0,
+ "source": "validator_test_engine_audit_test_audit_unresolved_placeholder_in_directory_name",
+ "target": "validator_test_engine_audit_make_validator"
},
{
"relation": "calls",
"context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/validator/test_rules.py",
- "source_location": "L466",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/validator/test_engine_audit.py",
+ "source_location": "L315",
"weight": 1.0,
- "source": "validator_test_rules_test_missing_id_fires",
- "target": "validator_rules_check_missing_required_field"
+ "confidence_score": 1.0,
+ "source": "validator_test_engine_audit_test_audit_override_active_flag_set_when_problem_class_overridden",
+ "target": "validator_test_engine_audit_make_validator"
},
{
"relation": "calls",
"context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/validator/test_rules.py",
- "source_location": "L480",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/validator/test_engine_audit.py",
+ "source_location": "L338",
"weight": 1.0,
- "source": "validator_test_rules_test_empty_string_value_fires",
- "target": "validator_rules_check_missing_required_field"
+ "confidence_score": 1.0,
+ "source": "validator_test_engine_audit_test_audit_synced_under_prior_policy_flag_for_hard_finding_on_synced_run",
+ "target": "validator_test_engine_audit_make_validator"
},
{
"relation": "calls",
"context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/validator/test_rules.py",
- "source_location": "L493",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/validator/test_engine_audit.py",
+ "source_location": "L367",
"weight": 1.0,
- "source": "validator_test_rules_test_present_id_with_non_empty_value_passes",
- "target": "validator_rules_check_missing_required_field"
+ "confidence_score": 1.0,
+ "source": "validator_test_engine_audit_test_audit_synced_under_prior_policy_flag_for_hard_finding_on_cleaned_run",
+ "target": "validator_test_engine_audit_make_validator"
},
{
"relation": "calls",
"context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/validator/test_rules.py",
- "source_location": "L505",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/validator/test_engine_audit.py",
+ "source_location": "L383",
"weight": 1.0,
- "source": "validator_test_rules_test_field_present_in_template_fields_layer_passes",
- "target": "validator_rules_check_missing_required_field"
+ "confidence_score": 1.0,
+ "source": "validator_test_engine_audit_test_audit_respects_content_scan_max_mib_cap",
+ "target": "validator_test_engine_audit_make_validator"
},
{
"relation": "calls",
"context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/validator/test_rules.py",
- "source_location": "L517",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/validator/test_engine_audit.py",
+ "source_location": "L404",
"weight": 1.0,
- "source": "validator_test_rules_test_none_readme_fields_treats_all_required_as_missing",
- "target": "validator_rules_check_missing_required_field"
+ "confidence_score": 1.0,
+ "source": "validator_test_engine_audit_test_audit_respects_extensions_allowlist",
+ "target": "validator_test_engine_audit_make_validator"
},
{
"relation": "calls",
"context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/validator/test_rules.py",
- "source_location": "L525",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/validator/test_engine_audit.py",
+ "source_location": "L426",
"weight": 1.0,
- "source": "validator_test_rules_test_value_explicit_none_fires",
- "target": "validator_rules_check_missing_required_field"
+ "confidence_score": 1.0,
+ "source": "validator_test_engine_audit_test_audit_detects_binary_files_via_null_byte_sniff",
+ "target": "validator_test_engine_audit_make_validator"
},
{
"relation": "calls",
"context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/validator/test_rules.py",
- "source_location": "L543",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/validator/test_engine_audit.py",
+ "source_location": "L442",
"weight": 1.0,
- "source": "validator_test_rules_test_well_formed_front_matter_passes",
- "target": "validator_rules_check_malformed_yaml_front_matter"
+ "confidence_score": 1.0,
+ "source": "validator_test_engine_audit_test_audit_scans_text_file_content_when_within_limits",
+ "target": "validator_test_engine_audit_make_validator"
},
{
"relation": "calls",
"context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/validator/test_rules.py",
- "source_location": "L548",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/validator/test_engine_audit.py",
+ "source_location": "L464",
"weight": 1.0,
- "source": "validator_test_rules_test_unterminated_front_matter_fires",
- "target": "validator_rules_check_malformed_yaml_front_matter"
+ "confidence_score": 1.0,
+ "source": "validator_test_engine_audit_test_audit_findings_are_sorted_by_tier_then_rule_then_offending_path",
+ "target": "validator_test_engine_audit_make_validator"
},
{
"relation": "calls",
"context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/validator/test_rules.py",
- "source_location": "L557",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/validator/test_engine_audit.py",
+ "source_location": "L481",
"weight": 1.0,
- "source": "validator_test_rules_test_malformed_yaml_in_block_fires",
- "target": "validator_rules_check_malformed_yaml_front_matter"
+ "confidence_score": 1.0,
+ "source": "validator_test_engine_audit_test_query_problems_is_alias_for_audit",
+ "target": "validator_test_engine_audit_make_validator"
},
{
"relation": "calls",
"context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/validator/test_rules.py",
- "source_location": "L564",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/validator/test_engine_audit.py",
+ "source_location": "L542",
"weight": 1.0,
- "source": "validator_test_rules_test_no_front_matter_passes",
- "target": "validator_rules_check_malformed_yaml_front_matter"
+ "confidence_score": 1.0,
+ "source": "validator_test_engine_audit_test_audit_scope_project_path_walks_one_subtree",
+ "target": "validator_test_engine_audit_make_validator"
},
{
"relation": "calls",
"context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/validator/test_rules.py",
- "source_location": "L568",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/validator/test_engine_audit.py",
+ "source_location": "L586",
"weight": 1.0,
- "source": "validator_test_rules_test_empty_content_passes",
- "target": "validator_rules_check_malformed_yaml_front_matter"
+ "confidence_score": 1.0,
+ "source": "validator_test_engine_audit_test_audit_scope_unknown_equipment_id_returns_empty",
+ "target": "validator_test_engine_audit_make_validator"
},
{
"relation": "calls",
"context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/validator/test_rules.py",
- "source_location": "L585",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/validator/test_engine_audit.py",
+ "source_location": "L599",
"weight": 1.0,
- "source": "validator_test_rules_test_front_matter_with_nested_yaml_passes",
- "target": "validator_rules_check_malformed_yaml_front_matter"
+ "confidence_score": 1.0,
+ "source": "validator_test_engine_audit_test_audit_skips_cache_directory_contents",
+ "target": "validator_test_engine_audit_make_validator"
},
{
- "relation": "contains",
+ "relation": "calls",
+ "context": "call",
"confidence": "EXTRACTED",
"source_file": "tests/unit/validator/test_engine_audit.py",
- "source_location": "L46",
+ "source_location": "L637",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_validator_test_engine_audit_py",
- "target": "validator_test_engine_audit_build_creation_json_dict"
+ "source": "validator_test_engine_audit_test_audit_revoked_override_does_not_set_override_active",
+ "target": "validator_test_engine_audit_make_validator"
},
{
- "relation": "contains",
+ "relation": "calls",
+ "context": "call",
"confidence": "EXTRACTED",
"source_file": "tests/unit/validator/test_engine_audit.py",
- "source_location": "L87",
+ "source_location": "L650",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_validator_test_engine_audit_py",
- "target": "validator_test_engine_audit_write_creation_json"
+ "source": "validator_test_engine_audit_test_audit_unresolved_placeholder_in_file_name",
+ "target": "validator_test_engine_audit_make_validator"
},
{
- "relation": "contains",
+ "relation": "calls",
+ "context": "call",
"confidence": "EXTRACTED",
"source_file": "tests/unit/validator/test_engine_audit.py",
- "source_location": "L96",
+ "source_location": "L673",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_validator_test_engine_audit_py",
- "target": "validator_test_engine_audit_make_clean_tree"
+ "source": "validator_test_engine_audit_test_audit_test_run_with_experimental_kind_flagged",
+ "target": "validator_test_engine_audit_make_validator"
},
{
- "relation": "contains",
+ "relation": "calls",
+ "context": "call",
"confidence": "EXTRACTED",
"source_file": "tests/unit/validator/test_engine_audit.py",
- "source_location": "L140",
+ "source_location": "L689",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_validator_test_engine_audit_py",
+ "source": "validator_test_engine_audit_test_audit_returns_list_of_finding_dataclass_instances",
"target": "validator_test_engine_audit_make_validator"
},
{
- "relation": "contains",
+ "relation": "calls",
+ "context": "call",
"confidence": "EXTRACTED",
"source_file": "tests/unit/validator/test_engine_audit.py",
- "source_location": "L164",
+ "source_location": "L734",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_validator_test_engine_audit_py",
- "target": "validator_test_engine_audit_by_rule"
+ "source": "validator_test_engine_audit_test_audit_findings_carry_full_section_11_8_shape",
+ "target": "validator_test_engine_audit_make_validator"
},
{
- "relation": "contains",
+ "relation": "calls",
+ "context": "call",
"confidence": "EXTRACTED",
"source_file": "tests/unit/validator/test_engine_audit.py",
- "source_location": "L173",
+ "source_location": "L762",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_validator_test_engine_audit_py",
- "target": "validator_test_engine_audit_test_audit_clean_tree_returns_empty_list"
+ "source": "validator_test_engine_audit_test_audit_unknown_scope_kind_raises_value_error",
+ "target": "validator_test_engine_audit_make_validator"
},
{
- "relation": "contains",
+ "relation": "calls",
+ "context": "call",
"confidence": "EXTRACTED",
"source_file": "tests/unit/validator/test_engine_audit.py",
- "source_location": "L181",
+ "source_location": "L798",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_validator_test_engine_audit_py",
- "target": "validator_test_engine_audit_test_audit_project_missing_creation_json_returns_orphan"
+ "source": "validator_test_engine_audit_test_audit_handles_unreadable_directory",
+ "target": "validator_test_engine_audit_make_validator"
},
{
- "relation": "contains",
+ "relation": "calls",
+ "context": "call",
"confidence": "EXTRACTED",
"source_file": "tests/unit/validator/test_engine_audit.py",
- "source_location": "L202",
+ "source_location": "L811",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_validator_test_engine_audit_py",
- "target": "validator_test_engine_audit_test_audit_run_missing_creation_json_returns_orphan"
+ "source": "validator_test_engine_audit_test_audit_other_level_subfolder_under_project",
+ "target": "validator_test_engine_audit_make_validator"
},
{
- "relation": "contains",
+ "relation": "calls",
+ "context": "call",
"confidence": "EXTRACTED",
"source_file": "tests/unit/validator/test_engine_audit.py",
- "source_location": "L219",
+ "source_location": "L828",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_validator_test_engine_audit_py",
- "target": "validator_test_engine_audit_test_audit_unsafe_project_name_returns_soft_finding"
+ "source": "validator_test_engine_audit_test_audit_other_under_test_runs_unknown_leaf",
+ "target": "validator_test_engine_audit_make_validator"
},
{
- "relation": "contains",
+ "relation": "calls",
+ "context": "call",
"confidence": "EXTRACTED",
"source_file": "tests/unit/validator/test_engine_audit.py",
- "source_location": "L238",
+ "source_location": "L843",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_validator_test_engine_audit_py",
- "target": "validator_test_engine_audit_test_audit_clean_project_name_has_no_unsafe_finding"
+ "source": "validator_test_engine_audit_test_audit_deeply_nested_other_subfolder",
+ "target": "validator_test_engine_audit_make_validator"
},
{
- "relation": "contains",
+ "relation": "calls",
+ "context": "call",
"confidence": "EXTRACTED",
"source_file": "tests/unit/validator/test_engine_audit.py",
- "source_location": "L246",
+ "source_location": "L870",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_validator_test_engine_audit_py",
- "target": "validator_test_engine_audit_test_audit_mode_prefix_mismatch_run_with_test_kind"
+ "source": "validator_test_engine_audit_test_audit_creation_json_unreadable",
+ "target": "validator_test_engine_audit_make_validator"
},
{
- "relation": "contains",
+ "relation": "calls",
+ "context": "call",
"confidence": "EXTRACTED",
"source_file": "tests/unit/validator/test_engine_audit.py",
- "source_location": "L268",
+ "source_location": "L882",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_validator_test_engine_audit_py",
- "target": "validator_test_engine_audit_test_audit_unresolved_placeholder_in_directory_name"
+ "source": "validator_test_engine_audit_test_audit_creation_json_malformed_raw_decode",
+ "target": "validator_test_engine_audit_make_validator"
},
{
- "relation": "contains",
+ "relation": "calls",
+ "context": "call",
"confidence": "EXTRACTED",
"source_file": "tests/unit/validator/test_engine_audit.py",
- "source_location": "L291",
+ "source_location": "L900",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_validator_test_engine_audit_py",
- "target": "validator_test_engine_audit_test_audit_override_active_flag_set_when_problem_class_overridden"
+ "source": "validator_test_engine_audit_test_audit_creation_json_missing_required_struct_field",
+ "target": "validator_test_engine_audit_make_validator"
},
{
- "relation": "contains",
+ "relation": "calls",
+ "context": "call",
"confidence": "EXTRACTED",
"source_file": "tests/unit/validator/test_engine_audit.py",
- "source_location": "L324",
+ "source_location": "L914",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_validator_test_engine_audit_py",
- "target": "validator_test_engine_audit_test_audit_synced_under_prior_policy_flag_for_hard_finding_on_synced_run"
+ "source": "validator_test_engine_audit_test_audit_readme_fields_json_decode_failure",
+ "target": "validator_test_engine_audit_make_validator"
},
{
- "relation": "contains",
+ "relation": "calls",
+ "context": "call",
"confidence": "EXTRACTED",
"source_file": "tests/unit/validator/test_engine_audit.py",
- "source_location": "L348",
+ "source_location": "L949",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_validator_test_engine_audit_py",
- "target": "validator_test_engine_audit_test_audit_synced_under_prior_policy_flag_for_hard_finding_on_cleaned_run"
+ "source": "validator_test_engine_audit_test_audit_missing_required_field_with_required_ids",
+ "target": "validator_test_engine_audit_make_validator"
},
{
- "relation": "contains",
+ "relation": "calls",
+ "context": "call",
"confidence": "EXTRACTED",
"source_file": "tests/unit/validator/test_engine_audit.py",
- "source_location": "L374",
+ "source_location": "L985",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_validator_test_engine_audit_py",
- "target": "validator_test_engine_audit_test_audit_respects_content_scan_max_mib_cap"
+ "source": "validator_test_engine_audit_test_audit_missing_required_field_required_ids_not_a_list",
+ "target": "validator_test_engine_audit_make_validator"
},
{
- "relation": "contains",
+ "relation": "calls",
+ "context": "call",
"confidence": "EXTRACTED",
"source_file": "tests/unit/validator/test_engine_audit.py",
- "source_location": "L398",
+ "source_location": "L1009",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_validator_test_engine_audit_py",
- "target": "validator_test_engine_audit_test_audit_respects_extensions_allowlist"
+ "source": "validator_test_engine_audit_test_audit_content_scan_skips_test_runs_marker_file",
+ "target": "validator_test_engine_audit_make_validator"
},
{
- "relation": "contains",
+ "relation": "calls",
+ "context": "call",
"confidence": "EXTRACTED",
"source_file": "tests/unit/validator/test_engine_audit.py",
- "source_location": "L417",
+ "source_location": "L1038",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_validator_test_engine_audit_py",
- "target": "validator_test_engine_audit_test_audit_detects_binary_files_via_null_byte_sniff"
+ "source": "validator_test_engine_audit_test_audit_content_scan_eligibility_returns_false_on_stat_failure",
+ "target": "validator_test_engine_audit_make_validator"
},
{
- "relation": "contains",
+ "relation": "calls",
+ "context": "call",
"confidence": "EXTRACTED",
"source_file": "tests/unit/validator/test_engine_audit.py",
- "source_location": "L436",
+ "source_location": "L1065",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_validator_test_engine_audit_py",
- "target": "validator_test_engine_audit_test_audit_scans_text_file_content_when_within_limits"
+ "source": "validator_test_engine_audit_test_audit_read_text_for_scan_handles_oserror",
+ "target": "validator_test_engine_audit_make_validator"
},
{
- "relation": "contains",
+ "relation": "rationale_for",
"confidence": "EXTRACTED",
"source_file": "tests/unit/validator/test_engine_audit.py",
- "source_location": "L452",
+ "source_location": "L148",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_validator_test_engine_audit_py",
- "target": "validator_test_engine_audit_test_audit_findings_are_sorted_by_tier_then_rule_then_offending_path"
+ "source": "validator_test_engine_audit_rationale_148",
+ "target": "validator_test_engine_audit_make_validator"
},
{
- "relation": "contains",
- "confidence": "EXTRACTED",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
"source_file": "tests/unit/validator/test_engine_audit.py",
- "source_location": "L474",
+ "source_location": "L149",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "tests_unit_validator_test_engine_audit_py",
- "target": "validator_test_engine_audit_test_query_problems_is_alias_for_audit"
+ "source": "validator_test_engine_audit_make_validator",
+ "target": "config_models_validatorconfig"
},
{
- "relation": "contains",
+ "relation": "calls",
+ "context": "call",
"confidence": "EXTRACTED",
"source_file": "tests/unit/validator/test_engine_audit.py",
- "source_location": "L487",
+ "source_location": "L195",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_validator_test_engine_audit_py",
- "target": "validator_test_engine_audit_test_audit_scope_equipment_id_resolves_to_configured_root"
+ "source": "validator_test_engine_audit_test_audit_project_missing_creation_json_returns_orphan",
+ "target": "validator_test_engine_audit_by_rule"
},
{
- "relation": "contains",
+ "relation": "calls",
+ "context": "call",
"confidence": "EXTRACTED",
"source_file": "tests/unit/validator/test_engine_audit.py",
- "source_location": "L524",
+ "source_location": "L213",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_validator_test_engine_audit_py",
- "target": "validator_test_engine_audit_test_audit_scope_project_path_walks_one_subtree"
+ "source": "validator_test_engine_audit_test_audit_run_missing_creation_json_returns_orphan",
+ "target": "validator_test_engine_audit_by_rule"
},
{
- "relation": "contains",
+ "relation": "calls",
+ "context": "call",
"confidence": "EXTRACTED",
"source_file": "tests/unit/validator/test_engine_audit.py",
- "source_location": "L549",
+ "source_location": "L232",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_validator_test_engine_audit_py",
- "target": "validator_test_engine_audit_test_audit_scope_all_walks_every_configured_equipment"
+ "source": "validator_test_engine_audit_test_audit_unsafe_project_name_returns_soft_finding",
+ "target": "validator_test_engine_audit_by_rule"
},
{
- "relation": "contains",
+ "relation": "calls",
+ "context": "call",
"confidence": "EXTRACTED",
"source_file": "tests/unit/validator/test_engine_audit.py",
- "source_location": "L584",
+ "source_location": "L243",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_validator_test_engine_audit_py",
- "target": "validator_test_engine_audit_test_audit_scope_unknown_equipment_id_returns_empty"
+ "source": "validator_test_engine_audit_test_audit_clean_project_name_has_no_unsafe_finding",
+ "target": "validator_test_engine_audit_by_rule"
},
{
- "relation": "contains",
+ "relation": "calls",
+ "context": "call",
"confidence": "EXTRACTED",
"source_file": "tests/unit/validator/test_engine_audit.py",
- "source_location": "L591",
+ "source_location": "L260",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_validator_test_engine_audit_py",
- "target": "validator_test_engine_audit_test_audit_skips_cache_directory_contents"
+ "source": "validator_test_engine_audit_test_audit_mode_prefix_mismatch_run_with_test_kind",
+ "target": "validator_test_engine_audit_by_rule"
},
{
- "relation": "contains",
+ "relation": "calls",
+ "context": "call",
"confidence": "EXTRACTED",
"source_file": "tests/unit/validator/test_engine_audit.py",
- "source_location": "L607",
+ "source_location": "L285",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_validator_test_engine_audit_py",
- "target": "validator_test_engine_audit_test_audit_revoked_override_does_not_set_override_active"
+ "source": "validator_test_engine_audit_test_audit_unresolved_placeholder_in_directory_name",
+ "target": "validator_test_engine_audit_by_rule"
},
{
- "relation": "contains",
+ "relation": "calls",
+ "context": "call",
"confidence": "EXTRACTED",
"source_file": "tests/unit/validator/test_engine_audit.py",
- "source_location": "L644",
+ "source_location": "L317",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_validator_test_engine_audit_py",
- "target": "validator_test_engine_audit_test_audit_unresolved_placeholder_in_file_name"
+ "source": "validator_test_engine_audit_test_audit_override_active_flag_set_when_problem_class_overridden",
+ "target": "validator_test_engine_audit_by_rule"
},
{
- "relation": "contains",
+ "relation": "calls",
+ "context": "call",
"confidence": "EXTRACTED",
"source_file": "tests/unit/validator/test_engine_audit.py",
- "source_location": "L660",
+ "source_location": "L340",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_validator_test_engine_audit_py",
- "target": "validator_test_engine_audit_test_audit_test_run_with_experimental_kind_flagged"
+ "source": "validator_test_engine_audit_test_audit_synced_under_prior_policy_flag_for_hard_finding_on_synced_run",
+ "target": "validator_test_engine_audit_by_rule"
},
{
- "relation": "contains",
+ "relation": "calls",
+ "context": "call",
"confidence": "EXTRACTED",
"source_file": "tests/unit/validator/test_engine_audit.py",
- "source_location": "L680",
+ "source_location": "L369",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_validator_test_engine_audit_py",
- "target": "validator_test_engine_audit_test_audit_returns_list_of_finding_dataclass_instances"
+ "source": "validator_test_engine_audit_test_audit_synced_under_prior_policy_flag_for_hard_finding_on_cleaned_run",
+ "target": "validator_test_engine_audit_by_rule"
},
{
- "relation": "contains",
+ "relation": "calls",
+ "context": "call",
"confidence": "EXTRACTED",
"source_file": "tests/unit/validator/test_engine_audit.py",
- "source_location": "L695",
+ "source_location": "L639",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_validator_test_engine_audit_py",
- "target": "validator_test_engine_audit_test_audit_includes_staging_root_when_orchestrator_on"
+ "source": "validator_test_engine_audit_test_audit_revoked_override_does_not_set_override_active",
+ "target": "validator_test_engine_audit_by_rule"
},
{
- "relation": "contains",
+ "relation": "calls",
+ "context": "call",
"confidence": "EXTRACTED",
"source_file": "tests/unit/validator/test_engine_audit.py",
- "source_location": "L722",
+ "source_location": "L675",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_validator_test_engine_audit_py",
- "target": "validator_test_engine_audit_test_audit_findings_carry_full_section_11_8_shape"
+ "source": "validator_test_engine_audit_test_audit_test_run_with_experimental_kind_flagged",
+ "target": "validator_test_engine_audit_by_rule"
},
{
- "relation": "contains",
+ "relation": "rationale_for",
"confidence": "EXTRACTED",
"source_file": "tests/unit/validator/test_engine_audit.py",
- "source_location": "L760",
+ "source_location": "L174",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_validator_test_engine_audit_py",
- "target": "validator_test_engine_audit_test_audit_unknown_scope_kind_raises_value_error"
+ "source": "validator_test_engine_audit_rationale_174",
+ "target": "validator_test_engine_audit_test_audit_clean_tree_returns_empty_list"
},
{
- "relation": "contains",
+ "relation": "rationale_for",
"confidence": "EXTRACTED",
"source_file": "tests/unit/validator/test_engine_audit.py",
- "source_location": "L767",
+ "source_location": "L182",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_validator_test_engine_audit_py",
- "target": "validator_test_engine_audit_test_audit_root_does_not_exist_returns_empty"
+ "source": "validator_test_engine_audit_rationale_182",
+ "target": "validator_test_engine_audit_test_audit_project_missing_creation_json_returns_orphan"
},
{
- "relation": "contains",
+ "relation": "rationale_for",
"confidence": "EXTRACTED",
"source_file": "tests/unit/validator/test_engine_audit.py",
- "source_location": "L775",
+ "source_location": "L203",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_validator_test_engine_audit_py",
- "target": "validator_test_engine_audit_test_audit_root_is_a_file_returns_empty"
+ "source": "validator_test_engine_audit_rationale_203",
+ "target": "validator_test_engine_audit_test_audit_run_missing_creation_json_returns_orphan"
},
{
- "relation": "contains",
+ "relation": "rationale_for",
"confidence": "EXTRACTED",
"source_file": "tests/unit/validator/test_engine_audit.py",
- "source_location": "L783",
+ "source_location": "L220",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_validator_test_engine_audit_py",
- "target": "validator_test_engine_audit_test_audit_handles_unreadable_directory"
+ "source": "validator_test_engine_audit_rationale_220",
+ "target": "validator_test_engine_audit_test_audit_unsafe_project_name_returns_soft_finding"
},
{
- "relation": "contains",
+ "relation": "rationale_for",
"confidence": "EXTRACTED",
"source_file": "tests/unit/validator/test_engine_audit.py",
- "source_location": "L803",
+ "source_location": "L239",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_validator_test_engine_audit_py",
- "target": "validator_test_engine_audit_test_audit_other_level_subfolder_under_project"
+ "source": "validator_test_engine_audit_rationale_239",
+ "target": "validator_test_engine_audit_test_audit_clean_project_name_has_no_unsafe_finding"
},
{
- "relation": "contains",
+ "relation": "rationale_for",
"confidence": "EXTRACTED",
"source_file": "tests/unit/validator/test_engine_audit.py",
- "source_location": "L819",
+ "source_location": "L247",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_validator_test_engine_audit_py",
- "target": "validator_test_engine_audit_test_audit_other_under_test_runs_unknown_leaf"
+ "source": "validator_test_engine_audit_rationale_247",
+ "target": "validator_test_engine_audit_test_audit_mode_prefix_mismatch_run_with_test_kind"
},
{
- "relation": "contains",
+ "relation": "rationale_for",
"confidence": "EXTRACTED",
"source_file": "tests/unit/validator/test_engine_audit.py",
- "source_location": "L835",
+ "source_location": "L269",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_validator_test_engine_audit_py",
- "target": "validator_test_engine_audit_test_audit_deeply_nested_other_subfolder"
+ "source": "validator_test_engine_audit_rationale_269",
+ "target": "validator_test_engine_audit_test_audit_unresolved_placeholder_in_directory_name"
},
{
- "relation": "contains",
+ "relation": "rationale_for",
"confidence": "EXTRACTED",
"source_file": "tests/unit/validator/test_engine_audit.py",
- "source_location": "L854",
+ "source_location": "L294",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_validator_test_engine_audit_py",
- "target": "validator_test_engine_audit_test_audit_creation_json_unreadable"
+ "source": "validator_test_engine_audit_rationale_294",
+ "target": "validator_test_engine_audit_test_audit_override_active_flag_set_when_problem_class_overridden"
},
{
- "relation": "contains",
+ "relation": "rationale_for",
"confidence": "EXTRACTED",
"source_file": "tests/unit/validator/test_engine_audit.py",
- "source_location": "L876",
+ "source_location": "L327",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_validator_test_engine_audit_py",
- "target": "validator_test_engine_audit_test_audit_creation_json_malformed_raw_decode"
+ "source": "validator_test_engine_audit_rationale_327",
+ "target": "validator_test_engine_audit_test_audit_synced_under_prior_policy_flag_for_hard_finding_on_synced_run"
},
{
- "relation": "contains",
+ "relation": "rationale_for",
"confidence": "EXTRACTED",
"source_file": "tests/unit/validator/test_engine_audit.py",
- "source_location": "L888",
+ "source_location": "L351",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_validator_test_engine_audit_py",
- "target": "validator_test_engine_audit_test_audit_creation_json_missing_required_struct_field"
+ "source": "validator_test_engine_audit_rationale_351",
+ "target": "validator_test_engine_audit_test_audit_synced_under_prior_policy_flag_for_hard_finding_on_cleaned_run"
},
{
- "relation": "contains",
+ "relation": "rationale_for",
"confidence": "EXTRACTED",
"source_file": "tests/unit/validator/test_engine_audit.py",
- "source_location": "L908",
+ "source_location": "L375",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_validator_test_engine_audit_py",
- "target": "validator_test_engine_audit_test_audit_readme_fields_json_decode_failure"
+ "source": "validator_test_engine_audit_rationale_375",
+ "target": "validator_test_engine_audit_test_audit_respects_content_scan_max_mib_cap"
},
{
- "relation": "contains",
+ "relation": "rationale_for",
"confidence": "EXTRACTED",
"source_file": "tests/unit/validator/test_engine_audit.py",
- "source_location": "L920",
+ "source_location": "L399",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_validator_test_engine_audit_py",
- "target": "validator_test_engine_audit_test_audit_missing_required_field_with_required_ids"
+ "source": "validator_test_engine_audit_rationale_399",
+ "target": "validator_test_engine_audit_test_audit_respects_extensions_allowlist"
},
{
- "relation": "contains",
+ "relation": "rationale_for",
"confidence": "EXTRACTED",
"source_file": "tests/unit/validator/test_engine_audit.py",
- "source_location": "L956",
+ "source_location": "L418",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_validator_test_engine_audit_py",
- "target": "validator_test_engine_audit_test_audit_missing_required_field_required_ids_not_a_list"
+ "source": "validator_test_engine_audit_rationale_418",
+ "target": "validator_test_engine_audit_test_audit_detects_binary_files_via_null_byte_sniff"
},
{
- "relation": "contains",
+ "relation": "rationale_for",
"confidence": "EXTRACTED",
"source_file": "tests/unit/validator/test_engine_audit.py",
- "source_location": "L991",
+ "source_location": "L437",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_validator_test_engine_audit_py",
- "target": "validator_test_engine_audit_test_audit_content_scan_skips_test_runs_marker_file"
+ "source": "validator_test_engine_audit_rationale_437",
+ "target": "validator_test_engine_audit_test_audit_scans_text_file_content_when_within_limits"
},
{
- "relation": "contains",
+ "relation": "rationale_for",
"confidence": "EXTRACTED",
"source_file": "tests/unit/validator/test_engine_audit.py",
- "source_location": "L1021",
+ "source_location": "L455",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_validator_test_engine_audit_py",
- "target": "validator_test_engine_audit_test_audit_content_scan_eligibility_returns_false_on_stat_failure"
+ "source": "validator_test_engine_audit_rationale_455",
+ "target": "validator_test_engine_audit_test_audit_findings_are_sorted_by_tier_then_rule_then_offending_path"
},
{
- "relation": "contains",
+ "relation": "rationale_for",
"confidence": "EXTRACTED",
"source_file": "tests/unit/validator/test_engine_audit.py",
- "source_location": "L1048",
+ "source_location": "L475",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_validator_test_engine_audit_py",
- "target": "validator_test_engine_audit_test_audit_read_text_for_scan_handles_oserror"
+ "source": "validator_test_engine_audit_rationale_475",
+ "target": "validator_test_engine_audit_test_query_problems_is_alias_for_audit"
},
{
- "relation": "contains",
+ "relation": "rationale_for",
"confidence": "EXTRACTED",
"source_file": "tests/unit/validator/test_engine_audit.py",
- "source_location": "L1075",
+ "source_location": "L488",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_validator_test_engine_audit_py",
- "target": "validator_test_engine_audit_test_classify_level_value_error_returns_other"
+ "source": "validator_test_engine_audit_rationale_488",
+ "target": "validator_test_engine_audit_test_audit_scope_equipment_id_resolves_to_configured_root"
},
{
- "relation": "contains",
+ "relation": "rationale_for",
"confidence": "EXTRACTED",
"source_file": "tests/unit/validator/test_engine_audit.py",
- "source_location": "L1089",
+ "source_location": "L525",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_validator_test_engine_audit_py",
- "target": "validator_test_engine_audit_test_finding_sort_unknown_tier_sorts_after_committed_tiers"
+ "source": "validator_test_engine_audit_rationale_525",
+ "target": "validator_test_engine_audit_test_audit_scope_project_path_walks_one_subtree"
},
{
- "relation": "contains",
+ "relation": "rationale_for",
"confidence": "EXTRACTED",
"source_file": "tests/unit/validator/test_engine_audit.py",
- "source_location": "L1113",
+ "source_location": "L550",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_validator_test_engine_audit_py",
- "target": "validator_test_engine_audit_test_level_for_orphan_returns_none_for_unmapped_levels"
+ "source": "validator_test_engine_audit_rationale_550",
+ "target": "validator_test_engine_audit_test_audit_scope_all_walks_every_configured_equipment"
},
{
- "relation": "contains",
+ "relation": "rationale_for",
"confidence": "EXTRACTED",
"source_file": "tests/unit/validator/test_engine_audit.py",
- "source_location": "L1122",
+ "source_location": "L585",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_validator_test_engine_audit_py",
- "target": "validator_test_engine_audit_test_validator_from_config_builds_engine"
+ "source": "validator_test_engine_audit_rationale_585",
+ "target": "validator_test_engine_audit_test_audit_scope_unknown_equipment_id_returns_empty"
},
{
- "relation": "contains",
+ "relation": "rationale_for",
"confidence": "EXTRACTED",
"source_file": "tests/unit/validator/test_engine_audit.py",
- "source_location": "L1140",
+ "source_location": "L592",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_validator_test_engine_audit_py",
- "target": "validator_test_engine_audit_test_validator_from_config_orchestrator_disabled"
+ "source": "validator_test_engine_audit_rationale_592",
+ "target": "validator_test_engine_audit_test_audit_skips_cache_directory_contents"
},
{
- "relation": "contains",
+ "relation": "rationale_for",
"confidence": "EXTRACTED",
"source_file": "tests/unit/validator/test_engine_audit.py",
- "source_location": "L1154",
+ "source_location": "L608",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_validator_test_engine_audit_py",
- "target": "validator_test_engine_audit_test_validator_from_config_no_orchestrator_attr"
+ "source": "validator_test_engine_audit_rationale_608",
+ "target": "validator_test_engine_audit_test_audit_revoked_override_does_not_set_override_active"
},
{
- "relation": "contains",
+ "relation": "rationale_for",
"confidence": "EXTRACTED",
"source_file": "tests/unit/validator/test_engine_audit.py",
- "source_location": "L1165",
+ "source_location": "L645",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_validator_test_engine_audit_py",
- "target": "validator_test_engine_audit_test_classify_level_unrelated_dir_returns_other"
+ "source": "validator_test_engine_audit_rationale_645",
+ "target": "validator_test_engine_audit_test_audit_unresolved_placeholder_in_file_name"
},
{
- "relation": "contains",
+ "relation": "rationale_for",
"confidence": "EXTRACTED",
"source_file": "tests/unit/validator/test_engine_audit.py",
- "source_location": "L1175",
+ "source_location": "L661",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_validator_test_engine_audit_py",
- "target": "validator_test_engine_audit_test_compute_run_path_unrelated_other_returns_input"
+ "source": "validator_test_engine_audit_rationale_661",
+ "target": "validator_test_engine_audit_test_audit_test_run_with_experimental_kind_flagged"
},
{
- "relation": "contains",
+ "relation": "rationale_for",
"confidence": "EXTRACTED",
"source_file": "tests/unit/validator/test_engine_audit.py",
- "source_location": "L1187",
+ "source_location": "L681",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_validator_test_engine_audit_py",
- "target": "validator_test_engine_audit_test_compute_run_path_root_other_returns_root"
+ "source": "validator_test_engine_audit_rationale_681",
+ "target": "validator_test_engine_audit_test_audit_returns_list_of_finding_dataclass_instances"
},
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
"source_file": "tests/unit/validator/test_engine_audit.py",
- "source_location": "L1",
+ "source_location": "L696",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "validator_test_engine_audit_rationale_1",
- "target": "tests_unit_validator_test_engine_audit_py"
+ "source": "validator_test_engine_audit_rationale_696",
+ "target": "validator_test_engine_audit_test_audit_includes_staging_root_when_orchestrator_on"
},
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
"source_file": "tests/unit/validator/test_engine_audit.py",
- "source_location": "L187",
+ "source_location": "L726",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "validator_test_engine_audit_rationale_187",
- "target": "tests_unit_validator_test_engine_audit_py"
+ "source": "validator_test_engine_audit_rationale_726",
+ "target": "validator_test_engine_audit_test_audit_findings_carry_full_section_11_8_shape"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "rationale_for",
"confidence": "EXTRACTED",
"source_file": "tests/unit/validator/test_engine_audit.py",
- "source_location": "L121",
+ "source_location": "L761",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "validator_test_engine_audit_make_clean_tree",
- "target": "validator_test_engine_audit_build_creation_json_dict"
+ "source": "validator_test_engine_audit_rationale_761",
+ "target": "validator_test_engine_audit_test_audit_unknown_scope_kind_raises_value_error"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "rationale_for",
"confidence": "EXTRACTED",
"source_file": "tests/unit/validator/test_engine_audit.py",
- "source_location": "L190",
+ "source_location": "L768",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "validator_test_engine_audit_test_audit_project_missing_creation_json_returns_orphan",
- "target": "validator_test_engine_audit_build_creation_json_dict"
+ "source": "validator_test_engine_audit_rationale_768",
+ "target": "validator_test_engine_audit_test_audit_root_does_not_exist_returns_empty"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "rationale_for",
"confidence": "EXTRACTED",
"source_file": "tests/unit/validator/test_engine_audit.py",
- "source_location": "L208",
+ "source_location": "L776",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "validator_test_engine_audit_test_audit_run_missing_creation_json_returns_orphan",
- "target": "validator_test_engine_audit_build_creation_json_dict"
+ "source": "validator_test_engine_audit_rationale_776",
+ "target": "validator_test_engine_audit_test_audit_root_is_a_file_returns_empty"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "rationale_for",
"confidence": "EXTRACTED",
"source_file": "tests/unit/validator/test_engine_audit.py",
- "source_location": "L227",
+ "source_location": "L784",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "validator_test_engine_audit_test_audit_unsafe_project_name_returns_soft_finding",
- "target": "validator_test_engine_audit_build_creation_json_dict"
+ "source": "validator_test_engine_audit_rationale_784",
+ "target": "validator_test_engine_audit_test_audit_handles_unreadable_directory"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "rationale_for",
"confidence": "EXTRACTED",
"source_file": "tests/unit/validator/test_engine_audit.py",
- "source_location": "L252",
+ "source_location": "L804",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "validator_test_engine_audit_test_audit_mode_prefix_mismatch_run_with_test_kind",
- "target": "validator_test_engine_audit_build_creation_json_dict"
+ "source": "validator_test_engine_audit_rationale_804",
+ "target": "validator_test_engine_audit_test_audit_other_level_subfolder_under_project"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "rationale_for",
"confidence": "EXTRACTED",
"source_file": "tests/unit/validator/test_engine_audit.py",
- "source_location": "L277",
+ "source_location": "L820",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "validator_test_engine_audit_test_audit_unresolved_placeholder_in_directory_name",
- "target": "validator_test_engine_audit_build_creation_json_dict"
+ "source": "validator_test_engine_audit_rationale_820",
+ "target": "validator_test_engine_audit_test_audit_other_under_test_runs_unknown_leaf"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "rationale_for",
"confidence": "EXTRACTED",
"source_file": "tests/unit/validator/test_engine_audit.py",
- "source_location": "L309",
+ "source_location": "L836",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "validator_test_engine_audit_test_audit_override_active_flag_set_when_problem_class_overridden",
- "target": "validator_test_engine_audit_build_creation_json_dict"
+ "source": "validator_test_engine_audit_rationale_836",
+ "target": "validator_test_engine_audit_test_audit_deeply_nested_other_subfolder"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "rationale_for",
"confidence": "EXTRACTED",
"source_file": "tests/unit/validator/test_engine_audit.py",
- "source_location": "L332",
+ "source_location": "L858",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "validator_test_engine_audit_test_audit_synced_under_prior_policy_flag_for_hard_finding_on_synced_run",
- "target": "validator_test_engine_audit_build_creation_json_dict"
+ "source": "validator_test_engine_audit_rationale_858",
+ "target": "validator_test_engine_audit_test_audit_creation_json_unreadable"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "rationale_for",
"confidence": "EXTRACTED",
"source_file": "tests/unit/validator/test_engine_audit.py",
- "source_location": "L361",
+ "source_location": "L877",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "validator_test_engine_audit_test_audit_synced_under_prior_policy_flag_for_hard_finding_on_cleaned_run",
- "target": "validator_test_engine_audit_build_creation_json_dict"
+ "source": "validator_test_engine_audit_rationale_877",
+ "target": "validator_test_engine_audit_test_audit_creation_json_malformed_raw_decode"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "rationale_for",
"confidence": "EXTRACTED",
"source_file": "tests/unit/validator/test_engine_audit.py",
- "source_location": "L462",
+ "source_location": "L889",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "validator_test_engine_audit_test_audit_findings_are_sorted_by_tier_then_rule_then_offending_path",
- "target": "validator_test_engine_audit_build_creation_json_dict"
+ "source": "validator_test_engine_audit_rationale_889",
+ "target": "validator_test_engine_audit_test_audit_creation_json_missing_required_struct_field"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "rationale_for",
"confidence": "EXTRACTED",
"source_file": "tests/unit/validator/test_engine_audit.py",
- "source_location": "L479",
+ "source_location": "L909",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "validator_test_engine_audit_test_query_problems_is_alias_for_audit",
- "target": "validator_test_engine_audit_build_creation_json_dict"
+ "source": "validator_test_engine_audit_rationale_909",
+ "target": "validator_test_engine_audit_test_audit_readme_fields_json_decode_failure"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "rationale_for",
"confidence": "EXTRACTED",
"source_file": "tests/unit/validator/test_engine_audit.py",
- "source_location": "L495",
+ "source_location": "L921",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "validator_test_engine_audit_test_audit_scope_equipment_id_resolves_to_configured_root",
- "target": "validator_test_engine_audit_build_creation_json_dict"
+ "source": "validator_test_engine_audit_rationale_921",
+ "target": "validator_test_engine_audit_test_audit_missing_required_field_with_required_ids"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "rationale_for",
"confidence": "EXTRACTED",
"source_file": "tests/unit/validator/test_engine_audit.py",
- "source_location": "L531",
+ "source_location": "L957",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "validator_test_engine_audit_test_audit_scope_project_path_walks_one_subtree",
- "target": "validator_test_engine_audit_build_creation_json_dict"
+ "source": "validator_test_engine_audit_rationale_957",
+ "target": "validator_test_engine_audit_test_audit_missing_required_field_required_ids_not_a_list"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "rationale_for",
"confidence": "EXTRACTED",
"source_file": "tests/unit/validator/test_engine_audit.py",
- "source_location": "L557",
+ "source_location": "L992",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "validator_test_engine_audit_test_audit_scope_all_walks_every_configured_equipment",
- "target": "validator_test_engine_audit_build_creation_json_dict"
+ "source": "validator_test_engine_audit_rationale_992",
+ "target": "validator_test_engine_audit_test_audit_content_scan_skips_test_runs_marker_file"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "rationale_for",
"confidence": "EXTRACTED",
"source_file": "tests/unit/validator/test_engine_audit.py",
- "source_location": "L631",
+ "source_location": "L1025",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "validator_test_engine_audit_test_audit_revoked_override_does_not_set_override_active",
- "target": "validator_test_engine_audit_build_creation_json_dict"
+ "source": "validator_test_engine_audit_rationale_1025",
+ "target": "validator_test_engine_audit_test_audit_content_scan_eligibility_returns_false_on_stat_failure"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "rationale_for",
"confidence": "EXTRACTED",
"source_file": "tests/unit/validator/test_engine_audit.py",
- "source_location": "L667",
+ "source_location": "L1052",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "validator_test_engine_audit_test_audit_test_run_with_experimental_kind_flagged",
- "target": "validator_test_engine_audit_build_creation_json_dict"
+ "source": "validator_test_engine_audit_rationale_1052",
+ "target": "validator_test_engine_audit_test_audit_read_text_for_scan_handles_oserror"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "rationale_for",
"confidence": "EXTRACTED",
"source_file": "tests/unit/validator/test_engine_audit.py",
- "source_location": "L686",
+ "source_location": "L1076",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "validator_test_engine_audit_test_audit_returns_list_of_finding_dataclass_instances",
- "target": "validator_test_engine_audit_build_creation_json_dict"
+ "source": "validator_test_engine_audit_rationale_1076",
+ "target": "validator_test_engine_audit_test_classify_level_value_error_returns_other"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "rationale_for",
"confidence": "EXTRACTED",
"source_file": "tests/unit/validator/test_engine_audit.py",
- "source_location": "L702",
+ "source_location": "L1090",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "validator_test_engine_audit_test_audit_includes_staging_root_when_orchestrator_on",
- "target": "validator_test_engine_audit_build_creation_json_dict"
+ "source": "validator_test_engine_audit_rationale_1090",
+ "target": "validator_test_engine_audit_test_finding_sort_unknown_tier_sorts_after_committed_tiers"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "rationale_for",
"confidence": "EXTRACTED",
"source_file": "tests/unit/validator/test_engine_audit.py",
- "source_location": "L731",
+ "source_location": "L1114",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "validator_test_engine_audit_test_audit_findings_carry_full_section_11_8_shape",
- "target": "validator_test_engine_audit_build_creation_json_dict"
+ "source": "validator_test_engine_audit_rationale_1114",
+ "target": "validator_test_engine_audit_test_level_for_orphan_returns_none_for_unmapped_levels"
},
{
"relation": "calls",
"context": "call",
- "confidence": "EXTRACTED",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
"source_file": "tests/unit/validator/test_engine_audit.py",
- "source_location": "L809",
+ "source_location": "L1117",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "validator_test_engine_audit_test_audit_other_level_subfolder_under_project",
- "target": "validator_test_engine_audit_build_creation_json_dict"
+ "source": "validator_test_engine_audit_test_level_for_orphan_returns_none_for_unmapped_levels",
+ "target": "validator_engine_level_for_orphan"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "rationale_for",
"confidence": "EXTRACTED",
"source_file": "tests/unit/validator/test_engine_audit.py",
- "source_location": "L826",
+ "source_location": "L1123",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "validator_test_engine_audit_test_audit_other_under_test_runs_unknown_leaf",
- "target": "validator_test_engine_audit_build_creation_json_dict"
+ "source": "validator_test_engine_audit_rationale_1123",
+ "target": "validator_test_engine_audit_test_validator_from_config_builds_engine"
},
{
"relation": "calls",
"context": "call",
- "confidence": "EXTRACTED",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
"source_file": "tests/unit/validator/test_engine_audit.py",
- "source_location": "L898",
+ "source_location": "L1132",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "validator_test_engine_audit_test_audit_creation_json_missing_required_struct_field",
- "target": "validator_test_engine_audit_build_creation_json_dict"
+ "source": "validator_test_engine_audit_test_validator_from_config_builds_engine",
+ "target": "config_models_validatorconfig"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "rationale_for",
"confidence": "EXTRACTED",
"source_file": "tests/unit/validator/test_engine_audit.py",
- "source_location": "L927",
+ "source_location": "L1141",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "validator_test_engine_audit_test_audit_missing_required_field_with_required_ids",
- "target": "validator_test_engine_audit_build_creation_json_dict"
+ "source": "validator_test_engine_audit_rationale_1141",
+ "target": "validator_test_engine_audit_test_validator_from_config_orchestrator_disabled"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "rationale_for",
"confidence": "EXTRACTED",
"source_file": "tests/unit/validator/test_engine_audit.py",
- "source_location": "L964",
+ "source_location": "L1155",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "validator_test_engine_audit_test_audit_missing_required_field_required_ids_not_a_list",
- "target": "validator_test_engine_audit_build_creation_json_dict"
+ "source": "validator_test_engine_audit_rationale_1155",
+ "target": "validator_test_engine_audit_test_validator_from_config_no_orchestrator_attr"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "rationale_for",
"confidence": "EXTRACTED",
"source_file": "tests/unit/validator/test_engine_audit.py",
- "source_location": "L998",
+ "source_location": "L1166",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "validator_test_engine_audit_test_audit_content_scan_skips_test_runs_marker_file",
- "target": "validator_test_engine_audit_build_creation_json_dict"
+ "source": "validator_test_engine_audit_rationale_1166",
+ "target": "validator_test_engine_audit_test_classify_level_unrelated_dir_returns_other"
},
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
"source_file": "tests/unit/validator/test_engine_audit.py",
- "source_location": "L56",
+ "source_location": "L1176",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "validator_test_engine_audit_rationale_56",
- "target": "validator_test_engine_audit_build_creation_json_dict"
+ "source": "validator_test_engine_audit_rationale_1176",
+ "target": "validator_test_engine_audit_test_compute_run_path_unrelated_other_returns_input"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "rationale_for",
"confidence": "EXTRACTED",
"source_file": "tests/unit/validator/test_engine_audit.py",
- "source_location": "L119",
+ "source_location": "L1188",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "validator_test_engine_audit_make_clean_tree",
- "target": "validator_test_engine_audit_write_creation_json"
+ "source": "validator_test_engine_audit_rationale_1188",
+ "target": "validator_test_engine_audit_test_compute_run_path_root_other_returns_root"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/validator/test_engine_audit.py",
- "source_location": "L188",
+ "source_file": "tests/unit/cache/test_log_writer.py",
+ "source_location": "L33",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "validator_test_engine_audit_test_audit_project_missing_creation_json_returns_orphan",
- "target": "validator_test_engine_audit_write_creation_json"
+ "source": "tests_unit_cache_test_log_writer_py",
+ "target": "cache_test_log_writer_test_format_log_line_with_all_tags_matches_spec_example"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/validator/test_engine_audit.py",
- "source_location": "L208",
+ "source_file": "tests/unit/cache/test_log_writer.py",
+ "source_location": "L52",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "validator_test_engine_audit_test_audit_run_missing_creation_json_returns_orphan",
- "target": "validator_test_engine_audit_write_creation_json"
+ "source": "tests_unit_cache_test_log_writer_py",
+ "target": "cache_test_log_writer_test_format_log_line_with_run_id_includes_run_tag"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/validator/test_engine_audit.py",
- "source_location": "L227",
+ "source_file": "tests/unit/cache/test_log_writer.py",
+ "source_location": "L70",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "validator_test_engine_audit_test_audit_unsafe_project_name_returns_soft_finding",
- "target": "validator_test_engine_audit_write_creation_json"
+ "source": "tests_unit_cache_test_log_writer_py",
+ "target": "cache_test_log_writer_test_format_log_line_omits_unset_tags"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/validator/test_engine_audit.py",
- "source_location": "L252",
+ "source_file": "tests/unit/cache/test_log_writer.py",
+ "source_location": "L86",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "validator_test_engine_audit_test_audit_mode_prefix_mismatch_run_with_test_kind",
- "target": "validator_test_engine_audit_write_creation_json"
+ "source": "tests_unit_cache_test_log_writer_py",
+ "target": "cache_test_log_writer_test_format_log_line_partial_tags_skipped_individually"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/validator/test_engine_audit.py",
- "source_location": "L277",
+ "source_file": "tests/unit/cache/test_log_writer.py",
+ "source_location": "L102",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "validator_test_engine_audit_test_audit_unresolved_placeholder_in_directory_name",
- "target": "validator_test_engine_audit_write_creation_json"
+ "source": "tests_unit_cache_test_log_writer_py",
+ "target": "cache_test_log_writer_test_format_log_line_level_is_padded_to_five_chars"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/validator/test_engine_audit.py",
- "source_location": "L309",
+ "source_file": "tests/unit/cache/test_log_writer.py",
+ "source_location": "L115",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "validator_test_engine_audit_test_audit_override_active_flag_set_when_problem_class_overridden",
- "target": "validator_test_engine_audit_write_creation_json"
+ "source": "tests_unit_cache_test_log_writer_py",
+ "target": "cache_test_log_writer_test_format_log_line_timestamp_is_zero_padded_iso_with_z"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/validator/test_engine_audit.py",
- "source_location": "L332",
+ "source_file": "tests/unit/cache/test_log_writer.py",
+ "source_location": "L123",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "validator_test_engine_audit_test_audit_synced_under_prior_policy_flag_for_hard_finding_on_synced_run",
- "target": "validator_test_engine_audit_write_creation_json"
+ "source": "tests_unit_cache_test_log_writer_py",
+ "target": "cache_test_log_writer_test_format_log_line_naive_datetime_treated_as_utc"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/validator/test_engine_audit.py",
- "source_location": "L361",
+ "source_file": "tests/unit/cache/test_log_writer.py",
+ "source_location": "L130",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "validator_test_engine_audit_test_audit_synced_under_prior_policy_flag_for_hard_finding_on_cleaned_run",
- "target": "validator_test_engine_audit_write_creation_json"
+ "source": "tests_unit_cache_test_log_writer_py",
+ "target": "cache_test_log_writer_test_format_log_line_aware_non_utc_datetime_converts_to_utc"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/validator/test_engine_audit.py",
- "source_location": "L462",
+ "source_file": "tests/unit/cache/test_log_writer.py",
+ "source_location": "L142",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "validator_test_engine_audit_test_audit_findings_are_sorted_by_tier_then_rule_then_offending_path",
- "target": "validator_test_engine_audit_write_creation_json"
+ "source": "tests_unit_cache_test_log_writer_py",
+ "target": "cache_test_log_writer_test_format_log_line_short_message_unchanged"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/validator/test_engine_audit.py",
- "source_location": "L479",
+ "source_file": "tests/unit/cache/test_log_writer.py",
+ "source_location": "L152",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "validator_test_engine_audit_test_query_problems_is_alias_for_audit",
- "target": "validator_test_engine_audit_write_creation_json"
+ "source": "tests_unit_cache_test_log_writer_py",
+ "target": "cache_test_log_writer_test_format_log_line_truncates_long_messages_with_marker"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/validator/test_engine_audit.py",
- "source_location": "L493",
+ "source_file": "tests/unit/cache/test_log_writer.py",
+ "source_location": "L165",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "validator_test_engine_audit_test_audit_scope_equipment_id_resolves_to_configured_root",
- "target": "validator_test_engine_audit_write_creation_json"
+ "source": "tests_unit_cache_test_log_writer_py",
+ "target": "cache_test_log_writer_test_format_log_line_truncation_preserves_prefix_and_tags"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/validator/test_engine_audit.py",
- "source_location": "L531",
+ "source_file": "tests/unit/cache/test_log_writer.py",
+ "source_location": "L179",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "validator_test_engine_audit_test_audit_scope_project_path_walks_one_subtree",
- "target": "validator_test_engine_audit_write_creation_json"
+ "source": "tests_unit_cache_test_log_writer_py",
+ "target": "cache_test_log_writer_test_format_log_line_truncation_at_exact_boundary"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/validator/test_engine_audit.py",
- "source_location": "L555",
+ "source_file": "tests/unit/cache/test_log_writer.py",
+ "source_location": "L199",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "validator_test_engine_audit_test_audit_scope_all_walks_every_configured_equipment",
- "target": "validator_test_engine_audit_write_creation_json"
+ "source": "tests_unit_cache_test_log_writer_py",
+ "target": "cache_test_log_writer_test_append_log_line_creates_parent_cache_dir"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/validator/test_engine_audit.py",
- "source_location": "L631",
+ "source_file": "tests/unit/cache/test_log_writer.py",
+ "source_location": "L208",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "validator_test_engine_audit_test_audit_revoked_override_does_not_set_override_active",
- "target": "validator_test_engine_audit_write_creation_json"
+ "source": "tests_unit_cache_test_log_writer_py",
+ "target": "cache_test_log_writer_test_append_log_line_writes_single_line_with_newline"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/validator/test_engine_audit.py",
- "source_location": "L667",
+ "source_file": "tests/unit/cache/test_log_writer.py",
+ "source_location": "L215",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "validator_test_engine_audit_test_audit_test_run_with_experimental_kind_flagged",
- "target": "validator_test_engine_audit_write_creation_json"
+ "source": "tests_unit_cache_test_log_writer_py",
+ "target": "cache_test_log_writer_test_append_log_line_appends_to_existing_file"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/validator/test_engine_audit.py",
- "source_location": "L686",
+ "source_file": "tests/unit/cache/test_log_writer.py",
+ "source_location": "L225",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "validator_test_engine_audit_test_audit_returns_list_of_finding_dataclass_instances",
- "target": "validator_test_engine_audit_write_creation_json"
+ "source": "tests_unit_cache_test_log_writer_py",
+ "target": "cache_test_log_writer_test_append_log_line_concurrent_writes_do_not_interleave"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/validator/test_engine_audit.py",
- "source_location": "L702",
+ "source_file": "tests/unit/cache/test_log_writer.py",
+ "source_location": "L255",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "validator_test_engine_audit_test_audit_includes_staging_root_when_orchestrator_on",
- "target": "validator_test_engine_audit_write_creation_json"
+ "source": "tests_unit_cache_test_log_writer_py",
+ "target": "cache_test_log_writer_test_append_log_line_idempotent_directory_creation"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/validator/test_engine_audit.py",
- "source_location": "L731",
+ "source_file": "tests/unit/cache/test_log_writer.py",
+ "source_location": "L268",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "validator_test_engine_audit_test_audit_findings_carry_full_section_11_8_shape",
- "target": "validator_test_engine_audit_write_creation_json"
+ "source": "tests_unit_cache_test_log_writer_py",
+ "target": "cache_test_log_writer_test_format_log_line_truncation_prefix_alone_too_big_emits_marker_only"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/validator/test_engine_audit.py",
- "source_location": "L809",
+ "source_file": "tests/unit/cache/test_log_writer.py",
+ "source_location": "L286",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "validator_test_engine_audit_test_audit_other_level_subfolder_under_project",
- "target": "validator_test_engine_audit_write_creation_json"
+ "source": "tests_unit_cache_test_log_writer_py",
+ "target": "cache_test_log_writer_test_format_log_line_truncation_prefix_alone_exhausts_budget"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "rationale_for",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/validator/test_engine_audit.py",
- "source_location": "L826",
+ "source_file": "tests/unit/cache/test_log_writer.py",
+ "source_location": "L1",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "validator_test_engine_audit_test_audit_other_under_test_runs_unknown_leaf",
- "target": "validator_test_engine_audit_write_creation_json"
+ "source": "cache_test_log_writer_rationale_1",
+ "target": "tests_unit_cache_test_log_writer_py"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "rationale_for",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/validator/test_engine_audit.py",
- "source_location": "L898",
+ "source_file": "tests/unit/cache/test_log_writer.py",
+ "source_location": "L34",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "validator_test_engine_audit_test_audit_creation_json_missing_required_struct_field",
- "target": "validator_test_engine_audit_write_creation_json"
+ "source": "cache_test_log_writer_rationale_34",
+ "target": "cache_test_log_writer_test_format_log_line_with_all_tags_matches_spec_example"
},
{
"relation": "calls",
"context": "call",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/validator/test_engine_audit.py",
- "source_location": "L931",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/cache/test_log_writer.py",
+ "source_location": "L35",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "validator_test_engine_audit_test_audit_missing_required_field_with_required_ids",
- "target": "validator_test_engine_audit_write_creation_json"
+ "source": "cache_test_log_writer_test_format_log_line_with_all_tags_matches_spec_example",
+ "target": "cache_log_writer_format_log_line"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "rationale_for",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/validator/test_engine_audit.py",
- "source_location": "L968",
+ "source_file": "tests/unit/cache/test_log_writer.py",
+ "source_location": "L53",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "validator_test_engine_audit_test_audit_missing_required_field_required_ids_not_a_list",
- "target": "validator_test_engine_audit_write_creation_json"
+ "source": "cache_test_log_writer_rationale_53",
+ "target": "cache_test_log_writer_test_format_log_line_with_run_id_includes_run_tag"
},
{
"relation": "calls",
"context": "call",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/validator/test_engine_audit.py",
- "source_location": "L998",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/cache/test_log_writer.py",
+ "source_location": "L54",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "validator_test_engine_audit_test_audit_content_scan_skips_test_runs_marker_file",
- "target": "validator_test_engine_audit_write_creation_json"
+ "source": "cache_test_log_writer_test_format_log_line_with_run_id_includes_run_tag",
+ "target": "cache_log_writer_format_log_line"
},
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/validator/test_engine_audit.py",
- "source_location": "L88",
+ "source_file": "tests/unit/cache/test_log_writer.py",
+ "source_location": "L71",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "validator_test_engine_audit_rationale_88",
- "target": "validator_test_engine_audit_write_creation_json"
+ "source": "cache_test_log_writer_rationale_71",
+ "target": "cache_test_log_writer_test_format_log_line_omits_unset_tags"
},
{
"relation": "calls",
"context": "call",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/validator/test_engine_audit.py",
- "source_location": "L175",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/cache/test_log_writer.py",
+ "source_location": "L72",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "validator_test_engine_audit_test_audit_clean_tree_returns_empty_list",
- "target": "validator_test_engine_audit_make_clean_tree"
+ "source": "cache_test_log_writer_test_format_log_line_omits_unset_tags",
+ "target": "cache_log_writer_format_log_line"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "rationale_for",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/validator/test_engine_audit.py",
- "source_location": "L240",
+ "source_file": "tests/unit/cache/test_log_writer.py",
+ "source_location": "L87",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "validator_test_engine_audit_test_audit_clean_project_name_has_no_unsafe_finding",
- "target": "validator_test_engine_audit_make_clean_tree"
+ "source": "cache_test_log_writer_rationale_87",
+ "target": "cache_test_log_writer_test_format_log_line_partial_tags_skipped_individually"
},
{
"relation": "calls",
"context": "call",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/validator/test_engine_audit.py",
- "source_location": "L376",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/cache/test_log_writer.py",
+ "source_location": "L88",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "validator_test_engine_audit_test_audit_respects_content_scan_max_mib_cap",
- "target": "validator_test_engine_audit_make_clean_tree"
+ "source": "cache_test_log_writer_test_format_log_line_partial_tags_skipped_individually",
+ "target": "cache_log_writer_format_log_line"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "rationale_for",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/validator/test_engine_audit.py",
- "source_location": "L400",
+ "source_file": "tests/unit/cache/test_log_writer.py",
+ "source_location": "L103",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "validator_test_engine_audit_test_audit_respects_extensions_allowlist",
- "target": "validator_test_engine_audit_make_clean_tree"
+ "source": "cache_test_log_writer_rationale_103",
+ "target": "cache_test_log_writer_test_format_log_line_level_is_padded_to_five_chars"
},
{
"relation": "calls",
"context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/cache/test_log_writer.py",
+ "source_location": "L104",
+ "weight": 1.0,
+ "source": "cache_test_log_writer_test_format_log_line_level_is_padded_to_five_chars",
+ "target": "cache_log_writer_format_log_line"
+ },
+ {
+ "relation": "rationale_for",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/validator/test_engine_audit.py",
- "source_location": "L419",
+ "source_file": "tests/unit/cache/test_log_writer.py",
+ "source_location": "L116",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "validator_test_engine_audit_test_audit_detects_binary_files_via_null_byte_sniff",
- "target": "validator_test_engine_audit_make_clean_tree"
+ "source": "cache_test_log_writer_rationale_116",
+ "target": "cache_test_log_writer_test_format_log_line_timestamp_is_zero_padded_iso_with_z"
},
{
"relation": "calls",
"context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/cache/test_log_writer.py",
+ "source_location": "L118",
+ "weight": 1.0,
+ "source": "cache_test_log_writer_test_format_log_line_timestamp_is_zero_padded_iso_with_z",
+ "target": "cache_log_writer_format_log_line"
+ },
+ {
+ "relation": "rationale_for",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/validator/test_engine_audit.py",
- "source_location": "L438",
+ "source_file": "tests/unit/cache/test_log_writer.py",
+ "source_location": "L124",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "validator_test_engine_audit_test_audit_scans_text_file_content_when_within_limits",
- "target": "validator_test_engine_audit_make_clean_tree"
+ "source": "cache_test_log_writer_rationale_124",
+ "target": "cache_test_log_writer_test_format_log_line_naive_datetime_treated_as_utc"
},
{
"relation": "calls",
"context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/cache/test_log_writer.py",
+ "source_location": "L126",
+ "weight": 1.0,
+ "source": "cache_test_log_writer_test_format_log_line_naive_datetime_treated_as_utc",
+ "target": "cache_log_writer_format_log_line"
+ },
+ {
+ "relation": "rationale_for",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/validator/test_engine_audit.py",
- "source_location": "L476",
+ "source_file": "tests/unit/cache/test_log_writer.py",
+ "source_location": "L131",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "validator_test_engine_audit_test_query_problems_is_alias_for_audit",
- "target": "validator_test_engine_audit_make_clean_tree"
+ "source": "cache_test_log_writer_rationale_131",
+ "target": "cache_test_log_writer_test_format_log_line_aware_non_utc_datetime_converts_to_utc"
},
{
"relation": "calls",
"context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/cache/test_log_writer.py",
+ "source_location": "L138",
+ "weight": 1.0,
+ "source": "cache_test_log_writer_test_format_log_line_aware_non_utc_datetime_converts_to_utc",
+ "target": "cache_log_writer_format_log_line"
+ },
+ {
+ "relation": "rationale_for",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/validator/test_engine_audit.py",
- "source_location": "L593",
+ "source_file": "tests/unit/cache/test_log_writer.py",
+ "source_location": "L143",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "validator_test_engine_audit_test_audit_skips_cache_directory_contents",
- "target": "validator_test_engine_audit_make_clean_tree"
+ "source": "cache_test_log_writer_rationale_143",
+ "target": "cache_test_log_writer_test_format_log_line_short_message_unchanged"
},
{
"relation": "calls",
"context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/cache/test_log_writer.py",
+ "source_location": "L144",
+ "weight": 1.0,
+ "source": "cache_test_log_writer_test_format_log_line_short_message_unchanged",
+ "target": "cache_log_writer_format_log_line"
+ },
+ {
+ "relation": "rationale_for",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/validator/test_engine_audit.py",
- "source_location": "L646",
+ "source_file": "tests/unit/cache/test_log_writer.py",
+ "source_location": "L153",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "validator_test_engine_audit_test_audit_unresolved_placeholder_in_file_name",
- "target": "validator_test_engine_audit_make_clean_tree"
+ "source": "cache_test_log_writer_rationale_153",
+ "target": "cache_test_log_writer_test_format_log_line_truncates_long_messages_with_marker"
},
{
"relation": "calls",
"context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/cache/test_log_writer.py",
+ "source_location": "L155",
+ "weight": 1.0,
+ "source": "cache_test_log_writer_test_format_log_line_truncates_long_messages_with_marker",
+ "target": "cache_log_writer_format_log_line"
+ },
+ {
+ "relation": "rationale_for",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/validator/test_engine_audit.py",
- "source_location": "L837",
+ "source_file": "tests/unit/cache/test_log_writer.py",
+ "source_location": "L166",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "validator_test_engine_audit_test_audit_deeply_nested_other_subfolder",
- "target": "validator_test_engine_audit_make_clean_tree"
+ "source": "cache_test_log_writer_rationale_166",
+ "target": "cache_test_log_writer_test_format_log_line_truncation_preserves_prefix_and_tags"
},
{
"relation": "calls",
"context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/cache/test_log_writer.py",
+ "source_location": "L167",
+ "weight": 1.0,
+ "source": "cache_test_log_writer_test_format_log_line_truncation_preserves_prefix_and_tags",
+ "target": "cache_log_writer_format_log_line"
+ },
+ {
+ "relation": "rationale_for",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/validator/test_engine_audit.py",
- "source_location": "L859",
+ "source_file": "tests/unit/cache/test_log_writer.py",
+ "source_location": "L180",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "validator_test_engine_audit_test_audit_creation_json_unreadable",
- "target": "validator_test_engine_audit_make_clean_tree"
+ "source": "cache_test_log_writer_rationale_180",
+ "target": "cache_test_log_writer_test_format_log_line_truncation_at_exact_boundary"
},
{
"relation": "calls",
"context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/cache/test_log_writer.py",
+ "source_location": "L182",
+ "weight": 1.0,
+ "source": "cache_test_log_writer_test_format_log_line_truncation_at_exact_boundary",
+ "target": "cache_log_writer_format_log_line"
+ },
+ {
+ "relation": "rationale_for",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/validator/test_engine_audit.py",
- "source_location": "L878",
+ "source_file": "tests/unit/cache/test_log_writer.py",
+ "source_location": "L200",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "validator_test_engine_audit_test_audit_creation_json_malformed_raw_decode",
- "target": "validator_test_engine_audit_make_clean_tree"
+ "source": "cache_test_log_writer_rationale_200",
+ "target": "cache_test_log_writer_test_append_log_line_creates_parent_cache_dir"
},
{
"relation": "calls",
"context": "call",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/validator/test_engine_audit.py",
- "source_location": "L910",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/cache/test_log_writer.py",
+ "source_location": "L203",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "validator_test_engine_audit_test_audit_readme_fields_json_decode_failure",
- "target": "validator_test_engine_audit_make_clean_tree"
+ "source": "cache_test_log_writer_test_append_log_line_creates_parent_cache_dir",
+ "target": "cache_log_writer_append_log_line"
},
{
"relation": "calls",
"context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/cache/test_log_writer.py",
+ "source_location": "L210",
+ "weight": 1.0,
+ "source": "cache_test_log_writer_test_append_log_line_writes_single_line_with_newline",
+ "target": "cache_log_writer_append_log_line"
+ },
+ {
+ "relation": "rationale_for",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/validator/test_engine_audit.py",
- "source_location": "L1026",
+ "source_file": "tests/unit/cache/test_log_writer.py",
+ "source_location": "L216",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "validator_test_engine_audit_test_audit_content_scan_eligibility_returns_false_on_stat_failure",
- "target": "validator_test_engine_audit_make_clean_tree"
+ "source": "cache_test_log_writer_rationale_216",
+ "target": "cache_test_log_writer_test_append_log_line_appends_to_existing_file"
},
{
"relation": "calls",
"context": "call",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/validator/test_engine_audit.py",
- "source_location": "L1053",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/cache/test_log_writer.py",
+ "source_location": "L218",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "validator_test_engine_audit_test_audit_read_text_for_scan_handles_oserror",
- "target": "validator_test_engine_audit_make_clean_tree"
+ "source": "cache_test_log_writer_test_append_log_line_appends_to_existing_file",
+ "target": "cache_log_writer_append_log_line"
},
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/validator/test_engine_audit.py",
- "source_location": "L106",
+ "source_file": "tests/unit/cache/test_log_writer.py",
+ "source_location": "L226",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "validator_test_engine_audit_rationale_106",
- "target": "validator_test_engine_audit_make_clean_tree"
+ "source": "cache_test_log_writer_rationale_226",
+ "target": "cache_test_log_writer_test_append_log_line_concurrent_writes_do_not_interleave"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "rationale_for",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/validator/test_engine_audit.py",
- "source_location": "L176",
+ "source_file": "tests/unit/cache/test_log_writer.py",
+ "source_location": "L256",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "validator_test_engine_audit_test_audit_clean_tree_returns_empty_list",
- "target": "validator_test_engine_audit_make_validator"
+ "source": "cache_test_log_writer_rationale_256",
+ "target": "cache_test_log_writer_test_append_log_line_idempotent_directory_creation"
},
{
"relation": "calls",
"context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/cache/test_log_writer.py",
+ "source_location": "L258",
+ "weight": 1.0,
+ "source": "cache_test_log_writer_test_append_log_line_idempotent_directory_creation",
+ "target": "cache_log_writer_append_log_line"
+ },
+ {
+ "relation": "rationale_for",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/validator/test_engine_audit.py",
- "source_location": "L193",
+ "source_file": "tests/unit/cache/test_log_writer.py",
+ "source_location": "L271",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "validator_test_engine_audit_test_audit_project_missing_creation_json_returns_orphan",
- "target": "validator_test_engine_audit_make_validator"
+ "source": "cache_test_log_writer_rationale_271",
+ "target": "cache_test_log_writer_test_format_log_line_truncation_prefix_alone_too_big_emits_marker_only"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "rationale_for",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/validator/test_engine_audit.py",
- "source_location": "L211",
+ "source_file": "tests/unit/cache/test_log_writer.py",
+ "source_location": "L289",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "validator_test_engine_audit_test_audit_run_missing_creation_json_returns_orphan",
- "target": "validator_test_engine_audit_make_validator"
+ "source": "cache_test_log_writer_rationale_289",
+ "target": "cache_test_log_writer_test_format_log_line_truncation_prefix_alone_exhausts_budget"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/validator/test_engine_audit.py",
- "source_location": "L230",
+ "source_file": "tests/unit/cache/test_creation_writer.py",
+ "source_location": "L48",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "validator_test_engine_audit_test_audit_unsafe_project_name_returns_soft_finding",
- "target": "validator_test_engine_audit_make_validator"
+ "source": "tests_unit_cache_test_creation_writer_py",
+ "target": "cache_test_creation_writer_build_minimal_payload"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/validator/test_engine_audit.py",
- "source_location": "L241",
+ "source_file": "tests/unit/cache/test_creation_writer.py",
+ "source_location": "L74",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "validator_test_engine_audit_test_audit_clean_project_name_has_no_unsafe_finding",
- "target": "validator_test_engine_audit_make_validator"
+ "source": "tests_unit_cache_test_creation_writer_py",
+ "target": "cache_test_creation_writer_writer"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/validator/test_engine_audit.py",
- "source_location": "L258",
+ "source_file": "tests/unit/cache/test_creation_writer.py",
+ "source_location": "L79",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "validator_test_engine_audit_test_audit_mode_prefix_mismatch_run_with_test_kind",
- "target": "validator_test_engine_audit_make_validator"
+ "source": "tests_unit_cache_test_creation_writer_py",
+ "target": "cache_test_creation_writer_creation_path"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/validator/test_engine_audit.py",
- "source_location": "L283",
+ "source_file": "tests/unit/cache/test_creation_writer.py",
+ "source_location": "L89",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "validator_test_engine_audit_test_audit_unresolved_placeholder_in_directory_name",
- "target": "validator_test_engine_audit_make_validator"
+ "source": "tests_unit_cache_test_creation_writer_py",
+ "target": "cache_test_creation_writer_test_write_creation_emits_valid_current_version_file"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/validator/test_engine_audit.py",
- "source_location": "L315",
+ "source_file": "tests/unit/cache/test_creation_writer.py",
+ "source_location": "L101",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "validator_test_engine_audit_test_audit_override_active_flag_set_when_problem_class_overridden",
- "target": "validator_test_engine_audit_make_validator"
+ "source": "tests_unit_cache_test_creation_writer_py",
+ "target": "cache_test_creation_writer_test_write_creation_pins_schema_version_to_writer_default"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/validator/test_engine_audit.py",
- "source_location": "L338",
+ "source_file": "tests/unit/cache/test_creation_writer.py",
+ "source_location": "L117",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "validator_test_engine_audit_test_audit_synced_under_prior_policy_flag_for_hard_finding_on_synced_run",
- "target": "validator_test_engine_audit_make_validator"
+ "source": "tests_unit_cache_test_creation_writer_py",
+ "target": "cache_test_creation_writer_test_update_creation_atomic_mutates_target_field"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/validator/test_engine_audit.py",
- "source_location": "L367",
+ "source_file": "tests/unit/cache/test_creation_writer.py",
+ "source_location": "L133",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "validator_test_engine_audit_test_audit_synced_under_prior_policy_flag_for_hard_finding_on_cleaned_run",
- "target": "validator_test_engine_audit_make_validator"
+ "source": "tests_unit_cache_test_creation_writer_py",
+ "target": "cache_test_creation_writer_test_update_creation_atomic_preserves_unknown_top_level_fields"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/validator/test_engine_audit.py",
- "source_location": "L383",
+ "source_file": "tests/unit/cache/test_creation_writer.py",
+ "source_location": "L152",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "validator_test_engine_audit_test_audit_respects_content_scan_max_mib_cap",
- "target": "validator_test_engine_audit_make_validator"
+ "source": "tests_unit_cache_test_creation_writer_py",
+ "target": "cache_test_creation_writer_test_update_creation_atomic_appends_validation_override"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/validator/test_engine_audit.py",
- "source_location": "L404",
+ "source_file": "tests/unit/cache/test_creation_writer.py",
+ "source_location": "L178",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "validator_test_engine_audit_test_audit_respects_extensions_allowlist",
- "target": "validator_test_engine_audit_make_validator"
+ "source": "tests_unit_cache_test_creation_writer_py",
+ "target": "cache_test_creation_writer_test_update_creation_atomic_serializes_concurrent_calls"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/validator/test_engine_audit.py",
- "source_location": "L426",
+ "source_file": "tests/unit/cache/test_creation_writer.py",
+ "source_location": "L219",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "validator_test_engine_audit_test_audit_detects_binary_files_via_null_byte_sniff",
- "target": "validator_test_engine_audit_make_validator"
+ "source": "tests_unit_cache_test_creation_writer_py",
+ "target": "cache_test_creation_writer_test_read_creation_snapshot_returns_typed_struct"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/validator/test_engine_audit.py",
- "source_location": "L442",
+ "source_file": "tests/unit/cache/test_creation_writer.py",
+ "source_location": "L229",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "validator_test_engine_audit_test_audit_scans_text_file_content_when_within_limits",
- "target": "validator_test_engine_audit_make_validator"
+ "source": "tests_unit_cache_test_creation_writer_py",
+ "target": "cache_test_creation_writer_test_read_creation_snapshot_supports_concurrent_readers"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/validator/test_engine_audit.py",
- "source_location": "L464",
+ "source_file": "tests/unit/cache/test_creation_writer.py",
+ "source_location": "L247",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "validator_test_engine_audit_test_audit_findings_are_sorted_by_tier_then_rule_then_offending_path",
- "target": "validator_test_engine_audit_make_validator"
+ "source": "tests_unit_cache_test_creation_writer_py",
+ "target": "cache_test_creation_writer_test_reading_2_0_file_raises_schema_major_mismatch"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/validator/test_engine_audit.py",
- "source_location": "L481",
+ "source_file": "tests/unit/cache/test_creation_writer.py",
+ "source_location": "L260",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "validator_test_engine_audit_test_query_problems_is_alias_for_audit",
- "target": "validator_test_engine_audit_make_validator"
+ "source": "tests_unit_cache_test_creation_writer_py",
+ "target": "cache_test_creation_writer_test_reading_malformed_schema_version_raises_schema_major_mismatch"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/validator/test_engine_audit.py",
- "source_location": "L542",
+ "source_file": "tests/unit/cache/test_creation_writer.py",
+ "source_location": "L273",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "validator_test_engine_audit_test_audit_scope_project_path_walks_one_subtree",
- "target": "validator_test_engine_audit_make_validator"
+ "source": "tests_unit_cache_test_creation_writer_py",
+ "target": "cache_test_creation_writer_test_reading_1_0_file_applies_documented_defaults"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/validator/test_engine_audit.py",
- "source_location": "L586",
+ "source_file": "tests/unit/cache/test_creation_writer.py",
+ "source_location": "L312",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "validator_test_engine_audit_test_audit_scope_unknown_equipment_id_returns_empty",
- "target": "validator_test_engine_audit_make_validator"
+ "source": "tests_unit_cache_test_creation_writer_py",
+ "target": "cache_test_creation_writer_test_reading_1_7_file_backfills_lims_project_subfields"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/validator/test_engine_audit.py",
- "source_location": "L599",
+ "source_file": "tests/unit/cache/test_creation_writer.py",
+ "source_location": "L345",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "validator_test_engine_audit_test_audit_skips_cache_directory_contents",
- "target": "validator_test_engine_audit_make_validator"
+ "source": "tests_unit_cache_test_creation_writer_py",
+ "target": "cache_test_creation_writer_test_writer_bumps_schema_version_on_mutation_of_old_minor"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/validator/test_engine_audit.py",
- "source_location": "L637",
+ "source_file": "tests/unit/cache/test_creation_writer.py",
+ "source_location": "L382",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "validator_test_engine_audit_test_audit_revoked_override_does_not_set_override_active",
- "target": "validator_test_engine_audit_make_validator"
+ "source": "tests_unit_cache_test_creation_writer_py",
+ "target": "cache_test_creation_writer_test_writing_always_emits_current_schema_version"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/validator/test_engine_audit.py",
- "source_location": "L650",
+ "source_file": "tests/unit/cache/test_creation_writer.py",
+ "source_location": "L397",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "validator_test_engine_audit_test_audit_unresolved_placeholder_in_file_name",
- "target": "validator_test_engine_audit_make_validator"
+ "source": "tests_unit_cache_test_creation_writer_py",
+ "target": "cache_test_creation_writer_test_select_active_overrides_returns_empty_for_empty_input"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/validator/test_engine_audit.py",
- "source_location": "L673",
+ "source_file": "tests/unit/cache/test_creation_writer.py",
+ "source_location": "L401",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "validator_test_engine_audit_test_audit_test_run_with_experimental_kind_flagged",
- "target": "validator_test_engine_audit_make_validator"
+ "source": "tests_unit_cache_test_creation_writer_py",
+ "target": "cache_test_creation_writer_test_select_active_overrides_keeps_unrevoked_unexpired_entries"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/validator/test_engine_audit.py",
- "source_location": "L689",
+ "source_file": "tests/unit/cache/test_creation_writer.py",
+ "source_location": "L418",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "validator_test_engine_audit_test_audit_returns_list_of_finding_dataclass_instances",
- "target": "validator_test_engine_audit_make_validator"
+ "source": "tests_unit_cache_test_creation_writer_py",
+ "target": "cache_test_creation_writer_test_select_active_overrides_drops_revoked_entry"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/validator/test_engine_audit.py",
- "source_location": "L734",
+ "source_file": "tests/unit/cache/test_creation_writer.py",
+ "source_location": "L443",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "validator_test_engine_audit_test_audit_findings_carry_full_section_11_8_shape",
- "target": "validator_test_engine_audit_make_validator"
+ "source": "tests_unit_cache_test_creation_writer_py",
+ "target": "cache_test_creation_writer_test_select_active_overrides_drops_expired_entry"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/validator/test_engine_audit.py",
- "source_location": "L762",
+ "source_file": "tests/unit/cache/test_creation_writer.py",
+ "source_location": "L473",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "validator_test_engine_audit_test_audit_unknown_scope_kind_raises_value_error",
- "target": "validator_test_engine_audit_make_validator"
+ "source": "tests_unit_cache_test_creation_writer_py",
+ "target": "cache_test_creation_writer_test_select_active_overrides_uses_explicit_now_for_determinism"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/validator/test_engine_audit.py",
- "source_location": "L798",
+ "source_file": "tests/unit/cache/test_creation_writer.py",
+ "source_location": "L493",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "validator_test_engine_audit_test_audit_handles_unreadable_directory",
- "target": "validator_test_engine_audit_make_validator"
+ "source": "tests_unit_cache_test_creation_writer_py",
+ "target": "cache_test_creation_writer_test_select_active_overrides_ignores_tombstone_for_unknown_id"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/validator/test_engine_audit.py",
- "source_location": "L811",
+ "source_file": "tests/unit/cache/test_creation_writer.py",
+ "source_location": "L519",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "validator_test_engine_audit_test_audit_other_level_subfolder_under_project",
- "target": "validator_test_engine_audit_make_validator"
+ "source": "tests_unit_cache_test_creation_writer_py",
+ "target": "cache_test_creation_writer_test_select_active_overrides_treats_malformed_expires_at_as_expired"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/validator/test_engine_audit.py",
- "source_location": "L828",
+ "source_file": "tests/unit/cache/test_creation_writer.py",
+ "source_location": "L539",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "validator_test_engine_audit_test_audit_other_under_test_runs_unknown_leaf",
- "target": "validator_test_engine_audit_make_validator"
+ "source": "tests_unit_cache_test_creation_writer_py",
+ "target": "cache_test_creation_writer_test_round_trip_preserves_plugins_applied_with_isolation"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/validator/test_engine_audit.py",
- "source_location": "L843",
+ "source_file": "tests/unit/cache/test_creation_writer.py",
+ "source_location": "L566",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "validator_test_engine_audit_test_audit_deeply_nested_other_subfolder",
- "target": "validator_test_engine_audit_make_validator"
+ "source": "tests_unit_cache_test_creation_writer_py",
+ "target": "cache_test_creation_writer_test_reading_file_with_missing_required_field_raises_validation_error"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/validator/test_engine_audit.py",
- "source_location": "L870",
+ "source_file": "tests/unit/cache/test_creation_writer.py",
+ "source_location": "L579",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "validator_test_engine_audit_test_audit_creation_json_unreadable",
- "target": "validator_test_engine_audit_make_validator"
+ "source": "tests_unit_cache_test_creation_writer_py",
+ "target": "cache_test_creation_writer_test_select_active_overrides_skips_tombstone_with_null_revokes_target"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/validator/test_engine_audit.py",
- "source_location": "L882",
+ "source_file": "tests/unit/cache/test_creation_writer.py",
+ "source_location": "L609",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "validator_test_engine_audit_test_audit_creation_json_malformed_raw_decode",
- "target": "validator_test_engine_audit_make_validator"
+ "source": "tests_unit_cache_test_creation_writer_py",
+ "target": "cache_test_creation_writer_test_select_active_overrides_naive_expires_at_is_treated_as_utc"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/validator/test_engine_audit.py",
- "source_location": "L900",
+ "source_file": "tests/unit/cache/test_creation_writer.py",
+ "source_location": "L629",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "validator_test_engine_audit_test_audit_creation_json_missing_required_struct_field",
- "target": "validator_test_engine_audit_make_validator"
+ "source": "tests_unit_cache_test_creation_writer_py",
+ "target": "cache_test_creation_writer_test_reading_file_missing_schema_version_raises_schema_major_mismatch"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/validator/test_engine_audit.py",
- "source_location": "L914",
+ "source_file": "tests/unit/cache/test_creation_writer.py",
+ "source_location": "L640",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "validator_test_engine_audit_test_audit_readme_fields_json_decode_failure",
- "target": "validator_test_engine_audit_make_validator"
+ "source": "tests_unit_cache_test_creation_writer_py",
+ "target": "cache_test_creation_writer_test_update_creation_atomic_backfills_missing_override_id"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "rationale_for",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/validator/test_engine_audit.py",
- "source_location": "L949",
+ "source_file": "tests/unit/cache/test_creation_writer.py",
+ "source_location": "L1",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "validator_test_engine_audit_test_audit_missing_required_field_with_required_ids",
- "target": "validator_test_engine_audit_make_validator"
+ "source": "cache_test_creation_writer_rationale_1",
+ "target": "tests_unit_cache_test_creation_writer_py"
},
{
"relation": "calls",
"context": "call",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/validator/test_engine_audit.py",
- "source_location": "L985",
+ "source_file": "tests/unit/cache/test_creation_writer.py",
+ "source_location": "L92",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "validator_test_engine_audit_test_audit_missing_required_field_required_ids_not_a_list",
- "target": "validator_test_engine_audit_make_validator"
+ "source": "cache_test_creation_writer_test_write_creation_emits_valid_current_version_file",
+ "target": "cache_test_creation_writer_build_minimal_payload"
},
{
"relation": "calls",
"context": "call",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/validator/test_engine_audit.py",
- "source_location": "L1009",
+ "source_file": "tests/unit/cache/test_creation_writer.py",
+ "source_location": "L105",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "validator_test_engine_audit_test_audit_content_scan_skips_test_runs_marker_file",
- "target": "validator_test_engine_audit_make_validator"
+ "source": "cache_test_creation_writer_test_write_creation_pins_schema_version_to_writer_default",
+ "target": "cache_test_creation_writer_build_minimal_payload"
},
{
"relation": "calls",
"context": "call",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/validator/test_engine_audit.py",
- "source_location": "L1038",
+ "source_file": "tests/unit/cache/test_creation_writer.py",
+ "source_location": "L120",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "validator_test_engine_audit_test_audit_content_scan_eligibility_returns_false_on_stat_failure",
- "target": "validator_test_engine_audit_make_validator"
+ "source": "cache_test_creation_writer_test_update_creation_atomic_mutates_target_field",
+ "target": "cache_test_creation_writer_build_minimal_payload"
},
{
"relation": "calls",
"context": "call",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/validator/test_engine_audit.py",
- "source_location": "L1065",
+ "source_file": "tests/unit/cache/test_creation_writer.py",
+ "source_location": "L137",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "validator_test_engine_audit_test_audit_read_text_for_scan_handles_oserror",
- "target": "validator_test_engine_audit_make_validator"
+ "source": "cache_test_creation_writer_test_update_creation_atomic_preserves_unknown_top_level_fields",
+ "target": "cache_test_creation_writer_build_minimal_payload"
},
{
- "relation": "rationale_for",
+ "relation": "calls",
+ "context": "call",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/validator/test_engine_audit.py",
- "source_location": "L148",
+ "source_file": "tests/unit/cache/test_creation_writer.py",
+ "source_location": "L155",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "validator_test_engine_audit_rationale_148",
- "target": "validator_test_engine_audit_make_validator"
+ "source": "cache_test_creation_writer_test_update_creation_atomic_appends_validation_override",
+ "target": "cache_test_creation_writer_build_minimal_payload"
},
{
"relation": "calls",
"context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/validator/test_engine_audit.py",
- "source_location": "L149",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/cache/test_creation_writer.py",
+ "source_location": "L187",
"weight": 1.0,
- "source": "validator_test_engine_audit_make_validator",
- "target": "config_models_validatorconfig"
+ "confidence_score": 1.0,
+ "source": "cache_test_creation_writer_test_update_creation_atomic_serializes_concurrent_calls",
+ "target": "cache_test_creation_writer_build_minimal_payload"
},
{
"relation": "calls",
"context": "call",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/validator/test_engine_audit.py",
- "source_location": "L195",
+ "source_file": "tests/unit/cache/test_creation_writer.py",
+ "source_location": "L222",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "validator_test_engine_audit_test_audit_project_missing_creation_json_returns_orphan",
- "target": "validator_test_engine_audit_by_rule"
+ "source": "cache_test_creation_writer_test_read_creation_snapshot_returns_typed_struct",
+ "target": "cache_test_creation_writer_build_minimal_payload"
},
{
"relation": "calls",
"context": "call",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/validator/test_engine_audit.py",
- "source_location": "L213",
+ "source_file": "tests/unit/cache/test_creation_writer.py",
+ "source_location": "L233",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "validator_test_engine_audit_test_audit_run_missing_creation_json_returns_orphan",
- "target": "validator_test_engine_audit_by_rule"
+ "source": "cache_test_creation_writer_test_read_creation_snapshot_supports_concurrent_readers",
+ "target": "cache_test_creation_writer_build_minimal_payload"
},
{
"relation": "calls",
"context": "call",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/validator/test_engine_audit.py",
- "source_location": "L232",
+ "source_file": "tests/unit/cache/test_creation_writer.py",
+ "source_location": "L250",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "validator_test_engine_audit_test_audit_unsafe_project_name_returns_soft_finding",
- "target": "validator_test_engine_audit_by_rule"
+ "source": "cache_test_creation_writer_test_reading_2_0_file_raises_schema_major_mismatch",
+ "target": "cache_test_creation_writer_build_minimal_payload"
},
{
"relation": "calls",
"context": "call",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/validator/test_engine_audit.py",
- "source_location": "L243",
+ "source_file": "tests/unit/cache/test_creation_writer.py",
+ "source_location": "L265",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "validator_test_engine_audit_test_audit_clean_project_name_has_no_unsafe_finding",
- "target": "validator_test_engine_audit_by_rule"
+ "source": "cache_test_creation_writer_test_reading_malformed_schema_version_raises_schema_major_mismatch",
+ "target": "cache_test_creation_writer_build_minimal_payload"
},
{
"relation": "calls",
"context": "call",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/validator/test_engine_audit.py",
- "source_location": "L260",
+ "source_file": "tests/unit/cache/test_creation_writer.py",
+ "source_location": "L386",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "validator_test_engine_audit_test_audit_mode_prefix_mismatch_run_with_test_kind",
- "target": "validator_test_engine_audit_by_rule"
+ "source": "cache_test_creation_writer_test_writing_always_emits_current_schema_version",
+ "target": "cache_test_creation_writer_build_minimal_payload"
},
{
"relation": "calls",
"context": "call",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/validator/test_engine_audit.py",
- "source_location": "L285",
+ "source_file": "tests/unit/cache/test_creation_writer.py",
+ "source_location": "L542",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "validator_test_engine_audit_test_audit_unresolved_placeholder_in_directory_name",
- "target": "validator_test_engine_audit_by_rule"
+ "source": "cache_test_creation_writer_test_round_trip_preserves_plugins_applied_with_isolation",
+ "target": "cache_test_creation_writer_build_minimal_payload"
},
{
"relation": "calls",
"context": "call",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/validator/test_engine_audit.py",
- "source_location": "L317",
+ "source_file": "tests/unit/cache/test_creation_writer.py",
+ "source_location": "L645",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "validator_test_engine_audit_test_audit_override_active_flag_set_when_problem_class_overridden",
- "target": "validator_test_engine_audit_by_rule"
+ "source": "cache_test_creation_writer_test_update_creation_atomic_backfills_missing_override_id",
+ "target": "cache_test_creation_writer_build_minimal_payload"
},
{
"relation": "calls",
"context": "call",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/validator/test_engine_audit.py",
- "source_location": "L340",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/cache/test_creation_writer.py",
+ "source_location": "L55",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "validator_test_engine_audit_test_audit_synced_under_prior_policy_flag_for_hard_finding_on_synced_run",
- "target": "validator_test_engine_audit_by_rule"
+ "source": "cache_test_creation_writer_build_minimal_payload",
+ "target": "api_schemas_limsprojectblock"
},
{
"relation": "calls",
"context": "call",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/validator/test_engine_audit.py",
- "source_location": "L369",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/cache/test_creation_writer.py",
+ "source_location": "L60",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "validator_test_engine_audit_test_audit_synced_under_prior_policy_flag_for_hard_finding_on_cleaned_run",
- "target": "validator_test_engine_audit_by_rule"
+ "source": "cache_test_creation_writer_build_minimal_payload",
+ "target": "api_schemas_templateblock"
},
{
"relation": "calls",
"context": "call",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/validator/test_engine_audit.py",
- "source_location": "L639",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/cache/test_creation_writer.py",
+ "source_location": "L67",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "validator_test_engine_audit_test_audit_revoked_override_does_not_set_override_active",
- "target": "validator_test_engine_audit_by_rule"
+ "source": "cache_test_creation_writer_build_minimal_payload",
+ "target": "api_schemas_pathsblock"
},
{
"relation": "calls",
"context": "call",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/validator/test_engine_audit.py",
- "source_location": "L675",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/cache/test_creation_writer.py",
+ "source_location": "L70",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "validator_test_engine_audit_test_audit_test_run_with_experimental_kind_flagged",
- "target": "validator_test_engine_audit_by_rule"
+ "source": "cache_test_creation_writer_build_minimal_payload",
+ "target": "api_schemas_creationjson"
},
{
- "relation": "rationale_for",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/validator/test_engine_audit.py",
- "source_location": "L174",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/cache/test_creation_writer.py",
+ "source_location": "L75",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "validator_test_engine_audit_rationale_174",
- "target": "validator_test_engine_audit_test_audit_clean_tree_returns_empty_list"
+ "source": "cache_test_creation_writer_writer",
+ "target": "cache_creation_writer_creationwriter"
},
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/validator/test_engine_audit.py",
- "source_location": "L182",
+ "source_file": "tests/unit/cache/test_creation_writer.py",
+ "source_location": "L104",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "validator_test_engine_audit_rationale_182",
- "target": "validator_test_engine_audit_test_audit_project_missing_creation_json_returns_orphan"
+ "source": "cache_test_creation_writer_rationale_104",
+ "target": "cache_test_creation_writer_test_write_creation_pins_schema_version_to_writer_default"
},
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/validator/test_engine_audit.py",
- "source_location": "L203",
+ "source_file": "tests/unit/cache/test_creation_writer.py",
+ "source_location": "L136",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "validator_test_engine_audit_rationale_203",
- "target": "validator_test_engine_audit_test_audit_run_missing_creation_json_returns_orphan"
+ "source": "cache_test_creation_writer_rationale_136",
+ "target": "cache_test_creation_writer_test_update_creation_atomic_preserves_unknown_top_level_fields"
},
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/validator/test_engine_audit.py",
- "source_location": "L220",
+ "source_file": "tests/unit/cache/test_creation_writer.py",
+ "source_location": "L181",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "validator_test_engine_audit_rationale_220",
- "target": "validator_test_engine_audit_test_audit_unsafe_project_name_returns_soft_finding"
+ "source": "cache_test_creation_writer_rationale_181",
+ "target": "cache_test_creation_writer_test_update_creation_atomic_serializes_concurrent_calls"
},
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/validator/test_engine_audit.py",
- "source_location": "L239",
+ "source_file": "tests/unit/cache/test_creation_writer.py",
+ "source_location": "L232",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "validator_test_engine_audit_rationale_239",
- "target": "validator_test_engine_audit_test_audit_clean_project_name_has_no_unsafe_finding"
+ "source": "cache_test_creation_writer_rationale_232",
+ "target": "cache_test_creation_writer_test_read_creation_snapshot_supports_concurrent_readers"
},
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/validator/test_engine_audit.py",
- "source_location": "L247",
+ "source_file": "tests/unit/cache/test_creation_writer.py",
+ "source_location": "L263",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "validator_test_engine_audit_rationale_247",
- "target": "validator_test_engine_audit_test_audit_mode_prefix_mismatch_run_with_test_kind"
+ "source": "cache_test_creation_writer_rationale_263",
+ "target": "cache_test_creation_writer_test_reading_malformed_schema_version_raises_schema_major_mismatch"
},
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/validator/test_engine_audit.py",
- "source_location": "L269",
+ "source_file": "tests/unit/cache/test_creation_writer.py",
+ "source_location": "L276",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "validator_test_engine_audit_rationale_269",
- "target": "validator_test_engine_audit_test_audit_unresolved_placeholder_in_directory_name"
+ "source": "cache_test_creation_writer_rationale_276",
+ "target": "cache_test_creation_writer_test_reading_1_0_file_applies_documented_defaults"
},
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/validator/test_engine_audit.py",
- "source_location": "L294",
+ "source_file": "tests/unit/cache/test_creation_writer.py",
+ "source_location": "L315",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "validator_test_engine_audit_rationale_294",
- "target": "validator_test_engine_audit_test_audit_override_active_flag_set_when_problem_class_overridden"
+ "source": "cache_test_creation_writer_rationale_315",
+ "target": "cache_test_creation_writer_test_reading_1_7_file_backfills_lims_project_subfields"
},
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/validator/test_engine_audit.py",
- "source_location": "L327",
+ "source_file": "tests/unit/cache/test_creation_writer.py",
+ "source_location": "L348",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "validator_test_engine_audit_rationale_327",
- "target": "validator_test_engine_audit_test_audit_synced_under_prior_policy_flag_for_hard_finding_on_synced_run"
+ "source": "cache_test_creation_writer_rationale_348",
+ "target": "cache_test_creation_writer_test_writer_bumps_schema_version_on_mutation_of_old_minor"
},
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/validator/test_engine_audit.py",
- "source_location": "L351",
+ "source_file": "tests/unit/cache/test_creation_writer.py",
+ "source_location": "L385",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "validator_test_engine_audit_rationale_351",
- "target": "validator_test_engine_audit_test_audit_synced_under_prior_policy_flag_for_hard_finding_on_cleaned_run"
+ "source": "cache_test_creation_writer_rationale_385",
+ "target": "cache_test_creation_writer_test_writing_always_emits_current_schema_version"
},
{
- "relation": "rationale_for",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/validator/test_engine_audit.py",
- "source_location": "L375",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/cache/test_creation_writer.py",
+ "source_location": "L398",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "validator_test_engine_audit_rationale_375",
- "target": "validator_test_engine_audit_test_audit_respects_content_scan_max_mib_cap"
+ "source": "cache_test_creation_writer_test_select_active_overrides_returns_empty_for_empty_input",
+ "target": "cache_creation_writer_select_active_overrides"
},
{
- "relation": "rationale_for",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/validator/test_engine_audit.py",
- "source_location": "L399",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/cache/test_creation_writer.py",
+ "source_location": "L403",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "validator_test_engine_audit_rationale_399",
- "target": "validator_test_engine_audit_test_audit_respects_extensions_allowlist"
+ "source": "cache_test_creation_writer_test_select_active_overrides_keeps_unrevoked_unexpired_entries",
+ "target": "api_schemas_override_entry_to_dict"
},
{
- "relation": "rationale_for",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/validator/test_engine_audit.py",
- "source_location": "L418",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/cache/test_creation_writer.py",
+ "source_location": "L404",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "validator_test_engine_audit_rationale_418",
- "target": "validator_test_engine_audit_test_audit_detects_binary_files_via_null_byte_sniff"
+ "source": "cache_test_creation_writer_test_select_active_overrides_keeps_unrevoked_unexpired_entries",
+ "target": "api_schemas_overrideentry"
},
{
- "relation": "rationale_for",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/validator/test_engine_audit.py",
- "source_location": "L437",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/cache/test_creation_writer.py",
+ "source_location": "L413",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "validator_test_engine_audit_rationale_437",
- "target": "validator_test_engine_audit_test_audit_scans_text_file_content_when_within_limits"
+ "source": "cache_test_creation_writer_test_select_active_overrides_keeps_unrevoked_unexpired_entries",
+ "target": "cache_creation_writer_select_active_overrides"
},
{
- "relation": "rationale_for",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/validator/test_engine_audit.py",
- "source_location": "L455",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/cache/test_creation_writer.py",
+ "source_location": "L420",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "validator_test_engine_audit_rationale_455",
- "target": "validator_test_engine_audit_test_audit_findings_are_sorted_by_tier_then_rule_then_offending_path"
+ "source": "cache_test_creation_writer_test_select_active_overrides_drops_revoked_entry",
+ "target": "api_schemas_override_entry_to_dict"
},
{
- "relation": "rationale_for",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/validator/test_engine_audit.py",
- "source_location": "L475",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/cache/test_creation_writer.py",
+ "source_location": "L421",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "validator_test_engine_audit_rationale_475",
- "target": "validator_test_engine_audit_test_query_problems_is_alias_for_audit"
+ "source": "cache_test_creation_writer_test_select_active_overrides_drops_revoked_entry",
+ "target": "api_schemas_overrideentry"
},
{
- "relation": "rationale_for",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/validator/test_engine_audit.py",
- "source_location": "L488",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/cache/test_creation_writer.py",
+ "source_location": "L429",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "validator_test_engine_audit_rationale_488",
- "target": "validator_test_engine_audit_test_audit_scope_equipment_id_resolves_to_configured_root"
+ "source": "cache_test_creation_writer_test_select_active_overrides_drops_revoked_entry",
+ "target": "api_schemas_tombstone_entry_to_dict"
},
{
- "relation": "rationale_for",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/validator/test_engine_audit.py",
- "source_location": "L525",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/cache/test_creation_writer.py",
+ "source_location": "L439",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "validator_test_engine_audit_rationale_525",
- "target": "validator_test_engine_audit_test_audit_scope_project_path_walks_one_subtree"
+ "source": "cache_test_creation_writer_test_select_active_overrides_drops_revoked_entry",
+ "target": "cache_creation_writer_select_active_overrides"
},
{
- "relation": "rationale_for",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/validator/test_engine_audit.py",
- "source_location": "L550",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/cache/test_creation_writer.py",
+ "source_location": "L447",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "validator_test_engine_audit_rationale_550",
- "target": "validator_test_engine_audit_test_audit_scope_all_walks_every_configured_equipment"
+ "source": "cache_test_creation_writer_test_select_active_overrides_drops_expired_entry",
+ "target": "api_schemas_override_entry_to_dict"
},
{
- "relation": "rationale_for",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/validator/test_engine_audit.py",
- "source_location": "L585",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/cache/test_creation_writer.py",
+ "source_location": "L448",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "validator_test_engine_audit_rationale_585",
- "target": "validator_test_engine_audit_test_audit_scope_unknown_equipment_id_returns_empty"
+ "source": "cache_test_creation_writer_test_select_active_overrides_drops_expired_entry",
+ "target": "api_schemas_overrideentry"
},
{
- "relation": "rationale_for",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/validator/test_engine_audit.py",
- "source_location": "L592",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/cache/test_creation_writer.py",
+ "source_location": "L468",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "validator_test_engine_audit_rationale_592",
- "target": "validator_test_engine_audit_test_audit_skips_cache_directory_contents"
+ "source": "cache_test_creation_writer_test_select_active_overrides_drops_expired_entry",
+ "target": "cache_creation_writer_select_active_overrides"
},
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/validator/test_engine_audit.py",
- "source_location": "L608",
+ "source_file": "tests/unit/cache/test_creation_writer.py",
+ "source_location": "L474",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "validator_test_engine_audit_rationale_608",
- "target": "validator_test_engine_audit_test_audit_revoked_override_does_not_set_override_active"
+ "source": "cache_test_creation_writer_rationale_474",
+ "target": "cache_test_creation_writer_test_select_active_overrides_uses_explicit_now_for_determinism"
},
{
- "relation": "rationale_for",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/validator/test_engine_audit.py",
- "source_location": "L645",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/cache/test_creation_writer.py",
+ "source_location": "L477",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "validator_test_engine_audit_rationale_645",
- "target": "validator_test_engine_audit_test_audit_unresolved_placeholder_in_file_name"
+ "source": "cache_test_creation_writer_test_select_active_overrides_uses_explicit_now_for_determinism",
+ "target": "api_schemas_override_entry_to_dict"
},
{
- "relation": "rationale_for",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/validator/test_engine_audit.py",
- "source_location": "L661",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/cache/test_creation_writer.py",
+ "source_location": "L478",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "validator_test_engine_audit_rationale_661",
- "target": "validator_test_engine_audit_test_audit_test_run_with_experimental_kind_flagged"
+ "source": "cache_test_creation_writer_test_select_active_overrides_uses_explicit_now_for_determinism",
+ "target": "api_schemas_overrideentry"
},
{
- "relation": "rationale_for",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/validator/test_engine_audit.py",
- "source_location": "L681",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/cache/test_creation_writer.py",
+ "source_location": "L489",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "validator_test_engine_audit_rationale_681",
- "target": "validator_test_engine_audit_test_audit_returns_list_of_finding_dataclass_instances"
+ "source": "cache_test_creation_writer_test_select_active_overrides_uses_explicit_now_for_determinism",
+ "target": "cache_creation_writer_select_active_overrides"
},
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/validator/test_engine_audit.py",
- "source_location": "L696",
+ "source_file": "tests/unit/cache/test_creation_writer.py",
+ "source_location": "L494",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "validator_test_engine_audit_rationale_696",
- "target": "validator_test_engine_audit_test_audit_includes_staging_root_when_orchestrator_on"
+ "source": "cache_test_creation_writer_rationale_494",
+ "target": "cache_test_creation_writer_test_select_active_overrides_ignores_tombstone_for_unknown_id"
},
{
- "relation": "rationale_for",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/validator/test_engine_audit.py",
- "source_location": "L726",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/cache/test_creation_writer.py",
+ "source_location": "L496",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "validator_test_engine_audit_rationale_726",
- "target": "validator_test_engine_audit_test_audit_findings_carry_full_section_11_8_shape"
+ "source": "cache_test_creation_writer_test_select_active_overrides_ignores_tombstone_for_unknown_id",
+ "target": "api_schemas_tombstone_entry_to_dict"
},
{
- "relation": "rationale_for",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/validator/test_engine_audit.py",
- "source_location": "L761",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/cache/test_creation_writer.py",
+ "source_location": "L505",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "validator_test_engine_audit_rationale_761",
- "target": "validator_test_engine_audit_test_audit_unknown_scope_kind_raises_value_error"
+ "source": "cache_test_creation_writer_test_select_active_overrides_ignores_tombstone_for_unknown_id",
+ "target": "api_schemas_override_entry_to_dict"
},
{
- "relation": "rationale_for",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/validator/test_engine_audit.py",
- "source_location": "L768",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/cache/test_creation_writer.py",
+ "source_location": "L506",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "validator_test_engine_audit_rationale_768",
- "target": "validator_test_engine_audit_test_audit_root_does_not_exist_returns_empty"
+ "source": "cache_test_creation_writer_test_select_active_overrides_ignores_tombstone_for_unknown_id",
+ "target": "api_schemas_overrideentry"
},
{
- "relation": "rationale_for",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/validator/test_engine_audit.py",
- "source_location": "L776",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/cache/test_creation_writer.py",
+ "source_location": "L515",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "validator_test_engine_audit_rationale_776",
- "target": "validator_test_engine_audit_test_audit_root_is_a_file_returns_empty"
+ "source": "cache_test_creation_writer_test_select_active_overrides_ignores_tombstone_for_unknown_id",
+ "target": "cache_creation_writer_select_active_overrides"
},
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/validator/test_engine_audit.py",
- "source_location": "L784",
+ "source_file": "tests/unit/cache/test_creation_writer.py",
+ "source_location": "L520",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "validator_test_engine_audit_rationale_784",
- "target": "validator_test_engine_audit_test_audit_handles_unreadable_directory"
+ "source": "cache_test_creation_writer_rationale_520",
+ "target": "cache_test_creation_writer_test_select_active_overrides_treats_malformed_expires_at_as_expired"
},
{
- "relation": "rationale_for",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/validator/test_engine_audit.py",
- "source_location": "L804",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/cache/test_creation_writer.py",
+ "source_location": "L530",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "validator_test_engine_audit_rationale_804",
- "target": "validator_test_engine_audit_test_audit_other_level_subfolder_under_project"
+ "source": "cache_test_creation_writer_test_select_active_overrides_treats_malformed_expires_at_as_expired",
+ "target": "cache_creation_writer_select_active_overrides"
},
{
- "relation": "rationale_for",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/validator/test_engine_audit.py",
- "source_location": "L820",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/cache/test_creation_writer.py",
+ "source_location": "L544",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "validator_test_engine_audit_rationale_820",
- "target": "validator_test_engine_audit_test_audit_other_under_test_runs_unknown_leaf"
+ "source": "cache_test_creation_writer_test_round_trip_preserves_plugins_applied_with_isolation",
+ "target": "api_schemas_pluginapplied"
},
{
- "relation": "rationale_for",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/validator/test_engine_audit.py",
- "source_location": "L836",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/cache/test_creation_writer.py",
+ "source_location": "L549",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "validator_test_engine_audit_rationale_836",
- "target": "validator_test_engine_audit_test_audit_deeply_nested_other_subfolder"
+ "source": "cache_test_creation_writer_test_round_trip_preserves_plugins_applied_with_isolation",
+ "target": "api_schemas_pluginisolation"
},
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/validator/test_engine_audit.py",
- "source_location": "L858",
+ "source_file": "tests/unit/cache/test_creation_writer.py",
+ "source_location": "L580",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "validator_test_engine_audit_rationale_858",
- "target": "validator_test_engine_audit_test_audit_creation_json_unreadable"
+ "source": "cache_test_creation_writer_rationale_580",
+ "target": "cache_test_creation_writer_test_select_active_overrides_skips_tombstone_with_null_revokes_target"
},
{
- "relation": "rationale_for",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/validator/test_engine_audit.py",
- "source_location": "L877",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/cache/test_creation_writer.py",
+ "source_location": "L595",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "validator_test_engine_audit_rationale_877",
- "target": "validator_test_engine_audit_test_audit_creation_json_malformed_raw_decode"
+ "source": "cache_test_creation_writer_test_select_active_overrides_skips_tombstone_with_null_revokes_target",
+ "target": "api_schemas_override_entry_to_dict"
},
{
- "relation": "rationale_for",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/validator/test_engine_audit.py",
- "source_location": "L889",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/cache/test_creation_writer.py",
+ "source_location": "L596",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "validator_test_engine_audit_rationale_889",
- "target": "validator_test_engine_audit_test_audit_creation_json_missing_required_struct_field"
+ "source": "cache_test_creation_writer_test_select_active_overrides_skips_tombstone_with_null_revokes_target",
+ "target": "api_schemas_overrideentry"
},
{
- "relation": "rationale_for",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/validator/test_engine_audit.py",
- "source_location": "L909",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/cache/test_creation_writer.py",
+ "source_location": "L605",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "validator_test_engine_audit_rationale_909",
- "target": "validator_test_engine_audit_test_audit_readme_fields_json_decode_failure"
+ "source": "cache_test_creation_writer_test_select_active_overrides_skips_tombstone_with_null_revokes_target",
+ "target": "cache_creation_writer_select_active_overrides"
},
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/validator/test_engine_audit.py",
- "source_location": "L921",
+ "source_file": "tests/unit/cache/test_creation_writer.py",
+ "source_location": "L610",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "validator_test_engine_audit_rationale_921",
- "target": "validator_test_engine_audit_test_audit_missing_required_field_with_required_ids"
+ "source": "cache_test_creation_writer_rationale_610",
+ "target": "cache_test_creation_writer_test_select_active_overrides_naive_expires_at_is_treated_as_utc"
},
{
- "relation": "rationale_for",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/validator/test_engine_audit.py",
- "source_location": "L957",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/cache/test_creation_writer.py",
+ "source_location": "L614",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "validator_test_engine_audit_rationale_957",
- "target": "validator_test_engine_audit_test_audit_missing_required_field_required_ids_not_a_list"
+ "source": "cache_test_creation_writer_test_select_active_overrides_naive_expires_at_is_treated_as_utc",
+ "target": "api_schemas_override_entry_to_dict"
},
{
- "relation": "rationale_for",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/validator/test_engine_audit.py",
- "source_location": "L992",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/cache/test_creation_writer.py",
+ "source_location": "L615",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "validator_test_engine_audit_rationale_992",
- "target": "validator_test_engine_audit_test_audit_content_scan_skips_test_runs_marker_file"
+ "source": "cache_test_creation_writer_test_select_active_overrides_naive_expires_at_is_treated_as_utc",
+ "target": "api_schemas_overrideentry"
},
{
- "relation": "rationale_for",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/validator/test_engine_audit.py",
- "source_location": "L1025",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/cache/test_creation_writer.py",
+ "source_location": "L624",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "validator_test_engine_audit_rationale_1025",
- "target": "validator_test_engine_audit_test_audit_content_scan_eligibility_returns_false_on_stat_failure"
+ "source": "cache_test_creation_writer_test_select_active_overrides_naive_expires_at_is_treated_as_utc",
+ "target": "cache_creation_writer_select_active_overrides"
},
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/validator/test_engine_audit.py",
- "source_location": "L1052",
+ "source_file": "tests/unit/cache/test_creation_writer.py",
+ "source_location": "L632",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "validator_test_engine_audit_rationale_1052",
- "target": "validator_test_engine_audit_test_audit_read_text_for_scan_handles_oserror"
+ "source": "cache_test_creation_writer_rationale_632",
+ "target": "cache_test_creation_writer_test_reading_file_missing_schema_version_raises_schema_major_mismatch"
},
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/validator/test_engine_audit.py",
- "source_location": "L1076",
+ "source_file": "tests/unit/cache/test_creation_writer.py",
+ "source_location": "L643",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "validator_test_engine_audit_rationale_1076",
- "target": "validator_test_engine_audit_test_classify_level_value_error_returns_other"
+ "source": "cache_test_creation_writer_rationale_643",
+ "target": "cache_test_creation_writer_test_update_creation_atomic_backfills_missing_override_id"
},
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/validator/test_engine_audit.py",
- "source_location": "L1090",
+ "source_file": "tests/unit/cache/__init__.py",
+ "source_location": "L1",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "validator_test_engine_audit_rationale_1090",
- "target": "validator_test_engine_audit_test_finding_sort_unknown_tier_sorts_after_committed_tiers"
+ "source": "cache_init_rationale_1",
+ "target": "tests_unit_cache_init_py"
},
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/validator/test_engine_audit.py",
- "source_location": "L1114",
+ "source_file": "src/exlab_wizard/cache/__init__.py",
+ "source_location": "L1",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "validator_test_engine_audit_rationale_1114",
- "target": "validator_test_engine_audit_test_level_for_orphan_returns_none_for_unmapped_levels"
- },
- {
- "relation": "calls",
- "context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/validator/test_engine_audit.py",
- "source_location": "L1117",
- "weight": 1.0,
- "source": "validator_test_engine_audit_test_level_for_orphan_returns_none_for_unmapped_levels",
- "target": "validator_engine_level_for_orphan"
+ "source": "cache_init_rationale_1",
+ "target": "src_exlab_wizard_cache_init_py"
},
{
- "relation": "rationale_for",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/validator/test_engine_audit.py",
- "source_location": "L1123",
+ "source_file": "tests/unit/cache/test_equipment.py",
+ "source_location": "L35",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "validator_test_engine_audit_rationale_1123",
- "target": "validator_test_engine_audit_test_validator_from_config_builds_engine"
+ "source": "tests_unit_cache_test_equipment_py",
+ "target": "cache_test_equipment_make_equipment_payload"
},
{
- "relation": "calls",
- "context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/validator/test_engine_audit.py",
- "source_location": "L1132",
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/cache/test_equipment.py",
+ "source_location": "L62",
"weight": 1.0,
- "source": "validator_test_engine_audit_test_validator_from_config_builds_engine",
- "target": "config_models_validatorconfig"
+ "confidence_score": 1.0,
+ "source": "tests_unit_cache_test_equipment_py",
+ "target": "cache_test_equipment_make_test_runs_payload"
},
{
- "relation": "rationale_for",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/validator/test_engine_audit.py",
- "source_location": "L1141",
+ "source_file": "tests/unit/cache/test_equipment.py",
+ "source_location": "L83",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "validator_test_engine_audit_rationale_1141",
- "target": "validator_test_engine_audit_test_validator_from_config_orchestrator_disabled"
+ "source": "tests_unit_cache_test_equipment_py",
+ "target": "cache_test_equipment_test_write_equipment_produces_valid_v1_file"
},
{
- "relation": "rationale_for",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/validator/test_engine_audit.py",
- "source_location": "L1155",
+ "source_file": "tests/unit/cache/test_equipment.py",
+ "source_location": "L104",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "validator_test_engine_audit_rationale_1155",
- "target": "validator_test_engine_audit_test_validator_from_config_no_orchestrator_attr"
+ "source": "tests_unit_cache_test_equipment_py",
+ "target": "cache_test_equipment_test_write_equipment_creates_parent_cache_dir"
},
{
- "relation": "rationale_for",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/validator/test_engine_audit.py",
- "source_location": "L1166",
+ "source_file": "tests/unit/cache/test_equipment.py",
+ "source_location": "L114",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "validator_test_engine_audit_rationale_1166",
- "target": "validator_test_engine_audit_test_classify_level_unrelated_dir_returns_other"
+ "source": "tests_unit_cache_test_equipment_py",
+ "target": "cache_test_equipment_test_write_equipment_preserves_first_seen_at_on_rewrite"
},
{
- "relation": "rationale_for",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/validator/test_engine_audit.py",
- "source_location": "L1176",
+ "source_file": "tests/unit/cache/test_equipment.py",
+ "source_location": "L131",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "validator_test_engine_audit_rationale_1176",
- "target": "validator_test_engine_audit_test_compute_run_path_unrelated_other_returns_input"
+ "source": "tests_unit_cache_test_equipment_py",
+ "target": "cache_test_equipment_test_write_equipment_updates_last_modified_at_on_rewrite"
},
{
- "relation": "rationale_for",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/validator/test_engine_audit.py",
- "source_location": "L1188",
+ "source_file": "tests/unit/cache/test_equipment.py",
+ "source_location": "L146",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "validator_test_engine_audit_rationale_1188",
- "target": "validator_test_engine_audit_test_compute_run_path_root_other_returns_root"
+ "source": "tests_unit_cache_test_equipment_py",
+ "target": "cache_test_equipment_test_read_equipment_round_trips"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/cache/test_log_writer.py",
- "source_location": "L33",
+ "source_file": "tests/unit/cache/test_equipment.py",
+ "source_location": "L163",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_cache_test_log_writer_py",
- "target": "cache_test_log_writer_test_format_log_line_with_all_tags_matches_spec_example"
+ "source": "tests_unit_cache_test_equipment_py",
+ "target": "cache_test_equipment_test_read_equipment_raises_when_file_missing"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/cache/test_log_writer.py",
- "source_location": "L52",
+ "source_file": "tests/unit/cache/test_equipment.py",
+ "source_location": "L171",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_cache_test_log_writer_py",
- "target": "cache_test_log_writer_test_format_log_line_with_run_id_includes_run_tag"
+ "source": "tests_unit_cache_test_equipment_py",
+ "target": "cache_test_equipment_test_write_equipment_corrupt_existing_file_recovers"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/cache/test_log_writer.py",
- "source_location": "L70",
+ "source_file": "tests/unit/cache/test_equipment.py",
+ "source_location": "L193",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_cache_test_log_writer_py",
- "target": "cache_test_log_writer_test_format_log_line_omits_unset_tags"
+ "source": "tests_unit_cache_test_equipment_py",
+ "target": "cache_test_equipment_test_write_test_runs_marker_creates_v1_file"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/cache/test_log_writer.py",
- "source_location": "L86",
+ "source_file": "tests/unit/cache/test_equipment.py",
+ "source_location": "L206",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_cache_test_log_writer_py",
- "target": "cache_test_log_writer_test_format_log_line_partial_tags_skipped_individually"
+ "source": "tests_unit_cache_test_equipment_py",
+ "target": "cache_test_equipment_test_write_test_runs_marker_creates_parent_dir"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/cache/test_log_writer.py",
- "source_location": "L102",
+ "source_file": "tests/unit/cache/test_equipment.py",
+ "source_location": "L215",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_cache_test_log_writer_py",
- "target": "cache_test_log_writer_test_format_log_line_level_is_padded_to_five_chars"
+ "source": "tests_unit_cache_test_equipment_py",
+ "target": "cache_test_equipment_test_write_test_runs_marker_is_idempotent"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/cache/test_log_writer.py",
- "source_location": "L115",
+ "source_file": "tests/unit/cache/test_equipment.py",
+ "source_location": "L239",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_cache_test_log_writer_py",
- "target": "cache_test_log_writer_test_format_log_line_timestamp_is_zero_padded_iso_with_z"
+ "source": "tests_unit_cache_test_equipment_py",
+ "target": "cache_test_equipment_test_write_test_runs_marker_concurrent_first_writes_safe"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/cache/test_log_writer.py",
- "source_location": "L123",
+ "source_file": "tests/unit/cache/test_equipment.py",
+ "source_location": "L266",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_cache_test_log_writer_py",
- "target": "cache_test_log_writer_test_format_log_line_naive_datetime_treated_as_utc"
+ "source": "tests_unit_cache_test_equipment_py",
+ "target": "cache_test_equipment_test_read_test_runs_marker_round_trips"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/cache/test_log_writer.py",
- "source_location": "L130",
+ "source_file": "tests/unit/cache/test_equipment.py",
+ "source_location": "L282",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_cache_test_log_writer_py",
- "target": "cache_test_log_writer_test_format_log_line_aware_non_utc_datetime_converts_to_utc"
+ "source": "tests_unit_cache_test_equipment_py",
+ "target": "cache_test_equipment_test_require_schema_major_raises_on_none_version"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/cache/test_log_writer.py",
- "source_location": "L142",
+ "source_file": "tests/unit/cache/test_equipment.py",
+ "source_location": "L291",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_cache_test_log_writer_py",
- "target": "cache_test_log_writer_test_format_log_line_short_message_unchanged"
+ "source": "tests_unit_cache_test_equipment_py",
+ "target": "cache_test_equipment_test_require_schema_major_raises_on_empty_version"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/cache/test_log_writer.py",
- "source_location": "L152",
+ "source_file": "tests/unit/cache/test_equipment.py",
+ "source_location": "L300",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_cache_test_log_writer_py",
- "target": "cache_test_log_writer_test_format_log_line_truncates_long_messages_with_marker"
+ "source": "tests_unit_cache_test_equipment_py",
+ "target": "cache_test_equipment_test_require_schema_major_raises_on_garbage_version"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/cache/test_log_writer.py",
- "source_location": "L165",
+ "source_file": "tests/unit/cache/test_equipment.py",
+ "source_location": "L309",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_cache_test_log_writer_py",
- "target": "cache_test_log_writer_test_format_log_line_truncation_preserves_prefix_and_tags"
+ "source": "tests_unit_cache_test_equipment_py",
+ "target": "cache_test_equipment_test_require_schema_major_passes_on_same_major"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/cache/test_log_writer.py",
- "source_location": "L179",
+ "source_file": "tests/unit/cache/test_equipment.py",
+ "source_location": "L319",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_cache_test_log_writer_py",
- "target": "cache_test_log_writer_test_format_log_line_truncation_at_exact_boundary"
+ "source": "tests_unit_cache_test_equipment_py",
+ "target": "cache_test_equipment_test_read_equipment_skips_check_for_malformed_json"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/cache/test_log_writer.py",
- "source_location": "L199",
+ "source_file": "tests/unit/cache/test_equipment.py",
+ "source_location": "L332",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_cache_test_log_writer_py",
- "target": "cache_test_log_writer_test_append_log_line_creates_parent_cache_dir"
+ "source": "tests_unit_cache_test_equipment_py",
+ "target": "cache_test_equipment_test_read_equipment_skips_check_when_schema_version_missing"
},
{
- "relation": "contains",
+ "relation": "rationale_for",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/cache/test_log_writer.py",
- "source_location": "L208",
+ "source_file": "tests/unit/cache/test_equipment.py",
+ "source_location": "L1",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_cache_test_log_writer_py",
- "target": "cache_test_log_writer_test_append_log_line_writes_single_line_with_newline"
+ "source": "cache_test_equipment_rationale_1",
+ "target": "tests_unit_cache_test_equipment_py"
},
{
- "relation": "contains",
+ "relation": "calls",
+ "context": "call",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/cache/test_log_writer.py",
- "source_location": "L215",
+ "source_file": "tests/unit/cache/test_equipment.py",
+ "source_location": "L87",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_cache_test_log_writer_py",
- "target": "cache_test_log_writer_test_append_log_line_appends_to_existing_file"
+ "source": "cache_test_equipment_test_write_equipment_produces_valid_v1_file",
+ "target": "cache_test_equipment_make_equipment_payload"
},
{
- "relation": "contains",
+ "relation": "calls",
+ "context": "call",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/cache/test_log_writer.py",
- "source_location": "L225",
+ "source_file": "tests/unit/cache/test_equipment.py",
+ "source_location": "L109",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_cache_test_log_writer_py",
- "target": "cache_test_log_writer_test_append_log_line_concurrent_writes_do_not_interleave"
+ "source": "cache_test_equipment_test_write_equipment_creates_parent_cache_dir",
+ "target": "cache_test_equipment_make_equipment_payload"
},
{
- "relation": "contains",
+ "relation": "calls",
+ "context": "call",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/cache/test_log_writer.py",
- "source_location": "L255",
+ "source_file": "tests/unit/cache/test_equipment.py",
+ "source_location": "L118",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_cache_test_log_writer_py",
- "target": "cache_test_log_writer_test_append_log_line_idempotent_directory_creation"
+ "source": "cache_test_equipment_test_write_equipment_preserves_first_seen_at_on_rewrite",
+ "target": "cache_test_equipment_make_equipment_payload"
},
{
- "relation": "contains",
+ "relation": "calls",
+ "context": "call",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/cache/test_log_writer.py",
- "source_location": "L268",
+ "source_file": "tests/unit/cache/test_equipment.py",
+ "source_location": "L135",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_cache_test_log_writer_py",
- "target": "cache_test_log_writer_test_format_log_line_truncation_prefix_alone_too_big_emits_marker_only"
+ "source": "cache_test_equipment_test_write_equipment_updates_last_modified_at_on_rewrite",
+ "target": "cache_test_equipment_make_equipment_payload"
},
{
- "relation": "contains",
+ "relation": "calls",
+ "context": "call",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/cache/test_log_writer.py",
- "source_location": "L286",
+ "source_file": "tests/unit/cache/test_equipment.py",
+ "source_location": "L150",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_cache_test_log_writer_py",
- "target": "cache_test_log_writer_test_format_log_line_truncation_prefix_alone_exhausts_budget"
+ "source": "cache_test_equipment_test_read_equipment_round_trips",
+ "target": "cache_test_equipment_make_equipment_payload"
},
{
- "relation": "rationale_for",
+ "relation": "calls",
+ "context": "call",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/cache/test_log_writer.py",
- "source_location": "L1",
+ "source_file": "tests/unit/cache/test_equipment.py",
+ "source_location": "L181",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "cache_test_log_writer_rationale_1",
- "target": "tests_unit_cache_test_log_writer_py"
+ "source": "cache_test_equipment_test_write_equipment_corrupt_existing_file_recovers",
+ "target": "cache_test_equipment_make_equipment_payload"
},
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/cache/test_log_writer.py",
- "source_location": "L34",
+ "source_file": "tests/unit/cache/test_equipment.py",
+ "source_location": "L44",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "cache_test_log_writer_rationale_34",
- "target": "cache_test_log_writer_test_format_log_line_with_all_tags_matches_spec_example"
+ "source": "cache_test_equipment_rationale_44",
+ "target": "cache_test_equipment_make_equipment_payload"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "tests/unit/cache/test_log_writer.py",
- "source_location": "L35",
+ "source_file": "tests/unit/cache/test_equipment.py",
+ "source_location": "L51",
"weight": 1.0,
- "source": "cache_test_log_writer_test_format_log_line_with_all_tags_matches_spec_example",
- "target": "cache_log_writer_format_log_line"
+ "source": "cache_test_equipment_make_equipment_payload",
+ "target": "api_schemas_equipmentjson"
},
{
- "relation": "rationale_for",
+ "relation": "calls",
+ "context": "call",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/cache/test_log_writer.py",
- "source_location": "L53",
+ "source_file": "tests/unit/cache/test_equipment.py",
+ "source_location": "L196",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "cache_test_log_writer_rationale_53",
- "target": "cache_test_log_writer_test_format_log_line_with_run_id_includes_run_tag"
+ "source": "cache_test_equipment_test_write_test_runs_marker_creates_v1_file",
+ "target": "cache_test_equipment_make_test_runs_payload"
},
{
"relation": "calls",
"context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/cache/test_log_writer.py",
- "source_location": "L54",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/cache/test_equipment.py",
+ "source_location": "L210",
"weight": 1.0,
- "source": "cache_test_log_writer_test_format_log_line_with_run_id_includes_run_tag",
- "target": "cache_log_writer_format_log_line"
+ "confidence_score": 1.0,
+ "source": "cache_test_equipment_test_write_test_runs_marker_creates_parent_dir",
+ "target": "cache_test_equipment_make_test_runs_payload"
},
{
- "relation": "rationale_for",
+ "relation": "calls",
+ "context": "call",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/cache/test_log_writer.py",
- "source_location": "L71",
+ "source_file": "tests/unit/cache/test_equipment.py",
+ "source_location": "L224",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "cache_test_log_writer_rationale_71",
- "target": "cache_test_log_writer_test_format_log_line_omits_unset_tags"
+ "source": "cache_test_equipment_test_write_test_runs_marker_is_idempotent",
+ "target": "cache_test_equipment_make_test_runs_payload"
},
{
"relation": "calls",
"context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/cache/test_log_writer.py",
- "source_location": "L72",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/cache/test_equipment.py",
+ "source_location": "L249",
"weight": 1.0,
- "source": "cache_test_log_writer_test_format_log_line_omits_unset_tags",
- "target": "cache_log_writer_format_log_line"
+ "confidence_score": 1.0,
+ "source": "cache_test_equipment_test_write_test_runs_marker_concurrent_first_writes_safe",
+ "target": "cache_test_equipment_make_test_runs_payload"
+ },
+ {
+ "relation": "calls",
+ "context": "call",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/cache/test_equipment.py",
+ "source_location": "L270",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "cache_test_equipment_test_read_test_runs_marker_round_trips",
+ "target": "cache_test_equipment_make_test_runs_payload"
},
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/cache/test_log_writer.py",
- "source_location": "L87",
+ "source_file": "tests/unit/cache/test_equipment.py",
+ "source_location": "L84",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "cache_test_log_writer_rationale_87",
- "target": "cache_test_log_writer_test_format_log_line_partial_tags_skipped_individually"
+ "source": "cache_test_equipment_rationale_84",
+ "target": "cache_test_equipment_test_write_equipment_produces_valid_v1_file"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "tests/unit/cache/test_log_writer.py",
- "source_location": "L88",
+ "source_file": "tests/unit/cache/test_equipment.py",
+ "source_location": "L85",
"weight": 1.0,
- "source": "cache_test_log_writer_test_format_log_line_partial_tags_skipped_individually",
- "target": "cache_log_writer_format_log_line"
+ "source": "cache_test_equipment_test_write_equipment_produces_valid_v1_file",
+ "target": "cache_equipment_equipmentcachewriter"
},
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/cache/test_log_writer.py",
- "source_location": "L103",
+ "source_file": "tests/unit/cache/test_equipment.py",
+ "source_location": "L105",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "cache_test_log_writer_rationale_103",
- "target": "cache_test_log_writer_test_format_log_line_level_is_padded_to_five_chars"
+ "source": "cache_test_equipment_rationale_105",
+ "target": "cache_test_equipment_test_write_equipment_creates_parent_cache_dir"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "tests/unit/cache/test_log_writer.py",
- "source_location": "L104",
+ "source_file": "tests/unit/cache/test_equipment.py",
+ "source_location": "L106",
"weight": 1.0,
- "source": "cache_test_log_writer_test_format_log_line_level_is_padded_to_five_chars",
- "target": "cache_log_writer_format_log_line"
+ "source": "cache_test_equipment_test_write_equipment_creates_parent_cache_dir",
+ "target": "cache_equipment_equipmentcachewriter"
},
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/cache/test_log_writer.py",
- "source_location": "L116",
+ "source_file": "tests/unit/cache/test_equipment.py",
+ "source_location": "L115",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "cache_test_log_writer_rationale_116",
- "target": "cache_test_log_writer_test_format_log_line_timestamp_is_zero_padded_iso_with_z"
+ "source": "cache_test_equipment_rationale_115",
+ "target": "cache_test_equipment_test_write_equipment_preserves_first_seen_at_on_rewrite"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "tests/unit/cache/test_log_writer.py",
- "source_location": "L118",
+ "source_file": "tests/unit/cache/test_equipment.py",
+ "source_location": "L116",
"weight": 1.0,
- "source": "cache_test_log_writer_test_format_log_line_timestamp_is_zero_padded_iso_with_z",
- "target": "cache_log_writer_format_log_line"
+ "source": "cache_test_equipment_test_write_equipment_preserves_first_seen_at_on_rewrite",
+ "target": "cache_equipment_equipmentcachewriter"
},
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/cache/test_log_writer.py",
- "source_location": "L124",
+ "source_file": "tests/unit/cache/test_equipment.py",
+ "source_location": "L132",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "cache_test_log_writer_rationale_124",
- "target": "cache_test_log_writer_test_format_log_line_naive_datetime_treated_as_utc"
+ "source": "cache_test_equipment_rationale_132",
+ "target": "cache_test_equipment_test_write_equipment_updates_last_modified_at_on_rewrite"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "tests/unit/cache/test_log_writer.py",
- "source_location": "L126",
+ "source_file": "tests/unit/cache/test_equipment.py",
+ "source_location": "L133",
"weight": 1.0,
- "source": "cache_test_log_writer_test_format_log_line_naive_datetime_treated_as_utc",
- "target": "cache_log_writer_format_log_line"
+ "source": "cache_test_equipment_test_write_equipment_updates_last_modified_at_on_rewrite",
+ "target": "cache_equipment_equipmentcachewriter"
},
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/cache/test_log_writer.py",
- "source_location": "L131",
+ "source_file": "tests/unit/cache/test_equipment.py",
+ "source_location": "L147",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "cache_test_log_writer_rationale_131",
- "target": "cache_test_log_writer_test_format_log_line_aware_non_utc_datetime_converts_to_utc"
+ "source": "cache_test_equipment_rationale_147",
+ "target": "cache_test_equipment_test_read_equipment_round_trips"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "tests/unit/cache/test_log_writer.py",
- "source_location": "L138",
+ "source_file": "tests/unit/cache/test_equipment.py",
+ "source_location": "L148",
"weight": 1.0,
- "source": "cache_test_log_writer_test_format_log_line_aware_non_utc_datetime_converts_to_utc",
- "target": "cache_log_writer_format_log_line"
+ "source": "cache_test_equipment_test_read_equipment_round_trips",
+ "target": "cache_equipment_equipmentcachewriter"
+ },
+ {
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/cache/test_equipment.py",
+ "source_location": "L164",
+ "weight": 1.0,
+ "source": "cache_test_equipment_test_read_equipment_raises_when_file_missing",
+ "target": "cache_equipment_equipmentcachewriter"
},
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/cache/test_log_writer.py",
- "source_location": "L143",
+ "source_file": "tests/unit/cache/test_equipment.py",
+ "source_location": "L172",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "cache_test_log_writer_rationale_143",
- "target": "cache_test_log_writer_test_format_log_line_short_message_unchanged"
+ "source": "cache_test_equipment_rationale_172",
+ "target": "cache_test_equipment_test_write_equipment_corrupt_existing_file_recovers"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "tests/unit/cache/test_log_writer.py",
- "source_location": "L144",
+ "source_file": "tests/unit/cache/test_equipment.py",
+ "source_location": "L178",
"weight": 1.0,
- "source": "cache_test_log_writer_test_format_log_line_short_message_unchanged",
- "target": "cache_log_writer_format_log_line"
+ "source": "cache_test_equipment_test_write_equipment_corrupt_existing_file_recovers",
+ "target": "cache_equipment_equipmentcachewriter"
},
{
- "relation": "rationale_for",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/cache/test_log_writer.py",
- "source_location": "L153",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/cache/test_equipment.py",
+ "source_location": "L194",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "cache_test_log_writer_rationale_153",
- "target": "cache_test_log_writer_test_format_log_line_truncates_long_messages_with_marker"
+ "source": "cache_test_equipment_test_write_test_runs_marker_creates_v1_file",
+ "target": "cache_equipment_equipmentcachewriter"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "tests/unit/cache/test_log_writer.py",
- "source_location": "L155",
+ "source_file": "tests/unit/cache/test_equipment.py",
+ "source_location": "L207",
"weight": 1.0,
- "source": "cache_test_log_writer_test_format_log_line_truncates_long_messages_with_marker",
- "target": "cache_log_writer_format_log_line"
+ "source": "cache_test_equipment_test_write_test_runs_marker_creates_parent_dir",
+ "target": "cache_equipment_equipmentcachewriter"
},
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/cache/test_log_writer.py",
- "source_location": "L166",
+ "source_file": "tests/unit/cache/test_equipment.py",
+ "source_location": "L216",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "cache_test_log_writer_rationale_166",
- "target": "cache_test_log_writer_test_format_log_line_truncation_preserves_prefix_and_tags"
+ "source": "cache_test_equipment_rationale_216",
+ "target": "cache_test_equipment_test_write_test_runs_marker_is_idempotent"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "tests/unit/cache/test_log_writer.py",
- "source_location": "L167",
+ "source_file": "tests/unit/cache/test_equipment.py",
+ "source_location": "L222",
"weight": 1.0,
- "source": "cache_test_log_writer_test_format_log_line_truncation_preserves_prefix_and_tags",
- "target": "cache_log_writer_format_log_line"
+ "source": "cache_test_equipment_test_write_test_runs_marker_is_idempotent",
+ "target": "cache_equipment_equipmentcachewriter"
},
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/cache/test_log_writer.py",
- "source_location": "L180",
+ "source_file": "tests/unit/cache/test_equipment.py",
+ "source_location": "L240",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "cache_test_log_writer_rationale_180",
- "target": "cache_test_log_writer_test_format_log_line_truncation_at_exact_boundary"
+ "source": "cache_test_equipment_rationale_240",
+ "target": "cache_test_equipment_test_write_test_runs_marker_concurrent_first_writes_safe"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "tests/unit/cache/test_log_writer.py",
- "source_location": "L182",
+ "source_file": "tests/unit/cache/test_equipment.py",
+ "source_location": "L246",
"weight": 1.0,
- "source": "cache_test_log_writer_test_format_log_line_truncation_at_exact_boundary",
- "target": "cache_log_writer_format_log_line"
+ "source": "cache_test_equipment_test_write_test_runs_marker_concurrent_first_writes_safe",
+ "target": "cache_equipment_equipmentcachewriter"
},
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/cache/test_log_writer.py",
- "source_location": "L200",
+ "source_file": "tests/unit/cache/test_equipment.py",
+ "source_location": "L267",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "cache_test_log_writer_rationale_200",
- "target": "cache_test_log_writer_test_append_log_line_creates_parent_cache_dir"
+ "source": "cache_test_equipment_rationale_267",
+ "target": "cache_test_equipment_test_read_test_runs_marker_round_trips"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "tests/unit/cache/test_log_writer.py",
- "source_location": "L203",
+ "source_file": "tests/unit/cache/test_equipment.py",
+ "source_location": "L268",
"weight": 1.0,
- "source": "cache_test_log_writer_test_append_log_line_creates_parent_cache_dir",
- "target": "cache_log_writer_append_log_line"
+ "source": "cache_test_equipment_test_read_test_runs_marker_round_trips",
+ "target": "cache_equipment_equipmentcachewriter"
+ },
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/cache/test_equipment.py",
+ "source_location": "L283",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "cache_test_equipment_rationale_283",
+ "target": "cache_test_equipment_test_require_schema_major_raises_on_none_version"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "tests/unit/cache/test_log_writer.py",
- "source_location": "L210",
+ "source_file": "tests/unit/cache/test_equipment.py",
+ "source_location": "L288",
"weight": 1.0,
- "source": "cache_test_log_writer_test_append_log_line_writes_single_line_with_newline",
- "target": "cache_log_writer_append_log_line"
+ "source": "cache_test_equipment_test_require_schema_major_raises_on_none_version",
+ "target": "io_json_files_require_schema_major"
},
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/cache/test_log_writer.py",
- "source_location": "L216",
+ "source_file": "tests/unit/cache/test_equipment.py",
+ "source_location": "L292",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "cache_test_log_writer_rationale_216",
- "target": "cache_test_log_writer_test_append_log_line_appends_to_existing_file"
+ "source": "cache_test_equipment_rationale_292",
+ "target": "cache_test_equipment_test_require_schema_major_raises_on_empty_version"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "tests/unit/cache/test_log_writer.py",
- "source_location": "L218",
+ "source_file": "tests/unit/cache/test_equipment.py",
+ "source_location": "L297",
"weight": 1.0,
- "source": "cache_test_log_writer_test_append_log_line_appends_to_existing_file",
- "target": "cache_log_writer_append_log_line"
+ "source": "cache_test_equipment_test_require_schema_major_raises_on_empty_version",
+ "target": "io_json_files_require_schema_major"
},
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/cache/test_log_writer.py",
- "source_location": "L226",
+ "source_file": "tests/unit/cache/test_equipment.py",
+ "source_location": "L301",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "cache_test_log_writer_rationale_226",
- "target": "cache_test_log_writer_test_append_log_line_concurrent_writes_do_not_interleave"
+ "source": "cache_test_equipment_rationale_301",
+ "target": "cache_test_equipment_test_require_schema_major_raises_on_garbage_version"
+ },
+ {
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/cache/test_equipment.py",
+ "source_location": "L306",
+ "weight": 1.0,
+ "source": "cache_test_equipment_test_require_schema_major_raises_on_garbage_version",
+ "target": "io_json_files_require_schema_major"
},
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/cache/test_log_writer.py",
- "source_location": "L256",
+ "source_file": "tests/unit/cache/test_equipment.py",
+ "source_location": "L310",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "cache_test_log_writer_rationale_256",
- "target": "cache_test_log_writer_test_append_log_line_idempotent_directory_creation"
+ "source": "cache_test_equipment_rationale_310",
+ "target": "cache_test_equipment_test_require_schema_major_passes_on_same_major"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "tests/unit/cache/test_log_writer.py",
- "source_location": "L258",
+ "source_file": "tests/unit/cache/test_equipment.py",
+ "source_location": "L314",
"weight": 1.0,
- "source": "cache_test_log_writer_test_append_log_line_idempotent_directory_creation",
- "target": "cache_log_writer_append_log_line"
+ "source": "cache_test_equipment_test_require_schema_major_passes_on_same_major",
+ "target": "io_json_files_require_schema_major"
},
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/cache/test_log_writer.py",
- "source_location": "L271",
+ "source_file": "tests/unit/cache/test_equipment.py",
+ "source_location": "L320",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "cache_test_log_writer_rationale_271",
- "target": "cache_test_log_writer_test_format_log_line_truncation_prefix_alone_too_big_emits_marker_only"
+ "source": "cache_test_equipment_rationale_320",
+ "target": "cache_test_equipment_test_read_equipment_skips_check_for_malformed_json"
+ },
+ {
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/cache/test_equipment.py",
+ "source_location": "L322",
+ "weight": 1.0,
+ "source": "cache_test_equipment_test_read_equipment_skips_check_for_malformed_json",
+ "target": "cache_equipment_equipmentcachewriter"
},
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/cache/test_log_writer.py",
- "source_location": "L289",
+ "source_file": "tests/unit/cache/test_equipment.py",
+ "source_location": "L335",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "cache_test_log_writer_rationale_289",
- "target": "cache_test_log_writer_test_format_log_line_truncation_prefix_alone_exhausts_budget"
+ "source": "cache_test_equipment_rationale_335",
+ "target": "cache_test_equipment_test_read_equipment_skips_check_when_schema_version_missing"
},
{
- "relation": "contains",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/cache/test_creation_writer.py",
- "source_location": "L48",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/cache/test_equipment.py",
+ "source_location": "L337",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "tests_unit_cache_test_creation_writer_py",
- "target": "cache_test_creation_writer_build_minimal_payload"
+ "source": "cache_test_equipment_test_read_equipment_skips_check_when_schema_version_missing",
+ "target": "cache_equipment_equipmentcachewriter"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/cache/test_creation_writer.py",
- "source_location": "L74",
+ "source_file": "tests/unit/cache/test_sync_state_writer.py",
+ "source_location": "L25",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_cache_test_creation_writer_py",
- "target": "cache_test_creation_writer_writer"
+ "source": "tests_unit_cache_test_sync_state_writer_py",
+ "target": "cache_test_sync_state_writer_state_path"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/cache/test_creation_writer.py",
- "source_location": "L79",
+ "source_file": "tests/unit/cache/test_sync_state_writer.py",
+ "source_location": "L34",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_cache_test_creation_writer_py",
- "target": "cache_test_creation_writer_creation_path"
+ "source": "tests_unit_cache_test_sync_state_writer_py",
+ "target": "cache_test_sync_state_writer_test_read_when_absent_returns_empty_state"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/cache/test_creation_writer.py",
- "source_location": "L89",
+ "source_file": "tests/unit/cache/test_sync_state_writer.py",
+ "source_location": "L52",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_cache_test_creation_writer_py",
- "target": "cache_test_creation_writer_test_write_creation_emits_valid_current_version_file"
+ "source": "tests_unit_cache_test_sync_state_writer_py",
+ "target": "cache_test_sync_state_writer_test_upsert_file_creates_a_record"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/cache/test_creation_writer.py",
- "source_location": "L101",
+ "source_file": "tests/unit/cache/test_sync_state_writer.py",
+ "source_location": "L72",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_cache_test_creation_writer_py",
- "target": "cache_test_creation_writer_test_write_creation_pins_schema_version_to_writer_default"
+ "source": "tests_unit_cache_test_sync_state_writer_py",
+ "target": "cache_test_sync_state_writer_test_upsert_file_updates_existing_record"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/cache/test_creation_writer.py",
- "source_location": "L117",
+ "source_file": "tests/unit/cache/test_sync_state_writer.py",
+ "source_location": "L90",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_cache_test_creation_writer_py",
- "target": "cache_test_creation_writer_test_update_creation_atomic_mutates_target_field"
+ "source": "tests_unit_cache_test_sync_state_writer_py",
+ "target": "cache_test_sync_state_writer_test_upsert_file_preserves_keep_local"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/cache/test_creation_writer.py",
- "source_location": "L133",
+ "source_file": "tests/unit/cache/test_sync_state_writer.py",
+ "source_location": "L112",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_cache_test_creation_writer_py",
- "target": "cache_test_creation_writer_test_update_creation_atomic_preserves_unknown_top_level_fields"
+ "source": "tests_unit_cache_test_sync_state_writer_py",
+ "target": "cache_test_sync_state_writer_test_set_keep_local_creates_record_if_absent"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/cache/test_creation_writer.py",
- "source_location": "L152",
+ "source_file": "tests/unit/cache/test_sync_state_writer.py",
+ "source_location": "L123",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_cache_test_creation_writer_py",
- "target": "cache_test_creation_writer_test_update_creation_atomic_appends_validation_override"
+ "source": "tests_unit_cache_test_sync_state_writer_py",
+ "target": "cache_test_sync_state_writer_test_set_keep_local_toggles_and_preserves_sync_fields"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/cache/test_creation_writer.py",
- "source_location": "L178",
+ "source_file": "tests/unit/cache/test_sync_state_writer.py",
+ "source_location": "L148",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_cache_test_creation_writer_py",
- "target": "cache_test_creation_writer_test_update_creation_atomic_serializes_concurrent_calls"
+ "source": "tests_unit_cache_test_sync_state_writer_py",
+ "target": "cache_test_sync_state_writer_test_mark_cleared_sets_cleared_at"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/cache/test_creation_writer.py",
- "source_location": "L219",
+ "source_file": "tests/unit/cache/test_sync_state_writer.py",
+ "source_location": "L163",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_cache_test_creation_writer_py",
- "target": "cache_test_creation_writer_test_read_creation_snapshot_returns_typed_struct"
+ "source": "tests_unit_cache_test_sync_state_writer_py",
+ "target": "cache_test_sync_state_writer_test_mark_cleared_on_absent_file_creates_state"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/cache/test_creation_writer.py",
- "source_location": "L229",
+ "source_file": "tests/unit/cache/test_sync_state_writer.py",
+ "source_location": "L172",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_cache_test_creation_writer_py",
- "target": "cache_test_creation_writer_test_read_creation_snapshot_supports_concurrent_readers"
+ "source": "tests_unit_cache_test_sync_state_writer_py",
+ "target": "cache_test_sync_state_writer_test_mutators_create_missing_exlab_wizard_dir"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/cache/test_creation_writer.py",
- "source_location": "L247",
+ "source_file": "tests/unit/cache/test_sync_state_writer.py",
+ "source_location": "L203",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_cache_test_creation_writer_py",
- "target": "cache_test_creation_writer_test_reading_2_0_file_raises_schema_major_mismatch"
+ "source": "tests_unit_cache_test_sync_state_writer_py",
+ "target": "cache_test_sync_state_writer_test_rollup_state_syncing_when_empty"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/cache/test_creation_writer.py",
- "source_location": "L260",
+ "source_file": "tests/unit/cache/test_sync_state_writer.py",
+ "source_location": "L208",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_cache_test_creation_writer_py",
- "target": "cache_test_creation_writer_test_reading_malformed_schema_version_raises_schema_major_mismatch"
+ "source": "tests_unit_cache_test_sync_state_writer_py",
+ "target": "cache_test_sync_state_writer_test_rollup_state_syncing_when_some_unverified"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/cache/test_creation_writer.py",
- "source_location": "L273",
+ "source_file": "tests/unit/cache/test_sync_state_writer.py",
+ "source_location": "L219",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_cache_test_creation_writer_py",
- "target": "cache_test_creation_writer_test_reading_1_0_file_applies_documented_defaults"
+ "source": "tests_unit_cache_test_sync_state_writer_py",
+ "target": "cache_test_sync_state_writer_test_rollup_state_synced_when_all_verified"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/cache/test_creation_writer.py",
- "source_location": "L312",
+ "source_file": "tests/unit/cache/test_sync_state_writer.py",
+ "source_location": "L230",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_cache_test_creation_writer_py",
- "target": "cache_test_creation_writer_test_reading_1_7_file_backfills_lims_project_subfields"
+ "source": "tests_unit_cache_test_sync_state_writer_py",
+ "target": "cache_test_sync_state_writer_test_rollup_state_cleared_takes_precedence_over_unverified"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/cache/test_creation_writer.py",
- "source_location": "L345",
+ "source_file": "tests/unit/cache/test_sync_state_writer.py",
+ "source_location": "L244",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_cache_test_creation_writer_py",
- "target": "cache_test_creation_writer_test_writer_bumps_schema_version_on_mutation_of_old_minor"
+ "source": "tests_unit_cache_test_sync_state_writer_py",
+ "target": "cache_test_sync_state_writer_test_sync_state_json_round_trips_through_msgspec"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/cache/test_creation_writer.py",
- "source_location": "L382",
+ "source_file": "tests/unit/cache/test_sync_state_writer.py",
+ "source_location": "L272",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_cache_test_creation_writer_py",
- "target": "cache_test_creation_writer_test_writing_always_emits_current_schema_version"
+ "source": "tests_unit_cache_test_sync_state_writer_py",
+ "target": "cache_test_sync_state_writer_test_read_raises_on_schema_major_mismatch"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/cache/test_creation_writer.py",
- "source_location": "L397",
+ "source_file": "tests/unit/cache/test_sync_state_writer.py",
+ "source_location": "L302",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_cache_test_creation_writer_py",
- "target": "cache_test_creation_writer_test_select_active_overrides_returns_empty_for_empty_input"
+ "source": "tests_unit_cache_test_sync_state_writer_py",
+ "target": "cache_test_sync_state_writer_test_concurrent_upserts_on_distinct_files_both_survive"
},
{
- "relation": "contains",
+ "relation": "rationale_for",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/cache/test_creation_writer.py",
- "source_location": "L401",
+ "source_file": "tests/unit/cache/test_sync_state_writer.py",
+ "source_location": "L1",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_cache_test_creation_writer_py",
- "target": "cache_test_creation_writer_test_select_active_overrides_keeps_unrevoked_unexpired_entries"
+ "source": "cache_test_sync_state_writer_rationale_1",
+ "target": "tests_unit_cache_test_sync_state_writer_py"
},
{
- "relation": "contains",
+ "relation": "calls",
+ "context": "call",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/cache/test_creation_writer.py",
- "source_location": "L418",
+ "source_file": "tests/unit/cache/test_sync_state_writer.py",
+ "source_location": "L44",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_cache_test_creation_writer_py",
- "target": "cache_test_creation_writer_test_select_active_overrides_drops_revoked_entry"
+ "source": "cache_test_sync_state_writer_test_read_when_absent_returns_empty_state",
+ "target": "cache_test_sync_state_writer_state_path"
},
{
- "relation": "contains",
+ "relation": "calls",
+ "context": "call",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/cache/test_creation_writer.py",
- "source_location": "L443",
+ "source_file": "tests/unit/cache/test_sync_state_writer.py",
+ "source_location": "L62",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_cache_test_creation_writer_py",
- "target": "cache_test_creation_writer_test_select_active_overrides_drops_expired_entry"
+ "source": "cache_test_sync_state_writer_test_upsert_file_creates_a_record",
+ "target": "cache_test_sync_state_writer_state_path"
},
{
- "relation": "contains",
+ "relation": "calls",
+ "context": "call",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/cache/test_creation_writer.py",
- "source_location": "L473",
+ "source_file": "tests/unit/cache/test_sync_state_writer.py",
+ "source_location": "L169",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_cache_test_creation_writer_py",
- "target": "cache_test_creation_writer_test_select_active_overrides_uses_explicit_now_for_determinism"
+ "source": "cache_test_sync_state_writer_test_mark_cleared_on_absent_file_creates_state",
+ "target": "cache_test_sync_state_writer_state_path"
},
{
- "relation": "contains",
+ "relation": "calls",
+ "context": "call",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/cache/test_creation_writer.py",
- "source_location": "L493",
+ "source_file": "tests/unit/cache/test_sync_state_writer.py",
+ "source_location": "L192",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_cache_test_creation_writer_py",
- "target": "cache_test_creation_writer_test_select_active_overrides_ignores_tombstone_for_unknown_id"
+ "source": "cache_test_sync_state_writer_test_mutators_create_missing_exlab_wizard_dir",
+ "target": "cache_test_sync_state_writer_state_path"
},
{
- "relation": "contains",
+ "relation": "calls",
+ "context": "call",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/cache/test_creation_writer.py",
- "source_location": "L519",
+ "source_file": "tests/unit/cache/test_sync_state_writer.py",
+ "source_location": "L278",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_cache_test_creation_writer_py",
- "target": "cache_test_creation_writer_test_select_active_overrides_treats_malformed_expires_at_as_expired"
+ "source": "cache_test_sync_state_writer_test_read_raises_on_schema_major_mismatch",
+ "target": "cache_test_sync_state_writer_state_path"
},
{
- "relation": "contains",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/cache/test_creation_writer.py",
- "source_location": "L539",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/cache/test_sync_state_writer.py",
+ "source_location": "L26",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "tests_unit_cache_test_creation_writer_py",
- "target": "cache_test_creation_writer_test_round_trip_preserves_plugins_applied_with_isolation"
+ "source": "cache_test_sync_state_writer_state_path",
+ "target": "exlab_wizard_paths_cache_dir"
},
{
- "relation": "contains",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/cache/test_creation_writer.py",
- "source_location": "L566",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/cache/test_sync_state_writer.py",
+ "source_location": "L35",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "tests_unit_cache_test_creation_writer_py",
- "target": "cache_test_creation_writer_test_reading_file_with_missing_required_field_raises_validation_error"
+ "source": "cache_test_sync_state_writer_test_read_when_absent_returns_empty_state",
+ "target": "cache_sync_state_writer_syncstatewriter"
},
{
- "relation": "contains",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/cache/test_creation_writer.py",
- "source_location": "L579",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/cache/test_sync_state_writer.py",
+ "source_location": "L53",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "tests_unit_cache_test_creation_writer_py",
- "target": "cache_test_creation_writer_test_select_active_overrides_skips_tombstone_with_null_revokes_target"
+ "source": "cache_test_sync_state_writer_test_upsert_file_creates_a_record",
+ "target": "cache_sync_state_writer_syncstatewriter"
},
{
- "relation": "contains",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/cache/test_creation_writer.py",
- "source_location": "L609",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/cache/test_sync_state_writer.py",
+ "source_location": "L73",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "tests_unit_cache_test_creation_writer_py",
- "target": "cache_test_creation_writer_test_select_active_overrides_naive_expires_at_is_treated_as_utc"
+ "source": "cache_test_sync_state_writer_test_upsert_file_updates_existing_record",
+ "target": "cache_sync_state_writer_syncstatewriter"
},
{
- "relation": "contains",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/cache/test_creation_writer.py",
- "source_location": "L629",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/cache/test_sync_state_writer.py",
+ "source_location": "L91",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "tests_unit_cache_test_creation_writer_py",
- "target": "cache_test_creation_writer_test_reading_file_missing_schema_version_raises_schema_major_mismatch"
+ "source": "cache_test_sync_state_writer_test_upsert_file_preserves_keep_local",
+ "target": "cache_sync_state_writer_syncstatewriter"
},
{
- "relation": "contains",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/cache/test_creation_writer.py",
- "source_location": "L640",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/cache/test_sync_state_writer.py",
+ "source_location": "L113",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "tests_unit_cache_test_creation_writer_py",
- "target": "cache_test_creation_writer_test_update_creation_atomic_backfills_missing_override_id"
+ "source": "cache_test_sync_state_writer_test_set_keep_local_creates_record_if_absent",
+ "target": "cache_sync_state_writer_syncstatewriter"
+ },
+ {
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/cache/test_sync_state_writer.py",
+ "source_location": "L124",
+ "weight": 1.0,
+ "source": "cache_test_sync_state_writer_test_set_keep_local_toggles_and_preserves_sync_fields",
+ "target": "cache_sync_state_writer_syncstatewriter"
+ },
+ {
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/cache/test_sync_state_writer.py",
+ "source_location": "L149",
+ "weight": 1.0,
+ "source": "cache_test_sync_state_writer_test_mark_cleared_sets_cleared_at",
+ "target": "cache_sync_state_writer_syncstatewriter"
+ },
+ {
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/cache/test_sync_state_writer.py",
+ "source_location": "L164",
+ "weight": 1.0,
+ "source": "cache_test_sync_state_writer_test_mark_cleared_on_absent_file_creates_state",
+ "target": "cache_sync_state_writer_syncstatewriter"
},
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/cache/test_creation_writer.py",
- "source_location": "L1",
+ "source_file": "tests/unit/cache/test_sync_state_writer.py",
+ "source_location": "L173",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "cache_test_creation_writer_rationale_1",
- "target": "tests_unit_cache_test_creation_writer_py"
+ "source": "cache_test_sync_state_writer_rationale_173",
+ "target": "cache_test_sync_state_writer_test_mutators_create_missing_exlab_wizard_dir"
+ },
+ {
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/cache/test_sync_state_writer.py",
+ "source_location": "L179",
+ "weight": 1.0,
+ "source": "cache_test_sync_state_writer_test_mutators_create_missing_exlab_wizard_dir",
+ "target": "cache_sync_state_writer_syncstatewriter"
+ },
+ {
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/cache/test_sync_state_writer.py",
+ "source_location": "L204",
+ "weight": 1.0,
+ "source": "cache_test_sync_state_writer_test_rollup_state_syncing_when_empty",
+ "target": "cache_sync_state_schema_syncstatejson"
+ },
+ {
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/cache/test_sync_state_writer.py",
+ "source_location": "L209",
+ "weight": 1.0,
+ "source": "cache_test_sync_state_writer_test_rollup_state_syncing_when_some_unverified",
+ "target": "cache_sync_state_schema_syncstatejson"
},
{
"relation": "calls",
"context": "call",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/cache/test_creation_writer.py",
- "source_location": "L92",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/cache/test_sync_state_writer.py",
+ "source_location": "L212",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "cache_test_creation_writer_test_write_creation_emits_valid_current_version_file",
- "target": "cache_test_creation_writer_build_minimal_payload"
+ "source": "cache_test_sync_state_writer_test_rollup_state_syncing_when_some_unverified",
+ "target": "cache_sync_state_schema_filesyncrecord"
},
{
"relation": "calls",
"context": "call",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/cache/test_creation_writer.py",
- "source_location": "L105",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/cache/test_sync_state_writer.py",
+ "source_location": "L220",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "cache_test_creation_writer_test_write_creation_pins_schema_version_to_writer_default",
- "target": "cache_test_creation_writer_build_minimal_payload"
+ "source": "cache_test_sync_state_writer_test_rollup_state_synced_when_all_verified",
+ "target": "cache_sync_state_schema_syncstatejson"
},
{
"relation": "calls",
"context": "call",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/cache/test_creation_writer.py",
- "source_location": "L120",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/cache/test_sync_state_writer.py",
+ "source_location": "L223",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "cache_test_creation_writer_test_update_creation_atomic_mutates_target_field",
- "target": "cache_test_creation_writer_build_minimal_payload"
+ "source": "cache_test_sync_state_writer_test_rollup_state_synced_when_all_verified",
+ "target": "cache_sync_state_schema_filesyncrecord"
},
{
"relation": "calls",
"context": "call",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/cache/test_creation_writer.py",
- "source_location": "L137",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/cache/test_sync_state_writer.py",
+ "source_location": "L231",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "cache_test_creation_writer_test_update_creation_atomic_preserves_unknown_top_level_fields",
- "target": "cache_test_creation_writer_build_minimal_payload"
+ "source": "cache_test_sync_state_writer_test_rollup_state_cleared_takes_precedence_over_unverified",
+ "target": "cache_sync_state_schema_syncstatejson"
},
{
"relation": "calls",
"context": "call",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/cache/test_creation_writer.py",
- "source_location": "L155",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/cache/test_sync_state_writer.py",
+ "source_location": "L234",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "cache_test_creation_writer_test_update_creation_atomic_appends_validation_override",
- "target": "cache_test_creation_writer_build_minimal_payload"
+ "source": "cache_test_sync_state_writer_test_rollup_state_cleared_takes_precedence_over_unverified",
+ "target": "cache_sync_state_schema_filesyncrecord"
},
{
"relation": "calls",
"context": "call",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/cache/test_creation_writer.py",
- "source_location": "L187",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/cache/test_sync_state_writer.py",
+ "source_location": "L245",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "cache_test_creation_writer_test_update_creation_atomic_serializes_concurrent_calls",
- "target": "cache_test_creation_writer_build_minimal_payload"
+ "source": "cache_test_sync_state_writer_test_sync_state_json_round_trips_through_msgspec",
+ "target": "cache_sync_state_schema_syncstatejson"
},
{
"relation": "calls",
"context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/cache/test_sync_state_writer.py",
+ "source_location": "L249",
+ "weight": 1.0,
+ "source": "cache_test_sync_state_writer_test_sync_state_json_round_trips_through_msgspec",
+ "target": "cache_sync_state_schema_filesyncrecord"
+ },
+ {
+ "relation": "rationale_for",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/cache/test_creation_writer.py",
- "source_location": "L222",
+ "source_file": "tests/unit/cache/test_sync_state_writer.py",
+ "source_location": "L273",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "cache_test_creation_writer_test_read_creation_snapshot_returns_typed_struct",
- "target": "cache_test_creation_writer_build_minimal_payload"
+ "source": "cache_test_sync_state_writer_rationale_273",
+ "target": "cache_test_sync_state_writer_test_read_raises_on_schema_major_mismatch"
},
{
"relation": "calls",
"context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/cache/test_sync_state_writer.py",
+ "source_location": "L290",
+ "weight": 1.0,
+ "source": "cache_test_sync_state_writer_test_read_raises_on_schema_major_mismatch",
+ "target": "cache_sync_state_writer_syncstatewriter"
+ },
+ {
+ "relation": "rationale_for",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/cache/test_creation_writer.py",
- "source_location": "L233",
+ "source_file": "tests/unit/cache/test_sync_state_writer.py",
+ "source_location": "L303",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "cache_test_creation_writer_test_read_creation_snapshot_supports_concurrent_readers",
- "target": "cache_test_creation_writer_build_minimal_payload"
+ "source": "cache_test_sync_state_writer_rationale_303",
+ "target": "cache_test_sync_state_writer_test_concurrent_upserts_on_distinct_files_both_survive"
},
{
"relation": "calls",
"context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/cache/test_sync_state_writer.py",
+ "source_location": "L308",
+ "weight": 1.0,
+ "source": "cache_test_sync_state_writer_test_concurrent_upserts_on_distinct_files_both_survive",
+ "target": "cache_sync_state_writer_syncstatewriter"
+ },
+ {
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/cache/test_creation_writer.py",
- "source_location": "L250",
+ "source_file": "tests/unit/config/test_loader.py",
+ "source_location": "L46",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "cache_test_creation_writer_test_reading_2_0_file_raises_schema_major_mismatch",
- "target": "cache_test_creation_writer_build_minimal_payload"
+ "source": "tests_unit_config_test_loader_py",
+ "target": "config_test_loader_test_load_config_complete_yaml"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/cache/test_creation_writer.py",
- "source_location": "L265",
+ "source_file": "tests/unit/config/test_loader.py",
+ "source_location": "L83",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "cache_test_creation_writer_test_reading_malformed_schema_version_raises_schema_major_mismatch",
- "target": "cache_test_creation_writer_build_minimal_payload"
+ "source": "tests_unit_config_test_loader_py",
+ "target": "config_test_loader_test_load_config_missing_file_raises"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/cache/test_creation_writer.py",
- "source_location": "L386",
+ "source_file": "tests/unit/config/test_loader.py",
+ "source_location": "L91",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "cache_test_creation_writer_test_writing_always_emits_current_schema_version",
- "target": "cache_test_creation_writer_build_minimal_payload"
+ "source": "tests_unit_config_test_loader_py",
+ "target": "config_test_loader_test_load_config_invalid_yaml_raises"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/cache/test_creation_writer.py",
- "source_location": "L542",
+ "source_file": "tests/unit/config/test_loader.py",
+ "source_location": "L100",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "cache_test_creation_writer_test_round_trip_preserves_plugins_applied_with_isolation",
- "target": "cache_test_creation_writer_build_minimal_payload"
+ "source": "tests_unit_config_test_loader_py",
+ "target": "config_test_loader_test_load_config_top_level_not_mapping_raises"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/cache/test_creation_writer.py",
- "source_location": "L645",
+ "source_file": "tests/unit/config/test_loader.py",
+ "source_location": "L108",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "cache_test_creation_writer_test_update_creation_atomic_backfills_missing_override_id",
- "target": "cache_test_creation_writer_build_minimal_payload"
+ "source": "tests_unit_config_test_loader_py",
+ "target": "config_test_loader_test_load_config_validation_error_raises_config_error"
},
{
- "relation": "calls",
- "context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/cache/test_creation_writer.py",
- "source_location": "L55",
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/config/test_loader.py",
+ "source_location": "L132",
"weight": 1.0,
- "source": "cache_test_creation_writer_build_minimal_payload",
- "target": "api_schemas_limsprojectblock"
+ "confidence_score": 1.0,
+ "source": "tests_unit_config_test_loader_py",
+ "target": "config_test_loader_test_load_config_from_text_empty_returns_empty_config"
},
{
- "relation": "calls",
- "context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/cache/test_creation_writer.py",
- "source_location": "L60",
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/config/test_loader.py",
+ "source_location": "L141",
"weight": 1.0,
- "source": "cache_test_creation_writer_build_minimal_payload",
- "target": "api_schemas_templateblock"
+ "confidence_score": 1.0,
+ "source": "tests_unit_config_test_loader_py",
+ "target": "config_test_loader_test_load_config_unreadable_path_raises_config_error"
},
{
- "relation": "calls",
- "context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/cache/test_creation_writer.py",
- "source_location": "L67",
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/config/test_loader.py",
+ "source_location": "L163",
"weight": 1.0,
- "source": "cache_test_creation_writer_build_minimal_payload",
- "target": "api_schemas_pathsblock"
+ "confidence_score": 1.0,
+ "source": "tests_unit_config_test_loader_py",
+ "target": "config_test_loader_test_save_config_atomic"
},
{
- "relation": "calls",
- "context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/cache/test_creation_writer.py",
- "source_location": "L70",
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/config/test_loader.py",
+ "source_location": "L175",
"weight": 1.0,
- "source": "cache_test_creation_writer_build_minimal_payload",
- "target": "api_schemas_creationjson"
+ "confidence_score": 1.0,
+ "source": "tests_unit_config_test_loader_py",
+ "target": "config_test_loader_test_save_config_preserves_comments_round_trip"
},
{
- "relation": "calls",
- "context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/cache/test_creation_writer.py",
- "source_location": "L75",
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/config/test_loader.py",
+ "source_location": "L189",
"weight": 1.0,
- "source": "cache_test_creation_writer_writer",
- "target": "cache_creation_writer_creationwriter"
+ "confidence_score": 1.0,
+ "source": "tests_unit_config_test_loader_py",
+ "target": "config_test_loader_test_save_config_preserves_key_order"
},
{
- "relation": "rationale_for",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/cache/test_creation_writer.py",
- "source_location": "L104",
+ "source_file": "tests/unit/config/test_loader.py",
+ "source_location": "L205",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "cache_test_creation_writer_rationale_104",
- "target": "cache_test_creation_writer_test_write_creation_pins_schema_version_to_writer_default"
+ "source": "tests_unit_config_test_loader_py",
+ "target": "config_test_loader_test_save_config_creates_parent_dirs"
},
{
- "relation": "rationale_for",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/cache/test_creation_writer.py",
- "source_location": "L136",
+ "source_file": "tests/unit/config/test_loader.py",
+ "source_location": "L215",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "cache_test_creation_writer_rationale_136",
- "target": "cache_test_creation_writer_test_update_creation_atomic_preserves_unknown_top_level_fields"
+ "source": "tests_unit_config_test_loader_py",
+ "target": "config_test_loader_test_save_config_without_original_text_writes_fresh"
},
{
- "relation": "rationale_for",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/cache/test_creation_writer.py",
- "source_location": "L181",
+ "source_file": "tests/unit/config/test_loader.py",
+ "source_location": "L234",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "cache_test_creation_writer_rationale_181",
- "target": "cache_test_creation_writer_test_update_creation_atomic_serializes_concurrent_calls"
+ "source": "tests_unit_config_test_loader_py",
+ "target": "config_test_loader_test_dump_config_round_trip"
},
{
- "relation": "rationale_for",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/cache/test_creation_writer.py",
- "source_location": "L232",
+ "source_file": "tests/unit/config/test_loader.py",
+ "source_location": "L306",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "cache_test_creation_writer_rationale_232",
- "target": "cache_test_creation_writer_test_read_creation_snapshot_supports_concurrent_readers"
+ "source": "tests_unit_config_test_loader_py",
+ "target": "config_test_loader_test_test_mode_unset_leaves_equipment_ids_unchanged"
},
{
- "relation": "rationale_for",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/cache/test_creation_writer.py",
- "source_location": "L263",
+ "source_file": "tests/unit/config/test_loader.py",
+ "source_location": "L313",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "cache_test_creation_writer_rationale_263",
- "target": "cache_test_creation_writer_test_reading_malformed_schema_version_raises_schema_major_mismatch"
+ "source": "tests_unit_config_test_loader_py",
+ "target": "config_test_loader_test_test_mode_enabled_prefixes_every_equipment_id"
},
{
- "relation": "rationale_for",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/cache/test_creation_writer.py",
- "source_location": "L276",
+ "source_file": "tests/unit/config/test_loader.py",
+ "source_location": "L326",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "cache_test_creation_writer_rationale_276",
- "target": "cache_test_creation_writer_test_reading_1_0_file_applies_documented_defaults"
+ "source": "tests_unit_config_test_loader_py",
+ "target": "config_test_loader_test_test_mode_is_idempotent_on_already_prefixed_ids"
},
{
- "relation": "rationale_for",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/cache/test_creation_writer.py",
- "source_location": "L315",
+ "source_file": "tests/unit/config/test_loader.py",
+ "source_location": "L358",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "cache_test_creation_writer_rationale_315",
- "target": "cache_test_creation_writer_test_reading_1_7_file_backfills_lims_project_subfields"
+ "source": "tests_unit_config_test_loader_py",
+ "target": "config_test_loader_test_test_mode_preserves_unique_id_invariant"
},
{
- "relation": "rationale_for",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/cache/test_creation_writer.py",
- "source_location": "L348",
+ "source_file": "tests/unit/config/test_loader.py",
+ "source_location": "L374",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "cache_test_creation_writer_rationale_348",
- "target": "cache_test_creation_writer_test_writer_bumps_schema_version_on_mutation_of_old_minor"
+ "source": "tests_unit_config_test_loader_py",
+ "target": "config_test_loader_test_test_mode_truthy_values_trigger_prefix"
},
{
- "relation": "rationale_for",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/cache/test_creation_writer.py",
- "source_location": "L385",
+ "source_file": "tests/unit/config/test_loader.py",
+ "source_location": "L386",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "cache_test_creation_writer_rationale_385",
- "target": "cache_test_creation_writer_test_writing_always_emits_current_schema_version"
+ "source": "tests_unit_config_test_loader_py",
+ "target": "config_test_loader_test_test_mode_falsy_values_do_not_trigger_prefix"
},
{
- "relation": "calls",
- "context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/cache/test_creation_writer.py",
- "source_location": "L398",
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/config/test_loader.py",
+ "source_location": "L395",
"weight": 1.0,
- "source": "cache_test_creation_writer_test_select_active_overrides_returns_empty_for_empty_input",
- "target": "cache_creation_writer_select_active_overrides"
+ "confidence_score": 1.0,
+ "source": "tests_unit_config_test_loader_py",
+ "target": "config_test_loader_test_test_mode_unset_via_delenv_does_not_trigger_prefix"
},
{
- "relation": "calls",
- "context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/cache/test_creation_writer.py",
- "source_location": "L403",
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/config/test_loader.py",
+ "source_location": "L404",
"weight": 1.0,
- "source": "cache_test_creation_writer_test_select_active_overrides_keeps_unrevoked_unexpired_entries",
- "target": "api_schemas_override_entry_to_dict"
+ "confidence_score": 1.0,
+ "source": "tests_unit_config_test_loader_py",
+ "target": "config_test_loader_test_apply_test_mode_prefix_helper_is_a_pure_function"
},
{
- "relation": "calls",
- "context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/cache/test_creation_writer.py",
- "source_location": "L404",
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/config/test_loader.py",
+ "source_location": "L389",
"weight": 1.0,
- "source": "cache_test_creation_writer_test_select_active_overrides_keeps_unrevoked_unexpired_entries",
- "target": "api_schemas_overrideentry"
+ "confidence_score": 1.0,
+ "source": "tests_unit_config_test_loader_py",
+ "target": "config_test_loader_test_loader_round_trips_nas_block"
},
{
- "relation": "calls",
- "context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/cache/test_creation_writer.py",
- "source_location": "L413",
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/config/test_loader.py",
+ "source_location": "L423",
"weight": 1.0,
- "source": "cache_test_creation_writer_test_select_active_overrides_keeps_unrevoked_unexpired_entries",
- "target": "cache_creation_writer_select_active_overrides"
+ "confidence_score": 1.0,
+ "source": "tests_unit_config_test_loader_py",
+ "target": "config_test_loader_test_load_config_uses_ruamel_round_trip"
},
{
- "relation": "calls",
- "context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/cache/test_creation_writer.py",
- "source_location": "L420",
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/config/test_loader.py",
+ "source_location": "L1",
"weight": 1.0,
- "source": "cache_test_creation_writer_test_select_active_overrides_drops_revoked_entry",
- "target": "api_schemas_override_entry_to_dict"
+ "confidence_score": 1.0,
+ "source": "config_test_loader_rationale_1",
+ "target": "tests_unit_config_test_loader_py"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "tests/unit/cache/test_creation_writer.py",
- "source_location": "L421",
+ "source_file": "tests/unit/config/test_loader.py",
+ "source_location": "L47",
"weight": 1.0,
- "source": "cache_test_creation_writer_test_select_active_overrides_drops_revoked_entry",
- "target": "api_schemas_overrideentry"
+ "source": "config_test_loader_test_load_config_complete_yaml",
+ "target": "config_loader_load_config"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "tests/unit/cache/test_creation_writer.py",
- "source_location": "L429",
+ "source_file": "tests/unit/config/test_loader.py",
+ "source_location": "L86",
"weight": 1.0,
- "source": "cache_test_creation_writer_test_select_active_overrides_drops_revoked_entry",
- "target": "api_schemas_tombstone_entry_to_dict"
+ "source": "config_test_loader_test_load_config_missing_file_raises",
+ "target": "config_loader_load_config"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "tests/unit/cache/test_creation_writer.py",
- "source_location": "L439",
+ "source_file": "tests/unit/config/test_loader.py",
+ "source_location": "L96",
"weight": 1.0,
- "source": "cache_test_creation_writer_test_select_active_overrides_drops_revoked_entry",
- "target": "cache_creation_writer_select_active_overrides"
+ "source": "config_test_loader_test_load_config_invalid_yaml_raises",
+ "target": "config_loader_load_config"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "tests/unit/cache/test_creation_writer.py",
- "source_location": "L447",
+ "source_file": "tests/unit/config/test_loader.py",
+ "source_location": "L104",
"weight": 1.0,
- "source": "cache_test_creation_writer_test_select_active_overrides_drops_expired_entry",
- "target": "api_schemas_override_entry_to_dict"
+ "source": "config_test_loader_test_load_config_top_level_not_mapping_raises",
+ "target": "config_loader_load_config"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "tests/unit/cache/test_creation_writer.py",
- "source_location": "L448",
+ "source_file": "tests/unit/config/test_loader.py",
+ "source_location": "L127",
"weight": 1.0,
- "source": "cache_test_creation_writer_test_select_active_overrides_drops_expired_entry",
- "target": "api_schemas_overrideentry"
+ "source": "config_test_loader_test_load_config_validation_error_raises_config_error",
+ "target": "config_loader_load_config"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "tests/unit/cache/test_creation_writer.py",
- "source_location": "L468",
- "weight": 1.0,
- "source": "cache_test_creation_writer_test_select_active_overrides_drops_expired_entry",
- "target": "cache_creation_writer_select_active_overrides"
- },
- {
- "relation": "rationale_for",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/cache/test_creation_writer.py",
- "source_location": "L474",
+ "source_file": "tests/unit/config/test_loader.py",
+ "source_location": "L135",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "cache_test_creation_writer_rationale_474",
- "target": "cache_test_creation_writer_test_select_active_overrides_uses_explicit_now_for_determinism"
+ "source": "config_test_loader_test_load_config_from_text_empty_returns_empty_config",
+ "target": "config_loader_load_config_from_text"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "tests/unit/cache/test_creation_writer.py",
- "source_location": "L477",
+ "source_file": "tests/unit/config/test_loader.py",
+ "source_location": "L149",
"weight": 1.0,
- "source": "cache_test_creation_writer_test_select_active_overrides_uses_explicit_now_for_determinism",
- "target": "api_schemas_override_entry_to_dict"
+ "source": "config_test_loader_test_load_config_unreadable_path_raises_config_error",
+ "target": "config_loader_load_config"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "tests/unit/cache/test_creation_writer.py",
- "source_location": "L478",
+ "source_file": "tests/unit/config/test_loader.py",
+ "source_location": "L164",
"weight": 1.0,
- "source": "cache_test_creation_writer_test_select_active_overrides_uses_explicit_now_for_determinism",
- "target": "api_schemas_overrideentry"
+ "source": "config_test_loader_test_save_config_atomic",
+ "target": "config_loader_load_config"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "tests/unit/cache/test_creation_writer.py",
- "source_location": "L489",
- "weight": 1.0,
- "source": "cache_test_creation_writer_test_select_active_overrides_uses_explicit_now_for_determinism",
- "target": "cache_creation_writer_select_active_overrides"
- },
- {
- "relation": "rationale_for",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/cache/test_creation_writer.py",
- "source_location": "L494",
+ "source_file": "tests/unit/config/test_loader.py",
+ "source_location": "L167",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "cache_test_creation_writer_rationale_494",
- "target": "cache_test_creation_writer_test_select_active_overrides_ignores_tombstone_for_unknown_id"
+ "source": "config_test_loader_test_save_config_atomic",
+ "target": "config_loader_save_config"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "tests/unit/cache/test_creation_writer.py",
- "source_location": "L496",
+ "source_file": "tests/unit/config/test_loader.py",
+ "source_location": "L178",
"weight": 1.0,
- "source": "cache_test_creation_writer_test_select_active_overrides_ignores_tombstone_for_unknown_id",
- "target": "api_schemas_tombstone_entry_to_dict"
+ "source": "config_test_loader_test_save_config_preserves_comments_round_trip",
+ "target": "config_loader_load_config"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "tests/unit/cache/test_creation_writer.py",
- "source_location": "L505",
+ "source_file": "tests/unit/config/test_loader.py",
+ "source_location": "L181",
"weight": 1.0,
- "source": "cache_test_creation_writer_test_select_active_overrides_ignores_tombstone_for_unknown_id",
- "target": "api_schemas_override_entry_to_dict"
+ "source": "config_test_loader_test_save_config_preserves_comments_round_trip",
+ "target": "config_loader_save_config"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "tests/unit/cache/test_creation_writer.py",
- "source_location": "L506",
+ "source_file": "tests/unit/config/test_loader.py",
+ "source_location": "L192",
"weight": 1.0,
- "source": "cache_test_creation_writer_test_select_active_overrides_ignores_tombstone_for_unknown_id",
- "target": "api_schemas_overrideentry"
+ "source": "config_test_loader_test_save_config_preserves_key_order",
+ "target": "config_loader_load_config"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "tests/unit/cache/test_creation_writer.py",
- "source_location": "L515",
- "weight": 1.0,
- "source": "cache_test_creation_writer_test_select_active_overrides_ignores_tombstone_for_unknown_id",
- "target": "cache_creation_writer_select_active_overrides"
- },
- {
- "relation": "rationale_for",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/cache/test_creation_writer.py",
- "source_location": "L520",
+ "source_file": "tests/unit/config/test_loader.py",
+ "source_location": "L195",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "cache_test_creation_writer_rationale_520",
- "target": "cache_test_creation_writer_test_select_active_overrides_treats_malformed_expires_at_as_expired"
+ "source": "config_test_loader_test_save_config_preserves_key_order",
+ "target": "config_loader_save_config"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "tests/unit/cache/test_creation_writer.py",
- "source_location": "L530",
+ "source_file": "tests/unit/config/test_loader.py",
+ "source_location": "L206",
"weight": 1.0,
- "source": "cache_test_creation_writer_test_select_active_overrides_treats_malformed_expires_at_as_expired",
- "target": "cache_creation_writer_select_active_overrides"
+ "source": "config_test_loader_test_save_config_creates_parent_dirs",
+ "target": "config_loader_load_config"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "tests/unit/cache/test_creation_writer.py",
- "source_location": "L544",
+ "source_file": "tests/unit/config/test_loader.py",
+ "source_location": "L209",
"weight": 1.0,
- "source": "cache_test_creation_writer_test_round_trip_preserves_plugins_applied_with_isolation",
- "target": "api_schemas_pluginapplied"
+ "source": "config_test_loader_test_save_config_creates_parent_dirs",
+ "target": "config_loader_save_config"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "tests/unit/cache/test_creation_writer.py",
- "source_location": "L549",
- "weight": 1.0,
- "source": "cache_test_creation_writer_test_round_trip_preserves_plugins_applied_with_isolation",
- "target": "api_schemas_pluginisolation"
- },
- {
- "relation": "rationale_for",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/cache/test_creation_writer.py",
- "source_location": "L580",
+ "source_file": "tests/unit/config/test_loader.py",
+ "source_location": "L216",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "cache_test_creation_writer_rationale_580",
- "target": "cache_test_creation_writer_test_select_active_overrides_skips_tombstone_with_null_revokes_target"
+ "source": "config_test_loader_test_save_config_without_original_text_writes_fresh",
+ "target": "config_loader_load_config"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "tests/unit/cache/test_creation_writer.py",
- "source_location": "L595",
+ "source_file": "tests/unit/config/test_loader.py",
+ "source_location": "L219",
"weight": 1.0,
- "source": "cache_test_creation_writer_test_select_active_overrides_skips_tombstone_with_null_revokes_target",
- "target": "api_schemas_override_entry_to_dict"
+ "source": "config_test_loader_test_save_config_without_original_text_writes_fresh",
+ "target": "config_loader_save_config"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "tests/unit/cache/test_creation_writer.py",
- "source_location": "L596",
+ "source_file": "tests/unit/config/test_loader.py",
+ "source_location": "L264",
"weight": 1.0,
- "source": "cache_test_creation_writer_test_select_active_overrides_skips_tombstone_with_null_revokes_target",
- "target": "api_schemas_overrideentry"
+ "source": "config_test_loader_test_dump_config_round_trip",
+ "target": "config_loader_dump_config"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "tests/unit/cache/test_creation_writer.py",
- "source_location": "L605",
+ "source_file": "tests/unit/config/test_loader.py",
+ "source_location": "L265",
"weight": 1.0,
- "source": "cache_test_creation_writer_test_select_active_overrides_skips_tombstone_with_null_revokes_target",
- "target": "cache_creation_writer_select_active_overrides"
+ "source": "config_test_loader_test_dump_config_round_trip",
+ "target": "config_loader_load_config_from_text"
},
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/cache/test_creation_writer.py",
- "source_location": "L610",
+ "source_file": "tests/unit/config/test_loader.py",
+ "source_location": "L283",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "cache_test_creation_writer_rationale_610",
- "target": "cache_test_creation_writer_test_select_active_overrides_naive_expires_at_is_treated_as_utc"
- },
- {
- "relation": "calls",
- "context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/cache/test_creation_writer.py",
- "source_location": "L614",
- "weight": 1.0,
- "source": "cache_test_creation_writer_test_select_active_overrides_naive_expires_at_is_treated_as_utc",
- "target": "api_schemas_override_entry_to_dict"
- },
- {
- "relation": "calls",
- "context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/cache/test_creation_writer.py",
- "source_location": "L615",
- "weight": 1.0,
- "source": "cache_test_creation_writer_test_select_active_overrides_naive_expires_at_is_treated_as_utc",
- "target": "api_schemas_overrideentry"
+ "source": "config_test_loader_rationale_283",
+ "target": "config_test_loader_test_test_mode_unset_leaves_equipment_ids_unchanged"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "tests/unit/cache/test_creation_writer.py",
- "source_location": "L624",
+ "source_file": "tests/unit/config/test_loader.py",
+ "source_location": "L309",
"weight": 1.0,
- "source": "cache_test_creation_writer_test_select_active_overrides_naive_expires_at_is_treated_as_utc",
- "target": "cache_creation_writer_select_active_overrides"
+ "source": "config_test_loader_test_test_mode_unset_leaves_equipment_ids_unchanged",
+ "target": "config_loader_load_config_from_text"
},
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/cache/test_creation_writer.py",
- "source_location": "L632",
+ "source_file": "tests/unit/config/test_loader.py",
+ "source_location": "L307",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "cache_test_creation_writer_rationale_632",
- "target": "cache_test_creation_writer_test_reading_file_missing_schema_version_raises_schema_major_mismatch"
+ "source": "config_test_loader_rationale_307",
+ "target": "config_test_loader_test_test_mode_unset_leaves_equipment_ids_unchanged"
},
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/cache/test_creation_writer.py",
- "source_location": "L643",
+ "source_file": "tests/unit/config/test_loader.py",
+ "source_location": "L290",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "cache_test_creation_writer_rationale_643",
- "target": "cache_test_creation_writer_test_update_creation_atomic_backfills_missing_override_id"
+ "source": "config_test_loader_rationale_290",
+ "target": "config_test_loader_test_test_mode_enabled_prefixes_every_equipment_id"
},
{
- "relation": "rationale_for",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/cache/__init__.py",
- "source_location": "L1",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/config/test_loader.py",
+ "source_location": "L316",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "cache_init_rationale_1",
- "target": "tests_unit_cache_init_py"
+ "source": "config_test_loader_test_test_mode_enabled_prefixes_every_equipment_id",
+ "target": "config_loader_load_config_from_text"
},
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
- "source_file": "src/exlab_wizard/cache/__init__.py",
- "source_location": "L1",
+ "source_file": "tests/unit/config/test_loader.py",
+ "source_location": "L314",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "cache_init_rationale_1",
- "target": "src_exlab_wizard_cache_init_py"
+ "source": "config_test_loader_rationale_314",
+ "target": "config_test_loader_test_test_mode_enabled_prefixes_every_equipment_id"
},
{
- "relation": "contains",
+ "relation": "rationale_for",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/cache/test_equipment.py",
- "source_location": "L35",
+ "source_file": "tests/unit/config/test_loader.py",
+ "source_location": "L305",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_cache_test_equipment_py",
- "target": "cache_test_equipment_make_equipment_payload"
+ "source": "config_test_loader_rationale_305",
+ "target": "config_test_loader_test_test_mode_is_idempotent_on_already_prefixed_ids"
},
{
- "relation": "contains",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/cache/test_equipment.py",
- "source_location": "L62",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/config/test_loader.py",
+ "source_location": "L352",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "tests_unit_cache_test_equipment_py",
- "target": "cache_test_equipment_make_test_runs_payload"
+ "source": "config_test_loader_test_test_mode_is_idempotent_on_already_prefixed_ids",
+ "target": "config_loader_load_config_from_text"
},
{
- "relation": "contains",
+ "relation": "rationale_for",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/cache/test_equipment.py",
- "source_location": "L83",
+ "source_file": "tests/unit/config/test_loader.py",
+ "source_location": "L329",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_cache_test_equipment_py",
- "target": "cache_test_equipment_test_write_equipment_produces_valid_v1_file"
+ "source": "config_test_loader_rationale_329",
+ "target": "config_test_loader_test_test_mode_is_idempotent_on_already_prefixed_ids"
},
{
- "relation": "contains",
+ "relation": "rationale_for",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/cache/test_equipment.py",
- "source_location": "L104",
+ "source_file": "tests/unit/config/test_loader.py",
+ "source_location": "L325",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_cache_test_equipment_py",
- "target": "cache_test_equipment_test_write_equipment_creates_parent_cache_dir"
+ "source": "config_test_loader_rationale_325",
+ "target": "config_test_loader_test_test_mode_preserves_unique_id_invariant"
},
{
- "relation": "contains",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/cache/test_equipment.py",
- "source_location": "L114",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/config/test_loader.py",
+ "source_location": "L361",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "tests_unit_cache_test_equipment_py",
- "target": "cache_test_equipment_test_write_equipment_preserves_first_seen_at_on_rewrite"
+ "source": "config_test_loader_test_test_mode_preserves_unique_id_invariant",
+ "target": "config_loader_load_config_from_text"
},
{
- "relation": "contains",
+ "relation": "rationale_for",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/cache/test_equipment.py",
- "source_location": "L131",
+ "source_file": "tests/unit/config/test_loader.py",
+ "source_location": "L359",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_cache_test_equipment_py",
- "target": "cache_test_equipment_test_write_equipment_updates_last_modified_at_on_rewrite"
+ "source": "config_test_loader_rationale_359",
+ "target": "config_test_loader_test_test_mode_preserves_unique_id_invariant"
},
{
- "relation": "contains",
+ "relation": "rationale_for",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/cache/test_equipment.py",
- "source_location": "L146",
+ "source_file": "tests/unit/config/test_loader.py",
+ "source_location": "L343",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_cache_test_equipment_py",
- "target": "cache_test_equipment_test_read_equipment_round_trips"
+ "source": "config_test_loader_rationale_343",
+ "target": "config_test_loader_test_test_mode_truthy_values_trigger_prefix"
},
{
- "relation": "contains",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/cache/test_equipment.py",
- "source_location": "L163",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/config/test_loader.py",
+ "source_location": "L379",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "tests_unit_cache_test_equipment_py",
- "target": "cache_test_equipment_test_read_equipment_raises_when_file_missing"
+ "source": "config_test_loader_test_test_mode_truthy_values_trigger_prefix",
+ "target": "config_loader_load_config_from_text"
},
{
- "relation": "contains",
+ "relation": "rationale_for",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/cache/test_equipment.py",
- "source_location": "L171",
+ "source_file": "tests/unit/config/test_loader.py",
+ "source_location": "L377",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_cache_test_equipment_py",
- "target": "cache_test_equipment_test_write_equipment_corrupt_existing_file_recovers"
+ "source": "config_test_loader_rationale_377",
+ "target": "config_test_loader_test_test_mode_truthy_values_trigger_prefix"
},
{
- "relation": "contains",
+ "relation": "rationale_for",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/cache/test_equipment.py",
- "source_location": "L193",
+ "source_file": "tests/unit/config/test_loader.py",
+ "source_location": "L355",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_cache_test_equipment_py",
- "target": "cache_test_equipment_test_write_test_runs_marker_creates_v1_file"
+ "source": "config_test_loader_rationale_355",
+ "target": "config_test_loader_test_test_mode_falsy_values_do_not_trigger_prefix"
},
{
- "relation": "contains",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/cache/test_equipment.py",
- "source_location": "L206",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/config/test_loader.py",
+ "source_location": "L391",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "tests_unit_cache_test_equipment_py",
- "target": "cache_test_equipment_test_write_test_runs_marker_creates_parent_dir"
+ "source": "config_test_loader_test_test_mode_falsy_values_do_not_trigger_prefix",
+ "target": "config_loader_load_config_from_text"
},
{
- "relation": "contains",
+ "relation": "rationale_for",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/cache/test_equipment.py",
- "source_location": "L215",
+ "source_file": "tests/unit/config/test_loader.py",
+ "source_location": "L389",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_cache_test_equipment_py",
- "target": "cache_test_equipment_test_write_test_runs_marker_is_idempotent"
+ "source": "config_test_loader_rationale_389",
+ "target": "config_test_loader_test_test_mode_falsy_values_do_not_trigger_prefix"
},
{
- "relation": "contains",
+ "relation": "rationale_for",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/cache/test_equipment.py",
- "source_location": "L239",
+ "source_file": "tests/unit/config/test_loader.py",
+ "source_location": "L364",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_cache_test_equipment_py",
- "target": "cache_test_equipment_test_write_test_runs_marker_concurrent_first_writes_safe"
+ "source": "config_test_loader_rationale_364",
+ "target": "config_test_loader_test_test_mode_unset_via_delenv_does_not_trigger_prefix"
},
{
- "relation": "contains",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/cache/test_equipment.py",
- "source_location": "L266",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/config/test_loader.py",
+ "source_location": "L400",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "tests_unit_cache_test_equipment_py",
- "target": "cache_test_equipment_test_read_test_runs_marker_round_trips"
+ "source": "config_test_loader_test_test_mode_unset_via_delenv_does_not_trigger_prefix",
+ "target": "config_loader_load_config_from_text"
},
{
- "relation": "contains",
+ "relation": "rationale_for",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/cache/test_equipment.py",
- "source_location": "L282",
+ "source_file": "tests/unit/config/test_loader.py",
+ "source_location": "L398",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_cache_test_equipment_py",
- "target": "cache_test_equipment_test_require_schema_major_raises_on_none_version"
+ "source": "config_test_loader_rationale_398",
+ "target": "config_test_loader_test_test_mode_unset_via_delenv_does_not_trigger_prefix"
},
{
- "relation": "contains",
+ "relation": "rationale_for",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/cache/test_equipment.py",
- "source_location": "L291",
+ "source_file": "tests/unit/config/test_loader.py",
+ "source_location": "L373",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_cache_test_equipment_py",
- "target": "cache_test_equipment_test_require_schema_major_raises_on_empty_version"
+ "source": "config_test_loader_rationale_373",
+ "target": "config_test_loader_test_apply_test_mode_prefix_helper_is_a_pure_function"
},
{
- "relation": "contains",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/cache/test_equipment.py",
- "source_location": "L300",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/config/test_loader.py",
+ "source_location": "L413",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "tests_unit_cache_test_equipment_py",
- "target": "cache_test_equipment_test_require_schema_major_raises_on_garbage_version"
+ "source": "config_test_loader_test_apply_test_mode_prefix_helper_is_a_pure_function",
+ "target": "config_loader_load_config_from_text"
},
{
- "relation": "contains",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/cache/test_equipment.py",
- "source_location": "L309",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/config/test_loader.py",
+ "source_location": "L414",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "tests_unit_cache_test_equipment_py",
- "target": "cache_test_equipment_test_require_schema_major_passes_on_same_major"
+ "source": "config_test_loader_test_apply_test_mode_prefix_helper_is_a_pure_function",
+ "target": "config_loader_apply_test_mode_prefix"
},
{
- "relation": "contains",
+ "relation": "rationale_for",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/cache/test_equipment.py",
- "source_location": "L319",
+ "source_file": "tests/unit/config/test_loader.py",
+ "source_location": "L407",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_cache_test_equipment_py",
- "target": "cache_test_equipment_test_read_equipment_skips_check_for_malformed_json"
+ "source": "config_test_loader_rationale_407",
+ "target": "config_test_loader_test_apply_test_mode_prefix_helper_is_a_pure_function"
},
{
- "relation": "contains",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/cache/test_equipment.py",
- "source_location": "L332",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/config/test_loader.py",
+ "source_location": "L403",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "tests_unit_cache_test_equipment_py",
- "target": "cache_test_equipment_test_read_equipment_skips_check_when_schema_version_missing"
+ "source": "config_test_loader_test_loader_round_trips_nas_block",
+ "target": "config_loader_load_config"
},
{
- "relation": "rationale_for",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/cache/test_equipment.py",
- "source_location": "L1",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/config/test_loader.py",
+ "source_location": "L406",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "cache_test_equipment_rationale_1",
- "target": "tests_unit_cache_test_equipment_py"
+ "source": "config_test_loader_test_loader_round_trips_nas_block",
+ "target": "config_loader_save_config"
},
{
"relation": "calls",
"context": "call",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/cache/test_equipment.py",
- "source_location": "L87",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/config/test_loader.py",
+ "source_location": "L430",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "cache_test_equipment_test_write_equipment_produces_valid_v1_file",
- "target": "cache_test_equipment_make_equipment_payload"
+ "source": "config_test_loader_test_load_config_uses_ruamel_round_trip",
+ "target": "config_loader_load_config"
},
{
"relation": "calls",
"context": "call",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/cache/test_equipment.py",
- "source_location": "L109",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/config/test_loader.py",
+ "source_location": "L433",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "cache_test_equipment_test_write_equipment_creates_parent_cache_dir",
- "target": "cache_test_equipment_make_equipment_payload"
+ "source": "config_test_loader_test_load_config_uses_ruamel_round_trip",
+ "target": "config_loader_save_config"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "rationale_for",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/cache/test_equipment.py",
- "source_location": "L118",
+ "source_file": "tests/unit/config/__init__.py",
+ "source_location": "L1",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "cache_test_equipment_test_write_equipment_preserves_first_seen_at_on_rewrite",
- "target": "cache_test_equipment_make_equipment_payload"
+ "source": "config_init_rationale_1",
+ "target": "tests_unit_config_init_py"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "rationale_for",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/cache/test_equipment.py",
- "source_location": "L135",
+ "source_file": "src/exlab_wizard/config/__init__.py",
+ "source_location": "L1",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "cache_test_equipment_test_write_equipment_updates_last_modified_at_on_rewrite",
- "target": "cache_test_equipment_make_equipment_payload"
+ "source": "config_init_rationale_1",
+ "target": "src_exlab_wizard_config_init_py"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/cache/test_equipment.py",
- "source_location": "L150",
+ "source_file": "tests/unit/config/test_models.py",
+ "source_location": "L69",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "cache_test_equipment_test_read_equipment_round_trips",
- "target": "cache_test_equipment_make_equipment_payload"
+ "source": "tests_unit_config_test_models_py",
+ "target": "config_test_models_equipment_dict"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/cache/test_equipment.py",
- "source_location": "L181",
+ "source_file": "tests/unit/config/test_models.py",
+ "source_location": "L84",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "cache_test_equipment_test_write_equipment_corrupt_existing_file_recovers",
- "target": "cache_test_equipment_make_equipment_payload"
+ "source": "tests_unit_config_test_models_py",
+ "target": "config_test_models_full_config_dict"
},
{
- "relation": "rationale_for",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/cache/test_equipment.py",
- "source_location": "L44",
+ "source_file": "tests/unit/config/test_models.py",
+ "source_location": "L208",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "cache_test_equipment_rationale_44",
- "target": "cache_test_equipment_make_equipment_payload"
+ "source": "tests_unit_config_test_models_py",
+ "target": "config_test_models_test_paths_config_defaults_are_empty_strings"
},
{
- "relation": "calls",
- "context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/cache/test_equipment.py",
- "source_location": "L51",
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/config/test_models.py",
+ "source_location": "L215",
"weight": 1.0,
- "source": "cache_test_equipment_make_equipment_payload",
- "target": "api_schemas_equipmentjson"
+ "confidence_score": 1.0,
+ "source": "tests_unit_config_test_models_py",
+ "target": "config_test_models_test_paths_config_rejects_unknown_keys"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/cache/test_equipment.py",
- "source_location": "L196",
+ "source_file": "tests/unit/config/test_models.py",
+ "source_location": "L225",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "cache_test_equipment_test_write_test_runs_marker_creates_v1_file",
- "target": "cache_test_equipment_make_test_runs_payload"
+ "source": "tests_unit_config_test_models_py",
+ "target": "config_test_models_test_lims_config_defaults"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/cache/test_equipment.py",
- "source_location": "L210",
+ "source_file": "tests/unit/config/test_models.py",
+ "source_location": "L233",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "cache_test_equipment_test_write_test_runs_marker_creates_parent_dir",
- "target": "cache_test_equipment_make_test_runs_payload"
+ "source": "tests_unit_config_test_models_py",
+ "target": "config_test_models_test_lims_config_rejects_negative_cache_ttl_hours"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/cache/test_equipment.py",
- "source_location": "L224",
+ "source_file": "tests/unit/config/test_models.py",
+ "source_location": "L238",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "cache_test_equipment_test_write_test_runs_marker_is_idempotent",
- "target": "cache_test_equipment_make_test_runs_payload"
+ "source": "tests_unit_config_test_models_py",
+ "target": "config_test_models_test_lims_config_zero_cache_ttl_is_allowed"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/cache/test_equipment.py",
+ "source_file": "tests/unit/config/test_models.py",
"source_location": "L249",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "cache_test_equipment_test_write_test_runs_marker_concurrent_first_writes_safe",
- "target": "cache_test_equipment_make_test_runs_payload"
+ "source": "tests_unit_config_test_models_py",
+ "target": "config_test_models_test_readme_default_field_minimal_string_field"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/cache/test_equipment.py",
- "source_location": "L270",
+ "source_file": "tests/unit/config/test_models.py",
+ "source_location": "L256",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "cache_test_equipment_test_read_test_runs_marker_round_trips",
- "target": "cache_test_equipment_make_test_runs_payload"
+ "source": "tests_unit_config_test_models_py",
+ "target": "config_test_models_test_readme_default_field_id_must_match_template_question_id_pattern"
},
{
- "relation": "rationale_for",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/cache/test_equipment.py",
- "source_location": "L84",
+ "source_file": "tests/unit/config/test_models.py",
+ "source_location": "L261",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "cache_test_equipment_rationale_84",
- "target": "cache_test_equipment_test_write_equipment_produces_valid_v1_file"
+ "source": "tests_unit_config_test_models_py",
+ "target": "config_test_models_test_readme_default_field_id_rejects_leading_digit"
},
{
- "relation": "calls",
- "context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/cache/test_equipment.py",
- "source_location": "L85",
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/config/test_models.py",
+ "source_location": "L266",
"weight": 1.0,
- "source": "cache_test_equipment_test_write_equipment_produces_valid_v1_file",
- "target": "cache_equipment_equipmentcachewriter"
+ "confidence_score": 1.0,
+ "source": "tests_unit_config_test_models_py",
+ "target": "config_test_models_test_readme_default_field_label_must_be_non_empty"
},
{
- "relation": "rationale_for",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/cache/test_equipment.py",
- "source_location": "L105",
+ "source_file": "tests/unit/config/test_models.py",
+ "source_location": "L271",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "cache_test_equipment_rationale_105",
- "target": "cache_test_equipment_test_write_equipment_creates_parent_cache_dir"
+ "source": "tests_unit_config_test_models_py",
+ "target": "config_test_models_test_readme_default_field_rejects_unknown_type"
},
{
- "relation": "calls",
- "context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/cache/test_equipment.py",
- "source_location": "L106",
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/config/test_models.py",
+ "source_location": "L276",
"weight": 1.0,
- "source": "cache_test_equipment_test_write_equipment_creates_parent_cache_dir",
- "target": "cache_equipment_equipmentcachewriter"
+ "confidence_score": 1.0,
+ "source": "tests_unit_config_test_models_py",
+ "target": "config_test_models_test_readme_choice_field_requires_options"
},
{
- "relation": "rationale_for",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/cache/test_equipment.py",
- "source_location": "L115",
+ "source_file": "tests/unit/config/test_models.py",
+ "source_location": "L282",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "cache_test_equipment_rationale_115",
- "target": "cache_test_equipment_test_write_equipment_preserves_first_seen_at_on_rewrite"
+ "source": "tests_unit_config_test_models_py",
+ "target": "config_test_models_test_readme_choice_field_rejects_empty_options_list"
},
{
- "relation": "calls",
- "context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/cache/test_equipment.py",
- "source_location": "L116",
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/config/test_models.py",
+ "source_location": "L287",
"weight": 1.0,
- "source": "cache_test_equipment_test_write_equipment_preserves_first_seen_at_on_rewrite",
- "target": "cache_equipment_equipmentcachewriter"
+ "confidence_score": 1.0,
+ "source": "tests_unit_config_test_models_py",
+ "target": "config_test_models_test_readme_choice_field_accepts_non_empty_options"
},
{
- "relation": "rationale_for",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/cache/test_equipment.py",
- "source_location": "L132",
+ "source_file": "tests/unit/config/test_models.py",
+ "source_location": "L292",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "cache_test_equipment_rationale_132",
- "target": "cache_test_equipment_test_write_equipment_updates_last_modified_at_on_rewrite"
+ "source": "tests_unit_config_test_models_py",
+ "target": "config_test_models_test_readme_non_choice_field_does_not_require_options"
},
{
- "relation": "calls",
- "context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/cache/test_equipment.py",
- "source_location": "L133",
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/config/test_models.py",
+ "source_location": "L304",
"weight": 1.0,
- "source": "cache_test_equipment_test_write_equipment_updates_last_modified_at_on_rewrite",
- "target": "cache_equipment_equipmentcachewriter"
+ "confidence_score": 1.0,
+ "source": "tests_unit_config_test_models_py",
+ "target": "config_test_models_test_readme_config_default_is_empty_list"
},
{
- "relation": "rationale_for",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/cache/test_equipment.py",
- "source_location": "L147",
+ "source_file": "tests/unit/config/test_models.py",
+ "source_location": "L314",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "cache_test_equipment_rationale_147",
- "target": "cache_test_equipment_test_read_equipment_round_trips"
+ "source": "tests_unit_config_test_models_py",
+ "target": "config_test_models_test_bandwidth_window_happy_path"
},
{
- "relation": "calls",
- "context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/cache/test_equipment.py",
- "source_location": "L148",
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/config/test_models.py",
+ "source_location": "L321",
"weight": 1.0,
- "source": "cache_test_equipment_test_read_equipment_round_trips",
- "target": "cache_equipment_equipmentcachewriter"
+ "confidence_score": 1.0,
+ "source": "tests_unit_config_test_models_py",
+ "target": "config_test_models_test_bandwidth_window_rejects_empty_days_list"
},
{
- "relation": "calls",
- "context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/cache/test_equipment.py",
- "source_location": "L164",
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/config/test_models.py",
+ "source_location": "L326",
"weight": 1.0,
- "source": "cache_test_equipment_test_read_equipment_raises_when_file_missing",
- "target": "cache_equipment_equipmentcachewriter"
+ "confidence_score": 1.0,
+ "source": "tests_unit_config_test_models_py",
+ "target": "config_test_models_test_bandwidth_window_rejects_invalid_day"
},
{
- "relation": "rationale_for",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/cache/test_equipment.py",
- "source_location": "L172",
+ "source_file": "tests/unit/config/test_models.py",
+ "source_location": "L331",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "cache_test_equipment_rationale_172",
- "target": "cache_test_equipment_test_write_equipment_corrupt_existing_file_recovers"
+ "source": "tests_unit_config_test_models_py",
+ "target": "config_test_models_test_bandwidth_window_from_must_be_before_to"
},
{
- "relation": "calls",
- "context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/cache/test_equipment.py",
- "source_location": "L178",
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/config/test_models.py",
+ "source_location": "L336",
"weight": 1.0,
- "source": "cache_test_equipment_test_write_equipment_corrupt_existing_file_recovers",
- "target": "cache_equipment_equipmentcachewriter"
+ "confidence_score": 1.0,
+ "source": "tests_unit_config_test_models_py",
+ "target": "config_test_models_test_bandwidth_window_equal_from_and_to_is_invalid"
},
{
- "relation": "calls",
- "context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/cache/test_equipment.py",
- "source_location": "L194",
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/config/test_models.py",
+ "source_location": "L342",
"weight": 1.0,
- "source": "cache_test_equipment_test_write_test_runs_marker_creates_v1_file",
- "target": "cache_equipment_equipmentcachewriter"
+ "confidence_score": 1.0,
+ "source": "tests_unit_config_test_models_py",
+ "target": "config_test_models_test_bandwidth_window_rejects_non_hhmm_time"
},
{
- "relation": "calls",
- "context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/cache/test_equipment.py",
- "source_location": "L207",
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/config/test_models.py",
+ "source_location": "L347",
"weight": 1.0,
- "source": "cache_test_equipment_test_write_test_runs_marker_creates_parent_dir",
- "target": "cache_equipment_equipmentcachewriter"
+ "confidence_score": 1.0,
+ "source": "tests_unit_config_test_models_py",
+ "target": "config_test_models_test_bandwidth_window_rejects_invalid_hour"
},
{
- "relation": "rationale_for",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/cache/test_equipment.py",
- "source_location": "L216",
+ "source_file": "tests/unit/config/test_models.py",
+ "source_location": "L352",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "cache_test_equipment_rationale_216",
- "target": "cache_test_equipment_test_write_test_runs_marker_is_idempotent"
+ "source": "tests_unit_config_test_models_py",
+ "target": "config_test_models_test_bandwidth_window_rejects_invalid_minute"
},
{
- "relation": "calls",
- "context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/cache/test_equipment.py",
- "source_location": "L222",
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/config/test_models.py",
+ "source_location": "L362",
"weight": 1.0,
- "source": "cache_test_equipment_test_write_test_runs_marker_is_idempotent",
- "target": "cache_equipment_equipmentcachewriter"
+ "confidence_score": 1.0,
+ "source": "tests_unit_config_test_models_py",
+ "target": "config_test_models_test_bandwidth_config_defaults"
},
{
- "relation": "rationale_for",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/cache/test_equipment.py",
- "source_location": "L240",
+ "source_file": "tests/unit/config/test_models.py",
+ "source_location": "L368",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "cache_test_equipment_rationale_240",
- "target": "cache_test_equipment_test_write_test_runs_marker_concurrent_first_writes_safe"
+ "source": "tests_unit_config_test_models_py",
+ "target": "config_test_models_test_bandwidth_config_rejects_zero_upload_mbps"
},
{
- "relation": "calls",
- "context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/cache/test_equipment.py",
- "source_location": "L246",
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/config/test_models.py",
+ "source_location": "L373",
"weight": 1.0,
- "source": "cache_test_equipment_test_write_test_runs_marker_concurrent_first_writes_safe",
- "target": "cache_equipment_equipmentcachewriter"
+ "confidence_score": 1.0,
+ "source": "tests_unit_config_test_models_py",
+ "target": "config_test_models_test_bandwidth_config_rejects_negative_upload_mbps"
},
{
- "relation": "rationale_for",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/cache/test_equipment.py",
- "source_location": "L267",
+ "source_file": "tests/unit/config/test_models.py",
+ "source_location": "L378",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "cache_test_equipment_rationale_267",
- "target": "cache_test_equipment_test_read_test_runs_marker_round_trips"
+ "source": "tests_unit_config_test_models_py",
+ "target": "config_test_models_test_bandwidth_config_accepts_positive_upload_mbps"
},
{
- "relation": "calls",
- "context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/cache/test_equipment.py",
- "source_location": "L268",
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/config/test_models.py",
+ "source_location": "L535",
"weight": 1.0,
- "source": "cache_test_equipment_test_read_test_runs_marker_round_trips",
- "target": "cache_equipment_equipmentcachewriter"
+ "confidence_score": 1.0,
+ "source": "tests_unit_config_test_models_py",
+ "target": "config_test_models_test_equipment_id_regex_accepts_canonical_form"
},
{
- "relation": "rationale_for",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/cache/test_equipment.py",
- "source_location": "L283",
+ "source_file": "tests/unit/config/test_models.py",
+ "source_location": "L540",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "cache_test_equipment_rationale_283",
- "target": "cache_test_equipment_test_require_schema_major_raises_on_none_version"
+ "source": "tests_unit_config_test_models_py",
+ "target": "config_test_models_test_equipment_id_rejects_lowercase"
},
{
- "relation": "calls",
- "context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/cache/test_equipment.py",
- "source_location": "L288",
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/config/test_models.py",
+ "source_location": "L545",
"weight": 1.0,
- "source": "cache_test_equipment_test_require_schema_major_raises_on_none_version",
- "target": "io_json_files_require_schema_major"
+ "confidence_score": 1.0,
+ "source": "tests_unit_config_test_models_py",
+ "target": "config_test_models_test_equipment_id_rejects_hyphen"
},
{
- "relation": "rationale_for",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/cache/test_equipment.py",
- "source_location": "L292",
+ "source_file": "tests/unit/config/test_models.py",
+ "source_location": "L550",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "cache_test_equipment_rationale_292",
- "target": "cache_test_equipment_test_require_schema_major_raises_on_empty_version"
+ "source": "tests_unit_config_test_models_py",
+ "target": "config_test_models_test_equipment_id_rejects_leading_digit"
},
{
- "relation": "calls",
- "context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/cache/test_equipment.py",
- "source_location": "L297",
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/config/test_models.py",
+ "source_location": "L555",
"weight": 1.0,
- "source": "cache_test_equipment_test_require_schema_major_raises_on_empty_version",
- "target": "io_json_files_require_schema_major"
+ "confidence_score": 1.0,
+ "source": "tests_unit_config_test_models_py",
+ "target": "config_test_models_test_equipment_id_rejects_too_long"
},
{
- "relation": "rationale_for",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/cache/test_equipment.py",
- "source_location": "L301",
+ "source_file": "tests/unit/config/test_models.py",
+ "source_location": "L561",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "cache_test_equipment_rationale_301",
- "target": "cache_test_equipment_test_require_schema_major_raises_on_garbage_version"
+ "source": "tests_unit_config_test_models_py",
+ "target": "config_test_models_test_equipment_id_accepts_max_length"
},
{
- "relation": "calls",
- "context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/cache/test_equipment.py",
- "source_location": "L306",
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/config/test_models.py",
+ "source_location": "L567",
"weight": 1.0,
- "source": "cache_test_equipment_test_require_schema_major_raises_on_garbage_version",
- "target": "io_json_files_require_schema_major"
+ "confidence_score": 1.0,
+ "source": "tests_unit_config_test_models_py",
+ "target": "config_test_models_test_equipment_config_rejects_removed_completeness_fields"
},
{
- "relation": "rationale_for",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/cache/test_equipment.py",
- "source_location": "L310",
+ "source_file": "tests/unit/config/test_models.py",
+ "source_location": "L578",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "cache_test_equipment_rationale_310",
- "target": "cache_test_equipment_test_require_schema_major_passes_on_same_major"
+ "source": "tests_unit_config_test_models_py",
+ "target": "config_test_models_test_equipment_label_must_be_non_empty"
},
{
- "relation": "calls",
- "context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/cache/test_equipment.py",
- "source_location": "L314",
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/config/test_models.py",
+ "source_location": "L585",
"weight": 1.0,
- "source": "cache_test_equipment_test_require_schema_major_passes_on_same_major",
- "target": "io_json_files_require_schema_major"
+ "confidence_score": 1.0,
+ "source": "tests_unit_config_test_models_py",
+ "target": "config_test_models_test_equipment_local_root_must_be_non_empty"
},
{
- "relation": "rationale_for",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/cache/test_equipment.py",
- "source_location": "L320",
+ "source_file": "tests/unit/config/test_models.py",
+ "source_location": "L592",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "cache_test_equipment_rationale_320",
- "target": "cache_test_equipment_test_read_equipment_skips_check_for_malformed_json"
+ "source": "tests_unit_config_test_models_py",
+ "target": "config_test_models_test_equipment_nas_root_must_be_non_empty"
},
{
- "relation": "calls",
- "context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/cache/test_equipment.py",
- "source_location": "L322",
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/config/test_models.py",
+ "source_location": "L416",
"weight": 1.0,
- "source": "cache_test_equipment_test_read_equipment_skips_check_for_malformed_json",
- "target": "cache_equipment_equipmentcachewriter"
+ "confidence_score": 1.0,
+ "source": "tests_unit_config_test_models_py",
+ "target": "config_test_models_test_equipment_rejects_removed_orchestrator_staging_transport"
},
{
- "relation": "rationale_for",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/cache/test_equipment.py",
- "source_location": "L335",
+ "source_file": "tests/unit/config/test_models.py",
+ "source_location": "L617",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "cache_test_equipment_rationale_335",
- "target": "cache_test_equipment_test_read_equipment_skips_check_when_schema_version_missing"
+ "source": "tests_unit_config_test_models_py",
+ "target": "config_test_models_test_sync_mode_defaults_to_nas_when_absent"
},
{
- "relation": "calls",
- "context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/cache/test_equipment.py",
- "source_location": "L337",
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/config/test_models.py",
+ "source_location": "L440",
"weight": 1.0,
- "source": "cache_test_equipment_test_read_equipment_skips_check_when_schema_version_missing",
- "target": "cache_equipment_equipmentcachewriter"
+ "confidence_score": 1.0,
+ "source": "tests_unit_config_test_models_py",
+ "target": "config_test_models_test_nas_mode_equipment_needs_no_transport_block"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/cache/test_sync_state_writer.py",
- "source_location": "L25",
+ "source_file": "tests/unit/config/test_models.py",
+ "source_location": "L456",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_cache_test_sync_state_writer_py",
- "target": "cache_test_sync_state_writer_state_path"
+ "source": "tests_unit_config_test_models_py",
+ "target": "config_test_models_test_nas_mode_equipment_rejects_stray_transport_block"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/cache/test_sync_state_writer.py",
- "source_location": "L34",
+ "source_file": "tests/unit/config/test_models.py",
+ "source_location": "L471",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_cache_test_sync_state_writer_py",
- "target": "cache_test_sync_state_writer_test_read_when_absent_returns_empty_state"
+ "source": "tests_unit_config_test_models_py",
+ "target": "config_test_models_test_sync_mode_stage_needs_no_per_equipment_block"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/cache/test_sync_state_writer.py",
- "source_location": "L52",
+ "source_file": "tests/unit/config/test_models.py",
+ "source_location": "L481",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_cache_test_sync_state_writer_py",
- "target": "cache_test_sync_state_writer_test_upsert_file_creates_a_record"
+ "source": "tests_unit_config_test_models_py",
+ "target": "config_test_models_test_sync_mode_stage_rejects_stray_transport_block"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/cache/test_sync_state_writer.py",
- "source_location": "L72",
+ "source_file": "tests/unit/config/test_models.py",
+ "source_location": "L670",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_cache_test_sync_state_writer_py",
- "target": "cache_test_sync_state_writer_test_upsert_file_updates_existing_record"
+ "source": "tests_unit_config_test_models_py",
+ "target": "config_test_models_test_sync_mode_serializes_to_string"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/cache/test_sync_state_writer.py",
- "source_location": "L90",
+ "source_file": "tests/unit/config/test_models.py",
+ "source_location": "L678",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_cache_test_sync_state_writer_py",
- "target": "cache_test_sync_state_writer_test_upsert_file_preserves_keep_local"
+ "source": "tests_unit_config_test_models_py",
+ "target": "config_test_models_test_sync_mode_rejects_unknown_value"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/cache/test_sync_state_writer.py",
- "source_location": "L112",
+ "source_file": "tests/unit/config/test_models.py",
+ "source_location": "L685",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_cache_test_sync_state_writer_py",
- "target": "cache_test_sync_state_writer_test_set_keep_local_creates_record_if_absent"
+ "source": "tests_unit_config_test_models_py",
+ "target": "config_test_models_test_sync_mode_stage_round_trip_via_dict"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/cache/test_sync_state_writer.py",
- "source_location": "L123",
+ "source_file": "tests/unit/config/test_models.py",
+ "source_location": "L704",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_cache_test_sync_state_writer_py",
- "target": "cache_test_sync_state_writer_test_set_keep_local_toggles_and_preserves_sync_fields"
+ "source": "tests_unit_config_test_models_py",
+ "target": "config_test_models_test_nas_cleanup_defaults"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/cache/test_sync_state_writer.py",
- "source_location": "L148",
+ "source_file": "tests/unit/config/test_models.py",
+ "source_location": "L712",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_cache_test_sync_state_writer_py",
- "target": "cache_test_sync_state_writer_test_mark_cleared_sets_cleared_at"
+ "source": "tests_unit_config_test_models_py",
+ "target": "config_test_models_test_nas_cleanup_min_verify_passes_at_least_one"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/cache/test_sync_state_writer.py",
- "source_location": "L163",
+ "source_file": "tests/unit/config/test_models.py",
+ "source_location": "L717",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_cache_test_sync_state_writer_py",
- "target": "cache_test_sync_state_writer_test_mark_cleared_on_absent_file_creates_state"
+ "source": "tests_unit_config_test_models_py",
+ "target": "config_test_models_test_nas_cleanup_min_age_hours_non_negative"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/cache/test_sync_state_writer.py",
- "source_location": "L172",
+ "source_file": "tests/unit/config/test_models.py",
+ "source_location": "L727",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_cache_test_sync_state_writer_py",
- "target": "cache_test_sync_state_writer_test_mutators_create_missing_exlab_wizard_dir"
+ "source": "tests_unit_config_test_models_py",
+ "target": "config_test_models_test_logging_level_normalized_to_uppercase"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/cache/test_sync_state_writer.py",
- "source_location": "L203",
+ "source_file": "tests/unit/config/test_models.py",
+ "source_location": "L732",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_cache_test_sync_state_writer_py",
- "target": "cache_test_sync_state_writer_test_rollup_state_syncing_when_empty"
+ "source": "tests_unit_config_test_models_py",
+ "target": "config_test_models_test_logging_level_rejects_unknown"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/cache/test_sync_state_writer.py",
- "source_location": "L208",
+ "source_file": "tests/unit/config/test_models.py",
+ "source_location": "L737",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_cache_test_sync_state_writer_py",
- "target": "cache_test_sync_state_writer_test_rollup_state_syncing_when_some_unverified"
+ "source": "tests_unit_config_test_models_py",
+ "target": "config_test_models_test_logging_level_accepts_all_canonical_values"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/cache/test_sync_state_writer.py",
- "source_location": "L219",
+ "source_file": "tests/unit/config/test_models.py",
+ "source_location": "L743",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_cache_test_sync_state_writer_py",
- "target": "cache_test_sync_state_writer_test_rollup_state_synced_when_all_verified"
+ "source": "tests_unit_config_test_models_py",
+ "target": "config_test_models_test_logging_level_strips_whitespace_and_normalizes"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/cache/test_sync_state_writer.py",
- "source_location": "L230",
+ "source_file": "tests/unit/config/test_models.py",
+ "source_location": "L748",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_cache_test_sync_state_writer_py",
- "target": "cache_test_sync_state_writer_test_rollup_state_cleared_takes_precedence_over_unverified"
+ "source": "tests_unit_config_test_models_py",
+ "target": "config_test_models_test_logging_level_rejects_non_string"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/cache/test_sync_state_writer.py",
- "source_location": "L244",
+ "source_file": "tests/unit/config/test_models.py",
+ "source_location": "L758",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_cache_test_sync_state_writer_py",
- "target": "cache_test_sync_state_writer_test_sync_state_json_round_trips_through_msgspec"
+ "source": "tests_unit_config_test_models_py",
+ "target": "config_test_models_test_logging_level_rejects_non_string_directly"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/cache/test_sync_state_writer.py",
- "source_location": "L272",
+ "source_file": "tests/unit/config/test_models.py",
+ "source_location": "L766",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_cache_test_sync_state_writer_py",
- "target": "cache_test_sync_state_writer_test_read_raises_on_schema_major_mismatch"
+ "source": "tests_unit_config_test_models_py",
+ "target": "config_test_models_test_logging_central_log_max_mb_at_least_one"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/cache/test_sync_state_writer.py",
- "source_location": "L302",
+ "source_file": "tests/unit/config/test_models.py",
+ "source_location": "L771",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_cache_test_sync_state_writer_py",
- "target": "cache_test_sync_state_writer_test_concurrent_upserts_on_distinct_files_both_survive"
+ "source": "tests_unit_config_test_models_py",
+ "target": "config_test_models_test_logging_central_log_keep_at_least_one"
},
{
- "relation": "rationale_for",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/cache/test_sync_state_writer.py",
- "source_location": "L1",
+ "source_file": "tests/unit/config/test_models.py",
+ "source_location": "L781",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "cache_test_sync_state_writer_rationale_1",
- "target": "tests_unit_cache_test_sync_state_writer_py"
+ "source": "tests_unit_config_test_models_py",
+ "target": "config_test_models_test_operators_config_defaults_to_empty_allowlist"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/cache/test_sync_state_writer.py",
- "source_location": "L44",
+ "source_file": "tests/unit/config/test_models.py",
+ "source_location": "L786",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "cache_test_sync_state_writer_test_read_when_absent_returns_empty_state",
- "target": "cache_test_sync_state_writer_state_path"
+ "source": "tests_unit_config_test_models_py",
+ "target": "config_test_models_test_operators_config_accepts_arbitrary_strings"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/cache/test_sync_state_writer.py",
- "source_location": "L62",
+ "source_file": "tests/unit/config/test_models.py",
+ "source_location": "L796",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "cache_test_sync_state_writer_test_upsert_file_creates_a_record",
- "target": "cache_test_sync_state_writer_state_path"
+ "source": "tests_unit_config_test_models_py",
+ "target": "config_test_models_test_validator_config_defaults"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/cache/test_sync_state_writer.py",
- "source_location": "L169",
+ "source_file": "tests/unit/config/test_models.py",
+ "source_location": "L803",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "cache_test_sync_state_writer_test_mark_cleared_on_absent_file_creates_state",
- "target": "cache_test_sync_state_writer_state_path"
+ "source": "tests_unit_config_test_models_py",
+ "target": "config_test_models_test_validator_content_scan_max_mib_at_least_one"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/cache/test_sync_state_writer.py",
- "source_location": "L192",
+ "source_file": "tests/unit/config/test_models.py",
+ "source_location": "L808",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "cache_test_sync_state_writer_test_mutators_create_missing_exlab_wizard_dir",
- "target": "cache_test_sync_state_writer_state_path"
+ "source": "tests_unit_config_test_models_py",
+ "target": "config_test_models_test_validator_extensions_must_start_with_dot"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/cache/test_sync_state_writer.py",
- "source_location": "L278",
+ "source_file": "tests/unit/config/test_models.py",
+ "source_location": "L813",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "cache_test_sync_state_writer_test_read_raises_on_schema_major_mismatch",
- "target": "cache_test_sync_state_writer_state_path"
+ "source": "tests_unit_config_test_models_py",
+ "target": "config_test_models_test_validator_extensions_rejects_dotless_among_others"
},
{
- "relation": "calls",
- "context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/cache/test_sync_state_writer.py",
- "source_location": "L26",
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/config/test_models.py",
+ "source_location": "L823",
"weight": 1.0,
- "source": "cache_test_sync_state_writer_state_path",
- "target": "exlab_wizard_paths_cache_dir"
+ "confidence_score": 1.0,
+ "source": "tests_unit_config_test_models_py",
+ "target": "config_test_models_test_plugins_config_default_allow_network_false"
},
{
- "relation": "calls",
- "context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/cache/test_sync_state_writer.py",
- "source_location": "L35",
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/config/test_models.py",
+ "source_location": "L833",
"weight": 1.0,
- "source": "cache_test_sync_state_writer_test_read_when_absent_returns_empty_state",
- "target": "cache_sync_state_writer_syncstatewriter"
+ "confidence_score": 1.0,
+ "source": "tests_unit_config_test_models_py",
+ "target": "config_test_models_test_sync_config_defaults"
},
{
- "relation": "calls",
- "context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/cache/test_sync_state_writer.py",
- "source_location": "L53",
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/config/test_models.py",
+ "source_location": "L842",
"weight": 1.0,
- "source": "cache_test_sync_state_writer_test_upsert_file_creates_a_record",
- "target": "cache_sync_state_writer_syncstatewriter"
+ "confidence_score": 1.0,
+ "source": "tests_unit_config_test_models_py",
+ "target": "config_test_models_test_sync_config_retry_attempts_non_negative"
},
{
- "relation": "calls",
- "context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/cache/test_sync_state_writer.py",
- "source_location": "L73",
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/config/test_models.py",
+ "source_location": "L847",
"weight": 1.0,
- "source": "cache_test_sync_state_writer_test_upsert_file_updates_existing_record",
- "target": "cache_sync_state_writer_syncstatewriter"
+ "confidence_score": 1.0,
+ "source": "tests_unit_config_test_models_py",
+ "target": "config_test_models_test_sync_config_quiescence_minutes_at_least_one"
},
{
- "relation": "calls",
- "context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/cache/test_sync_state_writer.py",
- "source_location": "L91",
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/config/test_models.py",
+ "source_location": "L852",
"weight": 1.0,
- "source": "cache_test_sync_state_writer_test_upsert_file_preserves_keep_local",
- "target": "cache_sync_state_writer_syncstatewriter"
+ "confidence_score": 1.0,
+ "source": "tests_unit_config_test_models_py",
+ "target": "config_test_models_test_sync_config_poll_interval_seconds_at_least_one"
},
{
- "relation": "calls",
- "context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/cache/test_sync_state_writer.py",
- "source_location": "L113",
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/config/test_models.py",
+ "source_location": "L857",
"weight": 1.0,
- "source": "cache_test_sync_state_writer_test_set_keep_local_creates_record_if_absent",
- "target": "cache_sync_state_writer_syncstatewriter"
+ "confidence_score": 1.0,
+ "source": "tests_unit_config_test_models_py",
+ "target": "config_test_models_test_sync_config_accepts_custom_quiescence_settings"
},
{
- "relation": "calls",
- "context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/cache/test_sync_state_writer.py",
- "source_location": "L124",
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/config/test_models.py",
+ "source_location": "L868",
"weight": 1.0,
- "source": "cache_test_sync_state_writer_test_set_keep_local_toggles_and_preserves_sync_fields",
- "target": "cache_sync_state_writer_syncstatewriter"
+ "confidence_score": 1.0,
+ "source": "tests_unit_config_test_models_py",
+ "target": "config_test_models_test_sync_config_ignore_globs_default_is_independent_per_instance"
},
{
- "relation": "calls",
- "context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/cache/test_sync_state_writer.py",
- "source_location": "L149",
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/config/test_models.py",
+ "source_location": "L881",
"weight": 1.0,
- "source": "cache_test_sync_state_writer_test_mark_cleared_sets_cleared_at",
- "target": "cache_sync_state_writer_syncstatewriter"
+ "confidence_score": 1.0,
+ "source": "tests_unit_config_test_models_py",
+ "target": "config_test_models_test_orchestrator_staging_cleanup_defaults"
},
{
- "relation": "calls",
- "context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/cache/test_sync_state_writer.py",
- "source_location": "L164",
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/config/test_models.py",
+ "source_location": "L887",
"weight": 1.0,
- "source": "cache_test_sync_state_writer_test_mark_cleared_on_absent_file_creates_state",
- "target": "cache_sync_state_writer_syncstatewriter"
+ "confidence_score": 1.0,
+ "source": "tests_unit_config_test_models_py",
+ "target": "config_test_models_test_orchestrator_staging_cleanup_scheduled_requires_positive_hours"
},
{
- "relation": "rationale_for",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/cache/test_sync_state_writer.py",
- "source_location": "L173",
+ "source_file": "tests/unit/config/test_models.py",
+ "source_location": "L893",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "cache_test_sync_state_writer_rationale_173",
- "target": "cache_test_sync_state_writer_test_mutators_create_missing_exlab_wizard_dir"
+ "source": "tests_unit_config_test_models_py",
+ "target": "config_test_models_test_orchestrator_staging_cleanup_rejects_unknown_mode"
},
{
- "relation": "calls",
- "context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/cache/test_sync_state_writer.py",
- "source_location": "L179",
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/config/test_models.py",
+ "source_location": "L903",
"weight": 1.0,
- "source": "cache_test_sync_state_writer_test_mutators_create_missing_exlab_wizard_dir",
- "target": "cache_sync_state_writer_syncstatewriter"
+ "confidence_score": 1.0,
+ "source": "tests_unit_config_test_models_py",
+ "target": "config_test_models_test_orchestrator_config_defaults"
},
{
- "relation": "calls",
- "context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/cache/test_sync_state_writer.py",
- "source_location": "L204",
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/config/test_models.py",
+ "source_location": "L733",
"weight": 1.0,
- "source": "cache_test_sync_state_writer_test_rollup_state_syncing_when_empty",
- "target": "cache_sync_state_schema_syncstatejson"
+ "confidence_score": 1.0,
+ "source": "tests_unit_config_test_models_py",
+ "target": "config_test_models_test_orchestrator_config_staging_remote_validates_with_perf_defaults"
},
{
- "relation": "calls",
- "context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/cache/test_sync_state_writer.py",
- "source_location": "L209",
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/config/test_models.py",
+ "source_location": "L744",
"weight": 1.0,
- "source": "cache_test_sync_state_writer_test_rollup_state_syncing_when_some_unverified",
- "target": "cache_sync_state_schema_syncstatejson"
+ "confidence_score": 1.0,
+ "source": "tests_unit_config_test_models_py",
+ "target": "config_test_models_test_stage_mode_equipment_validates_without_staging_block"
},
{
- "relation": "calls",
- "context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/cache/test_sync_state_writer.py",
- "source_location": "L212",
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/config/test_models.py",
+ "source_location": "L918",
"weight": 1.0,
- "source": "cache_test_sync_state_writer_test_rollup_state_syncing_when_some_unverified",
- "target": "cache_sync_state_schema_filesyncrecord"
+ "confidence_score": 1.0,
+ "source": "tests_unit_config_test_models_py",
+ "target": "config_test_models_test_config_fully_default_is_valid"
},
{
- "relation": "calls",
- "context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/cache/test_sync_state_writer.py",
- "source_location": "L220",
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/config/test_models.py",
+ "source_location": "L928",
"weight": 1.0,
- "source": "cache_test_sync_state_writer_test_rollup_state_synced_when_all_verified",
- "target": "cache_sync_state_schema_syncstatejson"
+ "confidence_score": 1.0,
+ "source": "tests_unit_config_test_models_py",
+ "target": "config_test_models_test_unique_equipment_ids_required"
},
{
- "relation": "calls",
- "context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/cache/test_sync_state_writer.py",
- "source_location": "L223",
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/config/test_models.py",
+ "source_location": "L940",
"weight": 1.0,
- "source": "cache_test_sync_state_writer_test_rollup_state_synced_when_all_verified",
- "target": "cache_sync_state_schema_filesyncrecord"
+ "confidence_score": 1.0,
+ "source": "tests_unit_config_test_models_py",
+ "target": "config_test_models_test_distinct_equipment_ids_accepted"
},
{
- "relation": "calls",
- "context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/cache/test_sync_state_writer.py",
- "source_location": "L231",
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/config/test_models.py",
+ "source_location": "L954",
"weight": 1.0,
- "source": "cache_test_sync_state_writer_test_rollup_state_cleared_takes_precedence_over_unverified",
- "target": "cache_sync_state_schema_syncstatejson"
+ "confidence_score": 1.0,
+ "source": "tests_unit_config_test_models_py",
+ "target": "config_test_models_test_orchestrator_legacy_enabled_field_rejected"
},
{
- "relation": "calls",
- "context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/cache/test_sync_state_writer.py",
- "source_location": "L234",
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/config/test_models.py",
+ "source_location": "L970",
"weight": 1.0,
- "source": "cache_test_sync_state_writer_test_rollup_state_cleared_takes_precedence_over_unverified",
- "target": "cache_sync_state_schema_filesyncrecord"
+ "confidence_score": 1.0,
+ "source": "tests_unit_config_test_models_py",
+ "target": "config_test_models_test_orchestrator_label_and_staging_root_load_independently"
},
{
- "relation": "calls",
- "context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/cache/test_sync_state_writer.py",
- "source_location": "L245",
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/config/test_models.py",
+ "source_location": "L985",
"weight": 1.0,
- "source": "cache_test_sync_state_writer_test_sync_state_json_round_trips_through_msgspec",
- "target": "cache_sync_state_schema_syncstatejson"
+ "confidence_score": 1.0,
+ "source": "tests_unit_config_test_models_py",
+ "target": "config_test_models_test_orchestrator_with_both_fields_is_valid"
},
{
- "relation": "calls",
- "context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/cache/test_sync_state_writer.py",
- "source_location": "L249",
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/config/test_models.py",
+ "source_location": "L999",
"weight": 1.0,
- "source": "cache_test_sync_state_writer_test_sync_state_json_round_trips_through_msgspec",
- "target": "cache_sync_state_schema_filesyncrecord"
+ "confidence_score": 1.0,
+ "source": "tests_unit_config_test_models_py",
+ "target": "config_test_models_test_config_rejects_unknown_top_level_key"
},
{
- "relation": "rationale_for",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/cache/test_sync_state_writer.py",
- "source_location": "L273",
+ "source_file": "tests/unit/config/test_models.py",
+ "source_location": "L1009",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "cache_test_sync_state_writer_rationale_273",
- "target": "cache_test_sync_state_writer_test_read_raises_on_schema_major_mismatch"
+ "source": "tests_unit_config_test_models_py",
+ "target": "config_test_models_test_full_config_round_trip_via_dict"
},
{
- "relation": "calls",
- "context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/cache/test_sync_state_writer.py",
- "source_location": "L290",
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/config/test_models.py",
+ "source_location": "L1030",
"weight": 1.0,
- "source": "cache_test_sync_state_writer_test_read_raises_on_schema_major_mismatch",
- "target": "cache_sync_state_writer_syncstatewriter"
+ "confidence_score": 1.0,
+ "source": "tests_unit_config_test_models_py",
+ "target": "config_test_models_test_round_trip_preserves_bandwidth_alias_for_from"
},
{
- "relation": "rationale_for",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/cache/test_sync_state_writer.py",
- "source_location": "L303",
+ "source_file": "tests/unit/config/test_models.py",
+ "source_location": "L1044",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "cache_test_sync_state_writer_rationale_303",
- "target": "cache_test_sync_state_writer_test_concurrent_upserts_on_distinct_files_both_survive"
+ "source": "tests_unit_config_test_models_py",
+ "target": "config_test_models_test_config_with_equipment_appended_seeds_from_none"
},
{
- "relation": "calls",
- "context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/cache/test_sync_state_writer.py",
- "source_location": "L308",
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/config/test_models.py",
+ "source_location": "L1052",
"weight": 1.0,
- "source": "cache_test_sync_state_writer_test_concurrent_upserts_on_distinct_files_both_survive",
- "target": "cache_sync_state_writer_syncstatewriter"
+ "confidence_score": 1.0,
+ "source": "tests_unit_config_test_models_py",
+ "target": "config_test_models_test_config_with_equipment_appended_preserves_existing_state"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/config/test_loader.py",
- "source_location": "L46",
+ "source_file": "tests/unit/config/test_models.py",
+ "source_location": "L1069",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_config_test_loader_py",
- "target": "config_test_loader_test_load_config_complete_yaml"
+ "source": "tests_unit_config_test_models_py",
+ "target": "config_test_models_test_config_with_equipment_appended_rejects_duplicate_id"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/config/test_loader.py",
- "source_location": "L83",
+ "source_file": "tests/unit/config/test_models.py",
+ "source_location": "L919",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_config_test_loader_py",
- "target": "config_test_loader_test_load_config_missing_file_raises"
+ "source": "tests_unit_config_test_models_py",
+ "target": "config_test_models_test_nas_config_defaults"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/config/test_loader.py",
- "source_location": "L91",
+ "source_file": "tests/unit/config/test_models.py",
+ "source_location": "L930",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_config_test_loader_py",
- "target": "config_test_loader_test_load_config_invalid_yaml_raises"
+ "source": "tests_unit_config_test_models_py",
+ "target": "config_test_models_test_nas_config_rejects_nonpositive_perf"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/config/test_loader.py",
- "source_location": "L100",
+ "source_file": "tests/unit/config/test_models.py",
+ "source_location": "L937",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_config_test_loader_py",
- "target": "config_test_loader_test_load_config_top_level_not_mapping_raises"
+ "source": "tests_unit_config_test_models_py",
+ "target": "config_test_models_test_config_has_default_nas_block"
},
{
- "relation": "contains",
+ "relation": "rationale_for",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/config/test_loader.py",
- "source_location": "L108",
+ "source_file": "tests/unit/config/test_models.py",
+ "source_location": "L1",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_config_test_loader_py",
- "target": "config_test_loader_test_load_config_validation_error_raises_config_error"
+ "source": "config_test_models_rationale_1",
+ "target": "tests_unit_config_test_models_py"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/config/test_loader.py",
- "source_location": "L132",
+ "source_file": "tests/unit/config/test_models.py",
+ "source_location": "L48",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_config_test_loader_py",
- "target": "config_test_loader_test_load_config_from_text_empty_returns_empty_config"
+ "source": "tests_unit_config_test_models_py",
+ "target": "config_test_models_sftp_transport_dict"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/config/test_loader.py",
- "source_location": "L141",
+ "source_file": "tests/unit/config/test_models.py",
+ "source_location": "L59",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_config_test_loader_py",
- "target": "config_test_loader_test_load_config_unreadable_path_raises_config_error"
+ "source": "tests_unit_config_test_models_py",
+ "target": "config_test_models_smb_transport_dict"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/config/test_loader.py",
- "source_location": "L163",
+ "source_file": "tests/unit/config/test_models.py",
+ "source_location": "L388",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_config_test_loader_py",
- "target": "config_test_loader_test_save_config_atomic"
+ "source": "tests_unit_config_test_models_py",
+ "target": "config_test_models_test_sftp_transport_minimal"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/config/test_loader.py",
- "source_location": "L175",
+ "source_file": "tests/unit/config/test_models.py",
+ "source_location": "L395",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_config_test_loader_py",
- "target": "config_test_loader_test_save_config_preserves_comments_round_trip"
+ "source": "tests_unit_config_test_models_py",
+ "target": "config_test_models_test_sftp_transport_rejects_missing_host"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/config/test_loader.py",
- "source_location": "L189",
+ "source_file": "tests/unit/config/test_models.py",
+ "source_location": "L402",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_config_test_loader_py",
- "target": "config_test_loader_test_save_config_preserves_key_order"
+ "source": "tests_unit_config_test_models_py",
+ "target": "config_test_models_test_sftp_transport_rejects_empty_user"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/config/test_loader.py",
- "source_location": "L205",
+ "source_file": "tests/unit/config/test_models.py",
+ "source_location": "L409",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_config_test_loader_py",
- "target": "config_test_loader_test_save_config_creates_parent_dirs"
+ "source": "tests_unit_config_test_models_py",
+ "target": "config_test_models_test_sftp_transport_rejects_empty_remote_path"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/config/test_loader.py",
- "source_location": "L215",
+ "source_file": "tests/unit/config/test_models.py",
+ "source_location": "L416",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_config_test_loader_py",
- "target": "config_test_loader_test_save_config_without_original_text_writes_fresh"
+ "source": "tests_unit_config_test_models_py",
+ "target": "config_test_models_test_sftp_transport_rejects_out_of_range_port"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/config/test_loader.py",
- "source_location": "L234",
+ "source_file": "tests/unit/config/test_models.py",
+ "source_location": "L423",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_config_test_loader_py",
- "target": "config_test_loader_test_dump_config_round_trip"
+ "source": "tests_unit_config_test_models_py",
+ "target": "config_test_models_test_sftp_transport_rejects_wrong_type_tag"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/config/test_loader.py",
- "source_location": "L306",
+ "source_file": "tests/unit/config/test_models.py",
+ "source_location": "L435",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_config_test_loader_py",
- "target": "config_test_loader_test_test_mode_unset_leaves_equipment_ids_unchanged"
+ "source": "tests_unit_config_test_models_py",
+ "target": "config_test_models_test_smb_transport_minimal"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/config/test_loader.py",
- "source_location": "L313",
+ "source_file": "tests/unit/config/test_models.py",
+ "source_location": "L443",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_config_test_loader_py",
- "target": "config_test_loader_test_test_mode_enabled_prefixes_every_equipment_id"
+ "source": "tests_unit_config_test_models_py",
+ "target": "config_test_models_test_smb_transport_accepts_optional_domain_and_subpath"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/config/test_loader.py",
- "source_location": "L326",
+ "source_file": "tests/unit/config/test_models.py",
+ "source_location": "L452",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_config_test_loader_py",
- "target": "config_test_loader_test_test_mode_is_idempotent_on_already_prefixed_ids"
+ "source": "tests_unit_config_test_models_py",
+ "target": "config_test_models_test_smb_transport_rejects_missing_share"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/config/test_loader.py",
- "source_location": "L358",
+ "source_file": "tests/unit/config/test_models.py",
+ "source_location": "L464",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_config_test_loader_py",
- "target": "config_test_loader_test_test_mode_preserves_unique_id_invariant"
+ "source": "tests_unit_config_test_models_py",
+ "target": "config_test_models_test_requires_keyring_password_true_for_sftp_and_smb"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/config/test_loader.py",
- "source_location": "L374",
+ "source_file": "tests/unit/config/test_models.py",
+ "source_location": "L471",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_config_test_loader_py",
- "target": "config_test_loader_test_test_mode_truthy_values_trigger_prefix"
+ "source": "tests_unit_config_test_models_py",
+ "target": "config_test_models_test_requires_keyring_password_false_for_none"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/config/test_loader.py",
- "source_location": "L386",
+ "source_file": "tests/unit/config/test_models.py",
+ "source_location": "L480",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_config_test_loader_py",
- "target": "config_test_loader_test_test_mode_falsy_values_do_not_trigger_prefix"
+ "source": "tests_unit_config_test_models_py",
+ "target": "config_test_models_test_equipment_transport_discriminates_on_type_sftp"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/config/test_loader.py",
- "source_location": "L395",
+ "source_file": "tests/unit/config/test_models.py",
+ "source_location": "L485",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_config_test_loader_py",
- "target": "config_test_loader_test_test_mode_unset_via_delenv_does_not_trigger_prefix"
+ "source": "tests_unit_config_test_models_py",
+ "target": "config_test_models_test_equipment_transport_discriminates_on_type_smb"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/config/test_loader.py",
- "source_location": "L404",
+ "source_file": "tests/unit/config/test_models.py",
+ "source_location": "L495",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_config_test_loader_py",
- "target": "config_test_loader_test_apply_test_mode_prefix_helper_is_a_pure_function"
+ "source": "tests_unit_config_test_models_py",
+ "target": "config_test_models_test_equipment_transport_rejects_unknown_type"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/config/test_loader.py",
- "source_location": "L389",
+ "source_file": "tests/unit/config/test_models.py",
+ "source_location": "L507",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_config_test_loader_py",
- "target": "config_test_loader_test_loader_round_trips_nas_block"
+ "source": "tests_unit_config_test_models_py",
+ "target": "config_test_models_test_orchestrator_staging_transport_smb_mount"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/config/test_loader.py",
- "source_location": "L423",
+ "source_file": "tests/unit/config/test_models.py",
+ "source_location": "L514",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_config_test_loader_py",
- "target": "config_test_loader_test_load_config_uses_ruamel_round_trip"
+ "source": "tests_unit_config_test_models_py",
+ "target": "config_test_models_test_orchestrator_staging_transport_file_transfer"
},
{
- "relation": "rationale_for",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/config/test_loader.py",
- "source_location": "L1",
+ "source_file": "tests/unit/config/test_models.py",
+ "source_location": "L521",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "config_test_loader_rationale_1",
- "target": "tests_unit_config_test_loader_py"
+ "source": "tests_unit_config_test_models_py",
+ "target": "config_test_models_test_orchestrator_staging_transport_rejects_unknown_type"
},
{
- "relation": "calls",
- "context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/config/test_loader.py",
- "source_location": "L47",
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/config/test_models.py",
+ "source_location": "L599",
"weight": 1.0,
- "source": "config_test_loader_test_load_config_complete_yaml",
- "target": "config_loader_load_config"
+ "confidence_score": 1.0,
+ "source": "tests_unit_config_test_models_py",
+ "target": "config_test_models_test_equipment_orchestrator_staging_transport_optional"
},
{
- "relation": "calls",
- "context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/config/test_loader.py",
- "source_location": "L86",
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/config/test_models.py",
+ "source_location": "L609",
"weight": 1.0,
- "source": "config_test_loader_test_load_config_missing_file_raises",
- "target": "config_loader_load_config"
+ "confidence_score": 1.0,
+ "source": "tests_unit_config_test_models_py",
+ "target": "config_test_models_orch_staging_transport_dict"
},
{
- "relation": "calls",
- "context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/config/test_loader.py",
- "source_location": "L96",
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/config/test_models.py",
+ "source_location": "L622",
"weight": 1.0,
- "source": "config_test_loader_test_load_config_invalid_yaml_raises",
- "target": "config_loader_load_config"
+ "confidence_score": 1.0,
+ "source": "tests_unit_config_test_models_py",
+ "target": "config_test_models_test_sync_mode_nas_requires_transport_block"
},
{
- "relation": "calls",
- "context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/config/test_loader.py",
- "source_location": "L104",
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/config/test_models.py",
+ "source_location": "L631",
"weight": 1.0,
- "source": "config_test_loader_test_load_config_top_level_not_mapping_raises",
- "target": "config_loader_load_config"
+ "confidence_score": 1.0,
+ "source": "tests_unit_config_test_models_py",
+ "target": "config_test_models_test_sync_mode_nas_forbids_orchestrator_staging_transport"
},
{
- "relation": "calls",
- "context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/config/test_loader.py",
- "source_location": "L127",
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/config/test_models.py",
+ "source_location": "L640",
"weight": 1.0,
- "source": "config_test_loader_test_load_config_validation_error_raises_config_error",
- "target": "config_loader_load_config"
+ "confidence_score": 1.0,
+ "source": "tests_unit_config_test_models_py",
+ "target": "config_test_models_test_sync_mode_stage_requires_orchestrator_staging_transport"
},
{
- "relation": "calls",
- "context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/config/test_loader.py",
- "source_location": "L135",
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/config/test_models.py",
+ "source_location": "L649",
"weight": 1.0,
- "source": "config_test_loader_test_load_config_from_text_empty_returns_empty_config",
- "target": "config_loader_load_config_from_text"
+ "confidence_score": 1.0,
+ "source": "tests_unit_config_test_models_py",
+ "target": "config_test_models_test_sync_mode_stage_forbids_transport_block"
},
{
- "relation": "calls",
- "context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/config/test_loader.py",
- "source_location": "L149",
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/config/test_models.py",
+ "source_location": "L659",
"weight": 1.0,
- "source": "config_test_loader_test_load_config_unreadable_path_raises_config_error",
- "target": "config_loader_load_config"
+ "confidence_score": 1.0,
+ "source": "tests_unit_config_test_models_py",
+ "target": "config_test_models_test_sync_mode_stage_with_only_orchestrator_transport_is_valid"
},
{
"relation": "calls",
"context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/config/test_loader.py",
- "source_location": "L164",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/config/test_models.py",
+ "source_location": "L536",
"weight": 1.0,
- "source": "config_test_loader_test_save_config_atomic",
- "target": "config_loader_load_config"
+ "confidence_score": 1.0,
+ "source": "config_test_models_test_equipment_id_regex_accepts_canonical_form",
+ "target": "config_test_models_equipment_dict"
},
{
"relation": "calls",
"context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/config/test_loader.py",
- "source_location": "L167",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/config/test_models.py",
+ "source_location": "L542",
"weight": 1.0,
- "source": "config_test_loader_test_save_config_atomic",
- "target": "config_loader_save_config"
+ "confidence_score": 1.0,
+ "source": "config_test_models_test_equipment_id_rejects_lowercase",
+ "target": "config_test_models_equipment_dict"
},
{
"relation": "calls",
"context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/config/test_loader.py",
- "source_location": "L178",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/config/test_models.py",
+ "source_location": "L547",
"weight": 1.0,
- "source": "config_test_loader_test_save_config_preserves_comments_round_trip",
- "target": "config_loader_load_config"
+ "confidence_score": 1.0,
+ "source": "config_test_models_test_equipment_id_rejects_hyphen",
+ "target": "config_test_models_equipment_dict"
},
{
"relation": "calls",
"context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/config/test_loader.py",
- "source_location": "L181",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/config/test_models.py",
+ "source_location": "L552",
"weight": 1.0,
- "source": "config_test_loader_test_save_config_preserves_comments_round_trip",
- "target": "config_loader_save_config"
+ "confidence_score": 1.0,
+ "source": "config_test_models_test_equipment_id_rejects_leading_digit",
+ "target": "config_test_models_equipment_dict"
},
{
"relation": "calls",
"context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/config/test_loader.py",
- "source_location": "L192",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/config/test_models.py",
+ "source_location": "L558",
"weight": 1.0,
- "source": "config_test_loader_test_save_config_preserves_key_order",
- "target": "config_loader_load_config"
+ "confidence_score": 1.0,
+ "source": "config_test_models_test_equipment_id_rejects_too_long",
+ "target": "config_test_models_equipment_dict"
},
{
"relation": "calls",
"context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/config/test_loader.py",
- "source_location": "L195",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/config/test_models.py",
+ "source_location": "L563",
"weight": 1.0,
- "source": "config_test_loader_test_save_config_preserves_key_order",
- "target": "config_loader_save_config"
+ "confidence_score": 1.0,
+ "source": "config_test_models_test_equipment_id_accepts_max_length",
+ "target": "config_test_models_equipment_dict"
},
{
"relation": "calls",
"context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/config/test_loader.py",
- "source_location": "L206",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/config/test_models.py",
+ "source_location": "L571",
"weight": 1.0,
- "source": "config_test_loader_test_save_config_creates_parent_dirs",
- "target": "config_loader_load_config"
+ "confidence_score": 1.0,
+ "source": "config_test_models_test_equipment_config_rejects_removed_completeness_fields",
+ "target": "config_test_models_equipment_dict"
},
{
"relation": "calls",
"context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/config/test_loader.py",
- "source_location": "L209",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/config/test_models.py",
+ "source_location": "L579",
"weight": 1.0,
- "source": "config_test_loader_test_save_config_creates_parent_dirs",
- "target": "config_loader_save_config"
+ "confidence_score": 1.0,
+ "source": "config_test_models_test_equipment_label_must_be_non_empty",
+ "target": "config_test_models_equipment_dict"
},
{
"relation": "calls",
"context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/config/test_loader.py",
- "source_location": "L216",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/config/test_models.py",
+ "source_location": "L586",
"weight": 1.0,
- "source": "config_test_loader_test_save_config_without_original_text_writes_fresh",
- "target": "config_loader_load_config"
+ "confidence_score": 1.0,
+ "source": "config_test_models_test_equipment_local_root_must_be_non_empty",
+ "target": "config_test_models_equipment_dict"
},
{
"relation": "calls",
"context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/config/test_loader.py",
- "source_location": "L219",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/config/test_models.py",
+ "source_location": "L593",
"weight": 1.0,
- "source": "config_test_loader_test_save_config_without_original_text_writes_fresh",
- "target": "config_loader_save_config"
+ "confidence_score": 1.0,
+ "source": "config_test_models_test_equipment_nas_root_must_be_non_empty",
+ "target": "config_test_models_equipment_dict"
},
{
"relation": "calls",
"context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/config/test_loader.py",
- "source_location": "L264",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/config/test_models.py",
+ "source_location": "L419",
"weight": 1.0,
- "source": "config_test_loader_test_dump_config_round_trip",
- "target": "config_loader_dump_config"
+ "confidence_score": 1.0,
+ "source": "config_test_models_test_equipment_rejects_removed_orchestrator_staging_transport",
+ "target": "config_test_models_equipment_dict"
},
{
"relation": "calls",
"context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/config/test_loader.py",
- "source_location": "L265",
- "weight": 1.0,
- "source": "config_test_loader_test_dump_config_round_trip",
- "target": "config_loader_load_config_from_text"
- },
- {
- "relation": "rationale_for",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/config/test_loader.py",
- "source_location": "L283",
+ "source_file": "tests/unit/config/test_models.py",
+ "source_location": "L618",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "config_test_loader_rationale_283",
- "target": "config_test_loader_test_test_mode_unset_leaves_equipment_ids_unchanged"
+ "source": "config_test_models_test_sync_mode_defaults_to_nas_when_absent",
+ "target": "config_test_models_equipment_dict"
},
{
"relation": "calls",
"context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/config/test_loader.py",
- "source_location": "L309",
- "weight": 1.0,
- "source": "config_test_loader_test_test_mode_unset_leaves_equipment_ids_unchanged",
- "target": "config_loader_load_config_from_text"
- },
- {
- "relation": "rationale_for",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/config/test_loader.py",
- "source_location": "L307",
+ "source_file": "tests/unit/config/test_models.py",
+ "source_location": "L458",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "config_test_loader_rationale_307",
- "target": "config_test_loader_test_test_mode_unset_leaves_equipment_ids_unchanged"
+ "source": "config_test_models_test_nas_mode_equipment_rejects_stray_transport_block",
+ "target": "config_test_models_equipment_dict"
},
{
- "relation": "rationale_for",
+ "relation": "calls",
+ "context": "call",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/config/test_loader.py",
- "source_location": "L290",
+ "source_file": "tests/unit/config/test_models.py",
+ "source_location": "L475",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "config_test_loader_rationale_290",
- "target": "config_test_loader_test_test_mode_enabled_prefixes_every_equipment_id"
+ "source": "config_test_models_test_sync_mode_stage_needs_no_per_equipment_block",
+ "target": "config_test_models_equipment_dict"
},
{
"relation": "calls",
"context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/config/test_loader.py",
- "source_location": "L316",
- "weight": 1.0,
- "source": "config_test_loader_test_test_mode_enabled_prefixes_every_equipment_id",
- "target": "config_loader_load_config_from_text"
- },
- {
- "relation": "rationale_for",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/config/test_loader.py",
- "source_location": "L314",
+ "source_file": "tests/unit/config/test_models.py",
+ "source_location": "L482",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "config_test_loader_rationale_314",
- "target": "config_test_loader_test_test_mode_enabled_prefixes_every_equipment_id"
+ "source": "config_test_models_test_sync_mode_stage_rejects_stray_transport_block",
+ "target": "config_test_models_equipment_dict"
},
{
- "relation": "rationale_for",
+ "relation": "calls",
+ "context": "call",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/config/test_loader.py",
- "source_location": "L305",
+ "source_file": "tests/unit/config/test_models.py",
+ "source_location": "L671",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "config_test_loader_rationale_305",
- "target": "config_test_loader_test_test_mode_is_idempotent_on_already_prefixed_ids"
+ "source": "config_test_models_test_sync_mode_serializes_to_string",
+ "target": "config_test_models_equipment_dict"
},
{
"relation": "calls",
"context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/config/test_loader.py",
- "source_location": "L352",
- "weight": 1.0,
- "source": "config_test_loader_test_test_mode_is_idempotent_on_already_prefixed_ids",
- "target": "config_loader_load_config_from_text"
- },
- {
- "relation": "rationale_for",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/config/test_loader.py",
- "source_location": "L329",
+ "source_file": "tests/unit/config/test_models.py",
+ "source_location": "L679",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "config_test_loader_rationale_329",
- "target": "config_test_loader_test_test_mode_is_idempotent_on_already_prefixed_ids"
+ "source": "config_test_models_test_sync_mode_rejects_unknown_value",
+ "target": "config_test_models_equipment_dict"
},
{
- "relation": "rationale_for",
+ "relation": "calls",
+ "context": "call",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/config/test_loader.py",
- "source_location": "L325",
+ "source_file": "tests/unit/config/test_models.py",
+ "source_location": "L687",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "config_test_loader_rationale_325",
- "target": "config_test_loader_test_test_mode_preserves_unique_id_invariant"
+ "source": "config_test_models_test_sync_mode_stage_round_trip_via_dict",
+ "target": "config_test_models_equipment_dict"
},
{
"relation": "calls",
"context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/config/test_loader.py",
- "source_location": "L361",
- "weight": 1.0,
- "source": "config_test_loader_test_test_mode_preserves_unique_id_invariant",
- "target": "config_loader_load_config_from_text"
- },
- {
- "relation": "rationale_for",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/config/test_loader.py",
- "source_location": "L359",
+ "source_file": "tests/unit/config/test_models.py",
+ "source_location": "L931",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "config_test_loader_rationale_359",
- "target": "config_test_loader_test_test_mode_preserves_unique_id_invariant"
+ "source": "config_test_models_test_unique_equipment_ids_required",
+ "target": "config_test_models_equipment_dict"
},
{
- "relation": "rationale_for",
+ "relation": "calls",
+ "context": "call",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/config/test_loader.py",
- "source_location": "L343",
+ "source_file": "tests/unit/config/test_models.py",
+ "source_location": "L943",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "config_test_loader_rationale_343",
- "target": "config_test_loader_test_test_mode_truthy_values_trigger_prefix"
+ "source": "config_test_models_test_distinct_equipment_ids_accepted",
+ "target": "config_test_models_equipment_dict"
},
{
"relation": "calls",
"context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/config/test_loader.py",
- "source_location": "L379",
- "weight": 1.0,
- "source": "config_test_loader_test_test_mode_truthy_values_trigger_prefix",
- "target": "config_loader_load_config_from_text"
- },
- {
- "relation": "rationale_for",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/config/test_loader.py",
- "source_location": "L377",
+ "source_file": "tests/unit/config/test_models.py",
+ "source_location": "L1046",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "config_test_loader_rationale_377",
- "target": "config_test_loader_test_test_mode_truthy_values_trigger_prefix"
+ "source": "config_test_models_test_config_with_equipment_appended_seeds_from_none",
+ "target": "config_test_models_equipment_dict"
},
{
- "relation": "rationale_for",
+ "relation": "calls",
+ "context": "call",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/config/test_loader.py",
- "source_location": "L355",
+ "source_file": "tests/unit/config/test_models.py",
+ "source_location": "L1054",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "config_test_loader_rationale_355",
- "target": "config_test_loader_test_test_mode_falsy_values_do_not_trigger_prefix"
+ "source": "config_test_models_test_config_with_equipment_appended_preserves_existing_state",
+ "target": "config_test_models_equipment_dict"
},
{
"relation": "calls",
"context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/config/test_loader.py",
- "source_location": "L391",
- "weight": 1.0,
- "source": "config_test_loader_test_test_mode_falsy_values_do_not_trigger_prefix",
- "target": "config_loader_load_config_from_text"
- },
- {
- "relation": "rationale_for",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/config/test_loader.py",
- "source_location": "L389",
+ "source_file": "tests/unit/config/test_models.py",
+ "source_location": "L1071",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "config_test_loader_rationale_389",
- "target": "config_test_loader_test_test_mode_falsy_values_do_not_trigger_prefix"
+ "source": "config_test_models_test_config_with_equipment_appended_rejects_duplicate_id",
+ "target": "config_test_models_equipment_dict"
},
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/config/test_loader.py",
- "source_location": "L364",
+ "source_file": "tests/unit/config/test_models.py",
+ "source_location": "L50",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "config_test_loader_rationale_364",
- "target": "config_test_loader_test_test_mode_unset_via_delenv_does_not_trigger_prefix"
+ "source": "config_test_models_rationale_50",
+ "target": "config_test_models_equipment_dict"
},
{
"relation": "calls",
"context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/config/test_loader.py",
- "source_location": "L400",
- "weight": 1.0,
- "source": "config_test_loader_test_test_mode_unset_via_delenv_does_not_trigger_prefix",
- "target": "config_loader_load_config_from_text"
- },
- {
- "relation": "rationale_for",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/config/test_loader.py",
- "source_location": "L398",
+ "source_file": "tests/unit/config/test_models.py",
+ "source_location": "L80",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "config_test_loader_rationale_398",
- "target": "config_test_loader_test_test_mode_unset_via_delenv_does_not_trigger_prefix"
+ "source": "config_test_models_equipment_dict",
+ "target": "config_test_models_sftp_transport_dict"
},
{
- "relation": "rationale_for",
+ "relation": "calls",
+ "context": "call",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/config/test_loader.py",
- "source_location": "L373",
+ "source_file": "tests/unit/config/test_models.py",
+ "source_location": "L481",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "config_test_loader_rationale_373",
- "target": "config_test_loader_test_apply_test_mode_prefix_helper_is_a_pure_function"
+ "source": "config_test_models_test_equipment_transport_discriminates_on_type_sftp",
+ "target": "config_test_models_equipment_dict"
},
{
"relation": "calls",
"context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/config/test_loader.py",
- "source_location": "L413",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/config/test_models.py",
+ "source_location": "L487",
"weight": 1.0,
- "source": "config_test_loader_test_apply_test_mode_prefix_helper_is_a_pure_function",
- "target": "config_loader_load_config_from_text"
+ "confidence_score": 1.0,
+ "source": "config_test_models_test_equipment_transport_discriminates_on_type_smb",
+ "target": "config_test_models_equipment_dict"
},
{
"relation": "calls",
"context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/config/test_loader.py",
- "source_location": "L414",
- "weight": 1.0,
- "source": "config_test_loader_test_apply_test_mode_prefix_helper_is_a_pure_function",
- "target": "config_loader_apply_test_mode_prefix"
- },
- {
- "relation": "rationale_for",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/config/test_loader.py",
- "source_location": "L407",
+ "source_file": "tests/unit/config/test_models.py",
+ "source_location": "L496",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "config_test_loader_rationale_407",
- "target": "config_test_loader_test_apply_test_mode_prefix_helper_is_a_pure_function"
+ "source": "config_test_models_test_equipment_transport_rejects_unknown_type",
+ "target": "config_test_models_equipment_dict"
},
{
"relation": "calls",
"context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/config/test_loader.py",
- "source_location": "L403",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/config/test_models.py",
+ "source_location": "L600",
"weight": 1.0,
- "source": "config_test_loader_test_loader_round_trips_nas_block",
- "target": "config_loader_load_config"
+ "confidence_score": 1.0,
+ "source": "config_test_models_test_equipment_orchestrator_staging_transport_optional",
+ "target": "config_test_models_equipment_dict"
},
{
"relation": "calls",
"context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/config/test_loader.py",
- "source_location": "L406",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/config/test_models.py",
+ "source_location": "L623",
"weight": 1.0,
- "source": "config_test_loader_test_loader_round_trips_nas_block",
- "target": "config_loader_save_config"
+ "confidence_score": 1.0,
+ "source": "config_test_models_test_sync_mode_nas_requires_transport_block",
+ "target": "config_test_models_equipment_dict"
},
{
"relation": "calls",
"context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/config/test_loader.py",
- "source_location": "L430",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/config/test_models.py",
+ "source_location": "L632",
"weight": 1.0,
- "source": "config_test_loader_test_load_config_uses_ruamel_round_trip",
- "target": "config_loader_load_config"
+ "confidence_score": 1.0,
+ "source": "config_test_models_test_sync_mode_nas_forbids_orchestrator_staging_transport",
+ "target": "config_test_models_equipment_dict"
},
{
"relation": "calls",
"context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/config/test_loader.py",
- "source_location": "L433",
- "weight": 1.0,
- "source": "config_test_loader_test_load_config_uses_ruamel_round_trip",
- "target": "config_loader_save_config"
- },
- {
- "relation": "rationale_for",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/config/__init__.py",
- "source_location": "L1",
+ "source_file": "tests/unit/config/test_models.py",
+ "source_location": "L641",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "config_init_rationale_1",
- "target": "tests_unit_config_init_py"
+ "source": "config_test_models_test_sync_mode_stage_requires_orchestrator_staging_transport",
+ "target": "config_test_models_equipment_dict"
},
{
- "relation": "rationale_for",
+ "relation": "calls",
+ "context": "call",
"confidence": "EXTRACTED",
- "source_file": "src/exlab_wizard/config/__init__.py",
- "source_location": "L1",
+ "source_file": "tests/unit/config/test_models.py",
+ "source_location": "L650",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "config_init_rationale_1",
- "target": "src_exlab_wizard_config_init_py"
+ "source": "config_test_models_test_sync_mode_stage_forbids_transport_block",
+ "target": "config_test_models_equipment_dict"
},
{
- "relation": "contains",
+ "relation": "calls",
+ "context": "call",
"confidence": "EXTRACTED",
"source_file": "tests/unit/config/test_models.py",
- "source_location": "L69",
+ "source_location": "L660",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_config_test_models_py",
+ "source": "config_test_models_test_sync_mode_stage_with_only_orchestrator_transport_is_valid",
"target": "config_test_models_equipment_dict"
},
{
- "relation": "contains",
+ "relation": "rationale_for",
"confidence": "EXTRACTED",
"source_file": "tests/unit/config/test_models.py",
- "source_location": "L84",
+ "source_location": "L74",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_config_test_models_py",
- "target": "config_test_models_full_config_dict"
+ "source": "config_test_models_rationale_74",
+ "target": "config_test_models_equipment_dict"
},
{
- "relation": "contains",
+ "relation": "calls",
+ "context": "call",
"confidence": "EXTRACTED",
"source_file": "tests/unit/config/test_models.py",
- "source_location": "L208",
+ "source_location": "L1018",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_config_test_models_py",
- "target": "config_test_models_test_paths_config_defaults_are_empty_strings"
+ "source": "config_test_models_test_full_config_round_trip_via_dict",
+ "target": "config_test_models_full_config_dict"
},
{
- "relation": "contains",
+ "relation": "calls",
+ "context": "call",
"confidence": "EXTRACTED",
"source_file": "tests/unit/config/test_models.py",
- "source_location": "L215",
+ "source_location": "L1031",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_config_test_models_py",
- "target": "config_test_models_test_paths_config_rejects_unknown_keys"
+ "source": "config_test_models_test_round_trip_preserves_bandwidth_alias_for_from",
+ "target": "config_test_models_full_config_dict"
},
{
- "relation": "contains",
+ "relation": "rationale_for",
"confidence": "EXTRACTED",
"source_file": "tests/unit/config/test_models.py",
- "source_location": "L225",
+ "source_location": "L60",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_config_test_models_py",
- "target": "config_test_models_test_lims_config_defaults"
+ "source": "config_test_models_rationale_60",
+ "target": "config_test_models_full_config_dict"
},
{
- "relation": "contains",
+ "relation": "rationale_for",
"confidence": "EXTRACTED",
"source_file": "tests/unit/config/test_models.py",
- "source_location": "L233",
+ "source_location": "L85",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_config_test_models_py",
- "target": "config_test_models_test_lims_config_rejects_negative_cache_ttl_hours"
+ "source": "config_test_models_rationale_85",
+ "target": "config_test_models_full_config_dict"
},
{
- "relation": "contains",
- "confidence": "EXTRACTED",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
"source_file": "tests/unit/config/test_models.py",
- "source_location": "L238",
+ "source_location": "L209",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "tests_unit_config_test_models_py",
- "target": "config_test_models_test_lims_config_zero_cache_ttl_is_allowed"
+ "source": "config_test_models_test_paths_config_defaults_are_empty_strings",
+ "target": "config_models_pathsconfig"
},
{
- "relation": "contains",
- "confidence": "EXTRACTED",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
"source_file": "tests/unit/config/test_models.py",
- "source_location": "L249",
+ "source_location": "L217",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "tests_unit_config_test_models_py",
- "target": "config_test_models_test_readme_default_field_minimal_string_field"
+ "source": "config_test_models_test_paths_config_rejects_unknown_keys",
+ "target": "config_models_pathsconfig"
},
{
- "relation": "contains",
- "confidence": "EXTRACTED",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
"source_file": "tests/unit/config/test_models.py",
- "source_location": "L256",
+ "source_location": "L226",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "tests_unit_config_test_models_py",
- "target": "config_test_models_test_readme_default_field_id_must_match_template_question_id_pattern"
+ "source": "config_test_models_test_lims_config_defaults",
+ "target": "config_models_limsconfig"
},
{
- "relation": "contains",
- "confidence": "EXTRACTED",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
"source_file": "tests/unit/config/test_models.py",
- "source_location": "L261",
+ "source_location": "L235",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "tests_unit_config_test_models_py",
- "target": "config_test_models_test_readme_default_field_id_rejects_leading_digit"
+ "source": "config_test_models_test_lims_config_rejects_negative_cache_ttl_hours",
+ "target": "config_models_limsconfig"
},
{
- "relation": "contains",
- "confidence": "EXTRACTED",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
"source_file": "tests/unit/config/test_models.py",
- "source_location": "L266",
+ "source_location": "L240",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "tests_unit_config_test_models_py",
- "target": "config_test_models_test_readme_default_field_label_must_be_non_empty"
+ "source": "config_test_models_test_lims_config_zero_cache_ttl_is_allowed",
+ "target": "config_models_limsconfig"
},
{
- "relation": "contains",
- "confidence": "EXTRACTED",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
"source_file": "tests/unit/config/test_models.py",
- "source_location": "L271",
+ "source_location": "L250",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "tests_unit_config_test_models_py",
- "target": "config_test_models_test_readme_default_field_rejects_unknown_type"
+ "source": "config_test_models_test_readme_default_field_minimal_string_field",
+ "target": "config_models_readmedefaultfield"
},
{
- "relation": "contains",
- "confidence": "EXTRACTED",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
"source_file": "tests/unit/config/test_models.py",
- "source_location": "L276",
+ "source_location": "L258",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "tests_unit_config_test_models_py",
- "target": "config_test_models_test_readme_choice_field_requires_options"
+ "source": "config_test_models_test_readme_default_field_id_must_match_template_question_id_pattern",
+ "target": "config_models_readmedefaultfield"
},
{
- "relation": "contains",
- "confidence": "EXTRACTED",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
"source_file": "tests/unit/config/test_models.py",
- "source_location": "L282",
+ "source_location": "L263",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "tests_unit_config_test_models_py",
- "target": "config_test_models_test_readme_choice_field_rejects_empty_options_list"
+ "source": "config_test_models_test_readme_default_field_id_rejects_leading_digit",
+ "target": "config_models_readmedefaultfield"
},
{
- "relation": "contains",
- "confidence": "EXTRACTED",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
"source_file": "tests/unit/config/test_models.py",
- "source_location": "L287",
+ "source_location": "L268",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "tests_unit_config_test_models_py",
- "target": "config_test_models_test_readme_choice_field_accepts_non_empty_options"
+ "source": "config_test_models_test_readme_default_field_label_must_be_non_empty",
+ "target": "config_models_readmedefaultfield"
},
{
- "relation": "contains",
- "confidence": "EXTRACTED",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
"source_file": "tests/unit/config/test_models.py",
- "source_location": "L292",
+ "source_location": "L273",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "tests_unit_config_test_models_py",
- "target": "config_test_models_test_readme_non_choice_field_does_not_require_options"
+ "source": "config_test_models_test_readme_default_field_rejects_unknown_type",
+ "target": "config_models_readmedefaultfield"
},
{
- "relation": "contains",
- "confidence": "EXTRACTED",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
"source_file": "tests/unit/config/test_models.py",
- "source_location": "L304",
+ "source_location": "L278",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "tests_unit_config_test_models_py",
- "target": "config_test_models_test_readme_config_default_is_empty_list"
+ "source": "config_test_models_test_readme_choice_field_requires_options",
+ "target": "config_models_readmedefaultfield"
},
{
- "relation": "contains",
- "confidence": "EXTRACTED",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
"source_file": "tests/unit/config/test_models.py",
- "source_location": "L314",
+ "source_location": "L284",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "tests_unit_config_test_models_py",
- "target": "config_test_models_test_bandwidth_window_happy_path"
+ "source": "config_test_models_test_readme_choice_field_rejects_empty_options_list",
+ "target": "config_models_readmedefaultfield"
},
{
- "relation": "contains",
- "confidence": "EXTRACTED",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
"source_file": "tests/unit/config/test_models.py",
- "source_location": "L321",
+ "source_location": "L288",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "tests_unit_config_test_models_py",
- "target": "config_test_models_test_bandwidth_window_rejects_empty_days_list"
+ "source": "config_test_models_test_readme_choice_field_accepts_non_empty_options",
+ "target": "config_models_readmedefaultfield"
},
{
- "relation": "contains",
- "confidence": "EXTRACTED",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
"source_file": "tests/unit/config/test_models.py",
- "source_location": "L326",
+ "source_location": "L294",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "tests_unit_config_test_models_py",
- "target": "config_test_models_test_bandwidth_window_rejects_invalid_day"
+ "source": "config_test_models_test_readme_non_choice_field_does_not_require_options",
+ "target": "config_models_readmedefaultfield"
},
{
- "relation": "contains",
- "confidence": "EXTRACTED",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
"source_file": "tests/unit/config/test_models.py",
- "source_location": "L331",
+ "source_location": "L305",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "tests_unit_config_test_models_py",
- "target": "config_test_models_test_bandwidth_window_from_must_be_before_to"
+ "source": "config_test_models_test_readme_config_default_is_empty_list",
+ "target": "config_models_readmeconfig"
},
{
- "relation": "contains",
- "confidence": "EXTRACTED",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
"source_file": "tests/unit/config/test_models.py",
- "source_location": "L336",
+ "source_location": "L363",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "tests_unit_config_test_models_py",
- "target": "config_test_models_test_bandwidth_window_equal_from_and_to_is_invalid"
+ "source": "config_test_models_test_bandwidth_config_defaults",
+ "target": "config_models_bandwidthconfig"
},
{
- "relation": "contains",
- "confidence": "EXTRACTED",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
"source_file": "tests/unit/config/test_models.py",
- "source_location": "L342",
+ "source_location": "L370",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "tests_unit_config_test_models_py",
- "target": "config_test_models_test_bandwidth_window_rejects_non_hhmm_time"
+ "source": "config_test_models_test_bandwidth_config_rejects_zero_upload_mbps",
+ "target": "config_models_bandwidthconfig"
},
{
- "relation": "contains",
- "confidence": "EXTRACTED",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
"source_file": "tests/unit/config/test_models.py",
- "source_location": "L347",
+ "source_location": "L375",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "tests_unit_config_test_models_py",
- "target": "config_test_models_test_bandwidth_window_rejects_invalid_hour"
+ "source": "config_test_models_test_bandwidth_config_rejects_negative_upload_mbps",
+ "target": "config_models_bandwidthconfig"
},
{
- "relation": "contains",
- "confidence": "EXTRACTED",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
"source_file": "tests/unit/config/test_models.py",
- "source_location": "L352",
+ "source_location": "L379",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "tests_unit_config_test_models_py",
- "target": "config_test_models_test_bandwidth_window_rejects_invalid_minute"
+ "source": "config_test_models_test_bandwidth_config_accepts_positive_upload_mbps",
+ "target": "config_models_bandwidthconfig"
},
{
- "relation": "contains",
+ "relation": "rationale_for",
"confidence": "EXTRACTED",
"source_file": "tests/unit/config/test_models.py",
- "source_location": "L362",
+ "source_location": "L385",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_config_test_models_py",
- "target": "config_test_models_test_bandwidth_config_defaults"
+ "source": "config_test_models_rationale_385",
+ "target": "config_test_models_test_equipment_config_rejects_removed_completeness_fields"
},
{
- "relation": "contains",
+ "relation": "rationale_for",
"confidence": "EXTRACTED",
"source_file": "tests/unit/config/test_models.py",
- "source_location": "L368",
+ "source_location": "L568",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_config_test_models_py",
- "target": "config_test_models_test_bandwidth_config_rejects_zero_upload_mbps"
+ "source": "config_test_models_rationale_568",
+ "target": "config_test_models_test_equipment_config_rejects_removed_completeness_fields"
},
{
- "relation": "contains",
+ "relation": "rationale_for",
"confidence": "EXTRACTED",
"source_file": "tests/unit/config/test_models.py",
- "source_location": "L373",
+ "source_location": "L417",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_config_test_models_py",
- "target": "config_test_models_test_bandwidth_config_rejects_negative_upload_mbps"
+ "source": "config_test_models_rationale_417",
+ "target": "config_test_models_test_equipment_rejects_removed_orchestrator_staging_transport"
},
{
- "relation": "contains",
+ "relation": "rationale_for",
"confidence": "EXTRACTED",
"source_file": "tests/unit/config/test_models.py",
- "source_location": "L378",
+ "source_location": "L441",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_config_test_models_py",
- "target": "config_test_models_test_bandwidth_config_accepts_positive_upload_mbps"
+ "source": "config_test_models_rationale_441",
+ "target": "config_test_models_test_nas_mode_equipment_needs_no_transport_block"
},
{
- "relation": "contains",
- "confidence": "EXTRACTED",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
"source_file": "tests/unit/config/test_models.py",
- "source_location": "L535",
+ "source_location": "L446",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "tests_unit_config_test_models_py",
- "target": "config_test_models_test_equipment_id_regex_accepts_canonical_form"
+ "source": "config_test_models_test_nas_mode_equipment_needs_no_transport_block",
+ "target": "config_models_equipmentconfig"
},
{
- "relation": "contains",
+ "relation": "rationale_for",
"confidence": "EXTRACTED",
"source_file": "tests/unit/config/test_models.py",
- "source_location": "L540",
+ "source_location": "L457",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_config_test_models_py",
- "target": "config_test_models_test_equipment_id_rejects_lowercase"
+ "source": "config_test_models_rationale_457",
+ "target": "config_test_models_test_nas_mode_equipment_rejects_stray_transport_block"
},
{
- "relation": "contains",
+ "relation": "rationale_for",
"confidence": "EXTRACTED",
"source_file": "tests/unit/config/test_models.py",
- "source_location": "L545",
+ "source_location": "L472",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_config_test_models_py",
- "target": "config_test_models_test_equipment_id_rejects_hyphen"
+ "source": "config_test_models_rationale_472",
+ "target": "config_test_models_test_sync_mode_stage_needs_no_per_equipment_block"
},
{
- "relation": "contains",
+ "relation": "rationale_for",
"confidence": "EXTRACTED",
"source_file": "tests/unit/config/test_models.py",
- "source_location": "L550",
+ "source_location": "L507",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_config_test_models_py",
- "target": "config_test_models_test_equipment_id_rejects_leading_digit"
+ "source": "config_test_models_rationale_507",
+ "target": "config_test_models_test_sync_mode_stage_round_trip_via_dict"
},
{
- "relation": "contains",
+ "relation": "calls",
+ "context": "call",
"confidence": "EXTRACTED",
"source_file": "tests/unit/config/test_models.py",
- "source_location": "L555",
+ "source_location": "L690",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_config_test_models_py",
- "target": "config_test_models_test_equipment_id_rejects_too_long"
+ "source": "config_test_models_test_sync_mode_stage_round_trip_via_dict",
+ "target": "config_test_models_orch_staging_transport_dict"
},
{
- "relation": "contains",
+ "relation": "rationale_for",
"confidence": "EXTRACTED",
"source_file": "tests/unit/config/test_models.py",
- "source_location": "L561",
+ "source_location": "L686",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_config_test_models_py",
- "target": "config_test_models_test_equipment_id_accepts_max_length"
+ "source": "config_test_models_rationale_686",
+ "target": "config_test_models_test_sync_mode_stage_round_trip_via_dict"
},
{
- "relation": "contains",
- "confidence": "EXTRACTED",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
"source_file": "tests/unit/config/test_models.py",
- "source_location": "L567",
+ "source_location": "L705",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "tests_unit_config_test_models_py",
- "target": "config_test_models_test_equipment_config_rejects_removed_completeness_fields"
+ "source": "config_test_models_test_nas_cleanup_defaults",
+ "target": "config_models_nascleanupconfig"
},
{
- "relation": "contains",
- "confidence": "EXTRACTED",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
"source_file": "tests/unit/config/test_models.py",
- "source_location": "L578",
+ "source_location": "L714",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "tests_unit_config_test_models_py",
- "target": "config_test_models_test_equipment_label_must_be_non_empty"
+ "source": "config_test_models_test_nas_cleanup_min_verify_passes_at_least_one",
+ "target": "config_models_nascleanupconfig"
},
{
- "relation": "contains",
- "confidence": "EXTRACTED",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
"source_file": "tests/unit/config/test_models.py",
- "source_location": "L585",
+ "source_location": "L719",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "tests_unit_config_test_models_py",
- "target": "config_test_models_test_equipment_local_root_must_be_non_empty"
+ "source": "config_test_models_test_nas_cleanup_min_age_hours_non_negative",
+ "target": "config_models_nascleanupconfig"
},
{
- "relation": "contains",
- "confidence": "EXTRACTED",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
"source_file": "tests/unit/config/test_models.py",
- "source_location": "L592",
+ "source_location": "L728",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "tests_unit_config_test_models_py",
- "target": "config_test_models_test_equipment_nas_root_must_be_non_empty"
+ "source": "config_test_models_test_logging_level_normalized_to_uppercase",
+ "target": "config_models_loggingconfig"
},
{
- "relation": "contains",
- "confidence": "EXTRACTED",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
"source_file": "tests/unit/config/test_models.py",
- "source_location": "L416",
+ "source_location": "L734",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "tests_unit_config_test_models_py",
- "target": "config_test_models_test_equipment_rejects_removed_orchestrator_staging_transport"
+ "source": "config_test_models_test_logging_level_rejects_unknown",
+ "target": "config_models_loggingconfig"
},
{
- "relation": "contains",
- "confidence": "EXTRACTED",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
"source_file": "tests/unit/config/test_models.py",
- "source_location": "L617",
+ "source_location": "L739",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "tests_unit_config_test_models_py",
- "target": "config_test_models_test_sync_mode_defaults_to_nas_when_absent"
+ "source": "config_test_models_test_logging_level_accepts_all_canonical_values",
+ "target": "config_models_loggingconfig"
},
{
- "relation": "contains",
- "confidence": "EXTRACTED",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
"source_file": "tests/unit/config/test_models.py",
- "source_location": "L440",
+ "source_location": "L744",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "tests_unit_config_test_models_py",
- "target": "config_test_models_test_nas_mode_equipment_needs_no_transport_block"
+ "source": "config_test_models_test_logging_level_strips_whitespace_and_normalizes",
+ "target": "config_models_loggingconfig"
},
{
- "relation": "contains",
- "confidence": "EXTRACTED",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
"source_file": "tests/unit/config/test_models.py",
- "source_location": "L456",
+ "source_location": "L762",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "tests_unit_config_test_models_py",
- "target": "config_test_models_test_nas_mode_equipment_rejects_stray_transport_block"
+ "source": "config_test_models_test_logging_level_rejects_non_string_directly",
+ "target": "config_models_loggingconfig"
},
{
- "relation": "contains",
- "confidence": "EXTRACTED",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
"source_file": "tests/unit/config/test_models.py",
- "source_location": "L471",
+ "source_location": "L768",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "tests_unit_config_test_models_py",
- "target": "config_test_models_test_sync_mode_stage_needs_no_per_equipment_block"
+ "source": "config_test_models_test_logging_central_log_max_mb_at_least_one",
+ "target": "config_models_loggingconfig"
},
{
- "relation": "contains",
- "confidence": "EXTRACTED",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
"source_file": "tests/unit/config/test_models.py",
- "source_location": "L481",
+ "source_location": "L773",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "tests_unit_config_test_models_py",
- "target": "config_test_models_test_sync_mode_stage_rejects_stray_transport_block"
+ "source": "config_test_models_test_logging_central_log_keep_at_least_one",
+ "target": "config_models_loggingconfig"
},
{
- "relation": "contains",
- "confidence": "EXTRACTED",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
"source_file": "tests/unit/config/test_models.py",
- "source_location": "L670",
+ "source_location": "L782",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "tests_unit_config_test_models_py",
- "target": "config_test_models_test_sync_mode_serializes_to_string"
+ "source": "config_test_models_test_operators_config_defaults_to_empty_allowlist",
+ "target": "config_models_operatorsconfig"
},
{
- "relation": "contains",
- "confidence": "EXTRACTED",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
"source_file": "tests/unit/config/test_models.py",
- "source_location": "L678",
+ "source_location": "L787",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "tests_unit_config_test_models_py",
- "target": "config_test_models_test_sync_mode_rejects_unknown_value"
+ "source": "config_test_models_test_operators_config_accepts_arbitrary_strings",
+ "target": "config_models_operatorsconfig"
},
{
- "relation": "contains",
- "confidence": "EXTRACTED",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
"source_file": "tests/unit/config/test_models.py",
- "source_location": "L685",
+ "source_location": "L797",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "tests_unit_config_test_models_py",
- "target": "config_test_models_test_sync_mode_stage_round_trip_via_dict"
+ "source": "config_test_models_test_validator_config_defaults",
+ "target": "config_models_validatorconfig"
},
{
- "relation": "contains",
- "confidence": "EXTRACTED",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
"source_file": "tests/unit/config/test_models.py",
- "source_location": "L704",
+ "source_location": "L805",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "tests_unit_config_test_models_py",
- "target": "config_test_models_test_nas_cleanup_defaults"
+ "source": "config_test_models_test_validator_content_scan_max_mib_at_least_one",
+ "target": "config_models_validatorconfig"
},
{
- "relation": "contains",
- "confidence": "EXTRACTED",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
"source_file": "tests/unit/config/test_models.py",
- "source_location": "L712",
+ "source_location": "L810",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "tests_unit_config_test_models_py",
- "target": "config_test_models_test_nas_cleanup_min_verify_passes_at_least_one"
+ "source": "config_test_models_test_validator_extensions_must_start_with_dot",
+ "target": "config_models_validatorconfig"
},
{
- "relation": "contains",
- "confidence": "EXTRACTED",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
"source_file": "tests/unit/config/test_models.py",
- "source_location": "L717",
+ "source_location": "L815",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "tests_unit_config_test_models_py",
- "target": "config_test_models_test_nas_cleanup_min_age_hours_non_negative"
+ "source": "config_test_models_test_validator_extensions_rejects_dotless_among_others",
+ "target": "config_models_validatorconfig"
},
{
- "relation": "contains",
- "confidence": "EXTRACTED",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
"source_file": "tests/unit/config/test_models.py",
- "source_location": "L727",
+ "source_location": "L824",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "tests_unit_config_test_models_py",
- "target": "config_test_models_test_logging_level_normalized_to_uppercase"
+ "source": "config_test_models_test_plugins_config_default_allow_network_false",
+ "target": "config_models_pluginsconfig"
},
{
- "relation": "contains",
- "confidence": "EXTRACTED",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
"source_file": "tests/unit/config/test_models.py",
- "source_location": "L732",
+ "source_location": "L834",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "tests_unit_config_test_models_py",
- "target": "config_test_models_test_logging_level_rejects_unknown"
+ "source": "config_test_models_test_sync_config_defaults",
+ "target": "config_models_syncconfig"
},
{
- "relation": "contains",
- "confidence": "EXTRACTED",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
"source_file": "tests/unit/config/test_models.py",
- "source_location": "L737",
+ "source_location": "L844",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "tests_unit_config_test_models_py",
- "target": "config_test_models_test_logging_level_accepts_all_canonical_values"
+ "source": "config_test_models_test_sync_config_retry_attempts_non_negative",
+ "target": "config_models_syncconfig"
},
{
- "relation": "contains",
- "confidence": "EXTRACTED",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
"source_file": "tests/unit/config/test_models.py",
- "source_location": "L743",
+ "source_location": "L849",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "tests_unit_config_test_models_py",
- "target": "config_test_models_test_logging_level_strips_whitespace_and_normalizes"
+ "source": "config_test_models_test_sync_config_quiescence_minutes_at_least_one",
+ "target": "config_models_syncconfig"
},
{
- "relation": "contains",
- "confidence": "EXTRACTED",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
"source_file": "tests/unit/config/test_models.py",
- "source_location": "L748",
+ "source_location": "L854",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "tests_unit_config_test_models_py",
- "target": "config_test_models_test_logging_level_rejects_non_string"
+ "source": "config_test_models_test_sync_config_poll_interval_seconds_at_least_one",
+ "target": "config_models_syncconfig"
},
{
- "relation": "contains",
- "confidence": "EXTRACTED",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
"source_file": "tests/unit/config/test_models.py",
- "source_location": "L758",
+ "source_location": "L858",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "tests_unit_config_test_models_py",
- "target": "config_test_models_test_logging_level_rejects_non_string_directly"
+ "source": "config_test_models_test_sync_config_accepts_custom_quiescence_settings",
+ "target": "config_models_syncconfig"
},
{
- "relation": "contains",
- "confidence": "EXTRACTED",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
"source_file": "tests/unit/config/test_models.py",
- "source_location": "L766",
+ "source_location": "L870",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "tests_unit_config_test_models_py",
- "target": "config_test_models_test_logging_central_log_max_mb_at_least_one"
+ "source": "config_test_models_test_sync_config_ignore_globs_default_is_independent_per_instance",
+ "target": "config_models_syncconfig"
},
{
- "relation": "contains",
- "confidence": "EXTRACTED",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
"source_file": "tests/unit/config/test_models.py",
- "source_location": "L771",
+ "source_location": "L882",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "tests_unit_config_test_models_py",
- "target": "config_test_models_test_logging_central_log_keep_at_least_one"
+ "source": "config_test_models_test_orchestrator_staging_cleanup_defaults",
+ "target": "config_models_orchestratorstagingcleanup"
},
{
- "relation": "contains",
- "confidence": "EXTRACTED",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
"source_file": "tests/unit/config/test_models.py",
- "source_location": "L781",
+ "source_location": "L890",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "tests_unit_config_test_models_py",
- "target": "config_test_models_test_operators_config_defaults_to_empty_allowlist"
+ "source": "config_test_models_test_orchestrator_staging_cleanup_scheduled_requires_positive_hours",
+ "target": "config_models_orchestratorstagingcleanup"
},
{
- "relation": "contains",
- "confidence": "EXTRACTED",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
"source_file": "tests/unit/config/test_models.py",
- "source_location": "L786",
+ "source_location": "L895",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "tests_unit_config_test_models_py",
- "target": "config_test_models_test_operators_config_accepts_arbitrary_strings"
+ "source": "config_test_models_test_orchestrator_staging_cleanup_rejects_unknown_mode",
+ "target": "config_models_orchestratorstagingcleanup"
},
{
- "relation": "contains",
+ "relation": "rationale_for",
"confidence": "EXTRACTED",
"source_file": "tests/unit/config/test_models.py",
- "source_location": "L796",
+ "source_location": "L722",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_config_test_models_py",
- "target": "config_test_models_test_validator_config_defaults"
+ "source": "config_test_models_rationale_722",
+ "target": "config_test_models_test_orchestrator_config_defaults"
},
{
- "relation": "contains",
- "confidence": "EXTRACTED",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
"source_file": "tests/unit/config/test_models.py",
- "source_location": "L803",
+ "source_location": "L907",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "tests_unit_config_test_models_py",
- "target": "config_test_models_test_validator_content_scan_max_mib_at_least_one"
+ "source": "config_test_models_test_orchestrator_config_defaults",
+ "target": "config_models_orchestratorconfig"
},
{
- "relation": "contains",
+ "relation": "rationale_for",
"confidence": "EXTRACTED",
"source_file": "tests/unit/config/test_models.py",
- "source_location": "L808",
+ "source_location": "L904",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_config_test_models_py",
- "target": "config_test_models_test_validator_extensions_must_start_with_dot"
+ "source": "config_test_models_rationale_904",
+ "target": "config_test_models_test_orchestrator_config_defaults"
},
{
- "relation": "contains",
+ "relation": "rationale_for",
"confidence": "EXTRACTED",
"source_file": "tests/unit/config/test_models.py",
- "source_location": "L813",
+ "source_location": "L734",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_config_test_models_py",
- "target": "config_test_models_test_validator_extensions_rejects_dotless_among_others"
+ "source": "config_test_models_rationale_734",
+ "target": "config_test_models_test_orchestrator_config_staging_remote_validates_with_perf_defaults"
},
{
- "relation": "contains",
- "confidence": "EXTRACTED",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
"source_file": "tests/unit/config/test_models.py",
- "source_location": "L823",
+ "source_location": "L737",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "tests_unit_config_test_models_py",
- "target": "config_test_models_test_plugins_config_default_allow_network_false"
+ "source": "config_test_models_test_orchestrator_config_staging_remote_validates_with_perf_defaults",
+ "target": "config_models_orchestratorconfig"
},
{
- "relation": "contains",
+ "relation": "rationale_for",
"confidence": "EXTRACTED",
"source_file": "tests/unit/config/test_models.py",
- "source_location": "L833",
+ "source_location": "L745",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_config_test_models_py",
- "target": "config_test_models_test_sync_config_defaults"
+ "source": "config_test_models_rationale_745",
+ "target": "config_test_models_test_stage_mode_equipment_validates_without_staging_block"
},
{
- "relation": "contains",
- "confidence": "EXTRACTED",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
"source_file": "tests/unit/config/test_models.py",
- "source_location": "L842",
+ "source_location": "L747",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "tests_unit_config_test_models_py",
- "target": "config_test_models_test_sync_config_retry_attempts_non_negative"
+ "source": "config_test_models_test_stage_mode_equipment_validates_without_staging_block",
+ "target": "config_models_equipmentconfig"
},
{
- "relation": "contains",
+ "relation": "calls",
+ "context": "call",
"confidence": "EXTRACTED",
"source_file": "tests/unit/config/test_models.py",
- "source_location": "L847",
+ "source_location": "L946",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_config_test_models_py",
- "target": "config_test_models_test_sync_config_quiescence_minutes_at_least_one"
+ "source": "config_test_models_test_distinct_equipment_ids_accepted",
+ "target": "config_test_models_smb_transport_dict"
},
{
- "relation": "contains",
+ "relation": "rationale_for",
"confidence": "EXTRACTED",
"source_file": "tests/unit/config/test_models.py",
- "source_location": "L852",
+ "source_location": "L796",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_config_test_models_py",
- "target": "config_test_models_test_sync_config_poll_interval_seconds_at_least_one"
+ "source": "config_test_models_rationale_796",
+ "target": "config_test_models_test_orchestrator_legacy_enabled_field_rejected"
},
{
- "relation": "contains",
+ "relation": "rationale_for",
"confidence": "EXTRACTED",
"source_file": "tests/unit/config/test_models.py",
- "source_location": "L857",
+ "source_location": "L955",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_config_test_models_py",
- "target": "config_test_models_test_sync_config_accepts_custom_quiescence_settings"
+ "source": "config_test_models_rationale_955",
+ "target": "config_test_models_test_orchestrator_legacy_enabled_field_rejected"
},
{
- "relation": "contains",
+ "relation": "rationale_for",
"confidence": "EXTRACTED",
"source_file": "tests/unit/config/test_models.py",
- "source_location": "L868",
+ "source_location": "L812",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_config_test_models_py",
- "target": "config_test_models_test_sync_config_ignore_globs_default_is_independent_per_instance"
+ "source": "config_test_models_rationale_812",
+ "target": "config_test_models_test_orchestrator_label_and_staging_root_load_independently"
},
{
- "relation": "contains",
+ "relation": "rationale_for",
"confidence": "EXTRACTED",
"source_file": "tests/unit/config/test_models.py",
- "source_location": "L881",
+ "source_location": "L971",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_config_test_models_py",
- "target": "config_test_models_test_orchestrator_staging_cleanup_defaults"
+ "source": "config_test_models_rationale_971",
+ "target": "config_test_models_test_orchestrator_label_and_staging_root_load_independently"
},
{
- "relation": "contains",
+ "relation": "rationale_for",
"confidence": "EXTRACTED",
"source_file": "tests/unit/config/test_models.py",
- "source_location": "L887",
+ "source_location": "L851",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_config_test_models_py",
- "target": "config_test_models_test_orchestrator_staging_cleanup_scheduled_requires_positive_hours"
+ "source": "config_test_models_rationale_851",
+ "target": "config_test_models_test_full_config_round_trip_via_dict"
},
{
- "relation": "contains",
+ "relation": "rationale_for",
"confidence": "EXTRACTED",
"source_file": "tests/unit/config/test_models.py",
- "source_location": "L893",
+ "source_location": "L1010",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_config_test_models_py",
- "target": "config_test_models_test_orchestrator_staging_cleanup_rejects_unknown_mode"
+ "source": "config_test_models_rationale_1010",
+ "target": "config_test_models_test_full_config_round_trip_via_dict"
},
{
- "relation": "contains",
+ "relation": "rationale_for",
"confidence": "EXTRACTED",
"source_file": "tests/unit/config/test_models.py",
- "source_location": "L903",
+ "source_location": "L886",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_config_test_models_py",
- "target": "config_test_models_test_orchestrator_config_defaults"
+ "source": "config_test_models_rationale_886",
+ "target": "config_test_models_test_config_with_equipment_appended_seeds_from_none"
},
{
- "relation": "contains",
- "confidence": "EXTRACTED",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
"source_file": "tests/unit/config/test_models.py",
- "source_location": "L733",
+ "source_location": "L1047",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "tests_unit_config_test_models_py",
- "target": "config_test_models_test_orchestrator_config_staging_remote_validates_with_perf_defaults"
+ "source": "config_test_models_test_config_with_equipment_appended_seeds_from_none",
+ "target": "config_models_config_with_equipment_appended"
},
{
- "relation": "contains",
+ "relation": "rationale_for",
"confidence": "EXTRACTED",
"source_file": "tests/unit/config/test_models.py",
- "source_location": "L744",
+ "source_location": "L1045",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_config_test_models_py",
- "target": "config_test_models_test_stage_mode_equipment_validates_without_staging_block"
+ "source": "config_test_models_rationale_1045",
+ "target": "config_test_models_test_config_with_equipment_appended_seeds_from_none"
},
{
- "relation": "contains",
+ "relation": "rationale_for",
"confidence": "EXTRACTED",
"source_file": "tests/unit/config/test_models.py",
- "source_location": "L918",
+ "source_location": "L894",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_config_test_models_py",
- "target": "config_test_models_test_config_fully_default_is_valid"
+ "source": "config_test_models_rationale_894",
+ "target": "config_test_models_test_config_with_equipment_appended_preserves_existing_state"
},
{
- "relation": "contains",
- "confidence": "EXTRACTED",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
"source_file": "tests/unit/config/test_models.py",
- "source_location": "L928",
+ "source_location": "L1055",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "tests_unit_config_test_models_py",
- "target": "config_test_models_test_unique_equipment_ids_required"
+ "source": "config_test_models_test_config_with_equipment_appended_preserves_existing_state",
+ "target": "config_models_loggingconfig"
},
{
- "relation": "contains",
- "confidence": "EXTRACTED",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
"source_file": "tests/unit/config/test_models.py",
- "source_location": "L940",
+ "source_location": "L1062",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "tests_unit_config_test_models_py",
- "target": "config_test_models_test_distinct_equipment_ids_accepted"
+ "source": "config_test_models_test_config_with_equipment_appended_preserves_existing_state",
+ "target": "config_models_config_with_equipment_appended"
},
{
- "relation": "contains",
+ "relation": "calls",
+ "context": "call",
"confidence": "EXTRACTED",
"source_file": "tests/unit/config/test_models.py",
- "source_location": "L954",
+ "source_location": "L1059",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_config_test_models_py",
- "target": "config_test_models_test_orchestrator_legacy_enabled_field_rejected"
+ "source": "config_test_models_test_config_with_equipment_appended_preserves_existing_state",
+ "target": "config_test_models_smb_transport_dict"
},
{
- "relation": "contains",
+ "relation": "rationale_for",
"confidence": "EXTRACTED",
"source_file": "tests/unit/config/test_models.py",
- "source_location": "L970",
+ "source_location": "L1053",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_config_test_models_py",
- "target": "config_test_models_test_orchestrator_label_and_staging_root_load_independently"
+ "source": "config_test_models_rationale_1053",
+ "target": "config_test_models_test_config_with_equipment_appended_preserves_existing_state"
},
{
- "relation": "contains",
+ "relation": "rationale_for",
"confidence": "EXTRACTED",
"source_file": "tests/unit/config/test_models.py",
- "source_location": "L985",
+ "source_location": "L906",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_config_test_models_py",
- "target": "config_test_models_test_orchestrator_with_both_fields_is_valid"
+ "source": "config_test_models_rationale_906",
+ "target": "config_test_models_test_config_with_equipment_appended_rejects_duplicate_id"
},
{
- "relation": "contains",
- "confidence": "EXTRACTED",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
"source_file": "tests/unit/config/test_models.py",
- "source_location": "L999",
+ "source_location": "L1075",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "tests_unit_config_test_models_py",
- "target": "config_test_models_test_config_rejects_unknown_top_level_key"
+ "source": "config_test_models_test_config_with_equipment_appended_rejects_duplicate_id",
+ "target": "config_models_config_with_equipment_appended"
},
{
- "relation": "contains",
+ "relation": "rationale_for",
"confidence": "EXTRACTED",
"source_file": "tests/unit/config/test_models.py",
- "source_location": "L1009",
+ "source_location": "L1070",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_config_test_models_py",
- "target": "config_test_models_test_full_config_round_trip_via_dict"
+ "source": "config_test_models_rationale_1070",
+ "target": "config_test_models_test_config_with_equipment_appended_rejects_duplicate_id"
},
{
- "relation": "contains",
- "confidence": "EXTRACTED",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
"source_file": "tests/unit/config/test_models.py",
- "source_location": "L1030",
+ "source_location": "L920",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "tests_unit_config_test_models_py",
- "target": "config_test_models_test_round_trip_preserves_bandwidth_alias_for_from"
+ "source": "config_test_models_test_nas_config_defaults",
+ "target": "config_models_nasconfig"
},
{
- "relation": "contains",
- "confidence": "EXTRACTED",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
"source_file": "tests/unit/config/test_models.py",
- "source_location": "L1044",
+ "source_location": "L932",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "tests_unit_config_test_models_py",
- "target": "config_test_models_test_config_with_equipment_appended_seeds_from_none"
+ "source": "config_test_models_test_nas_config_rejects_nonpositive_perf",
+ "target": "config_models_rcloneperf"
},
{
- "relation": "contains",
+ "relation": "rationale_for",
"confidence": "EXTRACTED",
"source_file": "tests/unit/config/test_models.py",
- "source_location": "L1052",
+ "source_location": "L60",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_config_test_models_py",
- "target": "config_test_models_test_config_with_equipment_appended_preserves_existing_state"
+ "source": "config_test_models_rationale_60",
+ "target": "config_test_models_smb_transport_dict"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/config/test_models.py",
- "source_location": "L1069",
+ "source_file": "tests/unit/plugins/test_registry.py",
+ "source_location": "L35",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_config_test_models_py",
- "target": "config_test_models_test_config_with_equipment_appended_rejects_duplicate_id"
+ "source": "tests_unit_plugins_test_registry_py",
+ "target": "plugins_test_registry_write_plugin"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/config/test_models.py",
- "source_location": "L919",
+ "source_file": "tests/unit/plugins/test_registry.py",
+ "source_location": "L89",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_config_test_models_py",
- "target": "config_test_models_test_nas_config_defaults"
+ "source": "tests_unit_plugins_test_registry_py",
+ "target": "plugins_test_registry_test_loads_a_valid_plugin"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/config/test_models.py",
- "source_location": "L930",
+ "source_file": "tests/unit/plugins/test_registry.py",
+ "source_location": "L106",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_config_test_models_py",
- "target": "config_test_models_test_nas_config_rejects_nonpositive_perf"
+ "source": "tests_unit_plugins_test_registry_py",
+ "target": "plugins_test_registry_test_loaded_record_carries_isolation_block"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/config/test_models.py",
- "source_location": "L937",
+ "source_file": "tests/unit/plugins/test_registry.py",
+ "source_location": "L118",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_config_test_models_py",
- "target": "config_test_models_test_config_has_default_nas_block"
+ "source": "tests_unit_plugins_test_registry_py",
+ "target": "plugins_test_registry_test_required_and_optional_variables_round_trip"
},
{
- "relation": "rationale_for",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/config/test_models.py",
- "source_location": "L1",
+ "source_file": "tests/unit/plugins/test_registry.py",
+ "source_location": "L140",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "config_test_models_rationale_1",
- "target": "tests_unit_config_test_models_py"
+ "source": "tests_unit_plugins_test_registry_py",
+ "target": "plugins_test_registry_test_rejects_plugin_directory_without_manifest"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/config/test_models.py",
- "source_location": "L48",
+ "source_file": "tests/unit/plugins/test_registry.py",
+ "source_location": "L152",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_config_test_models_py",
- "target": "config_test_models_sftp_transport_dict"
+ "source": "tests_unit_plugins_test_registry_py",
+ "target": "plugins_test_registry_test_rejects_plugin_with_malformed_yaml"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/config/test_models.py",
- "source_location": "L59",
+ "source_file": "tests/unit/plugins/test_registry.py",
+ "source_location": "L164",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_config_test_models_py",
- "target": "config_test_models_smb_transport_dict"
+ "source": "tests_unit_plugins_test_registry_py",
+ "target": "plugins_test_registry_test_rejects_plugin_missing_required_field"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/config/test_models.py",
- "source_location": "L388",
+ "source_file": "tests/unit/plugins/test_registry.py",
+ "source_location": "L174",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_config_test_models_py",
- "target": "config_test_models_test_sftp_transport_minimal"
+ "source": "tests_unit_plugins_test_registry_py",
+ "target": "plugins_test_registry_test_rejects_plugin_with_unsupported_api_version"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/config/test_models.py",
- "source_location": "L395",
+ "source_file": "tests/unit/plugins/test_registry.py",
+ "source_location": "L184",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_config_test_models_py",
- "target": "config_test_models_test_sftp_transport_rejects_missing_host"
+ "source": "tests_unit_plugins_test_registry_py",
+ "target": "plugins_test_registry_test_rejects_plugin_with_invalid_name"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/config/test_models.py",
- "source_location": "L402",
+ "source_file": "tests/unit/plugins/test_registry.py",
+ "source_location": "L202",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_config_test_models_py",
- "target": "config_test_models_test_sftp_transport_rejects_empty_user"
+ "source": "tests_unit_plugins_test_registry_py",
+ "target": "plugins_test_registry_test_rejects_plugin_with_timeout_above_cap"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/config/test_models.py",
- "source_location": "L409",
+ "source_file": "tests/unit/plugins/test_registry.py",
+ "source_location": "L211",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_config_test_models_py",
- "target": "config_test_models_test_sftp_transport_rejects_empty_remote_path"
+ "source": "tests_unit_plugins_test_registry_py",
+ "target": "plugins_test_registry_test_rejects_plugin_with_memory_above_cap"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/config/test_models.py",
- "source_location": "L416",
+ "source_file": "tests/unit/plugins/test_registry.py",
+ "source_location": "L220",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_config_test_models_py",
- "target": "config_test_models_test_sftp_transport_rejects_out_of_range_port"
+ "source": "tests_unit_plugins_test_registry_py",
+ "target": "plugins_test_registry_test_rejects_supported_extensions_when_not_a_list_of_strings"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/config/test_models.py",
- "source_location": "L423",
+ "source_file": "tests/unit/plugins/test_registry.py",
+ "source_location": "L238",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_config_test_models_py",
- "target": "config_test_models_test_sftp_transport_rejects_wrong_type_tag"
+ "source": "tests_unit_plugins_test_registry_py",
+ "target": "plugins_test_registry_test_rejects_network_plugin_when_allow_network_false"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/config/test_models.py",
- "source_location": "L435",
+ "source_file": "tests/unit/plugins/test_registry.py",
+ "source_location": "L247",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_config_test_models_py",
- "target": "config_test_models_test_smb_transport_minimal"
+ "source": "tests_unit_plugins_test_registry_py",
+ "target": "plugins_test_registry_test_loads_network_plugin_when_allow_network_true"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/config/test_models.py",
- "source_location": "L443",
+ "source_file": "tests/unit/plugins/test_registry.py",
+ "source_location": "L263",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_config_test_models_py",
- "target": "config_test_models_test_smb_transport_accepts_optional_domain_and_subpath"
+ "source": "tests_unit_plugins_test_registry_py",
+ "target": "plugins_test_registry_test_lab_dir_wins_on_name_collision"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/config/test_models.py",
- "source_location": "L452",
+ "source_file": "tests/unit/plugins/test_registry.py",
+ "source_location": "L278",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_config_test_models_py",
- "target": "config_test_models_test_smb_transport_rejects_missing_share"
+ "source": "tests_unit_plugins_test_registry_py",
+ "target": "plugins_test_registry_test_bundled_only_when_no_lab_collision"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/config/test_models.py",
- "source_location": "L464",
+ "source_file": "tests/unit/plugins/test_registry.py",
+ "source_location": "L292",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_config_test_models_py",
- "target": "config_test_models_test_requires_keyring_password_true_for_sftp_and_smb"
+ "source": "tests_unit_plugins_test_registry_py",
+ "target": "plugins_test_registry_test_lab_only_plugins_are_loaded_too"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/config/test_models.py",
- "source_location": "L471",
+ "source_file": "tests/unit/plugins/test_registry.py",
+ "source_location": "L311",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_config_test_models_py",
- "target": "config_test_models_test_requires_keyring_password_false_for_none"
+ "source": "tests_unit_plugins_test_registry_py",
+ "target": "plugins_test_registry_test_reload_replaces_previous_state"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/config/test_models.py",
- "source_location": "L480",
+ "source_file": "tests/unit/plugins/test_registry.py",
+ "source_location": "L326",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_config_test_models_py",
- "target": "config_test_models_test_equipment_transport_discriminates_on_type_sftp"
+ "source": "tests_unit_plugins_test_registry_py",
+ "target": "plugins_test_registry_test_reload_returns_registry_report_dataclass"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/config/test_models.py",
- "source_location": "L485",
+ "source_file": "tests/unit/plugins/test_registry.py",
+ "source_location": "L340",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_config_test_models_py",
- "target": "config_test_models_test_equipment_transport_discriminates_on_type_smb"
+ "source": "tests_unit_plugins_test_registry_py",
+ "target": "plugins_test_registry_test_get_returns_none_for_unknown_plugin"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/config/test_models.py",
- "source_location": "L495",
+ "source_file": "tests/unit/plugins/test_registry.py",
+ "source_location": "L346",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_config_test_models_py",
- "target": "config_test_models_test_equipment_transport_rejects_unknown_type"
+ "source": "tests_unit_plugins_test_registry_py",
+ "target": "plugins_test_registry_test_list_all_returns_records_sorted_by_name"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/config/test_models.py",
- "source_location": "L507",
+ "source_file": "tests/unit/plugins/test_registry.py",
+ "source_location": "L357",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_config_test_models_py",
- "target": "config_test_models_test_orchestrator_staging_transport_smb_mount"
+ "source": "tests_unit_plugins_test_registry_py",
+ "target": "plugins_test_registry_test_list_all_returns_record_instances"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/config/test_models.py",
- "source_location": "L514",
+ "source_file": "tests/unit/plugins/test_registry.py",
+ "source_location": "L372",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_config_test_models_py",
- "target": "config_test_models_test_orchestrator_staging_transport_file_transfer"
+ "source": "tests_unit_plugins_test_registry_py",
+ "target": "plugins_test_registry_test_candidates_for_matches_by_extension"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/config/test_models.py",
- "source_location": "L521",
+ "source_file": "tests/unit/plugins/test_registry.py",
+ "source_location": "L392",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_config_test_models_py",
- "target": "config_test_models_test_orchestrator_staging_transport_rejects_unknown_type"
+ "source": "tests_unit_plugins_test_registry_py",
+ "target": "plugins_test_registry_test_candidates_for_excludes_plugins_with_zero_matches"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/config/test_models.py",
- "source_location": "L599",
+ "source_file": "tests/unit/plugins/test_registry.py",
+ "source_location": "L402",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_config_test_models_py",
- "target": "config_test_models_test_equipment_orchestrator_staging_transport_optional"
+ "source": "tests_unit_plugins_test_registry_py",
+ "target": "plugins_test_registry_test_candidates_for_returns_pluginplan_instances"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/config/test_models.py",
- "source_location": "L609",
+ "source_file": "tests/unit/plugins/test_registry.py",
+ "source_location": "L414",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_config_test_models_py",
- "target": "config_test_models_orch_staging_transport_dict"
+ "source": "tests_unit_plugins_test_registry_py",
+ "target": "plugins_test_registry_test_candidates_for_supports_multi_extension_plugin"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/config/test_models.py",
- "source_location": "L622",
+ "source_file": "tests/unit/plugins/test_registry.py",
+ "source_location": "L430",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_config_test_models_py",
- "target": "config_test_models_test_sync_mode_nas_requires_transport_block"
+ "source": "tests_unit_plugins_test_registry_py",
+ "target": "plugins_test_registry_test_registry_with_no_dirs_loads_nothing"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/config/test_models.py",
- "source_location": "L631",
+ "source_file": "tests/unit/plugins/test_registry.py",
+ "source_location": "L438",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_config_test_models_py",
- "target": "config_test_models_test_sync_mode_nas_forbids_orchestrator_staging_transport"
+ "source": "tests_unit_plugins_test_registry_py",
+ "target": "plugins_test_registry_test_registry_skips_files_in_root"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/config/test_models.py",
- "source_location": "L640",
+ "source_file": "tests/unit/plugins/test_registry.py",
+ "source_location": "L450",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_config_test_models_py",
- "target": "config_test_models_test_sync_mode_stage_requires_orchestrator_staging_transport"
+ "source": "tests_unit_plugins_test_registry_py",
+ "target": "plugins_test_registry_test_registry_handles_nonexistent_dir"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/config/test_models.py",
- "source_location": "L649",
+ "source_file": "tests/unit/plugins/test_registry.py",
+ "source_location": "L465",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_config_test_models_py",
- "target": "config_test_models_test_sync_mode_stage_forbids_transport_block"
+ "source": "tests_unit_plugins_test_registry_py",
+ "target": "plugins_test_registry_test_registry_accepts_isolation_at_cap_boundary"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/config/test_models.py",
- "source_location": "L659",
+ "source_file": "tests/unit/plugins/test_registry.py",
+ "source_location": "L473",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_config_test_models_py",
- "target": "config_test_models_test_sync_mode_stage_with_only_orchestrator_transport_is_valid"
+ "source": "tests_unit_plugins_test_registry_py",
+ "target": "plugins_test_registry_test_pluginplan_dataclass_shape"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/config/test_models.py",
- "source_location": "L536",
+ "source_file": "tests/unit/plugins/test_registry.py",
+ "source_location": "L484",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "config_test_models_test_equipment_id_regex_accepts_canonical_form",
- "target": "config_test_models_equipment_dict"
+ "source": "tests_unit_plugins_test_registry_py",
+ "target": "plugins_test_registry_test_pluginrecord_dataclass_shape"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "rationale_for",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/config/test_models.py",
- "source_location": "L542",
+ "source_file": "tests/unit/plugins/test_registry.py",
+ "source_location": "L1",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "config_test_models_test_equipment_id_rejects_lowercase",
- "target": "config_test_models_equipment_dict"
+ "source": "plugins_test_registry_rationale_1",
+ "target": "tests_unit_plugins_test_registry_py"
},
{
"relation": "calls",
"context": "call",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/config/test_models.py",
- "source_location": "L547",
+ "source_file": "tests/unit/plugins/test_registry.py",
+ "source_location": "L91",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "config_test_models_test_equipment_id_rejects_hyphen",
- "target": "config_test_models_equipment_dict"
+ "source": "plugins_test_registry_test_loads_a_valid_plugin",
+ "target": "plugins_test_registry_write_plugin"
},
{
"relation": "calls",
"context": "call",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/config/test_models.py",
- "source_location": "L552",
+ "source_file": "tests/unit/plugins/test_registry.py",
+ "source_location": "L108",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "config_test_models_test_equipment_id_rejects_leading_digit",
- "target": "config_test_models_equipment_dict"
+ "source": "plugins_test_registry_test_loaded_record_carries_isolation_block",
+ "target": "plugins_test_registry_write_plugin"
},
{
"relation": "calls",
"context": "call",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/config/test_models.py",
- "source_location": "L558",
+ "source_file": "tests/unit/plugins/test_registry.py",
+ "source_location": "L120",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "config_test_models_test_equipment_id_rejects_too_long",
- "target": "config_test_models_equipment_dict"
+ "source": "plugins_test_registry_test_required_and_optional_variables_round_trip",
+ "target": "plugins_test_registry_write_plugin"
},
{
"relation": "calls",
"context": "call",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/config/test_models.py",
- "source_location": "L563",
+ "source_file": "tests/unit/plugins/test_registry.py",
+ "source_location": "L166",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "config_test_models_test_equipment_id_accepts_max_length",
- "target": "config_test_models_equipment_dict"
+ "source": "plugins_test_registry_test_rejects_plugin_missing_required_field",
+ "target": "plugins_test_registry_write_plugin"
},
{
"relation": "calls",
"context": "call",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/config/test_models.py",
- "source_location": "L571",
+ "source_file": "tests/unit/plugins/test_registry.py",
+ "source_location": "L176",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "config_test_models_test_equipment_config_rejects_removed_completeness_fields",
- "target": "config_test_models_equipment_dict"
+ "source": "plugins_test_registry_test_rejects_plugin_with_unsupported_api_version",
+ "target": "plugins_test_registry_write_plugin"
},
{
"relation": "calls",
"context": "call",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/config/test_models.py",
- "source_location": "L579",
+ "source_file": "tests/unit/plugins/test_registry.py",
+ "source_location": "L204",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "config_test_models_test_equipment_label_must_be_non_empty",
- "target": "config_test_models_equipment_dict"
+ "source": "plugins_test_registry_test_rejects_plugin_with_timeout_above_cap",
+ "target": "plugins_test_registry_write_plugin"
},
{
"relation": "calls",
"context": "call",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/config/test_models.py",
- "source_location": "L586",
+ "source_file": "tests/unit/plugins/test_registry.py",
+ "source_location": "L213",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "config_test_models_test_equipment_local_root_must_be_non_empty",
- "target": "config_test_models_equipment_dict"
+ "source": "plugins_test_registry_test_rejects_plugin_with_memory_above_cap",
+ "target": "plugins_test_registry_write_plugin"
},
{
"relation": "calls",
"context": "call",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/config/test_models.py",
- "source_location": "L593",
+ "source_file": "tests/unit/plugins/test_registry.py",
+ "source_location": "L240",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "config_test_models_test_equipment_nas_root_must_be_non_empty",
- "target": "config_test_models_equipment_dict"
+ "source": "plugins_test_registry_test_rejects_network_plugin_when_allow_network_false",
+ "target": "plugins_test_registry_write_plugin"
},
{
"relation": "calls",
"context": "call",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/config/test_models.py",
- "source_location": "L419",
+ "source_file": "tests/unit/plugins/test_registry.py",
+ "source_location": "L249",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "config_test_models_test_equipment_rejects_removed_orchestrator_staging_transport",
- "target": "config_test_models_equipment_dict"
+ "source": "plugins_test_registry_test_loads_network_plugin_when_allow_network_true",
+ "target": "plugins_test_registry_write_plugin"
},
{
"relation": "calls",
"context": "call",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/config/test_models.py",
- "source_location": "L618",
+ "source_file": "tests/unit/plugins/test_registry.py",
+ "source_location": "L266",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "config_test_models_test_sync_mode_defaults_to_nas_when_absent",
- "target": "config_test_models_equipment_dict"
+ "source": "plugins_test_registry_test_lab_dir_wins_on_name_collision",
+ "target": "plugins_test_registry_write_plugin"
},
{
"relation": "calls",
"context": "call",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/config/test_models.py",
- "source_location": "L458",
+ "source_file": "tests/unit/plugins/test_registry.py",
+ "source_location": "L282",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "config_test_models_test_nas_mode_equipment_rejects_stray_transport_block",
- "target": "config_test_models_equipment_dict"
+ "source": "plugins_test_registry_test_bundled_only_when_no_lab_collision",
+ "target": "plugins_test_registry_write_plugin"
},
{
"relation": "calls",
"context": "call",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/config/test_models.py",
- "source_location": "L475",
+ "source_file": "tests/unit/plugins/test_registry.py",
+ "source_location": "L296",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "config_test_models_test_sync_mode_stage_needs_no_per_equipment_block",
- "target": "config_test_models_equipment_dict"
+ "source": "plugins_test_registry_test_lab_only_plugins_are_loaded_too",
+ "target": "plugins_test_registry_write_plugin"
},
{
"relation": "calls",
"context": "call",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/config/test_models.py",
- "source_location": "L482",
+ "source_file": "tests/unit/plugins/test_registry.py",
+ "source_location": "L313",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "config_test_models_test_sync_mode_stage_rejects_stray_transport_block",
- "target": "config_test_models_equipment_dict"
+ "source": "plugins_test_registry_test_reload_replaces_previous_state",
+ "target": "plugins_test_registry_write_plugin"
},
{
"relation": "calls",
"context": "call",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/config/test_models.py",
- "source_location": "L671",
+ "source_file": "tests/unit/plugins/test_registry.py",
+ "source_location": "L328",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "config_test_models_test_sync_mode_serializes_to_string",
- "target": "config_test_models_equipment_dict"
+ "source": "plugins_test_registry_test_reload_returns_registry_report_dataclass",
+ "target": "plugins_test_registry_write_plugin"
},
{
"relation": "calls",
"context": "call",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/config/test_models.py",
- "source_location": "L679",
+ "source_file": "tests/unit/plugins/test_registry.py",
+ "source_location": "L348",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "config_test_models_test_sync_mode_rejects_unknown_value",
- "target": "config_test_models_equipment_dict"
+ "source": "plugins_test_registry_test_list_all_returns_records_sorted_by_name",
+ "target": "plugins_test_registry_write_plugin"
},
{
"relation": "calls",
"context": "call",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/config/test_models.py",
- "source_location": "L687",
+ "source_file": "tests/unit/plugins/test_registry.py",
+ "source_location": "L359",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "config_test_models_test_sync_mode_stage_round_trip_via_dict",
- "target": "config_test_models_equipment_dict"
+ "source": "plugins_test_registry_test_list_all_returns_record_instances",
+ "target": "plugins_test_registry_write_plugin"
},
{
"relation": "calls",
"context": "call",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/config/test_models.py",
- "source_location": "L931",
+ "source_file": "tests/unit/plugins/test_registry.py",
+ "source_location": "L374",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "config_test_models_test_unique_equipment_ids_required",
- "target": "config_test_models_equipment_dict"
+ "source": "plugins_test_registry_test_candidates_for_matches_by_extension",
+ "target": "plugins_test_registry_write_plugin"
},
{
"relation": "calls",
"context": "call",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/config/test_models.py",
- "source_location": "L943",
+ "source_file": "tests/unit/plugins/test_registry.py",
+ "source_location": "L394",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "config_test_models_test_distinct_equipment_ids_accepted",
- "target": "config_test_models_equipment_dict"
+ "source": "plugins_test_registry_test_candidates_for_excludes_plugins_with_zero_matches",
+ "target": "plugins_test_registry_write_plugin"
},
{
"relation": "calls",
"context": "call",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/config/test_models.py",
- "source_location": "L1046",
+ "source_file": "tests/unit/plugins/test_registry.py",
+ "source_location": "L404",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "config_test_models_test_config_with_equipment_appended_seeds_from_none",
- "target": "config_test_models_equipment_dict"
+ "source": "plugins_test_registry_test_candidates_for_returns_pluginplan_instances",
+ "target": "plugins_test_registry_write_plugin"
},
{
"relation": "calls",
"context": "call",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/config/test_models.py",
- "source_location": "L1054",
+ "source_file": "tests/unit/plugins/test_registry.py",
+ "source_location": "L416",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "config_test_models_test_config_with_equipment_appended_preserves_existing_state",
- "target": "config_test_models_equipment_dict"
+ "source": "plugins_test_registry_test_candidates_for_supports_multi_extension_plugin",
+ "target": "plugins_test_registry_write_plugin"
},
{
"relation": "calls",
"context": "call",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/config/test_models.py",
- "source_location": "L1071",
+ "source_file": "tests/unit/plugins/test_registry.py",
+ "source_location": "L443",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "config_test_models_test_config_with_equipment_appended_rejects_duplicate_id",
- "target": "config_test_models_equipment_dict"
+ "source": "plugins_test_registry_test_registry_skips_files_in_root",
+ "target": "plugins_test_registry_write_plugin"
},
{
- "relation": "rationale_for",
+ "relation": "calls",
+ "context": "call",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/config/test_models.py",
- "source_location": "L50",
+ "source_file": "tests/unit/plugins/test_registry.py",
+ "source_location": "L467",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "config_test_models_rationale_50",
- "target": "config_test_models_equipment_dict"
+ "source": "plugins_test_registry_test_registry_accepts_isolation_at_cap_boundary",
+ "target": "plugins_test_registry_write_plugin"
},
{
"relation": "calls",
"context": "call",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/config/test_models.py",
- "source_location": "L80",
+ "source_file": "tests/unit/plugins/test_registry.py",
+ "source_location": "L476",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "config_test_models_equipment_dict",
- "target": "config_test_models_sftp_transport_dict"
+ "source": "plugins_test_registry_test_pluginplan_dataclass_shape",
+ "target": "plugins_test_registry_write_plugin"
},
{
"relation": "calls",
"context": "call",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/config/test_models.py",
- "source_location": "L481",
+ "source_file": "tests/unit/plugins/test_registry.py",
+ "source_location": "L486",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "config_test_models_test_equipment_transport_discriminates_on_type_sftp",
- "target": "config_test_models_equipment_dict"
+ "source": "plugins_test_registry_test_pluginrecord_dataclass_shape",
+ "target": "plugins_test_registry_write_plugin"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "rationale_for",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/config/test_models.py",
- "source_location": "L487",
+ "source_file": "tests/unit/plugins/test_registry.py",
+ "source_location": "L50",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "config_test_models_test_equipment_transport_discriminates_on_type_smb",
- "target": "config_test_models_equipment_dict"
+ "source": "plugins_test_registry_rationale_50",
+ "target": "plugins_test_registry_write_plugin"
},
{
"relation": "calls",
"context": "call",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/config/test_models.py",
- "source_location": "L496",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/plugins/test_registry.py",
+ "source_location": "L92",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "config_test_models_test_equipment_transport_rejects_unknown_type",
- "target": "config_test_models_equipment_dict"
+ "source": "plugins_test_registry_test_loads_a_valid_plugin",
+ "target": "plugins_registry_pluginregistry"
},
{
"relation": "calls",
"context": "call",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/config/test_models.py",
- "source_location": "L600",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/plugins/test_registry.py",
+ "source_location": "L109",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "config_test_models_test_equipment_orchestrator_staging_transport_optional",
- "target": "config_test_models_equipment_dict"
+ "source": "plugins_test_registry_test_loaded_record_carries_isolation_block",
+ "target": "plugins_registry_pluginregistry"
},
{
"relation": "calls",
"context": "call",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/config/test_models.py",
- "source_location": "L623",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/plugins/test_registry.py",
+ "source_location": "L126",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "config_test_models_test_sync_mode_nas_requires_transport_block",
- "target": "config_test_models_equipment_dict"
+ "source": "plugins_test_registry_test_required_and_optional_variables_round_trip",
+ "target": "plugins_registry_pluginregistry"
},
{
"relation": "calls",
"context": "call",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/config/test_models.py",
- "source_location": "L632",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/plugins/test_registry.py",
+ "source_location": "L144",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "config_test_models_test_sync_mode_nas_forbids_orchestrator_staging_transport",
- "target": "config_test_models_equipment_dict"
+ "source": "plugins_test_registry_test_rejects_plugin_directory_without_manifest",
+ "target": "plugins_registry_pluginregistry"
},
{
"relation": "calls",
"context": "call",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/config/test_models.py",
- "source_location": "L641",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/plugins/test_registry.py",
+ "source_location": "L157",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "config_test_models_test_sync_mode_stage_requires_orchestrator_staging_transport",
- "target": "config_test_models_equipment_dict"
+ "source": "plugins_test_registry_test_rejects_plugin_with_malformed_yaml",
+ "target": "plugins_registry_pluginregistry"
},
{
"relation": "calls",
"context": "call",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/config/test_models.py",
- "source_location": "L650",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/plugins/test_registry.py",
+ "source_location": "L167",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "config_test_models_test_sync_mode_stage_forbids_transport_block",
- "target": "config_test_models_equipment_dict"
+ "source": "plugins_test_registry_test_rejects_plugin_missing_required_field",
+ "target": "plugins_registry_pluginregistry"
},
{
"relation": "calls",
"context": "call",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/config/test_models.py",
- "source_location": "L660",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/plugins/test_registry.py",
+ "source_location": "L177",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "config_test_models_test_sync_mode_stage_with_only_orchestrator_transport_is_valid",
- "target": "config_test_models_equipment_dict"
+ "source": "plugins_test_registry_test_rejects_plugin_with_unsupported_api_version",
+ "target": "plugins_registry_pluginregistry"
},
{
- "relation": "rationale_for",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/config/test_models.py",
- "source_location": "L74",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/plugins/test_registry.py",
+ "source_location": "L196",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "config_test_models_rationale_74",
- "target": "config_test_models_equipment_dict"
+ "source": "plugins_test_registry_test_rejects_plugin_with_invalid_name",
+ "target": "plugins_registry_pluginregistry"
},
{
"relation": "calls",
"context": "call",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/config/test_models.py",
- "source_location": "L1018",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/plugins/test_registry.py",
+ "source_location": "L205",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "config_test_models_test_full_config_round_trip_via_dict",
- "target": "config_test_models_full_config_dict"
+ "source": "plugins_test_registry_test_rejects_plugin_with_timeout_above_cap",
+ "target": "plugins_registry_pluginregistry"
},
{
"relation": "calls",
"context": "call",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/config/test_models.py",
- "source_location": "L1031",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/plugins/test_registry.py",
+ "source_location": "L214",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "config_test_models_test_round_trip_preserves_bandwidth_alias_for_from",
- "target": "config_test_models_full_config_dict"
+ "source": "plugins_test_registry_test_rejects_plugin_with_memory_above_cap",
+ "target": "plugins_registry_pluginregistry"
},
{
- "relation": "rationale_for",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/config/test_models.py",
- "source_location": "L60",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/plugins/test_registry.py",
+ "source_location": "L228",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "config_test_models_rationale_60",
- "target": "config_test_models_full_config_dict"
+ "source": "plugins_test_registry_test_rejects_supported_extensions_when_not_a_list_of_strings",
+ "target": "plugins_registry_pluginregistry"
},
{
- "relation": "rationale_for",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/config/test_models.py",
- "source_location": "L85",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/plugins/test_registry.py",
+ "source_location": "L241",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "config_test_models_rationale_85",
- "target": "config_test_models_full_config_dict"
+ "source": "plugins_test_registry_test_rejects_network_plugin_when_allow_network_false",
+ "target": "plugins_registry_pluginregistry"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "tests/unit/config/test_models.py",
- "source_location": "L209",
+ "source_file": "tests/unit/plugins/test_registry.py",
+ "source_location": "L250",
"weight": 1.0,
- "source": "config_test_models_test_paths_config_defaults_are_empty_strings",
- "target": "config_models_pathsconfig"
+ "source": "plugins_test_registry_test_loads_network_plugin_when_allow_network_true",
+ "target": "plugins_registry_pluginregistry"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "tests/unit/config/test_models.py",
- "source_location": "L217",
+ "source_file": "tests/unit/plugins/test_registry.py",
+ "source_location": "L269",
"weight": 1.0,
- "source": "config_test_models_test_paths_config_rejects_unknown_keys",
- "target": "config_models_pathsconfig"
+ "source": "plugins_test_registry_test_lab_dir_wins_on_name_collision",
+ "target": "plugins_registry_pluginregistry"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "tests/unit/config/test_models.py",
- "source_location": "L226",
+ "source_file": "tests/unit/plugins/test_registry.py",
+ "source_location": "L284",
"weight": 1.0,
- "source": "config_test_models_test_lims_config_defaults",
- "target": "config_models_limsconfig"
+ "source": "plugins_test_registry_test_bundled_only_when_no_lab_collision",
+ "target": "plugins_registry_pluginregistry"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "tests/unit/config/test_models.py",
- "source_location": "L235",
+ "source_file": "tests/unit/plugins/test_registry.py",
+ "source_location": "L298",
"weight": 1.0,
- "source": "config_test_models_test_lims_config_rejects_negative_cache_ttl_hours",
- "target": "config_models_limsconfig"
+ "source": "plugins_test_registry_test_lab_only_plugins_are_loaded_too",
+ "target": "plugins_registry_pluginregistry"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "tests/unit/config/test_models.py",
- "source_location": "L240",
+ "source_file": "tests/unit/plugins/test_registry.py",
+ "source_location": "L314",
"weight": 1.0,
- "source": "config_test_models_test_lims_config_zero_cache_ttl_is_allowed",
- "target": "config_models_limsconfig"
+ "source": "plugins_test_registry_test_reload_replaces_previous_state",
+ "target": "plugins_registry_pluginregistry"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "tests/unit/config/test_models.py",
- "source_location": "L250",
+ "source_file": "tests/unit/plugins/test_registry.py",
+ "source_location": "L329",
"weight": 1.0,
- "source": "config_test_models_test_readme_default_field_minimal_string_field",
- "target": "config_models_readmedefaultfield"
+ "source": "plugins_test_registry_test_reload_returns_registry_report_dataclass",
+ "target": "plugins_registry_pluginregistry"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "tests/unit/config/test_models.py",
- "source_location": "L258",
+ "source_file": "tests/unit/plugins/test_registry.py",
+ "source_location": "L341",
"weight": 1.0,
- "source": "config_test_models_test_readme_default_field_id_must_match_template_question_id_pattern",
- "target": "config_models_readmedefaultfield"
+ "source": "plugins_test_registry_test_get_returns_none_for_unknown_plugin",
+ "target": "plugins_registry_pluginregistry"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "tests/unit/config/test_models.py",
- "source_location": "L263",
+ "source_file": "tests/unit/plugins/test_registry.py",
+ "source_location": "L351",
"weight": 1.0,
- "source": "config_test_models_test_readme_default_field_id_rejects_leading_digit",
- "target": "config_models_readmedefaultfield"
+ "source": "plugins_test_registry_test_list_all_returns_records_sorted_by_name",
+ "target": "plugins_registry_pluginregistry"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "tests/unit/config/test_models.py",
- "source_location": "L268",
+ "source_file": "tests/unit/plugins/test_registry.py",
+ "source_location": "L360",
"weight": 1.0,
- "source": "config_test_models_test_readme_default_field_label_must_be_non_empty",
- "target": "config_models_readmedefaultfield"
+ "source": "plugins_test_registry_test_list_all_returns_record_instances",
+ "target": "plugins_registry_pluginregistry"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "tests/unit/config/test_models.py",
- "source_location": "L273",
+ "source_file": "tests/unit/plugins/test_registry.py",
+ "source_location": "L376",
"weight": 1.0,
- "source": "config_test_models_test_readme_default_field_rejects_unknown_type",
- "target": "config_models_readmedefaultfield"
+ "source": "plugins_test_registry_test_candidates_for_matches_by_extension",
+ "target": "plugins_registry_pluginregistry"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "tests/unit/config/test_models.py",
- "source_location": "L278",
+ "source_file": "tests/unit/plugins/test_registry.py",
+ "source_location": "L395",
"weight": 1.0,
- "source": "config_test_models_test_readme_choice_field_requires_options",
- "target": "config_models_readmedefaultfield"
+ "source": "plugins_test_registry_test_candidates_for_excludes_plugins_with_zero_matches",
+ "target": "plugins_registry_pluginregistry"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "tests/unit/config/test_models.py",
- "source_location": "L284",
+ "source_file": "tests/unit/plugins/test_registry.py",
+ "source_location": "L405",
"weight": 1.0,
- "source": "config_test_models_test_readme_choice_field_rejects_empty_options_list",
- "target": "config_models_readmedefaultfield"
+ "source": "plugins_test_registry_test_candidates_for_returns_pluginplan_instances",
+ "target": "plugins_registry_pluginregistry"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "tests/unit/config/test_models.py",
- "source_location": "L288",
+ "source_file": "tests/unit/plugins/test_registry.py",
+ "source_location": "L417",
"weight": 1.0,
- "source": "config_test_models_test_readme_choice_field_accepts_non_empty_options",
- "target": "config_models_readmedefaultfield"
+ "source": "plugins_test_registry_test_candidates_for_supports_multi_extension_plugin",
+ "target": "plugins_registry_pluginregistry"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "tests/unit/config/test_models.py",
- "source_location": "L294",
+ "source_file": "tests/unit/plugins/test_registry.py",
+ "source_location": "L431",
"weight": 1.0,
- "source": "config_test_models_test_readme_non_choice_field_does_not_require_options",
- "target": "config_models_readmedefaultfield"
+ "source": "plugins_test_registry_test_registry_with_no_dirs_loads_nothing",
+ "target": "plugins_registry_pluginregistry"
+ },
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/plugins/test_registry.py",
+ "source_location": "L439",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "plugins_test_registry_rationale_439",
+ "target": "plugins_test_registry_test_registry_skips_files_in_root"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "tests/unit/config/test_models.py",
- "source_location": "L305",
+ "source_file": "tests/unit/plugins/test_registry.py",
+ "source_location": "L445",
"weight": 1.0,
- "source": "config_test_models_test_readme_config_default_is_empty_list",
- "target": "config_models_readmeconfig"
+ "source": "plugins_test_registry_test_registry_skips_files_in_root",
+ "target": "plugins_registry_pluginregistry"
+ },
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/plugins/test_registry.py",
+ "source_location": "L451",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "plugins_test_registry_rationale_451",
+ "target": "plugins_test_registry_test_registry_handles_nonexistent_dir"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "tests/unit/config/test_models.py",
- "source_location": "L363",
+ "source_file": "tests/unit/plugins/test_registry.py",
+ "source_location": "L452",
"weight": 1.0,
- "source": "config_test_models_test_bandwidth_config_defaults",
- "target": "config_models_bandwidthconfig"
+ "source": "plugins_test_registry_test_registry_handles_nonexistent_dir",
+ "target": "plugins_registry_pluginregistry"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "tests/unit/config/test_models.py",
- "source_location": "L370",
+ "source_file": "tests/unit/plugins/test_registry.py",
+ "source_location": "L468",
"weight": 1.0,
- "source": "config_test_models_test_bandwidth_config_rejects_zero_upload_mbps",
- "target": "config_models_bandwidthconfig"
+ "source": "plugins_test_registry_test_registry_accepts_isolation_at_cap_boundary",
+ "target": "plugins_registry_pluginregistry"
+ },
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/plugins/test_registry.py",
+ "source_location": "L474",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "plugins_test_registry_rationale_474",
+ "target": "plugins_test_registry_test_pluginplan_dataclass_shape"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "tests/unit/config/test_models.py",
- "source_location": "L375",
+ "source_file": "tests/unit/plugins/test_registry.py",
+ "source_location": "L477",
"weight": 1.0,
- "source": "config_test_models_test_bandwidth_config_rejects_negative_upload_mbps",
- "target": "config_models_bandwidthconfig"
+ "source": "plugins_test_registry_test_pluginplan_dataclass_shape",
+ "target": "plugins_registry_pluginregistry"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "tests/unit/config/test_models.py",
- "source_location": "L379",
+ "source_file": "tests/unit/plugins/test_registry.py",
+ "source_location": "L487",
"weight": 1.0,
- "source": "config_test_models_test_bandwidth_config_accepts_positive_upload_mbps",
- "target": "config_models_bandwidthconfig"
+ "source": "plugins_test_registry_test_pluginrecord_dataclass_shape",
+ "target": "plugins_registry_pluginregistry"
},
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/config/test_models.py",
- "source_location": "L385",
+ "source_file": "tests/unit/plugins/__init__.py",
+ "source_location": "L1",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "config_test_models_rationale_385",
- "target": "config_test_models_test_equipment_config_rejects_removed_completeness_fields"
+ "source": "plugins_init_rationale_1",
+ "target": "tests_unit_plugins_init_py"
},
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/config/test_models.py",
- "source_location": "L568",
+ "source_file": "tests/integration/plugins/__init__.py",
+ "source_location": "L1",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "config_test_models_rationale_568",
- "target": "config_test_models_test_equipment_config_rejects_removed_completeness_fields"
+ "source": "plugins_init_rationale_1",
+ "target": "tests_integration_plugins_init_py"
},
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/config/test_models.py",
- "source_location": "L417",
+ "source_file": "tests/fixtures/plugins/__init__.py",
+ "source_location": "L1",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "config_test_models_rationale_417",
- "target": "config_test_models_test_equipment_rejects_removed_orchestrator_staging_transport"
+ "source": "plugins_init_rationale_1",
+ "target": "tests_fixtures_plugins_init_py"
},
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/config/test_models.py",
- "source_location": "L441",
+ "source_file": "src/exlab_wizard/plugins/__init__.py",
+ "source_location": "L1",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "config_test_models_rationale_441",
- "target": "config_test_models_test_nas_mode_equipment_needs_no_transport_block"
+ "source": "plugins_init_rationale_1",
+ "target": "src_exlab_wizard_plugins_init_py"
},
{
- "relation": "calls",
- "context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/config/test_models.py",
- "source_location": "L446",
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/plugins/test_base.py",
+ "source_location": "L34",
"weight": 1.0,
- "source": "config_test_models_test_nas_mode_equipment_needs_no_transport_block",
- "target": "config_models_equipmentconfig"
+ "confidence_score": 1.0,
+ "source": "tests_unit_plugins_test_base_py",
+ "target": "plugins_test_base_minimalplugin"
},
{
- "relation": "rationale_for",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/config/test_models.py",
- "source_location": "L457",
+ "source_file": "tests/unit/plugins/test_base.py",
+ "source_location": "L49",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "config_test_models_rationale_457",
- "target": "config_test_models_test_nas_mode_equipment_rejects_stray_transport_block"
+ "source": "tests_unit_plugins_test_base_py",
+ "target": "plugins_test_base_make_ctx"
},
{
- "relation": "rationale_for",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/config/test_models.py",
- "source_location": "L472",
+ "source_file": "tests/unit/plugins/test_base.py",
+ "source_location": "L71",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "config_test_models_rationale_472",
- "target": "config_test_models_test_sync_mode_stage_needs_no_per_equipment_block"
+ "source": "tests_unit_plugins_test_base_py",
+ "target": "plugins_test_base_test_plugin_abc_cannot_be_instantiated_directly"
},
{
- "relation": "rationale_for",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/config/test_models.py",
- "source_location": "L507",
+ "source_file": "tests/unit/plugins/test_base.py",
+ "source_location": "L76",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "config_test_models_rationale_507",
- "target": "config_test_models_test_sync_mode_stage_round_trip_via_dict"
+ "source": "tests_unit_plugins_test_base_py",
+ "target": "plugins_test_base_test_plugin_subclass_missing_can_handle_is_abstract"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/config/test_models.py",
- "source_location": "L690",
+ "source_file": "tests/unit/plugins/test_base.py",
+ "source_location": "L89",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "config_test_models_test_sync_mode_stage_round_trip_via_dict",
- "target": "config_test_models_orch_staging_transport_dict"
+ "source": "tests_unit_plugins_test_base_py",
+ "target": "plugins_test_base_test_plugin_subclass_missing_transform_is_abstract"
+ },
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/plugins/test_base.py",
+ "source_location": "L102",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "tests_unit_plugins_test_base_py",
+ "target": "plugins_test_base_test_minimal_plugin_can_be_instantiated"
+ },
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/plugins/test_base.py",
+ "source_location": "L113",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "tests_unit_plugins_test_base_py",
+ "target": "plugins_test_base_test_default_validate_variables_returns_empty_when_no_required"
+ },
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/plugins/test_base.py",
+ "source_location": "L118",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "tests_unit_plugins_test_base_py",
+ "target": "plugins_test_base_test_default_validate_variables_reports_missing_required"
+ },
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/plugins/test_base.py",
+ "source_location": "L128",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "tests_unit_plugins_test_base_py",
+ "target": "plugins_test_base_test_default_validate_variables_reports_empty_string_as_missing"
+ },
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/plugins/test_base.py",
+ "source_location": "L140",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "tests_unit_plugins_test_base_py",
+ "target": "plugins_test_base_test_default_validate_variables_lists_all_missing"
+ },
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/plugins/test_base.py",
+ "source_location": "L154",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "tests_unit_plugins_test_base_py",
+ "target": "plugins_test_base_test_pre_transform_all_default_is_noop"
+ },
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/plugins/test_base.py",
+ "source_location": "L160",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "tests_unit_plugins_test_base_py",
+ "target": "plugins_test_base_test_post_transform_all_default_is_noop"
+ },
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/plugins/test_base.py",
+ "source_location": "L166",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "tests_unit_plugins_test_base_py",
+ "target": "plugins_test_base_test_on_plugin_failure_default_is_noop"
+ },
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/plugins/test_base.py",
+ "source_location": "L173",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "tests_unit_plugins_test_base_py",
+ "target": "plugins_test_base_test_describe_changes_default_returns_single_modify_change"
+ },
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/plugins/test_base.py",
+ "source_location": "L189",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "tests_unit_plugins_test_base_py",
+ "target": "plugins_test_base_test_filechange_is_frozen_dataclass"
+ },
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/plugins/test_base.py",
+ "source_location": "L195",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "tests_unit_plugins_test_base_py",
+ "target": "plugins_test_base_test_filechange_default_detail_is_empty_dict"
+ },
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/plugins/test_base.py",
+ "source_location": "L200",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "tests_unit_plugins_test_base_py",
+ "target": "plugins_test_base_test_filechange_accepts_detail_payload"
+ },
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/plugins/test_base.py",
+ "source_location": "L215",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "tests_unit_plugins_test_base_py",
+ "target": "plugins_test_base_test_plugincontext_is_frozen_dataclass"
+ },
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/plugins/test_base.py",
+ "source_location": "L221",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "tests_unit_plugins_test_base_py",
+ "target": "plugins_test_base_test_plugincontext_carries_full_session_metadata"
+ },
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/plugins/test_base.py",
+ "source_location": "L244",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "tests_unit_plugins_test_base_py",
+ "target": "plugins_test_base_test_pluginerror_reexport_is_canonical_class"
+ },
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/plugins/test_base.py",
+ "source_location": "L249",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "tests_unit_plugins_test_base_py",
+ "target": "plugins_test_base_test_plugininputrequired_reexport_is_canonical_class"
+ },
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/plugins/test_base.py",
+ "source_location": "L253",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "tests_unit_plugins_test_base_py",
+ "target": "plugins_test_base_test_plugininputrequired_carries_fields_and_reason"
+ },
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/plugins/test_base.py",
+ "source_location": "L266",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "tests_unit_plugins_test_base_py",
+ "target": "plugins_test_base_test_plugin_api_version_defaults_to_one"
+ },
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/plugins/test_base.py",
+ "source_location": "L271",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "tests_unit_plugins_test_base_py",
+ "target": "plugins_test_base_test_plugin_required_variables_default_is_empty_list"
+ },
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/plugins/test_base.py",
+ "source_location": "L275",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "tests_unit_plugins_test_base_py",
+ "target": "plugins_test_base_test_plugin_optional_variables_default_is_empty_list"
},
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/config/test_models.py",
- "source_location": "L686",
+ "source_file": "tests/unit/plugins/test_base.py",
+ "source_location": "L1",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "config_test_models_rationale_686",
- "target": "config_test_models_test_sync_mode_stage_round_trip_via_dict"
+ "source": "plugins_test_base_rationale_1",
+ "target": "tests_unit_plugins_test_base_py"
},
{
- "relation": "calls",
- "context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/config/test_models.py",
- "source_location": "L705",
+ "relation": "inherits",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/plugins/test_base.py",
+ "source_location": "L34",
"weight": 1.0,
- "source": "config_test_models_test_nas_cleanup_defaults",
- "target": "config_models_nascleanupconfig"
+ "confidence_score": 1.0,
+ "source": "plugins_test_base_minimalplugin",
+ "target": "plugin"
+ },
+ {
+ "relation": "method",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/plugins/test_base.py",
+ "source_location": "L42",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "plugins_test_base_minimalplugin",
+ "target": "plugins_test_base_minimalplugin_can_handle"
+ },
+ {
+ "relation": "method",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/plugins/test_base.py",
+ "source_location": "L45",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "plugins_test_base_minimalplugin",
+ "target": "plugins_test_base_minimalplugin_transform"
},
{
"relation": "calls",
"context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/config/test_models.py",
- "source_location": "L714",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/plugins/test_base.py",
+ "source_location": "L104",
"weight": 1.0,
- "source": "config_test_models_test_nas_cleanup_min_verify_passes_at_least_one",
- "target": "config_models_nascleanupconfig"
+ "confidence_score": 1.0,
+ "source": "plugins_test_base_test_minimal_plugin_can_be_instantiated",
+ "target": "plugins_test_base_minimalplugin"
},
{
"relation": "calls",
"context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/config/test_models.py",
- "source_location": "L719",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/plugins/test_base.py",
+ "source_location": "L114",
"weight": 1.0,
- "source": "config_test_models_test_nas_cleanup_min_age_hours_non_negative",
- "target": "config_models_nascleanupconfig"
+ "confidence_score": 1.0,
+ "source": "plugins_test_base_test_default_validate_variables_returns_empty_when_no_required",
+ "target": "plugins_test_base_minimalplugin"
},
{
"relation": "calls",
"context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/config/test_models.py",
- "source_location": "L728",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/plugins/test_base.py",
+ "source_location": "L155",
"weight": 1.0,
- "source": "config_test_models_test_logging_level_normalized_to_uppercase",
- "target": "config_models_loggingconfig"
+ "confidence_score": 1.0,
+ "source": "plugins_test_base_test_pre_transform_all_default_is_noop",
+ "target": "plugins_test_base_minimalplugin"
},
{
"relation": "calls",
"context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/config/test_models.py",
- "source_location": "L734",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/plugins/test_base.py",
+ "source_location": "L161",
"weight": 1.0,
- "source": "config_test_models_test_logging_level_rejects_unknown",
- "target": "config_models_loggingconfig"
+ "confidence_score": 1.0,
+ "source": "plugins_test_base_test_post_transform_all_default_is_noop",
+ "target": "plugins_test_base_minimalplugin"
},
{
"relation": "calls",
"context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/config/test_models.py",
- "source_location": "L739",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/plugins/test_base.py",
+ "source_location": "L167",
"weight": 1.0,
- "source": "config_test_models_test_logging_level_accepts_all_canonical_values",
- "target": "config_models_loggingconfig"
+ "confidence_score": 1.0,
+ "source": "plugins_test_base_test_on_plugin_failure_default_is_noop",
+ "target": "plugins_test_base_minimalplugin"
},
{
"relation": "calls",
"context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/config/test_models.py",
- "source_location": "L744",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/plugins/test_base.py",
+ "source_location": "L174",
"weight": 1.0,
- "source": "config_test_models_test_logging_level_strips_whitespace_and_normalizes",
- "target": "config_models_loggingconfig"
+ "confidence_score": 1.0,
+ "source": "plugins_test_base_test_describe_changes_default_returns_single_modify_change",
+ "target": "plugins_test_base_minimalplugin"
+ },
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/plugins/test_base.py",
+ "source_location": "L35",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "plugins_test_base_rationale_35",
+ "target": "plugins_test_base_minimalplugin"
+ },
+ {
+ "relation": "uses",
+ "confidence": "INFERRED",
+ "source_file": "tests/unit/plugins/test_base.py",
+ "source_location": "L18",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "plugins_test_base_minimalplugin",
+ "target": "exlab_wizard_errors_pluginerror"
+ },
+ {
+ "relation": "uses",
+ "confidence": "INFERRED",
+ "source_file": "tests/unit/plugins/test_base.py",
+ "source_location": "L19",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "plugins_test_base_minimalplugin",
+ "target": "exlab_wizard_errors_plugininputrequired"
+ },
+ {
+ "relation": "uses",
+ "confidence": "INFERRED",
+ "source_file": "tests/unit/plugins/test_base.py",
+ "source_location": "L20",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "plugins_test_base_minimalplugin",
+ "target": "plugins_base_filechange"
+ },
+ {
+ "relation": "uses",
+ "confidence": "INFERRED",
+ "source_file": "tests/unit/plugins/test_base.py",
+ "source_location": "L20",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "plugins_test_base_minimalplugin",
+ "target": "plugins_base_plugin"
+ },
+ {
+ "relation": "uses",
+ "confidence": "INFERRED",
+ "source_file": "tests/unit/plugins/test_base.py",
+ "source_location": "L20",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "plugins_test_base_minimalplugin",
+ "target": "plugins_base_plugincontext"
+ },
+ {
+ "relation": "uses",
+ "confidence": "INFERRED",
+ "source_file": "tests/unit/plugins/test_base.py",
+ "source_location": "L27",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "plugins_test_base_minimalplugin",
+ "target": "plugins_logger_hostpluginlogger"
},
{
"relation": "calls",
"context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/config/test_models.py",
- "source_location": "L762",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/plugins/test_base.py",
+ "source_location": "L73",
"weight": 1.0,
- "source": "config_test_models_test_logging_level_rejects_non_string_directly",
- "target": "config_models_loggingconfig"
+ "confidence_score": 1.0,
+ "source": "plugins_test_base_test_plugin_abc_cannot_be_instantiated_directly",
+ "target": "plugin"
+ },
+ {
+ "relation": "inherits",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/fixtures/plugins/hello_plugin/plugin.py",
+ "source_location": "L20",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "hello_plugin_plugin_helloplugin",
+ "target": "plugin"
+ },
+ {
+ "relation": "inherits",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/fixtures/plugins/_failures/error_plugin/plugin.py",
+ "source_location": "L17",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "error_plugin_plugin_errorplugin",
+ "target": "plugin"
+ },
+ {
+ "relation": "inherits",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/fixtures/plugins/_failures/policy_violation_plugin/plugin.py",
+ "source_location": "L18",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "policy_violation_plugin_plugin_policyviolationplugin",
+ "target": "plugin"
+ },
+ {
+ "relation": "inherits",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/fixtures/plugins/_failures/input_required_plugin/plugin.py",
+ "source_location": "L20",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "input_required_plugin_plugin_inputrequiredplugin",
+ "target": "plugin"
},
{
- "relation": "calls",
- "context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/config/test_models.py",
- "source_location": "L768",
+ "relation": "inherits",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/fixtures/plugins/_failures/crash_plugin/plugin.py",
+ "source_location": "L18",
"weight": 1.0,
- "source": "config_test_models_test_logging_central_log_max_mb_at_least_one",
- "target": "config_models_loggingconfig"
+ "confidence_score": 1.0,
+ "source": "crash_plugin_plugin_crashplugin",
+ "target": "plugin"
},
{
- "relation": "calls",
- "context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/config/test_models.py",
- "source_location": "L773",
+ "relation": "inherits",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/fixtures/plugins/_failures/timeout_plugin/plugin.py",
+ "source_location": "L19",
"weight": 1.0,
- "source": "config_test_models_test_logging_central_log_keep_at_least_one",
- "target": "config_models_loggingconfig"
+ "confidence_score": 1.0,
+ "source": "timeout_plugin_plugin_timeoutplugin",
+ "target": "plugin"
},
{
"relation": "calls",
"context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/config/test_models.py",
- "source_location": "L782",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/plugins/test_base.py",
+ "source_location": "L156",
"weight": 1.0,
- "source": "config_test_models_test_operators_config_defaults_to_empty_allowlist",
- "target": "config_models_operatorsconfig"
+ "confidence_score": 1.0,
+ "source": "plugins_test_base_test_pre_transform_all_default_is_noop",
+ "target": "plugins_test_base_make_ctx"
},
{
"relation": "calls",
"context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/config/test_models.py",
- "source_location": "L787",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/plugins/test_base.py",
+ "source_location": "L162",
"weight": 1.0,
- "source": "config_test_models_test_operators_config_accepts_arbitrary_strings",
- "target": "config_models_operatorsconfig"
+ "confidence_score": 1.0,
+ "source": "plugins_test_base_test_post_transform_all_default_is_noop",
+ "target": "plugins_test_base_make_ctx"
},
{
"relation": "calls",
"context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/config/test_models.py",
- "source_location": "L797",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/plugins/test_base.py",
+ "source_location": "L168",
"weight": 1.0,
- "source": "config_test_models_test_validator_config_defaults",
- "target": "config_models_validatorconfig"
+ "confidence_score": 1.0,
+ "source": "plugins_test_base_test_on_plugin_failure_default_is_noop",
+ "target": "plugins_test_base_make_ctx"
},
{
"relation": "calls",
"context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/config/test_models.py",
- "source_location": "L805",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/plugins/test_base.py",
+ "source_location": "L175",
"weight": 1.0,
- "source": "config_test_models_test_validator_content_scan_max_mib_at_least_one",
- "target": "config_models_validatorconfig"
+ "confidence_score": 1.0,
+ "source": "plugins_test_base_test_describe_changes_default_returns_single_modify_change",
+ "target": "plugins_test_base_make_ctx"
},
{
"relation": "calls",
"context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/config/test_models.py",
- "source_location": "L810",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/plugins/test_base.py",
+ "source_location": "L216",
"weight": 1.0,
- "source": "config_test_models_test_validator_extensions_must_start_with_dot",
- "target": "config_models_validatorconfig"
+ "confidence_score": 1.0,
+ "source": "plugins_test_base_test_plugincontext_is_frozen_dataclass",
+ "target": "plugins_test_base_make_ctx"
},
{
"relation": "calls",
"context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/config/test_models.py",
- "source_location": "L815",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/plugins/test_base.py",
+ "source_location": "L222",
"weight": 1.0,
- "source": "config_test_models_test_validator_extensions_rejects_dotless_among_others",
- "target": "config_models_validatorconfig"
+ "confidence_score": 1.0,
+ "source": "plugins_test_base_test_plugincontext_carries_full_session_metadata",
+ "target": "plugins_test_base_make_ctx"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "tests/unit/config/test_models.py",
- "source_location": "L824",
+ "source_file": "tests/unit/plugins/test_base.py",
+ "source_location": "L60",
"weight": 1.0,
- "source": "config_test_models_test_plugins_config_default_allow_network_false",
- "target": "config_models_pluginsconfig"
+ "source": "plugins_test_base_make_ctx",
+ "target": "plugins_logger_hostpluginlogger"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "tests/unit/config/test_models.py",
- "source_location": "L834",
+ "source_file": "tests/unit/plugins/test_base.py",
+ "source_location": "L63",
"weight": 1.0,
- "source": "config_test_models_test_sync_config_defaults",
- "target": "config_models_syncconfig"
+ "source": "plugins_test_base_make_ctx",
+ "target": "plugins_base_plugincontext"
},
{
- "relation": "calls",
- "context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/config/test_models.py",
- "source_location": "L844",
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/plugins/test_base.py",
+ "source_location": "L103",
"weight": 1.0,
- "source": "config_test_models_test_sync_config_retry_attempts_non_negative",
- "target": "config_models_syncconfig"
+ "confidence_score": 1.0,
+ "source": "plugins_test_base_rationale_103",
+ "target": "plugins_test_base_test_minimal_plugin_can_be_instantiated"
},
{
- "relation": "calls",
- "context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/config/test_models.py",
- "source_location": "L849",
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/plugins/test_base.py",
+ "source_location": "L129",
"weight": 1.0,
- "source": "config_test_models_test_sync_config_quiescence_minutes_at_least_one",
- "target": "config_models_syncconfig"
+ "confidence_score": 1.0,
+ "source": "plugins_test_base_rationale_129",
+ "target": "plugins_test_base_test_default_validate_variables_reports_empty_string_as_missing"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "tests/unit/config/test_models.py",
- "source_location": "L854",
+ "source_file": "tests/unit/plugins/test_base.py",
+ "source_location": "L190",
"weight": 1.0,
- "source": "config_test_models_test_sync_config_poll_interval_seconds_at_least_one",
- "target": "config_models_syncconfig"
+ "source": "plugins_test_base_test_filechange_is_frozen_dataclass",
+ "target": "plugins_base_filechange"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "tests/unit/config/test_models.py",
- "source_location": "L858",
+ "source_file": "tests/unit/plugins/test_base.py",
+ "source_location": "L196",
"weight": 1.0,
- "source": "config_test_models_test_sync_config_accepts_custom_quiescence_settings",
- "target": "config_models_syncconfig"
+ "source": "plugins_test_base_test_filechange_default_detail_is_empty_dict",
+ "target": "plugins_base_filechange"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "tests/unit/config/test_models.py",
- "source_location": "L870",
+ "source_file": "tests/unit/plugins/test_base.py",
+ "source_location": "L201",
"weight": 1.0,
- "source": "config_test_models_test_sync_config_ignore_globs_default_is_independent_per_instance",
- "target": "config_models_syncconfig"
+ "source": "plugins_test_base_test_filechange_accepts_detail_payload",
+ "target": "plugins_base_filechange"
},
{
- "relation": "calls",
- "context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/config/test_models.py",
- "source_location": "L882",
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/plugins/test_base.py",
+ "source_location": "L245",
"weight": 1.0,
- "source": "config_test_models_test_orchestrator_staging_cleanup_defaults",
- "target": "config_models_orchestratorstagingcleanup"
+ "confidence_score": 1.0,
+ "source": "plugins_test_base_rationale_245",
+ "target": "plugins_test_base_test_pluginerror_reexport_is_canonical_class"
},
{
- "relation": "calls",
- "context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/config/test_models.py",
- "source_location": "L890",
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/plugins/test_base.py",
+ "source_location": "L254",
"weight": 1.0,
- "source": "config_test_models_test_orchestrator_staging_cleanup_scheduled_requires_positive_hours",
- "target": "config_models_orchestratorstagingcleanup"
+ "confidence_score": 1.0,
+ "source": "plugins_test_base_rationale_254",
+ "target": "plugins_test_base_test_plugininputrequired_carries_fields_and_reason"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "tests/unit/config/test_models.py",
- "source_location": "L895",
+ "source_file": "tests/unit/plugins/test_base.py",
+ "source_location": "L256",
"weight": 1.0,
- "source": "config_test_models_test_orchestrator_staging_cleanup_rejects_unknown_mode",
- "target": "config_models_orchestratorstagingcleanup"
+ "source": "plugins_test_base_test_plugininputrequired_carries_fields_and_reason",
+ "target": "exlab_wizard_errors_plugininputrequired"
},
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/config/test_models.py",
- "source_location": "L722",
+ "source_file": "tests/unit/plugins/test_base.py",
+ "source_location": "L267",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "config_test_models_rationale_722",
- "target": "config_test_models_test_orchestrator_config_defaults"
+ "source": "plugins_test_base_rationale_267",
+ "target": "plugins_test_base_test_plugin_api_version_defaults_to_one"
},
{
- "relation": "calls",
- "context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/config/test_models.py",
- "source_location": "L907",
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/plugins/test_logger.py",
+ "source_location": "L33",
"weight": 1.0,
- "source": "config_test_models_test_orchestrator_config_defaults",
- "target": "config_models_orchestratorconfig"
+ "confidence_score": 1.0,
+ "source": "tests_unit_plugins_test_logger_py",
+ "target": "plugins_test_logger_test_host_plugin_logger_forwards_info_to_stdlib_logger"
},
{
- "relation": "rationale_for",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/config/test_models.py",
- "source_location": "L904",
+ "source_file": "tests/unit/plugins/test_logger.py",
+ "source_location": "L44",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "config_test_models_rationale_904",
- "target": "config_test_models_test_orchestrator_config_defaults"
+ "source": "tests_unit_plugins_test_logger_py",
+ "target": "plugins_test_logger_test_host_plugin_logger_forwards_debug"
},
{
- "relation": "rationale_for",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/config/test_models.py",
- "source_location": "L734",
+ "source_file": "tests/unit/plugins/test_logger.py",
+ "source_location": "L51",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "config_test_models_rationale_734",
- "target": "config_test_models_test_orchestrator_config_staging_remote_validates_with_perf_defaults"
+ "source": "tests_unit_plugins_test_logger_py",
+ "target": "plugins_test_logger_test_host_plugin_logger_forwards_warning"
},
{
- "relation": "calls",
- "context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/config/test_models.py",
- "source_location": "L737",
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/plugins/test_logger.py",
+ "source_location": "L58",
"weight": 1.0,
- "source": "config_test_models_test_orchestrator_config_staging_remote_validates_with_perf_defaults",
- "target": "config_models_orchestratorconfig"
+ "confidence_score": 1.0,
+ "source": "tests_unit_plugins_test_logger_py",
+ "target": "plugins_test_logger_test_host_plugin_logger_forwards_error"
},
{
- "relation": "rationale_for",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/config/test_models.py",
- "source_location": "L745",
+ "source_file": "tests/unit/plugins/test_logger.py",
+ "source_location": "L65",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "config_test_models_rationale_745",
- "target": "config_test_models_test_stage_mode_equipment_validates_without_staging_block"
+ "source": "tests_unit_plugins_test_logger_py",
+ "target": "plugins_test_logger_test_host_plugin_logger_passes_structured_fields_via_extra"
},
{
- "relation": "calls",
- "context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/config/test_models.py",
- "source_location": "L747",
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/plugins/test_logger.py",
+ "source_location": "L77",
"weight": 1.0,
- "source": "config_test_models_test_stage_mode_equipment_validates_without_staging_block",
- "target": "config_models_equipmentconfig"
+ "confidence_score": 1.0,
+ "source": "tests_unit_plugins_test_logger_py",
+ "target": "plugins_test_logger_test_host_plugin_logger_uses_default_logger_name_when_unspecified"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/config/test_models.py",
- "source_location": "L946",
+ "source_file": "tests/unit/plugins/test_logger.py",
+ "source_location": "L94",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "config_test_models_test_distinct_equipment_ids_accepted",
- "target": "config_test_models_smb_transport_dict"
+ "source": "tests_unit_plugins_test_logger_py",
+ "target": "plugins_test_logger_test_worker_plugin_logger_emits_json_frame_to_stream"
},
{
- "relation": "rationale_for",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/config/test_models.py",
- "source_location": "L796",
+ "source_file": "tests/unit/plugins/test_logger.py",
+ "source_location": "L106",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "config_test_models_rationale_796",
- "target": "config_test_models_test_orchestrator_legacy_enabled_field_rejected"
+ "source": "tests_unit_plugins_test_logger_py",
+ "target": "plugins_test_logger_test_worker_plugin_logger_each_level_emits_correct_level_string"
},
{
- "relation": "rationale_for",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/config/test_models.py",
- "source_location": "L955",
+ "source_file": "tests/unit/plugins/test_logger.py",
+ "source_location": "L119",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "config_test_models_rationale_955",
- "target": "config_test_models_test_orchestrator_legacy_enabled_field_rejected"
+ "source": "tests_unit_plugins_test_logger_py",
+ "target": "plugins_test_logger_test_worker_plugin_logger_emits_one_frame_per_call"
},
{
- "relation": "rationale_for",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/config/test_models.py",
- "source_location": "L812",
+ "source_file": "tests/unit/plugins/test_logger.py",
+ "source_location": "L129",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "config_test_models_rationale_812",
- "target": "config_test_models_test_orchestrator_label_and_staging_root_load_independently"
+ "source": "tests_unit_plugins_test_logger_py",
+ "target": "plugins_test_logger_test_worker_plugin_logger_emits_empty_context_when_no_fields"
},
{
- "relation": "rationale_for",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/config/test_models.py",
- "source_location": "L971",
+ "source_file": "tests/unit/plugins/test_logger.py",
+ "source_location": "L137",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "config_test_models_rationale_971",
- "target": "config_test_models_test_orchestrator_label_and_staging_root_load_independently"
+ "source": "tests_unit_plugins_test_logger_py",
+ "target": "plugins_test_logger_test_worker_plugin_logger_default_stream_is_stderr"
},
{
- "relation": "rationale_for",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/config/test_models.py",
- "source_location": "L851",
+ "source_file": "tests/unit/plugins/test_logger.py",
+ "source_location": "L153",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "config_test_models_rationale_851",
- "target": "config_test_models_test_full_config_round_trip_via_dict"
+ "source": "tests_unit_plugins_test_logger_py",
+ "target": "plugins_test_logger_test_plugin_log_frame_fields_are_pinned"
},
{
- "relation": "rationale_for",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/config/test_models.py",
- "source_location": "L1010",
+ "source_file": "tests/unit/plugins/test_logger.py",
+ "source_location": "L160",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "config_test_models_rationale_1010",
- "target": "config_test_models_test_full_config_round_trip_via_dict"
+ "source": "tests_unit_plugins_test_logger_py",
+ "target": "plugins_test_logger_test_plugin_log_frame_default_context_is_empty_dict"
},
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/config/test_models.py",
- "source_location": "L886",
+ "source_file": "tests/unit/plugins/test_logger.py",
+ "source_location": "L1",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "config_test_models_rationale_886",
- "target": "config_test_models_test_config_with_equipment_appended_seeds_from_none"
+ "source": "plugins_test_logger_rationale_1",
+ "target": "tests_unit_plugins_test_logger_py"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "tests/unit/config/test_models.py",
- "source_location": "L1047",
+ "source_file": "tests/unit/plugins/test_logger.py",
+ "source_location": "L36",
"weight": 1.0,
- "source": "config_test_models_test_config_with_equipment_appended_seeds_from_none",
- "target": "config_models_config_with_equipment_appended"
+ "source": "plugins_test_logger_test_host_plugin_logger_forwards_info_to_stdlib_logger",
+ "target": "plugins_logger_hostpluginlogger"
},
{
- "relation": "rationale_for",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/config/test_models.py",
- "source_location": "L1045",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/plugins/test_logger.py",
+ "source_location": "L45",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "config_test_models_rationale_1045",
- "target": "config_test_models_test_config_with_equipment_appended_seeds_from_none"
+ "source": "plugins_test_logger_test_host_plugin_logger_forwards_debug",
+ "target": "plugins_logger_hostpluginlogger"
+ },
+ {
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/plugins/test_logger.py",
+ "source_location": "L52",
+ "weight": 1.0,
+ "source": "plugins_test_logger_test_host_plugin_logger_forwards_warning",
+ "target": "plugins_logger_hostpluginlogger"
+ },
+ {
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/plugins/test_logger.py",
+ "source_location": "L59",
+ "weight": 1.0,
+ "source": "plugins_test_logger_test_host_plugin_logger_forwards_error",
+ "target": "plugins_logger_hostpluginlogger"
},
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/config/test_models.py",
- "source_location": "L894",
+ "source_file": "tests/unit/plugins/test_logger.py",
+ "source_location": "L68",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "config_test_models_rationale_894",
- "target": "config_test_models_test_config_with_equipment_appended_preserves_existing_state"
+ "source": "plugins_test_logger_rationale_68",
+ "target": "plugins_test_logger_test_host_plugin_logger_passes_structured_fields_via_extra"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "tests/unit/config/test_models.py",
- "source_location": "L1055",
+ "source_file": "tests/unit/plugins/test_logger.py",
+ "source_location": "L69",
"weight": 1.0,
- "source": "config_test_models_test_config_with_equipment_appended_preserves_existing_state",
- "target": "config_models_loggingconfig"
+ "source": "plugins_test_logger_test_host_plugin_logger_passes_structured_fields_via_extra",
+ "target": "plugins_logger_hostpluginlogger"
+ },
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/plugins/test_logger.py",
+ "source_location": "L80",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "plugins_test_logger_rationale_80",
+ "target": "plugins_test_logger_test_host_plugin_logger_uses_default_logger_name_when_unspecified"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "tests/unit/config/test_models.py",
- "source_location": "L1062",
+ "source_file": "tests/unit/plugins/test_logger.py",
+ "source_location": "L81",
"weight": 1.0,
- "source": "config_test_models_test_config_with_equipment_appended_preserves_existing_state",
- "target": "config_models_config_with_equipment_appended"
+ "source": "plugins_test_logger_test_host_plugin_logger_uses_default_logger_name_when_unspecified",
+ "target": "plugins_logger_hostpluginlogger"
},
{
"relation": "calls",
"context": "call",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/config/test_models.py",
- "source_location": "L1059",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/plugins/test_logger.py",
+ "source_location": "L96",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "config_test_models_test_config_with_equipment_appended_preserves_existing_state",
- "target": "config_test_models_smb_transport_dict"
+ "source": "plugins_test_logger_test_worker_plugin_logger_emits_json_frame_to_stream",
+ "target": "plugins_logger_workerpluginlogger"
},
{
- "relation": "rationale_for",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/config/test_models.py",
- "source_location": "L1053",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/plugins/test_logger.py",
+ "source_location": "L108",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "config_test_models_rationale_1053",
- "target": "config_test_models_test_config_with_equipment_appended_preserves_existing_state"
+ "source": "plugins_test_logger_test_worker_plugin_logger_each_level_emits_correct_level_string",
+ "target": "plugins_logger_workerpluginlogger"
},
{
- "relation": "rationale_for",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/config/test_models.py",
- "source_location": "L906",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/plugins/test_logger.py",
+ "source_location": "L121",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "config_test_models_rationale_906",
- "target": "config_test_models_test_config_with_equipment_appended_rejects_duplicate_id"
+ "source": "plugins_test_logger_test_worker_plugin_logger_emits_one_frame_per_call",
+ "target": "plugins_logger_workerpluginlogger"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "tests/unit/config/test_models.py",
- "source_location": "L1075",
+ "source_file": "tests/unit/plugins/test_logger.py",
+ "source_location": "L131",
"weight": 1.0,
- "source": "config_test_models_test_config_with_equipment_appended_rejects_duplicate_id",
- "target": "config_models_config_with_equipment_appended"
+ "source": "plugins_test_logger_test_worker_plugin_logger_emits_empty_context_when_no_fields",
+ "target": "plugins_logger_workerpluginlogger"
},
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/config/test_models.py",
- "source_location": "L1070",
+ "source_file": "tests/unit/plugins/test_logger.py",
+ "source_location": "L138",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "config_test_models_rationale_1070",
- "target": "config_test_models_test_config_with_equipment_appended_rejects_duplicate_id"
+ "source": "plugins_test_logger_rationale_138",
+ "target": "plugins_test_logger_test_worker_plugin_logger_default_stream_is_stderr"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "tests/unit/config/test_models.py",
- "source_location": "L920",
+ "source_file": "tests/unit/plugins/test_logger.py",
+ "source_location": "L141",
"weight": 1.0,
- "source": "config_test_models_test_nas_config_defaults",
- "target": "config_models_nasconfig"
+ "source": "plugins_test_logger_test_worker_plugin_logger_default_stream_is_stderr",
+ "target": "plugins_logger_workerpluginlogger"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "tests/unit/config/test_models.py",
- "source_location": "L932",
+ "source_file": "tests/unit/plugins/test_logger.py",
+ "source_location": "L154",
"weight": 1.0,
- "source": "config_test_models_test_nas_config_rejects_nonpositive_perf",
- "target": "config_models_rcloneperf"
+ "source": "plugins_test_logger_test_plugin_log_frame_fields_are_pinned",
+ "target": "plugins_logger_pluginlogframe"
},
{
- "relation": "rationale_for",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/plugins/test_logger.py",
+ "source_location": "L161",
+ "weight": 1.0,
+ "source": "plugins_test_logger_test_plugin_log_frame_default_context_is_empty_dict",
+ "target": "plugins_logger_pluginlogframe"
+ },
+ {
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/config/test_models.py",
- "source_location": "L60",
+ "source_file": "tests/unit/constants/test_schema_versions.py",
+ "source_location": "L13",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "config_test_models_rationale_60",
- "target": "config_test_models_smb_transport_dict"
+ "source": "tests_unit_constants_test_schema_versions_py",
+ "target": "constants_test_schema_versions_test_creation_json_version_is_pinned"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/plugins/test_registry.py",
- "source_location": "L35",
+ "source_file": "tests/unit/constants/test_schema_versions.py",
+ "source_location": "L18",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_plugins_test_registry_py",
- "target": "plugins_test_registry_write_plugin"
+ "source": "tests_unit_constants_test_schema_versions_py",
+ "target": "constants_test_schema_versions_test_readme_fields_json_version_is_pinned"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/plugins/test_registry.py",
- "source_location": "L89",
+ "source_file": "tests/unit/constants/test_schema_versions.py",
+ "source_location": "L23",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_plugins_test_registry_py",
- "target": "plugins_test_registry_test_loads_a_valid_plugin"
+ "source": "tests_unit_constants_test_schema_versions_py",
+ "target": "constants_test_schema_versions_test_sync_state_json_version_is_pinned"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/plugins/test_registry.py",
- "source_location": "L106",
+ "source_file": "tests/unit/constants/test_schema_versions.py",
+ "source_location": "L28",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_plugins_test_registry_py",
- "target": "plugins_test_registry_test_loaded_record_carries_isolation_block"
+ "source": "tests_unit_constants_test_schema_versions_py",
+ "target": "constants_test_schema_versions_test_equipment_json_version_is_pinned"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/plugins/test_registry.py",
- "source_location": "L118",
+ "source_file": "tests/unit/constants/test_schema_versions.py",
+ "source_location": "L33",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_plugins_test_registry_py",
- "target": "plugins_test_registry_test_required_and_optional_variables_round_trip"
+ "source": "tests_unit_constants_test_schema_versions_py",
+ "target": "constants_test_schema_versions_test_test_runs_json_version_is_pinned"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/plugins/test_registry.py",
- "source_location": "L140",
+ "source_file": "tests/unit/constants/test_schema_versions.py",
+ "source_location": "L38",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_plugins_test_registry_py",
- "target": "plugins_test_registry_test_rejects_plugin_directory_without_manifest"
+ "source": "tests_unit_constants_test_schema_versions_py",
+ "target": "constants_test_schema_versions_test_offline_catalogue_version_is_pinned"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/plugins/test_registry.py",
- "source_location": "L152",
+ "source_file": "tests/unit/constants/test_schema_versions.py",
+ "source_location": "L43",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_plugins_test_registry_py",
- "target": "plugins_test_registry_test_rejects_plugin_with_malformed_yaml"
+ "source": "tests_unit_constants_test_schema_versions_py",
+ "target": "constants_test_schema_versions_test_readme_front_matter_schema_version_is_pinned"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/plugins/test_registry.py",
- "source_location": "L164",
+ "source_file": "tests/unit/constants/test_schema_versions.py",
+ "source_location": "L48",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_plugins_test_registry_py",
- "target": "plugins_test_registry_test_rejects_plugin_missing_required_field"
+ "source": "tests_unit_constants_test_schema_versions_py",
+ "target": "constants_test_schema_versions_test_all_schema_versions_are_strings"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/plugins/test_registry.py",
- "source_location": "L174",
+ "source_file": "tests/unit/constants/test_schema_versions.py",
+ "source_location": "L63",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_plugins_test_registry_py",
- "target": "plugins_test_registry_test_rejects_plugin_with_unsupported_api_version"
+ "source": "tests_unit_constants_test_schema_versions_py",
+ "target": "constants_test_schema_versions_test_schema_versions_re_exported_from_package"
+ },
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/constants/test_schema_versions.py",
+ "source_location": "L1",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "constants_test_schema_versions_rationale_1",
+ "target": "tests_unit_constants_test_schema_versions_py"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/plugins/test_registry.py",
- "source_location": "L184",
+ "source_file": "tests/unit/constants/test_patterns.py",
+ "source_location": "L19",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_plugins_test_registry_py",
- "target": "plugins_test_registry_test_rejects_plugin_with_invalid_name"
+ "source": "tests_unit_constants_test_patterns_py",
+ "target": "constants_test_patterns_test_equipment_id_regex_literal"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/plugins/test_registry.py",
- "source_location": "L202",
+ "source_file": "tests/unit/constants/test_patterns.py",
+ "source_location": "L23",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_plugins_test_registry_py",
- "target": "plugins_test_registry_test_rejects_plugin_with_timeout_above_cap"
+ "source": "tests_unit_constants_test_patterns_py",
+ "target": "constants_test_patterns_test_equipment_id_pattern_is_compiled"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/plugins/test_registry.py",
- "source_location": "L211",
+ "source_file": "tests/unit/constants/test_patterns.py",
+ "source_location": "L28",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_plugins_test_registry_py",
- "target": "plugins_test_registry_test_rejects_plugin_with_memory_above_cap"
+ "source": "tests_unit_constants_test_patterns_py",
+ "target": "constants_test_patterns_test_equipment_id_pattern_accepts_valid_ids"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/plugins/test_registry.py",
- "source_location": "L220",
+ "source_file": "tests/unit/constants/test_patterns.py",
+ "source_location": "L41",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_plugins_test_registry_py",
- "target": "plugins_test_registry_test_rejects_supported_extensions_when_not_a_list_of_strings"
+ "source": "tests_unit_constants_test_patterns_py",
+ "target": "constants_test_patterns_test_equipment_id_pattern_rejects_invalid_ids"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/plugins/test_registry.py",
- "source_location": "L238",
+ "source_file": "tests/unit/constants/test_patterns.py",
+ "source_location": "L56",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_plugins_test_registry_py",
- "target": "plugins_test_registry_test_rejects_network_plugin_when_allow_network_false"
+ "source": "tests_unit_constants_test_patterns_py",
+ "target": "constants_test_patterns_test_equipment_id_max_length"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/plugins/test_registry.py",
- "source_location": "L247",
+ "source_file": "tests/unit/constants/test_patterns.py",
+ "source_location": "L66",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_plugins_test_registry_py",
- "target": "plugins_test_registry_test_loads_network_plugin_when_allow_network_true"
+ "source": "tests_unit_constants_test_patterns_py",
+ "target": "constants_test_patterns_test_placeholder_angle_bracket_regex_literal"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/plugins/test_registry.py",
- "source_location": "L263",
+ "source_file": "tests/unit/constants/test_patterns.py",
+ "source_location": "L70",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_plugins_test_registry_py",
- "target": "plugins_test_registry_test_lab_dir_wins_on_name_collision"
+ "source": "tests_unit_constants_test_patterns_py",
+ "target": "constants_test_patterns_test_placeholder_angle_bracket_pattern_finds_tokens"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/plugins/test_registry.py",
- "source_location": "L278",
+ "source_file": "tests/unit/constants/test_patterns.py",
+ "source_location": "L76",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_plugins_test_registry_py",
- "target": "plugins_test_registry_test_bundled_only_when_no_lab_collision"
+ "source": "tests_unit_constants_test_patterns_py",
+ "target": "constants_test_patterns_test_placeholder_angle_bracket_pattern_ignores_non_tokens"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/plugins/test_registry.py",
- "source_location": "L292",
+ "source_file": "tests/unit/constants/test_patterns.py",
+ "source_location": "L83",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_plugins_test_registry_py",
- "target": "plugins_test_registry_test_lab_only_plugins_are_loaded_too"
+ "source": "tests_unit_constants_test_patterns_py",
+ "target": "constants_test_patterns_test_placeholder_jinja_var_regex_literal"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/plugins/test_registry.py",
- "source_location": "L311",
+ "source_file": "tests/unit/constants/test_patterns.py",
+ "source_location": "L87",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_plugins_test_registry_py",
- "target": "plugins_test_registry_test_reload_replaces_previous_state"
+ "source": "tests_unit_constants_test_patterns_py",
+ "target": "constants_test_patterns_test_placeholder_jinja_var_pattern_finds_markers"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/plugins/test_registry.py",
- "source_location": "L326",
+ "source_file": "tests/unit/constants/test_patterns.py",
+ "source_location": "L93",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_plugins_test_registry_py",
- "target": "plugins_test_registry_test_reload_returns_registry_report_dataclass"
+ "source": "tests_unit_constants_test_patterns_py",
+ "target": "constants_test_patterns_test_placeholder_jinja_var_pattern_ignores_plain_text"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/plugins/test_registry.py",
- "source_location": "L340",
+ "source_file": "tests/unit/constants/test_patterns.py",
+ "source_location": "L98",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_plugins_test_registry_py",
- "target": "plugins_test_registry_test_get_returns_none_for_unknown_plugin"
+ "source": "tests_unit_constants_test_patterns_py",
+ "target": "constants_test_patterns_test_placeholder_jinja_block_regex_literal"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/plugins/test_registry.py",
- "source_location": "L346",
+ "source_file": "tests/unit/constants/test_patterns.py",
+ "source_location": "L102",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_plugins_test_registry_py",
- "target": "plugins_test_registry_test_list_all_returns_records_sorted_by_name"
+ "source": "tests_unit_constants_test_patterns_py",
+ "target": "constants_test_patterns_test_placeholder_jinja_block_pattern_finds_blocks"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/plugins/test_registry.py",
- "source_location": "L357",
+ "source_file": "tests/unit/constants/test_patterns.py",
+ "source_location": "L108",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_plugins_test_registry_py",
- "target": "plugins_test_registry_test_list_all_returns_record_instances"
+ "source": "tests_unit_constants_test_patterns_py",
+ "target": "constants_test_patterns_test_placeholder_jinja_block_pattern_ignores_unrelated_content"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/plugins/test_registry.py",
- "source_location": "L372",
+ "source_file": "tests/unit/constants/test_patterns.py",
+ "source_location": "L117",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_plugins_test_registry_py",
- "target": "plugins_test_registry_test_candidates_for_matches_by_extension"
+ "source": "tests_unit_constants_test_patterns_py",
+ "target": "constants_test_patterns_test_project_short_id_regex_literal"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/plugins/test_registry.py",
- "source_location": "L392",
+ "source_file": "tests/unit/constants/test_patterns.py",
+ "source_location": "L121",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_plugins_test_registry_py",
- "target": "plugins_test_registry_test_candidates_for_excludes_plugins_with_zero_matches"
+ "source": "tests_unit_constants_test_patterns_py",
+ "target": "constants_test_patterns_test_project_short_id_pattern_accepts"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/plugins/test_registry.py",
- "source_location": "L402",
+ "source_file": "tests/unit/constants/test_patterns.py",
+ "source_location": "L126",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_plugins_test_registry_py",
- "target": "plugins_test_registry_test_candidates_for_returns_pluginplan_instances"
+ "source": "tests_unit_constants_test_patterns_py",
+ "target": "constants_test_patterns_test_project_short_id_pattern_rejects"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/plugins/test_registry.py",
- "source_location": "L414",
+ "source_file": "tests/unit/constants/test_patterns.py",
+ "source_location": "L137",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_plugins_test_registry_py",
- "target": "plugins_test_registry_test_candidates_for_supports_multi_extension_plugin"
+ "source": "tests_unit_constants_test_patterns_py",
+ "target": "constants_test_patterns_test_template_question_id_regex_literal"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/plugins/test_registry.py",
- "source_location": "L430",
+ "source_file": "tests/unit/constants/test_patterns.py",
+ "source_location": "L141",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_plugins_test_registry_py",
- "target": "plugins_test_registry_test_registry_with_no_dirs_loads_nothing"
+ "source": "tests_unit_constants_test_patterns_py",
+ "target": "constants_test_patterns_test_template_question_id_pattern_accepts"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/plugins/test_registry.py",
- "source_location": "L438",
+ "source_file": "tests/unit/constants/test_patterns.py",
+ "source_location": "L146",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_plugins_test_registry_py",
- "target": "plugins_test_registry_test_registry_skips_files_in_root"
+ "source": "tests_unit_constants_test_patterns_py",
+ "target": "constants_test_patterns_test_template_question_id_pattern_rejects"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/plugins/test_registry.py",
- "source_location": "L450",
+ "source_file": "tests/unit/constants/test_patterns.py",
+ "source_location": "L156",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_plugins_test_registry_py",
- "target": "plugins_test_registry_test_registry_handles_nonexistent_dir"
+ "source": "tests_unit_constants_test_patterns_py",
+ "target": "constants_test_patterns_test_plugin_name_regex_literal"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/plugins/test_registry.py",
- "source_location": "L465",
+ "source_file": "tests/unit/constants/test_patterns.py",
+ "source_location": "L160",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_plugins_test_registry_py",
- "target": "plugins_test_registry_test_registry_accepts_isolation_at_cap_boundary"
+ "source": "tests_unit_constants_test_patterns_py",
+ "target": "constants_test_patterns_test_plugin_name_pattern_accepts"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/plugins/test_registry.py",
- "source_location": "L473",
+ "source_file": "tests/unit/constants/test_patterns.py",
+ "source_location": "L165",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_plugins_test_registry_py",
- "target": "plugins_test_registry_test_pluginplan_dataclass_shape"
+ "source": "tests_unit_constants_test_patterns_py",
+ "target": "constants_test_patterns_test_plugin_name_pattern_rejects"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/plugins/test_registry.py",
- "source_location": "L484",
+ "source_file": "tests/unit/constants/test_patterns.py",
+ "source_location": "L175",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_plugins_test_registry_py",
- "target": "plugins_test_registry_test_pluginrecord_dataclass_shape"
+ "source": "tests_unit_constants_test_patterns_py",
+ "target": "constants_test_patterns_test_run_date_strftime_literal"
},
{
- "relation": "rationale_for",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/plugins/test_registry.py",
- "source_location": "L1",
+ "source_file": "tests/unit/constants/test_patterns.py",
+ "source_location": "L181",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "plugins_test_registry_rationale_1",
- "target": "tests_unit_plugins_test_registry_py"
+ "source": "tests_unit_constants_test_patterns_py",
+ "target": "constants_test_patterns_test_run_date_strftime_round_trip"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/plugins/test_registry.py",
- "source_location": "L91",
+ "source_file": "tests/unit/constants/test_patterns.py",
+ "source_location": "L193",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "plugins_test_registry_test_loads_a_valid_plugin",
- "target": "plugins_test_registry_write_plugin"
+ "source": "tests_unit_constants_test_patterns_py",
+ "target": "constants_test_patterns_test_run_dir_prefix_literal"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/plugins/test_registry.py",
- "source_location": "L108",
+ "source_file": "tests/unit/constants/test_patterns.py",
+ "source_location": "L197",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "plugins_test_registry_test_loaded_record_carries_isolation_block",
- "target": "plugins_test_registry_write_plugin"
+ "source": "tests_unit_constants_test_patterns_py",
+ "target": "constants_test_patterns_test_test_run_dir_prefix_literal"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/plugins/test_registry.py",
- "source_location": "L120",
+ "source_file": "tests/unit/constants/test_patterns.py",
+ "source_location": "L201",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "plugins_test_registry_test_required_and_optional_variables_round_trip",
- "target": "plugins_test_registry_write_plugin"
+ "source": "tests_unit_constants_test_patterns_py",
+ "target": "constants_test_patterns_test_test_runs_dir_name_literal"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/plugins/test_registry.py",
- "source_location": "L166",
+ "source_file": "tests/unit/constants/test_patterns.py",
+ "source_location": "L210",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "plugins_test_registry_test_rejects_plugin_missing_required_field",
- "target": "plugins_test_registry_write_plugin"
+ "source": "tests_unit_constants_test_patterns_py",
+ "target": "constants_test_patterns_test_windows_reserved_names_membership"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/plugins/test_registry.py",
- "source_location": "L176",
+ "source_file": "tests/unit/constants/test_patterns.py",
+ "source_location": "L220",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "plugins_test_registry_test_rejects_plugin_with_unsupported_api_version",
- "target": "plugins_test_registry_write_plugin"
+ "source": "tests_unit_constants_test_patterns_py",
+ "target": "constants_test_patterns_test_windows_reserved_names_is_frozenset"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/plugins/test_registry.py",
- "source_location": "L204",
+ "source_file": "tests/unit/constants/test_patterns.py",
+ "source_location": "L224",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "plugins_test_registry_test_rejects_plugin_with_timeout_above_cap",
- "target": "plugins_test_registry_write_plugin"
+ "source": "tests_unit_constants_test_patterns_py",
+ "target": "constants_test_patterns_test_windows_reserved_names_size"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/plugins/test_registry.py",
- "source_location": "L213",
+ "source_file": "tests/unit/constants/test_patterns.py",
+ "source_location": "L229",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "plugins_test_registry_test_rejects_plugin_with_memory_above_cap",
- "target": "plugins_test_registry_write_plugin"
+ "source": "tests_unit_constants_test_patterns_py",
+ "target": "constants_test_patterns_test_windows_reserved_names_are_uppercase"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/plugins/test_registry.py",
- "source_location": "L240",
+ "source_file": "tests/unit/constants/test_patterns.py",
+ "source_location": "L236",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "plugins_test_registry_test_rejects_network_plugin_when_allow_network_false",
- "target": "plugins_test_registry_write_plugin"
+ "source": "tests_unit_constants_test_patterns_py",
+ "target": "constants_test_patterns_test_windows_reserved_names_case_insensitive_check"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/plugins/test_registry.py",
- "source_location": "L249",
+ "source_file": "tests/unit/constants/test_patterns.py",
+ "source_location": "L248",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "plugins_test_registry_test_loads_network_plugin_when_allow_network_true",
- "target": "plugins_test_registry_write_plugin"
+ "source": "tests_unit_constants_test_patterns_py",
+ "target": "constants_test_patterns_test_windows_illegal_chars_literal"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/plugins/test_registry.py",
- "source_location": "L266",
+ "source_file": "tests/unit/constants/test_patterns.py",
+ "source_location": "L253",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "plugins_test_registry_test_lab_dir_wins_on_name_collision",
- "target": "plugins_test_registry_write_plugin"
+ "source": "tests_unit_constants_test_patterns_py",
+ "target": "constants_test_patterns_test_windows_illegal_chars_membership"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/plugins/test_registry.py",
- "source_location": "L282",
+ "source_file": "tests/unit/constants/test_patterns.py",
+ "source_location": "L258",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "plugins_test_registry_test_bundled_only_when_no_lab_collision",
- "target": "plugins_test_registry_write_plugin"
+ "source": "tests_unit_constants_test_patterns_py",
+ "target": "constants_test_patterns_test_windows_illegal_chars_excludes_safe"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/plugins/test_registry.py",
- "source_location": "L296",
+ "source_file": "tests/unit/constants/test_patterns.py",
+ "source_location": "L268",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "plugins_test_registry_test_lab_only_plugins_are_loaded_too",
- "target": "plugins_test_registry_write_plugin"
+ "source": "tests_unit_constants_test_patterns_py",
+ "target": "constants_test_patterns_test_patterns_re_exported_from_package"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "rationale_for",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/plugins/test_registry.py",
- "source_location": "L313",
+ "source_file": "tests/unit/constants/test_patterns.py",
+ "source_location": "L1",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "plugins_test_registry_test_reload_replaces_previous_state",
- "target": "plugins_test_registry_write_plugin"
+ "source": "constants_test_patterns_rationale_1",
+ "target": "tests_unit_constants_test_patterns_py"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "rationale_for",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/plugins/test_registry.py",
- "source_location": "L328",
+ "source_file": "tests/unit/constants/__init__.py",
+ "source_location": "L1",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "plugins_test_registry_test_reload_returns_registry_report_dataclass",
- "target": "plugins_test_registry_write_plugin"
+ "source": "constants_init_rationale_1",
+ "target": "tests_unit_constants_init_py"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "rationale_for",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/plugins/test_registry.py",
- "source_location": "L348",
+ "source_file": "src/exlab_wizard/constants/__init__.py",
+ "source_location": "L1",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "constants_init_rationale_1",
+ "target": "src_exlab_wizard_constants_init_py"
+ },
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/constants/test_enum_literal_alignment.py",
+ "source_location": "L67",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "tests_unit_constants_test_enum_literal_alignment_py",
+ "target": "constants_test_enum_literal_alignment_test_enum_values_match_expected_literal_set"
+ },
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/constants/test_enum_literal_alignment.py",
+ "source_location": "L1",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "constants_test_enum_literal_alignment_rationale_1",
+ "target": "tests_unit_constants_test_enum_literal_alignment_py"
+ },
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/constants/test_enums.py",
+ "source_location": "L15",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "tests_unit_constants_test_enums_py",
+ "target": "constants_test_enums_test_run_kind_values"
+ },
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/constants/test_enums.py",
+ "source_location": "L23",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "plugins_test_registry_test_list_all_returns_records_sorted_by_name",
- "target": "plugins_test_registry_write_plugin"
+ "source": "tests_unit_constants_test_enums_py",
+ "target": "constants_test_enums_test_run_kind_is_str"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/plugins/test_registry.py",
- "source_location": "L359",
+ "source_file": "tests/unit/constants/test_enums.py",
+ "source_location": "L30",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "plugins_test_registry_test_list_all_returns_record_instances",
- "target": "plugins_test_registry_write_plugin"
+ "source": "tests_unit_constants_test_enums_py",
+ "target": "constants_test_enums_test_sync_status_values"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/plugins/test_registry.py",
- "source_location": "L374",
+ "source_file": "tests/unit/constants/test_enums.py",
+ "source_location": "L47",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "plugins_test_registry_test_candidates_for_matches_by_extension",
- "target": "plugins_test_registry_write_plugin"
+ "source": "tests_unit_constants_test_enums_py",
+ "target": "constants_test_enums_test_tier_values"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/plugins/test_registry.py",
- "source_location": "L394",
+ "source_file": "tests/unit/constants/test_enums.py",
+ "source_location": "L55",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "plugins_test_registry_test_candidates_for_excludes_plugins_with_zero_matches",
- "target": "plugins_test_registry_write_plugin"
+ "source": "tests_unit_constants_test_enums_py",
+ "target": "constants_test_enums_test_problem_class_values"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/plugins/test_registry.py",
- "source_location": "L404",
+ "source_file": "tests/unit/constants/test_enums.py",
+ "source_location": "L80",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "plugins_test_registry_test_candidates_for_returns_pluginplan_instances",
- "target": "plugins_test_registry_write_plugin"
+ "source": "tests_unit_constants_test_enums_py",
+ "target": "constants_test_enums_test_finding_kind_values"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/plugins/test_registry.py",
- "source_location": "L416",
+ "source_file": "tests/unit/constants/test_enums.py",
+ "source_location": "L93",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "plugins_test_registry_test_candidates_for_supports_multi_extension_plugin",
- "target": "plugins_test_registry_write_plugin"
+ "source": "tests_unit_constants_test_enums_py",
+ "target": "constants_test_enums_test_template_type_values"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/plugins/test_registry.py",
- "source_location": "L443",
+ "source_file": "tests/unit/constants/test_enums.py",
+ "source_location": "L102",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "plugins_test_registry_test_registry_skips_files_in_root",
- "target": "plugins_test_registry_write_plugin"
+ "source": "tests_unit_constants_test_enums_py",
+ "target": "constants_test_enums_test_run_scope_values"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/plugins/test_registry.py",
- "source_location": "L467",
+ "source_file": "tests/unit/constants/test_enums.py",
+ "source_location": "L111",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "plugins_test_registry_test_registry_accepts_isolation_at_cap_boundary",
- "target": "plugins_test_registry_write_plugin"
+ "source": "tests_unit_constants_test_enums_py",
+ "target": "constants_test_enums_test_lims_project_status_values_pascal_case"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/plugins/test_registry.py",
- "source_location": "L476",
+ "source_file": "tests/unit/constants/test_enums.py",
+ "source_location": "L126",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "plugins_test_registry_test_pluginplan_dataclass_shape",
- "target": "plugins_test_registry_write_plugin"
+ "source": "tests_unit_constants_test_enums_py",
+ "target": "constants_test_enums_test_lims_project_source_values"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/plugins/test_registry.py",
- "source_location": "L486",
+ "source_file": "tests/unit/constants/test_enums.py",
+ "source_location": "L139",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "plugins_test_registry_test_pluginrecord_dataclass_shape",
- "target": "plugins_test_registry_write_plugin"
+ "source": "tests_unit_constants_test_enums_py",
+ "target": "constants_test_enums_test_ingest_state_enum_is_removed"
},
{
- "relation": "rationale_for",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/plugins/test_registry.py",
- "source_location": "L50",
+ "source_file": "tests/unit/constants/test_enums.py",
+ "source_location": "L145",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "plugins_test_registry_rationale_50",
- "target": "plugins_test_registry_write_plugin"
+ "source": "tests_unit_constants_test_enums_py",
+ "target": "constants_test_enums_test_run_sync_state_values"
},
{
- "relation": "calls",
- "context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/plugins/test_registry.py",
- "source_location": "L92",
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/constants/test_enums.py",
+ "source_location": "L151",
"weight": 1.0,
- "source": "plugins_test_registry_test_loads_a_valid_plugin",
- "target": "plugins_registry_pluginregistry"
+ "confidence_score": 1.0,
+ "source": "tests_unit_constants_test_enums_py",
+ "target": "constants_test_enums_test_setup_state_values"
},
{
- "relation": "calls",
- "context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/plugins/test_registry.py",
- "source_location": "L109",
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/constants/test_enums.py",
+ "source_location": "L173",
"weight": 1.0,
- "source": "plugins_test_registry_test_loaded_record_carries_isolation_block",
- "target": "plugins_registry_pluginregistry"
+ "confidence_score": 1.0,
+ "source": "tests_unit_constants_test_enums_py",
+ "target": "constants_test_enums_test_nas_remote_setup_members_exist"
},
{
- "relation": "calls",
- "context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/plugins/test_registry.py",
- "source_location": "L126",
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/constants/test_enums.py",
+ "source_location": "L180",
"weight": 1.0,
- "source": "plugins_test_registry_test_required_and_optional_variables_round_trip",
- "target": "plugins_registry_pluginregistry"
+ "confidence_score": 1.0,
+ "source": "tests_unit_constants_test_enums_py",
+ "target": "constants_test_enums_test_transport_type_enum_removed"
},
{
- "relation": "calls",
- "context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/plugins/test_registry.py",
- "source_location": "L144",
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/constants/test_enums.py",
+ "source_location": "L181",
"weight": 1.0,
- "source": "plugins_test_registry_test_rejects_plugin_directory_without_manifest",
- "target": "plugins_registry_pluginregistry"
+ "confidence_score": 1.0,
+ "source": "tests_unit_constants_test_enums_py",
+ "target": "constants_test_enums_test_completeness_signal_enum_removed"
},
{
- "relation": "calls",
- "context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/plugins/test_registry.py",
- "source_location": "L157",
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/constants/test_enums.py",
+ "source_location": "L186",
"weight": 1.0,
- "source": "plugins_test_registry_test_rejects_plugin_with_malformed_yaml",
- "target": "plugins_registry_pluginregistry"
+ "confidence_score": 1.0,
+ "source": "tests_unit_constants_test_enums_py",
+ "target": "constants_test_enums_test_staging_cleanup_mode_values"
},
{
- "relation": "calls",
- "context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/plugins/test_registry.py",
- "source_location": "L167",
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/constants/test_enums.py",
+ "source_location": "L194",
"weight": 1.0,
- "source": "plugins_test_registry_test_rejects_plugin_missing_required_field",
- "target": "plugins_registry_pluginregistry"
+ "confidence_score": 1.0,
+ "source": "tests_unit_constants_test_enums_py",
+ "target": "constants_test_enums_test_plugin_status_values"
},
{
- "relation": "calls",
- "context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/plugins/test_registry.py",
- "source_location": "L177",
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/constants/test_enums.py",
+ "source_location": "L211",
"weight": 1.0,
- "source": "plugins_test_registry_test_rejects_plugin_with_unsupported_api_version",
- "target": "plugins_registry_pluginregistry"
+ "confidence_score": 1.0,
+ "source": "tests_unit_constants_test_enums_py",
+ "target": "constants_test_enums_test_creation_level_values"
},
{
- "relation": "calls",
- "context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/plugins/test_registry.py",
- "source_location": "L196",
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/constants/test_enums.py",
+ "source_location": "L227",
"weight": 1.0,
- "source": "plugins_test_registry_test_rejects_plugin_with_invalid_name",
- "target": "plugins_registry_pluginregistry"
+ "confidence_score": 1.0,
+ "source": "tests_unit_constants_test_enums_py",
+ "target": "constants_test_enums_test_field_type_values"
},
{
- "relation": "calls",
- "context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/plugins/test_registry.py",
- "source_location": "L205",
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/constants/test_enums.py",
+ "source_location": "L238",
"weight": 1.0,
- "source": "plugins_test_registry_test_rejects_plugin_with_timeout_above_cap",
- "target": "plugins_registry_pluginregistry"
+ "confidence_score": 1.0,
+ "source": "tests_unit_constants_test_enums_py",
+ "target": "constants_test_enums_test_bandwidth_day_values"
},
{
- "relation": "calls",
- "context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/plugins/test_registry.py",
- "source_location": "L214",
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/constants/test_enums.py",
+ "source_location": "L246",
"weight": 1.0,
- "source": "plugins_test_registry_test_rejects_plugin_with_memory_above_cap",
- "target": "plugins_registry_pluginregistry"
+ "confidence_score": 1.0,
+ "source": "tests_unit_constants_test_enums_py",
+ "target": "constants_test_enums_test_session_kind_values"
},
{
- "relation": "calls",
- "context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/plugins/test_registry.py",
- "source_location": "L228",
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/constants/test_enums.py",
+ "source_location": "L254",
"weight": 1.0,
- "source": "plugins_test_registry_test_rejects_supported_extensions_when_not_a_list_of_strings",
- "target": "plugins_registry_pluginregistry"
+ "confidence_score": 1.0,
+ "source": "tests_unit_constants_test_enums_py",
+ "target": "constants_test_enums_test_next_action_values"
},
{
- "relation": "calls",
- "context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/plugins/test_registry.py",
- "source_location": "L241",
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/constants/test_enums.py",
+ "source_location": "L262",
"weight": 1.0,
- "source": "plugins_test_registry_test_rejects_network_plugin_when_allow_network_false",
- "target": "plugins_registry_pluginregistry"
+ "confidence_score": 1.0,
+ "source": "tests_unit_constants_test_enums_py",
+ "target": "constants_test_enums_test_audit_scope_kind_values"
},
{
- "relation": "calls",
- "context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/plugins/test_registry.py",
- "source_location": "L250",
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/constants/test_enums.py",
+ "source_location": "L271",
"weight": 1.0,
- "source": "plugins_test_registry_test_loads_network_plugin_when_allow_network_true",
- "target": "plugins_registry_pluginregistry"
+ "confidence_score": 1.0,
+ "source": "tests_unit_constants_test_enums_py",
+ "target": "constants_test_enums_test_directory_level_values"
},
{
- "relation": "calls",
- "context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/plugins/test_registry.py",
- "source_location": "L269",
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/constants/test_enums.py",
+ "source_location": "L279",
"weight": 1.0,
- "source": "plugins_test_registry_test_lab_dir_wins_on_name_collision",
- "target": "plugins_registry_pluginregistry"
+ "confidence_score": 1.0,
+ "source": "tests_unit_constants_test_enums_py",
+ "target": "constants_test_enums_test_platform_values"
},
{
- "relation": "calls",
- "context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/plugins/test_registry.py",
- "source_location": "L284",
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/constants/test_enums.py",
+ "source_location": "L287",
"weight": 1.0,
- "source": "plugins_test_registry_test_bundled_only_when_no_lab_collision",
- "target": "plugins_registry_pluginregistry"
+ "confidence_score": 1.0,
+ "source": "tests_unit_constants_test_enums_py",
+ "target": "constants_test_enums_test_setup_next_action_values"
},
{
- "relation": "calls",
- "context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/plugins/test_registry.py",
- "source_location": "L298",
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/constants/test_enums.py",
+ "source_location": "L295",
"weight": 1.0,
- "source": "plugins_test_registry_test_lab_only_plugins_are_loaded_too",
- "target": "plugins_registry_pluginregistry"
+ "confidence_score": 1.0,
+ "source": "tests_unit_constants_test_enums_py",
+ "target": "constants_test_enums_test_sync_handle_state_values"
},
{
- "relation": "calls",
- "context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/plugins/test_registry.py",
- "source_location": "L314",
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/constants/test_enums.py",
+ "source_location": "L303",
"weight": 1.0,
- "source": "plugins_test_registry_test_reload_replaces_previous_state",
- "target": "plugins_registry_pluginregistry"
+ "confidence_score": 1.0,
+ "source": "tests_unit_constants_test_enums_py",
+ "target": "constants_test_enums_test_plugin_source_root_values"
},
{
- "relation": "calls",
- "context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/plugins/test_registry.py",
- "source_location": "L329",
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/constants/test_enums.py",
+ "source_location": "L311",
"weight": 1.0,
- "source": "plugins_test_registry_test_reload_returns_registry_report_dataclass",
- "target": "plugins_registry_pluginregistry"
+ "confidence_score": 1.0,
+ "source": "tests_unit_constants_test_enums_py",
+ "target": "constants_test_enums_test_tree_project_status_values"
},
{
- "relation": "calls",
- "context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/plugins/test_registry.py",
- "source_location": "L341",
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/constants/test_enums.py",
+ "source_location": "L319",
"weight": 1.0,
- "source": "plugins_test_registry_test_get_returns_none_for_unknown_plugin",
- "target": "plugins_registry_pluginregistry"
+ "confidence_score": 1.0,
+ "source": "tests_unit_constants_test_enums_py",
+ "target": "constants_test_enums_test_enums_re_exported_from_package"
},
{
- "relation": "calls",
- "context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/plugins/test_registry.py",
- "source_location": "L351",
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/constants/test_enums.py",
+ "source_location": "L1",
"weight": 1.0,
- "source": "plugins_test_registry_test_list_all_returns_records_sorted_by_name",
- "target": "plugins_registry_pluginregistry"
+ "confidence_score": 1.0,
+ "source": "constants_test_enums_rationale_1",
+ "target": "tests_unit_constants_test_enums_py"
},
{
- "relation": "calls",
- "context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/plugins/test_registry.py",
- "source_location": "L360",
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/constants/test_enums.py",
+ "source_location": "L173",
"weight": 1.0,
- "source": "plugins_test_registry_test_list_all_returns_record_instances",
- "target": "plugins_registry_pluginregistry"
+ "confidence_score": 1.0,
+ "source": "tests_unit_constants_test_enums_py",
+ "target": "constants_test_enums_test_transport_type_values"
},
{
- "relation": "calls",
- "context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/plugins/test_registry.py",
- "source_location": "L376",
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/constants/test_enums.py",
+ "source_location": "L219",
"weight": 1.0,
- "source": "plugins_test_registry_test_candidates_for_matches_by_extension",
- "target": "plugins_registry_pluginregistry"
+ "confidence_score": 1.0,
+ "source": "tests_unit_constants_test_enums_py",
+ "target": "constants_test_enums_test_orchestrator_transport_type_values"
},
{
- "relation": "calls",
- "context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/plugins/test_registry.py",
- "source_location": "L395",
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/constants/test_keyring.py",
+ "source_location": "L13",
"weight": 1.0,
- "source": "plugins_test_registry_test_candidates_for_excludes_plugins_with_zero_matches",
- "target": "plugins_registry_pluginregistry"
+ "confidence_score": 1.0,
+ "source": "tests_unit_constants_test_keyring_py",
+ "target": "constants_test_keyring_test_keyring_service_literal"
},
{
- "relation": "calls",
- "context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/plugins/test_registry.py",
- "source_location": "L405",
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/constants/test_keyring.py",
+ "source_location": "L18",
"weight": 1.0,
- "source": "plugins_test_registry_test_candidates_for_returns_pluginplan_instances",
- "target": "plugins_registry_pluginregistry"
+ "confidence_score": 1.0,
+ "source": "tests_unit_constants_test_keyring_py",
+ "target": "constants_test_keyring_test_keyring_username_lims_literal"
},
{
- "relation": "calls",
- "context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/plugins/test_registry.py",
- "source_location": "L417",
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/constants/test_keyring.py",
+ "source_location": "L23",
"weight": 1.0,
- "source": "plugins_test_registry_test_candidates_for_supports_multi_extension_plugin",
- "target": "plugins_registry_pluginregistry"
+ "confidence_score": 1.0,
+ "source": "tests_unit_constants_test_keyring_py",
+ "target": "constants_test_keyring_test_nas_keyring_username_removed"
},
{
- "relation": "calls",
- "context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/plugins/test_registry.py",
- "source_location": "L431",
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/constants/test_keyring.py",
+ "source_location": "L46",
"weight": 1.0,
- "source": "plugins_test_registry_test_registry_with_no_dirs_loads_nothing",
- "target": "plugins_registry_pluginregistry"
+ "confidence_score": 1.0,
+ "source": "tests_unit_constants_test_keyring_py",
+ "target": "constants_test_keyring_test_keyring_re_exported_from_package"
},
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/plugins/test_registry.py",
- "source_location": "L439",
+ "source_file": "tests/unit/constants/test_keyring.py",
+ "source_location": "L1",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "plugins_test_registry_rationale_439",
- "target": "plugins_test_registry_test_registry_skips_files_in_root"
+ "source": "constants_test_keyring_rationale_1",
+ "target": "tests_unit_constants_test_keyring_py"
},
{
- "relation": "calls",
- "context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/plugins/test_registry.py",
- "source_location": "L445",
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/constants/test_keyring.py",
+ "source_location": "L23",
"weight": 1.0,
- "source": "plugins_test_registry_test_registry_skips_files_in_root",
- "target": "plugins_registry_pluginregistry"
+ "confidence_score": 1.0,
+ "source": "tests_unit_constants_test_keyring_py",
+ "target": "constants_test_keyring_test_keyring_username_nas_template_literal"
},
{
- "relation": "rationale_for",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/plugins/test_registry.py",
- "source_location": "L451",
+ "source_file": "tests/unit/constants/test_keyring.py",
+ "source_location": "L28",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "plugins_test_registry_rationale_451",
- "target": "plugins_test_registry_test_registry_handles_nonexistent_dir"
+ "source": "tests_unit_constants_test_keyring_py",
+ "target": "constants_test_keyring_test_keyring_nas_username_formats_template"
},
{
- "relation": "calls",
- "context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/plugins/test_registry.py",
- "source_location": "L452",
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/constants/test_keyring.py",
+ "source_location": "L33",
"weight": 1.0,
- "source": "plugins_test_registry_test_registry_handles_nonexistent_dir",
- "target": "plugins_registry_pluginregistry"
+ "confidence_score": 1.0,
+ "source": "tests_unit_constants_test_keyring_py",
+ "target": "constants_test_keyring_test_keyring_nas_username_handles_various_ids"
},
{
- "relation": "calls",
- "context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/plugins/test_registry.py",
- "source_location": "L468",
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/constants/test_limits.py",
+ "source_location": "L12",
"weight": 1.0,
- "source": "plugins_test_registry_test_registry_accepts_isolation_at_cap_boundary",
- "target": "plugins_registry_pluginregistry"
+ "confidence_score": 1.0,
+ "source": "tests_unit_constants_test_limits_py",
+ "target": "constants_test_limits_test_plugin_timeout_max_seconds"
},
{
- "relation": "rationale_for",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/plugins/test_registry.py",
- "source_location": "L474",
+ "source_file": "tests/unit/constants/test_limits.py",
+ "source_location": "L17",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "plugins_test_registry_rationale_474",
- "target": "plugins_test_registry_test_pluginplan_dataclass_shape"
+ "source": "tests_unit_constants_test_limits_py",
+ "target": "constants_test_limits_test_plugin_memory_max_mb"
},
{
- "relation": "calls",
- "context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/plugins/test_registry.py",
- "source_location": "L477",
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/constants/test_limits.py",
+ "source_location": "L22",
"weight": 1.0,
- "source": "plugins_test_registry_test_pluginplan_dataclass_shape",
- "target": "plugins_registry_pluginregistry"
+ "confidence_score": 1.0,
+ "source": "tests_unit_constants_test_limits_py",
+ "target": "constants_test_limits_test_plugin_validation_cpu_seconds"
},
{
- "relation": "calls",
- "context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/plugins/test_registry.py",
- "source_location": "L487",
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/constants/test_limits.py",
+ "source_location": "L27",
"weight": 1.0,
- "source": "plugins_test_registry_test_pluginrecord_dataclass_shape",
- "target": "plugins_registry_pluginregistry"
+ "confidence_score": 1.0,
+ "source": "tests_unit_constants_test_limits_py",
+ "target": "constants_test_limits_test_plugin_validation_memory_mb"
},
{
- "relation": "rationale_for",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/plugins/__init__.py",
- "source_location": "L1",
+ "source_file": "tests/unit/constants/test_limits.py",
+ "source_location": "L32",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "plugins_init_rationale_1",
- "target": "tests_unit_plugins_init_py"
+ "source": "tests_unit_constants_test_limits_py",
+ "target": "constants_test_limits_test_plugin_validation_wall_seconds"
},
{
- "relation": "rationale_for",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/integration/plugins/__init__.py",
- "source_location": "L1",
+ "source_file": "tests/unit/constants/test_limits.py",
+ "source_location": "L37",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "plugins_init_rationale_1",
- "target": "tests_integration_plugins_init_py"
+ "source": "tests_unit_constants_test_limits_py",
+ "target": "constants_test_limits_test_plugin_rlimit_nofile"
},
{
- "relation": "rationale_for",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/fixtures/plugins/__init__.py",
- "source_location": "L1",
+ "source_file": "tests/unit/constants/test_limits.py",
+ "source_location": "L42",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "plugins_init_rationale_1",
- "target": "tests_fixtures_plugins_init_py"
+ "source": "tests_unit_constants_test_limits_py",
+ "target": "constants_test_limits_test_plugin_ipc_frame_cap_bytes_is_one_mib"
},
{
- "relation": "rationale_for",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "src/exlab_wizard/plugins/__init__.py",
- "source_location": "L1",
+ "source_file": "tests/unit/constants/test_limits.py",
+ "source_location": "L48",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "plugins_init_rationale_1",
- "target": "src_exlab_wizard_plugins_init_py"
+ "source": "tests_unit_constants_test_limits_py",
+ "target": "constants_test_limits_test_plugin_api_version"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/plugins/test_base.py",
- "source_location": "L34",
+ "source_file": "tests/unit/constants/test_limits.py",
+ "source_location": "L54",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_plugins_test_base_py",
- "target": "plugins_test_base_minimalplugin"
+ "source": "tests_unit_constants_test_limits_py",
+ "target": "constants_test_limits_test_plugin_supported_api_versions"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/plugins/test_base.py",
- "source_location": "L49",
+ "source_file": "tests/unit/constants/test_limits.py",
+ "source_location": "L62",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_plugins_test_base_py",
- "target": "plugins_test_base_make_ctx"
+ "source": "tests_unit_constants_test_limits_py",
+ "target": "constants_test_limits_test_plugin_forbidden_path_prefixes"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/plugins/test_base.py",
- "source_location": "L71",
+ "source_file": "tests/unit/constants/test_limits.py",
+ "source_location": "L72",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_plugins_test_base_py",
- "target": "plugins_test_base_test_plugin_abc_cannot_be_instantiated_directly"
+ "source": "tests_unit_constants_test_limits_py",
+ "target": "constants_test_limits_test_label_max_length"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/plugins/test_base.py",
- "source_location": "L76",
+ "source_file": "tests/unit/constants/test_limits.py",
+ "source_location": "L77",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_plugins_test_base_py",
- "target": "plugins_test_base_test_plugin_subclass_missing_can_handle_is_abstract"
+ "source": "tests_unit_constants_test_limits_py",
+ "target": "constants_test_limits_test_objective_max_length"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/plugins/test_base.py",
- "source_location": "L89",
+ "source_file": "tests/unit/constants/test_limits.py",
+ "source_location": "L82",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_plugins_test_base_py",
- "target": "plugins_test_base_test_plugin_subclass_missing_transform_is_abstract"
+ "source": "tests_unit_constants_test_limits_py",
+ "target": "constants_test_limits_test_validator_binary_detect_bytes"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/plugins/test_base.py",
- "source_location": "L102",
+ "source_file": "tests/unit/constants/test_limits.py",
+ "source_location": "L87",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_plugins_test_base_py",
- "target": "plugins_test_base_test_minimal_plugin_can_be_instantiated"
+ "source": "tests_unit_constants_test_limits_py",
+ "target": "constants_test_limits_test_log_line_max_bytes"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/plugins/test_base.py",
- "source_location": "L113",
+ "source_file": "tests/unit/constants/test_limits.py",
+ "source_location": "L92",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_plugins_test_base_py",
- "target": "plugins_test_base_test_default_validate_variables_returns_empty_when_no_required"
+ "source": "tests_unit_constants_test_limits_py",
+ "target": "constants_test_limits_test_session_gc_after_seconds"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/plugins/test_base.py",
- "source_location": "L118",
+ "source_file": "tests/unit/constants/test_limits.py",
+ "source_location": "L97",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_plugins_test_base_py",
- "target": "plugins_test_base_test_default_validate_variables_reports_missing_required"
+ "source": "tests_unit_constants_test_limits_py",
+ "target": "constants_test_limits_test_audit_refresh_seconds"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/plugins/test_base.py",
- "source_location": "L128",
+ "source_file": "tests/unit/constants/test_limits.py",
+ "source_location": "L102",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_plugins_test_base_py",
- "target": "plugins_test_base_test_default_validate_variables_reports_empty_string_as_missing"
+ "source": "tests_unit_constants_test_limits_py",
+ "target": "constants_test_limits_test_quit_drain_timeout_seconds"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/plugins/test_base.py",
- "source_location": "L140",
+ "source_file": "tests/unit/constants/test_limits.py",
+ "source_location": "L107",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_plugins_test_base_py",
- "target": "plugins_test_base_test_default_validate_variables_lists_all_missing"
+ "source": "tests_unit_constants_test_limits_py",
+ "target": "constants_test_limits_test_sigterm_drain_timeout_seconds"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/plugins/test_base.py",
- "source_location": "L154",
+ "source_file": "tests/unit/constants/test_limits.py",
+ "source_location": "L112",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_plugins_test_base_py",
- "target": "plugins_test_base_test_pre_transform_all_default_is_noop"
+ "source": "tests_unit_constants_test_limits_py",
+ "target": "constants_test_limits_test_tray_status_refresh_seconds"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/plugins/test_base.py",
- "source_location": "L160",
+ "source_file": "tests/unit/constants/test_limits.py",
+ "source_location": "L117",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_plugins_test_base_py",
- "target": "plugins_test_base_test_post_transform_all_default_is_noop"
+ "source": "tests_unit_constants_test_limits_py",
+ "target": "constants_test_limits_test_worker_timeout_grace_seconds"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/plugins/test_base.py",
- "source_location": "L166",
+ "source_file": "tests/unit/constants/test_limits.py",
+ "source_location": "L122",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_plugins_test_base_py",
- "target": "plugins_test_base_test_on_plugin_failure_default_is_noop"
+ "source": "tests_unit_constants_test_limits_py",
+ "target": "constants_test_limits_test_window_default_size"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/plugins/test_base.py",
- "source_location": "L173",
+ "source_file": "tests/unit/constants/test_limits.py",
+ "source_location": "L128",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_plugins_test_base_py",
- "target": "plugins_test_base_test_describe_changes_default_returns_single_modify_change"
+ "source": "tests_unit_constants_test_limits_py",
+ "target": "constants_test_limits_test_notification_coalesce_seconds"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/plugins/test_base.py",
- "source_location": "L189",
+ "source_file": "tests/unit/constants/test_limits.py",
+ "source_location": "L133",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_plugins_test_base_py",
- "target": "plugins_test_base_test_filechange_is_frozen_dataclass"
+ "source": "tests_unit_constants_test_limits_py",
+ "target": "constants_test_limits_test_disk_space_preflight_mib"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/plugins/test_base.py",
- "source_location": "L195",
+ "source_file": "tests/unit/constants/test_limits.py",
+ "source_location": "L138",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_plugins_test_base_py",
- "target": "plugins_test_base_test_filechange_default_detail_is_empty_dict"
+ "source": "tests_unit_constants_test_limits_py",
+ "target": "constants_test_limits_test_limits_re_exported_from_package"
},
{
- "relation": "contains",
+ "relation": "rationale_for",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/plugins/test_base.py",
- "source_location": "L200",
+ "source_file": "tests/unit/constants/test_limits.py",
+ "source_location": "L1",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_plugins_test_base_py",
- "target": "plugins_test_base_test_filechange_accepts_detail_payload"
+ "source": "constants_test_limits_rationale_1",
+ "target": "tests_unit_constants_test_limits_py"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/plugins/test_base.py",
- "source_location": "L215",
+ "source_file": "tests/unit/constants/test_filenames.py",
+ "source_location": "L12",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_plugins_test_base_py",
- "target": "plugins_test_base_test_plugincontext_is_frozen_dataclass"
+ "source": "tests_unit_constants_test_filenames_py",
+ "target": "constants_test_filenames_test_cache_dir_name"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/plugins/test_base.py",
- "source_location": "L221",
+ "source_file": "tests/unit/constants/test_filenames.py",
+ "source_location": "L17",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_plugins_test_base_py",
- "target": "plugins_test_base_test_plugincontext_carries_full_session_metadata"
+ "source": "tests_unit_constants_test_filenames_py",
+ "target": "constants_test_filenames_test_creation_json_name"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/plugins/test_base.py",
- "source_location": "L244",
+ "source_file": "tests/unit/constants/test_filenames.py",
+ "source_location": "L22",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_plugins_test_base_py",
- "target": "plugins_test_base_test_pluginerror_reexport_is_canonical_class"
+ "source": "tests_unit_constants_test_filenames_py",
+ "target": "constants_test_filenames_test_readme_fields_json_name"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/plugins/test_base.py",
- "source_location": "L249",
+ "source_file": "tests/unit/constants/test_filenames.py",
+ "source_location": "L27",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_plugins_test_base_py",
- "target": "plugins_test_base_test_plugininputrequired_reexport_is_canonical_class"
+ "source": "tests_unit_constants_test_filenames_py",
+ "target": "constants_test_filenames_test_equipment_json_name"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/plugins/test_base.py",
- "source_location": "L253",
+ "source_file": "tests/unit/constants/test_filenames.py",
+ "source_location": "L32",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_plugins_test_base_py",
- "target": "plugins_test_base_test_plugininputrequired_carries_fields_and_reason"
+ "source": "tests_unit_constants_test_filenames_py",
+ "target": "constants_test_filenames_test_sync_state_filename"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/plugins/test_base.py",
- "source_location": "L266",
+ "source_file": "tests/unit/constants/test_filenames.py",
+ "source_location": "L37",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_plugins_test_base_py",
- "target": "plugins_test_base_test_plugin_api_version_defaults_to_one"
+ "source": "tests_unit_constants_test_filenames_py",
+ "target": "constants_test_filenames_test_test_runs_json_name"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/plugins/test_base.py",
- "source_location": "L271",
+ "source_file": "tests/unit/constants/test_filenames.py",
+ "source_location": "L42",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_plugins_test_base_py",
- "target": "plugins_test_base_test_plugin_required_variables_default_is_empty_list"
+ "source": "tests_unit_constants_test_filenames_py",
+ "target": "constants_test_filenames_test_answers_file_name"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/plugins/test_base.py",
- "source_location": "L275",
+ "source_file": "tests/unit/constants/test_filenames.py",
+ "source_location": "L47",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_plugins_test_base_py",
- "target": "plugins_test_base_test_plugin_optional_variables_default_is_empty_list"
+ "source": "tests_unit_constants_test_filenames_py",
+ "target": "constants_test_filenames_test_log_file_template"
},
{
- "relation": "rationale_for",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/plugins/test_base.py",
- "source_location": "L1",
+ "source_file": "tests/unit/constants/test_filenames.py",
+ "source_location": "L52",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "plugins_test_base_rationale_1",
- "target": "tests_unit_plugins_test_base_py"
+ "source": "tests_unit_constants_test_filenames_py",
+ "target": "constants_test_filenames_test_log_file_template_formats"
},
{
- "relation": "inherits",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/plugins/test_base.py",
- "source_location": "L34",
+ "source_file": "tests/unit/constants/test_filenames.py",
+ "source_location": "L58",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "plugins_test_base_minimalplugin",
- "target": "plugin"
+ "source": "tests_unit_constants_test_filenames_py",
+ "target": "constants_test_filenames_test_readme_file_name"
},
{
- "relation": "method",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/plugins/test_base.py",
- "source_location": "L42",
+ "source_file": "tests/unit/constants/test_filenames.py",
+ "source_location": "L63",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "plugins_test_base_minimalplugin",
- "target": "plugins_test_base_minimalplugin_can_handle"
+ "source": "tests_unit_constants_test_filenames_py",
+ "target": "constants_test_filenames_test_copier_manifest_name"
},
{
- "relation": "method",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/plugins/test_base.py",
- "source_location": "L45",
+ "source_file": "tests/unit/constants/test_filenames.py",
+ "source_location": "L68",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "plugins_test_base_minimalplugin",
- "target": "plugins_test_base_minimalplugin_transform"
+ "source": "tests_unit_constants_test_filenames_py",
+ "target": "constants_test_filenames_test_plugin_manifest_name"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/plugins/test_base.py",
- "source_location": "L104",
+ "source_file": "tests/unit/constants/test_filenames.py",
+ "source_location": "L73",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "plugins_test_base_test_minimal_plugin_can_be_instantiated",
- "target": "plugins_test_base_minimalplugin"
+ "source": "tests_unit_constants_test_filenames_py",
+ "target": "constants_test_filenames_test_server_state_file"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/plugins/test_base.py",
- "source_location": "L114",
+ "source_file": "tests/unit/constants/test_filenames.py",
+ "source_location": "L78",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "plugins_test_base_test_default_validate_variables_returns_empty_when_no_required",
- "target": "plugins_test_base_minimalplugin"
+ "source": "tests_unit_constants_test_filenames_py",
+ "target": "constants_test_filenames_test_lims_cache_db_name"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/plugins/test_base.py",
- "source_location": "L155",
+ "source_file": "tests/unit/constants/test_filenames.py",
+ "source_location": "L83",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "plugins_test_base_test_pre_transform_all_default_is_noop",
- "target": "plugins_test_base_minimalplugin"
+ "source": "tests_unit_constants_test_filenames_py",
+ "target": "constants_test_filenames_test_sync_queue_db_name"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/plugins/test_base.py",
- "source_location": "L161",
+ "source_file": "tests/unit/constants/test_filenames.py",
+ "source_location": "L88",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "plugins_test_base_test_post_transform_all_default_is_noop",
- "target": "plugins_test_base_minimalplugin"
+ "source": "tests_unit_constants_test_filenames_py",
+ "target": "constants_test_filenames_test_central_log_file"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/plugins/test_base.py",
- "source_location": "L167",
+ "source_file": "tests/unit/constants/test_filenames.py",
+ "source_location": "L93",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "plugins_test_base_test_on_plugin_failure_default_is_noop",
- "target": "plugins_test_base_minimalplugin"
+ "source": "tests_unit_constants_test_filenames_py",
+ "target": "constants_test_filenames_test_secrets_file"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/plugins/test_base.py",
- "source_location": "L174",
+ "source_file": "tests/unit/constants/test_filenames.py",
+ "source_location": "L98",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "plugins_test_base_test_describe_changes_default_returns_single_modify_change",
- "target": "plugins_test_base_minimalplugin"
+ "source": "tests_unit_constants_test_filenames_py",
+ "target": "constants_test_filenames_test_filenames_re_exported_from_package"
},
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/plugins/test_base.py",
- "source_location": "L35",
+ "source_file": "tests/unit/constants/test_filenames.py",
+ "source_location": "L1",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "plugins_test_base_rationale_35",
- "target": "plugins_test_base_minimalplugin"
- },
- {
- "relation": "uses",
- "confidence": "INFERRED",
- "source_file": "tests/unit/plugins/test_base.py",
- "source_location": "L18",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "plugins_test_base_minimalplugin",
- "target": "exlab_wizard_errors_pluginerror"
- },
- {
- "relation": "uses",
- "confidence": "INFERRED",
- "source_file": "tests/unit/plugins/test_base.py",
- "source_location": "L19",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "plugins_test_base_minimalplugin",
- "target": "exlab_wizard_errors_plugininputrequired"
- },
- {
- "relation": "uses",
- "confidence": "INFERRED",
- "source_file": "tests/unit/plugins/test_base.py",
- "source_location": "L20",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "plugins_test_base_minimalplugin",
- "target": "plugins_base_filechange"
- },
- {
- "relation": "uses",
- "confidence": "INFERRED",
- "source_file": "tests/unit/plugins/test_base.py",
- "source_location": "L20",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "plugins_test_base_minimalplugin",
- "target": "plugins_base_plugin"
- },
- {
- "relation": "uses",
- "confidence": "INFERRED",
- "source_file": "tests/unit/plugins/test_base.py",
- "source_location": "L20",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "plugins_test_base_minimalplugin",
- "target": "plugins_base_plugincontext"
- },
- {
- "relation": "uses",
- "confidence": "INFERRED",
- "source_file": "tests/unit/plugins/test_base.py",
- "source_location": "L27",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "plugins_test_base_minimalplugin",
- "target": "plugins_logger_hostpluginlogger"
+ "source": "constants_test_filenames_rationale_1",
+ "target": "tests_unit_constants_test_filenames_py"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/plugins/test_base.py",
- "source_location": "L73",
+ "source_file": "tests/unit/io/test_yaml_files.py",
+ "source_location": "L13",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "plugins_test_base_test_plugin_abc_cannot_be_instantiated_directly",
- "target": "plugin"
+ "source": "tests_unit_io_test_yaml_files_py",
+ "target": "io_test_yaml_files_test_load_yaml_manifest_returns_dict"
},
{
- "relation": "inherits",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/fixtures/plugins/hello_plugin/plugin.py",
- "source_location": "L20",
+ "source_file": "tests/unit/io/test_yaml_files.py",
+ "source_location": "L19",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "hello_plugin_plugin_helloplugin",
- "target": "plugin"
+ "source": "tests_unit_io_test_yaml_files_py",
+ "target": "io_test_yaml_files_test_load_yaml_manifest_empty_file_returns_empty_dict"
},
{
- "relation": "inherits",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/fixtures/plugins/_failures/error_plugin/plugin.py",
- "source_location": "L17",
+ "source_file": "tests/unit/io/test_yaml_files.py",
+ "source_location": "L25",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "error_plugin_plugin_errorplugin",
- "target": "plugin"
+ "source": "tests_unit_io_test_yaml_files_py",
+ "target": "io_test_yaml_files_test_load_yaml_manifest_non_dict_returns_empty_dict"
},
{
- "relation": "inherits",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/fixtures/plugins/_failures/policy_violation_plugin/plugin.py",
- "source_location": "L18",
+ "source_file": "tests/unit/io/test_yaml_files.py",
+ "source_location": "L32",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "policy_violation_plugin_plugin_policyviolationplugin",
- "target": "plugin"
+ "source": "tests_unit_io_test_yaml_files_py",
+ "target": "io_test_yaml_files_test_load_yaml_manifest_propagates_yaml_error"
},
{
- "relation": "inherits",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/fixtures/plugins/_failures/input_required_plugin/plugin.py",
- "source_location": "L20",
+ "source_file": "tests/unit/io/test_yaml_files.py",
+ "source_location": "L39",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "input_required_plugin_plugin_inputrequiredplugin",
- "target": "plugin"
+ "source": "tests_unit_io_test_yaml_files_py",
+ "target": "io_test_yaml_files_test_load_yaml_manifest_missing_file_raises"
},
{
- "relation": "inherits",
+ "relation": "rationale_for",
"confidence": "EXTRACTED",
- "source_file": "tests/fixtures/plugins/_failures/crash_plugin/plugin.py",
- "source_location": "L18",
+ "source_file": "tests/unit/io/test_yaml_files.py",
+ "source_location": "L1",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "crash_plugin_plugin_crashplugin",
- "target": "plugin"
+ "source": "io_test_yaml_files_rationale_1",
+ "target": "tests_unit_io_test_yaml_files_py"
},
{
- "relation": "inherits",
- "confidence": "EXTRACTED",
- "source_file": "tests/fixtures/plugins/_failures/timeout_plugin/plugin.py",
- "source_location": "L19",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/io/test_yaml_files.py",
+ "source_location": "L16",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "timeout_plugin_plugin_timeoutplugin",
- "target": "plugin"
+ "source": "io_test_yaml_files_test_load_yaml_manifest_returns_dict",
+ "target": "io_yaml_files_load_yaml_manifest"
},
{
"relation": "calls",
"context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/io/test_yaml_files.py",
+ "source_location": "L22",
+ "weight": 1.0,
+ "source": "io_test_yaml_files_test_load_yaml_manifest_empty_file_returns_empty_dict",
+ "target": "io_yaml_files_load_yaml_manifest"
+ },
+ {
+ "relation": "rationale_for",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/plugins/test_base.py",
- "source_location": "L156",
+ "source_file": "tests/unit/io/test_yaml_files.py",
+ "source_location": "L26",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "plugins_test_base_test_pre_transform_all_default_is_noop",
- "target": "plugins_test_base_make_ctx"
+ "source": "io_test_yaml_files_rationale_26",
+ "target": "io_test_yaml_files_test_load_yaml_manifest_non_dict_returns_empty_dict"
},
{
"relation": "calls",
"context": "call",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/plugins/test_base.py",
- "source_location": "L162",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/io/test_yaml_files.py",
+ "source_location": "L29",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "plugins_test_base_test_post_transform_all_default_is_noop",
- "target": "plugins_test_base_make_ctx"
+ "source": "io_test_yaml_files_test_load_yaml_manifest_non_dict_returns_empty_dict",
+ "target": "io_yaml_files_load_yaml_manifest"
},
{
"relation": "calls",
"context": "call",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/plugins/test_base.py",
- "source_location": "L168",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/io/test_yaml_files.py",
+ "source_location": "L36",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "plugins_test_base_test_on_plugin_failure_default_is_noop",
- "target": "plugins_test_base_make_ctx"
+ "source": "io_test_yaml_files_test_load_yaml_manifest_propagates_yaml_error",
+ "target": "io_yaml_files_load_yaml_manifest"
},
{
"relation": "calls",
"context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/io/test_yaml_files.py",
+ "source_location": "L41",
+ "weight": 1.0,
+ "source": "io_test_yaml_files_test_load_yaml_manifest_missing_file_raises",
+ "target": "io_yaml_files_load_yaml_manifest"
+ },
+ {
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/plugins/test_base.py",
- "source_location": "L175",
+ "source_file": "tests/unit/io/test_atomic_write.py",
+ "source_location": "L13",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "plugins_test_base_test_describe_changes_default_returns_single_modify_change",
- "target": "plugins_test_base_make_ctx"
+ "source": "tests_unit_io_test_atomic_write_py",
+ "target": "io_test_atomic_write_test_atomic_write_creates_file"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/plugins/test_base.py",
- "source_location": "L216",
+ "source_file": "tests/unit/io/test_atomic_write.py",
+ "source_location": "L19",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "plugins_test_base_test_plugincontext_is_frozen_dataclass",
- "target": "plugins_test_base_make_ctx"
+ "source": "tests_unit_io_test_atomic_write_py",
+ "target": "io_test_atomic_write_test_atomic_write_overwrites_existing"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/plugins/test_base.py",
- "source_location": "L222",
+ "source_file": "tests/unit/io/test_atomic_write.py",
+ "source_location": "L26",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "plugins_test_base_test_plugincontext_carries_full_session_metadata",
- "target": "plugins_test_base_make_ctx"
+ "source": "tests_unit_io_test_atomic_write_py",
+ "target": "io_test_atomic_write_test_atomic_write_leaves_no_temp_file_on_success"
},
{
- "relation": "calls",
- "context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/plugins/test_base.py",
- "source_location": "L60",
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/io/test_atomic_write.py",
+ "source_location": "L33",
"weight": 1.0,
- "source": "plugins_test_base_make_ctx",
- "target": "plugins_logger_hostpluginlogger"
+ "confidence_score": 1.0,
+ "source": "tests_unit_io_test_atomic_write_py",
+ "target": "io_test_atomic_write_test_atomic_write_cleans_up_temp_on_replace_failure"
},
{
- "relation": "calls",
- "context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/plugins/test_base.py",
- "source_location": "L63",
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/io/test_atomic_write.py",
+ "source_location": "L48",
"weight": 1.0,
- "source": "plugins_test_base_make_ctx",
- "target": "plugins_base_plugincontext"
+ "confidence_score": 1.0,
+ "source": "tests_unit_io_test_atomic_write_py",
+ "target": "io_test_atomic_write_test_atomic_write_skip_fsync"
},
{
- "relation": "rationale_for",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/plugins/test_base.py",
- "source_location": "L103",
+ "source_file": "tests/unit/io/test_atomic_write.py",
+ "source_location": "L56",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "plugins_test_base_rationale_103",
- "target": "plugins_test_base_test_minimal_plugin_can_be_instantiated"
+ "source": "tests_unit_io_test_atomic_write_py",
+ "target": "io_test_atomic_write_test_atomic_write_calls_fsync_by_default"
},
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/plugins/test_base.py",
- "source_location": "L129",
+ "source_file": "tests/unit/io/test_atomic_write.py",
+ "source_location": "L1",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "plugins_test_base_rationale_129",
- "target": "plugins_test_base_test_default_validate_variables_reports_empty_string_as_missing"
+ "source": "io_test_atomic_write_rationale_1",
+ "target": "tests_unit_io_test_atomic_write_py"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "tests/unit/plugins/test_base.py",
- "source_location": "L190",
+ "source_file": "tests/unit/io/test_atomic_write.py",
+ "source_location": "L15",
"weight": 1.0,
- "source": "plugins_test_base_test_filechange_is_frozen_dataclass",
- "target": "plugins_base_filechange"
+ "source": "io_test_atomic_write_test_atomic_write_creates_file",
+ "target": "io_atomic_write_atomic_write_bytes"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "tests/unit/plugins/test_base.py",
- "source_location": "L196",
+ "source_file": "tests/unit/io/test_atomic_write.py",
+ "source_location": "L22",
"weight": 1.0,
- "source": "plugins_test_base_test_filechange_default_detail_is_empty_dict",
- "target": "plugins_base_filechange"
+ "source": "io_test_atomic_write_test_atomic_write_overwrites_existing",
+ "target": "io_atomic_write_atomic_write_bytes"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "tests/unit/plugins/test_base.py",
- "source_location": "L201",
+ "source_file": "tests/unit/io/test_atomic_write.py",
+ "source_location": "L28",
"weight": 1.0,
- "source": "plugins_test_base_test_filechange_accepts_detail_payload",
- "target": "plugins_base_filechange"
+ "source": "io_test_atomic_write_test_atomic_write_leaves_no_temp_file_on_success",
+ "target": "io_atomic_write_atomic_write_bytes"
},
{
- "relation": "rationale_for",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/plugins/test_base.py",
- "source_location": "L245",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/io/test_atomic_write.py",
+ "source_location": "L41",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "plugins_test_base_rationale_245",
- "target": "plugins_test_base_test_pluginerror_reexport_is_canonical_class"
+ "source": "io_test_atomic_write_test_atomic_write_cleans_up_temp_on_replace_failure",
+ "target": "io_atomic_write_atomic_write_bytes"
},
{
- "relation": "rationale_for",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/plugins/test_base.py",
- "source_location": "L254",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/io/test_atomic_write.py",
+ "source_location": "L51",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "plugins_test_base_rationale_254",
- "target": "plugins_test_base_test_plugininputrequired_carries_fields_and_reason"
+ "source": "io_test_atomic_write_test_atomic_write_skip_fsync",
+ "target": "io_atomic_write_atomic_write_bytes"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "tests/unit/plugins/test_base.py",
- "source_location": "L256",
+ "source_file": "tests/unit/io/test_atomic_write.py",
+ "source_location": "L59",
"weight": 1.0,
- "source": "plugins_test_base_test_plugininputrequired_carries_fields_and_reason",
- "target": "exlab_wizard_errors_plugininputrequired"
+ "source": "io_test_atomic_write_test_atomic_write_calls_fsync_by_default",
+ "target": "io_atomic_write_atomic_write_bytes"
},
{
- "relation": "rationale_for",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/plugins/test_base.py",
- "source_location": "L267",
+ "source_file": "tests/unit/io/test_json_files.py",
+ "source_location": "L18",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "plugins_test_base_rationale_267",
- "target": "plugins_test_base_test_plugin_api_version_defaults_to_one"
+ "source": "tests_unit_io_test_json_files_py",
+ "target": "io_test_json_files_dummy"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/plugins/test_logger.py",
- "source_location": "L33",
+ "source_file": "tests/unit/io/test_json_files.py",
+ "source_location": "L23",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_plugins_test_logger_py",
- "target": "plugins_test_logger_test_host_plugin_logger_forwards_info_to_stdlib_logger"
+ "source": "tests_unit_io_test_json_files_py",
+ "target": "io_test_json_files_test_require_schema_major_accepts_matching_major"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/plugins/test_logger.py",
- "source_location": "L44",
+ "source_file": "tests/unit/io/test_json_files.py",
+ "source_location": "L27",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_plugins_test_logger_py",
- "target": "plugins_test_logger_test_host_plugin_logger_forwards_debug"
+ "source": "tests_unit_io_test_json_files_py",
+ "target": "io_test_json_files_test_require_schema_major_rejects_different_major"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/plugins/test_logger.py",
- "source_location": "L51",
+ "source_file": "tests/unit/io/test_json_files.py",
+ "source_location": "L34",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_plugins_test_logger_py",
- "target": "plugins_test_logger_test_host_plugin_logger_forwards_warning"
+ "source": "tests_unit_io_test_json_files_py",
+ "target": "io_test_json_files_test_require_schema_major_rejects_empty"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/plugins/test_logger.py",
- "source_location": "L58",
+ "source_file": "tests/unit/io/test_json_files.py",
+ "source_location": "L39",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_plugins_test_logger_py",
- "target": "plugins_test_logger_test_host_plugin_logger_forwards_error"
+ "source": "tests_unit_io_test_json_files_py",
+ "target": "io_test_json_files_test_require_schema_major_rejects_none"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/plugins/test_logger.py",
- "source_location": "L65",
+ "source_file": "tests/unit/io/test_json_files.py",
+ "source_location": "L44",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_plugins_test_logger_py",
- "target": "plugins_test_logger_test_host_plugin_logger_passes_structured_fields_via_extra"
+ "source": "tests_unit_io_test_json_files_py",
+ "target": "io_test_json_files_test_require_schema_major_rejects_unparseable"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/plugins/test_logger.py",
- "source_location": "L77",
+ "source_file": "tests/unit/io/test_json_files.py",
+ "source_location": "L49",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_plugins_test_logger_py",
- "target": "plugins_test_logger_test_host_plugin_logger_uses_default_logger_name_when_unspecified"
+ "source": "tests_unit_io_test_json_files_py",
+ "target": "io_test_json_files_test_read_msgspec_json_decodes_to_struct"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/plugins/test_logger.py",
- "source_location": "L94",
+ "source_file": "tests/unit/io/test_json_files.py",
+ "source_location": "L57",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_plugins_test_logger_py",
- "target": "plugins_test_logger_test_worker_plugin_logger_emits_json_frame_to_stream"
+ "source": "tests_unit_io_test_json_files_py",
+ "target": "io_test_json_files_test_read_msgspec_json_with_matching_major"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/plugins/test_logger.py",
- "source_location": "L106",
+ "source_file": "tests/unit/io/test_json_files.py",
+ "source_location": "L64",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_plugins_test_logger_py",
- "target": "plugins_test_logger_test_worker_plugin_logger_each_level_emits_correct_level_string"
+ "source": "tests_unit_io_test_json_files_py",
+ "target": "io_test_json_files_test_read_msgspec_json_rejects_wrong_major"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/plugins/test_logger.py",
- "source_location": "L119",
+ "source_file": "tests/unit/io/test_json_files.py",
+ "source_location": "L71",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_plugins_test_logger_py",
- "target": "plugins_test_logger_test_worker_plugin_logger_emits_one_frame_per_call"
+ "source": "tests_unit_io_test_json_files_py",
+ "target": "io_test_json_files_test_read_msgspec_json_passes_through_malformed"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/plugins/test_logger.py",
- "source_location": "L129",
+ "source_file": "tests/unit/io/test_json_files.py",
+ "source_location": "L79",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_plugins_test_logger_py",
- "target": "plugins_test_logger_test_worker_plugin_logger_emits_empty_context_when_no_fields"
+ "source": "tests_unit_io_test_json_files_py",
+ "target": "io_test_json_files_test_read_msgspec_json_raw_returns_dict"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/plugins/test_logger.py",
- "source_location": "L137",
+ "source_file": "tests/unit/io/test_json_files.py",
+ "source_location": "L86",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_plugins_test_logger_py",
- "target": "plugins_test_logger_test_worker_plugin_logger_default_stream_is_stderr"
+ "source": "tests_unit_io_test_json_files_py",
+ "target": "io_test_json_files_test_read_msgspec_json_raw_with_matching_major"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/plugins/test_logger.py",
- "source_location": "L153",
+ "source_file": "tests/unit/io/test_json_files.py",
+ "source_location": "L93",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_plugins_test_logger_py",
- "target": "plugins_test_logger_test_plugin_log_frame_fields_are_pinned"
+ "source": "tests_unit_io_test_json_files_py",
+ "target": "io_test_json_files_test_read_msgspec_json_raw_rejects_wrong_major"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/plugins/test_logger.py",
- "source_location": "L160",
+ "source_file": "tests/unit/io/test_json_files.py",
+ "source_location": "L100",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_plugins_test_logger_py",
- "target": "plugins_test_logger_test_plugin_log_frame_default_context_is_empty_dict"
+ "source": "tests_unit_io_test_json_files_py",
+ "target": "io_test_json_files_test_read_msgspec_json_raw_skips_check_when_version_missing"
},
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/plugins/test_logger.py",
+ "source_file": "tests/unit/io/test_json_files.py",
"source_location": "L1",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "plugins_test_logger_rationale_1",
- "target": "tests_unit_plugins_test_logger_py"
+ "source": "io_test_json_files_rationale_1",
+ "target": "tests_unit_io_test_json_files_py"
+ },
+ {
+ "relation": "uses",
+ "confidence": "INFERRED",
+ "source_file": "tests/unit/io/test_json_files.py",
+ "source_location": "L10",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "io_test_json_files_dummy",
+ "target": "exlab_wizard_errors_schemamajormismatcherror"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "tests/unit/plugins/test_logger.py",
- "source_location": "L36",
+ "source_file": "tests/unit/io/test_json_files.py",
+ "source_location": "L24",
"weight": 1.0,
- "source": "plugins_test_logger_test_host_plugin_logger_forwards_info_to_stdlib_logger",
- "target": "plugins_logger_hostpluginlogger"
+ "source": "io_test_json_files_test_require_schema_major_accepts_matching_major",
+ "target": "io_json_files_require_schema_major"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "tests/unit/plugins/test_logger.py",
- "source_location": "L45",
+ "source_file": "tests/unit/io/test_json_files.py",
+ "source_location": "L29",
"weight": 1.0,
- "source": "plugins_test_logger_test_host_plugin_logger_forwards_debug",
- "target": "plugins_logger_hostpluginlogger"
+ "source": "io_test_json_files_test_require_schema_major_rejects_different_major",
+ "target": "io_json_files_require_schema_major"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "tests/unit/plugins/test_logger.py",
- "source_location": "L52",
+ "source_file": "tests/unit/io/test_json_files.py",
+ "source_location": "L36",
"weight": 1.0,
- "source": "plugins_test_logger_test_host_plugin_logger_forwards_warning",
- "target": "plugins_logger_hostpluginlogger"
+ "source": "io_test_json_files_test_require_schema_major_rejects_empty",
+ "target": "io_json_files_require_schema_major"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "tests/unit/plugins/test_logger.py",
- "source_location": "L59",
- "weight": 1.0,
- "source": "plugins_test_logger_test_host_plugin_logger_forwards_error",
- "target": "plugins_logger_hostpluginlogger"
- },
- {
- "relation": "rationale_for",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/plugins/test_logger.py",
- "source_location": "L68",
+ "source_file": "tests/unit/io/test_json_files.py",
+ "source_location": "L41",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "plugins_test_logger_rationale_68",
- "target": "plugins_test_logger_test_host_plugin_logger_passes_structured_fields_via_extra"
+ "source": "io_test_json_files_test_require_schema_major_rejects_none",
+ "target": "io_json_files_require_schema_major"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "tests/unit/plugins/test_logger.py",
- "source_location": "L69",
- "weight": 1.0,
- "source": "plugins_test_logger_test_host_plugin_logger_passes_structured_fields_via_extra",
- "target": "plugins_logger_hostpluginlogger"
- },
- {
- "relation": "rationale_for",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/plugins/test_logger.py",
- "source_location": "L80",
+ "source_file": "tests/unit/io/test_json_files.py",
+ "source_location": "L46",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "plugins_test_logger_rationale_80",
- "target": "plugins_test_logger_test_host_plugin_logger_uses_default_logger_name_when_unspecified"
+ "source": "io_test_json_files_test_require_schema_major_rejects_unparseable",
+ "target": "io_json_files_require_schema_major"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "tests/unit/plugins/test_logger.py",
- "source_location": "L81",
+ "source_file": "tests/unit/io/test_json_files.py",
+ "source_location": "L52",
"weight": 1.0,
- "source": "plugins_test_logger_test_host_plugin_logger_uses_default_logger_name_when_unspecified",
- "target": "plugins_logger_hostpluginlogger"
+ "source": "io_test_json_files_test_read_msgspec_json_decodes_to_struct",
+ "target": "io_json_files_read_msgspec_json"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "tests/unit/plugins/test_logger.py",
- "source_location": "L96",
+ "source_file": "tests/unit/io/test_json_files.py",
+ "source_location": "L60",
"weight": 1.0,
- "source": "plugins_test_logger_test_worker_plugin_logger_emits_json_frame_to_stream",
- "target": "plugins_logger_workerpluginlogger"
+ "source": "io_test_json_files_test_read_msgspec_json_with_matching_major",
+ "target": "io_json_files_read_msgspec_json"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "tests/unit/plugins/test_logger.py",
- "source_location": "L108",
+ "source_file": "tests/unit/io/test_json_files.py",
+ "source_location": "L68",
"weight": 1.0,
- "source": "plugins_test_logger_test_worker_plugin_logger_each_level_emits_correct_level_string",
- "target": "plugins_logger_workerpluginlogger"
+ "source": "io_test_json_files_test_read_msgspec_json_rejects_wrong_major",
+ "target": "io_json_files_read_msgspec_json"
+ },
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/io/test_json_files.py",
+ "source_location": "L72",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "io_test_json_files_rationale_72",
+ "target": "io_test_json_files_test_read_msgspec_json_passes_through_malformed"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "tests/unit/plugins/test_logger.py",
- "source_location": "L121",
+ "source_file": "tests/unit/io/test_json_files.py",
+ "source_location": "L76",
"weight": 1.0,
- "source": "plugins_test_logger_test_worker_plugin_logger_emits_one_frame_per_call",
- "target": "plugins_logger_workerpluginlogger"
+ "source": "io_test_json_files_test_read_msgspec_json_passes_through_malformed",
+ "target": "io_json_files_read_msgspec_json"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "tests/unit/plugins/test_logger.py",
- "source_location": "L131",
- "weight": 1.0,
- "source": "plugins_test_logger_test_worker_plugin_logger_emits_empty_context_when_no_fields",
- "target": "plugins_logger_workerpluginlogger"
- },
- {
- "relation": "rationale_for",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/plugins/test_logger.py",
- "source_location": "L138",
+ "source_file": "tests/unit/io/test_json_files.py",
+ "source_location": "L82",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "plugins_test_logger_rationale_138",
- "target": "plugins_test_logger_test_worker_plugin_logger_default_stream_is_stderr"
+ "source": "io_test_json_files_test_read_msgspec_json_raw_returns_dict",
+ "target": "io_json_files_read_msgspec_json_raw"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "tests/unit/plugins/test_logger.py",
- "source_location": "L141",
+ "source_file": "tests/unit/io/test_json_files.py",
+ "source_location": "L89",
"weight": 1.0,
- "source": "plugins_test_logger_test_worker_plugin_logger_default_stream_is_stderr",
- "target": "plugins_logger_workerpluginlogger"
+ "source": "io_test_json_files_test_read_msgspec_json_raw_with_matching_major",
+ "target": "io_json_files_read_msgspec_json_raw"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "tests/unit/plugins/test_logger.py",
- "source_location": "L154",
+ "source_file": "tests/unit/io/test_json_files.py",
+ "source_location": "L97",
"weight": 1.0,
- "source": "plugins_test_logger_test_plugin_log_frame_fields_are_pinned",
- "target": "plugins_logger_pluginlogframe"
+ "source": "io_test_json_files_test_read_msgspec_json_raw_rejects_wrong_major",
+ "target": "io_json_files_read_msgspec_json_raw"
+ },
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/io/test_json_files.py",
+ "source_location": "L103",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "io_test_json_files_rationale_103",
+ "target": "io_test_json_files_test_read_msgspec_json_raw_skips_check_when_version_missing"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "tests/unit/plugins/test_logger.py",
- "source_location": "L161",
+ "source_file": "tests/unit/io/test_json_files.py",
+ "source_location": "L107",
"weight": 1.0,
- "source": "plugins_test_logger_test_plugin_log_frame_default_context_is_empty_dict",
- "target": "plugins_logger_pluginlogframe"
+ "source": "io_test_json_files_test_read_msgspec_json_raw_skips_check_when_version_missing",
+ "target": "io_json_files_read_msgspec_json_raw"
},
{
- "relation": "contains",
+ "relation": "rationale_for",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/constants/test_schema_versions.py",
- "source_location": "L13",
+ "source_file": "tests/unit/template/__init__.py",
+ "source_location": "L1",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_constants_test_schema_versions_py",
- "target": "constants_test_schema_versions_test_creation_json_version_is_pinned"
+ "source": "template_init_rationale_1",
+ "target": "tests_unit_template_init_py"
},
{
- "relation": "contains",
+ "relation": "rationale_for",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/constants/test_schema_versions.py",
- "source_location": "L18",
+ "source_file": "src/exlab_wizard/template/__init__.py",
+ "source_location": "L1",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_constants_test_schema_versions_py",
- "target": "constants_test_schema_versions_test_readme_fields_json_version_is_pinned"
+ "source": "template_init_rationale_1",
+ "target": "src_exlab_wizard_template_init_py"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/constants/test_schema_versions.py",
- "source_location": "L23",
+ "source_file": "tests/unit/template/test_copier_driver.py",
+ "source_location": "L59",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_constants_test_schema_versions_py",
- "target": "constants_test_schema_versions_test_sync_state_json_version_is_pinned"
+ "source": "tests_unit_template_test_copier_driver_py",
+ "target": "template_test_copier_driver_test_core_readme_field_ids_pins_the_three_core_fields"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/constants/test_schema_versions.py",
- "source_location": "L28",
+ "source_file": "tests/unit/template/test_copier_driver.py",
+ "source_location": "L70",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_constants_test_schema_versions_py",
- "target": "constants_test_schema_versions_test_equipment_json_version_is_pinned"
+ "source": "tests_unit_template_test_copier_driver_py",
+ "target": "template_test_copier_driver_test_resolve_project_basic_returns_resolved_template"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/constants/test_schema_versions.py",
- "source_location": "L33",
+ "source_file": "tests/unit/template/test_copier_driver.py",
+ "source_location": "L90",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_constants_test_schema_versions_py",
- "target": "constants_test_schema_versions_test_test_runs_json_version_is_pinned"
+ "source": "tests_unit_template_test_copier_driver_py",
+ "target": "template_test_copier_driver_test_resolve_run_basic_experimental_sets_run_scope_experimental"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/constants/test_schema_versions.py",
- "source_location": "L38",
+ "source_file": "tests/unit/template/test_copier_driver.py",
+ "source_location": "L100",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_constants_test_schema_versions_py",
- "target": "constants_test_schema_versions_test_offline_catalogue_version_is_pinned"
+ "source": "tests_unit_template_test_copier_driver_py",
+ "target": "template_test_copier_driver_test_resolve_run_basic_test_sets_run_scope_test"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/constants/test_schema_versions.py",
- "source_location": "L43",
+ "source_file": "tests/unit/template/test_copier_driver.py",
+ "source_location": "L108",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_constants_test_schema_versions_py",
- "target": "constants_test_schema_versions_test_readme_front_matter_schema_version_is_pinned"
+ "source": "tests_unit_template_test_copier_driver_py",
+ "target": "template_test_copier_driver_test_resolve_run_basic_both_sets_run_scope_both"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/constants/test_schema_versions.py",
- "source_location": "L48",
+ "source_file": "tests/unit/template/test_copier_driver.py",
+ "source_location": "L121",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_constants_test_schema_versions_py",
- "target": "constants_test_schema_versions_test_all_schema_versions_are_strings"
+ "source": "tests_unit_template_test_copier_driver_py",
+ "target": "template_test_copier_driver_test_resolve_missing_version_raises_template_load_error_mentioning_field"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/constants/test_schema_versions.py",
- "source_location": "L63",
+ "source_file": "tests/unit/template/test_copier_driver.py",
+ "source_location": "L130",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_constants_test_schema_versions_py",
- "target": "constants_test_schema_versions_test_schema_versions_re_exported_from_package"
+ "source": "tests_unit_template_test_copier_driver_py",
+ "target": "template_test_copier_driver_test_resolve_redeclares_core_raises_core_field_redeclared_naming_offender"
},
{
- "relation": "rationale_for",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/constants/test_schema_versions.py",
- "source_location": "L1",
+ "source_file": "tests/unit/template/test_copier_driver.py",
+ "source_location": "L138",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "constants_test_schema_versions_rationale_1",
- "target": "tests_unit_constants_test_schema_versions_py"
+ "source": "tests_unit_template_test_copier_driver_py",
+ "target": "template_test_copier_driver_test_resolve_redeclares_core_is_also_caught_as_template_load_error"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/constants/test_patterns.py",
- "source_location": "L19",
+ "source_file": "tests/unit/template/test_copier_driver.py",
+ "source_location": "L146",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_constants_test_patterns_py",
- "target": "constants_test_patterns_test_equipment_id_regex_literal"
+ "source": "tests_unit_template_test_copier_driver_py",
+ "target": "template_test_copier_driver_test_resolve_missing_copier_yml_raises_template_load_error"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/constants/test_patterns.py",
- "source_location": "L23",
+ "source_file": "tests/unit/template/test_copier_driver.py",
+ "source_location": "L156",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_constants_test_patterns_py",
- "target": "constants_test_patterns_test_equipment_id_pattern_is_compiled"
+ "source": "tests_unit_template_test_copier_driver_py",
+ "target": "template_test_copier_driver_test_resolve_scope_mismatch_raises_template_load_error"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/constants/test_patterns.py",
- "source_location": "L28",
+ "source_file": "tests/unit/template/test_copier_driver.py",
+ "source_location": "L165",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_constants_test_patterns_py",
- "target": "constants_test_patterns_test_equipment_id_pattern_accepts_valid_ids"
+ "source": "tests_unit_template_test_copier_driver_py",
+ "target": "template_test_copier_driver_test_resolve_run_template_missing_run_scope_raises"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/constants/test_patterns.py",
- "source_location": "L41",
+ "source_file": "tests/unit/template/test_copier_driver.py",
+ "source_location": "L179",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_constants_test_patterns_py",
- "target": "constants_test_patterns_test_equipment_id_pattern_rejects_invalid_ids"
+ "source": "tests_unit_template_test_copier_driver_py",
+ "target": "template_test_copier_driver_test_resolve_run_template_invalid_run_scope_raises"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/constants/test_patterns.py",
- "source_location": "L56",
+ "source_file": "tests/unit/template/test_copier_driver.py",
+ "source_location": "L198",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_constants_test_patterns_py",
- "target": "constants_test_patterns_test_equipment_id_max_length"
+ "source": "tests_unit_template_test_copier_driver_py",
+ "target": "template_test_copier_driver_test_resolve_with_tasks_does_not_raise"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/constants/test_patterns.py",
- "source_location": "L66",
+ "source_file": "tests/unit/template/test_copier_driver.py",
+ "source_location": "L208",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_constants_test_patterns_py",
- "target": "constants_test_patterns_test_placeholder_angle_bracket_regex_literal"
+ "source": "tests_unit_template_test_copier_driver_py",
+ "target": "template_test_copier_driver_test_resolve_with_tasks_emits_warning_log"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/constants/test_patterns.py",
- "source_location": "L70",
+ "source_file": "tests/unit/template/test_copier_driver.py",
+ "source_location": "L227",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_constants_test_patterns_py",
- "target": "constants_test_patterns_test_placeholder_angle_bracket_pattern_finds_tokens"
+ "source": "tests_unit_template_test_copier_driver_py",
+ "target": "template_test_copier_driver_test_render_project_basic_writes_readme"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/constants/test_patterns.py",
- "source_location": "L76",
+ "source_file": "tests/unit/template/test_copier_driver.py",
+ "source_location": "L245",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_constants_test_patterns_py",
- "target": "constants_test_patterns_test_placeholder_angle_bracket_pattern_ignores_non_tokens"
+ "source": "tests_unit_template_test_copier_driver_py",
+ "target": "template_test_copier_driver_test_render_project_basic_files_written_lists_the_readme"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/constants/test_patterns.py",
- "source_location": "L83",
+ "source_file": "tests/unit/template/test_copier_driver.py",
+ "source_location": "L263",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_constants_test_patterns_py",
- "target": "constants_test_patterns_test_placeholder_jinja_var_regex_literal"
+ "source": "tests_unit_template_test_copier_driver_py",
+ "target": "template_test_copier_driver_test_render_with_tasks_silently_ignores_tasks_and_writes_file"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/constants/test_patterns.py",
- "source_location": "L87",
+ "source_file": "tests/unit/template/test_copier_driver.py",
+ "source_location": "L288",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_constants_test_patterns_py",
- "target": "constants_test_patterns_test_placeholder_jinja_var_pattern_finds_markers"
+ "source": "tests_unit_template_test_copier_driver_py",
+ "target": "template_test_copier_driver_test_render_into_dst_with_conflicting_files_raises"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/constants/test_patterns.py",
- "source_location": "L93",
+ "source_file": "tests/unit/template/test_copier_driver.py",
+ "source_location": "L322",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_constants_test_patterns_py",
- "target": "constants_test_patterns_test_placeholder_jinja_var_pattern_ignores_plain_text"
+ "source": "tests_unit_template_test_copier_driver_py",
+ "target": "template_test_copier_driver_test_render_calls_copier_run_copy_with_spec_kwargs"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/constants/test_patterns.py",
- "source_location": "L98",
+ "source_file": "tests/unit/template/test_copier_driver.py",
+ "source_location": "L350",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_constants_test_patterns_py",
- "target": "constants_test_patterns_test_placeholder_jinja_block_regex_literal"
+ "source": "tests_unit_template_test_copier_driver_py",
+ "target": "template_test_copier_driver_test_resolve_unreadable_copier_yml_raises_template_load_error"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/constants/test_patterns.py",
- "source_location": "L102",
+ "source_file": "tests/unit/template/test_copier_driver.py",
+ "source_location": "L371",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_constants_test_patterns_py",
- "target": "constants_test_patterns_test_placeholder_jinja_block_pattern_finds_blocks"
+ "source": "tests_unit_template_test_copier_driver_py",
+ "target": "template_test_copier_driver_test_resolve_malformed_yaml_raises_template_load_error"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/constants/test_patterns.py",
- "source_location": "L108",
+ "source_file": "tests/unit/template/test_copier_driver.py",
+ "source_location": "L387",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_constants_test_patterns_py",
- "target": "constants_test_patterns_test_placeholder_jinja_block_pattern_ignores_unrelated_content"
+ "source": "tests_unit_template_test_copier_driver_py",
+ "target": "template_test_copier_driver_test_resolve_empty_copier_yml_treats_manifest_as_empty_and_rejects_missing_type"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/constants/test_patterns.py",
- "source_location": "L117",
+ "source_file": "tests/unit/template/test_copier_driver.py",
+ "source_location": "L403",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_constants_test_patterns_py",
- "target": "constants_test_patterns_test_project_short_id_regex_literal"
+ "source": "tests_unit_template_test_copier_driver_py",
+ "target": "template_test_copier_driver_test_resolve_non_mapping_yaml_raises_template_load_error"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/constants/test_patterns.py",
- "source_location": "L121",
+ "source_file": "tests/unit/template/test_copier_driver.py",
+ "source_location": "L421",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_constants_test_patterns_py",
- "target": "constants_test_patterns_test_project_short_id_pattern_accepts"
+ "source": "tests_unit_template_test_copier_driver_py",
+ "target": "template_test_copier_driver_test_resolve_missing_exlab_type_raises_template_load_error"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/constants/test_patterns.py",
- "source_location": "L126",
+ "source_file": "tests/unit/template/test_copier_driver.py",
+ "source_location": "L436",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_constants_test_patterns_py",
- "target": "constants_test_patterns_test_project_short_id_pattern_rejects"
+ "source": "tests_unit_template_test_copier_driver_py",
+ "target": "template_test_copier_driver_test_resolve_invalid_exlab_type_value_raises_template_load_error"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/constants/test_patterns.py",
- "source_location": "L137",
+ "source_file": "tests/unit/template/test_copier_driver.py",
+ "source_location": "L461",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_constants_test_patterns_py",
- "target": "constants_test_patterns_test_template_question_id_regex_literal"
+ "source": "tests_unit_template_test_copier_driver_py",
+ "target": "template_test_copier_driver_test_resolve_readme_fields_with_non_core_entries_passes_through"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/constants/test_patterns.py",
- "source_location": "L141",
+ "source_file": "tests/unit/template/test_copier_driver.py",
+ "source_location": "L488",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_constants_test_patterns_py",
- "target": "constants_test_patterns_test_template_question_id_pattern_accepts"
+ "source": "tests_unit_template_test_copier_driver_py",
+ "target": "template_test_copier_driver_test_resolve_readme_block_not_a_mapping_yields_empty_extra_fields"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/constants/test_patterns.py",
- "source_location": "L146",
+ "source_file": "tests/unit/template/test_copier_driver.py",
+ "source_location": "L505",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_constants_test_patterns_py",
- "target": "constants_test_patterns_test_template_question_id_pattern_rejects"
+ "source": "tests_unit_template_test_copier_driver_py",
+ "target": "template_test_copier_driver_test_resolve_readme_fields_not_a_list_yields_empty_extra_fields"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/constants/test_patterns.py",
- "source_location": "L156",
+ "source_file": "tests/unit/template/test_copier_driver.py",
+ "source_location": "L532",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_constants_test_patterns_py",
- "target": "constants_test_patterns_test_plugin_name_regex_literal"
+ "source": "tests_unit_template_test_copier_driver_py",
+ "target": "template_test_copier_driver_test_resolve_non_string_description_falls_back_to_empty"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/constants/test_patterns.py",
- "source_location": "L160",
+ "source_file": "tests/unit/template/test_copier_driver.py",
+ "source_location": "L548",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_constants_test_patterns_py",
- "target": "constants_test_patterns_test_plugin_name_pattern_accepts"
+ "source": "tests_unit_template_test_copier_driver_py",
+ "target": "template_test_copier_driver_test_resolve_plugin_order_preserved"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/constants/test_patterns.py",
- "source_location": "L165",
+ "source_file": "tests/unit/template/test_copier_driver.py",
+ "source_location": "L567",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_constants_test_patterns_py",
- "target": "constants_test_patterns_test_plugin_name_pattern_rejects"
+ "source": "tests_unit_template_test_copier_driver_py",
+ "target": "template_test_copier_driver_test_resolve_non_list_plugin_order_falls_back_to_empty"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/constants/test_patterns.py",
- "source_location": "L175",
+ "source_file": "tests/unit/template/test_copier_driver.py",
+ "source_location": "L587",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_constants_test_patterns_py",
- "target": "constants_test_patterns_test_run_date_strftime_literal"
+ "source": "tests_unit_template_test_copier_driver_py",
+ "target": "template_test_copier_driver_test_render_snapshots_existing_regular_file_at_dst"
},
{
- "relation": "contains",
+ "relation": "rationale_for",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/constants/test_patterns.py",
- "source_location": "L181",
+ "source_file": "tests/unit/template/test_copier_driver.py",
+ "source_location": "L1",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_constants_test_patterns_py",
- "target": "constants_test_patterns_test_run_date_strftime_round_trip"
+ "source": "template_test_copier_driver_rationale_1",
+ "target": "tests_unit_template_test_copier_driver_py"
},
{
- "relation": "contains",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/constants/test_patterns.py",
- "source_location": "L193",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/template/test_copier_driver.py",
+ "source_location": "L71",
+ "weight": 1.0,
+ "source": "template_test_copier_driver_test_resolve_project_basic_returns_resolved_template",
+ "target": "template_copier_driver_templateengine"
+ },
+ {
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/template/test_copier_driver.py",
+ "source_location": "L91",
+ "weight": 1.0,
+ "source": "template_test_copier_driver_test_resolve_run_basic_experimental_sets_run_scope_experimental",
+ "target": "template_copier_driver_templateengine"
+ },
+ {
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/template/test_copier_driver.py",
+ "source_location": "L101",
+ "weight": 1.0,
+ "source": "template_test_copier_driver_test_resolve_run_basic_test_sets_run_scope_test",
+ "target": "template_copier_driver_templateengine"
+ },
+ {
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/template/test_copier_driver.py",
+ "source_location": "L109",
+ "weight": 1.0,
+ "source": "template_test_copier_driver_test_resolve_run_basic_both_sets_run_scope_both",
+ "target": "template_copier_driver_templateengine"
+ },
+ {
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/template/test_copier_driver.py",
+ "source_location": "L124",
+ "weight": 1.0,
+ "source": "template_test_copier_driver_test_resolve_missing_version_raises_template_load_error_mentioning_field",
+ "target": "template_copier_driver_templateengine"
+ },
+ {
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/template/test_copier_driver.py",
+ "source_location": "L131",
+ "weight": 1.0,
+ "source": "template_test_copier_driver_test_resolve_redeclares_core_raises_core_field_redeclared_naming_offender",
+ "target": "template_copier_driver_templateengine"
+ },
+ {
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/template/test_copier_driver.py",
+ "source_location": "L141",
+ "weight": 1.0,
+ "source": "template_test_copier_driver_test_resolve_redeclares_core_is_also_caught_as_template_load_error",
+ "target": "template_copier_driver_templateengine"
+ },
+ {
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/template/test_copier_driver.py",
+ "source_location": "L148",
+ "weight": 1.0,
+ "source": "template_test_copier_driver_test_resolve_missing_copier_yml_raises_template_load_error",
+ "target": "template_copier_driver_templateengine"
+ },
+ {
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/template/test_copier_driver.py",
+ "source_location": "L158",
+ "weight": 1.0,
+ "source": "template_test_copier_driver_test_resolve_scope_mismatch_raises_template_load_error",
+ "target": "template_copier_driver_templateengine"
+ },
+ {
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/template/test_copier_driver.py",
+ "source_location": "L173",
+ "weight": 1.0,
+ "source": "template_test_copier_driver_test_resolve_run_template_missing_run_scope_raises",
+ "target": "template_copier_driver_templateengine"
+ },
+ {
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/template/test_copier_driver.py",
+ "source_location": "L187",
+ "weight": 1.0,
+ "source": "template_test_copier_driver_test_resolve_run_template_invalid_run_scope_raises",
+ "target": "template_copier_driver_templateengine"
+ },
+ {
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/template/test_copier_driver.py",
+ "source_location": "L200",
+ "weight": 1.0,
+ "source": "template_test_copier_driver_test_resolve_with_tasks_does_not_raise",
+ "target": "template_copier_driver_templateengine"
+ },
+ {
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/template/test_copier_driver.py",
+ "source_location": "L211",
+ "weight": 1.0,
+ "source": "template_test_copier_driver_test_resolve_with_tasks_emits_warning_log",
+ "target": "template_copier_driver_templateengine"
+ },
+ {
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/template/test_copier_driver.py",
+ "source_location": "L228",
+ "weight": 1.0,
+ "source": "template_test_copier_driver_test_render_project_basic_writes_readme",
+ "target": "template_copier_driver_templateengine"
+ },
+ {
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/template/test_copier_driver.py",
+ "source_location": "L248",
+ "weight": 1.0,
+ "source": "template_test_copier_driver_test_render_project_basic_files_written_lists_the_readme",
+ "target": "template_copier_driver_templateengine"
+ },
+ {
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/template/test_copier_driver.py",
+ "source_location": "L272",
+ "weight": 1.0,
+ "source": "template_test_copier_driver_test_render_with_tasks_silently_ignores_tasks_and_writes_file",
+ "target": "template_copier_driver_templateengine"
+ },
+ {
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/template/test_copier_driver.py",
+ "source_location": "L297",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "tests_unit_constants_test_patterns_py",
- "target": "constants_test_patterns_test_run_dir_prefix_literal"
+ "source": "template_test_copier_driver_test_render_into_dst_with_conflicting_files_raises",
+ "target": "template_copier_driver_templateengine"
},
{
- "relation": "contains",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/constants/test_patterns.py",
- "source_location": "L197",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/template/test_copier_driver.py",
+ "source_location": "L327",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "tests_unit_constants_test_patterns_py",
- "target": "constants_test_patterns_test_test_run_dir_prefix_literal"
+ "source": "template_test_copier_driver_test_render_calls_copier_run_copy_with_spec_kwargs",
+ "target": "template_copier_driver_templateengine"
},
{
- "relation": "contains",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/constants/test_patterns.py",
- "source_location": "L201",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/template/test_copier_driver.py",
+ "source_location": "L362",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "tests_unit_constants_test_patterns_py",
- "target": "constants_test_patterns_test_test_runs_dir_name_literal"
+ "source": "template_test_copier_driver_test_resolve_unreadable_copier_yml_raises_template_load_error",
+ "target": "template_copier_driver_templateengine"
},
{
- "relation": "contains",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/constants/test_patterns.py",
- "source_location": "L210",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/template/test_copier_driver.py",
+ "source_location": "L381",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "tests_unit_constants_test_patterns_py",
- "target": "constants_test_patterns_test_windows_reserved_names_membership"
+ "source": "template_test_copier_driver_test_resolve_malformed_yaml_raises_template_load_error",
+ "target": "template_copier_driver_templateengine"
},
{
- "relation": "contains",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/constants/test_patterns.py",
- "source_location": "L220",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/template/test_copier_driver.py",
+ "source_location": "L397",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "tests_unit_constants_test_patterns_py",
- "target": "constants_test_patterns_test_windows_reserved_names_is_frozenset"
+ "source": "template_test_copier_driver_test_resolve_empty_copier_yml_treats_manifest_as_empty_and_rejects_missing_type",
+ "target": "template_copier_driver_templateengine"
},
{
- "relation": "contains",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/constants/test_patterns.py",
- "source_location": "L224",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/template/test_copier_driver.py",
+ "source_location": "L415",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "tests_unit_constants_test_patterns_py",
- "target": "constants_test_patterns_test_windows_reserved_names_size"
+ "source": "template_test_copier_driver_test_resolve_non_mapping_yaml_raises_template_load_error",
+ "target": "template_copier_driver_templateengine"
},
{
- "relation": "contains",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/constants/test_patterns.py",
- "source_location": "L229",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/template/test_copier_driver.py",
+ "source_location": "L430",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "tests_unit_constants_test_patterns_py",
- "target": "constants_test_patterns_test_windows_reserved_names_are_uppercase"
+ "source": "template_test_copier_driver_test_resolve_missing_exlab_type_raises_template_load_error",
+ "target": "template_copier_driver_templateengine"
},
{
- "relation": "contains",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/constants/test_patterns.py",
- "source_location": "L236",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/template/test_copier_driver.py",
+ "source_location": "L448",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "tests_unit_constants_test_patterns_py",
- "target": "constants_test_patterns_test_windows_reserved_names_case_insensitive_check"
+ "source": "template_test_copier_driver_test_resolve_invalid_exlab_type_value_raises_template_load_error",
+ "target": "template_copier_driver_templateengine"
},
{
- "relation": "contains",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/constants/test_patterns.py",
- "source_location": "L248",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/template/test_copier_driver.py",
+ "source_location": "L481",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "tests_unit_constants_test_patterns_py",
- "target": "constants_test_patterns_test_windows_illegal_chars_literal"
+ "source": "template_test_copier_driver_test_resolve_readme_fields_with_non_core_entries_passes_through",
+ "target": "template_copier_driver_templateengine"
},
{
- "relation": "contains",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/constants/test_patterns.py",
- "source_location": "L253",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/template/test_copier_driver.py",
+ "source_location": "L500",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "tests_unit_constants_test_patterns_py",
- "target": "constants_test_patterns_test_windows_illegal_chars_membership"
+ "source": "template_test_copier_driver_test_resolve_readme_block_not_a_mapping_yields_empty_extra_fields",
+ "target": "template_copier_driver_templateengine"
},
{
- "relation": "contains",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/constants/test_patterns.py",
- "source_location": "L258",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/template/test_copier_driver.py",
+ "source_location": "L522",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "tests_unit_constants_test_patterns_py",
- "target": "constants_test_patterns_test_windows_illegal_chars_excludes_safe"
+ "source": "template_test_copier_driver_test_resolve_readme_fields_not_a_list_yields_empty_extra_fields",
+ "target": "template_copier_driver_templateengine"
},
{
- "relation": "contains",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/constants/test_patterns.py",
- "source_location": "L268",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/template/test_copier_driver.py",
+ "source_location": "L543",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "tests_unit_constants_test_patterns_py",
- "target": "constants_test_patterns_test_patterns_re_exported_from_package"
+ "source": "template_test_copier_driver_test_resolve_non_string_description_falls_back_to_empty",
+ "target": "template_copier_driver_templateengine"
},
{
- "relation": "rationale_for",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/constants/test_patterns.py",
- "source_location": "L1",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/template/test_copier_driver.py",
+ "source_location": "L562",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "constants_test_patterns_rationale_1",
- "target": "tests_unit_constants_test_patterns_py"
+ "source": "template_test_copier_driver_test_resolve_plugin_order_preserved",
+ "target": "template_copier_driver_templateengine"
},
{
- "relation": "rationale_for",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/constants/__init__.py",
- "source_location": "L1",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/template/test_copier_driver.py",
+ "source_location": "L577",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "constants_init_rationale_1",
- "target": "tests_unit_constants_init_py"
+ "source": "template_test_copier_driver_test_resolve_non_list_plugin_order_falls_back_to_empty",
+ "target": "template_copier_driver_templateengine"
},
{
- "relation": "rationale_for",
- "confidence": "EXTRACTED",
- "source_file": "src/exlab_wizard/constants/__init__.py",
- "source_location": "L1",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/template/test_copier_driver.py",
+ "source_location": "L592",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "constants_init_rationale_1",
- "target": "src_exlab_wizard_constants_init_py"
+ "source": "template_test_copier_driver_test_render_snapshots_existing_regular_file_at_dst",
+ "target": "template_copier_driver_templateengine"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/constants/test_enum_literal_alignment.py",
- "source_location": "L67",
+ "source_file": "tests/unit/utils/test_time.py",
+ "source_location": "L20",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_constants_test_enum_literal_alignment_py",
- "target": "constants_test_enum_literal_alignment_test_enum_values_match_expected_literal_set"
+ "source": "tests_unit_utils_test_time_py",
+ "target": "utils_test_time_test_utc_now_iso_format"
},
{
- "relation": "rationale_for",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/constants/test_enum_literal_alignment.py",
- "source_location": "L1",
+ "source_file": "tests/unit/utils/test_time.py",
+ "source_location": "L25",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "constants_test_enum_literal_alignment_rationale_1",
- "target": "tests_unit_constants_test_enum_literal_alignment_py"
+ "source": "tests_unit_utils_test_time_py",
+ "target": "utils_test_time_test_dt_to_iso_naive_assumed_utc"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/constants/test_enums.py",
- "source_location": "L15",
+ "source_file": "tests/unit/utils/test_time.py",
+ "source_location": "L30",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_constants_test_enums_py",
- "target": "constants_test_enums_test_run_kind_values"
+ "source": "tests_unit_utils_test_time_py",
+ "target": "utils_test_time_test_dt_to_iso_utc_aware"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/constants/test_enums.py",
- "source_location": "L23",
+ "source_file": "tests/unit/utils/test_time.py",
+ "source_location": "L35",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_constants_test_enums_py",
- "target": "constants_test_enums_test_run_kind_is_str"
+ "source": "tests_unit_utils_test_time_py",
+ "target": "utils_test_time_test_dt_to_iso_non_utc_zone_converts"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/constants/test_enums.py",
- "source_location": "L30",
+ "source_file": "tests/unit/utils/test_time.py",
+ "source_location": "L42",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_constants_test_enums_py",
- "target": "constants_test_enums_test_sync_status_values"
+ "source": "tests_unit_utils_test_time_py",
+ "target": "utils_test_time_test_parse_utc_iso_z_form"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/constants/test_enums.py",
+ "source_file": "tests/unit/utils/test_time.py",
"source_location": "L47",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_constants_test_enums_py",
- "target": "constants_test_enums_test_tier_values"
+ "source": "tests_unit_utils_test_time_py",
+ "target": "utils_test_time_test_parse_utc_iso_offset_form"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/constants/test_enums.py",
- "source_location": "L55",
+ "source_file": "tests/unit/utils/test_time.py",
+ "source_location": "L52",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_constants_test_enums_py",
- "target": "constants_test_enums_test_problem_class_values"
+ "source": "tests_unit_utils_test_time_py",
+ "target": "utils_test_time_test_parse_utc_iso_naive_input_tagged_utc"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/constants/test_enums.py",
- "source_location": "L80",
+ "source_file": "tests/unit/utils/test_time.py",
+ "source_location": "L57",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_constants_test_enums_py",
- "target": "constants_test_enums_test_finding_kind_values"
+ "source": "tests_unit_utils_test_time_py",
+ "target": "utils_test_time_test_parse_utc_iso_round_trip_with_now"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/constants/test_enums.py",
- "source_location": "L93",
+ "source_file": "tests/unit/utils/test_time.py",
+ "source_location": "L63",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_constants_test_enums_py",
- "target": "constants_test_enums_test_template_type_values"
+ "source": "tests_unit_utils_test_time_py",
+ "target": "utils_test_time_test_parse_utc_iso_raises_on_garbage"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/constants/test_enums.py",
- "source_location": "L102",
+ "source_file": "tests/unit/utils/test_time.py",
+ "source_location": "L68",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_constants_test_enums_py",
- "target": "constants_test_enums_test_run_scope_values"
+ "source": "tests_unit_utils_test_time_py",
+ "target": "utils_test_time_test_parse_utc_iso_or_none_handles_none"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/constants/test_enums.py",
- "source_location": "L111",
+ "source_file": "tests/unit/utils/test_time.py",
+ "source_location": "L72",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_constants_test_enums_py",
- "target": "constants_test_enums_test_lims_project_status_values_pascal_case"
+ "source": "tests_unit_utils_test_time_py",
+ "target": "utils_test_time_test_parse_utc_iso_or_none_handles_empty"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/constants/test_enums.py",
- "source_location": "L126",
+ "source_file": "tests/unit/utils/test_time.py",
+ "source_location": "L76",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_constants_test_enums_py",
- "target": "constants_test_enums_test_lims_project_source_values"
+ "source": "tests_unit_utils_test_time_py",
+ "target": "utils_test_time_test_parse_utc_iso_or_none_handles_malformed"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/constants/test_enums.py",
- "source_location": "L139",
+ "source_file": "tests/unit/utils/test_time.py",
+ "source_location": "L80",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_constants_test_enums_py",
- "target": "constants_test_enums_test_ingest_state_enum_is_removed"
+ "source": "tests_unit_utils_test_time_py",
+ "target": "utils_test_time_test_parse_utc_iso_or_none_returns_datetime_for_valid"
},
{
- "relation": "contains",
+ "relation": "rationale_for",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/constants/test_enums.py",
- "source_location": "L145",
+ "source_file": "tests/unit/utils/test_time.py",
+ "source_location": "L1",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_constants_test_enums_py",
- "target": "constants_test_enums_test_run_sync_state_values"
+ "source": "utils_test_time_rationale_1",
+ "target": "tests_unit_utils_test_time_py"
},
{
- "relation": "contains",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/constants/test_enums.py",
- "source_location": "L151",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/utils/test_time.py",
+ "source_location": "L21",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "tests_unit_constants_test_enums_py",
- "target": "constants_test_enums_test_setup_state_values"
+ "source": "utils_test_time_test_utc_now_iso_format",
+ "target": "utils_time_utc_now_iso"
},
{
- "relation": "contains",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/constants/test_enums.py",
- "source_location": "L173",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/utils/test_time.py",
+ "source_location": "L27",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "tests_unit_constants_test_enums_py",
- "target": "constants_test_enums_test_nas_remote_setup_members_exist"
+ "source": "utils_test_time_test_dt_to_iso_naive_assumed_utc",
+ "target": "utils_time_dt_to_iso"
},
{
- "relation": "contains",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/constants/test_enums.py",
- "source_location": "L180",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/utils/test_time.py",
+ "source_location": "L32",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "tests_unit_constants_test_enums_py",
- "target": "constants_test_enums_test_transport_type_enum_removed"
+ "source": "utils_test_time_test_dt_to_iso_utc_aware",
+ "target": "utils_time_dt_to_iso"
},
{
- "relation": "contains",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/constants/test_enums.py",
- "source_location": "L181",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/utils/test_time.py",
+ "source_location": "L39",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "tests_unit_constants_test_enums_py",
- "target": "constants_test_enums_test_completeness_signal_enum_removed"
+ "source": "utils_test_time_test_dt_to_iso_non_utc_zone_converts",
+ "target": "utils_time_dt_to_iso"
},
{
- "relation": "contains",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/constants/test_enums.py",
- "source_location": "L186",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/utils/test_time.py",
+ "source_location": "L43",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "tests_unit_constants_test_enums_py",
- "target": "constants_test_enums_test_staging_cleanup_mode_values"
+ "source": "utils_test_time_test_parse_utc_iso_z_form",
+ "target": "utils_time_parse_utc_iso"
},
{
- "relation": "contains",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/constants/test_enums.py",
- "source_location": "L194",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/utils/test_time.py",
+ "source_location": "L48",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "tests_unit_constants_test_enums_py",
- "target": "constants_test_enums_test_plugin_status_values"
+ "source": "utils_test_time_test_parse_utc_iso_offset_form",
+ "target": "utils_time_parse_utc_iso"
},
{
- "relation": "contains",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/constants/test_enums.py",
- "source_location": "L211",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/utils/test_time.py",
+ "source_location": "L53",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "tests_unit_constants_test_enums_py",
- "target": "constants_test_enums_test_creation_level_values"
+ "source": "utils_test_time_test_parse_utc_iso_naive_input_tagged_utc",
+ "target": "utils_time_parse_utc_iso"
},
{
- "relation": "contains",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/constants/test_enums.py",
- "source_location": "L227",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/utils/test_time.py",
+ "source_location": "L58",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "tests_unit_constants_test_enums_py",
- "target": "constants_test_enums_test_field_type_values"
+ "source": "utils_test_time_test_parse_utc_iso_round_trip_with_now",
+ "target": "utils_time_utc_now_iso"
},
{
- "relation": "contains",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/constants/test_enums.py",
- "source_location": "L238",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/utils/test_time.py",
+ "source_location": "L59",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "tests_unit_constants_test_enums_py",
- "target": "constants_test_enums_test_bandwidth_day_values"
+ "source": "utils_test_time_test_parse_utc_iso_round_trip_with_now",
+ "target": "utils_time_parse_utc_iso"
},
{
- "relation": "contains",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/constants/test_enums.py",
- "source_location": "L246",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/utils/test_time.py",
+ "source_location": "L60",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "tests_unit_constants_test_enums_py",
- "target": "constants_test_enums_test_session_kind_values"
+ "source": "utils_test_time_test_parse_utc_iso_round_trip_with_now",
+ "target": "utils_time_dt_to_iso"
},
{
- "relation": "contains",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/constants/test_enums.py",
- "source_location": "L254",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/utils/test_time.py",
+ "source_location": "L65",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "tests_unit_constants_test_enums_py",
- "target": "constants_test_enums_test_next_action_values"
+ "source": "utils_test_time_test_parse_utc_iso_raises_on_garbage",
+ "target": "utils_time_parse_utc_iso"
},
{
- "relation": "contains",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/constants/test_enums.py",
- "source_location": "L262",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/utils/test_time.py",
+ "source_location": "L69",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "tests_unit_constants_test_enums_py",
- "target": "constants_test_enums_test_audit_scope_kind_values"
+ "source": "utils_test_time_test_parse_utc_iso_or_none_handles_none",
+ "target": "utils_time_parse_utc_iso_or_none"
},
{
- "relation": "contains",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/constants/test_enums.py",
- "source_location": "L271",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/utils/test_time.py",
+ "source_location": "L73",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "tests_unit_constants_test_enums_py",
- "target": "constants_test_enums_test_directory_level_values"
+ "source": "utils_test_time_test_parse_utc_iso_or_none_handles_empty",
+ "target": "utils_time_parse_utc_iso_or_none"
},
{
- "relation": "contains",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/constants/test_enums.py",
- "source_location": "L279",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/utils/test_time.py",
+ "source_location": "L77",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "tests_unit_constants_test_enums_py",
- "target": "constants_test_enums_test_platform_values"
+ "source": "utils_test_time_test_parse_utc_iso_or_none_handles_malformed",
+ "target": "utils_time_parse_utc_iso_or_none"
+ },
+ {
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/utils/test_time.py",
+ "source_location": "L81",
+ "weight": 1.0,
+ "source": "utils_test_time_test_parse_utc_iso_or_none_returns_datetime_for_valid",
+ "target": "utils_time_parse_utc_iso_or_none"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/constants/test_enums.py",
- "source_location": "L287",
+ "source_file": "tests/unit/utils/test_state.py",
+ "source_location": "L12",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_constants_test_enums_py",
- "target": "constants_test_enums_test_setup_next_action_values"
+ "source": "tests_unit_utils_test_state_py",
+ "target": "utils_test_state_state"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/constants/test_enums.py",
- "source_location": "L295",
+ "source_file": "tests/unit/utils/test_state.py",
+ "source_location": "L25",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_constants_test_enums_py",
- "target": "constants_test_enums_test_sync_handle_state_values"
+ "source": "tests_unit_utils_test_state_py",
+ "target": "utils_test_state_test_allowed_transition_returns_none"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/constants/test_enums.py",
- "source_location": "L303",
+ "source_file": "tests/unit/utils/test_state.py",
+ "source_location": "L29",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_constants_test_enums_py",
- "target": "constants_test_enums_test_plugin_source_root_values"
+ "source": "tests_unit_utils_test_state_py",
+ "target": "utils_test_state_test_disallowed_transition_raises"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/constants/test_enums.py",
- "source_location": "L311",
+ "source_file": "tests/unit/utils/test_state.py",
+ "source_location": "L34",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_constants_test_enums_py",
- "target": "constants_test_enums_test_tree_project_status_values"
+ "source": "tests_unit_utils_test_state_py",
+ "target": "utils_test_state_test_terminal_transition_raises"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/constants/test_enums.py",
- "source_location": "L319",
+ "source_file": "tests/unit/utils/test_state.py",
+ "source_location": "L39",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_constants_test_enums_py",
- "target": "constants_test_enums_test_enums_re_exported_from_package"
+ "source": "tests_unit_utils_test_state_py",
+ "target": "utils_test_state_test_unknown_source_raises"
},
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/constants/test_enums.py",
+ "source_file": "tests/unit/utils/test_state.py",
"source_location": "L1",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "constants_test_enums_rationale_1",
- "target": "tests_unit_constants_test_enums_py"
+ "source": "utils_test_state_rationale_1",
+ "target": "tests_unit_utils_test_state_py"
},
{
- "relation": "contains",
+ "relation": "inherits",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/constants/test_enums.py",
- "source_location": "L173",
+ "source_file": "tests/unit/utils/test_state.py",
+ "source_location": "L12",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_constants_test_enums_py",
- "target": "constants_test_enums_test_transport_type_values"
+ "source": "utils_test_state_state",
+ "target": "strenum"
},
{
- "relation": "contains",
+ "relation": "inherits",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/constants/test_enums.py",
- "source_location": "L219",
+ "source_file": "src/exlab_wizard/ui/notifications.py",
+ "source_location": "L35",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_constants_test_enums_py",
- "target": "constants_test_enums_test_orchestrator_transport_type_values"
+ "source": "ui_notifications_severity",
+ "target": "strenum"
},
{
- "relation": "contains",
+ "relation": "inherits",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/constants/test_keyring.py",
- "source_location": "L13",
+ "source_file": "src/exlab_wizard/ui/notifications.py",
+ "source_location": "L44",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_constants_test_keyring_py",
- "target": "constants_test_keyring_test_keyring_service_literal"
+ "source": "ui_notifications_bannerid",
+ "target": "strenum"
},
{
- "relation": "contains",
+ "relation": "inherits",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/constants/test_keyring.py",
- "source_location": "L18",
+ "source_file": "src/exlab_wizard/ui/notifications.py",
+ "source_location": "L58",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_constants_test_keyring_py",
- "target": "constants_test_keyring_test_keyring_username_lims_literal"
+ "source": "ui_notifications_containerid",
+ "target": "strenum"
},
{
- "relation": "contains",
+ "relation": "inherits",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/constants/test_keyring.py",
- "source_location": "L23",
+ "source_file": "src/exlab_wizard/ui/keyboard.py",
+ "source_location": "L24",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_constants_test_keyring_py",
- "target": "constants_test_keyring_test_nas_keyring_username_removed"
+ "source": "ui_keyboard_shortcut",
+ "target": "strenum"
},
{
- "relation": "contains",
+ "relation": "inherits",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/constants/test_keyring.py",
- "source_location": "L46",
+ "source_file": "src/exlab_wizard/constants/enums.py",
+ "source_location": "L14",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_constants_test_keyring_py",
- "target": "constants_test_keyring_test_keyring_re_exported_from_package"
+ "source": "constants_enums_runkind",
+ "target": "strenum"
},
{
- "relation": "rationale_for",
+ "relation": "inherits",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/constants/test_keyring.py",
- "source_location": "L1",
+ "source_file": "src/exlab_wizard/constants/enums.py",
+ "source_location": "L24",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "constants_test_keyring_rationale_1",
- "target": "tests_unit_constants_test_keyring_py"
+ "source": "constants_enums_syncstatus",
+ "target": "strenum"
},
{
- "relation": "contains",
+ "relation": "inherits",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/constants/test_keyring.py",
- "source_location": "L23",
+ "source_file": "src/exlab_wizard/constants/enums.py",
+ "source_location": "L41",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_constants_test_keyring_py",
- "target": "constants_test_keyring_test_keyring_username_nas_template_literal"
+ "source": "constants_enums_tier",
+ "target": "strenum"
},
{
- "relation": "contains",
+ "relation": "inherits",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/constants/test_keyring.py",
- "source_location": "L28",
+ "source_file": "src/exlab_wizard/constants/enums.py",
+ "source_location": "L48",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_constants_test_keyring_py",
- "target": "constants_test_keyring_test_keyring_nas_username_formats_template"
+ "source": "constants_enums_problemclass",
+ "target": "strenum"
},
{
- "relation": "contains",
+ "relation": "inherits",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/constants/test_keyring.py",
- "source_location": "L33",
+ "source_file": "src/exlab_wizard/constants/enums.py",
+ "source_location": "L65",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_constants_test_keyring_py",
- "target": "constants_test_keyring_test_keyring_nas_username_handles_various_ids"
+ "source": "constants_enums_findingkind",
+ "target": "strenum"
},
{
- "relation": "contains",
+ "relation": "inherits",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/constants/test_limits.py",
- "source_location": "L12",
+ "source_file": "src/exlab_wizard/constants/enums.py",
+ "source_location": "L76",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_constants_test_limits_py",
- "target": "constants_test_limits_test_plugin_timeout_max_seconds"
+ "source": "constants_enums_templatetype",
+ "target": "strenum"
},
{
- "relation": "contains",
+ "relation": "inherits",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/constants/test_limits.py",
- "source_location": "L17",
+ "source_file": "src/exlab_wizard/constants/enums.py",
+ "source_location": "L84",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_constants_test_limits_py",
- "target": "constants_test_limits_test_plugin_memory_max_mb"
+ "source": "constants_enums_runscope",
+ "target": "strenum"
},
{
- "relation": "contains",
+ "relation": "inherits",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/constants/test_limits.py",
- "source_location": "L22",
+ "source_file": "src/exlab_wizard/constants/enums.py",
+ "source_location": "L95",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_constants_test_limits_py",
- "target": "constants_test_limits_test_plugin_validation_cpu_seconds"
+ "source": "constants_enums_limsprojectstatus",
+ "target": "strenum"
},
{
- "relation": "contains",
+ "relation": "inherits",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/constants/test_limits.py",
- "source_location": "L27",
+ "source_file": "src/exlab_wizard/constants/enums.py",
+ "source_location": "L109",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_constants_test_limits_py",
- "target": "constants_test_limits_test_plugin_validation_memory_mb"
+ "source": "constants_enums_limsprojectsource",
+ "target": "strenum"
},
{
- "relation": "contains",
+ "relation": "inherits",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/constants/test_limits.py",
- "source_location": "L32",
+ "source_file": "src/exlab_wizard/constants/enums.py",
+ "source_location": "L117",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_constants_test_limits_py",
- "target": "constants_test_limits_test_plugin_validation_wall_seconds"
+ "source": "constants_enums_runsyncstate",
+ "target": "strenum"
},
{
- "relation": "contains",
+ "relation": "inherits",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/constants/test_limits.py",
- "source_location": "L37",
+ "source_file": "src/exlab_wizard/constants/enums.py",
+ "source_location": "L137",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_constants_test_limits_py",
- "target": "constants_test_limits_test_plugin_rlimit_nofile"
+ "source": "constants_enums_setupstate",
+ "target": "strenum"
},
{
- "relation": "contains",
+ "relation": "inherits",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/constants/test_limits.py",
- "source_location": "L42",
+ "source_file": "src/exlab_wizard/constants/enums.py",
+ "source_location": "L173",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_constants_test_limits_py",
- "target": "constants_test_limits_test_plugin_ipc_frame_cap_bytes_is_one_mib"
+ "source": "constants_enums_syncmode",
+ "target": "strenum"
},
{
- "relation": "contains",
+ "relation": "inherits",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/constants/test_limits.py",
- "source_location": "L48",
+ "source_file": "src/exlab_wizard/constants/enums.py",
+ "source_location": "L187",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_constants_test_limits_py",
- "target": "constants_test_limits_test_plugin_api_version"
+ "source": "constants_enums_stagingcleanupmode",
+ "target": "strenum"
},
{
- "relation": "contains",
+ "relation": "inherits",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/constants/test_limits.py",
- "source_location": "L54",
+ "source_file": "src/exlab_wizard/constants/enums.py",
+ "source_location": "L194",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_constants_test_limits_py",
- "target": "constants_test_limits_test_plugin_supported_api_versions"
+ "source": "constants_enums_pluginstatus",
+ "target": "strenum"
},
{
- "relation": "contains",
+ "relation": "inherits",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/constants/test_limits.py",
- "source_location": "L62",
+ "source_file": "src/exlab_wizard/constants/enums.py",
+ "source_location": "L204",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_constants_test_limits_py",
- "target": "constants_test_limits_test_plugin_forbidden_path_prefixes"
+ "source": "constants_enums_creationlevel",
+ "target": "strenum"
},
{
- "relation": "contains",
+ "relation": "inherits",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/constants/test_limits.py",
- "source_location": "L72",
+ "source_file": "src/exlab_wizard/constants/enums.py",
+ "source_location": "L225",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_constants_test_limits_py",
- "target": "constants_test_limits_test_label_max_length"
+ "source": "constants_enums_fieldtype",
+ "target": "strenum"
},
{
- "relation": "contains",
+ "relation": "inherits",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/constants/test_limits.py",
- "source_location": "L77",
+ "source_file": "src/exlab_wizard/constants/enums.py",
+ "source_location": "L235",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_constants_test_limits_py",
- "target": "constants_test_limits_test_objective_max_length"
+ "source": "constants_enums_bandwidthday",
+ "target": "strenum"
},
{
- "relation": "contains",
+ "relation": "inherits",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/constants/test_limits.py",
- "source_location": "L82",
+ "source_file": "src/exlab_wizard/constants/enums.py",
+ "source_location": "L247",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_constants_test_limits_py",
- "target": "constants_test_limits_test_validator_binary_detect_bytes"
+ "source": "constants_enums_sessionkind",
+ "target": "strenum"
},
{
- "relation": "contains",
+ "relation": "inherits",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/constants/test_limits.py",
- "source_location": "L87",
+ "source_file": "src/exlab_wizard/constants/enums.py",
+ "source_location": "L259",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_constants_test_limits_py",
- "target": "constants_test_limits_test_log_line_max_bytes"
+ "source": "constants_enums_nextaction",
+ "target": "strenum"
},
{
- "relation": "contains",
+ "relation": "inherits",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/constants/test_limits.py",
- "source_location": "L92",
+ "source_file": "src/exlab_wizard/constants/enums.py",
+ "source_location": "L266",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_constants_test_limits_py",
- "target": "constants_test_limits_test_session_gc_after_seconds"
+ "source": "constants_enums_auditscopekind",
+ "target": "strenum"
},
{
- "relation": "contains",
+ "relation": "inherits",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/constants/test_limits.py",
- "source_location": "L97",
+ "source_file": "src/exlab_wizard/constants/enums.py",
+ "source_location": "L279",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_constants_test_limits_py",
- "target": "constants_test_limits_test_audit_refresh_seconds"
+ "source": "constants_enums_directorylevel",
+ "target": "strenum"
},
{
- "relation": "contains",
+ "relation": "inherits",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/constants/test_limits.py",
- "source_location": "L102",
+ "source_file": "src/exlab_wizard/constants/enums.py",
+ "source_location": "L296",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_constants_test_limits_py",
- "target": "constants_test_limits_test_quit_drain_timeout_seconds"
+ "source": "constants_enums_platform",
+ "target": "strenum"
},
{
- "relation": "contains",
+ "relation": "inherits",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/constants/test_limits.py",
- "source_location": "L107",
+ "source_file": "src/exlab_wizard/constants/enums.py",
+ "source_location": "L304",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_constants_test_limits_py",
- "target": "constants_test_limits_test_sigterm_drain_timeout_seconds"
+ "source": "constants_enums_setupnextaction",
+ "target": "strenum"
},
{
- "relation": "contains",
+ "relation": "inherits",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/constants/test_limits.py",
- "source_location": "L112",
+ "source_file": "src/exlab_wizard/constants/enums.py",
+ "source_location": "L318",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_constants_test_limits_py",
- "target": "constants_test_limits_test_tray_status_refresh_seconds"
+ "source": "constants_enums_synchandlestate",
+ "target": "strenum"
},
{
- "relation": "contains",
+ "relation": "inherits",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/constants/test_limits.py",
- "source_location": "L117",
+ "source_file": "src/exlab_wizard/constants/enums.py",
+ "source_location": "L330",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_constants_test_limits_py",
- "target": "constants_test_limits_test_worker_timeout_grace_seconds"
+ "source": "constants_enums_pluginsourceroot",
+ "target": "strenum"
},
{
- "relation": "contains",
+ "relation": "inherits",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/constants/test_limits.py",
- "source_location": "L122",
+ "source_file": "src/exlab_wizard/constants/enums.py",
+ "source_location": "L337",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_constants_test_limits_py",
- "target": "constants_test_limits_test_window_default_size"
+ "source": "constants_enums_treeprojectstatus",
+ "target": "strenum"
},
{
- "relation": "contains",
+ "relation": "inherits",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/constants/test_limits.py",
- "source_location": "L128",
+ "source_file": "src/exlab_wizard/controller/state_machine.py",
+ "source_location": "L45",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_constants_test_limits_py",
- "target": "constants_test_limits_test_notification_coalesce_seconds"
+ "source": "controller_state_machine_sessionstate",
+ "target": "strenum"
},
{
- "relation": "contains",
+ "relation": "inherits",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/constants/test_limits.py",
- "source_location": "L133",
+ "source_file": "src/exlab_wizard/controller/state_machine.py",
+ "source_location": "L66",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_constants_test_limits_py",
- "target": "constants_test_limits_test_disk_space_preflight_mib"
+ "source": "controller_state_machine_phase",
+ "target": "strenum"
},
{
- "relation": "contains",
+ "relation": "inherits",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/constants/test_limits.py",
- "source_location": "L138",
+ "source_file": "src/exlab_wizard/sync/queue.py",
+ "source_location": "L69",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_constants_test_limits_py",
- "target": "constants_test_limits_test_limits_re_exported_from_package"
+ "source": "sync_queue_syncjobstate",
+ "target": "strenum"
},
{
- "relation": "rationale_for",
+ "relation": "inherits",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/constants/test_limits.py",
- "source_location": "L1",
+ "source_file": "src/exlab_wizard/sync/transports/__init__.py",
+ "source_location": "L21",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "constants_test_limits_rationale_1",
- "target": "tests_unit_constants_test_limits_py"
+ "source": "transports_init_transporterrorkind",
+ "target": "strenum"
},
{
- "relation": "contains",
+ "relation": "inherits",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/constants/test_filenames.py",
- "source_location": "L12",
+ "source_file": "src/exlab_wizard/constants/enums.py",
+ "source_location": "L159",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_constants_test_filenames_py",
- "target": "constants_test_filenames_test_cache_dir_name"
+ "source": "constants_enums_transporttype",
+ "target": "strenum"
},
{
- "relation": "contains",
+ "relation": "inherits",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/constants/test_filenames.py",
- "source_location": "L17",
+ "source_file": "src/exlab_wizard/constants/enums.py",
+ "source_location": "L214",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_constants_test_filenames_py",
- "target": "constants_test_filenames_test_creation_json_name"
+ "source": "constants_enums_orchestratortransporttype",
+ "target": "strenum"
},
{
- "relation": "contains",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/constants/test_filenames.py",
- "source_location": "L22",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/utils/test_state.py",
+ "source_location": "L26",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "tests_unit_constants_test_filenames_py",
- "target": "constants_test_filenames_test_readme_fields_json_name"
+ "source": "utils_test_state_test_allowed_transition_returns_none",
+ "target": "utils_state_assert_forward_transition"
+ },
+ {
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/utils/test_state.py",
+ "source_location": "L31",
+ "weight": 1.0,
+ "source": "utils_test_state_test_disallowed_transition_raises",
+ "target": "utils_state_assert_forward_transition"
+ },
+ {
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/utils/test_state.py",
+ "source_location": "L36",
+ "weight": 1.0,
+ "source": "utils_test_state_test_terminal_transition_raises",
+ "target": "utils_state_assert_forward_transition"
+ },
+ {
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/utils/test_state.py",
+ "source_location": "L44",
+ "weight": 1.0,
+ "source": "utils_test_state_test_unknown_source_raises",
+ "target": "utils_state_assert_forward_transition"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/constants/test_filenames.py",
- "source_location": "L27",
+ "source_file": "tests/unit/tray/test_storage_secret.py",
+ "source_location": "L23",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_constants_test_filenames_py",
- "target": "constants_test_filenames_test_equipment_json_name"
+ "source": "tests_unit_tray_test_storage_secret_py",
+ "target": "tray_test_storage_secret_test_generates_secret_on_first_call"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/constants/test_filenames.py",
- "source_location": "L32",
+ "source_file": "tests/unit/tray/test_storage_secret.py",
+ "source_location": "L31",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_constants_test_filenames_py",
- "target": "constants_test_filenames_test_sync_state_filename"
+ "source": "tests_unit_tray_test_storage_secret_py",
+ "target": "tray_test_storage_secret_test_idempotent_across_calls"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/constants/test_filenames.py",
- "source_location": "L37",
+ "source_file": "tests/unit/tray/test_storage_secret.py",
+ "source_location": "L38",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_constants_test_filenames_py",
- "target": "constants_test_filenames_test_test_runs_json_name"
+ "source": "tests_unit_tray_test_storage_secret_py",
+ "target": "tray_test_storage_secret_test_secret_file_mode_is_0600"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/constants/test_filenames.py",
- "source_location": "L42",
+ "source_file": "tests/unit/tray/test_storage_secret.py",
+ "source_location": "L45",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_constants_test_filenames_py",
- "target": "constants_test_filenames_test_answers_file_name"
+ "source": "tests_unit_tray_test_storage_secret_py",
+ "target": "tray_test_storage_secret_test_regenerates_on_empty_file"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/constants/test_filenames.py",
- "source_location": "L47",
+ "source_file": "tests/unit/tray/test_storage_secret.py",
+ "source_location": "L53",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_constants_test_filenames_py",
- "target": "constants_test_filenames_test_log_file_template"
+ "source": "tests_unit_tray_test_storage_secret_py",
+ "target": "tray_test_storage_secret_test_regenerates_on_whitespace_only_file"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/constants/test_filenames.py",
- "source_location": "L52",
+ "source_file": "tests/unit/tray/test_storage_secret.py",
+ "source_location": "L61",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_constants_test_filenames_py",
- "target": "constants_test_filenames_test_log_file_template_formats"
+ "source": "tests_unit_tray_test_storage_secret_py",
+ "target": "tray_test_storage_secret_test_creates_state_dir_if_missing"
},
{
- "relation": "contains",
+ "relation": "rationale_for",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/constants/test_filenames.py",
- "source_location": "L58",
+ "source_file": "tests/unit/tray/test_storage_secret.py",
+ "source_location": "L1",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_constants_test_filenames_py",
- "target": "constants_test_filenames_test_readme_file_name"
+ "source": "tray_test_storage_secret_rationale_1",
+ "target": "tests_unit_tray_test_storage_secret_py"
},
{
- "relation": "contains",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/constants/test_filenames.py",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/tray/test_storage_secret.py",
+ "source_location": "L24",
+ "weight": 1.0,
+ "source": "tray_test_storage_secret_test_generates_secret_on_first_call",
+ "target": "tray_storage_secret_load_or_create_storage_secret"
+ },
+ {
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/tray/test_storage_secret.py",
+ "source_location": "L32",
+ "weight": 1.0,
+ "source": "tray_test_storage_secret_test_idempotent_across_calls",
+ "target": "tray_storage_secret_load_or_create_storage_secret"
+ },
+ {
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/tray/test_storage_secret.py",
+ "source_location": "L39",
+ "weight": 1.0,
+ "source": "tray_test_storage_secret_test_secret_file_mode_is_0600",
+ "target": "tray_storage_secret_load_or_create_storage_secret"
+ },
+ {
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/tray/test_storage_secret.py",
+ "source_location": "L48",
+ "weight": 1.0,
+ "source": "tray_test_storage_secret_test_regenerates_on_empty_file",
+ "target": "tray_storage_secret_load_or_create_storage_secret"
+ },
+ {
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/tray/test_storage_secret.py",
+ "source_location": "L56",
+ "weight": 1.0,
+ "source": "tray_test_storage_secret_test_regenerates_on_whitespace_only_file",
+ "target": "tray_storage_secret_load_or_create_storage_secret"
+ },
+ {
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/tray/test_storage_secret.py",
"source_location": "L63",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "tests_unit_constants_test_filenames_py",
- "target": "constants_test_filenames_test_copier_manifest_name"
+ "source": "tray_test_storage_secret_test_creates_state_dir_if_missing",
+ "target": "tray_storage_secret_load_or_create_storage_secret"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/constants/test_filenames.py",
- "source_location": "L68",
+ "source_file": "tests/unit/tray/test_dependencies.py",
+ "source_location": "L44",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_constants_test_filenames_py",
- "target": "constants_test_filenames_test_plugin_manifest_name"
+ "source": "tests_unit_tray_test_dependencies_py",
+ "target": "tray_test_dependencies_inmemorykeyring"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/constants/test_filenames.py",
- "source_location": "L73",
+ "source_file": "tests/unit/tray/test_dependencies.py",
+ "source_location": "L63",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_constants_test_filenames_py",
- "target": "constants_test_filenames_test_server_state_file"
+ "source": "tests_unit_tray_test_dependencies_py",
+ "target": "tray_test_dependencies_swap_keyring"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/constants/test_filenames.py",
- "source_location": "L78",
+ "source_file": "tests/unit/tray/test_dependencies.py",
+ "source_location": "L72",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_constants_test_filenames_py",
- "target": "constants_test_filenames_test_lims_cache_db_name"
+ "source": "tests_unit_tray_test_dependencies_py",
+ "target": "tray_test_dependencies_test_build_production_dependencies_exposes_keyring_store"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/constants/test_filenames.py",
- "source_location": "L83",
+ "source_file": "tests/unit/tray/test_dependencies.py",
+ "source_location": "L80",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_constants_test_filenames_py",
- "target": "constants_test_filenames_test_sync_queue_db_name"
+ "source": "tests_unit_tray_test_dependencies_py",
+ "target": "tray_test_dependencies_test_build_production_dependencies_nas_sync_is_a_client"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/constants/test_filenames.py",
- "source_location": "L88",
+ "source_file": "tests/unit/tray/test_dependencies.py",
+ "source_location": "L120",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_constants_test_filenames_py",
- "target": "constants_test_filenames_test_central_log_file"
+ "source": "tests_unit_tray_test_dependencies_py",
+ "target": "tray_test_dependencies_test_check_keyring_present_true_when_lims_password_stored"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/constants/test_filenames.py",
- "source_location": "L93",
+ "source_file": "tests/unit/tray/test_dependencies.py",
+ "source_location": "L137",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_constants_test_filenames_py",
- "target": "constants_test_filenames_test_secrets_file"
+ "source": "tests_unit_tray_test_dependencies_py",
+ "target": "tray_test_dependencies_test_lims_client_password_provider_reads_keyring_under_lims_username"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/constants/test_filenames.py",
- "source_location": "L98",
+ "source_file": "tests/unit/tray/test_dependencies.py",
+ "source_location": "L159",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_constants_test_filenames_py",
- "target": "constants_test_filenames_test_filenames_re_exported_from_package"
+ "source": "tests_unit_tray_test_dependencies_py",
+ "target": "tray_test_dependencies_nas_config_with_two_equipment"
},
{
- "relation": "rationale_for",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/constants/test_filenames.py",
- "source_location": "L1",
+ "source_file": "tests/unit/tray/test_dependencies.py",
+ "source_location": "L170",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "constants_test_filenames_rationale_1",
- "target": "tests_unit_constants_test_filenames_py"
+ "source": "tests_unit_tray_test_dependencies_py",
+ "target": "tray_test_dependencies_nas_config_with_remote"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/io/test_yaml_files.py",
- "source_location": "L13",
+ "source_file": "tests/unit/tray/test_dependencies.py",
+ "source_location": "L178",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_io_test_yaml_files_py",
- "target": "io_test_yaml_files_test_load_yaml_manifest_returns_dict"
+ "source": "tests_unit_tray_test_dependencies_py",
+ "target": "tray_test_dependencies_stubabout"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/io/test_yaml_files.py",
- "source_location": "L19",
+ "source_file": "tests/unit/tray/test_dependencies.py",
+ "source_location": "L185",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_io_test_yaml_files_py",
- "target": "io_test_yaml_files_test_load_yaml_manifest_empty_file_returns_empty_dict"
+ "source": "tests_unit_tray_test_dependencies_py",
+ "target": "tray_test_dependencies_test_make_equipment_probe_targets_nas_remote_not_keyring"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/io/test_yaml_files.py",
- "source_location": "L25",
+ "source_file": "tests/unit/tray/test_dependencies.py",
+ "source_location": "L217",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_io_test_yaml_files_py",
- "target": "io_test_yaml_files_test_load_yaml_manifest_non_dict_returns_empty_dict"
+ "source": "tests_unit_tray_test_dependencies_py",
+ "target": "tray_test_dependencies_test_make_equipment_probe_short_circuits_without_remote"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/io/test_yaml_files.py",
- "source_location": "L32",
+ "source_file": "tests/unit/tray/test_dependencies.py",
+ "source_location": "L231",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_io_test_yaml_files_py",
- "target": "io_test_yaml_files_test_load_yaml_manifest_propagates_yaml_error"
+ "source": "tests_unit_tray_test_dependencies_py",
+ "target": "tray_test_dependencies_test_make_equipment_probe_surfaces_about_failure"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/io/test_yaml_files.py",
- "source_location": "L39",
+ "source_file": "tests/unit/tray/test_dependencies.py",
+ "source_location": "L258",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_io_test_yaml_files_py",
- "target": "io_test_yaml_files_test_load_yaml_manifest_missing_file_raises"
+ "source": "tests_unit_tray_test_dependencies_py",
+ "target": "tray_test_dependencies_test_nas_remote_available_reflects_listremotes"
},
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/io/test_yaml_files.py",
+ "source_file": "tests/unit/tray/test_dependencies.py",
"source_location": "L1",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "io_test_yaml_files_rationale_1",
- "target": "tests_unit_io_test_yaml_files_py"
- },
- {
- "relation": "calls",
- "context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/io/test_yaml_files.py",
- "source_location": "L16",
- "weight": 1.0,
- "source": "io_test_yaml_files_test_load_yaml_manifest_returns_dict",
- "target": "io_yaml_files_load_yaml_manifest"
- },
- {
- "relation": "calls",
- "context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/io/test_yaml_files.py",
- "source_location": "L22",
- "weight": 1.0,
- "source": "io_test_yaml_files_test_load_yaml_manifest_empty_file_returns_empty_dict",
- "target": "io_yaml_files_load_yaml_manifest"
+ "source": "tray_test_dependencies_rationale_1",
+ "target": "tests_unit_tray_test_dependencies_py"
},
{
- "relation": "rationale_for",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/io/test_yaml_files.py",
- "source_location": "L26",
+ "source_file": "tests/unit/tray/test_dependencies.py",
+ "source_location": "L194",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "io_test_yaml_files_rationale_26",
- "target": "io_test_yaml_files_test_load_yaml_manifest_non_dict_returns_empty_dict"
+ "source": "tests_unit_tray_test_dependencies_py",
+ "target": "tray_test_dependencies_test_check_nas_passwords_present_returns_only_populated_ids"
},
{
- "relation": "calls",
- "context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/io/test_yaml_files.py",
- "source_location": "L29",
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/tray/test_dependencies.py",
+ "source_location": "L208",
"weight": 1.0,
- "source": "io_test_yaml_files_test_load_yaml_manifest_non_dict_returns_empty_dict",
- "target": "io_yaml_files_load_yaml_manifest"
+ "confidence_score": 1.0,
+ "source": "tests_unit_tray_test_dependencies_py",
+ "target": "tray_test_dependencies_test_check_nas_passwords_present_handles_none_store_and_config"
},
{
- "relation": "calls",
- "context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/io/test_yaml_files.py",
- "source_location": "L36",
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/tray/test_dependencies.py",
+ "source_location": "L214",
"weight": 1.0,
- "source": "io_test_yaml_files_test_load_yaml_manifest_propagates_yaml_error",
- "target": "io_yaml_files_load_yaml_manifest"
+ "confidence_score": 1.0,
+ "source": "tests_unit_tray_test_dependencies_py",
+ "target": "tray_test_dependencies_test_make_equipment_probe_short_circuits_when_password_missing"
},
{
- "relation": "calls",
- "context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/io/test_yaml_files.py",
- "source_location": "L41",
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/tray/test_dependencies.py",
+ "source_location": "L237",
"weight": 1.0,
- "source": "io_test_yaml_files_test_load_yaml_manifest_missing_file_raises",
- "target": "io_yaml_files_load_yaml_manifest"
+ "confidence_score": 1.0,
+ "source": "tests_unit_tray_test_dependencies_py",
+ "target": "tray_test_dependencies_test_make_equipment_probe_targets_remote_root_with_colon"
},
{
- "relation": "contains",
+ "relation": "method",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/io/test_atomic_write.py",
- "source_location": "L13",
+ "source_file": "tests/unit/tray/test_dependencies.py",
+ "source_location": "L49",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_io_test_atomic_write_py",
- "target": "io_test_atomic_write_test_atomic_write_creates_file"
+ "source": "tray_test_dependencies_inmemorykeyring",
+ "target": "tray_test_dependencies_inmemorykeyring_init"
},
{
- "relation": "contains",
+ "relation": "method",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/io/test_atomic_write.py",
- "source_location": "L19",
+ "source_file": "tests/unit/tray/test_dependencies.py",
+ "source_location": "L52",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_io_test_atomic_write_py",
- "target": "io_test_atomic_write_test_atomic_write_overwrites_existing"
+ "source": "tray_test_dependencies_inmemorykeyring",
+ "target": "tray_test_dependencies_inmemorykeyring_get_password"
},
{
- "relation": "contains",
+ "relation": "method",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/io/test_atomic_write.py",
- "source_location": "L26",
+ "source_file": "tests/unit/tray/test_dependencies.py",
+ "source_location": "L55",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_io_test_atomic_write_py",
- "target": "io_test_atomic_write_test_atomic_write_leaves_no_temp_file_on_success"
+ "source": "tray_test_dependencies_inmemorykeyring",
+ "target": "tray_test_dependencies_inmemorykeyring_set_password"
},
{
- "relation": "contains",
+ "relation": "method",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/io/test_atomic_write.py",
- "source_location": "L33",
+ "source_file": "tests/unit/tray/test_dependencies.py",
+ "source_location": "L58",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_io_test_atomic_write_py",
- "target": "io_test_atomic_write_test_atomic_write_cleans_up_temp_on_replace_failure"
+ "source": "tray_test_dependencies_inmemorykeyring",
+ "target": "tray_test_dependencies_inmemorykeyring_delete_password"
},
{
- "relation": "contains",
+ "relation": "calls",
+ "context": "call",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/io/test_atomic_write.py",
- "source_location": "L48",
+ "source_file": "tests/unit/tray/test_dependencies.py",
+ "source_location": "L128",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_io_test_atomic_write_py",
- "target": "io_test_atomic_write_test_atomic_write_skip_fsync"
+ "source": "tray_test_dependencies_test_check_keyring_present_true_when_lims_password_stored",
+ "target": "tray_test_dependencies_inmemorykeyring"
},
{
- "relation": "contains",
+ "relation": "calls",
+ "context": "call",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/io/test_atomic_write.py",
- "source_location": "L56",
+ "source_file": "tests/unit/tray/test_dependencies.py",
+ "source_location": "L142",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_io_test_atomic_write_py",
- "target": "io_test_atomic_write_test_atomic_write_calls_fsync_by_default"
+ "source": "tray_test_dependencies_test_lims_client_password_provider_reads_keyring_under_lims_username",
+ "target": "tray_test_dependencies_inmemorykeyring"
},
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/io/test_atomic_write.py",
- "source_location": "L1",
+ "source_file": "tests/unit/tray/test_dependencies.py",
+ "source_location": "L40",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "io_test_atomic_write_rationale_1",
- "target": "tests_unit_io_test_atomic_write_py"
+ "source": "tray_test_dependencies_rationale_40",
+ "target": "tray_test_dependencies_inmemorykeyring"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "uses",
"confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/io/test_atomic_write.py",
- "source_location": "L15",
- "weight": 1.0,
- "source": "io_test_atomic_write_test_atomic_write_creates_file",
- "target": "io_atomic_write_atomic_write_bytes"
+ "source_file": "tests/unit/tray/test_dependencies.py",
+ "source_location": "L23",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "tray_test_dependencies_inmemorykeyring",
+ "target": "config_models_config"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "uses",
"confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/io/test_atomic_write.py",
- "source_location": "L22",
- "weight": 1.0,
- "source": "io_test_atomic_write_test_atomic_write_overwrites_existing",
- "target": "io_atomic_write_atomic_write_bytes"
+ "source_file": "tests/unit/tray/test_dependencies.py",
+ "source_location": "L23",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "tray_test_dependencies_inmemorykeyring",
+ "target": "config_models_equipmentconfig"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "uses",
"confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/io/test_atomic_write.py",
- "source_location": "L28",
- "weight": 1.0,
- "source": "io_test_atomic_write_test_atomic_write_leaves_no_temp_file_on_success",
- "target": "io_atomic_write_atomic_write_bytes"
+ "source_file": "tests/unit/tray/test_dependencies.py",
+ "source_location": "L23",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "tray_test_dependencies_inmemorykeyring",
+ "target": "config_models_pathsconfig"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "uses",
"confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/io/test_atomic_write.py",
- "source_location": "L41",
- "weight": 1.0,
- "source": "io_test_atomic_write_test_atomic_write_cleans_up_temp_on_replace_failure",
- "target": "io_atomic_write_atomic_write_bytes"
+ "source_file": "tests/unit/tray/test_dependencies.py",
+ "source_location": "L32",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "tray_test_dependencies_inmemorykeyring",
+ "target": "lims_keyring_store_keyringstore"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "uses",
"confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/io/test_atomic_write.py",
- "source_location": "L51",
- "weight": 1.0,
- "source": "io_test_atomic_write_test_atomic_write_skip_fsync",
- "target": "io_atomic_write_atomic_write_bytes"
+ "source_file": "tests/unit/tray/test_dependencies.py",
+ "source_location": "L33",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "tray_test_dependencies_inmemorykeyring",
+ "target": "sync_nas_client_nassyncclient"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "uses",
"confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/io/test_atomic_write.py",
- "source_location": "L59",
- "weight": 1.0,
- "source": "io_test_atomic_write_test_atomic_write_calls_fsync_by_default",
- "target": "io_atomic_write_atomic_write_bytes"
+ "source_file": "tests/unit/tray/test_dependencies.py",
+ "source_location": "L172",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "tray_test_dependencies_inmemorykeyring",
+ "target": "config_models_nasconfig"
},
{
- "relation": "contains",
+ "relation": "calls",
+ "context": "call",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/io/test_json_files.py",
- "source_location": "L18",
+ "source_file": "tests/unit/tray/test_dependencies.py",
+ "source_location": "L197",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_io_test_json_files_py",
- "target": "io_test_json_files_dummy"
+ "source": "tray_test_dependencies_test_check_nas_passwords_present_returns_only_populated_ids",
+ "target": "tray_test_dependencies_inmemorykeyring"
},
{
- "relation": "contains",
+ "relation": "calls",
+ "context": "call",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/io/test_json_files.py",
- "source_location": "L23",
+ "source_file": "tests/unit/tray/test_dependencies.py",
+ "source_location": "L220",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_io_test_json_files_py",
- "target": "io_test_json_files_test_require_schema_major_accepts_matching_major"
+ "source": "tray_test_dependencies_test_make_equipment_probe_short_circuits_when_password_missing",
+ "target": "tray_test_dependencies_inmemorykeyring"
},
{
- "relation": "contains",
+ "relation": "calls",
+ "context": "call",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/io/test_json_files.py",
- "source_location": "L27",
+ "source_file": "tests/unit/tray/test_dependencies.py",
+ "source_location": "L260",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_io_test_json_files_py",
- "target": "io_test_json_files_test_require_schema_major_rejects_different_major"
+ "source": "tray_test_dependencies_test_make_equipment_probe_targets_remote_root_with_colon",
+ "target": "tray_test_dependencies_inmemorykeyring"
},
{
- "relation": "contains",
+ "relation": "rationale_for",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/io/test_json_files.py",
- "source_location": "L34",
+ "source_file": "tests/unit/tray/test_dependencies.py",
+ "source_location": "L45",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_io_test_json_files_py",
- "target": "io_test_json_files_test_require_schema_major_rejects_empty"
+ "source": "tray_test_dependencies_rationale_45",
+ "target": "tray_test_dependencies_inmemorykeyring"
},
{
- "relation": "contains",
+ "relation": "uses",
+ "confidence": "INFERRED",
+ "source_file": "tests/unit/tray/test_dependencies.py",
+ "source_location": "L23",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "tray_test_dependencies_inmemorykeyring",
+ "target": "config_models_bandwidthconfig"
+ },
+ {
+ "relation": "uses",
+ "confidence": "INFERRED",
+ "source_file": "tests/unit/tray/test_dependencies.py",
+ "source_location": "L23",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "tray_test_dependencies_inmemorykeyring",
+ "target": "config_models_rclonesftptransport"
+ },
+ {
+ "relation": "calls",
+ "context": "call",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/io/test_json_files.py",
- "source_location": "L39",
+ "source_file": "tests/unit/tray/test_dependencies.py",
+ "source_location": "L130",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_io_test_json_files_py",
- "target": "io_test_json_files_test_require_schema_major_rejects_none"
+ "source": "tray_test_dependencies_test_check_keyring_present_true_when_lims_password_stored",
+ "target": "tray_test_dependencies_inmemorykeyring_set_password"
},
{
- "relation": "contains",
+ "relation": "calls",
+ "context": "call",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/io/test_json_files.py",
- "source_location": "L44",
+ "source_file": "tests/unit/tray/test_dependencies.py",
+ "source_location": "L144",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_io_test_json_files_py",
- "target": "io_test_json_files_test_require_schema_major_rejects_unparseable"
+ "source": "tray_test_dependencies_test_lims_client_password_provider_reads_keyring_under_lims_username",
+ "target": "tray_test_dependencies_inmemorykeyring_set_password"
},
{
- "relation": "contains",
+ "relation": "calls",
+ "context": "call",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/io/test_json_files.py",
- "source_location": "L49",
+ "source_file": "tests/unit/tray/test_dependencies.py",
+ "source_location": "L200",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_io_test_json_files_py",
- "target": "io_test_json_files_test_read_msgspec_json_decodes_to_struct"
+ "source": "tray_test_dependencies_test_check_nas_passwords_present_returns_only_populated_ids",
+ "target": "tray_test_dependencies_inmemorykeyring_set_password"
},
{
- "relation": "contains",
+ "relation": "calls",
+ "context": "call",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/io/test_json_files.py",
- "source_location": "L57",
+ "source_file": "tests/unit/tray/test_dependencies.py",
+ "source_location": "L263",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_io_test_json_files_py",
- "target": "io_test_json_files_test_read_msgspec_json_with_matching_major"
+ "source": "tray_test_dependencies_test_make_equipment_probe_targets_remote_root_with_colon",
+ "target": "tray_test_dependencies_inmemorykeyring_set_password"
},
{
- "relation": "contains",
+ "relation": "calls",
+ "context": "call",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/io/test_json_files.py",
- "source_location": "L64",
+ "source_file": "tests/unit/tray/test_dependencies.py",
+ "source_location": "L128",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_io_test_json_files_py",
- "target": "io_test_json_files_test_read_msgspec_json_rejects_wrong_major"
+ "source": "tray_test_dependencies_test_check_keyring_present_true_when_lims_password_stored",
+ "target": "tray_test_dependencies_swap_keyring"
},
{
- "relation": "contains",
+ "relation": "calls",
+ "context": "call",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/io/test_json_files.py",
- "source_location": "L71",
+ "source_file": "tests/unit/tray/test_dependencies.py",
+ "source_location": "L142",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_io_test_json_files_py",
- "target": "io_test_json_files_test_read_msgspec_json_passes_through_malformed"
+ "source": "tray_test_dependencies_test_lims_client_password_provider_reads_keyring_under_lims_username",
+ "target": "tray_test_dependencies_swap_keyring"
},
{
- "relation": "contains",
+ "relation": "calls",
+ "context": "call",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/io/test_json_files.py",
- "source_location": "L79",
+ "source_file": "tests/unit/tray/test_dependencies.py",
+ "source_location": "L197",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_io_test_json_files_py",
- "target": "io_test_json_files_test_read_msgspec_json_raw_returns_dict"
+ "source": "tray_test_dependencies_test_check_nas_passwords_present_returns_only_populated_ids",
+ "target": "tray_test_dependencies_swap_keyring"
},
{
- "relation": "contains",
+ "relation": "calls",
+ "context": "call",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/io/test_json_files.py",
- "source_location": "L86",
+ "source_file": "tests/unit/tray/test_dependencies.py",
+ "source_location": "L220",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_io_test_json_files_py",
- "target": "io_test_json_files_test_read_msgspec_json_raw_with_matching_major"
+ "source": "tray_test_dependencies_test_make_equipment_probe_short_circuits_when_password_missing",
+ "target": "tray_test_dependencies_swap_keyring"
},
{
- "relation": "contains",
+ "relation": "calls",
+ "context": "call",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/io/test_json_files.py",
- "source_location": "L93",
+ "source_file": "tests/unit/tray/test_dependencies.py",
+ "source_location": "L260",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_io_test_json_files_py",
- "target": "io_test_json_files_test_read_msgspec_json_raw_rejects_wrong_major"
+ "source": "tray_test_dependencies_test_make_equipment_probe_targets_remote_root_with_colon",
+ "target": "tray_test_dependencies_swap_keyring"
},
{
- "relation": "contains",
+ "relation": "rationale_for",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/io/test_json_files.py",
- "source_location": "L100",
+ "source_file": "tests/unit/tray/test_dependencies.py",
+ "source_location": "L68",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_io_test_json_files_py",
- "target": "io_test_json_files_test_read_msgspec_json_raw_skips_check_when_version_missing"
+ "source": "tray_test_dependencies_rationale_68",
+ "target": "tray_test_dependencies_test_build_production_dependencies_exposes_keyring_store"
+ },
+ {
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/tray/test_dependencies.py",
+ "source_location": "L75",
+ "weight": 1.0,
+ "source": "tray_test_dependencies_test_build_production_dependencies_exposes_keyring_store",
+ "target": "tray_dependencies_build_production_dependencies"
},
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/io/test_json_files.py",
- "source_location": "L1",
+ "source_file": "tests/unit/tray/test_dependencies.py",
+ "source_location": "L73",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "io_test_json_files_rationale_1",
- "target": "tests_unit_io_test_json_files_py"
+ "source": "tray_test_dependencies_rationale_73",
+ "target": "tray_test_dependencies_test_build_production_dependencies_exposes_keyring_store"
},
{
- "relation": "uses",
- "confidence": "INFERRED",
- "source_file": "tests/unit/io/test_json_files.py",
- "source_location": "L10",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "io_test_json_files_dummy",
- "target": "exlab_wizard_errors_schemamajormismatcherror"
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/tray/test_dependencies.py",
+ "source_location": "L78",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "tray_test_dependencies_rationale_78",
+ "target": "tray_test_dependencies_test_build_production_dependencies_nas_sync_is_a_client"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "tests/unit/io/test_json_files.py",
- "source_location": "L24",
+ "source_file": "tests/unit/tray/test_dependencies.py",
+ "source_location": "L93",
"weight": 1.0,
- "source": "io_test_json_files_test_require_schema_major_accepts_matching_major",
- "target": "io_json_files_require_schema_major"
+ "source": "tray_test_dependencies_test_build_production_dependencies_nas_sync_is_a_client",
+ "target": "config_models_pathsconfig"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "tests/unit/io/test_json_files.py",
- "source_location": "L29",
+ "source_file": "tests/unit/tray/test_dependencies.py",
+ "source_location": "L95",
"weight": 1.0,
- "source": "io_test_json_files_test_require_schema_major_rejects_different_major",
- "target": "io_json_files_require_schema_major"
+ "source": "tray_test_dependencies_test_build_production_dependencies_nas_sync_is_a_client",
+ "target": "config_models_equipmentconfig"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "tests/unit/io/test_json_files.py",
- "source_location": "L36",
+ "source_file": "tests/unit/tray/test_dependencies.py",
+ "source_location": "L113",
"weight": 1.0,
- "source": "io_test_json_files_test_require_schema_major_rejects_empty",
- "target": "io_json_files_require_schema_major"
+ "source": "tray_test_dependencies_test_build_production_dependencies_nas_sync_is_a_client",
+ "target": "tray_dependencies_build_production_dependencies"
},
{
- "relation": "calls",
- "context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/io/test_json_files.py",
- "source_location": "L41",
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/tray/test_dependencies.py",
+ "source_location": "L83",
"weight": 1.0,
- "source": "io_test_json_files_test_require_schema_major_rejects_none",
- "target": "io_json_files_require_schema_major"
+ "confidence_score": 1.0,
+ "source": "tray_test_dependencies_rationale_83",
+ "target": "tray_test_dependencies_test_build_production_dependencies_nas_sync_is_a_client"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "tests/unit/io/test_json_files.py",
- "source_location": "L46",
+ "source_file": "tests/unit/tray/test_dependencies.py",
+ "source_location": "L101",
"weight": 1.0,
- "source": "io_test_json_files_test_require_schema_major_rejects_unparseable",
- "target": "io_json_files_require_schema_major"
+ "source": "tray_test_dependencies_test_build_production_dependencies_nas_sync_is_a_client",
+ "target": "config_models_rclonesftptransport"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "tests/unit/io/test_json_files.py",
- "source_location": "L52",
+ "source_file": "tests/unit/tray/test_dependencies.py",
+ "source_location": "L106",
"weight": 1.0,
- "source": "io_test_json_files_test_read_msgspec_json_decodes_to_struct",
- "target": "io_json_files_read_msgspec_json"
+ "source": "tray_test_dependencies_test_build_production_dependencies_nas_sync_is_a_client",
+ "target": "config_models_bandwidthconfig"
+ },
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/tray/test_dependencies.py",
+ "source_location": "L109",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "tray_test_dependencies_rationale_109",
+ "target": "tray_test_dependencies_test_check_keyring_present_true_when_lims_password_stored"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "tests/unit/io/test_json_files.py",
- "source_location": "L60",
+ "source_file": "tests/unit/tray/test_dependencies.py",
+ "source_location": "L129",
"weight": 1.0,
- "source": "io_test_json_files_test_read_msgspec_json_with_matching_major",
- "target": "io_json_files_read_msgspec_json"
+ "source": "tray_test_dependencies_test_check_keyring_present_true_when_lims_password_stored",
+ "target": "lims_keyring_store_keyringstore"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "tests/unit/io/test_json_files.py",
- "source_location": "L68",
+ "source_file": "tests/unit/tray/test_dependencies.py",
+ "source_location": "L134",
"weight": 1.0,
- "source": "io_test_json_files_test_read_msgspec_json_rejects_wrong_major",
- "target": "io_json_files_read_msgspec_json"
+ "source": "tray_test_dependencies_test_check_keyring_present_true_when_lims_password_stored",
+ "target": "tray_dependencies_check_keyring_present"
},
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/io/test_json_files.py",
- "source_location": "L72",
+ "source_file": "tests/unit/tray/test_dependencies.py",
+ "source_location": "L121",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "io_test_json_files_rationale_72",
- "target": "io_test_json_files_test_read_msgspec_json_passes_through_malformed"
+ "source": "tray_test_dependencies_rationale_121",
+ "target": "tray_test_dependencies_test_check_keyring_present_true_when_lims_password_stored"
+ },
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/tray/test_dependencies.py",
+ "source_location": "L128",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "tray_test_dependencies_rationale_128",
+ "target": "tray_test_dependencies_test_lims_client_password_provider_reads_keyring_under_lims_username"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "tests/unit/io/test_json_files.py",
- "source_location": "L76",
+ "source_file": "tests/unit/tray/test_dependencies.py",
+ "source_location": "L143",
"weight": 1.0,
- "source": "io_test_json_files_test_read_msgspec_json_passes_through_malformed",
- "target": "io_json_files_read_msgspec_json"
+ "source": "tray_test_dependencies_test_lims_client_password_provider_reads_keyring_under_lims_username",
+ "target": "lims_keyring_store_keyringstore"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "tests/unit/io/test_json_files.py",
- "source_location": "L82",
+ "source_file": "tests/unit/tray/test_dependencies.py",
+ "source_location": "L149",
"weight": 1.0,
- "source": "io_test_json_files_test_read_msgspec_json_raw_returns_dict",
- "target": "io_json_files_read_msgspec_json_raw"
+ "source": "tray_test_dependencies_test_lims_client_password_provider_reads_keyring_under_lims_username",
+ "target": "tray_dependencies_build_lims_client"
+ },
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/tray/test_dependencies.py",
+ "source_location": "L140",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "tray_test_dependencies_rationale_140",
+ "target": "tray_test_dependencies_test_lims_client_password_provider_reads_keyring_under_lims_username"
},
{
"relation": "calls",
"context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/io/test_json_files.py",
- "source_location": "L89",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/tray/test_dependencies.py",
+ "source_location": "L174",
"weight": 1.0,
- "source": "io_test_json_files_test_read_msgspec_json_raw_with_matching_major",
- "target": "io_json_files_read_msgspec_json_raw"
+ "confidence_score": 1.0,
+ "source": "tray_test_dependencies_nas_config_with_remote",
+ "target": "tray_test_dependencies_nas_config_with_two_equipment"
},
{
"relation": "calls",
"context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/io/test_json_files.py",
- "source_location": "L97",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/tray/test_dependencies.py",
+ "source_location": "L222",
"weight": 1.0,
- "source": "io_test_json_files_test_read_msgspec_json_raw_rejects_wrong_major",
- "target": "io_json_files_read_msgspec_json_raw"
+ "confidence_score": 1.0,
+ "source": "tray_test_dependencies_test_make_equipment_probe_short_circuits_without_remote",
+ "target": "tray_test_dependencies_nas_config_with_two_equipment"
},
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/io/test_json_files.py",
- "source_location": "L103",
+ "source_file": "tests/unit/tray/test_dependencies.py",
+ "source_location": "L148",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "io_test_json_files_rationale_103",
- "target": "io_test_json_files_test_read_msgspec_json_raw_skips_check_when_version_missing"
+ "source": "tray_test_dependencies_rationale_148",
+ "target": "tray_test_dependencies_nas_config_with_two_equipment"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "tests/unit/io/test_json_files.py",
- "source_location": "L107",
+ "source_file": "tests/unit/tray/test_dependencies.py",
+ "source_location": "L162",
"weight": 1.0,
- "source": "io_test_json_files_test_read_msgspec_json_raw_skips_check_when_version_missing",
- "target": "io_json_files_read_msgspec_json_raw"
+ "source": "tray_test_dependencies_nas_config_with_two_equipment",
+ "target": "config_models_pathsconfig"
},
{
- "relation": "rationale_for",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/tray/test_dependencies.py",
+ "source_location": "L164",
+ "weight": 1.0,
+ "source": "tray_test_dependencies_nas_config_with_two_equipment",
+ "target": "config_models_equipmentconfig"
+ },
+ {
+ "relation": "calls",
+ "context": "call",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/template/__init__.py",
- "source_location": "L1",
+ "source_file": "tests/unit/tray/test_dependencies.py",
+ "source_location": "L201",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "template_init_rationale_1",
- "target": "tests_unit_template_init_py"
+ "source": "tray_test_dependencies_test_check_nas_passwords_present_returns_only_populated_ids",
+ "target": "tray_test_dependencies_nas_config_with_two_equipment"
},
{
- "relation": "rationale_for",
+ "relation": "calls",
+ "context": "call",
"confidence": "EXTRACTED",
- "source_file": "src/exlab_wizard/template/__init__.py",
- "source_location": "L1",
+ "source_file": "tests/unit/tray/test_dependencies.py",
+ "source_location": "L209",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "template_init_rationale_1",
- "target": "src_exlab_wizard_template_init_py"
+ "source": "tray_test_dependencies_test_check_nas_passwords_present_handles_none_store_and_config",
+ "target": "tray_test_dependencies_nas_config_with_two_equipment"
},
{
- "relation": "contains",
+ "relation": "calls",
+ "context": "call",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/template/test_copier_driver.py",
- "source_location": "L59",
+ "source_file": "tests/unit/tray/test_dependencies.py",
+ "source_location": "L222",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_template_test_copier_driver_py",
- "target": "template_test_copier_driver_test_core_readme_field_ids_pins_the_three_core_fields"
+ "source": "tray_test_dependencies_test_make_equipment_probe_short_circuits_when_password_missing",
+ "target": "tray_test_dependencies_nas_config_with_two_equipment"
},
{
- "relation": "contains",
+ "relation": "calls",
+ "context": "call",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/template/test_copier_driver.py",
- "source_location": "L70",
+ "source_file": "tests/unit/tray/test_dependencies.py",
+ "source_location": "L262",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_template_test_copier_driver_py",
- "target": "template_test_copier_driver_test_resolve_project_basic_returns_resolved_template"
+ "source": "tray_test_dependencies_test_make_equipment_probe_targets_remote_root_with_colon",
+ "target": "tray_test_dependencies_nas_config_with_two_equipment"
},
{
- "relation": "contains",
+ "relation": "rationale_for",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/template/test_copier_driver.py",
- "source_location": "L90",
+ "source_file": "tests/unit/tray/test_dependencies.py",
+ "source_location": "L160",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_template_test_copier_driver_py",
- "target": "template_test_copier_driver_test_resolve_run_basic_experimental_sets_run_scope_experimental"
+ "source": "tray_test_dependencies_rationale_160",
+ "target": "tray_test_dependencies_nas_config_with_two_equipment"
},
{
- "relation": "contains",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/tray/test_dependencies.py",
+ "source_location": "L170",
+ "weight": 1.0,
+ "source": "tray_test_dependencies_nas_config_with_two_equipment",
+ "target": "config_models_rclonesftptransport"
+ },
+ {
+ "relation": "calls",
+ "context": "call",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/template/test_copier_driver.py",
- "source_location": "L100",
+ "source_file": "tests/unit/tray/test_dependencies.py",
+ "source_location": "L208",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_template_test_copier_driver_py",
- "target": "template_test_copier_driver_test_resolve_run_basic_test_sets_run_scope_test"
+ "source": "tray_test_dependencies_test_make_equipment_probe_targets_nas_remote_not_keyring",
+ "target": "tray_test_dependencies_nas_config_with_remote"
},
{
- "relation": "contains",
+ "relation": "calls",
+ "context": "call",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/template/test_copier_driver.py",
- "source_location": "L108",
+ "source_file": "tests/unit/tray/test_dependencies.py",
+ "source_location": "L249",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_template_test_copier_driver_py",
- "target": "template_test_copier_driver_test_resolve_run_basic_both_sets_run_scope_both"
+ "source": "tray_test_dependencies_test_make_equipment_probe_surfaces_about_failure",
+ "target": "tray_test_dependencies_nas_config_with_remote"
},
{
- "relation": "contains",
+ "relation": "calls",
+ "context": "call",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/template/test_copier_driver.py",
- "source_location": "L121",
+ "source_file": "tests/unit/tray/test_dependencies.py",
+ "source_location": "L274",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_template_test_copier_driver_py",
- "target": "template_test_copier_driver_test_resolve_missing_version_raises_template_load_error_mentioning_field"
+ "source": "tray_test_dependencies_test_nas_remote_available_reflects_listremotes",
+ "target": "tray_test_dependencies_nas_config_with_remote"
},
{
- "relation": "contains",
+ "relation": "rationale_for",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/template/test_copier_driver.py",
- "source_location": "L130",
+ "source_file": "tests/unit/tray/test_dependencies.py",
+ "source_location": "L171",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_template_test_copier_driver_py",
- "target": "template_test_copier_driver_test_resolve_redeclares_core_raises_core_field_redeclared_naming_offender"
+ "source": "tray_test_dependencies_rationale_171",
+ "target": "tray_test_dependencies_nas_config_with_remote"
},
{
- "relation": "contains",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/tray/test_dependencies.py",
+ "source_location": "L175",
+ "weight": 1.0,
+ "source": "tray_test_dependencies_nas_config_with_remote",
+ "target": "config_models_nasconfig"
+ },
+ {
+ "relation": "method",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/template/test_copier_driver.py",
- "source_location": "L138",
+ "source_file": "tests/unit/tray/test_dependencies.py",
+ "source_location": "L179",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_template_test_copier_driver_py",
- "target": "template_test_copier_driver_test_resolve_redeclares_core_is_also_caught_as_template_load_error"
+ "source": "tray_test_dependencies_stubabout",
+ "target": "tray_test_dependencies_stubabout_init"
+ },
+ {
+ "relation": "uses",
+ "confidence": "INFERRED",
+ "source_file": "tests/unit/tray/test_dependencies.py",
+ "source_location": "L22",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "tray_test_dependencies_stubabout",
+ "target": "config_models_config"
+ },
+ {
+ "relation": "uses",
+ "confidence": "INFERRED",
+ "source_file": "tests/unit/tray/test_dependencies.py",
+ "source_location": "L22",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "tray_test_dependencies_stubabout",
+ "target": "config_models_equipmentconfig"
+ },
+ {
+ "relation": "uses",
+ "confidence": "INFERRED",
+ "source_file": "tests/unit/tray/test_dependencies.py",
+ "source_location": "L22",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "tray_test_dependencies_stubabout",
+ "target": "config_models_pathsconfig"
+ },
+ {
+ "relation": "uses",
+ "confidence": "INFERRED",
+ "source_file": "tests/unit/tray/test_dependencies.py",
+ "source_location": "L28",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "tray_test_dependencies_stubabout",
+ "target": "lims_keyring_store_keyringstore"
+ },
+ {
+ "relation": "uses",
+ "confidence": "INFERRED",
+ "source_file": "tests/unit/tray/test_dependencies.py",
+ "source_location": "L29",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "tray_test_dependencies_stubabout",
+ "target": "sync_nas_client_nassyncclient"
},
{
- "relation": "contains",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/template/test_copier_driver.py",
- "source_location": "L146",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "tests_unit_template_test_copier_driver_py",
- "target": "template_test_copier_driver_test_resolve_missing_copier_yml_raises_template_load_error"
+ "relation": "uses",
+ "confidence": "INFERRED",
+ "source_file": "tests/unit/tray/test_dependencies.py",
+ "source_location": "L172",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "tray_test_dependencies_stubabout",
+ "target": "config_models_nasconfig"
},
{
- "relation": "contains",
+ "relation": "rationale_for",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/template/test_copier_driver.py",
- "source_location": "L156",
+ "source_file": "tests/unit/tray/test_dependencies.py",
+ "source_location": "L188",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_template_test_copier_driver_py",
- "target": "template_test_copier_driver_test_resolve_scope_mismatch_raises_template_load_error"
+ "source": "tray_test_dependencies_rationale_188",
+ "target": "tray_test_dependencies_test_make_equipment_probe_targets_nas_remote_not_keyring"
},
{
- "relation": "contains",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/template/test_copier_driver.py",
- "source_location": "L165",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/tray/test_dependencies.py",
+ "source_location": "L205",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "tests_unit_template_test_copier_driver_py",
- "target": "template_test_copier_driver_test_resolve_run_template_missing_run_scope_raises"
+ "source": "tray_test_dependencies_test_make_equipment_probe_targets_nas_remote_not_keyring",
+ "target": "tray_dependencies_build_production_dependencies"
},
{
- "relation": "contains",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/template/test_copier_driver.py",
- "source_location": "L179",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/tray/test_dependencies.py",
+ "source_location": "L210",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "tests_unit_template_test_copier_driver_py",
- "target": "template_test_copier_driver_test_resolve_run_template_invalid_run_scope_raises"
+ "source": "tray_test_dependencies_test_make_equipment_probe_targets_nas_remote_not_keyring",
+ "target": "tray_dependencies_make_equipment_probe"
},
{
- "relation": "contains",
+ "relation": "rationale_for",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/template/test_copier_driver.py",
- "source_location": "L198",
+ "source_file": "tests/unit/tray/test_dependencies.py",
+ "source_location": "L218",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_template_test_copier_driver_py",
- "target": "template_test_copier_driver_test_resolve_with_tasks_does_not_raise"
+ "source": "tray_test_dependencies_rationale_218",
+ "target": "tray_test_dependencies_test_make_equipment_probe_short_circuits_without_remote"
},
{
- "relation": "contains",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/template/test_copier_driver.py",
- "source_location": "L208",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/tray/test_dependencies.py",
+ "source_location": "L221",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "tests_unit_template_test_copier_driver_py",
- "target": "template_test_copier_driver_test_resolve_with_tasks_emits_warning_log"
+ "source": "tray_test_dependencies_test_make_equipment_probe_short_circuits_without_remote",
+ "target": "tray_dependencies_build_production_dependencies"
},
{
- "relation": "contains",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/template/test_copier_driver.py",
- "source_location": "L227",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/tray/test_dependencies.py",
+ "source_location": "L224",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "tests_unit_template_test_copier_driver_py",
- "target": "template_test_copier_driver_test_render_project_basic_writes_readme"
+ "source": "tray_test_dependencies_test_make_equipment_probe_short_circuits_without_remote",
+ "target": "tray_dependencies_make_equipment_probe"
},
{
- "relation": "contains",
+ "relation": "rationale_for",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/template/test_copier_driver.py",
- "source_location": "L245",
+ "source_file": "tests/unit/tray/test_dependencies.py",
+ "source_location": "L234",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_template_test_copier_driver_py",
- "target": "template_test_copier_driver_test_render_project_basic_files_written_lists_the_readme"
+ "source": "tray_test_dependencies_rationale_234",
+ "target": "tray_test_dependencies_test_make_equipment_probe_surfaces_about_failure"
},
{
- "relation": "contains",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/template/test_copier_driver.py",
- "source_location": "L263",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/tray/test_dependencies.py",
+ "source_location": "L248",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "tests_unit_template_test_copier_driver_py",
- "target": "template_test_copier_driver_test_render_with_tasks_silently_ignores_tasks_and_writes_file"
+ "source": "tray_test_dependencies_test_make_equipment_probe_surfaces_about_failure",
+ "target": "tray_dependencies_build_production_dependencies"
},
{
- "relation": "contains",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/template/test_copier_driver.py",
- "source_location": "L288",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/tray/test_dependencies.py",
+ "source_location": "L251",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "tests_unit_template_test_copier_driver_py",
- "target": "template_test_copier_driver_test_render_into_dst_with_conflicting_files_raises"
+ "source": "tray_test_dependencies_test_make_equipment_probe_surfaces_about_failure",
+ "target": "tray_dependencies_make_equipment_probe"
},
{
- "relation": "contains",
+ "relation": "rationale_for",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/template/test_copier_driver.py",
- "source_location": "L322",
+ "source_file": "tests/unit/tray/test_dependencies.py",
+ "source_location": "L261",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_template_test_copier_driver_py",
- "target": "template_test_copier_driver_test_render_calls_copier_run_copy_with_spec_kwargs"
+ "source": "tray_test_dependencies_rationale_261",
+ "target": "tray_test_dependencies_test_nas_remote_available_reflects_listremotes"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/template/test_copier_driver.py",
- "source_location": "L350",
+ "source_file": "tests/unit/tray/test_icon.py",
+ "source_location": "L18",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_template_test_copier_driver_py",
- "target": "template_test_copier_driver_test_resolve_unreadable_copier_yml_raises_template_load_error"
+ "source": "tests_unit_tray_test_icon_py",
+ "target": "tray_test_icon_fakemenu"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/template/test_copier_driver.py",
- "source_location": "L371",
+ "source_file": "tests/unit/tray/test_icon.py",
+ "source_location": "L25",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_template_test_copier_driver_py",
- "target": "template_test_copier_driver_test_resolve_malformed_yaml_raises_template_load_error"
+ "source": "tests_unit_tray_test_icon_py",
+ "target": "tray_test_icon_fakemenuitem"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/template/test_copier_driver.py",
- "source_location": "L387",
+ "source_file": "tests/unit/tray/test_icon.py",
+ "source_location": "L40",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_template_test_copier_driver_py",
- "target": "template_test_copier_driver_test_resolve_empty_copier_yml_treats_manifest_as_empty_and_rejects_missing_type"
+ "source": "tests_unit_tray_test_icon_py",
+ "target": "tray_test_icon_fakeicon"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/template/test_copier_driver.py",
- "source_location": "L403",
+ "source_file": "tests/unit/tray/test_icon.py",
+ "source_location": "L48",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_template_test_copier_driver_py",
- "target": "template_test_copier_driver_test_resolve_non_mapping_yaml_raises_template_load_error"
+ "source": "tests_unit_tray_test_icon_py",
+ "target": "tray_test_icon_fakepystray"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/template/test_copier_driver.py",
- "source_location": "L421",
+ "source_file": "tests/unit/tray/test_icon.py",
+ "source_location": "L54",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_template_test_copier_driver_py",
- "target": "template_test_copier_driver_test_resolve_missing_exlab_type_raises_template_load_error"
+ "source": "tests_unit_tray_test_icon_py",
+ "target": "tray_test_icon_test_build_icon_returns_icon_object"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/template/test_copier_driver.py",
- "source_location": "L436",
+ "source_file": "tests/unit/tray/test_icon.py",
+ "source_location": "L71",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_template_test_copier_driver_py",
- "target": "template_test_copier_driver_test_resolve_invalid_exlab_type_value_raises_template_load_error"
+ "source": "tests_unit_tray_test_icon_py",
+ "target": "tray_test_icon_test_open_menu_item_invokes_callback"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/template/test_copier_driver.py",
- "source_location": "L461",
+ "source_file": "tests/unit/tray/test_icon.py",
+ "source_location": "L85",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_template_test_copier_driver_py",
- "target": "template_test_copier_driver_test_resolve_readme_fields_with_non_core_entries_passes_through"
+ "source": "tests_unit_tray_test_icon_py",
+ "target": "tray_test_icon_test_quit_menu_item_invokes_callback"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/template/test_copier_driver.py",
- "source_location": "L488",
+ "source_file": "tests/unit/tray/test_icon.py",
+ "source_location": "L99",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_template_test_copier_driver_py",
- "target": "template_test_copier_driver_test_resolve_readme_block_not_a_mapping_yields_empty_extra_fields"
+ "source": "tests_unit_tray_test_icon_py",
+ "target": "tray_test_icon_test_status_label_callable"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/template/test_copier_driver.py",
- "source_location": "L505",
+ "source_file": "tests/unit/tray/test_icon.py",
+ "source_location": "L112",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_template_test_copier_driver_py",
- "target": "template_test_copier_driver_test_resolve_readme_fields_not_a_list_yields_empty_extra_fields"
+ "source": "tests_unit_tray_test_icon_py",
+ "target": "tray_test_icon_test_callback_exception_is_swallowed"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/template/test_copier_driver.py",
- "source_location": "L532",
+ "source_file": "tests/unit/tray/test_icon.py",
+ "source_location": "L127",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_template_test_copier_driver_py",
- "target": "template_test_copier_driver_test_resolve_non_string_description_falls_back_to_empty"
+ "source": "tests_unit_tray_test_icon_py",
+ "target": "tray_test_icon_test_default_icon_image_returns_pillow_image"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/template/test_copier_driver.py",
- "source_location": "L548",
+ "source_file": "tests/unit/tray/test_icon.py",
+ "source_location": "L133",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_template_test_copier_driver_py",
- "target": "template_test_copier_driver_test_resolve_plugin_order_preserved"
+ "source": "tests_unit_tray_test_icon_py",
+ "target": "tray_test_icon_test_lazy_pystray_import"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/template/test_copier_driver.py",
- "source_location": "L567",
+ "source_file": "tests/unit/tray/test_icon.py",
+ "source_location": "L148",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_template_test_copier_driver_py",
- "target": "template_test_copier_driver_test_resolve_non_list_plugin_order_falls_back_to_empty"
+ "source": "tests_unit_tray_test_icon_py",
+ "target": "tray_test_icon_test_separator_present"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/template/test_copier_driver.py",
- "source_location": "L587",
+ "source_file": "tests/unit/tray/test_icon.py",
+ "source_location": "L158",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_template_test_copier_driver_py",
- "target": "template_test_copier_driver_test_render_snapshots_existing_regular_file_at_dst"
+ "source": "tests_unit_tray_test_icon_py",
+ "target": "tray_test_icon_test_import_pystray_returns_module"
},
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/template/test_copier_driver.py",
+ "source_file": "tests/unit/tray/test_icon.py",
"source_location": "L1",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "template_test_copier_driver_rationale_1",
- "target": "tests_unit_template_test_copier_driver_py"
- },
- {
- "relation": "calls",
- "context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/template/test_copier_driver.py",
- "source_location": "L71",
- "weight": 1.0,
- "source": "template_test_copier_driver_test_resolve_project_basic_returns_resolved_template",
- "target": "template_copier_driver_templateengine"
- },
- {
- "relation": "calls",
- "context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/template/test_copier_driver.py",
- "source_location": "L91",
- "weight": 1.0,
- "source": "template_test_copier_driver_test_resolve_run_basic_experimental_sets_run_scope_experimental",
- "target": "template_copier_driver_templateengine"
- },
- {
- "relation": "calls",
- "context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/template/test_copier_driver.py",
- "source_location": "L101",
- "weight": 1.0,
- "source": "template_test_copier_driver_test_resolve_run_basic_test_sets_run_scope_test",
- "target": "template_copier_driver_templateengine"
- },
- {
- "relation": "calls",
- "context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/template/test_copier_driver.py",
- "source_location": "L109",
- "weight": 1.0,
- "source": "template_test_copier_driver_test_resolve_run_basic_both_sets_run_scope_both",
- "target": "template_copier_driver_templateengine"
- },
- {
- "relation": "calls",
- "context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/template/test_copier_driver.py",
- "source_location": "L124",
- "weight": 1.0,
- "source": "template_test_copier_driver_test_resolve_missing_version_raises_template_load_error_mentioning_field",
- "target": "template_copier_driver_templateengine"
- },
- {
- "relation": "calls",
- "context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/template/test_copier_driver.py",
- "source_location": "L131",
- "weight": 1.0,
- "source": "template_test_copier_driver_test_resolve_redeclares_core_raises_core_field_redeclared_naming_offender",
- "target": "template_copier_driver_templateengine"
- },
- {
- "relation": "calls",
- "context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/template/test_copier_driver.py",
- "source_location": "L141",
- "weight": 1.0,
- "source": "template_test_copier_driver_test_resolve_redeclares_core_is_also_caught_as_template_load_error",
- "target": "template_copier_driver_templateengine"
- },
- {
- "relation": "calls",
- "context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/template/test_copier_driver.py",
- "source_location": "L148",
- "weight": 1.0,
- "source": "template_test_copier_driver_test_resolve_missing_copier_yml_raises_template_load_error",
- "target": "template_copier_driver_templateengine"
- },
- {
- "relation": "calls",
- "context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/template/test_copier_driver.py",
- "source_location": "L158",
- "weight": 1.0,
- "source": "template_test_copier_driver_test_resolve_scope_mismatch_raises_template_load_error",
- "target": "template_copier_driver_templateengine"
- },
- {
- "relation": "calls",
- "context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/template/test_copier_driver.py",
- "source_location": "L173",
- "weight": 1.0,
- "source": "template_test_copier_driver_test_resolve_run_template_missing_run_scope_raises",
- "target": "template_copier_driver_templateengine"
- },
- {
- "relation": "calls",
- "context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/template/test_copier_driver.py",
- "source_location": "L187",
- "weight": 1.0,
- "source": "template_test_copier_driver_test_resolve_run_template_invalid_run_scope_raises",
- "target": "template_copier_driver_templateengine"
- },
- {
- "relation": "calls",
- "context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/template/test_copier_driver.py",
- "source_location": "L200",
- "weight": 1.0,
- "source": "template_test_copier_driver_test_resolve_with_tasks_does_not_raise",
- "target": "template_copier_driver_templateengine"
- },
- {
- "relation": "calls",
- "context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/template/test_copier_driver.py",
- "source_location": "L211",
- "weight": 1.0,
- "source": "template_test_copier_driver_test_resolve_with_tasks_emits_warning_log",
- "target": "template_copier_driver_templateengine"
- },
- {
- "relation": "calls",
- "context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/template/test_copier_driver.py",
- "source_location": "L228",
- "weight": 1.0,
- "source": "template_test_copier_driver_test_render_project_basic_writes_readme",
- "target": "template_copier_driver_templateengine"
+ "source": "tray_test_icon_rationale_1",
+ "target": "tests_unit_tray_test_icon_py"
},
{
- "relation": "calls",
- "context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/template/test_copier_driver.py",
- "source_location": "L248",
+ "relation": "method",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/tray/test_icon.py",
+ "source_location": "L21",
"weight": 1.0,
- "source": "template_test_copier_driver_test_render_project_basic_files_written_lists_the_readme",
- "target": "template_copier_driver_templateengine"
+ "confidence_score": 1.0,
+ "source": "tray_test_icon_fakemenu",
+ "target": "tray_test_icon_fakemenu_init"
},
{
- "relation": "calls",
- "context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/template/test_copier_driver.py",
- "source_location": "L272",
+ "relation": "method",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/tray/test_icon.py",
+ "source_location": "L26",
"weight": 1.0,
- "source": "template_test_copier_driver_test_render_with_tasks_silently_ignores_tasks_and_writes_file",
- "target": "template_copier_driver_templateengine"
+ "confidence_score": 1.0,
+ "source": "tray_test_icon_fakemenuitem",
+ "target": "tray_test_icon_fakemenuitem_init"
},
{
- "relation": "calls",
- "context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/template/test_copier_driver.py",
- "source_location": "L297",
+ "relation": "method",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/tray/test_icon.py",
+ "source_location": "L41",
"weight": 1.0,
- "source": "template_test_copier_driver_test_render_into_dst_with_conflicting_files_raises",
- "target": "template_copier_driver_templateengine"
+ "confidence_score": 1.0,
+ "source": "tray_test_icon_fakeicon",
+ "target": "tray_test_icon_fakeicon_init"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "tests/unit/template/test_copier_driver.py",
- "source_location": "L327",
+ "source_file": "tests/unit/tray/test_icon.py",
+ "source_location": "L57",
"weight": 1.0,
- "source": "template_test_copier_driver_test_render_calls_copier_run_copy_with_spec_kwargs",
- "target": "template_copier_driver_templateengine"
+ "source": "tray_test_icon_test_build_icon_returns_icon_object",
+ "target": "tray_icon_build_icon"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "tests/unit/template/test_copier_driver.py",
- "source_location": "L362",
+ "source_file": "tests/unit/tray/test_icon.py",
+ "source_location": "L73",
"weight": 1.0,
- "source": "template_test_copier_driver_test_resolve_unreadable_copier_yml_raises_template_load_error",
- "target": "template_copier_driver_templateengine"
+ "source": "tray_test_icon_test_open_menu_item_invokes_callback",
+ "target": "tray_icon_build_icon"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "tests/unit/template/test_copier_driver.py",
- "source_location": "L381",
+ "source_file": "tests/unit/tray/test_icon.py",
+ "source_location": "L87",
"weight": 1.0,
- "source": "template_test_copier_driver_test_resolve_malformed_yaml_raises_template_load_error",
- "target": "template_copier_driver_templateengine"
+ "source": "tray_test_icon_test_quit_menu_item_invokes_callback",
+ "target": "tray_icon_build_icon"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "tests/unit/template/test_copier_driver.py",
- "source_location": "L397",
+ "source_file": "tests/unit/tray/test_icon.py",
+ "source_location": "L100",
"weight": 1.0,
- "source": "template_test_copier_driver_test_resolve_empty_copier_yml_treats_manifest_as_empty_and_rejects_missing_type",
- "target": "template_copier_driver_templateengine"
+ "source": "tray_test_icon_test_status_label_callable",
+ "target": "tray_icon_build_icon"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "tests/unit/template/test_copier_driver.py",
- "source_location": "L415",
+ "source_file": "tests/unit/tray/test_icon.py",
+ "source_location": "L116",
"weight": 1.0,
- "source": "template_test_copier_driver_test_resolve_non_mapping_yaml_raises_template_load_error",
- "target": "template_copier_driver_templateengine"
+ "source": "tray_test_icon_test_callback_exception_is_swallowed",
+ "target": "tray_icon_build_icon"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "tests/unit/template/test_copier_driver.py",
- "source_location": "L430",
+ "source_file": "tests/unit/tray/test_icon.py",
+ "source_location": "L128",
"weight": 1.0,
- "source": "template_test_copier_driver_test_resolve_missing_exlab_type_raises_template_load_error",
- "target": "template_copier_driver_templateengine"
+ "source": "tray_test_icon_test_default_icon_image_returns_pillow_image",
+ "target": "tray_icon_default_icon_image"
},
{
- "relation": "calls",
- "context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/template/test_copier_driver.py",
- "source_location": "L448",
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/tray/test_icon.py",
+ "source_location": "L134",
"weight": 1.0,
- "source": "template_test_copier_driver_test_resolve_invalid_exlab_type_value_raises_template_load_error",
- "target": "template_copier_driver_templateengine"
+ "confidence_score": 1.0,
+ "source": "tray_test_icon_rationale_134",
+ "target": "tray_test_icon_test_lazy_pystray_import"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "tests/unit/template/test_copier_driver.py",
- "source_location": "L481",
+ "source_file": "tests/unit/tray/test_icon.py",
+ "source_location": "L140",
"weight": 1.0,
- "source": "template_test_copier_driver_test_resolve_readme_fields_with_non_core_entries_passes_through",
- "target": "template_copier_driver_templateengine"
+ "source": "tray_test_icon_test_lazy_pystray_import",
+ "target": "tray_icon_build_icon"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "tests/unit/template/test_copier_driver.py",
- "source_location": "L500",
+ "source_file": "tests/unit/tray/test_icon.py",
+ "source_location": "L149",
"weight": 1.0,
- "source": "template_test_copier_driver_test_resolve_readme_block_not_a_mapping_yields_empty_extra_fields",
- "target": "template_copier_driver_templateengine"
+ "source": "tray_test_icon_test_separator_present",
+ "target": "tray_icon_build_icon"
},
{
- "relation": "calls",
- "context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/template/test_copier_driver.py",
- "source_location": "L522",
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/tray/test_icon.py",
+ "source_location": "L159",
"weight": 1.0,
- "source": "template_test_copier_driver_test_resolve_readme_fields_not_a_list_yields_empty_extra_fields",
- "target": "template_copier_driver_templateengine"
+ "confidence_score": 1.0,
+ "source": "tray_test_icon_rationale_159",
+ "target": "tray_test_icon_test_import_pystray_returns_module"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "tests/unit/template/test_copier_driver.py",
- "source_location": "L543",
+ "source_file": "tests/unit/tray/test_icon.py",
+ "source_location": "L166",
"weight": 1.0,
- "source": "template_test_copier_driver_test_resolve_non_string_description_falls_back_to_empty",
- "target": "template_copier_driver_templateengine"
+ "source": "tray_test_icon_test_import_pystray_returns_module",
+ "target": "tray_icon_import_pystray"
},
{
- "relation": "calls",
- "context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/template/test_copier_driver.py",
- "source_location": "L562",
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/tray/test_live_reload.py",
+ "source_location": "L40",
"weight": 1.0,
- "source": "template_test_copier_driver_test_resolve_plugin_order_preserved",
- "target": "template_copier_driver_templateengine"
+ "confidence_score": 1.0,
+ "source": "tests_unit_tray_test_live_reload_py",
+ "target": "tray_test_live_reload_stub_configure_logging"
},
{
- "relation": "calls",
- "context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/template/test_copier_driver.py",
- "source_location": "L577",
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/tray/test_live_reload.py",
+ "source_location": "L54",
"weight": 1.0,
- "source": "template_test_copier_driver_test_resolve_non_list_plugin_order_falls_back_to_empty",
- "target": "template_copier_driver_templateengine"
+ "confidence_score": 1.0,
+ "source": "tests_unit_tray_test_live_reload_py",
+ "target": "tray_test_live_reload_equipment"
},
{
- "relation": "calls",
- "context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/template/test_copier_driver.py",
- "source_location": "L592",
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/tray/test_live_reload.py",
+ "source_location": "L70",
"weight": 1.0,
- "source": "template_test_copier_driver_test_render_snapshots_existing_regular_file_at_dst",
- "target": "template_copier_driver_templateengine"
+ "confidence_score": 1.0,
+ "source": "tests_unit_tray_test_live_reload_py",
+ "target": "tray_test_live_reload_config"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/utils/test_time.py",
- "source_location": "L20",
+ "source_file": "tests/unit/tray/test_live_reload.py",
+ "source_location": "L86",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_utils_test_time_py",
- "target": "utils_test_time_test_utc_now_iso_format"
+ "source": "tests_unit_tray_test_live_reload_py",
+ "target": "tray_test_live_reload_recordingcomponent"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/utils/test_time.py",
- "source_location": "L25",
+ "source_file": "tests/unit/tray/test_live_reload.py",
+ "source_location": "L98",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_utils_test_time_py",
- "target": "utils_test_time_test_dt_to_iso_naive_assumed_utc"
+ "source": "tests_unit_tray_test_live_reload_py",
+ "target": "tray_test_live_reload_recordingvalidator"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/utils/test_time.py",
- "source_location": "L30",
+ "source_file": "tests/unit/tray/test_live_reload.py",
+ "source_location": "L106",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_utils_test_time_py",
- "target": "utils_test_time_test_dt_to_iso_utc_aware"
+ "source": "tests_unit_tray_test_live_reload_py",
+ "target": "tray_test_live_reload_asyncstub"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/utils/test_time.py",
- "source_location": "L35",
+ "source_file": "tests/unit/tray/test_live_reload.py",
+ "source_location": "L120",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_utils_test_time_py",
- "target": "utils_test_time_test_dt_to_iso_non_utc_zone_converts"
+ "source": "tests_unit_tray_test_live_reload_py",
+ "target": "tray_test_live_reload_running_deps"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/utils/test_time.py",
- "source_location": "L42",
+ "source_file": "tests/unit/tray/test_live_reload.py",
+ "source_location": "L136",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_utils_test_time_py",
- "target": "utils_test_time_test_parse_utc_iso_z_form"
+ "source": "tests_unit_tray_test_live_reload_py",
+ "target": "tray_test_live_reload_test_reconfigures_existing_components_in_place"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/utils/test_time.py",
- "source_location": "L47",
+ "source_file": "tests/unit/tray/test_live_reload.py",
+ "source_location": "L150",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_utils_test_time_py",
- "target": "utils_test_time_test_parse_utc_iso_offset_form"
+ "source": "tests_unit_tray_test_live_reload_py",
+ "target": "tray_test_live_reload_test_skips_logging_reconfigure_when_unchanged"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/utils/test_time.py",
- "source_location": "L52",
+ "source_file": "tests/unit/tray/test_live_reload.py",
+ "source_location": "L156",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_utils_test_time_py",
- "target": "utils_test_time_test_parse_utc_iso_naive_input_tagged_utc"
+ "source": "tests_unit_tray_test_live_reload_py",
+ "target": "tray_test_live_reload_test_component_failure_is_isolated"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/utils/test_time.py",
- "source_location": "L57",
+ "source_file": "tests/unit/tray/test_live_reload.py",
+ "source_location": "L182",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_utils_test_time_py",
- "target": "utils_test_time_test_parse_utc_iso_round_trip_with_now"
+ "source": "tests_unit_tray_test_live_reload_py",
+ "target": "tray_test_live_reload_test_rebuilds_lims_only_on_endpoint_change"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/utils/test_time.py",
- "source_location": "L63",
+ "source_file": "tests/unit/tray/test_live_reload.py",
+ "source_location": "L201",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_utils_test_time_py",
- "target": "utils_test_time_test_parse_utc_iso_raises_on_garbage"
+ "source": "tests_unit_tray_test_live_reload_py",
+ "target": "tray_test_live_reload_test_rebuilds_plugin_host_only_on_dir_change"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/utils/test_time.py",
- "source_location": "L68",
+ "source_file": "tests/unit/tray/test_live_reload.py",
+ "source_location": "L226",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_utils_test_time_py",
- "target": "utils_test_time_test_parse_utc_iso_or_none_handles_none"
+ "source": "tests_unit_tray_test_live_reload_py",
+ "target": "tray_test_live_reload_test_builds_and_starts_components_on_fresh_install"
},
{
- "relation": "contains",
+ "relation": "rationale_for",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/utils/test_time.py",
- "source_location": "L72",
+ "source_file": "tests/unit/tray/test_live_reload.py",
+ "source_location": "L1",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_utils_test_time_py",
- "target": "utils_test_time_test_parse_utc_iso_or_none_handles_empty"
+ "source": "tray_test_live_reload_rationale_1",
+ "target": "tests_unit_tray_test_live_reload_py"
},
{
- "relation": "contains",
+ "relation": "rationale_for",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/utils/test_time.py",
- "source_location": "L76",
+ "source_file": "tests/unit/tray/test_live_reload.py",
+ "source_location": "L39",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_utils_test_time_py",
- "target": "utils_test_time_test_parse_utc_iso_or_none_handles_malformed"
+ "source": "tray_test_live_reload_rationale_39",
+ "target": "tray_test_live_reload_stub_configure_logging"
},
{
- "relation": "contains",
+ "relation": "rationale_for",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/utils/test_time.py",
- "source_location": "L80",
+ "source_file": "tests/unit/tray/test_live_reload.py",
+ "source_location": "L41",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_utils_test_time_py",
- "target": "utils_test_time_test_parse_utc_iso_or_none_returns_datetime_for_valid"
+ "source": "tray_test_live_reload_rationale_41",
+ "target": "tray_test_live_reload_stub_configure_logging"
},
{
- "relation": "rationale_for",
+ "relation": "calls",
+ "context": "call",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/utils/test_time.py",
- "source_location": "L1",
+ "source_file": "tests/unit/tray/test_live_reload.py",
+ "source_location": "L82",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "utils_test_time_rationale_1",
- "target": "tests_unit_utils_test_time_py"
+ "source": "tray_test_live_reload_config",
+ "target": "tray_test_live_reload_equipment"
},
{
"relation": "calls",
"context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/utils/test_time.py",
- "source_location": "L21",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/tray/test_live_reload.py",
+ "source_location": "L138",
"weight": 1.0,
- "source": "utils_test_time_test_utc_now_iso_format",
- "target": "utils_time_utc_now_iso"
+ "confidence_score": 1.0,
+ "source": "tray_test_live_reload_test_reconfigures_existing_components_in_place",
+ "target": "tray_test_live_reload_equipment"
},
{
"relation": "calls",
"context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/utils/test_time.py",
- "source_location": "L27",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/tray/test_live_reload.py",
+ "source_location": "L166",
"weight": 1.0,
- "source": "utils_test_time_test_dt_to_iso_naive_assumed_utc",
- "target": "utils_time_dt_to_iso"
+ "confidence_score": 1.0,
+ "source": "tray_test_live_reload_test_component_failure_is_isolated",
+ "target": "tray_test_live_reload_equipment"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "tests/unit/utils/test_time.py",
- "source_location": "L32",
+ "source_file": "tests/unit/tray/test_live_reload.py",
+ "source_location": "L55",
"weight": 1.0,
- "source": "utils_test_time_test_dt_to_iso_utc_aware",
- "target": "utils_time_dt_to_iso"
+ "source": "tray_test_live_reload_equipment",
+ "target": "config_models_equipmentconfig"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "tests/unit/utils/test_time.py",
- "source_location": "L39",
+ "source_file": "tests/unit/tray/test_live_reload.py",
+ "source_location": "L60",
"weight": 1.0,
- "source": "utils_test_time_test_dt_to_iso_non_utc_zone_converts",
- "target": "utils_time_dt_to_iso"
+ "source": "tray_test_live_reload_equipment",
+ "target": "config_models_rclonesftptransport"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "tests/unit/utils/test_time.py",
- "source_location": "L43",
+ "source_file": "tests/unit/tray/test_live_reload.py",
+ "source_location": "L65",
"weight": 1.0,
- "source": "utils_test_time_test_parse_utc_iso_z_form",
- "target": "utils_time_parse_utc_iso"
+ "source": "tray_test_live_reload_equipment",
+ "target": "config_models_bandwidthconfig"
},
{
"relation": "calls",
"context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/utils/test_time.py",
- "source_location": "L48",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/tray/test_live_reload.py",
+ "source_location": "L123",
"weight": 1.0,
- "source": "utils_test_time_test_parse_utc_iso_offset_form",
- "target": "utils_time_parse_utc_iso"
+ "confidence_score": 1.0,
+ "source": "tray_test_live_reload_running_deps",
+ "target": "tray_test_live_reload_config"
},
{
"relation": "calls",
"context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/utils/test_time.py",
- "source_location": "L53",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/tray/test_live_reload.py",
+ "source_location": "L138",
"weight": 1.0,
- "source": "utils_test_time_test_parse_utc_iso_naive_input_tagged_utc",
- "target": "utils_time_parse_utc_iso"
+ "confidence_score": 1.0,
+ "source": "tray_test_live_reload_test_reconfigures_existing_components_in_place",
+ "target": "tray_test_live_reload_config"
},
{
"relation": "calls",
"context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/utils/test_time.py",
- "source_location": "L58",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/tray/test_live_reload.py",
+ "source_location": "L152",
"weight": 1.0,
- "source": "utils_test_time_test_parse_utc_iso_round_trip_with_now",
- "target": "utils_time_utc_now_iso"
+ "confidence_score": 1.0,
+ "source": "tray_test_live_reload_test_skips_logging_reconfigure_when_unchanged",
+ "target": "tray_test_live_reload_config"
},
{
"relation": "calls",
"context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/utils/test_time.py",
- "source_location": "L59",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/tray/test_live_reload.py",
+ "source_location": "L166",
"weight": 1.0,
- "source": "utils_test_time_test_parse_utc_iso_round_trip_with_now",
- "target": "utils_time_parse_utc_iso"
+ "confidence_score": 1.0,
+ "source": "tray_test_live_reload_test_component_failure_is_isolated",
+ "target": "tray_test_live_reload_config"
},
{
"relation": "calls",
"context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/utils/test_time.py",
- "source_location": "L60",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/tray/test_live_reload.py",
+ "source_location": "L186",
"weight": 1.0,
- "source": "utils_test_time_test_parse_utc_iso_round_trip_with_now",
- "target": "utils_time_dt_to_iso"
+ "confidence_score": 1.0,
+ "source": "tray_test_live_reload_test_rebuilds_lims_only_on_endpoint_change",
+ "target": "tray_test_live_reload_config"
},
{
"relation": "calls",
"context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/utils/test_time.py",
- "source_location": "L65",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/tray/test_live_reload.py",
+ "source_location": "L205",
"weight": 1.0,
- "source": "utils_test_time_test_parse_utc_iso_raises_on_garbage",
- "target": "utils_time_parse_utc_iso"
+ "confidence_score": 1.0,
+ "source": "tray_test_live_reload_test_rebuilds_plugin_host_only_on_dir_change",
+ "target": "tray_test_live_reload_config"
},
{
"relation": "calls",
"context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/utils/test_time.py",
- "source_location": "L69",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/tray/test_live_reload.py",
+ "source_location": "L242",
"weight": 1.0,
- "source": "utils_test_time_test_parse_utc_iso_or_none_handles_none",
- "target": "utils_time_parse_utc_iso_or_none"
+ "confidence_score": 1.0,
+ "source": "tray_test_live_reload_test_builds_and_starts_components_on_fresh_install",
+ "target": "tray_test_live_reload_config"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "tests/unit/utils/test_time.py",
- "source_location": "L73",
+ "source_file": "tests/unit/tray/test_live_reload.py",
+ "source_location": "L79",
"weight": 1.0,
- "source": "utils_test_time_test_parse_utc_iso_or_none_handles_empty",
- "target": "utils_time_parse_utc_iso_or_none"
+ "source": "tray_test_live_reload_config",
+ "target": "config_models_pathsconfig"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "tests/unit/utils/test_time.py",
- "source_location": "L77",
+ "source_file": "tests/unit/tray/test_live_reload.py",
+ "source_location": "L80",
"weight": 1.0,
- "source": "utils_test_time_test_parse_utc_iso_or_none_handles_malformed",
- "target": "utils_time_parse_utc_iso_or_none"
+ "source": "tray_test_live_reload_config",
+ "target": "config_models_limsconfig"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "tests/unit/utils/test_time.py",
+ "source_file": "tests/unit/tray/test_live_reload.py",
"source_location": "L81",
"weight": 1.0,
- "source": "utils_test_time_test_parse_utc_iso_or_none_returns_datetime_for_valid",
- "target": "utils_time_parse_utc_iso_or_none"
- },
- {
- "relation": "contains",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/utils/test_state.py",
- "source_location": "L12",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "tests_unit_utils_test_state_py",
- "target": "utils_test_state_state"
+ "source": "tray_test_live_reload_config",
+ "target": "config_models_loggingconfig"
},
{
- "relation": "contains",
+ "relation": "method",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/utils/test_state.py",
- "source_location": "L25",
+ "source_file": "tests/unit/tray/test_live_reload.py",
+ "source_location": "L89",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_utils_test_state_py",
- "target": "utils_test_state_test_allowed_transition_returns_none"
+ "source": "tray_test_live_reload_recordingcomponent",
+ "target": "tray_test_live_reload_recordingcomponent_init"
},
{
- "relation": "contains",
+ "relation": "method",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/utils/test_state.py",
- "source_location": "L29",
+ "source_file": "tests/unit/tray/test_live_reload.py",
+ "source_location": "L93",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_utils_test_state_py",
- "target": "utils_test_state_test_disallowed_transition_raises"
+ "source": "tray_test_live_reload_recordingcomponent",
+ "target": "tray_test_live_reload_recordingcomponent_apply_config"
},
{
- "relation": "contains",
+ "relation": "calls",
+ "context": "call",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/utils/test_state.py",
- "source_location": "L34",
+ "source_file": "tests/unit/tray/test_live_reload.py",
+ "source_location": "L125",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_utils_test_state_py",
- "target": "utils_test_state_test_terminal_transition_raises"
+ "source": "tray_test_live_reload_running_deps",
+ "target": "tray_test_live_reload_recordingcomponent"
},
{
- "relation": "contains",
+ "relation": "rationale_for",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/utils/test_state.py",
- "source_location": "L39",
+ "source_file": "tests/unit/tray/test_live_reload.py",
+ "source_location": "L78",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_utils_test_state_py",
- "target": "utils_test_state_test_unknown_source_raises"
+ "source": "tray_test_live_reload_rationale_78",
+ "target": "tray_test_live_reload_recordingcomponent"
},
{
- "relation": "rationale_for",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/utils/test_state.py",
- "source_location": "L1",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "utils_test_state_rationale_1",
- "target": "tests_unit_utils_test_state_py"
+ "relation": "uses",
+ "confidence": "INFERRED",
+ "source_file": "tests/unit/tray/test_live_reload.py",
+ "source_location": "L21",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "tray_test_live_reload_recordingcomponent",
+ "target": "api_app_appdependencies"
},
{
- "relation": "inherits",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/utils/test_state.py",
- "source_location": "L12",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "utils_test_state_state",
- "target": "strenum"
+ "relation": "uses",
+ "confidence": "INFERRED",
+ "source_file": "tests/unit/tray/test_live_reload.py",
+ "source_location": "L22",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "tray_test_live_reload_recordingcomponent",
+ "target": "config_models_config"
},
{
- "relation": "inherits",
- "confidence": "EXTRACTED",
- "source_file": "src/exlab_wizard/ui/notifications.py",
- "source_location": "L35",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "ui_notifications_severity",
- "target": "strenum"
+ "relation": "uses",
+ "confidence": "INFERRED",
+ "source_file": "tests/unit/tray/test_live_reload.py",
+ "source_location": "L22",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "tray_test_live_reload_recordingcomponent",
+ "target": "config_models_equipmentconfig"
},
{
- "relation": "inherits",
- "confidence": "EXTRACTED",
- "source_file": "src/exlab_wizard/ui/notifications.py",
- "source_location": "L44",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "ui_notifications_bannerid",
- "target": "strenum"
+ "relation": "uses",
+ "confidence": "INFERRED",
+ "source_file": "tests/unit/tray/test_live_reload.py",
+ "source_location": "L22",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "tray_test_live_reload_recordingcomponent",
+ "target": "config_models_limsconfig"
},
{
- "relation": "inherits",
- "confidence": "EXTRACTED",
- "source_file": "src/exlab_wizard/ui/notifications.py",
- "source_location": "L58",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "ui_notifications_containerid",
- "target": "strenum"
+ "relation": "uses",
+ "confidence": "INFERRED",
+ "source_file": "tests/unit/tray/test_live_reload.py",
+ "source_location": "L22",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "tray_test_live_reload_recordingcomponent",
+ "target": "config_models_loggingconfig"
},
{
- "relation": "inherits",
- "confidence": "EXTRACTED",
- "source_file": "src/exlab_wizard/ui/keyboard.py",
- "source_location": "L24",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "ui_keyboard_shortcut",
- "target": "strenum"
+ "relation": "uses",
+ "confidence": "INFERRED",
+ "source_file": "tests/unit/tray/test_live_reload.py",
+ "source_location": "L22",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "tray_test_live_reload_recordingcomponent",
+ "target": "config_models_pathsconfig"
},
{
- "relation": "inherits",
+ "relation": "rationale_for",
"confidence": "EXTRACTED",
- "source_file": "src/exlab_wizard/constants/enums.py",
- "source_location": "L14",
+ "source_file": "tests/unit/tray/test_live_reload.py",
+ "source_location": "L87",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "constants_enums_runkind",
- "target": "strenum"
+ "source": "tray_test_live_reload_rationale_87",
+ "target": "tray_test_live_reload_recordingcomponent"
},
{
- "relation": "inherits",
- "confidence": "EXTRACTED",
- "source_file": "src/exlab_wizard/constants/enums.py",
- "source_location": "L24",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "constants_enums_syncstatus",
- "target": "strenum"
+ "relation": "uses",
+ "confidence": "INFERRED",
+ "source_file": "tests/unit/tray/test_live_reload.py",
+ "source_location": "L22",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "tray_test_live_reload_recordingcomponent",
+ "target": "config_models_bandwidthconfig"
},
{
- "relation": "inherits",
- "confidence": "EXTRACTED",
- "source_file": "src/exlab_wizard/constants/enums.py",
- "source_location": "L41",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "constants_enums_tier",
- "target": "strenum"
+ "relation": "uses",
+ "confidence": "INFERRED",
+ "source_file": "tests/unit/tray/test_live_reload.py",
+ "source_location": "L22",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "tray_test_live_reload_recordingcomponent",
+ "target": "config_models_rclonesftptransport"
},
{
- "relation": "inherits",
+ "relation": "method",
"confidence": "EXTRACTED",
- "source_file": "src/exlab_wizard/constants/enums.py",
- "source_location": "L48",
+ "source_file": "tests/unit/tray/test_live_reload.py",
+ "source_location": "L99",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "constants_enums_problemclass",
- "target": "strenum"
+ "source": "tray_test_live_reload_recordingvalidator",
+ "target": "tray_test_live_reload_recordingvalidator_init"
},
{
- "relation": "inherits",
+ "relation": "method",
"confidence": "EXTRACTED",
- "source_file": "src/exlab_wizard/constants/enums.py",
- "source_location": "L65",
+ "source_file": "tests/unit/tray/test_live_reload.py",
+ "source_location": "L102",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "constants_enums_findingkind",
- "target": "strenum"
+ "source": "tray_test_live_reload_recordingvalidator",
+ "target": "tray_test_live_reload_recordingvalidator_reconfigure"
},
{
- "relation": "inherits",
+ "relation": "calls",
+ "context": "call",
"confidence": "EXTRACTED",
- "source_file": "src/exlab_wizard/constants/enums.py",
- "source_location": "L76",
+ "source_file": "tests/unit/tray/test_live_reload.py",
+ "source_location": "L124",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "constants_enums_templatetype",
- "target": "strenum"
+ "source": "tray_test_live_reload_running_deps",
+ "target": "tray_test_live_reload_recordingvalidator"
},
{
- "relation": "inherits",
- "confidence": "EXTRACTED",
- "source_file": "src/exlab_wizard/constants/enums.py",
- "source_location": "L84",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "constants_enums_runscope",
- "target": "strenum"
+ "relation": "uses",
+ "confidence": "INFERRED",
+ "source_file": "tests/unit/tray/test_live_reload.py",
+ "source_location": "L21",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "tray_test_live_reload_recordingvalidator",
+ "target": "api_app_appdependencies"
},
{
- "relation": "inherits",
- "confidence": "EXTRACTED",
- "source_file": "src/exlab_wizard/constants/enums.py",
- "source_location": "L95",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "constants_enums_limsprojectstatus",
- "target": "strenum"
+ "relation": "uses",
+ "confidence": "INFERRED",
+ "source_file": "tests/unit/tray/test_live_reload.py",
+ "source_location": "L22",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "tray_test_live_reload_recordingvalidator",
+ "target": "config_models_config"
},
{
- "relation": "inherits",
- "confidence": "EXTRACTED",
- "source_file": "src/exlab_wizard/constants/enums.py",
- "source_location": "L109",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "constants_enums_limsprojectsource",
- "target": "strenum"
+ "relation": "uses",
+ "confidence": "INFERRED",
+ "source_file": "tests/unit/tray/test_live_reload.py",
+ "source_location": "L22",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "tray_test_live_reload_recordingvalidator",
+ "target": "config_models_equipmentconfig"
},
{
- "relation": "inherits",
- "confidence": "EXTRACTED",
- "source_file": "src/exlab_wizard/constants/enums.py",
- "source_location": "L117",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "constants_enums_runsyncstate",
- "target": "strenum"
+ "relation": "uses",
+ "confidence": "INFERRED",
+ "source_file": "tests/unit/tray/test_live_reload.py",
+ "source_location": "L22",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "tray_test_live_reload_recordingvalidator",
+ "target": "config_models_limsconfig"
},
{
- "relation": "inherits",
- "confidence": "EXTRACTED",
- "source_file": "src/exlab_wizard/constants/enums.py",
- "source_location": "L137",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "constants_enums_setupstate",
- "target": "strenum"
+ "relation": "uses",
+ "confidence": "INFERRED",
+ "source_file": "tests/unit/tray/test_live_reload.py",
+ "source_location": "L22",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "tray_test_live_reload_recordingvalidator",
+ "target": "config_models_loggingconfig"
},
{
- "relation": "inherits",
- "confidence": "EXTRACTED",
- "source_file": "src/exlab_wizard/constants/enums.py",
- "source_location": "L173",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "constants_enums_syncmode",
- "target": "strenum"
+ "relation": "uses",
+ "confidence": "INFERRED",
+ "source_file": "tests/unit/tray/test_live_reload.py",
+ "source_location": "L22",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "tray_test_live_reload_recordingvalidator",
+ "target": "config_models_pathsconfig"
},
{
- "relation": "inherits",
- "confidence": "EXTRACTED",
- "source_file": "src/exlab_wizard/constants/enums.py",
- "source_location": "L187",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "constants_enums_stagingcleanupmode",
- "target": "strenum"
+ "relation": "uses",
+ "confidence": "INFERRED",
+ "source_file": "tests/unit/tray/test_live_reload.py",
+ "source_location": "L22",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "tray_test_live_reload_recordingvalidator",
+ "target": "config_models_bandwidthconfig"
},
{
- "relation": "inherits",
- "confidence": "EXTRACTED",
- "source_file": "src/exlab_wizard/constants/enums.py",
- "source_location": "L194",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "constants_enums_pluginstatus",
- "target": "strenum"
+ "relation": "uses",
+ "confidence": "INFERRED",
+ "source_file": "tests/unit/tray/test_live_reload.py",
+ "source_location": "L22",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "tray_test_live_reload_recordingvalidator",
+ "target": "config_models_rclonesftptransport"
},
{
- "relation": "inherits",
+ "relation": "method",
"confidence": "EXTRACTED",
- "source_file": "src/exlab_wizard/constants/enums.py",
- "source_location": "L204",
+ "source_file": "tests/unit/tray/test_live_reload.py",
+ "source_location": "L113",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "constants_enums_creationlevel",
- "target": "strenum"
+ "source": "tray_test_live_reload_asyncstub",
+ "target": "tray_test_live_reload_asyncstub_init"
},
{
- "relation": "inherits",
+ "relation": "method",
"confidence": "EXTRACTED",
- "source_file": "src/exlab_wizard/constants/enums.py",
- "source_location": "L225",
+ "source_file": "tests/unit/tray/test_live_reload.py",
+ "source_location": "L116",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "constants_enums_fieldtype",
- "target": "strenum"
+ "source": "tray_test_live_reload_asyncstub",
+ "target": "tray_test_live_reload_asyncstub_start"
},
{
- "relation": "inherits",
+ "relation": "calls",
+ "context": "call",
"confidence": "EXTRACTED",
- "source_file": "src/exlab_wizard/constants/enums.py",
- "source_location": "L235",
+ "source_file": "tests/unit/tray/test_live_reload.py",
+ "source_location": "L231",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "constants_enums_bandwidthday",
- "target": "strenum"
+ "source": "tray_test_live_reload_test_builds_and_starts_components_on_fresh_install",
+ "target": "tray_test_live_reload_asyncstub"
},
{
- "relation": "inherits",
+ "relation": "rationale_for",
"confidence": "EXTRACTED",
- "source_file": "src/exlab_wizard/constants/enums.py",
- "source_location": "L247",
+ "source_file": "tests/unit/tray/test_live_reload.py",
+ "source_location": "L98",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "constants_enums_sessionkind",
- "target": "strenum"
+ "source": "tray_test_live_reload_rationale_98",
+ "target": "tray_test_live_reload_asyncstub"
},
{
- "relation": "inherits",
- "confidence": "EXTRACTED",
- "source_file": "src/exlab_wizard/constants/enums.py",
- "source_location": "L259",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "constants_enums_nextaction",
- "target": "strenum"
+ "relation": "uses",
+ "confidence": "INFERRED",
+ "source_file": "tests/unit/tray/test_live_reload.py",
+ "source_location": "L21",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "tray_test_live_reload_asyncstub",
+ "target": "api_app_appdependencies"
},
{
- "relation": "inherits",
- "confidence": "EXTRACTED",
- "source_file": "src/exlab_wizard/constants/enums.py",
- "source_location": "L266",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "constants_enums_auditscopekind",
- "target": "strenum"
+ "relation": "uses",
+ "confidence": "INFERRED",
+ "source_file": "tests/unit/tray/test_live_reload.py",
+ "source_location": "L22",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "tray_test_live_reload_asyncstub",
+ "target": "config_models_config"
},
{
- "relation": "inherits",
- "confidence": "EXTRACTED",
- "source_file": "src/exlab_wizard/constants/enums.py",
- "source_location": "L279",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "constants_enums_directorylevel",
- "target": "strenum"
+ "relation": "uses",
+ "confidence": "INFERRED",
+ "source_file": "tests/unit/tray/test_live_reload.py",
+ "source_location": "L22",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "tray_test_live_reload_asyncstub",
+ "target": "config_models_equipmentconfig"
},
{
- "relation": "inherits",
- "confidence": "EXTRACTED",
- "source_file": "src/exlab_wizard/constants/enums.py",
- "source_location": "L296",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "constants_enums_platform",
- "target": "strenum"
+ "relation": "uses",
+ "confidence": "INFERRED",
+ "source_file": "tests/unit/tray/test_live_reload.py",
+ "source_location": "L22",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "tray_test_live_reload_asyncstub",
+ "target": "config_models_limsconfig"
},
{
- "relation": "inherits",
- "confidence": "EXTRACTED",
- "source_file": "src/exlab_wizard/constants/enums.py",
- "source_location": "L304",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "constants_enums_setupnextaction",
- "target": "strenum"
+ "relation": "uses",
+ "confidence": "INFERRED",
+ "source_file": "tests/unit/tray/test_live_reload.py",
+ "source_location": "L22",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "tray_test_live_reload_asyncstub",
+ "target": "config_models_loggingconfig"
},
{
- "relation": "inherits",
- "confidence": "EXTRACTED",
- "source_file": "src/exlab_wizard/constants/enums.py",
- "source_location": "L318",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "constants_enums_synchandlestate",
- "target": "strenum"
+ "relation": "uses",
+ "confidence": "INFERRED",
+ "source_file": "tests/unit/tray/test_live_reload.py",
+ "source_location": "L22",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "tray_test_live_reload_asyncstub",
+ "target": "config_models_pathsconfig"
},
{
- "relation": "inherits",
+ "relation": "rationale_for",
"confidence": "EXTRACTED",
- "source_file": "src/exlab_wizard/constants/enums.py",
- "source_location": "L330",
+ "source_file": "tests/unit/tray/test_live_reload.py",
+ "source_location": "L107",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "constants_enums_pluginsourceroot",
- "target": "strenum"
+ "source": "tray_test_live_reload_rationale_107",
+ "target": "tray_test_live_reload_asyncstub"
},
{
- "relation": "inherits",
- "confidence": "EXTRACTED",
- "source_file": "src/exlab_wizard/constants/enums.py",
- "source_location": "L337",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "constants_enums_treeprojectstatus",
- "target": "strenum"
+ "relation": "uses",
+ "confidence": "INFERRED",
+ "source_file": "tests/unit/tray/test_live_reload.py",
+ "source_location": "L22",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "tray_test_live_reload_asyncstub",
+ "target": "config_models_bandwidthconfig"
},
{
- "relation": "inherits",
+ "relation": "uses",
+ "confidence": "INFERRED",
+ "source_file": "tests/unit/tray/test_live_reload.py",
+ "source_location": "L22",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "tray_test_live_reload_asyncstub",
+ "target": "config_models_rclonesftptransport"
+ },
+ {
+ "relation": "calls",
+ "context": "call",
"confidence": "EXTRACTED",
- "source_file": "src/exlab_wizard/controller/state_machine.py",
- "source_location": "L45",
+ "source_file": "tests/unit/tray/test_live_reload.py",
+ "source_location": "L137",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "controller_state_machine_sessionstate",
- "target": "strenum"
+ "source": "tray_test_live_reload_test_reconfigures_existing_components_in_place",
+ "target": "tray_test_live_reload_running_deps"
},
{
- "relation": "inherits",
+ "relation": "calls",
+ "context": "call",
"confidence": "EXTRACTED",
- "source_file": "src/exlab_wizard/controller/state_machine.py",
- "source_location": "L66",
+ "source_file": "tests/unit/tray/test_live_reload.py",
+ "source_location": "L151",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "controller_state_machine_phase",
- "target": "strenum"
+ "source": "tray_test_live_reload_test_skips_logging_reconfigure_when_unchanged",
+ "target": "tray_test_live_reload_running_deps"
},
{
- "relation": "inherits",
+ "relation": "calls",
+ "context": "call",
"confidence": "EXTRACTED",
- "source_file": "src/exlab_wizard/sync/queue.py",
- "source_location": "L69",
+ "source_file": "tests/unit/tray/test_live_reload.py",
+ "source_location": "L164",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "sync_queue_syncjobstate",
- "target": "strenum"
+ "source": "tray_test_live_reload_test_component_failure_is_isolated",
+ "target": "tray_test_live_reload_running_deps"
},
{
- "relation": "inherits",
+ "relation": "calls",
+ "context": "call",
"confidence": "EXTRACTED",
- "source_file": "src/exlab_wizard/sync/transports/__init__.py",
- "source_location": "L21",
+ "source_file": "tests/unit/tray/test_live_reload.py",
+ "source_location": "L185",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "transports_init_transporterrorkind",
- "target": "strenum"
+ "source": "tray_test_live_reload_test_rebuilds_lims_only_on_endpoint_change",
+ "target": "tray_test_live_reload_running_deps"
},
{
- "relation": "inherits",
+ "relation": "calls",
+ "context": "call",
"confidence": "EXTRACTED",
- "source_file": "src/exlab_wizard/constants/enums.py",
- "source_location": "L159",
+ "source_file": "tests/unit/tray/test_live_reload.py",
+ "source_location": "L204",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "constants_enums_transporttype",
- "target": "strenum"
+ "source": "tray_test_live_reload_test_rebuilds_plugin_host_only_on_dir_change",
+ "target": "tray_test_live_reload_running_deps"
},
{
- "relation": "inherits",
+ "relation": "rationale_for",
"confidence": "EXTRACTED",
- "source_file": "src/exlab_wizard/constants/enums.py",
- "source_location": "L214",
+ "source_file": "tests/unit/tray/test_live_reload.py",
+ "source_location": "L112",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "constants_enums_orchestratortransporttype",
- "target": "strenum"
+ "source": "tray_test_live_reload_rationale_112",
+ "target": "tray_test_live_reload_running_deps"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "tests/unit/utils/test_state.py",
- "source_location": "L26",
+ "source_file": "tests/unit/tray/test_live_reload.py",
+ "source_location": "L122",
"weight": 1.0,
- "source": "utils_test_state_test_allowed_transition_returns_none",
- "target": "utils_state_assert_forward_transition"
+ "source": "tray_test_live_reload_running_deps",
+ "target": "api_app_appdependencies"
},
{
- "relation": "calls",
- "context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/utils/test_state.py",
- "source_location": "L31",
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/tray/test_live_reload.py",
+ "source_location": "L121",
"weight": 1.0,
- "source": "utils_test_state_test_disallowed_transition_raises",
- "target": "utils_state_assert_forward_transition"
+ "confidence_score": 1.0,
+ "source": "tray_test_live_reload_rationale_121",
+ "target": "tray_test_live_reload_running_deps"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "tests/unit/utils/test_state.py",
- "source_location": "L36",
+ "source_file": "tests/unit/tray/test_live_reload.py",
+ "source_location": "L140",
"weight": 1.0,
- "source": "utils_test_state_test_terminal_transition_raises",
- "target": "utils_state_assert_forward_transition"
+ "source": "tray_test_live_reload_test_reconfigures_existing_components_in_place",
+ "target": "tray_dependencies_apply_live_config"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "tests/unit/utils/test_state.py",
- "source_location": "L44",
- "weight": 1.0,
- "source": "utils_test_state_test_unknown_source_raises",
- "target": "utils_state_assert_forward_transition"
- },
- {
- "relation": "contains",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_storage_secret.py",
- "source_location": "L23",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "tests_unit_tray_test_storage_secret_py",
- "target": "tray_test_storage_secret_test_generates_secret_on_first_call"
- },
- {
- "relation": "contains",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_storage_secret.py",
- "source_location": "L31",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "tests_unit_tray_test_storage_secret_py",
- "target": "tray_test_storage_secret_test_idempotent_across_calls"
- },
- {
- "relation": "contains",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_storage_secret.py",
- "source_location": "L38",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "tests_unit_tray_test_storage_secret_py",
- "target": "tray_test_storage_secret_test_secret_file_mode_is_0600"
- },
- {
- "relation": "contains",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_storage_secret.py",
- "source_location": "L45",
+ "source_file": "tests/unit/tray/test_live_reload.py",
+ "source_location": "L152",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "tests_unit_tray_test_storage_secret_py",
- "target": "tray_test_storage_secret_test_regenerates_on_empty_file"
+ "source": "tray_test_live_reload_test_skips_logging_reconfigure_when_unchanged",
+ "target": "tray_dependencies_apply_live_config"
},
{
- "relation": "contains",
+ "relation": "rationale_for",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_storage_secret.py",
- "source_location": "L53",
+ "source_file": "tests/unit/tray/test_live_reload.py",
+ "source_location": "L148",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_tray_test_storage_secret_py",
- "target": "tray_test_storage_secret_test_regenerates_on_whitespace_only_file"
+ "source": "tray_test_live_reload_rationale_148",
+ "target": "tray_test_live_reload_test_component_failure_is_isolated"
},
{
- "relation": "contains",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_storage_secret.py",
- "source_location": "L61",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/tray/test_live_reload.py",
+ "source_location": "L168",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "tests_unit_tray_test_storage_secret_py",
- "target": "tray_test_storage_secret_test_creates_state_dir_if_missing"
+ "source": "tray_test_live_reload_test_component_failure_is_isolated",
+ "target": "tray_dependencies_apply_live_config"
},
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_storage_secret.py",
- "source_location": "L1",
+ "source_file": "tests/unit/tray/test_live_reload.py",
+ "source_location": "L157",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tray_test_storage_secret_rationale_1",
- "target": "tests_unit_tray_test_storage_secret_py"
+ "source": "tray_test_live_reload_rationale_157",
+ "target": "tray_test_live_reload_test_component_failure_is_isolated"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "tests/unit/tray/test_storage_secret.py",
- "source_location": "L24",
+ "source_file": "tests/unit/tray/test_live_reload.py",
+ "source_location": "L191",
"weight": 1.0,
- "source": "tray_test_storage_secret_test_generates_secret_on_first_call",
- "target": "tray_storage_secret_load_or_create_storage_secret"
+ "source": "tray_test_live_reload_test_rebuilds_lims_only_on_endpoint_change",
+ "target": "tray_dependencies_apply_live_config"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "tests/unit/tray/test_storage_secret.py",
- "source_location": "L32",
+ "source_file": "tests/unit/tray/test_live_reload.py",
+ "source_location": "L209",
"weight": 1.0,
- "source": "tray_test_storage_secret_test_idempotent_across_calls",
- "target": "tray_storage_secret_load_or_create_storage_secret"
+ "source": "tray_test_live_reload_test_rebuilds_plugin_host_only_on_dir_change",
+ "target": "tray_dependencies_apply_live_config"
},
{
- "relation": "calls",
- "context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/tray/test_storage_secret.py",
- "source_location": "L39",
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/tray/test_live_reload.py",
+ "source_location": "L220",
"weight": 1.0,
- "source": "tray_test_storage_secret_test_secret_file_mode_is_0600",
- "target": "tray_storage_secret_load_or_create_storage_secret"
+ "confidence_score": 1.0,
+ "source": "tray_test_live_reload_rationale_220",
+ "target": "tray_test_live_reload_test_builds_and_starts_components_on_fresh_install"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "tests/unit/tray/test_storage_secret.py",
- "source_location": "L48",
+ "source_file": "tests/unit/tray/test_live_reload.py",
+ "source_location": "L240",
"weight": 1.0,
- "source": "tray_test_storage_secret_test_regenerates_on_empty_file",
- "target": "tray_storage_secret_load_or_create_storage_secret"
+ "source": "tray_test_live_reload_test_builds_and_starts_components_on_fresh_install",
+ "target": "api_app_appdependencies"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "tests/unit/tray/test_storage_secret.py",
- "source_location": "L56",
+ "source_file": "tests/unit/tray/test_live_reload.py",
+ "source_location": "L244",
"weight": 1.0,
- "source": "tray_test_storage_secret_test_regenerates_on_whitespace_only_file",
- "target": "tray_storage_secret_load_or_create_storage_secret"
+ "source": "tray_test_live_reload_test_builds_and_starts_components_on_fresh_install",
+ "target": "tray_dependencies_apply_live_config"
},
{
- "relation": "calls",
- "context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/tray/test_storage_secret.py",
- "source_location": "L63",
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/tray/test_live_reload.py",
+ "source_location": "L229",
"weight": 1.0,
- "source": "tray_test_storage_secret_test_creates_state_dir_if_missing",
- "target": "tray_storage_secret_load_or_create_storage_secret"
+ "confidence_score": 1.0,
+ "source": "tray_test_live_reload_rationale_229",
+ "target": "tray_test_live_reload_test_builds_and_starts_components_on_fresh_install"
},
{
- "relation": "contains",
+ "relation": "rationale_for",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_dependencies.py",
- "source_location": "L44",
+ "source_file": "tests/unit/tray/__init__.py",
+ "source_location": "L1",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_tray_test_dependencies_py",
- "target": "tray_test_dependencies_inmemorykeyring"
+ "source": "tray_init_rationale_1",
+ "target": "tests_unit_tray_init_py"
},
{
- "relation": "contains",
+ "relation": "rationale_for",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_dependencies.py",
- "source_location": "L63",
+ "source_file": "src/exlab_wizard/tray/__init__.py",
+ "source_location": "L1",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_tray_test_dependencies_py",
- "target": "tray_test_dependencies_swap_keyring"
+ "source": "tray_init_rationale_1",
+ "target": "src_exlab_wizard_tray_init_py"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_dependencies.py",
- "source_location": "L72",
+ "source_file": "tests/unit/tray/test_status.py",
+ "source_location": "L17",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_tray_test_dependencies_py",
- "target": "tray_test_dependencies_test_build_production_dependencies_exposes_keyring_store"
+ "source": "tests_unit_tray_test_status_py",
+ "target": "tray_test_status_stubstore"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_dependencies.py",
- "source_location": "L80",
+ "source_file": "tests/unit/tray/test_status.py",
+ "source_location": "L23",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_tray_test_dependencies_py",
- "target": "tray_test_dependencies_test_build_production_dependencies_nas_sync_is_a_client"
+ "source": "tests_unit_tray_test_status_py",
+ "target": "tray_test_status_stubsync"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_dependencies.py",
- "source_location": "L120",
+ "source_file": "tests/unit/tray/test_status.py",
+ "source_location": "L28",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_tray_test_dependencies_py",
- "target": "tray_test_dependencies_test_check_keyring_present_true_when_lims_password_stored"
+ "source": "tests_unit_tray_test_status_py",
+ "target": "tray_test_status_test_format_status_idle"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_dependencies.py",
- "source_location": "L137",
+ "source_file": "tests/unit/tray/test_status.py",
+ "source_location": "L33",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_tray_test_dependencies_py",
- "target": "tray_test_dependencies_test_lims_client_password_provider_reads_keyring_under_lims_username"
+ "source": "tests_unit_tray_test_status_py",
+ "target": "tray_test_status_test_format_status_sync_jobs"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_dependencies.py",
- "source_location": "L159",
+ "source_file": "tests/unit/tray/test_status.py",
+ "source_location": "L38",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_tray_test_dependencies_py",
- "target": "tray_test_dependencies_nas_config_with_two_equipment"
+ "source": "tests_unit_tray_test_status_py",
+ "target": "tray_test_status_test_format_status_single_job_uses_singular"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_dependencies.py",
- "source_location": "L170",
+ "source_file": "tests/unit/tray/test_status.py",
+ "source_location": "L43",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_tray_test_dependencies_py",
- "target": "tray_test_dependencies_nas_config_with_remote"
+ "source": "tests_unit_tray_test_status_py",
+ "target": "tray_test_status_test_format_status_input_required_singular"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_dependencies.py",
- "source_location": "L178",
+ "source_file": "tests/unit/tray/test_status.py",
+ "source_location": "L48",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_tray_test_dependencies_py",
- "target": "tray_test_dependencies_stubabout"
+ "source": "tests_unit_tray_test_status_py",
+ "target": "tray_test_status_test_format_status_input_required_plural"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_dependencies.py",
- "source_location": "L185",
+ "source_file": "tests/unit/tray/test_status.py",
+ "source_location": "L53",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_tray_test_dependencies_py",
- "target": "tray_test_dependencies_test_make_equipment_probe_targets_nas_remote_not_keyring"
+ "source": "tests_unit_tray_test_status_py",
+ "target": "tray_test_status_test_format_status_combines_sync_and_input_required"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_dependencies.py",
- "source_location": "L217",
+ "source_file": "tests/unit/tray/test_status.py",
+ "source_location": "L58",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_tray_test_dependencies_py",
- "target": "tray_test_dependencies_test_make_equipment_probe_short_circuits_without_remote"
+ "source": "tests_unit_tray_test_status_py",
+ "target": "tray_test_status_test_snapshot_status_with_none_components"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_dependencies.py",
- "source_location": "L231",
+ "source_file": "tests/unit/tray/test_status.py",
+ "source_location": "L65",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_tray_test_dependencies_py",
- "target": "tray_test_dependencies_test_make_equipment_probe_surfaces_about_failure"
+ "source": "tests_unit_tray_test_status_py",
+ "target": "tray_test_status_test_snapshot_status_reads_components"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_dependencies.py",
- "source_location": "L258",
+ "source_file": "tests/unit/tray/test_status.py",
+ "source_location": "L75",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_tray_test_dependencies_py",
- "target": "tray_test_dependencies_test_nas_remote_available_reflects_listremotes"
+ "source": "tests_unit_tray_test_status_py",
+ "target": "tray_test_status_test_snapshot_status_callable_attributes"
},
{
- "relation": "rationale_for",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_dependencies.py",
- "source_location": "L1",
+ "source_file": "tests/unit/tray/test_status.py",
+ "source_location": "L84",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tray_test_dependencies_rationale_1",
- "target": "tests_unit_tray_test_dependencies_py"
+ "source": "tests_unit_tray_test_status_py",
+ "target": "tray_test_status_test_ticker_invokes_callback_on_first_tick"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_dependencies.py",
- "source_location": "L194",
+ "source_file": "tests/unit/tray/test_status.py",
+ "source_location": "L97",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_tray_test_dependencies_py",
- "target": "tray_test_dependencies_test_check_nas_passwords_present_returns_only_populated_ids"
+ "source": "tests_unit_tray_test_status_py",
+ "target": "tray_test_status_test_ticker_does_not_invoke_callback_when_label_unchanged"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_dependencies.py",
- "source_location": "L208",
+ "source_file": "tests/unit/tray/test_status.py",
+ "source_location": "L109",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_tray_test_dependencies_py",
- "target": "tray_test_dependencies_test_check_nas_passwords_present_handles_none_store_and_config"
+ "source": "tests_unit_tray_test_status_py",
+ "target": "tray_test_status_test_ticker_start_and_stop_idempotent"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_dependencies.py",
- "source_location": "L214",
+ "source_file": "tests/unit/tray/test_status.py",
+ "source_location": "L117",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_tray_test_dependencies_py",
- "target": "tray_test_dependencies_test_make_equipment_probe_short_circuits_when_password_missing"
+ "source": "tests_unit_tray_test_status_py",
+ "target": "tray_test_status_test_ticker_callback_exception_is_swallowed"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_dependencies.py",
- "source_location": "L237",
+ "source_file": "tests/unit/tray/test_status.py",
+ "source_location": "L127",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_tray_test_dependencies_py",
- "target": "tray_test_dependencies_test_make_equipment_probe_targets_remote_root_with_colon"
+ "source": "tests_unit_tray_test_status_py",
+ "target": "tray_test_status_test_ticker_thread_runs"
},
{
- "relation": "method",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_dependencies.py",
- "source_location": "L49",
+ "source_file": "tests/unit/tray/test_status.py",
+ "source_location": "L149",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tray_test_dependencies_inmemorykeyring",
- "target": "tray_test_dependencies_inmemorykeyring_init"
+ "source": "tests_unit_tray_test_status_py",
+ "target": "tray_test_status_test_default_refresh_matches_spec"
},
{
- "relation": "method",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_dependencies.py",
- "source_location": "L52",
+ "source_file": "tests/unit/tray/test_status.py",
+ "source_location": "L154",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tray_test_dependencies_inmemorykeyring",
- "target": "tray_test_dependencies_inmemorykeyring_get_password"
+ "source": "tests_unit_tray_test_status_py",
+ "target": "tray_test_status_test_safe_int_handles_callable_that_raises"
},
{
- "relation": "method",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_dependencies.py",
- "source_location": "L55",
+ "source_file": "tests/unit/tray/test_status.py",
+ "source_location": "L164",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tray_test_dependencies_inmemorykeyring",
- "target": "tray_test_dependencies_inmemorykeyring_set_password"
+ "source": "tests_unit_tray_test_status_py",
+ "target": "tray_test_status_test_safe_int_handles_non_numeric"
},
{
- "relation": "method",
+ "relation": "rationale_for",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_dependencies.py",
- "source_location": "L58",
+ "source_file": "tests/unit/tray/test_status.py",
+ "source_location": "L1",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tray_test_dependencies_inmemorykeyring",
- "target": "tray_test_dependencies_inmemorykeyring_delete_password"
+ "source": "tray_test_status_rationale_1",
+ "target": "tests_unit_tray_test_status_py"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "method",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_dependencies.py",
- "source_location": "L128",
+ "source_file": "tests/unit/tray/test_status.py",
+ "source_location": "L18",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tray_test_dependencies_test_check_keyring_present_true_when_lims_password_stored",
- "target": "tray_test_dependencies_inmemorykeyring"
+ "source": "tray_test_status_stubstore",
+ "target": "tray_test_status_stubstore_init"
},
{
"relation": "calls",
"context": "call",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_dependencies.py",
- "source_location": "L142",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "tray_test_dependencies_test_lims_client_password_provider_reads_keyring_under_lims_username",
- "target": "tray_test_dependencies_inmemorykeyring"
- },
- {
- "relation": "rationale_for",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_dependencies.py",
- "source_location": "L40",
+ "source_file": "tests/unit/tray/test_status.py",
+ "source_location": "L67",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tray_test_dependencies_rationale_40",
- "target": "tray_test_dependencies_inmemorykeyring"
- },
- {
- "relation": "uses",
- "confidence": "INFERRED",
- "source_file": "tests/unit/tray/test_dependencies.py",
- "source_location": "L23",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "tray_test_dependencies_inmemorykeyring",
- "target": "config_models_config"
- },
- {
- "relation": "uses",
- "confidence": "INFERRED",
- "source_file": "tests/unit/tray/test_dependencies.py",
- "source_location": "L23",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "tray_test_dependencies_inmemorykeyring",
- "target": "config_models_equipmentconfig"
- },
- {
- "relation": "uses",
- "confidence": "INFERRED",
- "source_file": "tests/unit/tray/test_dependencies.py",
- "source_location": "L23",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "tray_test_dependencies_inmemorykeyring",
- "target": "config_models_pathsconfig"
- },
- {
- "relation": "uses",
- "confidence": "INFERRED",
- "source_file": "tests/unit/tray/test_dependencies.py",
- "source_location": "L32",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "tray_test_dependencies_inmemorykeyring",
- "target": "lims_keyring_store_keyringstore"
- },
- {
- "relation": "uses",
- "confidence": "INFERRED",
- "source_file": "tests/unit/tray/test_dependencies.py",
- "source_location": "L33",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "tray_test_dependencies_inmemorykeyring",
- "target": "sync_nas_client_nassyncclient"
- },
- {
- "relation": "uses",
- "confidence": "INFERRED",
- "source_file": "tests/unit/tray/test_dependencies.py",
- "source_location": "L172",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "tray_test_dependencies_inmemorykeyring",
- "target": "config_models_nasconfig"
+ "source": "tray_test_status_test_snapshot_status_reads_components",
+ "target": "tray_test_status_stubstore"
},
{
"relation": "calls",
"context": "call",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_dependencies.py",
- "source_location": "L197",
+ "source_file": "tests/unit/tray/test_status.py",
+ "source_location": "L87",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tray_test_dependencies_test_check_nas_passwords_present_returns_only_populated_ids",
- "target": "tray_test_dependencies_inmemorykeyring"
+ "source": "tray_test_status_test_ticker_invokes_callback_on_first_tick",
+ "target": "tray_test_status_stubstore"
},
{
"relation": "calls",
"context": "call",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_dependencies.py",
- "source_location": "L220",
+ "source_file": "tests/unit/tray/test_status.py",
+ "source_location": "L100",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tray_test_dependencies_test_make_equipment_probe_short_circuits_when_password_missing",
- "target": "tray_test_dependencies_inmemorykeyring"
+ "source": "tray_test_status_test_ticker_does_not_invoke_callback_when_label_unchanged",
+ "target": "tray_test_status_stubstore"
},
{
"relation": "calls",
"context": "call",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_dependencies.py",
- "source_location": "L260",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "tray_test_dependencies_test_make_equipment_probe_targets_remote_root_with_colon",
- "target": "tray_test_dependencies_inmemorykeyring"
- },
- {
- "relation": "rationale_for",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_dependencies.py",
- "source_location": "L45",
+ "source_file": "tests/unit/tray/test_status.py",
+ "source_location": "L137",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tray_test_dependencies_rationale_45",
- "target": "tray_test_dependencies_inmemorykeyring"
+ "source": "tray_test_status_test_ticker_thread_runs",
+ "target": "tray_test_status_stubstore"
},
{
"relation": "uses",
"confidence": "INFERRED",
- "source_file": "tests/unit/tray/test_dependencies.py",
- "source_location": "L23",
+ "source_file": "tests/unit/tray/test_status.py",
+ "source_location": "L8",
"weight": 0.8,
"confidence_score": 0.5,
- "source": "tray_test_dependencies_inmemorykeyring",
- "target": "config_models_bandwidthconfig"
+ "source": "tray_test_status_stubstore",
+ "target": "tray_status_statussnapshot"
},
{
"relation": "uses",
"confidence": "INFERRED",
- "source_file": "tests/unit/tray/test_dependencies.py",
- "source_location": "L23",
+ "source_file": "tests/unit/tray/test_status.py",
+ "source_location": "L8",
"weight": 0.8,
"confidence_score": 0.5,
- "source": "tray_test_dependencies_inmemorykeyring",
- "target": "config_models_rclonesftptransport"
+ "source": "tray_test_status_stubstore",
+ "target": "tray_status_statusticker"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "method",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_dependencies.py",
- "source_location": "L130",
+ "source_file": "tests/unit/tray/test_status.py",
+ "source_location": "L24",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tray_test_dependencies_test_check_keyring_present_true_when_lims_password_stored",
- "target": "tray_test_dependencies_inmemorykeyring_set_password"
+ "source": "tray_test_status_stubsync",
+ "target": "tray_test_status_stubsync_init"
},
{
"relation": "calls",
"context": "call",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_dependencies.py",
- "source_location": "L144",
+ "source_file": "tests/unit/tray/test_status.py",
+ "source_location": "L68",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tray_test_dependencies_test_lims_client_password_provider_reads_keyring_under_lims_username",
- "target": "tray_test_dependencies_inmemorykeyring_set_password"
+ "source": "tray_test_status_test_snapshot_status_reads_components",
+ "target": "tray_test_status_stubsync"
},
{
"relation": "calls",
"context": "call",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_dependencies.py",
- "source_location": "L200",
+ "source_file": "tests/unit/tray/test_status.py",
+ "source_location": "L88",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tray_test_dependencies_test_check_nas_passwords_present_returns_only_populated_ids",
- "target": "tray_test_dependencies_inmemorykeyring_set_password"
+ "source": "tray_test_status_test_ticker_invokes_callback_on_first_tick",
+ "target": "tray_test_status_stubsync"
},
{
"relation": "calls",
"context": "call",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_dependencies.py",
- "source_location": "L263",
+ "source_file": "tests/unit/tray/test_status.py",
+ "source_location": "L101",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tray_test_dependencies_test_make_equipment_probe_targets_remote_root_with_colon",
- "target": "tray_test_dependencies_inmemorykeyring_set_password"
+ "source": "tray_test_status_test_ticker_does_not_invoke_callback_when_label_unchanged",
+ "target": "tray_test_status_stubsync"
+ },
+ {
+ "relation": "uses",
+ "confidence": "INFERRED",
+ "source_file": "tests/unit/tray/test_status.py",
+ "source_location": "L8",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "tray_test_status_stubsync",
+ "target": "tray_status_statussnapshot"
+ },
+ {
+ "relation": "uses",
+ "confidence": "INFERRED",
+ "source_file": "tests/unit/tray/test_status.py",
+ "source_location": "L8",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "tray_test_status_stubsync",
+ "target": "tray_status_statusticker"
},
{
"relation": "calls",
"context": "call",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_dependencies.py",
- "source_location": "L128",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/tray/test_status.py",
+ "source_location": "L29",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "tray_test_dependencies_test_check_keyring_present_true_when_lims_password_stored",
- "target": "tray_test_dependencies_swap_keyring"
+ "source": "tray_test_status_test_format_status_idle",
+ "target": "tray_status_statussnapshot"
},
{
"relation": "calls",
"context": "call",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_dependencies.py",
- "source_location": "L142",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "tray_test_dependencies_test_lims_client_password_provider_reads_keyring_under_lims_username",
- "target": "tray_test_dependencies_swap_keyring"
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/tray/test_status.py",
+ "source_location": "L30",
+ "weight": 1.0,
+ "source": "tray_test_status_test_format_status_idle",
+ "target": "tray_status_format_status"
},
{
"relation": "calls",
"context": "call",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_dependencies.py",
- "source_location": "L197",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/tray/test_status.py",
+ "source_location": "L34",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "tray_test_dependencies_test_check_nas_passwords_present_returns_only_populated_ids",
- "target": "tray_test_dependencies_swap_keyring"
+ "source": "tray_test_status_test_format_status_sync_jobs",
+ "target": "tray_status_statussnapshot"
},
{
"relation": "calls",
"context": "call",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_dependencies.py",
- "source_location": "L220",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/tray/test_status.py",
+ "source_location": "L35",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "tray_test_dependencies_test_make_equipment_probe_short_circuits_when_password_missing",
- "target": "tray_test_dependencies_swap_keyring"
+ "source": "tray_test_status_test_format_status_sync_jobs",
+ "target": "tray_status_format_status"
},
{
"relation": "calls",
"context": "call",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_dependencies.py",
- "source_location": "L260",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/tray/test_status.py",
+ "source_location": "L39",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "tray_test_dependencies_test_make_equipment_probe_targets_remote_root_with_colon",
- "target": "tray_test_dependencies_swap_keyring"
+ "source": "tray_test_status_test_format_status_single_job_uses_singular",
+ "target": "tray_status_statussnapshot"
},
{
- "relation": "rationale_for",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_dependencies.py",
- "source_location": "L68",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/tray/test_status.py",
+ "source_location": "L40",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "tray_test_dependencies_rationale_68",
- "target": "tray_test_dependencies_test_build_production_dependencies_exposes_keyring_store"
+ "source": "tray_test_status_test_format_status_single_job_uses_singular",
+ "target": "tray_status_format_status"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "tests/unit/tray/test_dependencies.py",
- "source_location": "L75",
+ "source_file": "tests/unit/tray/test_status.py",
+ "source_location": "L44",
"weight": 1.0,
- "source": "tray_test_dependencies_test_build_production_dependencies_exposes_keyring_store",
- "target": "tray_dependencies_build_production_dependencies"
+ "source": "tray_test_status_test_format_status_input_required_singular",
+ "target": "tray_status_statussnapshot"
},
{
- "relation": "rationale_for",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_dependencies.py",
- "source_location": "L73",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/tray/test_status.py",
+ "source_location": "L45",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "tray_test_dependencies_rationale_73",
- "target": "tray_test_dependencies_test_build_production_dependencies_exposes_keyring_store"
+ "source": "tray_test_status_test_format_status_input_required_singular",
+ "target": "tray_status_format_status"
},
{
- "relation": "rationale_for",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_dependencies.py",
- "source_location": "L78",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/tray/test_status.py",
+ "source_location": "L49",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "tray_test_dependencies_rationale_78",
- "target": "tray_test_dependencies_test_build_production_dependencies_nas_sync_is_a_client"
+ "source": "tray_test_status_test_format_status_input_required_plural",
+ "target": "tray_status_statussnapshot"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "tests/unit/tray/test_dependencies.py",
- "source_location": "L93",
+ "source_file": "tests/unit/tray/test_status.py",
+ "source_location": "L50",
"weight": 1.0,
- "source": "tray_test_dependencies_test_build_production_dependencies_nas_sync_is_a_client",
- "target": "config_models_pathsconfig"
+ "source": "tray_test_status_test_format_status_input_required_plural",
+ "target": "tray_status_format_status"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "tests/unit/tray/test_dependencies.py",
- "source_location": "L95",
+ "source_file": "tests/unit/tray/test_status.py",
+ "source_location": "L54",
"weight": 1.0,
- "source": "tray_test_dependencies_test_build_production_dependencies_nas_sync_is_a_client",
- "target": "config_models_equipmentconfig"
+ "source": "tray_test_status_test_format_status_combines_sync_and_input_required",
+ "target": "tray_status_statussnapshot"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "tests/unit/tray/test_dependencies.py",
- "source_location": "L113",
+ "source_file": "tests/unit/tray/test_status.py",
+ "source_location": "L55",
"weight": 1.0,
- "source": "tray_test_dependencies_test_build_production_dependencies_nas_sync_is_a_client",
- "target": "tray_dependencies_build_production_dependencies"
+ "source": "tray_test_status_test_format_status_combines_sync_and_input_required",
+ "target": "tray_status_format_status"
},
{
- "relation": "rationale_for",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_dependencies.py",
- "source_location": "L83",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/tray/test_status.py",
+ "source_location": "L59",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "tray_test_dependencies_rationale_83",
- "target": "tray_test_dependencies_test_build_production_dependencies_nas_sync_is_a_client"
+ "source": "tray_test_status_test_snapshot_status_with_none_components",
+ "target": "tray_status_snapshot_status"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "tests/unit/tray/test_dependencies.py",
- "source_location": "L101",
+ "source_file": "tests/unit/tray/test_status.py",
+ "source_location": "L66",
"weight": 1.0,
- "source": "tray_test_dependencies_test_build_production_dependencies_nas_sync_is_a_client",
- "target": "config_models_rclonesftptransport"
+ "source": "tray_test_status_test_snapshot_status_reads_components",
+ "target": "tray_status_snapshot_status"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "tests/unit/tray/test_dependencies.py",
- "source_location": "L106",
+ "source_file": "tests/unit/tray/test_status.py",
+ "source_location": "L80",
"weight": 1.0,
- "source": "tray_test_dependencies_test_build_production_dependencies_nas_sync_is_a_client",
- "target": "config_models_bandwidthconfig"
+ "source": "tray_test_status_test_snapshot_status_callable_attributes",
+ "target": "tray_status_snapshot_status"
},
{
- "relation": "rationale_for",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_dependencies.py",
- "source_location": "L109",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/tray/test_status.py",
+ "source_location": "L86",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "tray_test_dependencies_rationale_109",
- "target": "tray_test_dependencies_test_check_keyring_present_true_when_lims_password_stored"
+ "source": "tray_test_status_test_ticker_invokes_callback_on_first_tick",
+ "target": "tray_status_statusticker"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "tests/unit/tray/test_dependencies.py",
- "source_location": "L129",
+ "source_file": "tests/unit/tray/test_status.py",
+ "source_location": "L99",
"weight": 1.0,
- "source": "tray_test_dependencies_test_check_keyring_present_true_when_lims_password_stored",
- "target": "lims_keyring_store_keyringstore"
+ "source": "tray_test_status_test_ticker_does_not_invoke_callback_when_label_unchanged",
+ "target": "tray_status_statusticker"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "tests/unit/tray/test_dependencies.py",
- "source_location": "L134",
+ "source_file": "tests/unit/tray/test_status.py",
+ "source_location": "L110",
"weight": 1.0,
- "source": "tray_test_dependencies_test_check_keyring_present_true_when_lims_password_stored",
- "target": "tray_dependencies_check_keyring_present"
+ "source": "tray_test_status_test_ticker_start_and_stop_idempotent",
+ "target": "tray_status_statusticker"
},
{
- "relation": "rationale_for",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_dependencies.py",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/tray/test_status.py",
"source_location": "L121",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "tray_test_dependencies_rationale_121",
- "target": "tray_test_dependencies_test_check_keyring_present_true_when_lims_password_stored"
+ "source": "tray_test_status_test_ticker_callback_exception_is_swallowed",
+ "target": "tray_status_statusticker"
},
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_dependencies.py",
+ "source_file": "tests/unit/tray/test_status.py",
"source_location": "L128",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tray_test_dependencies_rationale_128",
- "target": "tray_test_dependencies_test_lims_client_password_provider_reads_keyring_under_lims_username"
+ "source": "tray_test_status_rationale_128",
+ "target": "tray_test_status_test_ticker_thread_runs"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "tests/unit/tray/test_dependencies.py",
- "source_location": "L143",
+ "source_file": "tests/unit/tray/test_status.py",
+ "source_location": "L136",
"weight": 1.0,
- "source": "tray_test_dependencies_test_lims_client_password_provider_reads_keyring_under_lims_username",
- "target": "lims_keyring_store_keyringstore"
+ "source": "tray_test_status_test_ticker_thread_runs",
+ "target": "tray_status_statusticker"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "tests/unit/tray/test_dependencies.py",
- "source_location": "L149",
+ "source_file": "tests/unit/tray/test_status.py",
+ "source_location": "L161",
"weight": 1.0,
- "source": "tray_test_dependencies_test_lims_client_password_provider_reads_keyring_under_lims_username",
- "target": "tray_dependencies_build_lims_client"
+ "source": "tray_test_status_test_safe_int_handles_callable_that_raises",
+ "target": "tray_status_safe_int"
},
{
- "relation": "rationale_for",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/tray/test_status.py",
+ "source_location": "L170",
+ "weight": 1.0,
+ "source": "tray_test_status_test_safe_int_handles_non_numeric",
+ "target": "tray_status_safe_int"
+ },
+ {
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_dependencies.py",
- "source_location": "L140",
+ "source_file": "tests/unit/tray/test_server_runner.py",
+ "source_location": "L21",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tray_test_dependencies_rationale_140",
- "target": "tray_test_dependencies_test_lims_client_password_provider_reads_keyring_under_lims_username"
+ "source": "tests_unit_tray_test_server_runner_py",
+ "target": "tray_test_server_runner_fakeuvicornserver"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_dependencies.py",
- "source_location": "L174",
+ "source_file": "tests/unit/tray/test_server_runner.py",
+ "source_location": "L44",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tray_test_dependencies_nas_config_with_remote",
- "target": "tray_test_dependencies_nas_config_with_two_equipment"
+ "source": "tests_unit_tray_test_server_runner_py",
+ "target": "tray_test_server_runner_make_runner"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_dependencies.py",
- "source_location": "L222",
+ "source_file": "tests/unit/tray/test_server_runner.py",
+ "source_location": "L60",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tray_test_dependencies_test_make_equipment_probe_short_circuits_without_remote",
- "target": "tray_test_dependencies_nas_config_with_two_equipment"
+ "source": "tests_unit_tray_test_server_runner_py",
+ "target": "tray_test_server_runner_test_pick_free_port_returns_bindable_port"
},
{
- "relation": "rationale_for",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_dependencies.py",
- "source_location": "L148",
+ "source_file": "tests/unit/tray/test_server_runner.py",
+ "source_location": "L72",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tray_test_dependencies_rationale_148",
- "target": "tray_test_dependencies_nas_config_with_two_equipment"
+ "source": "tests_unit_tray_test_server_runner_py",
+ "target": "tray_test_server_runner_test_start_writes_server_json_atomically"
},
{
- "relation": "calls",
- "context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/tray/test_dependencies.py",
- "source_location": "L162",
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/tray/test_server_runner.py",
+ "source_location": "L89",
"weight": 1.0,
- "source": "tray_test_dependencies_nas_config_with_two_equipment",
- "target": "config_models_pathsconfig"
+ "confidence_score": 1.0,
+ "source": "tests_unit_tray_test_server_runner_py",
+ "target": "tray_test_server_runner_test_stop_deletes_state_file"
},
{
- "relation": "calls",
- "context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/tray/test_dependencies.py",
- "source_location": "L164",
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/tray/test_server_runner.py",
+ "source_location": "L98",
"weight": 1.0,
- "source": "tray_test_dependencies_nas_config_with_two_equipment",
- "target": "config_models_equipmentconfig"
+ "confidence_score": 1.0,
+ "source": "tests_unit_tray_test_server_runner_py",
+ "target": "tray_test_server_runner_test_double_start_raises"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_dependencies.py",
- "source_location": "L201",
+ "source_file": "tests/unit/tray/test_server_runner.py",
+ "source_location": "L108",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tray_test_dependencies_test_check_nas_passwords_present_returns_only_populated_ids",
- "target": "tray_test_dependencies_nas_config_with_two_equipment"
+ "source": "tests_unit_tray_test_server_runner_py",
+ "target": "tray_test_server_runner_test_port_property_before_start_raises"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_dependencies.py",
- "source_location": "L209",
+ "source_file": "tests/unit/tray/test_server_runner.py",
+ "source_location": "L114",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tray_test_dependencies_test_check_nas_passwords_present_handles_none_store_and_config",
- "target": "tray_test_dependencies_nas_config_with_two_equipment"
+ "source": "tests_unit_tray_test_server_runner_py",
+ "target": "tray_test_server_runner_test_port_property_after_start"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_dependencies.py",
- "source_location": "L222",
+ "source_file": "tests/unit/tray/test_server_runner.py",
+ "source_location": "L123",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tray_test_dependencies_test_make_equipment_probe_short_circuits_when_password_missing",
- "target": "tray_test_dependencies_nas_config_with_two_equipment"
+ "source": "tests_unit_tray_test_server_runner_py",
+ "target": "tray_test_server_runner_test_state_file_property_returns_expected_path"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_dependencies.py",
- "source_location": "L262",
+ "source_file": "tests/unit/tray/test_server_runner.py",
+ "source_location": "L128",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tray_test_dependencies_test_make_equipment_probe_targets_remote_root_with_colon",
- "target": "tray_test_dependencies_nas_config_with_two_equipment"
+ "source": "tests_unit_tray_test_server_runner_py",
+ "target": "tray_test_server_runner_test_stop_is_idempotent"
},
{
- "relation": "rationale_for",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_dependencies.py",
- "source_location": "L160",
+ "source_file": "tests/unit/tray/test_server_runner.py",
+ "source_location": "L135",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tray_test_dependencies_rationale_160",
- "target": "tray_test_dependencies_nas_config_with_two_equipment"
+ "source": "tests_unit_tray_test_server_runner_py",
+ "target": "tray_test_server_runner_test_start_creates_state_dir_if_missing"
},
{
- "relation": "calls",
- "context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/tray/test_dependencies.py",
- "source_location": "L170",
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/tray/test_server_runner.py",
+ "source_location": "L145",
"weight": 1.0,
- "source": "tray_test_dependencies_nas_config_with_two_equipment",
- "target": "config_models_rclonesftptransport"
+ "confidence_score": 1.0,
+ "source": "tests_unit_tray_test_server_runner_py",
+ "target": "tray_test_server_runner_test_is_running_tracks_thread_lifecycle"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_dependencies.py",
- "source_location": "L208",
+ "source_file": "tests/unit/tray/test_server_runner.py",
+ "source_location": "L157",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tray_test_dependencies_test_make_equipment_probe_targets_nas_remote_not_keyring",
- "target": "tray_test_dependencies_nas_config_with_remote"
+ "source": "tests_unit_tray_test_server_runner_py",
+ "target": "tray_test_server_runner_test_real_uvicorn_resolves_lazily"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_dependencies.py",
- "source_location": "L249",
+ "source_file": "tests/unit/tray/test_server_runner.py",
+ "source_location": "L170",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tray_test_dependencies_test_make_equipment_probe_surfaces_about_failure",
- "target": "tray_test_dependencies_nas_config_with_remote"
+ "source": "tests_unit_tray_test_server_runner_py",
+ "target": "tray_test_server_runner_test_delete_state_file_handles_missing"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_dependencies.py",
- "source_location": "L274",
+ "source_file": "tests/unit/tray/test_server_runner.py",
+ "source_location": "L176",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tray_test_dependencies_test_nas_remote_available_reflects_listremotes",
- "target": "tray_test_dependencies_nas_config_with_remote"
+ "source": "tests_unit_tray_test_server_runner_py",
+ "target": "tray_test_server_runner_test_stop_handles_attribute_error_on_should_exit"
},
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_dependencies.py",
- "source_location": "L171",
+ "source_file": "tests/unit/tray/test_server_runner.py",
+ "source_location": "L1",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tray_test_dependencies_rationale_171",
- "target": "tray_test_dependencies_nas_config_with_remote"
+ "source": "tray_test_server_runner_rationale_1",
+ "target": "tests_unit_tray_test_server_runner_py"
},
{
- "relation": "calls",
- "context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/tray/test_dependencies.py",
- "source_location": "L175",
+ "relation": "method",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/tray/test_server_runner.py",
+ "source_location": "L24",
"weight": 1.0,
- "source": "tray_test_dependencies_nas_config_with_remote",
- "target": "config_models_nasconfig"
+ "confidence_score": 1.0,
+ "source": "tray_test_server_runner_fakeuvicornserver",
+ "target": "tray_test_server_runner_fakeuvicornserver_init"
},
{
"relation": "method",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_dependencies.py",
- "source_location": "L179",
+ "source_file": "tests/unit/tray/test_server_runner.py",
+ "source_location": "L30",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tray_test_dependencies_stubabout",
- "target": "tray_test_dependencies_stubabout_init"
+ "source": "tray_test_server_runner_fakeuvicornserver",
+ "target": "tray_test_server_runner_fakeuvicornserver_run"
},
{
- "relation": "uses",
- "confidence": "INFERRED",
- "source_file": "tests/unit/tray/test_dependencies.py",
- "source_location": "L22",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "tray_test_dependencies_stubabout",
- "target": "config_models_config"
+ "relation": "calls",
+ "context": "call",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/tray/test_server_runner.py",
+ "source_location": "L49",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "tray_test_server_runner_make_runner",
+ "target": "tray_test_server_runner_fakeuvicornserver"
},
{
- "relation": "uses",
- "confidence": "INFERRED",
- "source_file": "tests/unit/tray/test_dependencies.py",
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/tray/test_server_runner.py",
"source_location": "L22",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "tray_test_dependencies_stubabout",
- "target": "config_models_equipmentconfig"
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "tray_test_server_runner_rationale_22",
+ "target": "tray_test_server_runner_fakeuvicornserver"
},
{
"relation": "uses",
"confidence": "INFERRED",
- "source_file": "tests/unit/tray/test_dependencies.py",
- "source_location": "L22",
+ "source_file": "tests/unit/tray/test_server_runner.py",
+ "source_location": "L14",
"weight": 0.8,
"confidence_score": 0.5,
- "source": "tray_test_dependencies_stubabout",
- "target": "config_models_pathsconfig"
+ "source": "tray_test_server_runner_fakeuvicornserver",
+ "target": "tray_server_runner_serverrunner"
},
{
- "relation": "uses",
- "confidence": "INFERRED",
- "source_file": "tests/unit/tray/test_dependencies.py",
- "source_location": "L28",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "tray_test_dependencies_stubabout",
- "target": "lims_keyring_store_keyringstore"
+ "relation": "calls",
+ "context": "call",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/tray/test_server_runner.py",
+ "source_location": "L73",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "tray_test_server_runner_test_start_writes_server_json_atomically",
+ "target": "tray_test_server_runner_make_runner"
},
{
- "relation": "uses",
- "confidence": "INFERRED",
- "source_file": "tests/unit/tray/test_dependencies.py",
- "source_location": "L29",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "tray_test_dependencies_stubabout",
- "target": "sync_nas_client_nassyncclient"
+ "relation": "calls",
+ "context": "call",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/tray/test_server_runner.py",
+ "source_location": "L90",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "tray_test_server_runner_test_stop_deletes_state_file",
+ "target": "tray_test_server_runner_make_runner"
},
{
- "relation": "uses",
- "confidence": "INFERRED",
- "source_file": "tests/unit/tray/test_dependencies.py",
- "source_location": "L172",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "tray_test_dependencies_stubabout",
- "target": "config_models_nasconfig"
+ "relation": "calls",
+ "context": "call",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/tray/test_server_runner.py",
+ "source_location": "L99",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "tray_test_server_runner_test_double_start_raises",
+ "target": "tray_test_server_runner_make_runner"
},
{
- "relation": "rationale_for",
+ "relation": "calls",
+ "context": "call",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_dependencies.py",
- "source_location": "L188",
+ "source_file": "tests/unit/tray/test_server_runner.py",
+ "source_location": "L109",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tray_test_dependencies_rationale_188",
- "target": "tray_test_dependencies_test_make_equipment_probe_targets_nas_remote_not_keyring"
+ "source": "tray_test_server_runner_test_port_property_before_start_raises",
+ "target": "tray_test_server_runner_make_runner"
},
{
"relation": "calls",
"context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/tray/test_dependencies.py",
- "source_location": "L205",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/tray/test_server_runner.py",
+ "source_location": "L115",
"weight": 1.0,
- "source": "tray_test_dependencies_test_make_equipment_probe_targets_nas_remote_not_keyring",
- "target": "tray_dependencies_build_production_dependencies"
+ "confidence_score": 1.0,
+ "source": "tray_test_server_runner_test_port_property_after_start",
+ "target": "tray_test_server_runner_make_runner"
},
{
"relation": "calls",
"context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/tray/test_dependencies.py",
- "source_location": "L210",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/tray/test_server_runner.py",
+ "source_location": "L124",
"weight": 1.0,
- "source": "tray_test_dependencies_test_make_equipment_probe_targets_nas_remote_not_keyring",
- "target": "tray_dependencies_make_equipment_probe"
+ "confidence_score": 1.0,
+ "source": "tray_test_server_runner_test_state_file_property_returns_expected_path",
+ "target": "tray_test_server_runner_make_runner"
},
{
- "relation": "rationale_for",
+ "relation": "calls",
+ "context": "call",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_dependencies.py",
- "source_location": "L218",
+ "source_file": "tests/unit/tray/test_server_runner.py",
+ "source_location": "L129",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tray_test_dependencies_rationale_218",
- "target": "tray_test_dependencies_test_make_equipment_probe_short_circuits_without_remote"
+ "source": "tray_test_server_runner_test_stop_is_idempotent",
+ "target": "tray_test_server_runner_make_runner"
+ },
+ {
+ "relation": "calls",
+ "context": "call",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/tray/test_server_runner.py",
+ "source_location": "L137",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "tray_test_server_runner_test_start_creates_state_dir_if_missing",
+ "target": "tray_test_server_runner_make_runner"
+ },
+ {
+ "relation": "calls",
+ "context": "call",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/tray/test_server_runner.py",
+ "source_location": "L146",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "tray_test_server_runner_test_is_running_tracks_thread_lifecycle",
+ "target": "tray_test_server_runner_make_runner"
+ },
+ {
+ "relation": "calls",
+ "context": "call",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/tray/test_server_runner.py",
+ "source_location": "L178",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "tray_test_server_runner_test_stop_handles_attribute_error_on_should_exit",
+ "target": "tray_test_server_runner_make_runner"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "tests/unit/tray/test_dependencies.py",
- "source_location": "L221",
+ "source_file": "tests/unit/tray/test_server_runner.py",
+ "source_location": "L55",
"weight": 1.0,
- "source": "tray_test_dependencies_test_make_equipment_probe_short_circuits_without_remote",
- "target": "tray_dependencies_build_production_dependencies"
+ "source": "tray_test_server_runner_make_runner",
+ "target": "tray_server_runner_serverrunner"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "tests/unit/tray/test_dependencies.py",
- "source_location": "L224",
+ "source_file": "tests/unit/tray/test_server_runner.py",
+ "source_location": "L61",
"weight": 1.0,
- "source": "tray_test_dependencies_test_make_equipment_probe_short_circuits_without_remote",
- "target": "tray_dependencies_make_equipment_probe"
+ "source": "tray_test_server_runner_test_pick_free_port_returns_bindable_port",
+ "target": "tray_server_runner_pick_free_port"
},
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_dependencies.py",
- "source_location": "L234",
+ "source_file": "tests/unit/tray/test_server_runner.py",
+ "source_location": "L158",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tray_test_dependencies_rationale_234",
- "target": "tray_test_dependencies_test_make_equipment_probe_surfaces_about_failure"
+ "source": "tray_test_server_runner_rationale_158",
+ "target": "tray_test_server_runner_test_real_uvicorn_resolves_lazily"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "tests/unit/tray/test_dependencies.py",
- "source_location": "L248",
+ "source_file": "tests/unit/tray/test_server_runner.py",
+ "source_location": "L164",
"weight": 1.0,
- "source": "tray_test_dependencies_test_make_equipment_probe_surfaces_about_failure",
- "target": "tray_dependencies_build_production_dependencies"
+ "source": "tray_test_server_runner_test_real_uvicorn_resolves_lazily",
+ "target": "tray_server_runner_serverrunner"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "tests/unit/tray/test_dependencies.py",
- "source_location": "L251",
+ "source_file": "tests/unit/tray/test_server_runner.py",
+ "source_location": "L171",
"weight": 1.0,
- "source": "tray_test_dependencies_test_make_equipment_probe_surfaces_about_failure",
- "target": "tray_dependencies_make_equipment_probe"
+ "source": "tray_test_server_runner_test_delete_state_file_handles_missing",
+ "target": "tray_server_runner_serverrunner"
},
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_dependencies.py",
- "source_location": "L261",
+ "source_file": "tests/unit/tray/test_server_runner.py",
+ "source_location": "L177",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tray_test_dependencies_rationale_261",
- "target": "tray_test_dependencies_test_nas_remote_available_reflects_listremotes"
+ "source": "tray_test_server_runner_rationale_177",
+ "target": "tray_test_server_runner_test_stop_handles_attribute_error_on_should_exit"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_icon.py",
- "source_location": "L18",
+ "source_file": "tests/unit/tray/test_notifications.py",
+ "source_location": "L19",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_tray_test_icon_py",
- "target": "tray_test_icon_fakemenu"
+ "source": "tests_unit_tray_test_notifications_py",
+ "target": "tray_test_notifications_test_notify_calls_injected_callable"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_icon.py",
- "source_location": "L25",
+ "source_file": "tests/unit/tray/test_notifications.py",
+ "source_location": "L29",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_tray_test_icon_py",
- "target": "tray_test_icon_fakemenuitem"
+ "source": "tests_unit_tray_test_notifications_py",
+ "target": "tray_test_notifications_test_notify_swallows_notifier_exceptions"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_icon.py",
- "source_location": "L40",
+ "source_file": "tests/unit/tray/test_notifications.py",
+ "source_location": "L37",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_tray_test_icon_py",
- "target": "tray_test_icon_fakeicon"
+ "source": "tests_unit_tray_test_notifications_py",
+ "target": "tray_test_notifications_test_bus_emits_after_coalescing_window"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_icon.py",
- "source_location": "L48",
+ "source_file": "tests/unit/tray/test_notifications.py",
+ "source_location": "L63",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_tray_test_icon_py",
- "target": "tray_test_icon_fakepystray"
+ "source": "tests_unit_tray_test_notifications_py",
+ "target": "tray_test_notifications_test_bus_suppresses_when_window_foregrounded"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_icon.py",
- "source_location": "L54",
+ "source_file": "tests/unit/tray/test_notifications.py",
+ "source_location": "L74",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_tray_test_icon_py",
- "target": "tray_test_icon_test_build_icon_returns_icon_object"
+ "source": "tests_unit_tray_test_notifications_py",
+ "target": "tray_test_notifications_test_bus_separate_kinds_separate_buckets"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_icon.py",
- "source_location": "L71",
+ "source_file": "tests/unit/tray/test_notifications.py",
+ "source_location": "L89",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_tray_test_icon_py",
- "target": "tray_test_icon_test_open_menu_item_invokes_callback"
+ "source": "tests_unit_tray_test_notifications_py",
+ "target": "tray_test_notifications_test_bus_cancel_all_drops_pending"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_icon.py",
- "source_location": "L85",
+ "source_file": "tests/unit/tray/test_notifications.py",
+ "source_location": "L102",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_tray_test_icon_py",
- "target": "tray_test_icon_test_quit_menu_item_invokes_callback"
+ "source": "tests_unit_tray_test_notifications_py",
+ "target": "tray_test_notifications_test_bus_emits_singleton_message_unchanged"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_icon.py",
- "source_location": "L99",
+ "source_file": "tests/unit/tray/test_notifications.py",
+ "source_location": "L114",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_tray_test_icon_py",
- "target": "tray_test_icon_test_status_label_callable"
+ "source": "tests_unit_tray_test_notifications_py",
+ "target": "tray_test_notifications_test_coalescing_window_constant_matches_spec"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_icon.py",
- "source_location": "L112",
+ "source_file": "tests/unit/tray/test_notifications.py",
+ "source_location": "L118",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_tray_test_icon_py",
- "target": "tray_test_icon_test_callback_exception_is_swallowed"
+ "source": "tests_unit_tray_test_notifications_py",
+ "target": "tray_test_notifications_test_coalesced_message_plugin_input_required_plural"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_icon.py",
- "source_location": "L127",
+ "source_file": "tests/unit/tray/test_notifications.py",
+ "source_location": "L122",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_tray_test_icon_py",
- "target": "tray_test_icon_test_default_icon_image_returns_pillow_image"
+ "source": "tests_unit_tray_test_notifications_py",
+ "target": "tray_test_notifications_test_coalesced_message_plugin_input_required_singular"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_icon.py",
- "source_location": "L133",
+ "source_file": "tests/unit/tray/test_notifications.py",
+ "source_location": "L126",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_tray_test_icon_py",
- "target": "tray_test_icon_test_lazy_pystray_import"
+ "source": "tests_unit_tray_test_notifications_py",
+ "target": "tray_test_notifications_test_coalesced_message_sync_failed_plural"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_icon.py",
- "source_location": "L148",
+ "source_file": "tests/unit/tray/test_notifications.py",
+ "source_location": "L130",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_tray_test_icon_py",
- "target": "tray_test_icon_test_separator_present"
+ "source": "tests_unit_tray_test_notifications_py",
+ "target": "tray_test_notifications_test_coalesced_message_sync_failed_singular"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_icon.py",
- "source_location": "L158",
+ "source_file": "tests/unit/tray/test_notifications.py",
+ "source_location": "L134",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_tray_test_icon_py",
- "target": "tray_test_icon_test_import_pystray_returns_module"
+ "source": "tests_unit_tray_test_notifications_py",
+ "target": "tray_test_notifications_test_coalesced_message_unknown_kind"
},
{
- "relation": "rationale_for",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_icon.py",
- "source_location": "L1",
+ "source_file": "tests/unit/tray/test_notifications.py",
+ "source_location": "L138",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tray_test_icon_rationale_1",
- "target": "tests_unit_tray_test_icon_py"
+ "source": "tests_unit_tray_test_notifications_py",
+ "target": "tray_test_notifications_test_bus_timer_fires_after_window"
},
{
- "relation": "method",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_icon.py",
- "source_location": "L21",
+ "source_file": "tests/unit/tray/test_notifications.py",
+ "source_location": "L153",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tray_test_icon_fakemenu",
- "target": "tray_test_icon_fakemenu_init"
+ "source": "tests_unit_tray_test_notifications_py",
+ "target": "tray_test_notifications_test_default_notifier_returns_callable"
},
{
- "relation": "method",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_icon.py",
- "source_location": "L26",
+ "source_file": "tests/unit/tray/test_notifications.py",
+ "source_location": "L161",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tray_test_icon_fakemenuitem",
- "target": "tray_test_icon_fakemenuitem_init"
+ "source": "tests_unit_tray_test_notifications_py",
+ "target": "tray_test_notifications_test_noop_notifier_swallows_arbitrary_kwargs"
},
{
- "relation": "method",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_icon.py",
- "source_location": "L41",
+ "source_file": "tests/unit/tray/test_notifications.py",
+ "source_location": "L168",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tray_test_icon_fakeicon",
- "target": "tray_test_icon_fakeicon_init"
+ "source": "tests_unit_tray_test_notifications_py",
+ "target": "tray_test_notifications_test_notify_uses_default_notifier_when_none"
+ },
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/tray/test_notifications.py",
+ "source_location": "L180",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "tests_unit_tray_test_notifications_py",
+ "target": "tray_test_notifications_test_flush_with_already_drained_bucket"
+ },
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/tray/test_notifications.py",
+ "source_location": "L1",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "tray_test_notifications_rationale_1",
+ "target": "tests_unit_tray_test_notifications_py"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "tests/unit/tray/test_icon.py",
- "source_location": "L57",
+ "source_file": "tests/unit/tray/test_notifications.py",
+ "source_location": "L25",
"weight": 1.0,
- "source": "tray_test_icon_test_build_icon_returns_icon_object",
- "target": "tray_icon_build_icon"
+ "source": "tray_test_notifications_test_notify_calls_injected_callable",
+ "target": "tray_notifications_notify"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "tests/unit/tray/test_icon.py",
- "source_location": "L73",
+ "source_file": "tests/unit/tray/test_notifications.py",
+ "source_location": "L34",
"weight": 1.0,
- "source": "tray_test_icon_test_open_menu_item_invokes_callback",
- "target": "tray_icon_build_icon"
+ "source": "tray_test_notifications_test_notify_swallows_notifier_exceptions",
+ "target": "tray_notifications_notify"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "tests/unit/tray/test_icon.py",
- "source_location": "L87",
+ "source_file": "tests/unit/tray/test_notifications.py",
+ "source_location": "L43",
"weight": 1.0,
- "source": "tray_test_icon_test_quit_menu_item_invokes_callback",
- "target": "tray_icon_build_icon"
+ "source": "tray_test_notifications_test_bus_emits_after_coalescing_window",
+ "target": "tray_notifications_notificationbus"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "tests/unit/tray/test_icon.py",
- "source_location": "L100",
+ "source_file": "tests/unit/tray/test_notifications.py",
+ "source_location": "L65",
"weight": 1.0,
- "source": "tray_test_icon_test_status_label_callable",
- "target": "tray_icon_build_icon"
+ "source": "tray_test_notifications_test_bus_suppresses_when_window_foregrounded",
+ "target": "tray_notifications_notificationbus"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "tests/unit/tray/test_icon.py",
- "source_location": "L116",
+ "source_file": "tests/unit/tray/test_notifications.py",
+ "source_location": "L76",
"weight": 1.0,
- "source": "tray_test_icon_test_callback_exception_is_swallowed",
- "target": "tray_icon_build_icon"
+ "source": "tray_test_notifications_test_bus_separate_kinds_separate_buckets",
+ "target": "tray_notifications_notificationbus"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "tests/unit/tray/test_icon.py",
- "source_location": "L128",
+ "source_file": "tests/unit/tray/test_notifications.py",
+ "source_location": "L91",
"weight": 1.0,
- "source": "tray_test_icon_test_default_icon_image_returns_pillow_image",
- "target": "tray_icon_default_icon_image"
+ "source": "tray_test_notifications_test_bus_cancel_all_drops_pending",
+ "target": "tray_notifications_notificationbus"
+ },
+ {
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/tray/test_notifications.py",
+ "source_location": "L104",
+ "weight": 1.0,
+ "source": "tray_test_notifications_test_bus_emits_singleton_message_unchanged",
+ "target": "tray_notifications_notificationbus"
+ },
+ {
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/tray/test_notifications.py",
+ "source_location": "L119",
+ "weight": 1.0,
+ "source": "tray_test_notifications_test_coalesced_message_plugin_input_required_plural",
+ "target": "tray_notifications_coalesced_message"
+ },
+ {
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/tray/test_notifications.py",
+ "source_location": "L123",
+ "weight": 1.0,
+ "source": "tray_test_notifications_test_coalesced_message_plugin_input_required_singular",
+ "target": "tray_notifications_coalesced_message"
+ },
+ {
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/tray/test_notifications.py",
+ "source_location": "L127",
+ "weight": 1.0,
+ "source": "tray_test_notifications_test_coalesced_message_sync_failed_plural",
+ "target": "tray_notifications_coalesced_message"
+ },
+ {
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/tray/test_notifications.py",
+ "source_location": "L131",
+ "weight": 1.0,
+ "source": "tray_test_notifications_test_coalesced_message_sync_failed_singular",
+ "target": "tray_notifications_coalesced_message"
+ },
+ {
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/tray/test_notifications.py",
+ "source_location": "L135",
+ "weight": 1.0,
+ "source": "tray_test_notifications_test_coalesced_message_unknown_kind",
+ "target": "tray_notifications_coalesced_message"
},
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_icon.py",
- "source_location": "L134",
+ "source_file": "tests/unit/tray/test_notifications.py",
+ "source_location": "L139",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tray_test_icon_rationale_134",
- "target": "tray_test_icon_test_lazy_pystray_import"
+ "source": "tray_test_notifications_rationale_139",
+ "target": "tray_test_notifications_test_bus_timer_fires_after_window"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "tests/unit/tray/test_icon.py",
- "source_location": "L140",
+ "source_file": "tests/unit/tray/test_notifications.py",
+ "source_location": "L141",
"weight": 1.0,
- "source": "tray_test_icon_test_lazy_pystray_import",
- "target": "tray_icon_build_icon"
+ "source": "tray_test_notifications_test_bus_timer_fires_after_window",
+ "target": "tray_notifications_notificationbus"
+ },
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/tray/test_notifications.py",
+ "source_location": "L154",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "tray_test_notifications_rationale_154",
+ "target": "tray_test_notifications_test_default_notifier_returns_callable"
+ },
+ {
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/tray/test_notifications.py",
+ "source_location": "L157",
+ "weight": 1.0,
+ "source": "tray_test_notifications_test_default_notifier_returns_callable",
+ "target": "tray_notifications_default_notifier"
+ },
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/tray/test_notifications.py",
+ "source_location": "L162",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "tray_test_notifications_rationale_162",
+ "target": "tray_test_notifications_test_noop_notifier_swallows_arbitrary_kwargs"
+ },
+ {
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/tray/test_notifications.py",
+ "source_location": "L165",
+ "weight": 1.0,
+ "source": "tray_test_notifications_test_noop_notifier_swallows_arbitrary_kwargs",
+ "target": "tray_notifications_noop_notifier"
+ },
+ {
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/tray/test_notifications.py",
+ "source_location": "L176",
+ "weight": 1.0,
+ "source": "tray_test_notifications_test_notify_uses_default_notifier_when_none",
+ "target": "tray_notifications_notify"
+ },
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/tray/test_notifications.py",
+ "source_location": "L181",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "tray_test_notifications_rationale_181",
+ "target": "tray_test_notifications_test_flush_with_already_drained_bucket"
+ },
+ {
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/tray/test_notifications.py",
+ "source_location": "L183",
+ "weight": 1.0,
+ "source": "tray_test_notifications_test_flush_with_already_drained_bucket",
+ "target": "tray_notifications_notificationbus"
+ },
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/tray/test_quit_coordinator.py",
+ "source_location": "L17",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "tests_unit_tray_test_quit_coordinator_py",
+ "target": "tray_test_quit_coordinator_stubserver"
},
{
- "relation": "calls",
- "context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/tray/test_icon.py",
- "source_location": "L149",
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/tray/test_quit_coordinator.py",
+ "source_location": "L25",
"weight": 1.0,
- "source": "tray_test_icon_test_separator_present",
- "target": "tray_icon_build_icon"
+ "confidence_score": 1.0,
+ "source": "tests_unit_tray_test_quit_coordinator_py",
+ "target": "tray_test_quit_coordinator_stubwindow"
},
{
- "relation": "rationale_for",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_icon.py",
- "source_location": "L159",
+ "source_file": "tests/unit/tray/test_quit_coordinator.py",
+ "source_location": "L33",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tray_test_icon_rationale_159",
- "target": "tray_test_icon_test_import_pystray_returns_module"
+ "source": "tests_unit_tray_test_quit_coordinator_py",
+ "target": "tray_test_quit_coordinator_counted"
},
{
- "relation": "calls",
- "context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/tray/test_icon.py",
- "source_location": "L166",
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/tray/test_quit_coordinator.py",
+ "source_location": "L38",
"weight": 1.0,
- "source": "tray_test_icon_test_import_pystray_returns_module",
- "target": "tray_icon_import_pystray"
+ "confidence_score": 1.0,
+ "source": "tests_unit_tray_test_quit_coordinator_py",
+ "target": "tray_test_quit_coordinator_make_coordinator"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_live_reload.py",
- "source_location": "L40",
+ "source_file": "tests/unit/tray/test_quit_coordinator.py",
+ "source_location": "L64",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_tray_test_live_reload_py",
- "target": "tray_test_live_reload_stub_configure_logging"
+ "source": "tests_unit_tray_test_quit_coordinator_py",
+ "target": "tray_test_quit_coordinator_test_idle_predicate_short_circuits"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_live_reload.py",
- "source_location": "L54",
+ "source_file": "tests/unit/tray/test_quit_coordinator.py",
+ "source_location": "L72",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_tray_test_live_reload_py",
- "target": "tray_test_live_reload_equipment"
+ "source": "tests_unit_tray_test_quit_coordinator_py",
+ "target": "tray_test_quit_coordinator_test_busy_predicate_times_out_and_force_quits"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_live_reload.py",
- "source_location": "L70",
+ "source_file": "tests/unit/tray/test_quit_coordinator.py",
+ "source_location": "L91",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_tray_test_live_reload_py",
- "target": "tray_test_live_reload_config"
+ "source": "tests_unit_tray_test_quit_coordinator_py",
+ "target": "tray_test_quit_coordinator_test_busy_predicate_wait_resets_timer"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_live_reload.py",
- "source_location": "L86",
+ "source_file": "tests/unit/tray/test_quit_coordinator.py",
+ "source_location": "L111",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_tray_test_live_reload_py",
- "target": "tray_test_live_reload_recordingcomponent"
+ "source": "tests_unit_tray_test_quit_coordinator_py",
+ "target": "tray_test_quit_coordinator_test_sigterm_uses_short_timeout"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_live_reload.py",
- "source_location": "L98",
+ "source_file": "tests/unit/tray/test_quit_coordinator.py",
+ "source_location": "L137",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_tray_test_live_reload_py",
- "target": "tray_test_live_reload_recordingvalidator"
+ "source": "tests_unit_tray_test_quit_coordinator_py",
+ "target": "tray_test_quit_coordinator_test_quit_handles_missing_window_launcher"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_live_reload.py",
- "source_location": "L106",
+ "source_file": "tests/unit/tray/test_quit_coordinator.py",
+ "source_location": "L152",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_tray_test_live_reload_py",
- "target": "tray_test_live_reload_asyncstub"
+ "source": "tests_unit_tray_test_quit_coordinator_py",
+ "target": "tray_test_quit_coordinator_test_safe_count_handles_callable_attribute"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_live_reload.py",
- "source_location": "L120",
+ "source_file": "tests/unit/tray/test_quit_coordinator.py",
+ "source_location": "L158",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_tray_test_live_reload_py",
- "target": "tray_test_live_reload_running_deps"
+ "source": "tests_unit_tray_test_quit_coordinator_py",
+ "target": "tray_test_quit_coordinator_test_safe_count_handles_callable_that_raises"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_live_reload.py",
- "source_location": "L136",
+ "source_file": "tests/unit/tray/test_quit_coordinator.py",
+ "source_location": "L168",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_tray_test_live_reload_py",
- "target": "tray_test_live_reload_test_reconfigures_existing_components_in_place"
+ "source": "tests_unit_tray_test_quit_coordinator_py",
+ "target": "tray_test_quit_coordinator_test_safe_count_handles_none_obj"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_live_reload.py",
- "source_location": "L150",
+ "source_file": "tests/unit/tray/test_quit_coordinator.py",
+ "source_location": "L172",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_tray_test_live_reload_py",
- "target": "tray_test_live_reload_test_skips_logging_reconfigure_when_unchanged"
+ "source": "tests_unit_tray_test_quit_coordinator_py",
+ "target": "tray_test_quit_coordinator_test_safe_count_handles_non_numeric"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_live_reload.py",
- "source_location": "L156",
+ "source_file": "tests/unit/tray/test_quit_coordinator.py",
+ "source_location": "L179",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_tray_test_live_reload_py",
- "target": "tray_test_live_reload_test_component_failure_is_isolated"
+ "source": "tests_unit_tray_test_quit_coordinator_py",
+ "target": "tray_test_quit_coordinator_test_force_quit_prompt_exception_defaults_to_force"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_live_reload.py",
- "source_location": "L182",
+ "source_file": "tests/unit/tray/test_quit_coordinator.py",
+ "source_location": "L192",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_tray_test_live_reload_py",
- "target": "tray_test_live_reload_test_rebuilds_lims_only_on_endpoint_change"
+ "source": "tests_unit_tray_test_quit_coordinator_py",
+ "target": "tray_test_quit_coordinator_test_default_timeout_constants_match_spec"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_live_reload.py",
- "source_location": "L201",
+ "source_file": "tests/unit/tray/test_quit_coordinator.py",
+ "source_location": "L199",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_tray_test_live_reload_py",
- "target": "tray_test_live_reload_test_rebuilds_plugin_host_only_on_dir_change"
+ "source": "tests_unit_tray_test_quit_coordinator_py",
+ "target": "tray_test_quit_coordinator_test_idle_predicate_returns_true_immediately"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_live_reload.py",
- "source_location": "L226",
+ "source_file": "tests/unit/tray/test_quit_coordinator.py",
+ "source_location": "L208",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_tray_test_live_reload_py",
- "target": "tray_test_live_reload_test_builds_and_starts_components_on_fresh_install"
+ "source": "tests_unit_tray_test_quit_coordinator_py",
+ "target": "tray_test_quit_coordinator_test_predicate_eventually_becomes_true"
},
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_live_reload.py",
+ "source_file": "tests/unit/tray/test_quit_coordinator.py",
"source_location": "L1",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tray_test_live_reload_rationale_1",
- "target": "tests_unit_tray_test_live_reload_py"
+ "source": "tray_test_quit_coordinator_rationale_1",
+ "target": "tests_unit_tray_test_quit_coordinator_py"
},
{
- "relation": "rationale_for",
+ "relation": "method",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_live_reload.py",
- "source_location": "L39",
+ "source_file": "tests/unit/tray/test_quit_coordinator.py",
+ "source_location": "L18",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tray_test_live_reload_rationale_39",
- "target": "tray_test_live_reload_stub_configure_logging"
+ "source": "tray_test_quit_coordinator_stubserver",
+ "target": "tray_test_quit_coordinator_stubserver_init"
},
{
- "relation": "rationale_for",
+ "relation": "method",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_live_reload.py",
- "source_location": "L41",
+ "source_file": "tests/unit/tray/test_quit_coordinator.py",
+ "source_location": "L21",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tray_test_live_reload_rationale_41",
- "target": "tray_test_live_reload_stub_configure_logging"
+ "source": "tray_test_quit_coordinator_stubserver",
+ "target": "tray_test_quit_coordinator_stubserver_stop"
},
{
"relation": "calls",
"context": "call",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_live_reload.py",
- "source_location": "L82",
+ "source_file": "tests/unit/tray/test_quit_coordinator.py",
+ "source_location": "L46",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tray_test_live_reload_config",
- "target": "tray_test_live_reload_equipment"
+ "source": "tray_test_quit_coordinator_make_coordinator",
+ "target": "tray_test_quit_coordinator_stubserver"
},
{
"relation": "calls",
"context": "call",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_live_reload.py",
+ "source_file": "tests/unit/tray/test_quit_coordinator.py",
"source_location": "L138",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tray_test_live_reload_test_reconfigures_existing_components_in_place",
- "target": "tray_test_live_reload_equipment"
+ "source": "tray_test_quit_coordinator_test_quit_handles_missing_window_launcher",
+ "target": "tray_test_quit_coordinator_stubserver"
},
{
"relation": "calls",
"context": "call",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_live_reload.py",
- "source_location": "L166",
+ "source_file": "tests/unit/tray/test_quit_coordinator.py",
+ "source_location": "L210",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tray_test_live_reload_test_component_failure_is_isolated",
- "target": "tray_test_live_reload_equipment"
+ "source": "tray_test_quit_coordinator_test_predicate_eventually_becomes_true",
+ "target": "tray_test_quit_coordinator_stubserver"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "uses",
"confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/tray/test_live_reload.py",
- "source_location": "L55",
+ "source_file": "tests/unit/tray/test_quit_coordinator.py",
+ "source_location": "L9",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "tray_test_quit_coordinator_stubserver",
+ "target": "tray_quit_coordinator_quitcoordinator"
+ },
+ {
+ "relation": "method",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/tray/test_quit_coordinator.py",
+ "source_location": "L26",
"weight": 1.0,
- "source": "tray_test_live_reload_equipment",
- "target": "config_models_equipmentconfig"
+ "confidence_score": 1.0,
+ "source": "tray_test_quit_coordinator_stubwindow",
+ "target": "tray_test_quit_coordinator_stubwindow_init"
},
{
- "relation": "calls",
- "context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/tray/test_live_reload.py",
- "source_location": "L60",
+ "relation": "method",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/tray/test_quit_coordinator.py",
+ "source_location": "L29",
"weight": 1.0,
- "source": "tray_test_live_reload_equipment",
- "target": "config_models_rclonesftptransport"
+ "confidence_score": 1.0,
+ "source": "tray_test_quit_coordinator_stubwindow",
+ "target": "tray_test_quit_coordinator_stubwindow_close"
},
{
"relation": "calls",
"context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/tray/test_live_reload.py",
- "source_location": "L65",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/tray/test_quit_coordinator.py",
+ "source_location": "L47",
"weight": 1.0,
- "source": "tray_test_live_reload_equipment",
- "target": "config_models_bandwidthconfig"
+ "confidence_score": 1.0,
+ "source": "tray_test_quit_coordinator_make_coordinator",
+ "target": "tray_test_quit_coordinator_stubwindow"
},
{
"relation": "calls",
"context": "call",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_live_reload.py",
- "source_location": "L123",
+ "source_file": "tests/unit/tray/test_quit_coordinator.py",
+ "source_location": "L211",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tray_test_live_reload_running_deps",
- "target": "tray_test_live_reload_config"
+ "source": "tray_test_quit_coordinator_test_predicate_eventually_becomes_true",
+ "target": "tray_test_quit_coordinator_stubwindow"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "uses",
+ "confidence": "INFERRED",
+ "source_file": "tests/unit/tray/test_quit_coordinator.py",
+ "source_location": "L9",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "tray_test_quit_coordinator_stubwindow",
+ "target": "tray_quit_coordinator_quitcoordinator"
+ },
+ {
+ "relation": "method",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_live_reload.py",
- "source_location": "L138",
+ "source_file": "tests/unit/tray/test_quit_coordinator.py",
+ "source_location": "L34",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tray_test_live_reload_test_reconfigures_existing_components_in_place",
- "target": "tray_test_live_reload_config"
+ "source": "tray_test_quit_coordinator_counted",
+ "target": "tray_test_quit_coordinator_counted_init"
},
{
"relation": "calls",
"context": "call",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_live_reload.py",
- "source_location": "L152",
+ "source_file": "tests/unit/tray/test_quit_coordinator.py",
+ "source_location": "L48",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tray_test_live_reload_test_skips_logging_reconfigure_when_unchanged",
- "target": "tray_test_live_reload_config"
+ "source": "tray_test_quit_coordinator_make_coordinator",
+ "target": "tray_test_quit_coordinator_counted"
},
{
"relation": "calls",
"context": "call",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_live_reload.py",
- "source_location": "L166",
+ "source_file": "tests/unit/tray/test_quit_coordinator.py",
+ "source_location": "L142",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tray_test_live_reload_test_component_failure_is_isolated",
- "target": "tray_test_live_reload_config"
+ "source": "tray_test_quit_coordinator_test_quit_handles_missing_window_launcher",
+ "target": "tray_test_quit_coordinator_counted"
},
{
"relation": "calls",
"context": "call",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_live_reload.py",
- "source_location": "L186",
+ "source_file": "tests/unit/tray/test_quit_coordinator.py",
+ "source_location": "L153",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tray_test_live_reload_test_rebuilds_lims_only_on_endpoint_change",
- "target": "tray_test_live_reload_config"
+ "source": "tray_test_quit_coordinator_test_safe_count_handles_callable_attribute",
+ "target": "tray_test_quit_coordinator_counted"
},
{
"relation": "calls",
"context": "call",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_live_reload.py",
- "source_location": "L205",
+ "source_file": "tests/unit/tray/test_quit_coordinator.py",
+ "source_location": "L159",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tray_test_live_reload_test_rebuilds_plugin_host_only_on_dir_change",
- "target": "tray_test_live_reload_config"
+ "source": "tray_test_quit_coordinator_test_safe_count_handles_callable_that_raises",
+ "target": "tray_test_quit_coordinator_counted"
},
{
"relation": "calls",
"context": "call",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_live_reload.py",
- "source_location": "L242",
+ "source_file": "tests/unit/tray/test_quit_coordinator.py",
+ "source_location": "L173",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tray_test_live_reload_test_builds_and_starts_components_on_fresh_install",
- "target": "tray_test_live_reload_config"
+ "source": "tray_test_quit_coordinator_test_safe_count_handles_non_numeric",
+ "target": "tray_test_quit_coordinator_counted"
},
{
"relation": "calls",
"context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/tray/test_live_reload.py",
- "source_location": "L79",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/tray/test_quit_coordinator.py",
+ "source_location": "L224",
"weight": 1.0,
- "source": "tray_test_live_reload_config",
- "target": "config_models_pathsconfig"
+ "confidence_score": 1.0,
+ "source": "tray_test_quit_coordinator_test_predicate_eventually_becomes_true",
+ "target": "tray_test_quit_coordinator_counted"
+ },
+ {
+ "relation": "uses",
+ "confidence": "INFERRED",
+ "source_file": "tests/unit/tray/test_quit_coordinator.py",
+ "source_location": "L9",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "tray_test_quit_coordinator_counted",
+ "target": "tray_quit_coordinator_quitcoordinator"
},
{
"relation": "calls",
"context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/tray/test_live_reload.py",
- "source_location": "L80",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/tray/test_quit_coordinator.py",
+ "source_location": "L65",
"weight": 1.0,
- "source": "tray_test_live_reload_config",
- "target": "config_models_limsconfig"
+ "confidence_score": 1.0,
+ "source": "tray_test_quit_coordinator_test_idle_predicate_short_circuits",
+ "target": "tray_test_quit_coordinator_make_coordinator"
},
{
"relation": "calls",
"context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/tray/test_live_reload.py",
- "source_location": "L81",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/tray/test_quit_coordinator.py",
+ "source_location": "L79",
"weight": 1.0,
- "source": "tray_test_live_reload_config",
- "target": "config_models_loggingconfig"
+ "confidence_score": 1.0,
+ "source": "tray_test_quit_coordinator_test_busy_predicate_times_out_and_force_quits",
+ "target": "tray_test_quit_coordinator_make_coordinator"
},
{
- "relation": "method",
+ "relation": "calls",
+ "context": "call",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_live_reload.py",
- "source_location": "L89",
+ "source_file": "tests/unit/tray/test_quit_coordinator.py",
+ "source_location": "L98",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tray_test_live_reload_recordingcomponent",
- "target": "tray_test_live_reload_recordingcomponent_init"
+ "source": "tray_test_quit_coordinator_test_busy_predicate_wait_resets_timer",
+ "target": "tray_test_quit_coordinator_make_coordinator"
},
{
- "relation": "method",
+ "relation": "calls",
+ "context": "call",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_live_reload.py",
- "source_location": "L93",
+ "source_file": "tests/unit/tray/test_quit_coordinator.py",
+ "source_location": "L117",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tray_test_live_reload_recordingcomponent",
- "target": "tray_test_live_reload_recordingcomponent_apply_config"
+ "source": "tray_test_quit_coordinator_test_sigterm_uses_short_timeout",
+ "target": "tray_test_quit_coordinator_make_coordinator"
},
{
"relation": "calls",
"context": "call",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_live_reload.py",
- "source_location": "L125",
+ "source_file": "tests/unit/tray/test_quit_coordinator.py",
+ "source_location": "L183",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tray_test_live_reload_running_deps",
- "target": "tray_test_live_reload_recordingcomponent"
+ "source": "tray_test_quit_coordinator_test_force_quit_prompt_exception_defaults_to_force",
+ "target": "tray_test_quit_coordinator_make_coordinator"
},
{
- "relation": "rationale_for",
+ "relation": "calls",
+ "context": "call",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_live_reload.py",
- "source_location": "L78",
+ "source_file": "tests/unit/tray/test_quit_coordinator.py",
+ "source_location": "L200",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tray_test_live_reload_rationale_78",
- "target": "tray_test_live_reload_recordingcomponent"
+ "source": "tray_test_quit_coordinator_test_idle_predicate_returns_true_immediately",
+ "target": "tray_test_quit_coordinator_make_coordinator"
},
{
- "relation": "uses",
+ "relation": "calls",
+ "context": "call",
"confidence": "INFERRED",
- "source_file": "tests/unit/tray/test_live_reload.py",
- "source_location": "L21",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "tray_test_live_reload_recordingcomponent",
- "target": "api_app_appdependencies"
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/tray/test_quit_coordinator.py",
+ "source_location": "L50",
+ "weight": 1.0,
+ "source": "tray_test_quit_coordinator_make_coordinator",
+ "target": "tray_quit_coordinator_quitcoordinator"
},
{
- "relation": "uses",
+ "relation": "calls",
+ "context": "call",
"confidence": "INFERRED",
- "source_file": "tests/unit/tray/test_live_reload.py",
- "source_location": "L22",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "tray_test_live_reload_recordingcomponent",
- "target": "config_models_config"
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/tray/test_quit_coordinator.py",
+ "source_location": "L139",
+ "weight": 1.0,
+ "source": "tray_test_quit_coordinator_test_quit_handles_missing_window_launcher",
+ "target": "tray_quit_coordinator_quitcoordinator"
},
{
- "relation": "uses",
+ "relation": "calls",
+ "context": "call",
"confidence": "INFERRED",
- "source_file": "tests/unit/tray/test_live_reload.py",
- "source_location": "L22",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "tray_test_live_reload_recordingcomponent",
- "target": "config_models_equipmentconfig"
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/tray/test_quit_coordinator.py",
+ "source_location": "L155",
+ "weight": 1.0,
+ "source": "tray_test_quit_coordinator_test_safe_count_handles_callable_attribute",
+ "target": "tray_quit_coordinator_safe_count"
},
{
- "relation": "uses",
+ "relation": "calls",
+ "context": "call",
"confidence": "INFERRED",
- "source_file": "tests/unit/tray/test_live_reload.py",
- "source_location": "L22",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "tray_test_live_reload_recordingcomponent",
- "target": "config_models_limsconfig"
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/tray/test_quit_coordinator.py",
+ "source_location": "L165",
+ "weight": 1.0,
+ "source": "tray_test_quit_coordinator_test_safe_count_handles_callable_that_raises",
+ "target": "tray_quit_coordinator_safe_count"
},
{
- "relation": "uses",
+ "relation": "calls",
+ "context": "call",
"confidence": "INFERRED",
- "source_file": "tests/unit/tray/test_live_reload.py",
- "source_location": "L22",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "tray_test_live_reload_recordingcomponent",
- "target": "config_models_loggingconfig"
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/tray/test_quit_coordinator.py",
+ "source_location": "L169",
+ "weight": 1.0,
+ "source": "tray_test_quit_coordinator_test_safe_count_handles_none_obj",
+ "target": "tray_quit_coordinator_safe_count"
},
{
- "relation": "uses",
+ "relation": "calls",
+ "context": "call",
"confidence": "INFERRED",
- "source_file": "tests/unit/tray/test_live_reload.py",
- "source_location": "L22",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "tray_test_live_reload_recordingcomponent",
- "target": "config_models_pathsconfig"
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/tray/test_quit_coordinator.py",
+ "source_location": "L175",
+ "weight": 1.0,
+ "source": "tray_test_quit_coordinator_test_safe_count_handles_non_numeric",
+ "target": "tray_quit_coordinator_safe_count"
},
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_live_reload.py",
- "source_location": "L87",
+ "source_file": "tests/unit/tray/test_quit_coordinator.py",
+ "source_location": "L209",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tray_test_live_reload_rationale_87",
- "target": "tray_test_live_reload_recordingcomponent"
- },
- {
- "relation": "uses",
- "confidence": "INFERRED",
- "source_file": "tests/unit/tray/test_live_reload.py",
- "source_location": "L22",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "tray_test_live_reload_recordingcomponent",
- "target": "config_models_bandwidthconfig"
+ "source": "tray_test_quit_coordinator_rationale_209",
+ "target": "tray_test_quit_coordinator_test_predicate_eventually_becomes_true"
},
{
- "relation": "uses",
+ "relation": "calls",
+ "context": "call",
"confidence": "INFERRED",
- "source_file": "tests/unit/tray/test_live_reload.py",
- "source_location": "L22",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "tray_test_live_reload_recordingcomponent",
- "target": "config_models_rclonesftptransport"
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/tray/test_quit_coordinator.py",
+ "source_location": "L225",
+ "weight": 1.0,
+ "source": "tray_test_quit_coordinator_test_predicate_eventually_becomes_true",
+ "target": "tray_quit_coordinator_quitcoordinator"
},
{
- "relation": "method",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_live_reload.py",
- "source_location": "L99",
+ "source_file": "tests/unit/tray/test_window_launcher.py",
+ "source_location": "L18",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tray_test_live_reload_recordingvalidator",
- "target": "tray_test_live_reload_recordingvalidator_init"
+ "source": "tests_unit_tray_test_window_launcher_py",
+ "target": "tray_test_window_launcher_python_window_argv"
},
{
- "relation": "method",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_live_reload.py",
- "source_location": "L102",
+ "source_file": "tests/unit/tray/test_window_launcher.py",
+ "source_location": "L29",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tray_test_live_reload_recordingvalidator",
- "target": "tray_test_live_reload_recordingvalidator_reconfigure"
+ "source": "tests_unit_tray_test_window_launcher_py",
+ "target": "tray_test_window_launcher_test_open_spawns_subprocess"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_live_reload.py",
- "source_location": "L124",
+ "source_file": "tests/unit/tray/test_window_launcher.py",
+ "source_location": "L42",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tray_test_live_reload_running_deps",
- "target": "tray_test_live_reload_recordingvalidator"
- },
- {
- "relation": "uses",
- "confidence": "INFERRED",
- "source_file": "tests/unit/tray/test_live_reload.py",
- "source_location": "L21",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "tray_test_live_reload_recordingvalidator",
- "target": "api_app_appdependencies"
- },
- {
- "relation": "uses",
- "confidence": "INFERRED",
- "source_file": "tests/unit/tray/test_live_reload.py",
- "source_location": "L22",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "tray_test_live_reload_recordingvalidator",
- "target": "config_models_config"
- },
- {
- "relation": "uses",
- "confidence": "INFERRED",
- "source_file": "tests/unit/tray/test_live_reload.py",
- "source_location": "L22",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "tray_test_live_reload_recordingvalidator",
- "target": "config_models_equipmentconfig"
- },
- {
- "relation": "uses",
- "confidence": "INFERRED",
- "source_file": "tests/unit/tray/test_live_reload.py",
- "source_location": "L22",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "tray_test_live_reload_recordingvalidator",
- "target": "config_models_limsconfig"
- },
- {
- "relation": "uses",
- "confidence": "INFERRED",
- "source_file": "tests/unit/tray/test_live_reload.py",
- "source_location": "L22",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "tray_test_live_reload_recordingvalidator",
- "target": "config_models_loggingconfig"
- },
- {
- "relation": "uses",
- "confidence": "INFERRED",
- "source_file": "tests/unit/tray/test_live_reload.py",
- "source_location": "L22",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "tray_test_live_reload_recordingvalidator",
- "target": "config_models_pathsconfig"
- },
- {
- "relation": "uses",
- "confidence": "INFERRED",
- "source_file": "tests/unit/tray/test_live_reload.py",
- "source_location": "L22",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "tray_test_live_reload_recordingvalidator",
- "target": "config_models_bandwidthconfig"
- },
- {
- "relation": "uses",
- "confidence": "INFERRED",
- "source_file": "tests/unit/tray/test_live_reload.py",
- "source_location": "L22",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "tray_test_live_reload_recordingvalidator",
- "target": "config_models_rclonesftptransport"
+ "source": "tests_unit_tray_test_window_launcher_py",
+ "target": "tray_test_window_launcher_test_close_terminates_subprocess"
},
{
- "relation": "method",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_live_reload.py",
- "source_location": "L113",
+ "source_file": "tests/unit/tray/test_window_launcher.py",
+ "source_location": "L53",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tray_test_live_reload_asyncstub",
- "target": "tray_test_live_reload_asyncstub_init"
+ "source": "tests_unit_tray_test_window_launcher_py",
+ "target": "tray_test_window_launcher_test_close_is_idempotent"
},
{
- "relation": "method",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_live_reload.py",
- "source_location": "L116",
+ "source_file": "tests/unit/tray/test_window_launcher.py",
+ "source_location": "L60",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tray_test_live_reload_asyncstub",
- "target": "tray_test_live_reload_asyncstub_start"
+ "source": "tests_unit_tray_test_window_launcher_py",
+ "target": "tray_test_window_launcher_test_open_focuses_existing"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_live_reload.py",
- "source_location": "L231",
+ "source_file": "tests/unit/tray/test_window_launcher.py",
+ "source_location": "L71",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tray_test_live_reload_test_builds_and_starts_components_on_fresh_install",
- "target": "tray_test_live_reload_asyncstub"
+ "source": "tests_unit_tray_test_window_launcher_py",
+ "target": "tray_test_window_launcher_test_resolve_window_executable_prefers_env_var"
},
{
- "relation": "rationale_for",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_live_reload.py",
- "source_location": "L98",
+ "source_file": "tests/unit/tray/test_window_launcher.py",
+ "source_location": "L76",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tray_test_live_reload_rationale_98",
- "target": "tray_test_live_reload_asyncstub"
- },
- {
- "relation": "uses",
- "confidence": "INFERRED",
- "source_file": "tests/unit/tray/test_live_reload.py",
- "source_location": "L21",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "tray_test_live_reload_asyncstub",
- "target": "api_app_appdependencies"
- },
- {
- "relation": "uses",
- "confidence": "INFERRED",
- "source_file": "tests/unit/tray/test_live_reload.py",
- "source_location": "L22",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "tray_test_live_reload_asyncstub",
- "target": "config_models_config"
- },
- {
- "relation": "uses",
- "confidence": "INFERRED",
- "source_file": "tests/unit/tray/test_live_reload.py",
- "source_location": "L22",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "tray_test_live_reload_asyncstub",
- "target": "config_models_equipmentconfig"
- },
- {
- "relation": "uses",
- "confidence": "INFERRED",
- "source_file": "tests/unit/tray/test_live_reload.py",
- "source_location": "L22",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "tray_test_live_reload_asyncstub",
- "target": "config_models_limsconfig"
- },
- {
- "relation": "uses",
- "confidence": "INFERRED",
- "source_file": "tests/unit/tray/test_live_reload.py",
- "source_location": "L22",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "tray_test_live_reload_asyncstub",
- "target": "config_models_loggingconfig"
+ "source": "tests_unit_tray_test_window_launcher_py",
+ "target": "tray_test_window_launcher_test_resolve_window_executable_uses_path"
},
{
- "relation": "uses",
- "confidence": "INFERRED",
- "source_file": "tests/unit/tray/test_live_reload.py",
- "source_location": "L22",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "tray_test_live_reload_asyncstub",
- "target": "config_models_pathsconfig"
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/tray/test_window_launcher.py",
+ "source_location": "L85",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "tests_unit_tray_test_window_launcher_py",
+ "target": "tray_test_window_launcher_test_resolve_window_executable_falls_back_to_module"
},
{
- "relation": "rationale_for",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_live_reload.py",
- "source_location": "L107",
+ "source_file": "tests/unit/tray/test_window_launcher.py",
+ "source_location": "L95",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tray_test_live_reload_rationale_107",
- "target": "tray_test_live_reload_asyncstub"
+ "source": "tests_unit_tray_test_window_launcher_py",
+ "target": "tray_test_window_launcher_test_window_executable_override"
},
{
- "relation": "uses",
- "confidence": "INFERRED",
- "source_file": "tests/unit/tray/test_live_reload.py",
- "source_location": "L22",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "tray_test_live_reload_asyncstub",
- "target": "config_models_bandwidthconfig"
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/tray/test_window_launcher.py",
+ "source_location": "L103",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "tests_unit_tray_test_window_launcher_py",
+ "target": "tray_test_window_launcher_test_argv_falls_through_resolve_helper"
},
{
- "relation": "uses",
- "confidence": "INFERRED",
- "source_file": "tests/unit/tray/test_live_reload.py",
- "source_location": "L22",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "tray_test_live_reload_asyncstub",
- "target": "config_models_rclonesftptransport"
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/tray/test_window_launcher.py",
+ "source_location": "L113",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "tests_unit_tray_test_window_launcher_py",
+ "target": "tray_test_window_launcher_test_pid_is_none_before_open"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_live_reload.py",
- "source_location": "L137",
+ "source_file": "tests/unit/tray/test_window_launcher.py",
+ "source_location": "L119",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tray_test_live_reload_test_reconfigures_existing_components_in_place",
- "target": "tray_test_live_reload_running_deps"
+ "source": "tests_unit_tray_test_window_launcher_py",
+ "target": "tray_test_window_launcher_test_close_kills_unresponsive_process"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "rationale_for",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_live_reload.py",
- "source_location": "L151",
+ "source_file": "tests/unit/tray/test_window_launcher.py",
+ "source_location": "L1",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tray_test_live_reload_test_skips_logging_reconfigure_when_unchanged",
- "target": "tray_test_live_reload_running_deps"
+ "source": "tray_test_window_launcher_rationale_1",
+ "target": "tests_unit_tray_test_window_launcher_py"
},
{
"relation": "calls",
"context": "call",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_live_reload.py",
- "source_location": "L164",
+ "source_file": "tests/unit/tray/test_window_launcher.py",
+ "source_location": "L31",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tray_test_live_reload_test_component_failure_is_isolated",
- "target": "tray_test_live_reload_running_deps"
+ "source": "tray_test_window_launcher_test_open_spawns_subprocess",
+ "target": "tray_test_window_launcher_python_window_argv"
},
{
"relation": "calls",
"context": "call",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_live_reload.py",
- "source_location": "L185",
+ "source_file": "tests/unit/tray/test_window_launcher.py",
+ "source_location": "L44",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tray_test_live_reload_test_rebuilds_lims_only_on_endpoint_change",
- "target": "tray_test_live_reload_running_deps"
+ "source": "tray_test_window_launcher_test_close_terminates_subprocess",
+ "target": "tray_test_window_launcher_python_window_argv"
},
{
"relation": "calls",
"context": "call",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_live_reload.py",
- "source_location": "L204",
+ "source_file": "tests/unit/tray/test_window_launcher.py",
+ "source_location": "L62",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tray_test_live_reload_test_rebuilds_plugin_host_only_on_dir_change",
- "target": "tray_test_live_reload_running_deps"
+ "source": "tray_test_window_launcher_test_open_focuses_existing",
+ "target": "tray_test_window_launcher_python_window_argv"
},
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_live_reload.py",
- "source_location": "L112",
+ "source_file": "tests/unit/tray/test_window_launcher.py",
+ "source_location": "L19",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tray_test_live_reload_rationale_112",
- "target": "tray_test_live_reload_running_deps"
+ "source": "tray_test_window_launcher_rationale_19",
+ "target": "tray_test_window_launcher_python_window_argv"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "tests/unit/tray/test_live_reload.py",
- "source_location": "L122",
- "weight": 1.0,
- "source": "tray_test_live_reload_running_deps",
- "target": "api_app_appdependencies"
- },
- {
- "relation": "rationale_for",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_live_reload.py",
- "source_location": "L121",
+ "source_file": "tests/unit/tray/test_window_launcher.py",
+ "source_location": "L30",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "tray_test_live_reload_rationale_121",
- "target": "tray_test_live_reload_running_deps"
+ "source": "tray_test_window_launcher_test_open_spawns_subprocess",
+ "target": "tray_window_launcher_windowlauncher"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "tests/unit/tray/test_live_reload.py",
- "source_location": "L140",
+ "source_file": "tests/unit/tray/test_window_launcher.py",
+ "source_location": "L43",
"weight": 1.0,
- "source": "tray_test_live_reload_test_reconfigures_existing_components_in_place",
- "target": "tray_dependencies_apply_live_config"
+ "source": "tray_test_window_launcher_test_close_terminates_subprocess",
+ "target": "tray_window_launcher_windowlauncher"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "tests/unit/tray/test_live_reload.py",
- "source_location": "L152",
- "weight": 1.0,
- "source": "tray_test_live_reload_test_skips_logging_reconfigure_when_unchanged",
- "target": "tray_dependencies_apply_live_config"
- },
- {
- "relation": "rationale_for",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_live_reload.py",
- "source_location": "L148",
+ "source_file": "tests/unit/tray/test_window_launcher.py",
+ "source_location": "L54",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "tray_test_live_reload_rationale_148",
- "target": "tray_test_live_reload_test_component_failure_is_isolated"
+ "source": "tray_test_window_launcher_test_close_is_idempotent",
+ "target": "tray_window_launcher_windowlauncher"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "tests/unit/tray/test_live_reload.py",
- "source_location": "L168",
- "weight": 1.0,
- "source": "tray_test_live_reload_test_component_failure_is_isolated",
- "target": "tray_dependencies_apply_live_config"
- },
- {
- "relation": "rationale_for",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_live_reload.py",
- "source_location": "L157",
+ "source_file": "tests/unit/tray/test_window_launcher.py",
+ "source_location": "L61",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "tray_test_live_reload_rationale_157",
- "target": "tray_test_live_reload_test_component_failure_is_isolated"
+ "source": "tray_test_window_launcher_test_open_focuses_existing",
+ "target": "tray_window_launcher_windowlauncher"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "tests/unit/tray/test_live_reload.py",
- "source_location": "L191",
+ "source_file": "tests/unit/tray/test_window_launcher.py",
+ "source_location": "L73",
"weight": 1.0,
- "source": "tray_test_live_reload_test_rebuilds_lims_only_on_endpoint_change",
- "target": "tray_dependencies_apply_live_config"
+ "source": "tray_test_window_launcher_test_resolve_window_executable_prefers_env_var",
+ "target": "tray_window_launcher_resolve_window_executable"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "tests/unit/tray/test_live_reload.py",
- "source_location": "L209",
- "weight": 1.0,
- "source": "tray_test_live_reload_test_rebuilds_plugin_host_only_on_dir_change",
- "target": "tray_dependencies_apply_live_config"
- },
- {
- "relation": "rationale_for",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_live_reload.py",
- "source_location": "L220",
+ "source_file": "tests/unit/tray/test_window_launcher.py",
+ "source_location": "L82",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "tray_test_live_reload_rationale_220",
- "target": "tray_test_live_reload_test_builds_and_starts_components_on_fresh_install"
+ "source": "tray_test_window_launcher_test_resolve_window_executable_uses_path",
+ "target": "tray_window_launcher_resolve_window_executable"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "tests/unit/tray/test_live_reload.py",
- "source_location": "L240",
+ "source_file": "tests/unit/tray/test_window_launcher.py",
+ "source_location": "L90",
"weight": 1.0,
- "source": "tray_test_live_reload_test_builds_and_starts_components_on_fresh_install",
- "target": "api_app_appdependencies"
+ "source": "tray_test_window_launcher_test_resolve_window_executable_falls_back_to_module",
+ "target": "tray_window_launcher_resolve_window_executable"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "tests/unit/tray/test_live_reload.py",
- "source_location": "L244",
+ "source_file": "tests/unit/tray/test_window_launcher.py",
+ "source_location": "L96",
"weight": 1.0,
- "source": "tray_test_live_reload_test_builds_and_starts_components_on_fresh_install",
- "target": "tray_dependencies_apply_live_config"
+ "source": "tray_test_window_launcher_test_window_executable_override",
+ "target": "tray_window_launcher_windowlauncher"
},
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_live_reload.py",
- "source_location": "L229",
+ "source_file": "tests/unit/tray/test_window_launcher.py",
+ "source_location": "L104",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tray_test_live_reload_rationale_229",
- "target": "tray_test_live_reload_test_builds_and_starts_components_on_fresh_install"
+ "source": "tray_test_window_launcher_rationale_104",
+ "target": "tray_test_window_launcher_test_argv_falls_through_resolve_helper"
},
{
- "relation": "rationale_for",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/__init__.py",
- "source_location": "L1",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/tray/test_window_launcher.py",
+ "source_location": "L105",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "tray_init_rationale_1",
- "target": "tests_unit_tray_init_py"
+ "source": "tray_test_window_launcher_test_argv_falls_through_resolve_helper",
+ "target": "tray_window_launcher_windowlauncher"
},
{
- "relation": "rationale_for",
- "confidence": "EXTRACTED",
- "source_file": "src/exlab_wizard/tray/__init__.py",
- "source_location": "L1",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/tray/test_window_launcher.py",
+ "source_location": "L114",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "tray_init_rationale_1",
- "target": "src_exlab_wizard_tray_init_py"
+ "source": "tray_test_window_launcher_test_pid_is_none_before_open",
+ "target": "tray_window_launcher_windowlauncher"
},
{
- "relation": "contains",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_status.py",
- "source_location": "L17",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/tray/test_window_launcher.py",
+ "source_location": "L120",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "tests_unit_tray_test_status_py",
- "target": "tray_test_status_stubstore"
+ "source": "tray_test_window_launcher_test_close_kills_unresponsive_process",
+ "target": "tray_window_launcher_windowlauncher"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_status.py",
- "source_location": "L23",
+ "source_file": "tests/unit/tray/test_autostart.py",
+ "source_location": "L24",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_tray_test_status_py",
- "target": "tray_test_status_stubsync"
+ "source": "tests_unit_tray_test_autostart_py",
+ "target": "tray_test_autostart_test_macos_register_writes_plist"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_status.py",
- "source_location": "L28",
+ "source_file": "tests/unit/tray/test_autostart.py",
+ "source_location": "L40",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_tray_test_status_py",
- "target": "tray_test_status_test_format_status_idle"
+ "source": "tests_unit_tray_test_autostart_py",
+ "target": "tray_test_autostart_test_macos_unregister_removes_plist"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_status.py",
- "source_location": "L33",
+ "source_file": "tests/unit/tray/test_autostart.py",
+ "source_location": "L51",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_tray_test_status_py",
- "target": "tray_test_status_test_format_status_sync_jobs"
+ "source": "tests_unit_tray_test_autostart_py",
+ "target": "tray_test_autostart_test_macos_register_is_idempotent"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_status.py",
- "source_location": "L38",
+ "source_file": "tests/unit/tray/test_autostart.py",
+ "source_location": "L63",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_tray_test_status_py",
- "target": "tray_test_status_test_format_status_single_job_uses_singular"
+ "source": "tests_unit_tray_test_autostart_py",
+ "target": "tray_test_autostart_test_linux_register_writes_systemd_and_desktop"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_status.py",
- "source_location": "L43",
+ "source_file": "tests/unit/tray/test_autostart.py",
+ "source_location": "L80",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_tray_test_status_py",
- "target": "tray_test_status_test_format_status_input_required_singular"
+ "source": "tests_unit_tray_test_autostart_py",
+ "target": "tray_test_autostart_test_linux_unregister_removes_both_files"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_status.py",
- "source_location": "L48",
+ "source_file": "tests/unit/tray/test_autostart.py",
+ "source_location": "L87",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_tray_test_status_py",
- "target": "tray_test_status_test_format_status_input_required_plural"
+ "source": "tests_unit_tray_test_autostart_py",
+ "target": "tray_test_autostart_test_linux_is_registered_when_only_desktop_present"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_status.py",
- "source_location": "L53",
+ "source_file": "tests/unit/tray/test_autostart.py",
+ "source_location": "L100",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_tray_test_status_py",
- "target": "tray_test_status_test_format_status_combines_sync_and_input_required"
+ "source": "tests_unit_tray_test_autostart_py",
+ "target": "tray_test_autostart_fakekey"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_status.py",
- "source_location": "L58",
+ "source_file": "tests/unit/tray/test_autostart.py",
+ "source_location": "L112",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_tray_test_status_py",
- "target": "tray_test_status_test_snapshot_status_with_none_components"
+ "source": "tests_unit_tray_test_autostart_py",
+ "target": "tray_test_autostart_fakewinreg"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_status.py",
- "source_location": "L65",
+ "source_file": "tests/unit/tray/test_autostart.py",
+ "source_location": "L155",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_tray_test_status_py",
- "target": "tray_test_status_test_snapshot_status_reads_components"
+ "source": "tests_unit_tray_test_autostart_py",
+ "target": "tray_test_autostart_fake_winreg"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_status.py",
- "source_location": "L75",
+ "source_file": "tests/unit/tray/test_autostart.py",
+ "source_location": "L161",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_tray_test_status_py",
- "target": "tray_test_status_test_snapshot_status_callable_attributes"
+ "source": "tests_unit_tray_test_autostart_py",
+ "target": "tray_test_autostart_test_windows_register_sets_run_value"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_status.py",
- "source_location": "L84",
+ "source_file": "tests/unit/tray/test_autostart.py",
+ "source_location": "L173",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_tray_test_status_py",
- "target": "tray_test_status_test_ticker_invokes_callback_on_first_tick"
+ "source": "tests_unit_tray_test_autostart_py",
+ "target": "tray_test_autostart_test_windows_unregister_deletes_run_value"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_status.py",
- "source_location": "L97",
+ "source_file": "tests/unit/tray/test_autostart.py",
+ "source_location": "L185",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_tray_test_status_py",
- "target": "tray_test_status_test_ticker_does_not_invoke_callback_when_label_unchanged"
+ "source": "tests_unit_tray_test_autostart_py",
+ "target": "tray_test_autostart_test_windows_unregister_when_value_missing_is_safe"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_status.py",
- "source_location": "L109",
+ "source_file": "tests/unit/tray/test_autostart.py",
+ "source_location": "L193",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_tray_test_status_py",
- "target": "tray_test_status_test_ticker_start_and_stop_idempotent"
+ "source": "tests_unit_tray_test_autostart_py",
+ "target": "tray_test_autostart_test_windows_open_key_handles_filenotfound_on_query"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_status.py",
- "source_location": "L117",
+ "source_file": "tests/unit/tray/test_autostart.py",
+ "source_location": "L211",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_tray_test_status_py",
- "target": "tray_test_status_test_ticker_callback_exception_is_swallowed"
+ "source": "tests_unit_tray_test_autostart_py",
+ "target": "tray_test_autostart_test_silently_unlink_tolerates_missing"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_status.py",
- "source_location": "L127",
+ "source_file": "tests/unit/tray/test_autostart.py",
+ "source_location": "L223",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_tray_test_status_py",
- "target": "tray_test_status_test_ticker_thread_runs"
+ "source": "tests_unit_tray_test_autostart_py",
+ "target": "tray_test_autostart_test_env_var_root_overrides_constructor"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_status.py",
- "source_location": "L149",
+ "source_file": "tests/unit/tray/test_autostart.py",
+ "source_location": "L238",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_tray_test_status_py",
- "target": "tray_test_status_test_default_refresh_matches_spec"
+ "source": "tests_unit_tray_test_autostart_py",
+ "target": "tray_test_autostart_test_executable_path_property"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_status.py",
- "source_location": "L154",
+ "source_file": "tests/unit/tray/test_autostart.py",
+ "source_location": "L244",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_tray_test_status_py",
- "target": "tray_test_status_test_safe_int_handles_callable_that_raises"
+ "source": "tests_unit_tray_test_autostart_py",
+ "target": "tray_test_autostart_test_default_executable_falls_back_to_sys_executable"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_status.py",
- "source_location": "L164",
+ "source_file": "tests/unit/tray/test_autostart.py",
+ "source_location": "L250",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_tray_test_status_py",
- "target": "tray_test_status_test_safe_int_handles_non_numeric"
+ "source": "tests_unit_tray_test_autostart_py",
+ "target": "tray_test_autostart_test_detect_platform_returns_known_value"
},
{
- "relation": "rationale_for",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_status.py",
- "source_location": "L1",
+ "source_file": "tests/unit/tray/test_autostart.py",
+ "source_location": "L255",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tray_test_status_rationale_1",
- "target": "tests_unit_tray_test_status_py"
+ "source": "tests_unit_tray_test_autostart_py",
+ "target": "tray_test_autostart_test_detect_platform_dispatch"
},
{
- "relation": "method",
+ "relation": "rationale_for",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_status.py",
- "source_location": "L18",
+ "source_file": "tests/unit/tray/test_autostart.py",
+ "source_location": "L1",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tray_test_status_stubstore",
- "target": "tray_test_status_stubstore_init"
+ "source": "tray_test_autostart_rationale_1",
+ "target": "tests_unit_tray_test_autostart_py"
},
{
"relation": "calls",
"context": "call",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_status.py",
- "source_location": "L67",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/tray/test_autostart.py",
+ "source_location": "L25",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "tray_test_status_test_snapshot_status_reads_components",
- "target": "tray_test_status_stubstore"
+ "source": "tray_test_autostart_test_macos_register_writes_plist",
+ "target": "tray_autostart_autostartmanager"
},
{
"relation": "calls",
"context": "call",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_status.py",
- "source_location": "L87",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/tray/test_autostart.py",
+ "source_location": "L41",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "tray_test_status_test_ticker_invokes_callback_on_first_tick",
- "target": "tray_test_status_stubstore"
+ "source": "tray_test_autostart_test_macos_unregister_removes_plist",
+ "target": "tray_autostart_autostartmanager"
},
{
"relation": "calls",
"context": "call",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_status.py",
- "source_location": "L100",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/tray/test_autostart.py",
+ "source_location": "L52",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "tray_test_status_test_ticker_does_not_invoke_callback_when_label_unchanged",
- "target": "tray_test_status_stubstore"
+ "source": "tray_test_autostart_test_macos_register_is_idempotent",
+ "target": "tray_autostart_autostartmanager"
},
{
"relation": "calls",
"context": "call",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_status.py",
- "source_location": "L137",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/tray/test_autostart.py",
+ "source_location": "L64",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "tray_test_status_test_ticker_thread_runs",
- "target": "tray_test_status_stubstore"
+ "source": "tray_test_autostart_test_linux_register_writes_systemd_and_desktop",
+ "target": "tray_autostart_autostartmanager"
},
{
- "relation": "uses",
+ "relation": "calls",
+ "context": "call",
"confidence": "INFERRED",
- "source_file": "tests/unit/tray/test_status.py",
- "source_location": "L8",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "tray_test_status_stubstore",
- "target": "tray_status_statussnapshot"
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/tray/test_autostart.py",
+ "source_location": "L81",
+ "weight": 1.0,
+ "source": "tray_test_autostart_test_linux_unregister_removes_both_files",
+ "target": "tray_autostart_autostartmanager"
},
{
- "relation": "uses",
+ "relation": "calls",
+ "context": "call",
"confidence": "INFERRED",
- "source_file": "tests/unit/tray/test_status.py",
- "source_location": "L8",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "tray_test_status_stubstore",
- "target": "tray_status_statusticker"
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/tray/test_autostart.py",
+ "source_location": "L88",
+ "weight": 1.0,
+ "source": "tray_test_autostart_test_linux_is_registered_when_only_desktop_present",
+ "target": "tray_autostart_autostartmanager"
},
{
"relation": "method",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_status.py",
- "source_location": "L24",
+ "source_file": "tests/unit/tray/test_autostart.py",
+ "source_location": "L101",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tray_test_status_stubsync",
- "target": "tray_test_status_stubsync_init"
+ "source": "tray_test_autostart_fakekey",
+ "target": "tray_test_autostart_fakekey_init"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "method",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_status.py",
- "source_location": "L68",
+ "source_file": "tests/unit/tray/test_autostart.py",
+ "source_location": "L105",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tray_test_status_test_snapshot_status_reads_components",
- "target": "tray_test_status_stubsync"
+ "source": "tray_test_autostart_fakekey",
+ "target": "tray_test_autostart_fakekey_enter"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "method",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_status.py",
- "source_location": "L88",
+ "source_file": "tests/unit/tray/test_autostart.py",
+ "source_location": "L108",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tray_test_status_test_ticker_invokes_callback_on_first_tick",
- "target": "tray_test_status_stubsync"
+ "source": "tray_test_autostart_fakekey",
+ "target": "tray_test_autostart_fakekey_exit"
},
{
"relation": "calls",
"context": "call",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_status.py",
- "source_location": "L101",
+ "source_file": "tests/unit/tray/test_autostart.py",
+ "source_location": "L131",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tray_test_status_test_ticker_does_not_invoke_callback_when_label_unchanged",
- "target": "tray_test_status_stubsync"
+ "source": "tray_test_autostart_fakewinreg_openkey",
+ "target": "tray_test_autostart_fakekey"
},
{
"relation": "uses",
"confidence": "INFERRED",
- "source_file": "tests/unit/tray/test_status.py",
- "source_location": "L8",
+ "source_file": "tests/unit/tray/test_autostart.py",
+ "source_location": "L10",
"weight": 0.8,
"confidence_score": 0.5,
- "source": "tray_test_status_stubsync",
- "target": "tray_status_statussnapshot"
+ "source": "tray_test_autostart_fakekey",
+ "target": "tray_autostart_autostartmanager"
},
{
- "relation": "uses",
- "confidence": "INFERRED",
- "source_file": "tests/unit/tray/test_status.py",
- "source_location": "L8",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "tray_test_status_stubsync",
- "target": "tray_status_statusticker"
+ "relation": "method",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/tray/test_autostart.py",
+ "source_location": "L118",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "tray_test_autostart_fakewinreg",
+ "target": "tray_test_autostart_fakewinreg_init"
},
{
- "relation": "calls",
- "context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/tray/test_status.py",
- "source_location": "L29",
+ "relation": "method",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/tray/test_autostart.py",
+ "source_location": "L122",
"weight": 1.0,
- "source": "tray_test_status_test_format_status_idle",
- "target": "tray_status_statussnapshot"
+ "confidence_score": 1.0,
+ "source": "tray_test_autostart_fakewinreg",
+ "target": "tray_test_autostart_fakewinreg_openkey"
},
{
- "relation": "calls",
- "context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/tray/test_status.py",
- "source_location": "L30",
+ "relation": "method",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/tray/test_autostart.py",
+ "source_location": "L133",
"weight": 1.0,
- "source": "tray_test_status_test_format_status_idle",
- "target": "tray_status_format_status"
+ "confidence_score": 1.0,
+ "source": "tray_test_autostart_fakewinreg",
+ "target": "tray_test_autostart_fakewinreg_setvalueex"
},
{
- "relation": "calls",
- "context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/tray/test_status.py",
- "source_location": "L34",
+ "relation": "method",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/tray/test_autostart.py",
+ "source_location": "L145",
"weight": 1.0,
- "source": "tray_test_status_test_format_status_sync_jobs",
- "target": "tray_status_statussnapshot"
+ "confidence_score": 1.0,
+ "source": "tray_test_autostart_fakewinreg",
+ "target": "tray_test_autostart_fakewinreg_queryvalueex"
},
{
- "relation": "calls",
- "context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/tray/test_status.py",
- "source_location": "L35",
+ "relation": "method",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/tray/test_autostart.py",
+ "source_location": "L150",
"weight": 1.0,
- "source": "tray_test_status_test_format_status_sync_jobs",
- "target": "tray_status_format_status"
+ "confidence_score": 1.0,
+ "source": "tray_test_autostart_fakewinreg",
+ "target": "tray_test_autostart_fakewinreg_deletevalue"
},
{
"relation": "calls",
"context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/tray/test_status.py",
- "source_location": "L39",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/tray/test_autostart.py",
+ "source_location": "L156",
"weight": 1.0,
- "source": "tray_test_status_test_format_status_single_job_uses_singular",
- "target": "tray_status_statussnapshot"
+ "confidence_score": 1.0,
+ "source": "tray_test_autostart_fake_winreg",
+ "target": "tray_test_autostart_fakewinreg"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "uses",
"confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/tray/test_status.py",
- "source_location": "L40",
- "weight": 1.0,
- "source": "tray_test_status_test_format_status_single_job_uses_singular",
- "target": "tray_status_format_status"
+ "source_file": "tests/unit/tray/test_autostart.py",
+ "source_location": "L10",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "tray_test_autostart_fakewinreg",
+ "target": "tray_autostart_autostartmanager"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "tests/unit/tray/test_status.py",
- "source_location": "L44",
+ "source_file": "tests/unit/tray/test_autostart.py",
+ "source_location": "L162",
"weight": 1.0,
- "source": "tray_test_status_test_format_status_input_required_singular",
- "target": "tray_status_statussnapshot"
+ "source": "tray_test_autostart_test_windows_register_sets_run_value",
+ "target": "tray_autostart_autostartmanager"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "tests/unit/tray/test_status.py",
- "source_location": "L45",
+ "source_file": "tests/unit/tray/test_autostart.py",
+ "source_location": "L174",
"weight": 1.0,
- "source": "tray_test_status_test_format_status_input_required_singular",
- "target": "tray_status_format_status"
+ "source": "tray_test_autostart_test_windows_unregister_deletes_run_value",
+ "target": "tray_autostart_autostartmanager"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "tests/unit/tray/test_status.py",
- "source_location": "L49",
+ "source_file": "tests/unit/tray/test_autostart.py",
+ "source_location": "L189",
"weight": 1.0,
- "source": "tray_test_status_test_format_status_input_required_plural",
- "target": "tray_status_statussnapshot"
+ "source": "tray_test_autostart_test_windows_unregister_when_value_missing_is_safe",
+ "target": "tray_autostart_autostartmanager"
},
{
- "relation": "calls",
- "context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/tray/test_status.py",
- "source_location": "L50",
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/tray/test_autostart.py",
+ "source_location": "L196",
"weight": 1.0,
- "source": "tray_test_status_test_format_status_input_required_plural",
- "target": "tray_status_format_status"
+ "confidence_score": 1.0,
+ "source": "tray_test_autostart_rationale_196",
+ "target": "tray_test_autostart_test_windows_open_key_handles_filenotfound_on_query"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "tests/unit/tray/test_status.py",
- "source_location": "L54",
+ "source_file": "tests/unit/tray/test_autostart.py",
+ "source_location": "L205",
"weight": 1.0,
- "source": "tray_test_status_test_format_status_combines_sync_and_input_required",
- "target": "tray_status_statussnapshot"
+ "source": "tray_test_autostart_test_windows_open_key_handles_filenotfound_on_query",
+ "target": "tray_autostart_autostartmanager"
},
{
- "relation": "calls",
- "context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/tray/test_status.py",
- "source_location": "L55",
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/tray/test_autostart.py",
+ "source_location": "L212",
"weight": 1.0,
- "source": "tray_test_status_test_format_status_combines_sync_and_input_required",
- "target": "tray_status_format_status"
+ "confidence_score": 1.0,
+ "source": "tray_test_autostart_rationale_212",
+ "target": "tray_test_autostart_test_silently_unlink_tolerates_missing"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "tests/unit/tray/test_status.py",
- "source_location": "L59",
+ "source_file": "tests/unit/tray/test_autostart.py",
+ "source_location": "L215",
"weight": 1.0,
- "source": "tray_test_status_test_snapshot_status_with_none_components",
- "target": "tray_status_snapshot_status"
+ "source": "tray_test_autostart_test_silently_unlink_tolerates_missing",
+ "target": "tray_autostart_silently_unlink"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "tests/unit/tray/test_status.py",
- "source_location": "L66",
+ "source_file": "tests/unit/tray/test_autostart.py",
+ "source_location": "L229",
"weight": 1.0,
- "source": "tray_test_status_test_snapshot_status_reads_components",
- "target": "tray_status_snapshot_status"
+ "source": "tray_test_autostart_test_env_var_root_overrides_constructor",
+ "target": "tray_autostart_autostartmanager"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "tests/unit/tray/test_status.py",
- "source_location": "L80",
+ "source_file": "tests/unit/tray/test_autostart.py",
+ "source_location": "L239",
"weight": 1.0,
- "source": "tray_test_status_test_snapshot_status_callable_attributes",
- "target": "tray_status_snapshot_status"
+ "source": "tray_test_autostart_test_executable_path_property",
+ "target": "tray_autostart_autostartmanager"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "tests/unit/tray/test_status.py",
- "source_location": "L86",
+ "source_file": "tests/unit/tray/test_autostart.py",
+ "source_location": "L245",
"weight": 1.0,
- "source": "tray_test_status_test_ticker_invokes_callback_on_first_tick",
- "target": "tray_status_statusticker"
+ "source": "tray_test_autostart_test_default_executable_falls_back_to_sys_executable",
+ "target": "tray_autostart_autostartmanager"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "tests/unit/tray/test_status.py",
- "source_location": "L99",
+ "source_file": "tests/unit/tray/test_autostart.py",
+ "source_location": "L251",
"weight": 1.0,
- "source": "tray_test_status_test_ticker_does_not_invoke_callback_when_label_unchanged",
- "target": "tray_status_statusticker"
+ "source": "tray_test_autostart_test_detect_platform_returns_known_value",
+ "target": "tray_autostart_detect_platform"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "tests/unit/tray/test_status.py",
- "source_location": "L110",
+ "source_file": "tests/unit/tray/test_autostart.py",
+ "source_location": "L257",
"weight": 1.0,
- "source": "tray_test_status_test_ticker_start_and_stop_idempotent",
- "target": "tray_status_statusticker"
+ "source": "tray_test_autostart_test_detect_platform_dispatch",
+ "target": "tray_autostart_detect_platform"
},
{
- "relation": "calls",
- "context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/tray/test_status.py",
- "source_location": "L121",
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/tray/test_main.py",
+ "source_location": "L15",
"weight": 1.0,
- "source": "tray_test_status_test_ticker_callback_exception_is_swallowed",
- "target": "tray_status_statusticker"
+ "confidence_score": 1.0,
+ "source": "tests_unit_tray_test_main_py",
+ "target": "tray_test_main_stubserverrunner"
},
{
- "relation": "rationale_for",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_status.py",
- "source_location": "L128",
+ "source_file": "tests/unit/tray/test_main.py",
+ "source_location": "L30",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tray_test_status_rationale_128",
- "target": "tray_test_status_test_ticker_thread_runs"
+ "source": "tests_unit_tray_test_main_py",
+ "target": "tray_test_main_stubwindowlauncher"
},
{
- "relation": "calls",
- "context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/tray/test_status.py",
- "source_location": "L136",
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/tray/test_main.py",
+ "source_location": "L42",
"weight": 1.0,
- "source": "tray_test_status_test_ticker_thread_runs",
- "target": "tray_status_statusticker"
+ "confidence_score": 1.0,
+ "source": "tests_unit_tray_test_main_py",
+ "target": "tray_test_main_stubquitcoordinator"
},
{
- "relation": "calls",
- "context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/tray/test_status.py",
- "source_location": "L161",
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/tray/test_main.py",
+ "source_location": "L51",
"weight": 1.0,
- "source": "tray_test_status_test_safe_int_handles_callable_that_raises",
- "target": "tray_status_safe_int"
+ "confidence_score": 1.0,
+ "source": "tests_unit_tray_test_main_py",
+ "target": "tray_test_main_stubstatusticker"
},
{
- "relation": "calls",
- "context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/tray/test_status.py",
- "source_location": "L170",
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/tray/test_main.py",
+ "source_location": "L68",
"weight": 1.0,
- "source": "tray_test_status_test_safe_int_handles_non_numeric",
- "target": "tray_status_safe_int"
+ "confidence_score": 1.0,
+ "source": "tests_unit_tray_test_main_py",
+ "target": "tray_test_main_stubbus"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_server_runner.py",
- "source_location": "L21",
+ "source_file": "tests/unit/tray/test_main.py",
+ "source_location": "L76",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_tray_test_server_runner_py",
- "target": "tray_test_server_runner_fakeuvicornserver"
+ "source": "tests_unit_tray_test_main_py",
+ "target": "tray_test_main_stubautostart"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_server_runner.py",
- "source_location": "L44",
+ "source_file": "tests/unit/tray/test_main.py",
+ "source_location": "L80",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_tray_test_server_runner_py",
- "target": "tray_test_server_runner_make_runner"
+ "source": "tests_unit_tray_test_main_py",
+ "target": "tray_test_main_make_tray"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_server_runner.py",
- "source_location": "L60",
+ "source_file": "tests/unit/tray/test_main.py",
+ "source_location": "L91",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_tray_test_server_runner_py",
- "target": "tray_test_server_runner_test_pick_free_port_returns_bindable_port"
+ "source": "tests_unit_tray_test_main_py",
+ "target": "tray_test_main_test_start_server_calls_runner"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_server_runner.py",
- "source_location": "L72",
+ "source_file": "tests/unit/tray/test_main.py",
+ "source_location": "L98",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_tray_test_server_runner_py",
- "target": "tray_test_server_runner_test_start_writes_server_json_atomically"
+ "source": "tests_unit_tray_test_main_py",
+ "target": "tray_test_main_test_open_window_delegates"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_server_runner.py",
- "source_location": "L89",
+ "source_file": "tests/unit/tray/test_main.py",
+ "source_location": "L104",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_tray_test_server_runner_py",
- "target": "tray_test_server_runner_test_stop_deletes_state_file"
+ "source": "tests_unit_tray_test_main_py",
+ "target": "tray_test_main_test_request_quit_runs_coordinator"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_server_runner.py",
- "source_location": "L98",
+ "source_file": "tests/unit/tray/test_main.py",
+ "source_location": "L110",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_tray_test_server_runner_py",
- "target": "tray_test_server_runner_test_double_start_raises"
+ "source": "tests_unit_tray_test_main_py",
+ "target": "tray_test_main_test_request_quit_calls_icon_stop_when_set"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_server_runner.py",
- "source_location": "L108",
+ "source_file": "tests/unit/tray/test_main.py",
+ "source_location": "L118",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_tray_test_server_runner_py",
- "target": "tray_test_server_runner_test_port_property_before_start_raises"
+ "source": "tests_unit_tray_test_main_py",
+ "target": "tray_test_main_test_request_quit_handles_icon_stop_error"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_server_runner.py",
- "source_location": "L114",
+ "source_file": "tests/unit/tray/test_main.py",
+ "source_location": "L126",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_tray_test_server_runner_py",
- "target": "tray_test_server_runner_test_port_property_after_start"
+ "source": "tests_unit_tray_test_main_py",
+ "target": "tray_test_main_test_shutdown_tears_components_down"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_server_runner.py",
- "source_location": "L123",
+ "source_file": "tests/unit/tray/test_main.py",
+ "source_location": "L135",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_tray_test_server_runner_py",
- "target": "tray_test_server_runner_test_state_file_property_returns_expected_path"
+ "source": "tests_unit_tray_test_main_py",
+ "target": "tray_test_main_test_run_wires_icon_and_invokes_run_loop"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_server_runner.py",
- "source_location": "L128",
+ "source_file": "tests/unit/tray/test_main.py",
+ "source_location": "L166",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_tray_test_server_runner_py",
- "target": "tray_test_server_runner_test_stop_is_idempotent"
+ "source": "tests_unit_tray_test_main_py",
+ "target": "tray_test_main_test_build_default_components"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_server_runner.py",
- "source_location": "L135",
+ "source_file": "tests/unit/tray/test_main.py",
+ "source_location": "L178",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_tray_test_server_runner_py",
- "target": "tray_test_server_runner_test_start_creates_state_dir_if_missing"
+ "source": "tests_unit_tray_test_main_py",
+ "target": "tray_test_main_test_main_uses_run_helper"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_server_runner.py",
- "source_location": "L145",
+ "source_file": "tests/unit/tray/test_main.py",
+ "source_location": "L201",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_tray_test_server_runner_py",
- "target": "tray_test_server_runner_test_is_running_tracks_thread_lifecycle"
+ "source": "tests_unit_tray_test_main_py",
+ "target": "tray_test_main_test_main_handles_keyboard_interrupt"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_server_runner.py",
- "source_location": "L157",
+ "source_file": "tests/unit/tray/test_main.py",
+ "source_location": "L218",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_tray_test_server_runner_py",
- "target": "tray_test_server_runner_test_real_uvicorn_resolves_lazily"
+ "source": "tests_unit_tray_test_main_py",
+ "target": "tray_test_main_test_run_returns_one_on_icon_failure"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_server_runner.py",
- "source_location": "L170",
+ "source_file": "tests/unit/tray/test_main.py",
+ "source_location": "L232",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_tray_test_server_runner_py",
- "target": "tray_test_server_runner_test_delete_state_file_handles_missing"
+ "source": "tests_unit_tray_test_main_py",
+ "target": "tray_test_main_test_request_quit_uses_running_loop_when_present"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_server_runner.py",
- "source_location": "L176",
+ "source_file": "tests/unit/tray/test_main.py",
+ "source_location": "L269",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_tray_test_server_runner_py",
- "target": "tray_test_server_runner_test_stop_handles_attribute_error_on_should_exit"
+ "source": "tests_unit_tray_test_main_py",
+ "target": "tray_test_main_test_build_default_app"
},
{
- "relation": "rationale_for",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_server_runner.py",
- "source_location": "L1",
+ "source_file": "tests/unit/tray/test_main.py",
+ "source_location": "L302",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tray_test_server_runner_rationale_1",
- "target": "tests_unit_tray_test_server_runner_py"
+ "source": "tests_unit_tray_test_main_py",
+ "target": "tray_test_main_test_build_default_components_falls_back_to_default_app"
},
{
- "relation": "method",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_server_runner.py",
- "source_location": "L24",
+ "source_file": "tests/unit/tray/test_main.py",
+ "source_location": "L314",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tray_test_server_runner_fakeuvicornserver",
- "target": "tray_test_server_runner_fakeuvicornserver_init"
+ "source": "tests_unit_tray_test_main_py",
+ "target": "tray_test_main_test_parse_argv_defaults_no_smoke"
},
{
- "relation": "method",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_server_runner.py",
- "source_location": "L30",
+ "source_file": "tests/unit/tray/test_main.py",
+ "source_location": "L323",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tray_test_server_runner_fakeuvicornserver",
- "target": "tray_test_server_runner_fakeuvicornserver_run"
+ "source": "tests_unit_tray_test_main_py",
+ "target": "tray_test_main_test_parse_argv_smoke_flag"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_server_runner.py",
- "source_location": "L49",
+ "source_file": "tests/unit/tray/test_main.py",
+ "source_location": "L331",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tray_test_server_runner_make_runner",
- "target": "tray_test_server_runner_fakeuvicornserver"
+ "source": "tests_unit_tray_test_main_py",
+ "target": "tray_test_main_test_parse_argv_no_autostart_prompt_silently_accepted"
},
{
- "relation": "rationale_for",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_server_runner.py",
- "source_location": "L22",
+ "source_file": "tests/unit/tray/test_main.py",
+ "source_location": "L339",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tray_test_server_runner_rationale_22",
- "target": "tray_test_server_runner_fakeuvicornserver"
+ "source": "tests_unit_tray_test_main_py",
+ "target": "tray_test_main_test_run_smoke_starts_server_and_stops_on_signal"
},
{
- "relation": "uses",
- "confidence": "INFERRED",
- "source_file": "tests/unit/tray/test_server_runner.py",
- "source_location": "L14",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "tray_test_server_runner_fakeuvicornserver",
- "target": "tray_server_runner_serverrunner"
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/tray/test_main.py",
+ "source_location": "L376",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "tests_unit_tray_test_main_py",
+ "target": "tray_test_main_test_main_smoke_dispatches_to_run_smoke"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_server_runner.py",
- "source_location": "L73",
+ "source_file": "tests/unit/tray/test_main.py",
+ "source_location": "L397",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tray_test_server_runner_test_start_writes_server_json_atomically",
- "target": "tray_test_server_runner_make_runner"
+ "source": "tests_unit_tray_test_main_py",
+ "target": "tray_test_main_test_parse_argv_version_flag"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_server_runner.py",
- "source_location": "L90",
+ "source_file": "tests/unit/tray/test_main.py",
+ "source_location": "L405",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tray_test_server_runner_test_stop_deletes_state_file",
- "target": "tray_test_server_runner_make_runner"
+ "source": "tests_unit_tray_test_main_py",
+ "target": "tray_test_main_test_main_version_prints_version_and_exits_zero"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_server_runner.py",
- "source_location": "L99",
+ "source_file": "tests/unit/tray/test_main.py",
+ "source_location": "L423",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tray_test_server_runner_test_double_start_raises",
- "target": "tray_test_server_runner_make_runner"
+ "source": "tests_unit_tray_test_main_py",
+ "target": "tray_test_main_test_parse_argv_defaults_no_test_flags"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_server_runner.py",
- "source_location": "L109",
+ "source_file": "tests/unit/tray/test_main.py",
+ "source_location": "L432",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tray_test_server_runner_test_port_property_before_start_raises",
- "target": "tray_test_server_runner_make_runner"
+ "source": "tests_unit_tray_test_main_py",
+ "target": "tray_test_main_test_parse_argv_test_flag"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_server_runner.py",
- "source_location": "L115",
+ "source_file": "tests/unit/tray/test_main.py",
+ "source_location": "L440",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tray_test_server_runner_test_port_property_after_start",
- "target": "tray_test_server_runner_make_runner"
+ "source": "tests_unit_tray_test_main_py",
+ "target": "tray_test_main_test_parse_argv_test_with_samples"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_server_runner.py",
- "source_location": "L124",
+ "source_file": "tests/unit/tray/test_main.py",
+ "source_location": "L448",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tray_test_server_runner_test_state_file_property_returns_expected_path",
- "target": "tray_test_server_runner_make_runner"
+ "source": "tests_unit_tray_test_main_py",
+ "target": "tray_test_main_test_parse_argv_samples_without_test_errors"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_server_runner.py",
- "source_location": "L129",
+ "source_file": "tests/unit/tray/test_main.py",
+ "source_location": "L462",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tray_test_server_runner_test_stop_is_idempotent",
- "target": "tray_test_server_runner_make_runner"
+ "source": "tests_unit_tray_test_main_py",
+ "target": "tray_test_main_test_mode_env"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_server_runner.py",
- "source_location": "L137",
+ "source_file": "tests/unit/tray/test_main.py",
+ "source_location": "L487",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tray_test_server_runner_test_start_creates_state_dir_if_missing",
- "target": "tray_test_server_runner_make_runner"
+ "source": "tests_unit_tray_test_main_py",
+ "target": "tray_test_main_test_main_test_flag_sets_env_and_bootstraps_config"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_server_runner.py",
- "source_location": "L146",
+ "source_file": "tests/unit/tray/test_main.py",
+ "source_location": "L524",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tray_test_server_runner_test_is_running_tracks_thread_lifecycle",
- "target": "tray_test_server_runner_make_runner"
+ "source": "tests_unit_tray_test_main_py",
+ "target": "tray_test_main_test_main_test_does_not_overwrite_existing_config"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_server_runner.py",
- "source_location": "L178",
+ "source_file": "tests/unit/tray/test_main.py",
+ "source_location": "L539",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tray_test_server_runner_test_stop_handles_attribute_error_on_should_exit",
- "target": "tray_test_server_runner_make_runner"
+ "source": "tests_unit_tray_test_main_py",
+ "target": "tray_test_main_test_main_test_with_samples_adds_equipment"
},
{
- "relation": "calls",
- "context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/tray/test_server_runner.py",
- "source_location": "L55",
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/tray/test_main.py",
+ "source_location": "L562",
"weight": 1.0,
- "source": "tray_test_server_runner_make_runner",
- "target": "tray_server_runner_serverrunner"
+ "source": "tests_unit_tray_test_main_py",
+ "target": "tray_test_main_test_main_test_with_samples_repeat_boot_is_noop",
+ "confidence_score": 1.0
},
{
- "relation": "calls",
- "context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/tray/test_server_runner.py",
- "source_location": "L61",
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/tray/test_main.py",
+ "source_location": "L555",
"weight": 1.0,
- "source": "tray_test_server_runner_test_pick_free_port_returns_bindable_port",
- "target": "tray_server_runner_pick_free_port"
+ "confidence_score": 1.0,
+ "source": "tests_unit_tray_test_main_py",
+ "target": "tray_test_main_test_main_without_test_does_not_set_env"
},
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_server_runner.py",
- "source_location": "L158",
+ "source_file": "tests/unit/tray/test_main.py",
+ "source_location": "L1",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tray_test_server_runner_rationale_158",
- "target": "tray_test_server_runner_test_real_uvicorn_resolves_lazily"
+ "source": "tray_test_main_rationale_1",
+ "target": "tests_unit_tray_test_main_py"
},
{
- "relation": "calls",
- "context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/tray/test_server_runner.py",
- "source_location": "L164",
+ "relation": "method",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/tray/test_main.py",
+ "source_location": "L16",
"weight": 1.0,
- "source": "tray_test_server_runner_test_real_uvicorn_resolves_lazily",
- "target": "tray_server_runner_serverrunner"
+ "confidence_score": 1.0,
+ "source": "tray_test_main_stubserverrunner",
+ "target": "tray_test_main_stubserverrunner_init"
},
{
- "relation": "calls",
- "context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/tray/test_server_runner.py",
- "source_location": "L171",
+ "relation": "method",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/tray/test_main.py",
+ "source_location": "L22",
"weight": 1.0,
- "source": "tray_test_server_runner_test_delete_state_file_handles_missing",
- "target": "tray_server_runner_serverrunner"
+ "confidence_score": 1.0,
+ "source": "tray_test_main_stubserverrunner",
+ "target": "tray_test_main_stubserverrunner_start"
},
{
- "relation": "rationale_for",
+ "relation": "method",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_server_runner.py",
- "source_location": "L177",
+ "source_file": "tests/unit/tray/test_main.py",
+ "source_location": "L26",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tray_test_server_runner_rationale_177",
- "target": "tray_test_server_runner_test_stop_handles_attribute_error_on_should_exit"
+ "source": "tray_test_main_stubserverrunner",
+ "target": "tray_test_main_stubserverrunner_stop"
},
{
- "relation": "contains",
+ "relation": "calls",
+ "context": "call",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_notifications.py",
- "source_location": "L19",
+ "source_file": "tests/unit/tray/test_main.py",
+ "source_location": "L82",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_tray_test_notifications_py",
- "target": "tray_test_notifications_test_notify_calls_injected_callable"
+ "source": "tray_test_main_make_tray",
+ "target": "tray_test_main_stubserverrunner"
},
{
- "relation": "contains",
+ "relation": "uses",
+ "confidence": "INFERRED",
+ "source_file": "tests/unit/tray/test_main.py",
+ "source_location": "L12",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "tray_test_main_stubserverrunner",
+ "target": "tray_main_trayapp"
+ },
+ {
+ "relation": "method",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_notifications.py",
- "source_location": "L29",
+ "source_file": "tests/unit/tray/test_main.py",
+ "source_location": "L31",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_tray_test_notifications_py",
- "target": "tray_test_notifications_test_notify_swallows_notifier_exceptions"
+ "source": "tray_test_main_stubwindowlauncher",
+ "target": "tray_test_main_stubwindowlauncher_init"
},
{
- "relation": "contains",
+ "relation": "method",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_notifications.py",
- "source_location": "L37",
+ "source_file": "tests/unit/tray/test_main.py",
+ "source_location": "L35",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_tray_test_notifications_py",
- "target": "tray_test_notifications_test_bus_emits_after_coalescing_window"
+ "source": "tray_test_main_stubwindowlauncher",
+ "target": "tray_test_main_stubwindowlauncher_open"
},
{
- "relation": "contains",
+ "relation": "method",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_notifications.py",
- "source_location": "L63",
+ "source_file": "tests/unit/tray/test_main.py",
+ "source_location": "L38",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_tray_test_notifications_py",
- "target": "tray_test_notifications_test_bus_suppresses_when_window_foregrounded"
+ "source": "tray_test_main_stubwindowlauncher",
+ "target": "tray_test_main_stubwindowlauncher_close"
},
{
- "relation": "contains",
+ "relation": "calls",
+ "context": "call",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_notifications.py",
- "source_location": "L74",
+ "source_file": "tests/unit/tray/test_main.py",
+ "source_location": "L83",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_tray_test_notifications_py",
- "target": "tray_test_notifications_test_bus_separate_kinds_separate_buckets"
+ "source": "tray_test_main_make_tray",
+ "target": "tray_test_main_stubwindowlauncher"
},
{
- "relation": "contains",
+ "relation": "uses",
+ "confidence": "INFERRED",
+ "source_file": "tests/unit/tray/test_main.py",
+ "source_location": "L12",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "tray_test_main_stubwindowlauncher",
+ "target": "tray_main_trayapp"
+ },
+ {
+ "relation": "method",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_notifications.py",
- "source_location": "L89",
+ "source_file": "tests/unit/tray/test_main.py",
+ "source_location": "L43",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_tray_test_notifications_py",
- "target": "tray_test_notifications_test_bus_cancel_all_drops_pending"
+ "source": "tray_test_main_stubquitcoordinator",
+ "target": "tray_test_main_stubquitcoordinator_init"
},
{
- "relation": "contains",
+ "relation": "method",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_notifications.py",
- "source_location": "L102",
+ "source_file": "tests/unit/tray/test_main.py",
+ "source_location": "L46",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_tray_test_notifications_py",
- "target": "tray_test_notifications_test_bus_emits_singleton_message_unchanged"
+ "source": "tray_test_main_stubquitcoordinator",
+ "target": "tray_test_main_stubquitcoordinator_quit"
+ },
+ {
+ "relation": "calls",
+ "context": "call",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/tray/test_main.py",
+ "source_location": "L84",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "tray_test_main_make_tray",
+ "target": "tray_test_main_stubquitcoordinator"
+ },
+ {
+ "relation": "uses",
+ "confidence": "INFERRED",
+ "source_file": "tests/unit/tray/test_main.py",
+ "source_location": "L12",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "tray_test_main_stubquitcoordinator",
+ "target": "tray_main_trayapp"
},
{
- "relation": "contains",
+ "relation": "method",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_notifications.py",
- "source_location": "L114",
+ "source_file": "tests/unit/tray/test_main.py",
+ "source_location": "L52",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_tray_test_notifications_py",
- "target": "tray_test_notifications_test_coalescing_window_constant_matches_spec"
+ "source": "tray_test_main_stubstatusticker",
+ "target": "tray_test_main_stubstatusticker_init"
},
{
- "relation": "contains",
+ "relation": "method",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_notifications.py",
- "source_location": "L118",
+ "source_file": "tests/unit/tray/test_main.py",
+ "source_location": "L57",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_tray_test_notifications_py",
- "target": "tray_test_notifications_test_coalesced_message_plugin_input_required_plural"
+ "source": "tray_test_main_stubstatusticker",
+ "target": "tray_test_main_stubstatusticker_start"
},
{
- "relation": "contains",
+ "relation": "method",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_notifications.py",
- "source_location": "L122",
+ "source_file": "tests/unit/tray/test_main.py",
+ "source_location": "L60",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_tray_test_notifications_py",
- "target": "tray_test_notifications_test_coalesced_message_plugin_input_required_singular"
+ "source": "tray_test_main_stubstatusticker",
+ "target": "tray_test_main_stubstatusticker_stop"
},
{
- "relation": "contains",
+ "relation": "method",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_notifications.py",
- "source_location": "L126",
+ "source_file": "tests/unit/tray/test_main.py",
+ "source_location": "L63",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_tray_test_notifications_py",
- "target": "tray_test_notifications_test_coalesced_message_sync_failed_plural"
+ "source": "tray_test_main_stubstatusticker",
+ "target": "tray_test_main_stubstatusticker_tick_once"
},
{
- "relation": "contains",
+ "relation": "calls",
+ "context": "call",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_notifications.py",
- "source_location": "L130",
+ "source_file": "tests/unit/tray/test_main.py",
+ "source_location": "L85",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_tray_test_notifications_py",
- "target": "tray_test_notifications_test_coalesced_message_sync_failed_singular"
+ "source": "tray_test_main_make_tray",
+ "target": "tray_test_main_stubstatusticker"
},
{
- "relation": "contains",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_notifications.py",
- "source_location": "L134",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "tests_unit_tray_test_notifications_py",
- "target": "tray_test_notifications_test_coalesced_message_unknown_kind"
+ "relation": "uses",
+ "confidence": "INFERRED",
+ "source_file": "tests/unit/tray/test_main.py",
+ "source_location": "L12",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "tray_test_main_stubstatusticker",
+ "target": "tray_main_trayapp"
},
{
- "relation": "contains",
+ "relation": "method",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_notifications.py",
- "source_location": "L138",
+ "source_file": "tests/unit/tray/test_main.py",
+ "source_location": "L69",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_tray_test_notifications_py",
- "target": "tray_test_notifications_test_bus_timer_fires_after_window"
+ "source": "tray_test_main_stubbus",
+ "target": "tray_test_main_stubbus_init"
},
{
- "relation": "contains",
+ "relation": "method",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_notifications.py",
- "source_location": "L153",
+ "source_file": "tests/unit/tray/test_main.py",
+ "source_location": "L72",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_tray_test_notifications_py",
- "target": "tray_test_notifications_test_default_notifier_returns_callable"
+ "source": "tray_test_main_stubbus",
+ "target": "tray_test_main_stubbus_cancel_all"
},
{
- "relation": "contains",
+ "relation": "calls",
+ "context": "call",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_notifications.py",
- "source_location": "L161",
+ "source_file": "tests/unit/tray/test_main.py",
+ "source_location": "L86",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_tray_test_notifications_py",
- "target": "tray_test_notifications_test_noop_notifier_swallows_arbitrary_kwargs"
+ "source": "tray_test_main_make_tray",
+ "target": "tray_test_main_stubbus"
},
{
- "relation": "contains",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_notifications.py",
- "source_location": "L168",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "tests_unit_tray_test_notifications_py",
- "target": "tray_test_notifications_test_notify_uses_default_notifier_when_none"
+ "relation": "uses",
+ "confidence": "INFERRED",
+ "source_file": "tests/unit/tray/test_main.py",
+ "source_location": "L12",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "tray_test_main_stubbus",
+ "target": "tray_main_trayapp"
},
{
- "relation": "contains",
+ "relation": "calls",
+ "context": "call",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_notifications.py",
- "source_location": "L180",
+ "source_file": "tests/unit/tray/test_main.py",
+ "source_location": "L87",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_tray_test_notifications_py",
- "target": "tray_test_notifications_test_flush_with_already_drained_bucket"
+ "source": "tray_test_main_make_tray",
+ "target": "tray_test_main_stubautostart"
},
{
- "relation": "rationale_for",
+ "relation": "uses",
+ "confidence": "INFERRED",
+ "source_file": "tests/unit/tray/test_main.py",
+ "source_location": "L12",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "tray_test_main_stubautostart",
+ "target": "tray_main_trayapp"
+ },
+ {
+ "relation": "calls",
+ "context": "call",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_notifications.py",
- "source_location": "L1",
+ "source_file": "tests/unit/tray/test_main.py",
+ "source_location": "L92",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tray_test_notifications_rationale_1",
- "target": "tests_unit_tray_test_notifications_py"
+ "source": "tray_test_main_test_start_server_calls_runner",
+ "target": "tray_test_main_make_tray"
},
{
"relation": "calls",
"context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/tray/test_notifications.py",
- "source_location": "L25",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/tray/test_main.py",
+ "source_location": "L99",
"weight": 1.0,
- "source": "tray_test_notifications_test_notify_calls_injected_callable",
- "target": "tray_notifications_notify"
+ "confidence_score": 1.0,
+ "source": "tray_test_main_test_open_window_delegates",
+ "target": "tray_test_main_make_tray"
},
{
"relation": "calls",
"context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/tray/test_notifications.py",
- "source_location": "L34",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/tray/test_main.py",
+ "source_location": "L105",
"weight": 1.0,
- "source": "tray_test_notifications_test_notify_swallows_notifier_exceptions",
- "target": "tray_notifications_notify"
+ "confidence_score": 1.0,
+ "source": "tray_test_main_test_request_quit_runs_coordinator",
+ "target": "tray_test_main_make_tray"
},
{
"relation": "calls",
"context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/tray/test_notifications.py",
- "source_location": "L43",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/tray/test_main.py",
+ "source_location": "L111",
"weight": 1.0,
- "source": "tray_test_notifications_test_bus_emits_after_coalescing_window",
- "target": "tray_notifications_notificationbus"
+ "confidence_score": 1.0,
+ "source": "tray_test_main_test_request_quit_calls_icon_stop_when_set",
+ "target": "tray_test_main_make_tray"
},
{
"relation": "calls",
"context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/tray/test_notifications.py",
- "source_location": "L65",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/tray/test_main.py",
+ "source_location": "L119",
"weight": 1.0,
- "source": "tray_test_notifications_test_bus_suppresses_when_window_foregrounded",
- "target": "tray_notifications_notificationbus"
+ "confidence_score": 1.0,
+ "source": "tray_test_main_test_request_quit_handles_icon_stop_error",
+ "target": "tray_test_main_make_tray"
},
{
"relation": "calls",
"context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/tray/test_notifications.py",
- "source_location": "L76",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/tray/test_main.py",
+ "source_location": "L127",
"weight": 1.0,
- "source": "tray_test_notifications_test_bus_separate_kinds_separate_buckets",
- "target": "tray_notifications_notificationbus"
+ "confidence_score": 1.0,
+ "source": "tray_test_main_test_shutdown_tears_components_down",
+ "target": "tray_test_main_make_tray"
},
{
"relation": "calls",
"context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/tray/test_notifications.py",
- "source_location": "L91",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/tray/test_main.py",
+ "source_location": "L136",
"weight": 1.0,
- "source": "tray_test_notifications_test_bus_cancel_all_drops_pending",
- "target": "tray_notifications_notificationbus"
+ "confidence_score": 1.0,
+ "source": "tray_test_main_test_run_wires_icon_and_invokes_run_loop",
+ "target": "tray_test_main_make_tray"
},
{
"relation": "calls",
"context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/tray/test_notifications.py",
- "source_location": "L104",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/tray/test_main.py",
+ "source_location": "L207",
"weight": 1.0,
- "source": "tray_test_notifications_test_bus_emits_singleton_message_unchanged",
- "target": "tray_notifications_notificationbus"
+ "confidence_score": 1.0,
+ "source": "tray_test_main_test_main_handles_keyboard_interrupt",
+ "target": "tray_test_main_make_tray"
},
{
"relation": "calls",
"context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/tray/test_notifications.py",
- "source_location": "L119",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/tray/test_main.py",
+ "source_location": "L219",
"weight": 1.0,
- "source": "tray_test_notifications_test_coalesced_message_plugin_input_required_plural",
- "target": "tray_notifications_coalesced_message"
+ "confidence_score": 1.0,
+ "source": "tray_test_main_test_run_returns_one_on_icon_failure",
+ "target": "tray_test_main_make_tray"
},
{
"relation": "calls",
"context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/tray/test_notifications.py",
- "source_location": "L123",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/tray/test_main.py",
+ "source_location": "L244",
"weight": 1.0,
- "source": "tray_test_notifications_test_coalesced_message_plugin_input_required_singular",
- "target": "tray_notifications_coalesced_message"
+ "confidence_score": 1.0,
+ "source": "tray_test_main_test_request_quit_uses_running_loop_when_present",
+ "target": "tray_test_main_make_tray"
},
{
"relation": "calls",
"context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/tray/test_notifications.py",
- "source_location": "L127",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/tray/test_main.py",
+ "source_location": "L482",
"weight": 1.0,
- "source": "tray_test_notifications_test_coalesced_message_sync_failed_plural",
- "target": "tray_notifications_coalesced_message"
+ "confidence_score": 1.0,
+ "source": "tray_test_main_test_mode_env",
+ "target": "tray_test_main_make_tray"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "tests/unit/tray/test_notifications.py",
- "source_location": "L131",
+ "source_file": "tests/unit/tray/test_main.py",
+ "source_location": "L81",
"weight": 1.0,
- "source": "tray_test_notifications_test_coalesced_message_sync_failed_singular",
- "target": "tray_notifications_coalesced_message"
+ "source": "tray_test_main_make_tray",
+ "target": "tray_main_trayapp"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "tests/unit/tray/test_notifications.py",
- "source_location": "L135",
+ "source_file": "tests/unit/tray/test_main.py",
+ "source_location": "L171",
"weight": 1.0,
- "source": "tray_test_notifications_test_coalesced_message_unknown_kind",
- "target": "tray_notifications_coalesced_message"
+ "source": "tray_test_main_test_build_default_components",
+ "target": "tray_main_build_default_components"
},
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_notifications.py",
- "source_location": "L139",
+ "source_file": "tests/unit/tray/test_main.py",
+ "source_location": "L179",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tray_test_notifications_rationale_139",
- "target": "tray_test_notifications_test_bus_timer_fires_after_window"
+ "source": "tray_test_main_rationale_179",
+ "target": "tray_test_main_test_main_uses_run_helper"
},
{
- "relation": "calls",
- "context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/tray/test_notifications.py",
- "source_location": "L141",
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/tray/test_main.py",
+ "source_location": "L235",
"weight": 1.0,
- "source": "tray_test_notifications_test_bus_timer_fires_after_window",
- "target": "tray_notifications_notificationbus"
+ "confidence_score": 1.0,
+ "source": "tray_test_main_rationale_235",
+ "target": "tray_test_main_test_request_quit_uses_running_loop_when_present"
},
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_notifications.py",
- "source_location": "L154",
+ "source_file": "tests/unit/tray/test_main.py",
+ "source_location": "L270",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tray_test_notifications_rationale_154",
- "target": "tray_test_notifications_test_default_notifier_returns_callable"
+ "source": "tray_test_main_rationale_270",
+ "target": "tray_test_main_test_build_default_app"
},
{
- "relation": "calls",
- "context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/tray/test_notifications.py",
- "source_location": "L157",
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/tray/test_main.py",
+ "source_location": "L305",
"weight": 1.0,
- "source": "tray_test_notifications_test_default_notifier_returns_callable",
- "target": "tray_notifications_default_notifier"
+ "confidence_score": 1.0,
+ "source": "tray_test_main_rationale_305",
+ "target": "tray_test_main_test_build_default_components_falls_back_to_default_app"
},
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_notifications.py",
- "source_location": "L162",
+ "source_file": "tests/unit/tray/test_main.py",
+ "source_location": "L315",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tray_test_notifications_rationale_162",
- "target": "tray_test_notifications_test_noop_notifier_swallows_arbitrary_kwargs"
+ "source": "tray_test_main_rationale_315",
+ "target": "tray_test_main_test_parse_argv_defaults_no_smoke"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "tests/unit/tray/test_notifications.py",
- "source_location": "L165",
+ "source_file": "tests/unit/tray/test_main.py",
+ "source_location": "L318",
"weight": 1.0,
- "source": "tray_test_notifications_test_noop_notifier_swallows_arbitrary_kwargs",
- "target": "tray_notifications_noop_notifier"
+ "source": "tray_test_main_test_parse_argv_defaults_no_smoke",
+ "target": "tray_main_parse_argv"
+ },
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/tray/test_main.py",
+ "source_location": "L324",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "tray_test_main_rationale_324",
+ "target": "tray_test_main_test_parse_argv_smoke_flag"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "tests/unit/tray/test_notifications.py",
- "source_location": "L176",
+ "source_file": "tests/unit/tray/test_main.py",
+ "source_location": "L327",
"weight": 1.0,
- "source": "tray_test_notifications_test_notify_uses_default_notifier_when_none",
- "target": "tray_notifications_notify"
+ "source": "tray_test_main_test_parse_argv_smoke_flag",
+ "target": "tray_main_parse_argv"
},
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_notifications.py",
- "source_location": "L181",
+ "source_file": "tests/unit/tray/test_main.py",
+ "source_location": "L332",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tray_test_notifications_rationale_181",
- "target": "tray_test_notifications_test_flush_with_already_drained_bucket"
+ "source": "tray_test_main_rationale_332",
+ "target": "tray_test_main_test_parse_argv_no_autostart_prompt_silently_accepted"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "tests/unit/tray/test_notifications.py",
- "source_location": "L183",
+ "source_file": "tests/unit/tray/test_main.py",
+ "source_location": "L335",
"weight": 1.0,
- "source": "tray_test_notifications_test_flush_with_already_drained_bucket",
- "target": "tray_notifications_notificationbus"
+ "source": "tray_test_main_test_parse_argv_no_autostart_prompt_silently_accepted",
+ "target": "tray_main_parse_argv"
},
{
- "relation": "contains",
+ "relation": "rationale_for",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_quit_coordinator.py",
- "source_location": "L17",
+ "source_file": "tests/unit/tray/test_main.py",
+ "source_location": "L342",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_tray_test_quit_coordinator_py",
- "target": "tray_test_quit_coordinator_stubserver"
+ "source": "tray_test_main_rationale_342",
+ "target": "tray_test_main_test_run_smoke_starts_server_and_stops_on_signal"
},
{
- "relation": "contains",
+ "relation": "rationale_for",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_quit_coordinator.py",
- "source_location": "L25",
+ "source_file": "tests/unit/tray/test_main.py",
+ "source_location": "L379",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_tray_test_quit_coordinator_py",
- "target": "tray_test_quit_coordinator_stubwindow"
+ "source": "tray_test_main_rationale_379",
+ "target": "tray_test_main_test_main_smoke_dispatches_to_run_smoke"
},
{
- "relation": "contains",
+ "relation": "rationale_for",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_quit_coordinator.py",
- "source_location": "L33",
+ "source_file": "tests/unit/tray/test_main.py",
+ "source_location": "L398",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_tray_test_quit_coordinator_py",
- "target": "tray_test_quit_coordinator_counted"
+ "source": "tray_test_main_rationale_398",
+ "target": "tray_test_main_test_parse_argv_version_flag"
},
{
- "relation": "contains",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_quit_coordinator.py",
- "source_location": "L38",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/tray/test_main.py",
+ "source_location": "L401",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "tests_unit_tray_test_quit_coordinator_py",
- "target": "tray_test_quit_coordinator_make_coordinator"
+ "source": "tray_test_main_test_parse_argv_version_flag",
+ "target": "tray_main_parse_argv"
},
{
- "relation": "contains",
+ "relation": "rationale_for",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_quit_coordinator.py",
- "source_location": "L64",
+ "source_file": "tests/unit/tray/test_main.py",
+ "source_location": "L408",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_tray_test_quit_coordinator_py",
- "target": "tray_test_quit_coordinator_test_idle_predicate_short_circuits"
+ "source": "tray_test_main_rationale_408",
+ "target": "tray_test_main_test_main_version_prints_version_and_exits_zero"
},
{
- "relation": "contains",
+ "relation": "rationale_for",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_quit_coordinator.py",
- "source_location": "L72",
+ "source_file": "tests/unit/tray/test_main.py",
+ "source_location": "L424",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_tray_test_quit_coordinator_py",
- "target": "tray_test_quit_coordinator_test_busy_predicate_times_out_and_force_quits"
+ "source": "tray_test_main_rationale_424",
+ "target": "tray_test_main_test_parse_argv_defaults_no_test_flags"
},
{
- "relation": "contains",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_quit_coordinator.py",
- "source_location": "L91",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/tray/test_main.py",
+ "source_location": "L427",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "tests_unit_tray_test_quit_coordinator_py",
- "target": "tray_test_quit_coordinator_test_busy_predicate_wait_resets_timer"
+ "source": "tray_test_main_test_parse_argv_defaults_no_test_flags",
+ "target": "tray_main_parse_argv"
},
{
- "relation": "contains",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_quit_coordinator.py",
- "source_location": "L111",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/tray/test_main.py",
+ "source_location": "L435",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "tests_unit_tray_test_quit_coordinator_py",
- "target": "tray_test_quit_coordinator_test_sigterm_uses_short_timeout"
+ "source": "tray_test_main_test_parse_argv_test_flag",
+ "target": "tray_main_parse_argv"
},
{
- "relation": "contains",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_quit_coordinator.py",
- "source_location": "L137",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/tray/test_main.py",
+ "source_location": "L443",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "tests_unit_tray_test_quit_coordinator_py",
- "target": "tray_test_quit_coordinator_test_quit_handles_missing_window_launcher"
+ "source": "tray_test_main_test_parse_argv_test_with_samples",
+ "target": "tray_main_parse_argv"
},
{
- "relation": "contains",
+ "relation": "rationale_for",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_quit_coordinator.py",
- "source_location": "L152",
+ "source_file": "tests/unit/tray/test_main.py",
+ "source_location": "L451",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_tray_test_quit_coordinator_py",
- "target": "tray_test_quit_coordinator_test_safe_count_handles_callable_attribute"
+ "source": "tray_test_main_rationale_451",
+ "target": "tray_test_main_test_parse_argv_samples_without_test_errors"
},
{
- "relation": "contains",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_quit_coordinator.py",
- "source_location": "L158",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/tray/test_main.py",
+ "source_location": "L455",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "tests_unit_tray_test_quit_coordinator_py",
- "target": "tray_test_quit_coordinator_test_safe_count_handles_callable_that_raises"
+ "source": "tray_test_main_test_parse_argv_samples_without_test_errors",
+ "target": "tray_main_parse_argv"
},
{
- "relation": "contains",
+ "relation": "rationale_for",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_quit_coordinator.py",
- "source_location": "L168",
+ "source_file": "tests/unit/tray/test_main.py",
+ "source_location": "L463",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_tray_test_quit_coordinator_py",
- "target": "tray_test_quit_coordinator_test_safe_count_handles_none_obj"
+ "source": "tray_test_main_rationale_463",
+ "target": "tray_test_main_test_mode_env"
},
{
- "relation": "contains",
+ "relation": "rationale_for",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_quit_coordinator.py",
- "source_location": "L172",
+ "source_file": "tests/unit/tray/test_main.py",
+ "source_location": "L488",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_tray_test_quit_coordinator_py",
- "target": "tray_test_quit_coordinator_test_safe_count_handles_non_numeric"
+ "source": "tray_test_main_rationale_488",
+ "target": "tray_test_main_test_main_test_flag_sets_env_and_bootstraps_config"
},
{
- "relation": "contains",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_quit_coordinator.py",
- "source_location": "L179",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/tray/test_main.py",
+ "source_location": "L508",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "tests_unit_tray_test_quit_coordinator_py",
- "target": "tray_test_quit_coordinator_test_force_quit_prompt_exception_defaults_to_force"
+ "source": "tray_test_main_test_main_test_flag_sets_env_and_bootstraps_config",
+ "target": "config_loader_load_config"
},
{
- "relation": "contains",
+ "relation": "rationale_for",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_quit_coordinator.py",
- "source_location": "L192",
+ "source_file": "tests/unit/tray/test_main.py",
+ "source_location": "L525",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_tray_test_quit_coordinator_py",
- "target": "tray_test_quit_coordinator_test_default_timeout_constants_match_spec"
+ "source": "tray_test_main_rationale_525",
+ "target": "tray_test_main_test_main_test_does_not_overwrite_existing_config"
},
{
- "relation": "contains",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_quit_coordinator.py",
- "source_location": "L199",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/tray/test_main.py",
+ "source_location": "L546",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "tests_unit_tray_test_quit_coordinator_py",
- "target": "tray_test_quit_coordinator_test_idle_predicate_returns_true_immediately"
+ "source": "tray_test_main_test_main_test_with_samples_adds_equipment",
+ "target": "config_loader_load_config"
},
{
- "relation": "contains",
+ "relation": "rationale_for",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_quit_coordinator.py",
- "source_location": "L208",
+ "source_file": "tests/unit/tray/test_main.py",
+ "source_location": "L563",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "tests_unit_tray_test_quit_coordinator_py",
- "target": "tray_test_quit_coordinator_test_predicate_eventually_becomes_true"
+ "source": "tray_test_main_rationale_563",
+ "target": "tray_test_main_test_main_test_with_samples_repeat_boot_is_noop",
+ "confidence_score": 1.0
},
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_quit_coordinator.py",
- "source_location": "L1",
+ "source_file": "tests/unit/tray/test_main.py",
+ "source_location": "L580",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "tray_test_quit_coordinator_rationale_1",
- "target": "tests_unit_tray_test_quit_coordinator_py"
+ "source": "tray_test_main_rationale_580",
+ "target": "tray_test_main_test_main_without_test_does_not_set_env",
+ "confidence_score": 1.0
},
{
- "relation": "method",
+ "relation": "rationale_for",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_quit_coordinator.py",
- "source_location": "L18",
+ "source_file": "tests/unit/tray/test_main.py",
+ "source_location": "L556",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tray_test_quit_coordinator_stubserver",
- "target": "tray_test_quit_coordinator_stubserver_init"
+ "source": "tray_test_main_rationale_556",
+ "target": "tray_test_main_test_main_without_test_does_not_set_env"
},
{
- "relation": "method",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_quit_coordinator.py",
- "source_location": "L21",
+ "source_file": "tests/unit/readme/test_generator.py",
+ "source_location": "L57",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tray_test_quit_coordinator_stubserver",
- "target": "tray_test_quit_coordinator_stubserver_stop"
+ "source": "tests_unit_readme_test_generator_py",
+ "target": "readme_test_generator_system_fields"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_quit_coordinator.py",
- "source_location": "L46",
+ "source_file": "tests/unit/readme/test_generator.py",
+ "source_location": "L73",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tray_test_quit_coordinator_make_coordinator",
- "target": "tray_test_quit_coordinator_stubserver"
+ "source": "tests_unit_readme_test_generator_py",
+ "target": "readme_test_generator_ctx"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_quit_coordinator.py",
- "source_location": "L138",
+ "source_file": "tests/unit/readme/test_generator.py",
+ "source_location": "L99",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tray_test_quit_coordinator_test_quit_handles_missing_window_launcher",
- "target": "tray_test_quit_coordinator_stubserver"
+ "source": "tests_unit_readme_test_generator_py",
+ "target": "readme_test_generator_generator"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_quit_coordinator.py",
- "source_location": "L210",
+ "source_file": "tests/unit/readme/test_generator.py",
+ "source_location": "L109",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tray_test_quit_coordinator_test_predicate_eventually_becomes_true",
- "target": "tray_test_quit_coordinator_stubserver"
- },
- {
- "relation": "uses",
- "confidence": "INFERRED",
- "source_file": "tests/unit/tray/test_quit_coordinator.py",
- "source_location": "L9",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "tray_test_quit_coordinator_stubserver",
- "target": "tray_quit_coordinator_quitcoordinator"
+ "source": "tests_unit_readme_test_generator_py",
+ "target": "readme_test_generator_test_generate_writes_both_files"
},
{
- "relation": "method",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_quit_coordinator.py",
- "source_location": "L26",
+ "source_file": "tests/unit/readme/test_generator.py",
+ "source_location": "L118",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tray_test_quit_coordinator_stubwindow",
- "target": "tray_test_quit_coordinator_stubwindow_init"
+ "source": "tests_unit_readme_test_generator_py",
+ "target": "readme_test_generator_test_readme_starts_with_yaml_front_matter"
},
{
- "relation": "method",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_quit_coordinator.py",
- "source_location": "L29",
+ "source_file": "tests/unit/readme/test_generator.py",
+ "source_location": "L135",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tray_test_quit_coordinator_stubwindow",
- "target": "tray_test_quit_coordinator_stubwindow_close"
+ "source": "tests_unit_readme_test_generator_py",
+ "target": "readme_test_generator_test_readme_body_includes_label_and_objective"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_quit_coordinator.py",
- "source_location": "L47",
+ "source_file": "tests/unit/readme/test_generator.py",
+ "source_location": "L148",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tray_test_quit_coordinator_make_coordinator",
- "target": "tray_test_quit_coordinator_stubwindow"
+ "source": "tests_unit_readme_test_generator_py",
+ "target": "readme_test_generator_test_readme_fields_json_round_trips"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_quit_coordinator.py",
- "source_location": "L211",
+ "source_file": "tests/unit/readme/test_generator.py",
+ "source_location": "L192",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tray_test_quit_coordinator_test_predicate_eventually_becomes_true",
- "target": "tray_test_quit_coordinator_stubwindow"
- },
- {
- "relation": "uses",
- "confidence": "INFERRED",
- "source_file": "tests/unit/tray/test_quit_coordinator.py",
- "source_location": "L9",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "tray_test_quit_coordinator_stubwindow",
- "target": "tray_quit_coordinator_quitcoordinator"
+ "source": "tests_unit_readme_test_generator_py",
+ "target": "readme_test_generator_test_empty_core_field_rejected"
},
{
- "relation": "method",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_quit_coordinator.py",
- "source_location": "L34",
+ "source_file": "tests/unit/readme/test_generator.py",
+ "source_location": "L201",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tray_test_quit_coordinator_counted",
- "target": "tray_test_quit_coordinator_counted_init"
+ "source": "tests_unit_readme_test_generator_py",
+ "target": "readme_test_generator_test_label_over_max_length_rejected"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_quit_coordinator.py",
- "source_location": "L48",
+ "source_file": "tests/unit/readme/test_generator.py",
+ "source_location": "L208",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tray_test_quit_coordinator_make_coordinator",
- "target": "tray_test_quit_coordinator_counted"
+ "source": "tests_unit_readme_test_generator_py",
+ "target": "readme_test_generator_test_objective_over_max_length_rejected"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_quit_coordinator.py",
- "source_location": "L142",
+ "source_file": "tests/unit/readme/test_generator.py",
+ "source_location": "L222",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tray_test_quit_coordinator_test_quit_handles_missing_window_launcher",
- "target": "tray_test_quit_coordinator_counted"
+ "source": "tests_unit_readme_test_generator_py",
+ "target": "readme_test_generator_test_required_template_field_missing_raises"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_quit_coordinator.py",
- "source_location": "L153",
+ "source_file": "tests/unit/readme/test_generator.py",
+ "source_location": "L231",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tray_test_quit_coordinator_test_safe_count_handles_callable_attribute",
- "target": "tray_test_quit_coordinator_counted"
+ "source": "tests_unit_readme_test_generator_py",
+ "target": "readme_test_generator_test_required_config_field_missing_raises"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_quit_coordinator.py",
- "source_location": "L159",
+ "source_file": "tests/unit/readme/test_generator.py",
+ "source_location": "L247",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tray_test_quit_coordinator_test_safe_count_handles_callable_that_raises",
- "target": "tray_test_quit_coordinator_counted"
+ "source": "tests_unit_readme_test_generator_py",
+ "target": "readme_test_generator_test_duplicate_field_id_across_layers_raises"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_quit_coordinator.py",
- "source_location": "L173",
+ "source_file": "tests/unit/readme/test_generator.py",
+ "source_location": "L263",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tray_test_quit_coordinator_test_safe_count_handles_non_numeric",
- "target": "tray_test_quit_coordinator_counted"
+ "source": "tests_unit_readme_test_generator_py",
+ "target": "readme_test_generator_test_custom_field_label_collides_with_template_id"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_quit_coordinator.py",
- "source_location": "L224",
+ "source_file": "tests/unit/readme/test_generator.py",
+ "source_location": "L281",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tray_test_quit_coordinator_test_predicate_eventually_becomes_true",
- "target": "tray_test_quit_coordinator_counted"
- },
- {
- "relation": "uses",
- "confidence": "INFERRED",
- "source_file": "tests/unit/tray/test_quit_coordinator.py",
- "source_location": "L9",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "tray_test_quit_coordinator_counted",
- "target": "tray_quit_coordinator_quitcoordinator"
+ "source": "tests_unit_readme_test_generator_py",
+ "target": "readme_test_generator_test_core_field_redeclared_in_template_raises"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_quit_coordinator.py",
- "source_location": "L65",
+ "source_file": "tests/unit/readme/test_generator.py",
+ "source_location": "L290",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tray_test_quit_coordinator_test_idle_predicate_short_circuits",
- "target": "tray_test_quit_coordinator_make_coordinator"
+ "source": "tests_unit_readme_test_generator_py",
+ "target": "readme_test_generator_test_core_field_redeclared_in_config_raises"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_quit_coordinator.py",
- "source_location": "L79",
+ "source_file": "tests/unit/readme/test_generator.py",
+ "source_location": "L304",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tray_test_quit_coordinator_test_busy_predicate_times_out_and_force_quits",
- "target": "tray_test_quit_coordinator_make_coordinator"
+ "source": "tests_unit_readme_test_generator_py",
+ "target": "readme_test_generator_test_project_level_system_run_is_none"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_quit_coordinator.py",
- "source_location": "L98",
+ "source_file": "tests/unit/readme/test_generator.py",
+ "source_location": "L313",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tray_test_quit_coordinator_test_busy_predicate_wait_resets_timer",
- "target": "tray_test_quit_coordinator_make_coordinator"
+ "source": "tests_unit_readme_test_generator_py",
+ "target": "readme_test_generator_test_run_level_experimental_run_name"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_quit_coordinator.py",
- "source_location": "L117",
+ "source_file": "tests/unit/readme/test_generator.py",
+ "source_location": "L322",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tray_test_quit_coordinator_test_sigterm_uses_short_timeout",
- "target": "tray_test_quit_coordinator_make_coordinator"
+ "source": "tests_unit_readme_test_generator_py",
+ "target": "readme_test_generator_test_run_level_test_run_name"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_quit_coordinator.py",
- "source_location": "L183",
+ "source_file": "tests/unit/readme/test_generator.py",
+ "source_location": "L336",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tray_test_quit_coordinator_test_force_quit_prompt_exception_defaults_to_force",
- "target": "tray_test_quit_coordinator_make_coordinator"
+ "source": "tests_unit_readme_test_generator_py",
+ "target": "readme_test_generator_test_string_type_accepts_string_rejects_int"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_quit_coordinator.py",
- "source_location": "L200",
+ "source_file": "tests/unit/readme/test_generator.py",
+ "source_location": "L354",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tray_test_quit_coordinator_test_idle_predicate_returns_true_immediately",
- "target": "tray_test_quit_coordinator_make_coordinator"
- },
- {
- "relation": "calls",
- "context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/tray/test_quit_coordinator.py",
- "source_location": "L50",
- "weight": 1.0,
- "source": "tray_test_quit_coordinator_make_coordinator",
- "target": "tray_quit_coordinator_quitcoordinator"
- },
- {
- "relation": "calls",
- "context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/tray/test_quit_coordinator.py",
- "source_location": "L139",
- "weight": 1.0,
- "source": "tray_test_quit_coordinator_test_quit_handles_missing_window_launcher",
- "target": "tray_quit_coordinator_quitcoordinator"
- },
- {
- "relation": "calls",
- "context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/tray/test_quit_coordinator.py",
- "source_location": "L155",
- "weight": 1.0,
- "source": "tray_test_quit_coordinator_test_safe_count_handles_callable_attribute",
- "target": "tray_quit_coordinator_safe_count"
- },
- {
- "relation": "calls",
- "context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/tray/test_quit_coordinator.py",
- "source_location": "L165",
- "weight": 1.0,
- "source": "tray_test_quit_coordinator_test_safe_count_handles_callable_that_raises",
- "target": "tray_quit_coordinator_safe_count"
- },
- {
- "relation": "calls",
- "context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/tray/test_quit_coordinator.py",
- "source_location": "L169",
- "weight": 1.0,
- "source": "tray_test_quit_coordinator_test_safe_count_handles_none_obj",
- "target": "tray_quit_coordinator_safe_count"
- },
- {
- "relation": "calls",
- "context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/tray/test_quit_coordinator.py",
- "source_location": "L175",
- "weight": 1.0,
- "source": "tray_test_quit_coordinator_test_safe_count_handles_non_numeric",
- "target": "tray_quit_coordinator_safe_count"
+ "source": "tests_unit_readme_test_generator_py",
+ "target": "readme_test_generator_test_text_type_accepts_multiline_rejects_list"
},
{
- "relation": "rationale_for",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_quit_coordinator.py",
- "source_location": "L209",
+ "source_file": "tests/unit/readme/test_generator.py",
+ "source_location": "L370",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tray_test_quit_coordinator_rationale_209",
- "target": "tray_test_quit_coordinator_test_predicate_eventually_becomes_true"
+ "source": "tests_unit_readme_test_generator_py",
+ "target": "readme_test_generator_test_choice_type_accepts_listed_rejects_other"
},
{
- "relation": "calls",
- "context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/tray/test_quit_coordinator.py",
- "source_location": "L225",
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/readme/test_generator.py",
+ "source_location": "L386",
"weight": 1.0,
- "source": "tray_test_quit_coordinator_test_predicate_eventually_becomes_true",
- "target": "tray_quit_coordinator_quitcoordinator"
+ "confidence_score": 1.0,
+ "source": "tests_unit_readme_test_generator_py",
+ "target": "readme_test_generator_test_choice_without_options_raises"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_window_launcher.py",
- "source_location": "L18",
+ "source_file": "tests/unit/readme/test_generator.py",
+ "source_location": "L396",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_tray_test_window_launcher_py",
- "target": "tray_test_window_launcher_python_window_argv"
+ "source": "tests_unit_readme_test_generator_py",
+ "target": "readme_test_generator_test_date_type_accepts_iso8601_rejects_garbage"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_window_launcher.py",
- "source_location": "L29",
+ "source_file": "tests/unit/readme/test_generator.py",
+ "source_location": "L419",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_tray_test_window_launcher_py",
- "target": "tray_test_window_launcher_test_open_spawns_subprocess"
+ "source": "tests_unit_readme_test_generator_py",
+ "target": "readme_test_generator_test_date_type_rejects_non_string"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_window_launcher.py",
- "source_location": "L42",
+ "source_file": "tests/unit/readme/test_generator.py",
+ "source_location": "L429",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_tray_test_window_launcher_py",
- "target": "tray_test_window_launcher_test_close_terminates_subprocess"
+ "source": "tests_unit_readme_test_generator_py",
+ "target": "readme_test_generator_test_boolean_type_accepts_bool_rejects_string"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_window_launcher.py",
- "source_location": "L53",
+ "source_file": "tests/unit/readme/test_generator.py",
+ "source_location": "L449",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_tray_test_window_launcher_py",
- "target": "tray_test_window_launcher_test_close_is_idempotent"
+ "source": "tests_unit_readme_test_generator_py",
+ "target": "readme_test_generator_test_unknown_field_type_raises"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_window_launcher.py",
- "source_location": "L60",
+ "source_file": "tests/unit/readme/test_generator.py",
+ "source_location": "L459",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_tray_test_window_launcher_py",
- "target": "tray_test_window_launcher_test_open_focuses_existing"
+ "source": "tests_unit_readme_test_generator_py",
+ "target": "readme_test_generator_test_choice_type_rejects_non_string_value"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_window_launcher.py",
- "source_location": "L71",
+ "source_file": "tests/unit/readme/test_generator.py",
+ "source_location": "L476",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_tray_test_window_launcher_py",
- "target": "tray_test_window_launcher_test_resolve_window_executable_prefers_env_var"
+ "source": "tests_unit_readme_test_generator_py",
+ "target": "readme_test_generator_test_generate_is_idempotent_byte_identical"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_window_launcher.py",
- "source_location": "L76",
+ "source_file": "tests/unit/readme/test_generator.py",
+ "source_location": "L512",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_tray_test_window_launcher_py",
- "target": "tray_test_window_launcher_test_resolve_window_executable_uses_path"
+ "source": "tests_unit_readme_test_generator_py",
+ "target": "readme_test_generator_test_generated_at_uses_z_suffix"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_window_launcher.py",
- "source_location": "L85",
+ "source_file": "tests/unit/readme/test_generator.py",
+ "source_location": "L520",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_tray_test_window_launcher_py",
- "target": "tray_test_window_launcher_test_resolve_window_executable_falls_back_to_module"
+ "source": "tests_unit_readme_test_generator_py",
+ "target": "readme_test_generator_test_cache_dir_created_on_demand"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_window_launcher.py",
- "source_location": "L95",
+ "source_file": "tests/unit/readme/test_generator.py",
+ "source_location": "L529",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_tray_test_window_launcher_py",
- "target": "tray_test_window_launcher_test_window_executable_override"
+ "source": "tests_unit_readme_test_generator_py",
+ "target": "readme_test_generator_test_value_without_declaration_skips_typecheck"
},
{
"relation": "contains",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_window_launcher.py",
- "source_location": "L103",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/readme/test_generator.py",
+ "source_location": "L546",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_tray_test_window_launcher_py",
- "target": "tray_test_window_launcher_test_argv_falls_through_resolve_helper"
+ "source": "tests_unit_readme_test_generator_py",
+ "target": "readme_test_generator_test_optional_empty_field_is_skipped"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_window_launcher.py",
- "source_location": "L113",
+ "source_file": "tests/unit/readme/test_generator.py",
+ "source_location": "L556",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_tray_test_window_launcher_py",
- "target": "tray_test_window_launcher_test_pid_is_none_before_open"
+ "source": "tests_unit_readme_test_generator_py",
+ "target": "readme_test_generator_test_required_field_present_with_none_raises"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_window_launcher.py",
- "source_location": "L119",
+ "source_file": "tests/unit/readme/test_generator.py",
+ "source_location": "L569",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_tray_test_window_launcher_py",
- "target": "tray_test_window_launcher_test_close_kills_unresponsive_process"
+ "source": "tests_unit_readme_test_generator_py",
+ "target": "readme_test_generator_test_generated_at_uses_z_for_naive_datetime"
},
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_window_launcher.py",
+ "source_file": "tests/unit/readme/test_generator.py",
"source_location": "L1",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tray_test_window_launcher_rationale_1",
- "target": "tests_unit_tray_test_window_launcher_py"
+ "source": "readme_test_generator_rationale_1",
+ "target": "tests_unit_readme_test_generator_py"
},
{
"relation": "calls",
"context": "call",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_window_launcher.py",
- "source_location": "L31",
+ "source_file": "tests/unit/readme/test_generator.py",
+ "source_location": "L92",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tray_test_window_launcher_test_open_spawns_subprocess",
- "target": "tray_test_window_launcher_python_window_argv"
+ "source": "readme_test_generator_ctx",
+ "target": "readme_test_generator_system_fields"
},
{
"relation": "calls",
"context": "call",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_window_launcher.py",
- "source_location": "L44",
+ "source_file": "tests/unit/readme/test_generator.py",
+ "source_location": "L305",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tray_test_window_launcher_test_close_terminates_subprocess",
- "target": "tray_test_window_launcher_python_window_argv"
+ "source": "readme_test_generator_test_project_level_system_run_is_none",
+ "target": "readme_test_generator_system_fields"
},
{
"relation": "calls",
"context": "call",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_window_launcher.py",
- "source_location": "L62",
+ "source_file": "tests/unit/readme/test_generator.py",
+ "source_location": "L314",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tray_test_window_launcher_test_open_focuses_existing",
- "target": "tray_test_window_launcher_python_window_argv"
+ "source": "readme_test_generator_test_run_level_experimental_run_name",
+ "target": "readme_test_generator_system_fields"
},
{
- "relation": "rationale_for",
+ "relation": "calls",
+ "context": "call",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_window_launcher.py",
- "source_location": "L19",
+ "source_file": "tests/unit/readme/test_generator.py",
+ "source_location": "L323",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tray_test_window_launcher_rationale_19",
- "target": "tray_test_window_launcher_python_window_argv"
+ "source": "readme_test_generator_test_run_level_test_run_name",
+ "target": "readme_test_generator_system_fields"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "tests/unit/tray/test_window_launcher.py",
- "source_location": "L30",
+ "source_file": "tests/unit/readme/test_generator.py",
+ "source_location": "L62",
"weight": 1.0,
- "source": "tray_test_window_launcher_test_open_spawns_subprocess",
- "target": "tray_window_launcher_windowlauncher"
+ "source": "readme_test_generator_system_fields",
+ "target": "readme_generator_systemfields"
},
{
"relation": "calls",
"context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/tray/test_window_launcher.py",
- "source_location": "L43",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/readme/test_generator.py",
+ "source_location": "L110",
"weight": 1.0,
- "source": "tray_test_window_launcher_test_close_terminates_subprocess",
- "target": "tray_window_launcher_windowlauncher"
+ "confidence_score": 1.0,
+ "source": "readme_test_generator_test_generate_writes_both_files",
+ "target": "readme_test_generator_ctx"
},
{
"relation": "calls",
"context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/tray/test_window_launcher.py",
- "source_location": "L54",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/readme/test_generator.py",
+ "source_location": "L121",
"weight": 1.0,
- "source": "tray_test_window_launcher_test_close_is_idempotent",
- "target": "tray_window_launcher_windowlauncher"
+ "confidence_score": 1.0,
+ "source": "readme_test_generator_test_readme_starts_with_yaml_front_matter",
+ "target": "readme_test_generator_ctx"
},
{
"relation": "calls",
"context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/tray/test_window_launcher.py",
- "source_location": "L61",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/readme/test_generator.py",
+ "source_location": "L140",
"weight": 1.0,
- "source": "tray_test_window_launcher_test_open_focuses_existing",
- "target": "tray_window_launcher_windowlauncher"
+ "confidence_score": 1.0,
+ "source": "readme_test_generator_test_readme_body_includes_label_and_objective",
+ "target": "readme_test_generator_ctx"
},
{
"relation": "calls",
"context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/tray/test_window_launcher.py",
- "source_location": "L73",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/readme/test_generator.py",
+ "source_location": "L151",
"weight": 1.0,
- "source": "tray_test_window_launcher_test_resolve_window_executable_prefers_env_var",
- "target": "tray_window_launcher_resolve_window_executable"
+ "confidence_score": 1.0,
+ "source": "readme_test_generator_test_readme_fields_json_round_trips",
+ "target": "readme_test_generator_ctx"
},
{
"relation": "calls",
"context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/tray/test_window_launcher.py",
- "source_location": "L82",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/readme/test_generator.py",
+ "source_location": "L197",
"weight": 1.0,
- "source": "tray_test_window_launcher_test_resolve_window_executable_uses_path",
- "target": "tray_window_launcher_resolve_window_executable"
+ "confidence_score": 1.0,
+ "source": "readme_test_generator_test_empty_core_field_rejected",
+ "target": "readme_test_generator_ctx"
},
{
"relation": "calls",
"context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/tray/test_window_launcher.py",
- "source_location": "L90",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/readme/test_generator.py",
+ "source_location": "L204",
"weight": 1.0,
- "source": "tray_test_window_launcher_test_resolve_window_executable_falls_back_to_module",
- "target": "tray_window_launcher_resolve_window_executable"
+ "confidence_score": 1.0,
+ "source": "readme_test_generator_test_label_over_max_length_rejected",
+ "target": "readme_test_generator_ctx"
},
{
"relation": "calls",
"context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/tray/test_window_launcher.py",
- "source_location": "L96",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/readme/test_generator.py",
+ "source_location": "L213",
"weight": 1.0,
- "source": "tray_test_window_launcher_test_window_executable_override",
- "target": "tray_window_launcher_windowlauncher"
+ "confidence_score": 1.0,
+ "source": "readme_test_generator_test_objective_over_max_length_rejected",
+ "target": "readme_test_generator_ctx"
},
{
- "relation": "rationale_for",
+ "relation": "calls",
+ "context": "call",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_window_launcher.py",
- "source_location": "L104",
+ "source_file": "tests/unit/readme/test_generator.py",
+ "source_location": "L227",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tray_test_window_launcher_rationale_104",
- "target": "tray_test_window_launcher_test_argv_falls_through_resolve_helper"
+ "source": "readme_test_generator_test_required_template_field_missing_raises",
+ "target": "readme_test_generator_ctx"
},
{
"relation": "calls",
"context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/tray/test_window_launcher.py",
- "source_location": "L105",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/readme/test_generator.py",
+ "source_location": "L237",
"weight": 1.0,
- "source": "tray_test_window_launcher_test_argv_falls_through_resolve_helper",
- "target": "tray_window_launcher_windowlauncher"
+ "confidence_score": 1.0,
+ "source": "readme_test_generator_test_required_config_field_missing_raises",
+ "target": "readme_test_generator_ctx"
},
{
"relation": "calls",
"context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/tray/test_window_launcher.py",
- "source_location": "L114",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/readme/test_generator.py",
+ "source_location": "L255",
"weight": 1.0,
- "source": "tray_test_window_launcher_test_pid_is_none_before_open",
- "target": "tray_window_launcher_windowlauncher"
+ "confidence_score": 1.0,
+ "source": "readme_test_generator_test_duplicate_field_id_across_layers_raises",
+ "target": "readme_test_generator_ctx"
},
{
"relation": "calls",
"context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/tray/test_window_launcher.py",
- "source_location": "L120",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/readme/test_generator.py",
+ "source_location": "L271",
"weight": 1.0,
- "source": "tray_test_window_launcher_test_close_kills_unresponsive_process",
- "target": "tray_window_launcher_windowlauncher"
+ "confidence_score": 1.0,
+ "source": "readme_test_generator_test_custom_field_label_collides_with_template_id",
+ "target": "readme_test_generator_ctx"
},
{
- "relation": "contains",
+ "relation": "calls",
+ "context": "call",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_autostart.py",
- "source_location": "L24",
+ "source_file": "tests/unit/readme/test_generator.py",
+ "source_location": "L286",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_tray_test_autostart_py",
- "target": "tray_test_autostart_test_macos_register_writes_plist"
+ "source": "readme_test_generator_test_core_field_redeclared_in_template_raises",
+ "target": "readme_test_generator_ctx"
},
{
- "relation": "contains",
+ "relation": "calls",
+ "context": "call",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_autostart.py",
- "source_location": "L40",
+ "source_file": "tests/unit/readme/test_generator.py",
+ "source_location": "L295",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_tray_test_autostart_py",
- "target": "tray_test_autostart_test_macos_unregister_removes_plist"
+ "source": "readme_test_generator_test_core_field_redeclared_in_config_raises",
+ "target": "readme_test_generator_ctx"
},
{
- "relation": "contains",
+ "relation": "calls",
+ "context": "call",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_autostart.py",
- "source_location": "L51",
+ "source_file": "tests/unit/readme/test_generator.py",
+ "source_location": "L306",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_tray_test_autostart_py",
- "target": "tray_test_autostart_test_macos_register_is_idempotent"
+ "source": "readme_test_generator_test_project_level_system_run_is_none",
+ "target": "readme_test_generator_ctx"
},
{
- "relation": "contains",
+ "relation": "calls",
+ "context": "call",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_autostart.py",
- "source_location": "L63",
+ "source_file": "tests/unit/readme/test_generator.py",
+ "source_location": "L315",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_tray_test_autostart_py",
- "target": "tray_test_autostart_test_linux_register_writes_systemd_and_desktop"
+ "source": "readme_test_generator_test_run_level_experimental_run_name",
+ "target": "readme_test_generator_ctx"
},
{
- "relation": "contains",
+ "relation": "calls",
+ "context": "call",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_autostart.py",
- "source_location": "L80",
+ "source_file": "tests/unit/readme/test_generator.py",
+ "source_location": "L324",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_tray_test_autostart_py",
- "target": "tray_test_autostart_test_linux_unregister_removes_both_files"
+ "source": "readme_test_generator_test_run_level_test_run_name",
+ "target": "readme_test_generator_ctx"
},
{
- "relation": "contains",
+ "relation": "calls",
+ "context": "call",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_autostart.py",
- "source_location": "L87",
+ "source_file": "tests/unit/readme/test_generator.py",
+ "source_location": "L343",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_tray_test_autostart_py",
- "target": "tray_test_autostart_test_linux_is_registered_when_only_desktop_present"
+ "source": "readme_test_generator_test_string_type_accepts_string_rejects_int",
+ "target": "readme_test_generator_ctx"
},
{
- "relation": "contains",
+ "relation": "calls",
+ "context": "call",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_autostart.py",
- "source_location": "L100",
+ "source_file": "tests/unit/readme/test_generator.py",
+ "source_location": "L360",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_tray_test_autostart_py",
- "target": "tray_test_autostart_fakekey"
+ "source": "readme_test_generator_test_text_type_accepts_multiline_rejects_list",
+ "target": "readme_test_generator_ctx"
},
{
- "relation": "contains",
+ "relation": "calls",
+ "context": "call",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_autostart.py",
- "source_location": "L112",
+ "source_file": "tests/unit/readme/test_generator.py",
+ "source_location": "L376",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_tray_test_autostart_py",
- "target": "tray_test_autostart_fakewinreg"
+ "source": "readme_test_generator_test_choice_type_accepts_listed_rejects_other",
+ "target": "readme_test_generator_ctx"
},
{
- "relation": "contains",
+ "relation": "calls",
+ "context": "call",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_autostart.py",
- "source_location": "L155",
+ "source_file": "tests/unit/readme/test_generator.py",
+ "source_location": "L391",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_tray_test_autostart_py",
- "target": "tray_test_autostart_fake_winreg"
+ "source": "readme_test_generator_test_choice_without_options_raises",
+ "target": "readme_test_generator_ctx"
},
{
- "relation": "contains",
+ "relation": "calls",
+ "context": "call",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_autostart.py",
- "source_location": "L161",
+ "source_file": "tests/unit/readme/test_generator.py",
+ "source_location": "L402",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_tray_test_autostart_py",
- "target": "tray_test_autostart_test_windows_register_sets_run_value"
+ "source": "readme_test_generator_test_date_type_accepts_iso8601_rejects_garbage",
+ "target": "readme_test_generator_ctx"
},
{
- "relation": "contains",
+ "relation": "calls",
+ "context": "call",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_autostart.py",
- "source_location": "L173",
+ "source_file": "tests/unit/readme/test_generator.py",
+ "source_location": "L424",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_tray_test_autostart_py",
- "target": "tray_test_autostart_test_windows_unregister_deletes_run_value"
+ "source": "readme_test_generator_test_date_type_rejects_non_string",
+ "target": "readme_test_generator_ctx"
},
{
- "relation": "contains",
+ "relation": "calls",
+ "context": "call",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_autostart.py",
- "source_location": "L185",
+ "source_file": "tests/unit/readme/test_generator.py",
+ "source_location": "L435",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_tray_test_autostart_py",
- "target": "tray_test_autostart_test_windows_unregister_when_value_missing_is_safe"
+ "source": "readme_test_generator_test_boolean_type_accepts_bool_rejects_string",
+ "target": "readme_test_generator_ctx"
},
{
- "relation": "contains",
+ "relation": "calls",
+ "context": "call",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_autostart.py",
- "source_location": "L193",
+ "source_file": "tests/unit/readme/test_generator.py",
+ "source_location": "L454",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_tray_test_autostart_py",
- "target": "tray_test_autostart_test_windows_open_key_handles_filenotfound_on_query"
+ "source": "readme_test_generator_test_unknown_field_type_raises",
+ "target": "readme_test_generator_ctx"
},
{
- "relation": "contains",
+ "relation": "calls",
+ "context": "call",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_autostart.py",
- "source_location": "L211",
+ "source_file": "tests/unit/readme/test_generator.py",
+ "source_location": "L466",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_tray_test_autostart_py",
- "target": "tray_test_autostart_test_silently_unlink_tolerates_missing"
+ "source": "readme_test_generator_test_choice_type_rejects_non_string_value",
+ "target": "readme_test_generator_ctx"
},
{
- "relation": "contains",
+ "relation": "calls",
+ "context": "call",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_autostart.py",
- "source_location": "L223",
+ "source_file": "tests/unit/readme/test_generator.py",
+ "source_location": "L480",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_tray_test_autostart_py",
- "target": "tray_test_autostart_test_env_var_root_overrides_constructor"
+ "source": "readme_test_generator_test_generate_is_idempotent_byte_identical",
+ "target": "readme_test_generator_ctx"
},
{
- "relation": "contains",
+ "relation": "calls",
+ "context": "call",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_autostart.py",
- "source_location": "L238",
+ "source_file": "tests/unit/readme/test_generator.py",
+ "source_location": "L513",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_tray_test_autostart_py",
- "target": "tray_test_autostart_test_executable_path_property"
+ "source": "readme_test_generator_test_generated_at_uses_z_suffix",
+ "target": "readme_test_generator_ctx"
},
{
- "relation": "contains",
+ "relation": "calls",
+ "context": "call",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_autostart.py",
- "source_location": "L244",
+ "source_file": "tests/unit/readme/test_generator.py",
+ "source_location": "L523",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_tray_test_autostart_py",
- "target": "tray_test_autostart_test_default_executable_falls_back_to_sys_executable"
+ "source": "readme_test_generator_test_cache_dir_created_on_demand",
+ "target": "readme_test_generator_ctx"
},
{
- "relation": "contains",
+ "relation": "calls",
+ "context": "call",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_autostart.py",
- "source_location": "L250",
+ "source_file": "tests/unit/readme/test_generator.py",
+ "source_location": "L538",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_tray_test_autostart_py",
- "target": "tray_test_autostart_test_detect_platform_returns_known_value"
+ "source": "readme_test_generator_test_value_without_declaration_skips_typecheck",
+ "target": "readme_test_generator_ctx"
},
{
- "relation": "contains",
+ "relation": "calls",
+ "context": "call",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_autostart.py",
- "source_location": "L255",
+ "source_file": "tests/unit/readme/test_generator.py",
+ "source_location": "L551",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_tray_test_autostart_py",
- "target": "tray_test_autostart_test_detect_platform_dispatch"
+ "source": "readme_test_generator_test_optional_empty_field_is_skipped",
+ "target": "readme_test_generator_ctx"
},
{
- "relation": "rationale_for",
+ "relation": "calls",
+ "context": "call",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_autostart.py",
- "source_location": "L1",
+ "source_file": "tests/unit/readme/test_generator.py",
+ "source_location": "L564",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tray_test_autostart_rationale_1",
- "target": "tests_unit_tray_test_autostart_py"
+ "source": "readme_test_generator_test_required_field_present_with_none_raises",
+ "target": "readme_test_generator_ctx"
},
{
"relation": "calls",
"context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/tray/test_autostart.py",
- "source_location": "L25",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/readme/test_generator.py",
+ "source_location": "L582",
"weight": 1.0,
- "source": "tray_test_autostart_test_macos_register_writes_plist",
- "target": "tray_autostart_autostartmanager"
+ "confidence_score": 1.0,
+ "source": "readme_test_generator_test_generated_at_uses_z_for_naive_datetime",
+ "target": "readme_test_generator_ctx"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "tests/unit/tray/test_autostart.py",
- "source_location": "L41",
+ "source_file": "tests/unit/readme/test_generator.py",
+ "source_location": "L86",
"weight": 1.0,
- "source": "tray_test_autostart_test_macos_unregister_removes_plist",
- "target": "tray_autostart_autostartmanager"
+ "source": "readme_test_generator_ctx",
+ "target": "readme_generator_readmecontext"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "tests/unit/tray/test_autostart.py",
- "source_location": "L52",
+ "source_file": "tests/unit/readme/test_generator.py",
+ "source_location": "L88",
"weight": 1.0,
- "source": "tray_test_autostart_test_macos_register_is_idempotent",
- "target": "tray_autostart_autostartmanager"
+ "source": "readme_test_generator_ctx",
+ "target": "readme_generator_corefields"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "tests/unit/tray/test_autostart.py",
- "source_location": "L64",
+ "source_file": "tests/unit/readme/test_generator.py",
+ "source_location": "L100",
"weight": 1.0,
- "source": "tray_test_autostart_test_linux_register_writes_systemd_and_desktop",
- "target": "tray_autostart_autostartmanager"
+ "source": "readme_test_generator_generator",
+ "target": "readme_generator_readmegenerator"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "tests/unit/tray/test_autostart.py",
- "source_location": "L81",
+ "source_file": "tests/unit/readme/test_generator.py",
+ "source_location": "L154",
"weight": 1.0,
- "source": "tray_test_autostart_test_linux_unregister_removes_both_files",
- "target": "tray_autostart_autostartmanager"
+ "source": "readme_test_generator_test_readme_fields_json_round_trips",
+ "target": "readme_generator_customfield"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "tests/unit/tray/test_autostart.py",
- "source_location": "L88",
- "weight": 1.0,
- "source": "tray_test_autostart_test_linux_is_registered_when_only_desktop_present",
- "target": "tray_autostart_autostartmanager"
- },
- {
- "relation": "method",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_autostart.py",
- "source_location": "L101",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "tray_test_autostart_fakekey",
- "target": "tray_test_autostart_fakekey_init"
- },
- {
- "relation": "method",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_autostart.py",
- "source_location": "L105",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "tray_test_autostart_fakekey",
- "target": "tray_test_autostart_fakekey_enter"
- },
- {
- "relation": "method",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_autostart.py",
- "source_location": "L108",
+ "source_file": "tests/unit/readme/test_generator.py",
+ "source_location": "L156",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "tray_test_autostart_fakekey",
- "target": "tray_test_autostart_fakekey_exit"
+ "source": "readme_test_generator_test_readme_fields_json_round_trips",
+ "target": "readme_generator_templatefielddecl"
},
{
"relation": "calls",
"context": "call",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_autostart.py",
- "source_location": "L131",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "tray_test_autostart_fakewinreg_openkey",
- "target": "tray_test_autostart_fakekey"
- },
- {
- "relation": "uses",
"confidence": "INFERRED",
- "source_file": "tests/unit/tray/test_autostart.py",
- "source_location": "L10",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "tray_test_autostart_fakekey",
- "target": "tray_autostart_autostartmanager"
- },
- {
- "relation": "method",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_autostart.py",
- "source_location": "L118",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "tray_test_autostart_fakewinreg",
- "target": "tray_test_autostart_fakewinreg_init"
- },
- {
- "relation": "method",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_autostart.py",
- "source_location": "L122",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "tray_test_autostart_fakewinreg",
- "target": "tray_test_autostart_fakewinreg_openkey"
- },
- {
- "relation": "method",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_autostart.py",
- "source_location": "L133",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "tray_test_autostart_fakewinreg",
- "target": "tray_test_autostart_fakewinreg_setvalueex"
- },
- {
- "relation": "method",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_autostart.py",
- "source_location": "L145",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "tray_test_autostart_fakewinreg",
- "target": "tray_test_autostart_fakewinreg_queryvalueex"
- },
- {
- "relation": "method",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_autostart.py",
- "source_location": "L150",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/readme/test_generator.py",
+ "source_location": "L225",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "tray_test_autostart_fakewinreg",
- "target": "tray_test_autostart_fakewinreg_deletevalue"
+ "source": "readme_test_generator_test_required_template_field_missing_raises",
+ "target": "readme_generator_templatefielddecl"
},
{
"relation": "calls",
"context": "call",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_autostart.py",
- "source_location": "L156",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "tray_test_autostart_fake_winreg",
- "target": "tray_test_autostart_fakewinreg"
- },
- {
- "relation": "uses",
"confidence": "INFERRED",
- "source_file": "tests/unit/tray/test_autostart.py",
- "source_location": "L10",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "tray_test_autostart_fakewinreg",
- "target": "tray_autostart_autostartmanager"
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/readme/test_generator.py",
+ "source_location": "L234",
+ "weight": 1.0,
+ "source": "readme_test_generator_test_required_config_field_missing_raises",
+ "target": "readme_generator_templatefielddecl"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "tests/unit/tray/test_autostart.py",
- "source_location": "L162",
+ "source_file": "tests/unit/readme/test_generator.py",
+ "source_location": "L250",
"weight": 1.0,
- "source": "tray_test_autostart_test_windows_register_sets_run_value",
- "target": "tray_autostart_autostartmanager"
+ "source": "readme_test_generator_test_duplicate_field_id_across_layers_raises",
+ "target": "readme_generator_templatefielddecl"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "tests/unit/tray/test_autostart.py",
- "source_location": "L174",
+ "source_file": "tests/unit/readme/test_generator.py",
+ "source_location": "L266",
"weight": 1.0,
- "source": "tray_test_autostart_test_windows_unregister_deletes_run_value",
- "target": "tray_autostart_autostartmanager"
+ "source": "readme_test_generator_test_custom_field_label_collides_with_template_id",
+ "target": "readme_generator_templatefielddecl"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "tests/unit/tray/test_autostart.py",
- "source_location": "L189",
- "weight": 1.0,
- "source": "tray_test_autostart_test_windows_unregister_when_value_missing_is_safe",
- "target": "tray_autostart_autostartmanager"
- },
- {
- "relation": "rationale_for",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_autostart.py",
- "source_location": "L196",
+ "source_file": "tests/unit/readme/test_generator.py",
+ "source_location": "L267",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "tray_test_autostart_rationale_196",
- "target": "tray_test_autostart_test_windows_open_key_handles_filenotfound_on_query"
+ "source": "readme_test_generator_test_custom_field_label_collides_with_template_id",
+ "target": "readme_generator_customfield"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "tests/unit/tray/test_autostart.py",
- "source_location": "L205",
- "weight": 1.0,
- "source": "tray_test_autostart_test_windows_open_key_handles_filenotfound_on_query",
- "target": "tray_autostart_autostartmanager"
- },
- {
- "relation": "rationale_for",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_autostart.py",
- "source_location": "L212",
+ "source_file": "tests/unit/readme/test_generator.py",
+ "source_location": "L284",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "tray_test_autostart_rationale_212",
- "target": "tray_test_autostart_test_silently_unlink_tolerates_missing"
+ "source": "readme_test_generator_test_core_field_redeclared_in_template_raises",
+ "target": "readme_generator_templatefielddecl"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "tests/unit/tray/test_autostart.py",
- "source_location": "L215",
+ "source_file": "tests/unit/readme/test_generator.py",
+ "source_location": "L293",
"weight": 1.0,
- "source": "tray_test_autostart_test_silently_unlink_tolerates_missing",
- "target": "tray_autostart_silently_unlink"
+ "source": "readme_test_generator_test_core_field_redeclared_in_config_raises",
+ "target": "readme_generator_templatefielddecl"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "tests/unit/tray/test_autostart.py",
- "source_location": "L229",
+ "source_file": "tests/unit/readme/test_generator.py",
+ "source_location": "L339",
"weight": 1.0,
- "source": "tray_test_autostart_test_env_var_root_overrides_constructor",
- "target": "tray_autostart_autostartmanager"
+ "source": "readme_test_generator_test_string_type_accepts_string_rejects_int",
+ "target": "readme_generator_templatefielddecl"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "tests/unit/tray/test_autostart.py",
- "source_location": "L239",
+ "source_file": "tests/unit/readme/test_generator.py",
+ "source_location": "L357",
"weight": 1.0,
- "source": "tray_test_autostart_test_executable_path_property",
- "target": "tray_autostart_autostartmanager"
+ "source": "readme_test_generator_test_text_type_accepts_multiline_rejects_list",
+ "target": "readme_generator_templatefielddecl"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "tests/unit/tray/test_autostart.py",
- "source_location": "L245",
+ "source_file": "tests/unit/readme/test_generator.py",
+ "source_location": "L373",
"weight": 1.0,
- "source": "tray_test_autostart_test_default_executable_falls_back_to_sys_executable",
- "target": "tray_autostart_autostartmanager"
+ "source": "readme_test_generator_test_choice_type_accepts_listed_rejects_other",
+ "target": "readme_generator_templatefielddecl"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "tests/unit/tray/test_autostart.py",
- "source_location": "L251",
+ "source_file": "tests/unit/readme/test_generator.py",
+ "source_location": "L387",
"weight": 1.0,
- "source": "tray_test_autostart_test_detect_platform_returns_known_value",
- "target": "tray_autostart_detect_platform"
+ "source": "readme_test_generator_test_choice_without_options_raises",
+ "target": "readme_generator_templatefielddecl"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "tests/unit/tray/test_autostart.py",
- "source_location": "L257",
- "weight": 1.0,
- "source": "tray_test_autostart_test_detect_platform_dispatch",
- "target": "tray_autostart_detect_platform"
- },
- {
- "relation": "contains",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_main.py",
- "source_location": "L15",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "tests_unit_tray_test_main_py",
- "target": "tray_test_main_stubserverrunner"
- },
- {
- "relation": "contains",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_main.py",
- "source_location": "L30",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "tests_unit_tray_test_main_py",
- "target": "tray_test_main_stubwindowlauncher"
- },
- {
- "relation": "contains",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_main.py",
- "source_location": "L42",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "tests_unit_tray_test_main_py",
- "target": "tray_test_main_stubquitcoordinator"
- },
- {
- "relation": "contains",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_main.py",
- "source_location": "L51",
+ "source_file": "tests/unit/readme/test_generator.py",
+ "source_location": "L399",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "tests_unit_tray_test_main_py",
- "target": "tray_test_main_stubstatusticker"
+ "source": "readme_test_generator_test_date_type_accepts_iso8601_rejects_garbage",
+ "target": "readme_generator_templatefielddecl"
},
{
- "relation": "contains",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_main.py",
- "source_location": "L68",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/readme/test_generator.py",
+ "source_location": "L420",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "tests_unit_tray_test_main_py",
- "target": "tray_test_main_stubbus"
+ "source": "readme_test_generator_test_date_type_rejects_non_string",
+ "target": "readme_generator_templatefielddecl"
},
{
- "relation": "contains",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_main.py",
- "source_location": "L76",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/readme/test_generator.py",
+ "source_location": "L432",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "tests_unit_tray_test_main_py",
- "target": "tray_test_main_stubautostart"
+ "source": "readme_test_generator_test_boolean_type_accepts_bool_rejects_string",
+ "target": "readme_generator_templatefielddecl"
},
{
- "relation": "contains",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_main.py",
- "source_location": "L80",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/readme/test_generator.py",
+ "source_location": "L450",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "tests_unit_tray_test_main_py",
- "target": "tray_test_main_make_tray"
+ "source": "readme_test_generator_test_unknown_field_type_raises",
+ "target": "readme_generator_templatefielddecl"
},
{
- "relation": "contains",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_main.py",
- "source_location": "L91",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/readme/test_generator.py",
+ "source_location": "L462",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "tests_unit_tray_test_main_py",
- "target": "tray_test_main_test_start_server_calls_runner"
+ "source": "readme_test_generator_test_choice_type_rejects_non_string_value",
+ "target": "readme_generator_templatefielddecl"
},
{
- "relation": "contains",
+ "relation": "rationale_for",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_main.py",
- "source_location": "L98",
+ "source_file": "tests/unit/readme/test_generator.py",
+ "source_location": "L479",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_tray_test_main_py",
- "target": "tray_test_main_test_open_window_delegates"
+ "source": "readme_test_generator_rationale_479",
+ "target": "readme_test_generator_test_generate_is_idempotent_byte_identical"
},
{
- "relation": "contains",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_main.py",
- "source_location": "L104",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/readme/test_generator.py",
+ "source_location": "L483",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "tests_unit_tray_test_main_py",
- "target": "tray_test_main_test_request_quit_runs_coordinator"
+ "source": "readme_test_generator_test_generate_is_idempotent_byte_identical",
+ "target": "readme_generator_customfield"
},
{
- "relation": "contains",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_main.py",
- "source_location": "L110",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/readme/test_generator.py",
+ "source_location": "L485",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "tests_unit_tray_test_main_py",
- "target": "tray_test_main_test_request_quit_calls_icon_stop_when_set"
+ "source": "readme_test_generator_test_generate_is_idempotent_byte_identical",
+ "target": "readme_generator_templatefielddecl"
},
{
- "relation": "contains",
+ "relation": "rationale_for",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_main.py",
- "source_location": "L118",
+ "source_file": "tests/unit/readme/test_generator.py",
+ "source_location": "L532",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_tray_test_main_py",
- "target": "tray_test_main_test_request_quit_handles_icon_stop_error"
+ "source": "readme_test_generator_rationale_532",
+ "target": "readme_test_generator_test_value_without_declaration_skips_typecheck"
},
{
- "relation": "contains",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_main.py",
- "source_location": "L126",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/readme/test_generator.py",
+ "source_location": "L535",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "tests_unit_tray_test_main_py",
- "target": "tray_test_main_test_shutdown_tears_components_down"
+ "source": "readme_test_generator_test_value_without_declaration_skips_typecheck",
+ "target": "readme_generator_templatefielddecl"
},
{
- "relation": "contains",
+ "relation": "rationale_for",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_main.py",
- "source_location": "L135",
+ "source_file": "tests/unit/readme/test_generator.py",
+ "source_location": "L547",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_tray_test_main_py",
- "target": "tray_test_main_test_run_wires_icon_and_invokes_run_loop"
+ "source": "readme_test_generator_rationale_547",
+ "target": "readme_test_generator_test_optional_empty_field_is_skipped"
},
{
- "relation": "contains",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_main.py",
- "source_location": "L166",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/readme/test_generator.py",
+ "source_location": "L548",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "tests_unit_tray_test_main_py",
- "target": "tray_test_main_test_build_default_components"
+ "source": "readme_test_generator_test_optional_empty_field_is_skipped",
+ "target": "readme_generator_templatefielddecl"
},
{
- "relation": "contains",
+ "relation": "rationale_for",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_main.py",
- "source_location": "L178",
+ "source_file": "tests/unit/readme/test_generator.py",
+ "source_location": "L559",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_tray_test_main_py",
- "target": "tray_test_main_test_main_uses_run_helper"
+ "source": "readme_test_generator_rationale_559",
+ "target": "readme_test_generator_test_required_field_present_with_none_raises"
},
{
- "relation": "contains",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_main.py",
- "source_location": "L201",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/readme/test_generator.py",
+ "source_location": "L560",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "tests_unit_tray_test_main_py",
- "target": "tray_test_main_test_main_handles_keyboard_interrupt"
+ "source": "readme_test_generator_test_required_field_present_with_none_raises",
+ "target": "readme_generator_templatefielddecl"
},
{
- "relation": "contains",
+ "relation": "rationale_for",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_main.py",
- "source_location": "L218",
+ "source_file": "tests/unit/readme/test_generator.py",
+ "source_location": "L572",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_tray_test_main_py",
- "target": "tray_test_main_test_run_returns_one_on_icon_failure"
+ "source": "readme_test_generator_rationale_572",
+ "target": "readme_test_generator_test_generated_at_uses_z_for_naive_datetime"
},
{
- "relation": "contains",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_main.py",
- "source_location": "L232",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/readme/test_generator.py",
+ "source_location": "L573",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "tests_unit_tray_test_main_py",
- "target": "tray_test_main_test_request_quit_uses_running_loop_when_present"
+ "source": "readme_test_generator_test_generated_at_uses_z_for_naive_datetime",
+ "target": "readme_generator_systemfields"
},
{
- "relation": "contains",
+ "relation": "rationale_for",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_main.py",
- "source_location": "L269",
+ "source_file": "tests/unit/readme/__init__.py",
+ "source_location": "L1",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_tray_test_main_py",
- "target": "tray_test_main_test_build_default_app"
+ "source": "readme_init_rationale_1",
+ "target": "tests_unit_readme_init_py"
},
{
- "relation": "contains",
+ "relation": "rationale_for",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_main.py",
- "source_location": "L302",
+ "source_file": "src/exlab_wizard/readme/__init__.py",
+ "source_location": "L1",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_tray_test_main_py",
- "target": "tray_test_main_test_build_default_components_falls_back_to_default_app"
+ "source": "readme_init_rationale_1",
+ "target": "src_exlab_wizard_readme_init_py"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_main.py",
- "source_location": "L314",
+ "source_file": "tests/unit/controller/test_metadata_assembly.py",
+ "source_location": "L72",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "tests_unit_tray_test_main_py",
- "target": "tray_test_main_test_parse_argv_defaults_no_smoke"
+ "source": "tests_unit_controller_test_metadata_assembly_py",
+ "target": "controller_test_metadata_assembly_config",
+ "confidence_score": 1.0
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_main.py",
- "source_location": "L323",
+ "source_file": "tests/unit/controller/test_metadata_assembly.py",
+ "source_location": "L92",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "tests_unit_tray_test_main_py",
- "target": "tray_test_main_test_parse_argv_smoke_flag"
+ "source": "tests_unit_controller_test_metadata_assembly_py",
+ "target": "controller_test_metadata_assembly_template_desc",
+ "confidence_score": 1.0
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_main.py",
- "source_location": "L331",
+ "source_file": "tests/unit/controller/test_metadata_assembly.py",
+ "source_location": "L103",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "tests_unit_tray_test_main_py",
- "target": "tray_test_main_test_parse_argv_no_autostart_prompt_silently_accepted"
+ "source": "tests_unit_controller_test_metadata_assembly_py",
+ "target": "controller_test_metadata_assembly_sample_type_default",
+ "confidence_score": 1.0
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_main.py",
- "source_location": "L339",
+ "source_file": "tests/unit/controller/test_metadata_assembly.py",
+ "source_location": "L119",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "tests_unit_tray_test_main_py",
- "target": "tray_test_main_test_run_smoke_starts_server_and_stops_on_signal"
+ "source": "tests_unit_controller_test_metadata_assembly_py",
+ "target": "controller_test_metadata_assembly_test_build_readme_context_partitions_readme_extra",
+ "confidence_score": 1.0
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_main.py",
- "source_location": "L376",
+ "source_file": "tests/unit/controller/test_metadata_assembly.py",
+ "source_location": "L155",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "tests_unit_tray_test_main_py",
- "target": "tray_test_main_test_main_smoke_dispatches_to_run_smoke"
+ "source": "tests_unit_controller_test_metadata_assembly_py",
+ "target": "controller_test_metadata_assembly_test_build_readme_context_system_and_level_for_run",
+ "confidence_score": 1.0
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_main.py",
- "source_location": "L397",
+ "source_file": "tests/unit/controller/test_metadata_assembly.py",
+ "source_location": "L186",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "tests_unit_tray_test_main_py",
- "target": "tray_test_main_test_parse_argv_version_flag"
+ "source": "tests_unit_controller_test_metadata_assembly_py",
+ "target": "controller_test_metadata_assembly_test_build_readme_context_unknown_equipment_blank_label",
+ "confidence_score": 1.0
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_main.py",
- "source_location": "L405",
+ "source_file": "tests/unit/controller/test_metadata_assembly.py",
+ "source_location": "L212",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "tests_unit_tray_test_main_py",
- "target": "tray_test_main_test_main_version_prints_version_and_exits_zero"
+ "source": "tests_unit_controller_test_metadata_assembly_py",
+ "target": "controller_test_metadata_assembly_lims_block",
+ "confidence_score": 1.0
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_main.py",
- "source_location": "L423",
+ "source_file": "tests/unit/controller/test_metadata_assembly.py",
+ "source_location": "L221",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "tests_unit_tray_test_main_py",
- "target": "tray_test_main_test_parse_argv_defaults_no_test_flags"
+ "source": "tests_unit_controller_test_metadata_assembly_py",
+ "target": "controller_test_metadata_assembly_test_build_creation_json_all_blocks_populated",
+ "confidence_score": 1.0
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_main.py",
- "source_location": "L432",
+ "source_file": "tests/unit/controller/test_metadata_assembly.py",
+ "source_location": "L270",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "tests_unit_tray_test_main_py",
- "target": "tray_test_main_test_parse_argv_test_flag"
+ "source": "tests_unit_controller_test_metadata_assembly_py",
+ "target": "controller_test_metadata_assembly_test_build_creation_json_sync_status_override",
+ "confidence_score": 1.0
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_main.py",
- "source_location": "L440",
+ "source_file": "tests/unit/controller/test_metadata_assembly.py",
+ "source_location": "L291",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "tests_unit_tray_test_main_py",
- "target": "tray_test_main_test_parse_argv_test_with_samples"
+ "source": "tests_unit_controller_test_metadata_assembly_py",
+ "target": "controller_test_metadata_assembly_test_build_creation_json_blank_nas_when_root_empty",
+ "confidence_score": 1.0
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_main.py",
- "source_location": "L448",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "tests_unit_tray_test_main_py",
- "target": "tray_test_main_test_parse_argv_samples_without_test_errors"
+ "source_file": "tests/unit/controller/test_metadata_assembly.py",
+ "source_location": "L315",
+ "weight": 1.0,
+ "source": "tests_unit_controller_test_metadata_assembly_py",
+ "target": "controller_test_metadata_assembly_controller",
+ "confidence_score": 1.0
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_main.py",
- "source_location": "L462",
+ "source_file": "tests/unit/controller/test_metadata_assembly.py",
+ "source_location": "L329",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "tests_unit_tray_test_main_py",
- "target": "tray_test_main_test_mode_env"
+ "source": "tests_unit_controller_test_metadata_assembly_py",
+ "target": "controller_test_metadata_assembly_project_request",
+ "confidence_score": 1.0
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_main.py",
- "source_location": "L487",
+ "source_file": "tests/unit/controller/test_metadata_assembly.py",
+ "source_location": "L347",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "tests_unit_tray_test_main_py",
- "target": "tray_test_main_test_main_test_flag_sets_env_and_bootstraps_config"
+ "source": "tests_unit_controller_test_metadata_assembly_py",
+ "target": "controller_test_metadata_assembly_resolved_desc_from",
+ "confidence_score": 1.0
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_main.py",
- "source_location": "L524",
+ "source_file": "tests/unit/controller/test_metadata_assembly.py",
+ "source_location": "L358",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "tests_unit_tray_test_main_py",
- "target": "tray_test_main_test_main_test_does_not_overwrite_existing_config"
+ "source": "tests_unit_controller_test_metadata_assembly_py",
+ "target": "controller_test_metadata_assembly_normalize_ctx",
+ "confidence_score": 1.0
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_main.py",
- "source_location": "L539",
+ "source_file": "tests/unit/controller/test_metadata_assembly.py",
+ "source_location": "L365",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "tests_unit_tray_test_main_py",
- "target": "tray_test_main_test_main_test_with_samples_adds_equipment"
+ "source": "tests_unit_controller_test_metadata_assembly_py",
+ "target": "controller_test_metadata_assembly_test_parity_build_readme_context",
+ "confidence_score": 1.0
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_main.py",
- "source_location": "L555",
+ "source_file": "tests/unit/controller/test_metadata_assembly.py",
+ "source_location": "L396",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "tests_unit_tray_test_main_py",
- "target": "tray_test_main_test_main_without_test_does_not_set_env"
+ "source": "tests_unit_controller_test_metadata_assembly_py",
+ "target": "controller_test_metadata_assembly_test_parity_build_creation_json",
+ "confidence_score": 1.0
},
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_main.py",
+ "source_file": "tests/unit/controller/test_metadata_assembly.py",
"source_location": "L1",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "tray_test_main_rationale_1",
- "target": "tests_unit_tray_test_main_py"
+ "source": "controller_test_metadata_assembly_rationale_1",
+ "target": "tests_unit_controller_test_metadata_assembly_py",
+ "confidence_score": 1.0
},
{
- "relation": "method",
+ "relation": "calls",
+ "context": "call",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_main.py",
- "source_location": "L16",
+ "source_file": "tests/unit/controller/test_metadata_assembly.py",
+ "source_location": "L122",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "tray_test_main_stubserverrunner",
- "target": "tray_test_main_stubserverrunner_init"
+ "source": "controller_test_metadata_assembly_test_build_readme_context_partitions_readme_extra",
+ "target": "controller_test_metadata_assembly_config",
+ "confidence_score": 1.0
},
{
- "relation": "method",
+ "relation": "calls",
+ "context": "call",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_main.py",
- "source_location": "L22",
+ "source_file": "tests/unit/controller/test_metadata_assembly.py",
+ "source_location": "L156",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "tray_test_main_stubserverrunner",
- "target": "tray_test_main_stubserverrunner_start"
+ "source": "controller_test_metadata_assembly_test_build_readme_context_system_and_level_for_run",
+ "target": "controller_test_metadata_assembly_config",
+ "confidence_score": 1.0
},
{
- "relation": "method",
+ "relation": "calls",
+ "context": "call",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_main.py",
- "source_location": "L26",
+ "source_file": "tests/unit/controller/test_metadata_assembly.py",
+ "source_location": "L187",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "tray_test_main_stubserverrunner",
- "target": "tray_test_main_stubserverrunner_stop"
+ "source": "controller_test_metadata_assembly_test_build_readme_context_unknown_equipment_blank_label",
+ "target": "controller_test_metadata_assembly_config",
+ "confidence_score": 1.0
},
{
"relation": "calls",
"context": "call",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_main.py",
- "source_location": "L82",
+ "source_file": "tests/unit/controller/test_metadata_assembly.py",
+ "source_location": "L222",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "tray_test_main_make_tray",
- "target": "tray_test_main_stubserverrunner"
- },
- {
- "relation": "uses",
- "confidence": "INFERRED",
- "source_file": "tests/unit/tray/test_main.py",
- "source_location": "L12",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "tray_test_main_stubserverrunner",
- "target": "tray_main_trayapp"
+ "source": "controller_test_metadata_assembly_test_build_creation_json_all_blocks_populated",
+ "target": "controller_test_metadata_assembly_config",
+ "confidence_score": 1.0
},
{
- "relation": "method",
+ "relation": "calls",
+ "context": "call",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_main.py",
- "source_location": "L31",
+ "source_file": "tests/unit/controller/test_metadata_assembly.py",
+ "source_location": "L271",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "tray_test_main_stubwindowlauncher",
- "target": "tray_test_main_stubwindowlauncher_init"
+ "source": "controller_test_metadata_assembly_test_build_creation_json_sync_status_override",
+ "target": "controller_test_metadata_assembly_config",
+ "confidence_score": 1.0
},
{
- "relation": "method",
+ "relation": "calls",
+ "context": "call",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_main.py",
- "source_location": "L35",
+ "source_file": "tests/unit/controller/test_metadata_assembly.py",
+ "source_location": "L292",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "tray_test_main_stubwindowlauncher",
- "target": "tray_test_main_stubwindowlauncher_open"
+ "source": "controller_test_metadata_assembly_test_build_creation_json_blank_nas_when_root_empty",
+ "target": "controller_test_metadata_assembly_config",
+ "confidence_score": 1.0
},
{
- "relation": "method",
+ "relation": "calls",
+ "context": "call",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_main.py",
- "source_location": "L38",
+ "source_file": "tests/unit/controller/test_metadata_assembly.py",
+ "source_location": "L368",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "tray_test_main_stubwindowlauncher",
- "target": "tray_test_main_stubwindowlauncher_close"
+ "source": "controller_test_metadata_assembly_test_parity_build_readme_context",
+ "target": "controller_test_metadata_assembly_config",
+ "confidence_score": 1.0
},
{
"relation": "calls",
"context": "call",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_main.py",
- "source_location": "L83",
+ "source_file": "tests/unit/controller/test_metadata_assembly.py",
+ "source_location": "L399",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "tray_test_main_make_tray",
- "target": "tray_test_main_stubwindowlauncher"
+ "source": "controller_test_metadata_assembly_test_parity_build_creation_json",
+ "target": "controller_test_metadata_assembly_config",
+ "confidence_score": 1.0
},
{
- "relation": "uses",
+ "relation": "calls",
+ "context": "call",
"confidence": "INFERRED",
- "source_file": "tests/unit/tray/test_main.py",
- "source_location": "L12",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "tray_test_main_stubwindowlauncher",
- "target": "tray_main_trayapp"
- },
- {
- "relation": "method",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_main.py",
- "source_location": "L43",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/controller/test_metadata_assembly.py",
+ "source_location": "L74",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "tray_test_main_stubquitcoordinator",
- "target": "tray_test_main_stubquitcoordinator_init"
+ "source": "controller_test_metadata_assembly_config",
+ "target": "config_models_pathsconfig"
},
{
- "relation": "method",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_main.py",
- "source_location": "L46",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/controller/test_metadata_assembly.py",
+ "source_location": "L80",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "tray_test_main_stubquitcoordinator",
- "target": "tray_test_main_stubquitcoordinator_quit"
+ "source": "controller_test_metadata_assembly_config",
+ "target": "config_models_equipmentconfig"
},
{
"relation": "calls",
"context": "call",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_main.py",
- "source_location": "L84",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/controller/test_metadata_assembly.py",
+ "source_location": "L87",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "tray_test_main_make_tray",
- "target": "tray_test_main_stubquitcoordinator"
+ "source": "controller_test_metadata_assembly_config",
+ "target": "config_models_operatorsconfig"
},
{
- "relation": "uses",
+ "relation": "calls",
+ "context": "call",
"confidence": "INFERRED",
- "source_file": "tests/unit/tray/test_main.py",
- "source_location": "L12",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "tray_test_main_stubquitcoordinator",
- "target": "tray_main_trayapp"
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/controller/test_metadata_assembly.py",
+ "source_location": "L88",
+ "weight": 1.0,
+ "source": "controller_test_metadata_assembly_config",
+ "target": "config_models_readmeconfig"
},
{
- "relation": "method",
+ "relation": "calls",
+ "context": "call",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_main.py",
- "source_location": "L52",
+ "source_file": "tests/unit/controller/test_metadata_assembly.py",
+ "source_location": "L124",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "tray_test_main_stubstatusticker",
- "target": "tray_test_main_stubstatusticker_init"
+ "source": "controller_test_metadata_assembly_test_build_readme_context_partitions_readme_extra",
+ "target": "controller_test_metadata_assembly_template_desc",
+ "confidence_score": 1.0
},
{
- "relation": "method",
+ "relation": "calls",
+ "context": "call",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_main.py",
- "source_location": "L57",
+ "source_file": "tests/unit/controller/test_metadata_assembly.py",
+ "source_location": "L165",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "tray_test_main_stubstatusticker",
- "target": "tray_test_main_stubstatusticker_start"
+ "source": "controller_test_metadata_assembly_test_build_readme_context_system_and_level_for_run",
+ "target": "controller_test_metadata_assembly_template_desc",
+ "confidence_score": 1.0
},
{
- "relation": "method",
+ "relation": "calls",
+ "context": "call",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_main.py",
- "source_location": "L60",
+ "source_file": "tests/unit/controller/test_metadata_assembly.py",
+ "source_location": "L196",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "tray_test_main_stubstatusticker",
- "target": "tray_test_main_stubstatusticker_stop"
+ "source": "controller_test_metadata_assembly_test_build_readme_context_unknown_equipment_blank_label",
+ "target": "controller_test_metadata_assembly_template_desc",
+ "confidence_score": 1.0
},
{
- "relation": "method",
+ "relation": "calls",
+ "context": "call",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_main.py",
- "source_location": "L63",
+ "source_file": "tests/unit/controller/test_metadata_assembly.py",
+ "source_location": "L240",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "tray_test_main_stubstatusticker",
- "target": "tray_test_main_stubstatusticker_tick_once"
+ "source": "controller_test_metadata_assembly_test_build_creation_json_all_blocks_populated",
+ "target": "controller_test_metadata_assembly_template_desc",
+ "confidence_score": 1.0
},
{
"relation": "calls",
"context": "call",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_main.py",
- "source_location": "L85",
+ "source_file": "tests/unit/controller/test_metadata_assembly.py",
+ "source_location": "L279",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "tray_test_main_make_tray",
- "target": "tray_test_main_stubstatusticker"
- },
- {
- "relation": "uses",
- "confidence": "INFERRED",
- "source_file": "tests/unit/tray/test_main.py",
- "source_location": "L12",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "tray_test_main_stubstatusticker",
- "target": "tray_main_trayapp"
+ "source": "controller_test_metadata_assembly_test_build_creation_json_sync_status_override",
+ "target": "controller_test_metadata_assembly_template_desc",
+ "confidence_score": 1.0
},
{
- "relation": "method",
+ "relation": "calls",
+ "context": "call",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_main.py",
- "source_location": "L69",
+ "source_file": "tests/unit/controller/test_metadata_assembly.py",
+ "source_location": "L300",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "tray_test_main_stubbus",
- "target": "tray_test_main_stubbus_init"
+ "source": "controller_test_metadata_assembly_test_build_creation_json_blank_nas_when_root_empty",
+ "target": "controller_test_metadata_assembly_template_desc",
+ "confidence_score": 1.0
},
{
- "relation": "method",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_main.py",
- "source_location": "L72",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/controller/test_metadata_assembly.py",
+ "source_location": "L93",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "tray_test_main_stubbus",
- "target": "tray_test_main_stubbus_cancel_all"
+ "source": "controller_test_metadata_assembly_template_desc",
+ "target": "controller_metadata_assembly_templatedesc"
},
{
"relation": "calls",
"context": "call",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_main.py",
- "source_location": "L86",
+ "source_file": "tests/unit/controller/test_metadata_assembly.py",
+ "source_location": "L122",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "tray_test_main_make_tray",
- "target": "tray_test_main_stubbus"
+ "source": "controller_test_metadata_assembly_test_build_readme_context_partitions_readme_extra",
+ "target": "controller_test_metadata_assembly_sample_type_default",
+ "confidence_score": 1.0
},
{
- "relation": "uses",
- "confidence": "INFERRED",
- "source_file": "tests/unit/tray/test_main.py",
- "source_location": "L12",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "tray_test_main_stubbus",
- "target": "tray_main_trayapp"
+ "relation": "calls",
+ "context": "call",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/controller/test_metadata_assembly.py",
+ "source_location": "L368",
+ "weight": 1.0,
+ "source": "controller_test_metadata_assembly_test_parity_build_readme_context",
+ "target": "controller_test_metadata_assembly_sample_type_default",
+ "confidence_score": 1.0
},
{
"relation": "calls",
"context": "call",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_main.py",
- "source_location": "L87",
+ "source_file": "tests/unit/controller/test_metadata_assembly.py",
+ "source_location": "L399",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "tray_test_main_make_tray",
- "target": "tray_test_main_stubautostart"
+ "source": "controller_test_metadata_assembly_test_parity_build_creation_json",
+ "target": "controller_test_metadata_assembly_sample_type_default",
+ "confidence_score": 1.0
},
{
- "relation": "uses",
+ "relation": "calls",
+ "context": "call",
"confidence": "INFERRED",
- "source_file": "tests/unit/tray/test_main.py",
- "source_location": "L12",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "tray_test_main_stubautostart",
- "target": "tray_main_trayapp"
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/controller/test_metadata_assembly.py",
+ "source_location": "L104",
+ "weight": 1.0,
+ "source": "controller_test_metadata_assembly_sample_type_default",
+ "target": "config_models_readmedefaultfield"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "rationale_for",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_main.py",
- "source_location": "L92",
+ "source_file": "tests/unit/controller/test_metadata_assembly.py",
+ "source_location": "L120",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "tray_test_main_test_start_server_calls_runner",
- "target": "tray_test_main_make_tray"
+ "source": "controller_test_metadata_assembly_rationale_120",
+ "target": "controller_test_metadata_assembly_test_build_readme_context_partitions_readme_extra",
+ "confidence_score": 1.0
},
{
"relation": "calls",
"context": "call",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_main.py",
- "source_location": "L99",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/controller/test_metadata_assembly.py",
+ "source_location": "L127",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "tray_test_main_test_open_window_delegates",
- "target": "tray_test_main_make_tray"
+ "source": "controller_test_metadata_assembly_test_build_readme_context_partitions_readme_extra",
+ "target": "controller_metadata_assembly_build_readme_context"
},
{
"relation": "calls",
"context": "call",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_main.py",
- "source_location": "L105",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/controller/test_metadata_assembly.py",
+ "source_location": "L150",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "tray_test_main_test_request_quit_runs_coordinator",
- "target": "tray_test_main_make_tray"
+ "source": "controller_test_metadata_assembly_test_build_readme_context_partitions_readme_extra",
+ "target": "readme_generator_customfield"
},
{
"relation": "calls",
"context": "call",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_main.py",
- "source_location": "L111",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/controller/test_metadata_assembly.py",
+ "source_location": "L157",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "tray_test_main_test_request_quit_calls_icon_stop_when_set",
- "target": "tray_test_main_make_tray"
+ "source": "controller_test_metadata_assembly_test_build_readme_context_system_and_level_for_run",
+ "target": "controller_metadata_assembly_build_readme_context"
},
{
"relation": "calls",
"context": "call",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_main.py",
- "source_location": "L119",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/controller/test_metadata_assembly.py",
+ "source_location": "L188",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "tray_test_main_test_request_quit_handles_icon_stop_error",
- "target": "tray_test_main_make_tray"
+ "source": "controller_test_metadata_assembly_test_build_readme_context_unknown_equipment_blank_label",
+ "target": "controller_metadata_assembly_build_readme_context"
},
{
"relation": "calls",
"context": "call",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_main.py",
- "source_location": "L127",
+ "source_file": "tests/unit/controller/test_metadata_assembly.py",
+ "source_location": "L238",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "tray_test_main_test_shutdown_tears_components_down",
- "target": "tray_test_main_make_tray"
+ "source": "controller_test_metadata_assembly_test_build_creation_json_all_blocks_populated",
+ "target": "controller_test_metadata_assembly_lims_block",
+ "confidence_score": 1.0
},
{
"relation": "calls",
"context": "call",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_main.py",
- "source_location": "L136",
+ "source_file": "tests/unit/controller/test_metadata_assembly.py",
+ "source_location": "L278",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "tray_test_main_test_run_wires_icon_and_invokes_run_loop",
- "target": "tray_test_main_make_tray"
+ "source": "controller_test_metadata_assembly_test_build_creation_json_sync_status_override",
+ "target": "controller_test_metadata_assembly_lims_block",
+ "confidence_score": 1.0
},
{
"relation": "calls",
"context": "call",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_main.py",
- "source_location": "L207",
+ "source_file": "tests/unit/controller/test_metadata_assembly.py",
+ "source_location": "L299",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "tray_test_main_test_main_handles_keyboard_interrupt",
- "target": "tray_test_main_make_tray"
+ "source": "controller_test_metadata_assembly_test_build_creation_json_blank_nas_when_root_empty",
+ "target": "controller_test_metadata_assembly_lims_block",
+ "confidence_score": 1.0
},
{
"relation": "calls",
"context": "call",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_main.py",
- "source_location": "L219",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/controller/test_metadata_assembly.py",
+ "source_location": "L213",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "tray_test_main_test_run_returns_one_on_icon_failure",
- "target": "tray_test_main_make_tray"
+ "source": "controller_test_metadata_assembly_lims_block",
+ "target": "api_schemas_limsprojectblock"
},
{
"relation": "calls",
"context": "call",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_main.py",
- "source_location": "L244",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/controller/test_metadata_assembly.py",
+ "source_location": "L225",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "tray_test_main_test_request_quit_uses_running_loop_when_present",
- "target": "tray_test_main_make_tray"
+ "source": "controller_test_metadata_assembly_test_build_creation_json_all_blocks_populated",
+ "target": "api_schemas_pluginapplied"
},
{
"relation": "calls",
"context": "call",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_main.py",
- "source_location": "L482",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/controller/test_metadata_assembly.py",
+ "source_location": "L232",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "tray_test_main_test_mode_env",
- "target": "tray_test_main_make_tray"
+ "source": "controller_test_metadata_assembly_test_build_creation_json_all_blocks_populated",
+ "target": "controller_metadata_assembly_build_creation_json"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "tests/unit/tray/test_main.py",
- "source_location": "L81",
+ "source_file": "tests/unit/controller/test_metadata_assembly.py",
+ "source_location": "L272",
"weight": 1.0,
- "source": "tray_test_main_make_tray",
- "target": "tray_main_trayapp"
+ "source": "controller_test_metadata_assembly_test_build_creation_json_sync_status_override",
+ "target": "controller_metadata_assembly_build_creation_json"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "tests/unit/tray/test_main.py",
- "source_location": "L171",
+ "source_file": "tests/unit/controller/test_metadata_assembly.py",
+ "source_location": "L293",
"weight": 1.0,
- "source": "tray_test_main_test_build_default_components",
- "target": "tray_main_build_default_components"
+ "source": "controller_test_metadata_assembly_test_build_creation_json_blank_nas_when_root_empty",
+ "target": "controller_metadata_assembly_build_creation_json"
},
{
- "relation": "rationale_for",
+ "relation": "calls",
+ "context": "call",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_main.py",
- "source_location": "L179",
+ "source_file": "tests/unit/controller/test_metadata_assembly.py",
+ "source_location": "L369",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "tray_test_main_rationale_179",
- "target": "tray_test_main_test_main_uses_run_helper"
+ "source": "controller_test_metadata_assembly_test_parity_build_readme_context",
+ "target": "controller_test_metadata_assembly_controller",
+ "confidence_score": 1.0
},
{
- "relation": "rationale_for",
+ "relation": "calls",
+ "context": "call",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_main.py",
- "source_location": "L235",
+ "source_file": "tests/unit/controller/test_metadata_assembly.py",
+ "source_location": "L400",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "tray_test_main_rationale_235",
- "target": "tray_test_main_test_request_quit_uses_running_loop_when_present"
+ "source": "controller_test_metadata_assembly_test_parity_build_creation_json",
+ "target": "controller_test_metadata_assembly_controller",
+ "confidence_score": 1.0
},
{
- "relation": "rationale_for",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_main.py",
- "source_location": "L270",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/controller/test_metadata_assembly.py",
+ "source_location": "L316",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "tray_test_main_rationale_270",
- "target": "tray_test_main_test_build_default_app"
+ "source": "controller_test_metadata_assembly_controller",
+ "target": "controller_creation_creationcontroller"
},
{
- "relation": "rationale_for",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_main.py",
- "source_location": "L305",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/controller/test_metadata_assembly.py",
+ "source_location": "L319",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "tray_test_main_rationale_305",
- "target": "tray_test_main_test_build_default_components_falls_back_to_default_app"
+ "source": "controller_test_metadata_assembly_controller",
+ "target": "template_copier_driver_templateengine"
},
{
- "relation": "rationale_for",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_main.py",
- "source_location": "L315",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/controller/test_metadata_assembly.py",
+ "source_location": "L321",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "tray_test_main_rationale_315",
- "target": "tray_test_main_test_parse_argv_defaults_no_smoke"
+ "source": "controller_test_metadata_assembly_controller",
+ "target": "cache_creation_writer_creationwriter"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "tests/unit/tray/test_main.py",
- "source_location": "L318",
+ "source_file": "tests/unit/controller/test_metadata_assembly.py",
+ "source_location": "L322",
"weight": 1.0,
- "source": "tray_test_main_test_parse_argv_defaults_no_smoke",
- "target": "tray_main_parse_argv"
+ "source": "controller_test_metadata_assembly_controller",
+ "target": "cache_equipment_equipmentcachewriter"
},
{
- "relation": "rationale_for",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_main.py",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/controller/test_metadata_assembly.py",
+ "source_location": "L323",
+ "weight": 1.0,
+ "source": "controller_test_metadata_assembly_controller",
+ "target": "controller_creation_noopreadmegenerator"
+ },
+ {
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/controller/test_metadata_assembly.py",
"source_location": "L324",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "tray_test_main_rationale_324",
- "target": "tray_test_main_test_parse_argv_smoke_flag"
+ "source": "controller_test_metadata_assembly_controller",
+ "target": "controller_creation_noopnassync"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "tests/unit/tray/test_main.py",
- "source_location": "L327",
+ "source_file": "tests/unit/controller/test_metadata_assembly.py",
+ "source_location": "L325",
"weight": 1.0,
- "source": "tray_test_main_test_parse_argv_smoke_flag",
- "target": "tray_main_parse_argv"
+ "source": "controller_test_metadata_assembly_controller",
+ "target": "controller_session_store_sessionstore"
},
{
- "relation": "rationale_for",
+ "relation": "calls",
+ "context": "call",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_main.py",
- "source_location": "L332",
+ "source_file": "tests/unit/controller/test_metadata_assembly.py",
+ "source_location": "L371",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "tray_test_main_rationale_332",
- "target": "tray_test_main_test_parse_argv_no_autostart_prompt_silently_accepted"
+ "source": "controller_test_metadata_assembly_test_parity_build_readme_context",
+ "target": "controller_test_metadata_assembly_project_request",
+ "confidence_score": 1.0
},
{
"relation": "calls",
"context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/tray/test_main.py",
- "source_location": "L335",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/controller/test_metadata_assembly.py",
+ "source_location": "L402",
"weight": 1.0,
- "source": "tray_test_main_test_parse_argv_no_autostart_prompt_silently_accepted",
- "target": "tray_main_parse_argv"
+ "source": "controller_test_metadata_assembly_test_parity_build_creation_json",
+ "target": "controller_test_metadata_assembly_project_request",
+ "confidence_score": 1.0
},
{
- "relation": "rationale_for",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_main.py",
- "source_location": "L342",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/controller/test_metadata_assembly.py",
+ "source_location": "L330",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "tray_test_main_rationale_342",
- "target": "tray_test_main_test_run_smoke_starts_server_and_stops_on_signal"
+ "source": "controller_test_metadata_assembly_project_request",
+ "target": "controller_creation_projectcreaterequest"
},
{
- "relation": "rationale_for",
+ "relation": "calls",
+ "context": "call",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_main.py",
- "source_location": "L379",
+ "source_file": "tests/unit/controller/test_metadata_assembly.py",
+ "source_location": "L385",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "tray_test_main_rationale_379",
- "target": "tray_test_main_test_main_smoke_dispatches_to_run_smoke"
+ "source": "controller_test_metadata_assembly_test_parity_build_readme_context",
+ "target": "controller_test_metadata_assembly_resolved_desc_from",
+ "confidence_score": 1.0
},
{
- "relation": "rationale_for",
+ "relation": "calls",
+ "context": "call",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_main.py",
- "source_location": "L398",
+ "source_file": "tests/unit/controller/test_metadata_assembly.py",
+ "source_location": "L432",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "tray_test_main_rationale_398",
- "target": "tray_test_main_test_parse_argv_version_flag"
+ "source": "controller_test_metadata_assembly_test_parity_build_creation_json",
+ "target": "controller_test_metadata_assembly_resolved_desc_from",
+ "confidence_score": 1.0
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "tests/unit/tray/test_main.py",
- "source_location": "L401",
+ "source_file": "tests/unit/controller/test_metadata_assembly.py",
+ "source_location": "L348",
"weight": 1.0,
- "source": "tray_test_main_test_parse_argv_version_flag",
- "target": "tray_main_parse_argv"
+ "source": "controller_test_metadata_assembly_resolved_desc_from",
+ "target": "controller_metadata_assembly_templatedesc"
},
{
- "relation": "rationale_for",
+ "relation": "calls",
+ "context": "call",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_main.py",
- "source_location": "L408",
+ "source_file": "tests/unit/controller/test_metadata_assembly.py",
+ "source_location": "L393",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "tray_test_main_rationale_408",
- "target": "tray_test_main_test_main_version_prints_version_and_exits_zero"
+ "source": "controller_test_metadata_assembly_test_parity_build_readme_context",
+ "target": "controller_test_metadata_assembly_normalize_ctx",
+ "confidence_score": 1.0
},
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_main.py",
- "source_location": "L424",
+ "source_file": "tests/unit/controller/test_metadata_assembly.py",
+ "source_location": "L359",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "tray_test_main_rationale_424",
- "target": "tray_test_main_test_parse_argv_defaults_no_test_flags"
+ "source": "controller_test_metadata_assembly_rationale_359",
+ "target": "controller_test_metadata_assembly_normalize_ctx",
+ "confidence_score": 1.0
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "tests/unit/tray/test_main.py",
- "source_location": "L427",
+ "source_file": "tests/unit/controller/test_metadata_assembly.py",
+ "source_location": "L377",
"weight": 1.0,
- "source": "tray_test_main_test_parse_argv_defaults_no_test_flags",
- "target": "tray_main_parse_argv"
+ "source": "controller_test_metadata_assembly_test_parity_build_readme_context",
+ "target": "controller_metadata_assembly_build_readme_context"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "tests/unit/tray/test_main.py",
- "source_location": "L435",
+ "source_file": "tests/unit/controller/test_metadata_assembly.py",
+ "source_location": "L416",
"weight": 1.0,
- "source": "tray_test_main_test_parse_argv_test_flag",
- "target": "tray_main_parse_argv"
+ "source": "controller_test_metadata_assembly_test_parity_build_creation_json",
+ "target": "template_copier_driver_renderresult"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "tests/unit/tray/test_main.py",
- "source_location": "L443",
+ "source_file": "tests/unit/controller/test_metadata_assembly.py",
+ "source_location": "L417",
"weight": 1.0,
- "source": "tray_test_main_test_parse_argv_test_with_samples",
- "target": "tray_main_parse_argv"
+ "source": "controller_test_metadata_assembly_test_parity_build_creation_json",
+ "target": "plugins_host_pluginpassresult"
},
{
- "relation": "rationale_for",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_main.py",
- "source_location": "L451",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/controller/test_metadata_assembly.py",
+ "source_location": "L420",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "tray_test_main_rationale_451",
- "target": "tray_test_main_test_parse_argv_samples_without_test_errors"
+ "source": "controller_test_metadata_assembly_test_parity_build_creation_json",
+ "target": "controller_metadata_assembly_build_creation_json"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "tests/unit/tray/test_main.py",
- "source_location": "L455",
+ "source_file": "tests/unit/controller/test_metadata_assembly.py",
+ "source_location": "L426",
"weight": 1.0,
- "source": "tray_test_main_test_parse_argv_samples_without_test_errors",
- "target": "tray_main_parse_argv"
+ "source": "controller_test_metadata_assembly_test_parity_build_creation_json",
+ "target": "api_schemas_limsprojectblock"
},
{
- "relation": "rationale_for",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_main.py",
- "source_location": "L463",
+ "source_file": "tests/unit/controller/test_creation_apply_config.py",
+ "source_location": "L16",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tray_test_main_rationale_463",
- "target": "tray_test_main_test_mode_env"
+ "source": "tests_unit_controller_test_creation_apply_config_py",
+ "target": "controller_test_creation_apply_config_controller"
+ },
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/controller/test_creation_apply_config.py",
+ "source_location": "L29",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "tests_unit_controller_test_creation_apply_config_py",
+ "target": "controller_test_creation_apply_config_test_apply_config_swaps_config"
+ },
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/controller/test_creation_apply_config.py",
+ "source_location": "L39",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "tests_unit_controller_test_creation_apply_config_py",
+ "target": "controller_test_creation_apply_config_test_apply_config_reinjects_plugin_host_only_when_given"
},
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_main.py",
- "source_location": "L488",
+ "source_file": "tests/unit/controller/test_creation_apply_config.py",
+ "source_location": "L1",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tray_test_main_rationale_488",
- "target": "tray_test_main_test_main_test_flag_sets_env_and_bootstraps_config"
+ "source": "controller_test_creation_apply_config_rationale_1",
+ "target": "tests_unit_controller_test_creation_apply_config_py"
},
{
"relation": "calls",
"context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/tray/test_main.py",
- "source_location": "L508",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/controller/test_creation_apply_config.py",
+ "source_location": "L31",
"weight": 1.0,
- "source": "tray_test_main_test_main_test_flag_sets_env_and_bootstraps_config",
- "target": "config_loader_load_config"
+ "confidence_score": 1.0,
+ "source": "controller_test_creation_apply_config_test_apply_config_swaps_config",
+ "target": "controller_test_creation_apply_config_controller"
},
{
- "relation": "rationale_for",
+ "relation": "calls",
+ "context": "call",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_main.py",
- "source_location": "L525",
+ "source_file": "tests/unit/controller/test_creation_apply_config.py",
+ "source_location": "L40",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tray_test_main_rationale_525",
- "target": "tray_test_main_test_main_test_does_not_overwrite_existing_config"
+ "source": "controller_test_creation_apply_config_test_apply_config_reinjects_plugin_host_only_when_given",
+ "target": "controller_test_creation_apply_config_controller"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "tests/unit/tray/test_main.py",
- "source_location": "L546",
+ "source_file": "tests/unit/controller/test_creation_apply_config.py",
+ "source_location": "L19",
"weight": 1.0,
- "source": "tray_test_main_test_main_test_with_samples_adds_equipment",
- "target": "config_loader_load_config"
+ "source": "controller_test_creation_apply_config_controller",
+ "target": "controller_creation_creationcontroller"
},
{
- "relation": "rationale_for",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/tray/test_main.py",
- "source_location": "L556",
+ "source_file": "tests/unit/controller/test_state_machine.py",
+ "source_location": "L25",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tray_test_main_rationale_556",
- "target": "tray_test_main_test_main_without_test_does_not_set_env"
+ "source": "tests_unit_controller_test_state_machine_py",
+ "target": "controller_test_state_machine_test_state_to_phase_pending_returns_none"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/readme/test_generator.py",
- "source_location": "L57",
+ "source_file": "tests/unit/controller/test_state_machine.py",
+ "source_location": "L29",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_readme_test_generator_py",
- "target": "readme_test_generator_system_fields"
+ "source": "tests_unit_controller_test_state_machine_py",
+ "target": "controller_test_state_machine_test_state_to_phase_validating_returns_validating_inputs"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/readme/test_generator.py",
- "source_location": "L73",
+ "source_file": "tests/unit/controller/test_state_machine.py",
+ "source_location": "L33",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_readme_test_generator_py",
- "target": "readme_test_generator_ctx"
+ "source": "tests_unit_controller_test_state_machine_py",
+ "target": "controller_test_state_machine_test_state_to_phase_rendering_returns_rendering_template"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/readme/test_generator.py",
- "source_location": "L99",
+ "source_file": "tests/unit/controller/test_state_machine.py",
+ "source_location": "L37",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_readme_test_generator_py",
- "target": "readme_test_generator_generator"
+ "source": "tests_unit_controller_test_state_machine_py",
+ "target": "controller_test_state_machine_test_state_to_phase_plugin_pass_returns_running_plugins"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/readme/test_generator.py",
- "source_location": "L109",
+ "source_file": "tests/unit/controller/test_state_machine.py",
+ "source_location": "L41",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_readme_test_generator_py",
- "target": "readme_test_generator_test_generate_writes_both_files"
+ "source": "tests_unit_controller_test_state_machine_py",
+ "target": "controller_test_state_machine_test_state_to_phase_input_required_returns_input_required"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/readme/test_generator.py",
- "source_location": "L118",
+ "source_file": "tests/unit/controller/test_state_machine.py",
+ "source_location": "L45",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_readme_test_generator_py",
- "target": "readme_test_generator_test_readme_starts_with_yaml_front_matter"
+ "source": "tests_unit_controller_test_state_machine_py",
+ "target": "controller_test_state_machine_test_state_to_phase_cache_write_returns_writing_cache"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/readme/test_generator.py",
- "source_location": "L135",
+ "source_file": "tests/unit/controller/test_state_machine.py",
+ "source_location": "L49",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_readme_test_generator_py",
- "target": "readme_test_generator_test_readme_body_includes_label_and_objective"
+ "source": "tests_unit_controller_test_state_machine_py",
+ "target": "controller_test_state_machine_test_state_to_phase_post_validate_returns_validating_post_creation"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/readme/test_generator.py",
- "source_location": "L148",
+ "source_file": "tests/unit/controller/test_state_machine.py",
+ "source_location": "L53",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_readme_test_generator_py",
- "target": "readme_test_generator_test_readme_fields_json_round_trips"
+ "source": "tests_unit_controller_test_state_machine_py",
+ "target": "controller_test_state_machine_test_state_to_phase_sync_queued_returns_queueing_nas_sync"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/readme/test_generator.py",
- "source_location": "L192",
+ "source_file": "tests/unit/controller/test_state_machine.py",
+ "source_location": "L57",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_readme_test_generator_py",
- "target": "readme_test_generator_test_empty_core_field_rejected"
+ "source": "tests_unit_controller_test_state_machine_py",
+ "target": "controller_test_state_machine_test_state_to_phase_done_returns_done"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/readme/test_generator.py",
- "source_location": "L201",
+ "source_file": "tests/unit/controller/test_state_machine.py",
+ "source_location": "L61",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_readme_test_generator_py",
- "target": "readme_test_generator_test_label_over_max_length_rejected"
+ "source": "tests_unit_controller_test_state_machine_py",
+ "target": "controller_test_state_machine_test_state_to_phase_failed_returns_none"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/readme/test_generator.py",
- "source_location": "L208",
+ "source_file": "tests/unit/controller/test_state_machine.py",
+ "source_location": "L65",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_readme_test_generator_py",
- "target": "readme_test_generator_test_objective_over_max_length_rejected"
+ "source": "tests_unit_controller_test_state_machine_py",
+ "target": "controller_test_state_machine_test_state_to_phase_aborted_returns_none"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/readme/test_generator.py",
- "source_location": "L222",
+ "source_file": "tests/unit/controller/test_state_machine.py",
+ "source_location": "L69",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_readme_test_generator_py",
- "target": "readme_test_generator_test_required_template_field_missing_raises"
+ "source": "tests_unit_controller_test_state_machine_py",
+ "target": "controller_test_state_machine_test_state_to_phase_covers_every_state"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/readme/test_generator.py",
- "source_location": "L231",
+ "source_file": "tests/unit/controller/test_state_machine.py",
+ "source_location": "L82",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_readme_test_generator_py",
- "target": "readme_test_generator_test_required_config_field_missing_raises"
+ "source": "tests_unit_controller_test_state_machine_py",
+ "target": "controller_test_state_machine_test_pending_transitions_to_validating"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/readme/test_generator.py",
- "source_location": "L247",
+ "source_file": "tests/unit/controller/test_state_machine.py",
+ "source_location": "L86",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_readme_test_generator_py",
- "target": "readme_test_generator_test_duplicate_field_id_across_layers_raises"
+ "source": "tests_unit_controller_test_state_machine_py",
+ "target": "controller_test_state_machine_test_validating_transitions_to_rendering"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/readme/test_generator.py",
- "source_location": "L263",
+ "source_file": "tests/unit/controller/test_state_machine.py",
+ "source_location": "L90",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_readme_test_generator_py",
- "target": "readme_test_generator_test_custom_field_label_collides_with_template_id"
+ "source": "tests_unit_controller_test_state_machine_py",
+ "target": "controller_test_state_machine_test_rendering_transitions_to_plugin_pass"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/readme/test_generator.py",
- "source_location": "L281",
+ "source_file": "tests/unit/controller/test_state_machine.py",
+ "source_location": "L94",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_readme_test_generator_py",
- "target": "readme_test_generator_test_core_field_redeclared_in_template_raises"
+ "source": "tests_unit_controller_test_state_machine_py",
+ "target": "controller_test_state_machine_test_plugin_pass_transitions_to_input_required_and_cache_write"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/readme/test_generator.py",
- "source_location": "L290",
+ "source_file": "tests/unit/controller/test_state_machine.py",
+ "source_location": "L100",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_readme_test_generator_py",
- "target": "readme_test_generator_test_core_field_redeclared_in_config_raises"
+ "source": "tests_unit_controller_test_state_machine_py",
+ "target": "controller_test_state_machine_test_input_required_transitions_back_to_plugin_pass"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/readme/test_generator.py",
- "source_location": "L304",
+ "source_file": "tests/unit/controller/test_state_machine.py",
+ "source_location": "L104",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_readme_test_generator_py",
- "target": "readme_test_generator_test_project_level_system_run_is_none"
+ "source": "tests_unit_controller_test_state_machine_py",
+ "target": "controller_test_state_machine_test_cache_write_transitions_to_post_validate"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/readme/test_generator.py",
- "source_location": "L313",
+ "source_file": "tests/unit/controller/test_state_machine.py",
+ "source_location": "L108",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_readme_test_generator_py",
- "target": "readme_test_generator_test_run_level_experimental_run_name"
+ "source": "tests_unit_controller_test_state_machine_py",
+ "target": "controller_test_state_machine_test_post_validate_transitions_to_sync_queued"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/readme/test_generator.py",
- "source_location": "L322",
+ "source_file": "tests/unit/controller/test_state_machine.py",
+ "source_location": "L112",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_readme_test_generator_py",
- "target": "readme_test_generator_test_run_level_test_run_name"
+ "source": "tests_unit_controller_test_state_machine_py",
+ "target": "controller_test_state_machine_test_sync_queued_transitions_to_done"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/readme/test_generator.py",
- "source_location": "L336",
+ "source_file": "tests/unit/controller/test_state_machine.py",
+ "source_location": "L134",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_readme_test_generator_py",
- "target": "readme_test_generator_test_string_type_accepts_string_rejects_int"
+ "source": "tests_unit_controller_test_state_machine_py",
+ "target": "controller_test_state_machine_test_fail_allowed_from_every_non_terminal_state"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/readme/test_generator.py",
- "source_location": "L354",
+ "source_file": "tests/unit/controller/test_state_machine.py",
+ "source_location": "L151",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_readme_test_generator_py",
- "target": "readme_test_generator_test_text_type_accepts_multiline_rejects_list"
+ "source": "tests_unit_controller_test_state_machine_py",
+ "target": "controller_test_state_machine_test_aborted_allowed_from_every_non_terminal_state"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/readme/test_generator.py",
- "source_location": "L370",
+ "source_file": "tests/unit/controller/test_state_machine.py",
+ "source_location": "L160",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_readme_test_generator_py",
- "target": "readme_test_generator_test_choice_type_accepts_listed_rejects_other"
+ "source": "tests_unit_controller_test_state_machine_py",
+ "target": "controller_test_state_machine_test_done_is_terminal"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/readme/test_generator.py",
- "source_location": "L386",
+ "source_file": "tests/unit/controller/test_state_machine.py",
+ "source_location": "L164",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_readme_test_generator_py",
- "target": "readme_test_generator_test_choice_without_options_raises"
+ "source": "tests_unit_controller_test_state_machine_py",
+ "target": "controller_test_state_machine_test_failed_is_terminal"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/readme/test_generator.py",
- "source_location": "L396",
+ "source_file": "tests/unit/controller/test_state_machine.py",
+ "source_location": "L168",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_readme_test_generator_py",
- "target": "readme_test_generator_test_date_type_accepts_iso8601_rejects_garbage"
+ "source": "tests_unit_controller_test_state_machine_py",
+ "target": "controller_test_state_machine_test_aborted_is_terminal"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/readme/test_generator.py",
- "source_location": "L419",
+ "source_file": "tests/unit/controller/test_state_machine.py",
+ "source_location": "L177",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_readme_test_generator_py",
- "target": "readme_test_generator_test_date_type_rejects_non_string"
+ "source": "tests_unit_controller_test_state_machine_py",
+ "target": "controller_test_state_machine_test_assert_transition_allows_legal_forward_edge"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/readme/test_generator.py",
- "source_location": "L429",
+ "source_file": "tests/unit/controller/test_state_machine.py",
+ "source_location": "L183",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_readme_test_generator_py",
- "target": "readme_test_generator_test_boolean_type_accepts_bool_rejects_string"
+ "source": "tests_unit_controller_test_state_machine_py",
+ "target": "controller_test_state_machine_test_assert_transition_allows_cancel_from_any_non_terminal"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/readme/test_generator.py",
- "source_location": "L449",
+ "source_file": "tests/unit/controller/test_state_machine.py",
+ "source_location": "L188",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_readme_test_generator_py",
- "target": "readme_test_generator_test_unknown_field_type_raises"
+ "source": "tests_unit_controller_test_state_machine_py",
+ "target": "controller_test_state_machine_test_assert_transition_rejects_skipping_a_state"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/readme/test_generator.py",
- "source_location": "L459",
+ "source_file": "tests/unit/controller/test_state_machine.py",
+ "source_location": "L193",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_readme_test_generator_py",
- "target": "readme_test_generator_test_choice_type_rejects_non_string_value"
+ "source": "tests_unit_controller_test_state_machine_py",
+ "target": "controller_test_state_machine_test_assert_transition_rejects_terminal_to_anything"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/readme/test_generator.py",
- "source_location": "L476",
+ "source_file": "tests/unit/controller/test_state_machine.py",
+ "source_location": "L198",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "tests_unit_controller_test_state_machine_py",
+ "target": "controller_test_state_machine_test_assert_transition_rejects_done_back_to_pipeline"
+ },
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/controller/test_state_machine.py",
+ "source_location": "L203",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "tests_unit_controller_test_state_machine_py",
+ "target": "controller_test_state_machine_test_assert_transition_rejects_backwards_through_pipeline"
+ },
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/controller/test_state_machine.py",
+ "source_location": "L213",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "tests_unit_controller_test_state_machine_py",
+ "target": "controller_test_state_machine_test_session_state_values_match_lowercase_names"
+ },
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/controller/test_state_machine.py",
+ "source_location": "L218",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "tests_unit_controller_test_state_machine_py",
+ "target": "controller_test_state_machine_test_phase_values_use_spec_strings"
+ },
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/controller/test_state_machine.py",
+ "source_location": "L229",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "tests_unit_controller_test_state_machine_py",
+ "target": "controller_test_state_machine_test_valid_transitions_keys_cover_every_session_state"
+ },
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/controller/test_state_machine.py",
+ "source_location": "L233",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "tests_unit_controller_test_state_machine_py",
+ "target": "controller_test_state_machine_test_assert_transition_rejects_unknown_source_state"
+ },
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/controller/test_state_machine.py",
+ "source_location": "L1",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "controller_test_state_machine_rationale_1",
+ "target": "tests_unit_controller_test_state_machine_py"
+ },
+ {
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/controller/test_state_machine.py",
+ "source_location": "L26",
+ "weight": 1.0,
+ "source": "controller_test_state_machine_test_state_to_phase_pending_returns_none",
+ "target": "controller_state_machine_state_to_phase"
+ },
+ {
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/controller/test_state_machine.py",
+ "source_location": "L30",
+ "weight": 1.0,
+ "source": "controller_test_state_machine_test_state_to_phase_validating_returns_validating_inputs",
+ "target": "controller_state_machine_state_to_phase"
+ },
+ {
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/controller/test_state_machine.py",
+ "source_location": "L34",
+ "weight": 1.0,
+ "source": "controller_test_state_machine_test_state_to_phase_rendering_returns_rendering_template",
+ "target": "controller_state_machine_state_to_phase"
+ },
+ {
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/controller/test_state_machine.py",
+ "source_location": "L38",
+ "weight": 1.0,
+ "source": "controller_test_state_machine_test_state_to_phase_plugin_pass_returns_running_plugins",
+ "target": "controller_state_machine_state_to_phase"
+ },
+ {
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/controller/test_state_machine.py",
+ "source_location": "L42",
+ "weight": 1.0,
+ "source": "controller_test_state_machine_test_state_to_phase_input_required_returns_input_required",
+ "target": "controller_state_machine_state_to_phase"
+ },
+ {
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/controller/test_state_machine.py",
+ "source_location": "L46",
+ "weight": 1.0,
+ "source": "controller_test_state_machine_test_state_to_phase_cache_write_returns_writing_cache",
+ "target": "controller_state_machine_state_to_phase"
+ },
+ {
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/controller/test_state_machine.py",
+ "source_location": "L50",
+ "weight": 1.0,
+ "source": "controller_test_state_machine_test_state_to_phase_post_validate_returns_validating_post_creation",
+ "target": "controller_state_machine_state_to_phase"
+ },
+ {
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/controller/test_state_machine.py",
+ "source_location": "L54",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "tests_unit_readme_test_generator_py",
- "target": "readme_test_generator_test_generate_is_idempotent_byte_identical"
+ "source": "controller_test_state_machine_test_state_to_phase_sync_queued_returns_queueing_nas_sync",
+ "target": "controller_state_machine_state_to_phase"
},
{
- "relation": "contains",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/readme/test_generator.py",
- "source_location": "L512",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/controller/test_state_machine.py",
+ "source_location": "L58",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "tests_unit_readme_test_generator_py",
- "target": "readme_test_generator_test_generated_at_uses_z_suffix"
+ "source": "controller_test_state_machine_test_state_to_phase_done_returns_done",
+ "target": "controller_state_machine_state_to_phase"
},
{
- "relation": "contains",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/readme/test_generator.py",
- "source_location": "L520",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/controller/test_state_machine.py",
+ "source_location": "L62",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "tests_unit_readme_test_generator_py",
- "target": "readme_test_generator_test_cache_dir_created_on_demand"
+ "source": "controller_test_state_machine_test_state_to_phase_failed_returns_none",
+ "target": "controller_state_machine_state_to_phase"
},
{
- "relation": "contains",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/readme/test_generator.py",
- "source_location": "L529",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/controller/test_state_machine.py",
+ "source_location": "L66",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "tests_unit_readme_test_generator_py",
- "target": "readme_test_generator_test_value_without_declaration_skips_typecheck"
+ "source": "controller_test_state_machine_test_state_to_phase_aborted_returns_none",
+ "target": "controller_state_machine_state_to_phase"
},
{
- "relation": "contains",
+ "relation": "rationale_for",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/readme/test_generator.py",
- "source_location": "L546",
+ "source_file": "tests/unit/controller/test_state_machine.py",
+ "source_location": "L70",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "tests_unit_readme_test_generator_py",
- "target": "readme_test_generator_test_optional_empty_field_is_skipped"
+ "source": "controller_test_state_machine_rationale_70",
+ "target": "controller_test_state_machine_test_state_to_phase_covers_every_state"
},
{
- "relation": "contains",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/readme/test_generator.py",
- "source_location": "L556",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/controller/test_state_machine.py",
+ "source_location": "L73",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "tests_unit_readme_test_generator_py",
- "target": "readme_test_generator_test_required_field_present_with_none_raises"
+ "source": "controller_test_state_machine_test_state_to_phase_covers_every_state",
+ "target": "controller_state_machine_state_to_phase"
},
{
- "relation": "contains",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/readme/test_generator.py",
- "source_location": "L569",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/controller/test_state_machine.py",
+ "source_location": "L179",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "tests_unit_readme_test_generator_py",
- "target": "readme_test_generator_test_generated_at_uses_z_for_naive_datetime"
+ "source": "controller_test_state_machine_test_assert_transition_allows_legal_forward_edge",
+ "target": "controller_state_machine_assert_transition"
},
{
- "relation": "rationale_for",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/readme/test_generator.py",
- "source_location": "L1",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/controller/test_state_machine.py",
+ "source_location": "L184",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "readme_test_generator_rationale_1",
- "target": "tests_unit_readme_test_generator_py"
+ "source": "controller_test_state_machine_test_assert_transition_allows_cancel_from_any_non_terminal",
+ "target": "controller_state_machine_assert_transition"
},
{
"relation": "calls",
"context": "call",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/readme/test_generator.py",
- "source_location": "L92",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/controller/test_state_machine.py",
+ "source_location": "L190",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "readme_test_generator_ctx",
- "target": "readme_test_generator_system_fields"
+ "source": "controller_test_state_machine_test_assert_transition_rejects_skipping_a_state",
+ "target": "controller_state_machine_assert_transition"
},
{
"relation": "calls",
"context": "call",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/readme/test_generator.py",
- "source_location": "L305",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/controller/test_state_machine.py",
+ "source_location": "L195",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "readme_test_generator_test_project_level_system_run_is_none",
- "target": "readme_test_generator_system_fields"
+ "source": "controller_test_state_machine_test_assert_transition_rejects_terminal_to_anything",
+ "target": "controller_state_machine_assert_transition"
},
{
"relation": "calls",
"context": "call",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/readme/test_generator.py",
- "source_location": "L314",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/controller/test_state_machine.py",
+ "source_location": "L200",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "readme_test_generator_test_run_level_experimental_run_name",
- "target": "readme_test_generator_system_fields"
+ "source": "controller_test_state_machine_test_assert_transition_rejects_done_back_to_pipeline",
+ "target": "controller_state_machine_assert_transition"
},
{
"relation": "calls",
"context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/controller/test_state_machine.py",
+ "source_location": "L205",
+ "weight": 1.0,
+ "source": "controller_test_state_machine_test_assert_transition_rejects_backwards_through_pipeline",
+ "target": "controller_state_machine_assert_transition"
+ },
+ {
+ "relation": "rationale_for",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/readme/test_generator.py",
- "source_location": "L323",
+ "source_file": "tests/unit/controller/test_state_machine.py",
+ "source_location": "L234",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "readme_test_generator_test_run_level_test_run_name",
- "target": "readme_test_generator_system_fields"
+ "source": "controller_test_state_machine_rationale_234",
+ "target": "controller_test_state_machine_test_assert_transition_rejects_unknown_source_state"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "tests/unit/readme/test_generator.py",
- "source_location": "L62",
+ "source_file": "tests/unit/controller/test_state_machine.py",
+ "source_location": "L244",
"weight": 1.0,
- "source": "readme_test_generator_system_fields",
- "target": "readme_generator_systemfields"
+ "source": "controller_test_state_machine_test_assert_transition_rejects_unknown_source_state",
+ "target": "controller_state_machine_assert_transition"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "rationale_for",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/readme/test_generator.py",
- "source_location": "L110",
+ "source_file": "tests/unit/controller/__init__.py",
+ "source_location": "L1",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "readme_test_generator_test_generate_writes_both_files",
- "target": "readme_test_generator_ctx"
+ "source": "controller_init_rationale_1",
+ "target": "tests_unit_controller_init_py"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "rationale_for",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/readme/test_generator.py",
- "source_location": "L121",
+ "source_file": "tests/integration/controller/__init__.py",
+ "source_location": "L1",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "readme_test_generator_test_readme_starts_with_yaml_front_matter",
- "target": "readme_test_generator_ctx"
+ "source": "controller_init_rationale_1",
+ "target": "tests_integration_controller_init_py"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "rationale_for",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/readme/test_generator.py",
- "source_location": "L140",
+ "source_file": "src/exlab_wizard/controller/__init__.py",
+ "source_location": "L1",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "readme_test_generator_test_readme_body_includes_label_and_objective",
- "target": "readme_test_generator_ctx"
+ "source": "controller_init_rationale_1",
+ "target": "src_exlab_wizard_controller_init_py"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/readme/test_generator.py",
- "source_location": "L151",
+ "source_file": "tests/unit/controller/test_session_store.py",
+ "source_location": "L36",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "readme_test_generator_test_readme_fields_json_round_trips",
- "target": "readme_test_generator_ctx"
+ "source": "tests_unit_controller_test_session_store_py",
+ "target": "controller_test_session_store_test_open_returns_fresh_pending_session"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/readme/test_generator.py",
- "source_location": "L197",
+ "source_file": "tests/unit/controller/test_session_store.py",
+ "source_location": "L46",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "readme_test_generator_test_empty_core_field_rejected",
- "target": "readme_test_generator_ctx"
+ "source": "tests_unit_controller_test_session_store_py",
+ "target": "controller_test_session_store_test_open_assigns_uuid4_session_id"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/readme/test_generator.py",
- "source_location": "L204",
+ "source_file": "tests/unit/controller/test_session_store.py",
+ "source_location": "L54",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "readme_test_generator_test_label_over_max_length_rejected",
- "target": "readme_test_generator_ctx"
+ "source": "tests_unit_controller_test_session_store_py",
+ "target": "controller_test_session_store_test_open_two_sessions_get_distinct_ids"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/readme/test_generator.py",
- "source_location": "L213",
+ "source_file": "tests/unit/controller/test_session_store.py",
+ "source_location": "L61",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "readme_test_generator_test_objective_over_max_length_rejected",
- "target": "readme_test_generator_ctx"
+ "source": "tests_unit_controller_test_session_store_py",
+ "target": "controller_test_session_store_test_open_sets_created_at_and_last_heartbeat_to_now"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/readme/test_generator.py",
- "source_location": "L227",
+ "source_file": "tests/unit/controller/test_session_store.py",
+ "source_location": "L75",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "readme_test_generator_test_required_template_field_missing_raises",
- "target": "readme_test_generator_ctx"
+ "source": "tests_unit_controller_test_session_store_py",
+ "target": "controller_test_session_store_test_get_returns_none_for_unknown_session_id"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/readme/test_generator.py",
- "source_location": "L237",
+ "source_file": "tests/unit/controller/test_session_store.py",
+ "source_location": "L80",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "readme_test_generator_test_required_config_field_missing_raises",
- "target": "readme_test_generator_ctx"
+ "source": "tests_unit_controller_test_session_store_py",
+ "target": "controller_test_session_store_test_get_returns_session_after_open"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/readme/test_generator.py",
- "source_location": "L255",
+ "source_file": "tests/unit/controller/test_session_store.py",
+ "source_location": "L87",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "readme_test_generator_test_duplicate_field_id_across_layers_raises",
- "target": "readme_test_generator_ctx"
+ "source": "tests_unit_controller_test_session_store_py",
+ "target": "controller_test_session_store_test_iter_sorted_returns_pairs_oldest_created_first"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/readme/test_generator.py",
- "source_location": "L271",
+ "source_file": "tests/unit/controller/test_session_store.py",
+ "source_location": "L98",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "readme_test_generator_test_custom_field_label_collides_with_template_id",
- "target": "readme_test_generator_ctx"
+ "source": "tests_unit_controller_test_session_store_py",
+ "target": "controller_test_session_store_test_gc_publishes_terminal_frame_to_live_subscriber"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/readme/test_generator.py",
- "source_location": "L286",
+ "source_file": "tests/unit/controller/test_session_store.py",
+ "source_location": "L120",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "readme_test_generator_test_core_field_redeclared_in_template_raises",
- "target": "readme_test_generator_ctx"
+ "source": "tests_unit_controller_test_session_store_py",
+ "target": "controller_test_session_store_test_project_identifier_prefers_short_id_then_falls_back_to_project_name"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/readme/test_generator.py",
- "source_location": "L295",
+ "source_file": "tests/unit/controller/test_session_store.py",
+ "source_location": "L136",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "readme_test_generator_test_core_field_redeclared_in_config_raises",
- "target": "readme_test_generator_ctx"
+ "source": "tests_unit_controller_test_session_store_py",
+ "target": "controller_test_session_store_test_transition_updates_state_and_phase_together"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/readme/test_generator.py",
- "source_location": "L306",
+ "source_file": "tests/unit/controller/test_session_store.py",
+ "source_location": "L144",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "readme_test_generator_test_project_level_system_run_is_none",
- "target": "readme_test_generator_ctx"
+ "source": "tests_unit_controller_test_session_store_py",
+ "target": "controller_test_session_store_test_transition_to_input_required_sets_next_action_awaiting_input"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/readme/test_generator.py",
- "source_location": "L315",
+ "source_file": "tests/unit/controller/test_session_store.py",
+ "source_location": "L154",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "readme_test_generator_test_run_level_experimental_run_name",
- "target": "readme_test_generator_ctx"
+ "source": "tests_unit_controller_test_session_store_py",
+ "target": "controller_test_session_store_test_transition_back_to_plugin_pass_clears_next_action"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/readme/test_generator.py",
- "source_location": "L324",
+ "source_file": "tests/unit/controller/test_session_store.py",
+ "source_location": "L169",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "readme_test_generator_test_run_level_test_run_name",
- "target": "readme_test_generator_ctx"
+ "source": "tests_unit_controller_test_session_store_py",
+ "target": "controller_test_session_store_test_transition_rejects_unknown_session_id"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/readme/test_generator.py",
- "source_location": "L343",
+ "source_file": "tests/unit/controller/test_session_store.py",
+ "source_location": "L175",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "readme_test_generator_test_string_type_accepts_string_rejects_int",
- "target": "readme_test_generator_ctx"
+ "source": "tests_unit_controller_test_session_store_py",
+ "target": "controller_test_session_store_test_transition_rejects_illegal_state_transition"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/readme/test_generator.py",
- "source_location": "L360",
+ "source_file": "tests/unit/controller/test_session_store.py",
+ "source_location": "L187",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "readme_test_generator_test_text_type_accepts_multiline_rejects_list",
- "target": "readme_test_generator_ctx"
+ "source": "tests_unit_controller_test_session_store_py",
+ "target": "controller_test_session_store_test_attach_event_queue_wires_queue_to_session"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/readme/test_generator.py",
- "source_location": "L376",
+ "source_file": "tests/unit/controller/test_session_store.py",
+ "source_location": "L195",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "readme_test_generator_test_choice_type_accepts_listed_rejects_other",
- "target": "readme_test_generator_ctx"
+ "source": "tests_unit_controller_test_session_store_py",
+ "target": "controller_test_session_store_test_attach_event_queue_rejects_unknown_session_id"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/readme/test_generator.py",
- "source_location": "L391",
+ "source_file": "tests/unit/controller/test_session_store.py",
+ "source_location": "L207",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "readme_test_generator_test_choice_without_options_raises",
- "target": "readme_test_generator_ctx"
+ "source": "tests_unit_controller_test_session_store_py",
+ "target": "controller_test_session_store_test_heartbeat_updates_last_heartbeat"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/readme/test_generator.py",
- "source_location": "L402",
+ "source_file": "tests/unit/controller/test_session_store.py",
+ "source_location": "L217",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "readme_test_generator_test_date_type_accepts_iso8601_rejects_garbage",
- "target": "readme_test_generator_ctx"
+ "source": "tests_unit_controller_test_session_store_py",
+ "target": "controller_test_session_store_test_heartbeat_is_noop_for_unknown_session"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/readme/test_generator.py",
- "source_location": "L424",
+ "source_file": "tests/unit/controller/test_session_store.py",
+ "source_location": "L228",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "readme_test_generator_test_date_type_rejects_non_string",
- "target": "readme_test_generator_ctx"
+ "source": "tests_unit_controller_test_session_store_py",
+ "target": "controller_test_session_store_test_abandoned_older_than_returns_only_input_required_sessions"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/readme/test_generator.py",
- "source_location": "L435",
+ "source_file": "tests/unit/controller/test_session_store.py",
+ "source_location": "L250",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "readme_test_generator_test_boolean_type_accepts_bool_rejects_string",
- "target": "readme_test_generator_ctx"
+ "source": "tests_unit_controller_test_session_store_py",
+ "target": "controller_test_session_store_test_abandoned_older_than_skips_recent_input_required_sessions"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/readme/test_generator.py",
- "source_location": "L454",
+ "source_file": "tests/unit/controller/test_session_store.py",
+ "source_location": "L265",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "readme_test_generator_test_unknown_field_type_raises",
- "target": "readme_test_generator_ctx"
+ "source": "tests_unit_controller_test_session_store_py",
+ "target": "controller_test_session_store_test_abandoned_older_than_returns_empty_when_no_sessions_exist"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/readme/test_generator.py",
- "source_location": "L466",
+ "source_file": "tests/unit/controller/test_session_store.py",
+ "source_location": "L275",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "readme_test_generator_test_choice_type_rejects_non_string_value",
- "target": "readme_test_generator_ctx"
+ "source": "tests_unit_controller_test_session_store_py",
+ "target": "controller_test_session_store_test_close_stores_outcome_for_done_session"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/readme/test_generator.py",
- "source_location": "L480",
+ "source_file": "tests/unit/controller/test_session_store.py",
+ "source_location": "L294",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "readme_test_generator_test_generate_is_idempotent_byte_identical",
- "target": "readme_test_generator_ctx"
+ "source": "tests_unit_controller_test_session_store_py",
+ "target": "controller_test_session_store_test_close_stores_outcome_in_error_for_failed_session"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/readme/test_generator.py",
- "source_location": "L513",
+ "source_file": "tests/unit/controller/test_session_store.py",
+ "source_location": "L304",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "readme_test_generator_test_generated_at_uses_z_suffix",
- "target": "readme_test_generator_ctx"
+ "source": "tests_unit_controller_test_session_store_py",
+ "target": "controller_test_session_store_test_close_is_noop_for_unknown_session"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/readme/test_generator.py",
- "source_location": "L523",
+ "source_file": "tests/unit/controller/test_session_store.py",
+ "source_location": "L315",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "readme_test_generator_test_cache_dir_created_on_demand",
- "target": "readme_test_generator_ctx"
+ "source": "tests_unit_controller_test_session_store_py",
+ "target": "controller_test_session_store_test_gc_loop_closes_abandoned_input_required_session"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/readme/test_generator.py",
- "source_location": "L538",
+ "source_file": "tests/unit/controller/test_session_store.py",
+ "source_location": "L339",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "readme_test_generator_test_value_without_declaration_skips_typecheck",
- "target": "readme_test_generator_ctx"
+ "source": "tests_unit_controller_test_session_store_py",
+ "target": "controller_test_session_store_test_gc_loop_periodically_runs_and_can_be_cancelled"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/readme/test_generator.py",
- "source_location": "L551",
+ "source_file": "tests/unit/controller/test_session_store.py",
+ "source_location": "L350",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "readme_test_generator_test_optional_empty_field_is_skipped",
- "target": "readme_test_generator_ctx"
+ "source": "tests_unit_controller_test_session_store_py",
+ "target": "controller_test_session_store_test_gc_loop_skips_non_input_required_sessions"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/readme/test_generator.py",
- "source_location": "L564",
+ "source_file": "tests/unit/controller/test_session_store.py",
+ "source_location": "L366",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "readme_test_generator_test_required_field_present_with_none_raises",
- "target": "readme_test_generator_ctx"
+ "source": "tests_unit_controller_test_session_store_py",
+ "target": "controller_test_session_store_test_session_is_terminal_for_terminal_states"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/readme/test_generator.py",
- "source_location": "L582",
+ "source_file": "tests/unit/controller/test_session_store.py",
+ "source_location": "L382",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "readme_test_generator_test_generated_at_uses_z_for_naive_datetime",
- "target": "readme_test_generator_ctx"
+ "source": "tests_unit_controller_test_session_store_py",
+ "target": "controller_test_session_store_test_session_is_terminal_false_for_non_terminal_states"
},
{
- "relation": "calls",
- "context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/readme/test_generator.py",
- "source_location": "L86",
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/controller/test_session_store.py",
+ "source_location": "L1",
"weight": 1.0,
- "source": "readme_test_generator_ctx",
- "target": "readme_generator_readmecontext"
+ "confidence_score": 1.0,
+ "source": "controller_test_session_store_rationale_1",
+ "target": "tests_unit_controller_test_session_store_py"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "tests/unit/readme/test_generator.py",
- "source_location": "L88",
+ "source_file": "tests/unit/controller/test_session_store.py",
+ "source_location": "L37",
"weight": 1.0,
- "source": "readme_test_generator_ctx",
- "target": "readme_generator_corefields"
+ "source": "controller_test_session_store_test_open_returns_fresh_pending_session",
+ "target": "controller_session_store_sessionstore"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "tests/unit/readme/test_generator.py",
- "source_location": "L100",
+ "source_file": "tests/unit/controller/test_session_store.py",
+ "source_location": "L47",
"weight": 1.0,
- "source": "readme_test_generator_generator",
- "target": "readme_generator_readmegenerator"
+ "source": "controller_test_session_store_test_open_assigns_uuid4_session_id",
+ "target": "controller_session_store_sessionstore"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "tests/unit/readme/test_generator.py",
- "source_location": "L154",
+ "source_file": "tests/unit/controller/test_session_store.py",
+ "source_location": "L55",
"weight": 1.0,
- "source": "readme_test_generator_test_readme_fields_json_round_trips",
- "target": "readme_generator_customfield"
+ "source": "controller_test_session_store_test_open_two_sessions_get_distinct_ids",
+ "target": "controller_session_store_sessionstore"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "tests/unit/readme/test_generator.py",
- "source_location": "L156",
+ "source_file": "tests/unit/controller/test_session_store.py",
+ "source_location": "L62",
"weight": 1.0,
- "source": "readme_test_generator_test_readme_fields_json_round_trips",
- "target": "readme_generator_templatefielddecl"
+ "source": "controller_test_session_store_test_open_sets_created_at_and_last_heartbeat_to_now",
+ "target": "controller_session_store_sessionstore"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "tests/unit/readme/test_generator.py",
- "source_location": "L225",
+ "source_file": "tests/unit/controller/test_session_store.py",
+ "source_location": "L76",
"weight": 1.0,
- "source": "readme_test_generator_test_required_template_field_missing_raises",
- "target": "readme_generator_templatefielddecl"
+ "source": "controller_test_session_store_test_get_returns_none_for_unknown_session_id",
+ "target": "controller_session_store_sessionstore"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "tests/unit/readme/test_generator.py",
- "source_location": "L234",
+ "source_file": "tests/unit/controller/test_session_store.py",
+ "source_location": "L81",
"weight": 1.0,
- "source": "readme_test_generator_test_required_config_field_missing_raises",
- "target": "readme_generator_templatefielddecl"
+ "source": "controller_test_session_store_test_get_returns_session_after_open",
+ "target": "controller_session_store_sessionstore"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "tests/unit/readme/test_generator.py",
- "source_location": "L250",
+ "source_file": "tests/unit/controller/test_session_store.py",
+ "source_location": "L88",
"weight": 1.0,
- "source": "readme_test_generator_test_duplicate_field_id_across_layers_raises",
- "target": "readme_generator_templatefielddecl"
+ "source": "controller_test_session_store_test_iter_sorted_returns_pairs_oldest_created_first",
+ "target": "controller_session_store_sessionstore"
+ },
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/controller/test_session_store.py",
+ "source_location": "L99",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "controller_test_session_store_rationale_99",
+ "target": "controller_test_session_store_test_gc_publishes_terminal_frame_to_live_subscriber"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "tests/unit/readme/test_generator.py",
- "source_location": "L266",
+ "source_file": "tests/unit/controller/test_session_store.py",
+ "source_location": "L105",
"weight": 1.0,
- "source": "readme_test_generator_test_custom_field_label_collides_with_template_id",
- "target": "readme_generator_templatefielddecl"
+ "source": "controller_test_session_store_test_gc_publishes_terminal_frame_to_live_subscriber",
+ "target": "controller_session_store_sessionstore"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "tests/unit/readme/test_generator.py",
- "source_location": "L267",
+ "source_file": "tests/unit/controller/test_session_store.py",
+ "source_location": "L124",
"weight": 1.0,
- "source": "readme_test_generator_test_custom_field_label_collides_with_template_id",
- "target": "readme_generator_customfield"
+ "source": "controller_test_session_store_test_project_identifier_prefers_short_id_then_falls_back_to_project_name",
+ "target": "controller_session_store_project_identifier"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "tests/unit/readme/test_generator.py",
- "source_location": "L284",
+ "source_file": "tests/unit/controller/test_session_store.py",
+ "source_location": "L137",
"weight": 1.0,
- "source": "readme_test_generator_test_core_field_redeclared_in_template_raises",
- "target": "readme_generator_templatefielddecl"
+ "source": "controller_test_session_store_test_transition_updates_state_and_phase_together",
+ "target": "controller_session_store_sessionstore"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "tests/unit/readme/test_generator.py",
- "source_location": "L293",
+ "source_file": "tests/unit/controller/test_session_store.py",
+ "source_location": "L145",
"weight": 1.0,
- "source": "readme_test_generator_test_core_field_redeclared_in_config_raises",
- "target": "readme_generator_templatefielddecl"
+ "source": "controller_test_session_store_test_transition_to_input_required_sets_next_action_awaiting_input",
+ "target": "controller_session_store_sessionstore"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "tests/unit/readme/test_generator.py",
- "source_location": "L339",
+ "source_file": "tests/unit/controller/test_session_store.py",
+ "source_location": "L155",
"weight": 1.0,
- "source": "readme_test_generator_test_string_type_accepts_string_rejects_int",
- "target": "readme_generator_templatefielddecl"
+ "source": "controller_test_session_store_test_transition_back_to_plugin_pass_clears_next_action",
+ "target": "controller_session_store_sessionstore"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "tests/unit/readme/test_generator.py",
- "source_location": "L357",
+ "source_file": "tests/unit/controller/test_session_store.py",
+ "source_location": "L170",
"weight": 1.0,
- "source": "readme_test_generator_test_text_type_accepts_multiline_rejects_list",
- "target": "readme_generator_templatefielddecl"
+ "source": "controller_test_session_store_test_transition_rejects_unknown_session_id",
+ "target": "controller_session_store_sessionstore"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "tests/unit/readme/test_generator.py",
- "source_location": "L373",
+ "source_file": "tests/unit/controller/test_session_store.py",
+ "source_location": "L176",
"weight": 1.0,
- "source": "readme_test_generator_test_choice_type_accepts_listed_rejects_other",
- "target": "readme_generator_templatefielddecl"
+ "source": "controller_test_session_store_test_transition_rejects_illegal_state_transition",
+ "target": "controller_session_store_sessionstore"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "tests/unit/readme/test_generator.py",
- "source_location": "L387",
+ "source_file": "tests/unit/controller/test_session_store.py",
+ "source_location": "L188",
"weight": 1.0,
- "source": "readme_test_generator_test_choice_without_options_raises",
- "target": "readme_generator_templatefielddecl"
+ "source": "controller_test_session_store_test_attach_event_queue_wires_queue_to_session",
+ "target": "controller_session_store_sessionstore"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "tests/unit/readme/test_generator.py",
- "source_location": "L399",
+ "source_file": "tests/unit/controller/test_session_store.py",
+ "source_location": "L196",
"weight": 1.0,
- "source": "readme_test_generator_test_date_type_accepts_iso8601_rejects_garbage",
- "target": "readme_generator_templatefielddecl"
+ "source": "controller_test_session_store_test_attach_event_queue_rejects_unknown_session_id",
+ "target": "controller_session_store_sessionstore"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "tests/unit/readme/test_generator.py",
- "source_location": "L420",
+ "source_file": "tests/unit/controller/test_session_store.py",
+ "source_location": "L208",
"weight": 1.0,
- "source": "readme_test_generator_test_date_type_rejects_non_string",
- "target": "readme_generator_templatefielddecl"
+ "source": "controller_test_session_store_test_heartbeat_updates_last_heartbeat",
+ "target": "controller_session_store_sessionstore"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "tests/unit/readme/test_generator.py",
- "source_location": "L432",
+ "source_file": "tests/unit/controller/test_session_store.py",
+ "source_location": "L218",
"weight": 1.0,
- "source": "readme_test_generator_test_boolean_type_accepts_bool_rejects_string",
- "target": "readme_generator_templatefielddecl"
+ "source": "controller_test_session_store_test_heartbeat_is_noop_for_unknown_session",
+ "target": "controller_session_store_sessionstore"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "tests/unit/readme/test_generator.py",
- "source_location": "L450",
+ "source_file": "tests/unit/controller/test_session_store.py",
+ "source_location": "L229",
"weight": 1.0,
- "source": "readme_test_generator_test_unknown_field_type_raises",
- "target": "readme_generator_templatefielddecl"
+ "source": "controller_test_session_store_test_abandoned_older_than_returns_only_input_required_sessions",
+ "target": "controller_session_store_sessionstore"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "tests/unit/readme/test_generator.py",
- "source_location": "L462",
- "weight": 1.0,
- "source": "readme_test_generator_test_choice_type_rejects_non_string_value",
- "target": "readme_generator_templatefielddecl"
- },
- {
- "relation": "rationale_for",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/readme/test_generator.py",
- "source_location": "L479",
+ "source_file": "tests/unit/controller/test_session_store.py",
+ "source_location": "L251",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "readme_test_generator_rationale_479",
- "target": "readme_test_generator_test_generate_is_idempotent_byte_identical"
+ "source": "controller_test_session_store_test_abandoned_older_than_skips_recent_input_required_sessions",
+ "target": "controller_session_store_sessionstore"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "tests/unit/readme/test_generator.py",
- "source_location": "L483",
+ "source_file": "tests/unit/controller/test_session_store.py",
+ "source_location": "L266",
"weight": 1.0,
- "source": "readme_test_generator_test_generate_is_idempotent_byte_identical",
- "target": "readme_generator_customfield"
+ "source": "controller_test_session_store_test_abandoned_older_than_returns_empty_when_no_sessions_exist",
+ "target": "controller_session_store_sessionstore"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "tests/unit/readme/test_generator.py",
- "source_location": "L485",
- "weight": 1.0,
- "source": "readme_test_generator_test_generate_is_idempotent_byte_identical",
- "target": "readme_generator_templatefielddecl"
- },
- {
- "relation": "rationale_for",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/readme/test_generator.py",
- "source_location": "L532",
+ "source_file": "tests/unit/controller/test_session_store.py",
+ "source_location": "L276",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "readme_test_generator_rationale_532",
- "target": "readme_test_generator_test_value_without_declaration_skips_typecheck"
+ "source": "controller_test_session_store_test_close_stores_outcome_for_done_session",
+ "target": "controller_session_store_sessionstore"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "tests/unit/readme/test_generator.py",
- "source_location": "L535",
- "weight": 1.0,
- "source": "readme_test_generator_test_value_without_declaration_skips_typecheck",
- "target": "readme_generator_templatefielddecl"
- },
- {
- "relation": "rationale_for",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/readme/test_generator.py",
- "source_location": "L547",
+ "source_file": "tests/unit/controller/test_session_store.py",
+ "source_location": "L295",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "readme_test_generator_rationale_547",
- "target": "readme_test_generator_test_optional_empty_field_is_skipped"
+ "source": "controller_test_session_store_test_close_stores_outcome_in_error_for_failed_session",
+ "target": "controller_session_store_sessionstore"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "tests/unit/readme/test_generator.py",
- "source_location": "L548",
+ "source_file": "tests/unit/controller/test_session_store.py",
+ "source_location": "L305",
"weight": 1.0,
- "source": "readme_test_generator_test_optional_empty_field_is_skipped",
- "target": "readme_generator_templatefielddecl"
+ "source": "controller_test_session_store_test_close_is_noop_for_unknown_session",
+ "target": "controller_session_store_sessionstore"
},
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/readme/test_generator.py",
- "source_location": "L559",
+ "source_file": "tests/unit/controller/test_session_store.py",
+ "source_location": "L316",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "readme_test_generator_rationale_559",
- "target": "readme_test_generator_test_required_field_present_with_none_raises"
+ "source": "controller_test_session_store_rationale_316",
+ "target": "controller_test_session_store_test_gc_loop_closes_abandoned_input_required_session"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "tests/unit/readme/test_generator.py",
- "source_location": "L560",
+ "source_file": "tests/unit/controller/test_session_store.py",
+ "source_location": "L317",
"weight": 1.0,
- "source": "readme_test_generator_test_required_field_present_with_none_raises",
- "target": "readme_generator_templatefielddecl"
+ "source": "controller_test_session_store_test_gc_loop_closes_abandoned_input_required_session",
+ "target": "controller_session_store_sessionstore"
},
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/readme/test_generator.py",
- "source_location": "L572",
+ "source_file": "tests/unit/controller/test_session_store.py",
+ "source_location": "L340",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "readme_test_generator_rationale_572",
- "target": "readme_test_generator_test_generated_at_uses_z_for_naive_datetime"
+ "source": "controller_test_session_store_rationale_340",
+ "target": "controller_test_session_store_test_gc_loop_periodically_runs_and_can_be_cancelled"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "tests/unit/readme/test_generator.py",
- "source_location": "L573",
- "weight": 1.0,
- "source": "readme_test_generator_test_generated_at_uses_z_for_naive_datetime",
- "target": "readme_generator_systemfields"
- },
- {
- "relation": "rationale_for",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/readme/__init__.py",
- "source_location": "L1",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "readme_init_rationale_1",
- "target": "tests_unit_readme_init_py"
- },
- {
- "relation": "rationale_for",
- "confidence": "EXTRACTED",
- "source_file": "src/exlab_wizard/readme/__init__.py",
- "source_location": "L1",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "readme_init_rationale_1",
- "target": "src_exlab_wizard_readme_init_py"
- },
- {
- "relation": "contains",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/controller/test_creation_apply_config.py",
- "source_location": "L16",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "tests_unit_controller_test_creation_apply_config_py",
- "target": "controller_test_creation_apply_config_controller"
- },
- {
- "relation": "contains",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/controller/test_creation_apply_config.py",
- "source_location": "L29",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "tests_unit_controller_test_creation_apply_config_py",
- "target": "controller_test_creation_apply_config_test_apply_config_swaps_config"
- },
- {
- "relation": "contains",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/controller/test_creation_apply_config.py",
- "source_location": "L39",
+ "source_file": "tests/unit/controller/test_session_store.py",
+ "source_location": "L341",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "tests_unit_controller_test_creation_apply_config_py",
- "target": "controller_test_creation_apply_config_test_apply_config_reinjects_plugin_host_only_when_given"
+ "source": "controller_test_session_store_test_gc_loop_periodically_runs_and_can_be_cancelled",
+ "target": "controller_session_store_sessionstore"
},
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/controller/test_creation_apply_config.py",
- "source_location": "L1",
+ "source_file": "tests/unit/controller/test_session_store.py",
+ "source_location": "L351",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "controller_test_creation_apply_config_rationale_1",
- "target": "tests_unit_controller_test_creation_apply_config_py"
+ "source": "controller_test_session_store_rationale_351",
+ "target": "controller_test_session_store_test_gc_loop_skips_non_input_required_sessions"
},
{
"relation": "calls",
"context": "call",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/controller/test_creation_apply_config.py",
- "source_location": "L31",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/controller/test_session_store.py",
+ "source_location": "L352",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "controller_test_creation_apply_config_test_apply_config_swaps_config",
- "target": "controller_test_creation_apply_config_controller"
+ "source": "controller_test_session_store_test_gc_loop_skips_non_input_required_sessions",
+ "target": "controller_session_store_sessionstore"
},
{
"relation": "calls",
"context": "call",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/controller/test_creation_apply_config.py",
- "source_location": "L40",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/controller/test_session_store.py",
+ "source_location": "L367",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "controller_test_creation_apply_config_test_apply_config_reinjects_plugin_host_only_when_given",
- "target": "controller_test_creation_apply_config_controller"
+ "source": "controller_test_session_store_test_session_is_terminal_for_terminal_states",
+ "target": "controller_session_store_session"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "tests/unit/controller/test_creation_apply_config.py",
- "source_location": "L19",
- "weight": 1.0,
- "source": "controller_test_creation_apply_config_controller",
- "target": "controller_creation_creationcontroller"
- },
- {
- "relation": "contains",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/controller/test_state_machine.py",
- "source_location": "L25",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "tests_unit_controller_test_state_machine_py",
- "target": "controller_test_state_machine_test_state_to_phase_pending_returns_none"
- },
- {
- "relation": "contains",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/controller/test_state_machine.py",
- "source_location": "L29",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "tests_unit_controller_test_state_machine_py",
- "target": "controller_test_state_machine_test_state_to_phase_validating_returns_validating_inputs"
- },
- {
- "relation": "contains",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/controller/test_state_machine.py",
- "source_location": "L33",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "tests_unit_controller_test_state_machine_py",
- "target": "controller_test_state_machine_test_state_to_phase_rendering_returns_rendering_template"
- },
- {
- "relation": "contains",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/controller/test_state_machine.py",
- "source_location": "L37",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "tests_unit_controller_test_state_machine_py",
- "target": "controller_test_state_machine_test_state_to_phase_plugin_pass_returns_running_plugins"
- },
- {
- "relation": "contains",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/controller/test_state_machine.py",
- "source_location": "L41",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "tests_unit_controller_test_state_machine_py",
- "target": "controller_test_state_machine_test_state_to_phase_input_required_returns_input_required"
- },
- {
- "relation": "contains",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/controller/test_state_machine.py",
- "source_location": "L45",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "tests_unit_controller_test_state_machine_py",
- "target": "controller_test_state_machine_test_state_to_phase_cache_write_returns_writing_cache"
- },
- {
- "relation": "contains",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/controller/test_state_machine.py",
- "source_location": "L49",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "tests_unit_controller_test_state_machine_py",
- "target": "controller_test_state_machine_test_state_to_phase_post_validate_returns_validating_post_creation"
- },
- {
- "relation": "contains",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/controller/test_state_machine.py",
- "source_location": "L53",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "tests_unit_controller_test_state_machine_py",
- "target": "controller_test_state_machine_test_state_to_phase_sync_queued_returns_queueing_nas_sync"
- },
- {
- "relation": "contains",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/controller/test_state_machine.py",
- "source_location": "L57",
+ "source_file": "tests/unit/controller/test_session_store.py",
+ "source_location": "L383",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "tests_unit_controller_test_state_machine_py",
- "target": "controller_test_state_machine_test_state_to_phase_done_returns_done"
+ "source": "controller_test_session_store_test_session_is_terminal_false_for_non_terminal_states",
+ "target": "controller_session_store_session"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/controller/test_state_machine.py",
- "source_location": "L61",
+ "source_file": "tests/unit/sample_data/test_generator.py",
+ "source_location": "L48",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "tests_unit_controller_test_state_machine_py",
- "target": "controller_test_state_machine_test_state_to_phase_failed_returns_none"
+ "source": "tests_unit_sample_data_test_generator_py",
+ "target": "sample_data_test_generator_sandbox",
+ "confidence_score": 1.0
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/controller/test_state_machine.py",
- "source_location": "L65",
+ "source_file": "tests/unit/sample_data/test_generator.py",
+ "source_location": "L69",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "tests_unit_controller_test_state_machine_py",
- "target": "controller_test_state_machine_test_state_to_phase_aborted_returns_none"
+ "source": "tests_unit_sample_data_test_generator_py",
+ "target": "sample_data_test_generator_read_creation",
+ "confidence_score": 1.0
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/controller/test_state_machine.py",
- "source_location": "L69",
+ "source_file": "tests/unit/sample_data/test_generator.py",
+ "source_location": "L74",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "tests_unit_controller_test_state_machine_py",
- "target": "controller_test_state_machine_test_state_to_phase_covers_every_state"
+ "source": "tests_unit_sample_data_test_generator_py",
+ "target": "sample_data_test_generator_read_readme_fields",
+ "confidence_score": 1.0
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/controller/test_state_machine.py",
- "source_location": "L82",
+ "source_file": "tests/unit/sample_data/test_generator.py",
+ "source_location": "L79",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "tests_unit_controller_test_state_machine_py",
- "target": "controller_test_state_machine_test_pending_transitions_to_validating"
+ "source": "tests_unit_sample_data_test_generator_py",
+ "target": "sample_data_test_generator_read_front_matter",
+ "confidence_score": 1.0
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/controller/test_state_machine.py",
+ "source_file": "tests/unit/sample_data/test_generator.py",
"source_location": "L86",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "tests_unit_controller_test_state_machine_py",
- "target": "controller_test_state_machine_test_validating_transitions_to_rendering"
+ "source": "tests_unit_sample_data_test_generator_py",
+ "target": "sample_data_test_generator_read_label",
+ "confidence_score": 1.0
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/controller/test_state_machine.py",
- "source_location": "L90",
+ "source_file": "tests/unit/sample_data/test_generator.py",
+ "source_location": "L91",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "tests_unit_controller_test_state_machine_py",
- "target": "controller_test_state_machine_test_rendering_transitions_to_plugin_pass"
+ "source": "tests_unit_sample_data_test_generator_py",
+ "target": "sample_data_test_generator_project_dirs",
+ "confidence_score": 1.0
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/controller/test_state_machine.py",
- "source_location": "L94",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "tests_unit_controller_test_state_machine_py",
- "target": "controller_test_state_machine_test_plugin_pass_transitions_to_input_required_and_cache_write"
+ "source_file": "tests/unit/sample_data/test_generator.py",
+ "source_location": "L107",
+ "weight": 1.0,
+ "source": "tests_unit_sample_data_test_generator_py",
+ "target": "sample_data_test_generator_run_dirs",
+ "confidence_score": 1.0
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/controller/test_state_machine.py",
- "source_location": "L100",
+ "source_file": "tests/unit/sample_data/test_generator.py",
+ "source_location": "L121",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "tests_unit_controller_test_state_machine_py",
- "target": "controller_test_state_machine_test_input_required_transitions_back_to_plugin_pass"
+ "source": "tests_unit_sample_data_test_generator_py",
+ "target": "sample_data_test_generator_test_full_tree_exists",
+ "confidence_score": 1.0
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/controller/test_state_machine.py",
- "source_location": "L104",
+ "source_file": "tests/unit/sample_data/test_generator.py",
+ "source_location": "L146",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "tests_unit_controller_test_state_machine_py",
- "target": "controller_test_state_machine_test_cache_write_transitions_to_post_validate"
+ "source": "tests_unit_sample_data_test_generator_py",
+ "target": "sample_data_test_generator_test_every_folder_has_metadata",
+ "confidence_score": 1.0
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/controller/test_state_machine.py",
- "source_location": "L108",
+ "source_file": "tests/unit/sample_data/test_generator.py",
+ "source_location": "L176",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "tests_unit_controller_test_state_machine_py",
- "target": "controller_test_state_machine_test_post_validate_transitions_to_sync_queued"
+ "source": "tests_unit_sample_data_test_generator_py",
+ "target": "sample_data_test_generator_test_test_runs_marker_present_for_test_projects",
+ "confidence_score": 1.0
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/controller/test_state_machine.py",
- "source_location": "L112",
+ "source_file": "tests/unit/sample_data/test_generator.py",
+ "source_location": "L198",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "tests_unit_controller_test_state_machine_py",
- "target": "controller_test_state_machine_test_sync_queued_transitions_to_done"
+ "source": "tests_unit_sample_data_test_generator_py",
+ "target": "sample_data_test_generator_test_sync_status_spread",
+ "confidence_score": 1.0
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/controller/test_state_machine.py",
- "source_location": "L134",
+ "source_file": "tests/unit/sample_data/test_generator.py",
+ "source_location": "L216",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "tests_unit_controller_test_state_machine_py",
- "target": "controller_test_state_machine_test_fail_allowed_from_every_non_terminal_state"
+ "source": "tests_unit_sample_data_test_generator_py",
+ "target": "sample_data_test_generator_test_each_run_sync_status_matches_sample",
+ "confidence_score": 1.0
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/controller/test_state_machine.py",
- "source_location": "L151",
+ "source_file": "tests/unit/sample_data/test_generator.py",
+ "source_location": "L240",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "tests_unit_controller_test_state_machine_py",
- "target": "controller_test_state_machine_test_aborted_allowed_from_every_non_terminal_state"
+ "source": "tests_unit_sample_data_test_generator_py",
+ "target": "sample_data_test_generator_test_default_payload_pair",
+ "confidence_score": 1.0
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/controller/test_state_machine.py",
- "source_location": "L160",
+ "source_file": "tests/unit/sample_data/test_generator.py",
+ "source_location": "L256",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "tests_unit_controller_test_state_machine_py",
- "target": "controller_test_state_machine_test_done_is_terminal"
+ "source": "tests_unit_sample_data_test_generator_py",
+ "target": "sample_data_test_generator_test_blocked_run_carries_trigger_file",
+ "confidence_score": 1.0
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/controller/test_state_machine.py",
- "source_location": "L164",
+ "source_file": "tests/unit/sample_data/test_generator.py",
+ "source_location": "L284",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "tests_unit_controller_test_state_machine_py",
- "target": "controller_test_state_machine_test_failed_is_terminal"
+ "source": "tests_unit_sample_data_test_generator_py",
+ "target": "sample_data_test_generator_test_readme_field_layering",
+ "confidence_score": 1.0
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/controller/test_state_machine.py",
- "source_location": "L168",
+ "source_file": "tests/unit/sample_data/test_generator.py",
+ "source_location": "L307",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "tests_unit_controller_test_state_machine_py",
- "target": "controller_test_state_machine_test_aborted_is_terminal"
+ "source": "tests_unit_sample_data_test_generator_py",
+ "target": "sample_data_test_generator_test_seeded_config_default_is_present_and_optional",
+ "confidence_score": 1.0
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/controller/test_state_machine.py",
- "source_location": "L177",
+ "source_file": "tests/unit/sample_data/test_generator.py",
+ "source_location": "L325",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "tests_unit_controller_test_state_machine_py",
- "target": "controller_test_state_machine_test_assert_transition_allows_legal_forward_edge"
+ "source": "tests_unit_sample_data_test_generator_py",
+ "target": "sample_data_test_generator_snapshot",
+ "confidence_score": 1.0
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/controller/test_state_machine.py",
- "source_location": "L183",
+ "source_file": "tests/unit/sample_data/test_generator.py",
+ "source_location": "L339",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "tests_unit_controller_test_state_machine_py",
- "target": "controller_test_state_machine_test_assert_transition_allows_cancel_from_any_non_terminal"
+ "source": "tests_unit_sample_data_test_generator_py",
+ "target": "sample_data_test_generator_test_determinism",
+ "confidence_score": 1.0
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/controller/test_state_machine.py",
- "source_location": "L188",
+ "source_file": "tests/unit/sample_data/test_generator.py",
+ "source_location": "L354",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "tests_unit_controller_test_state_machine_py",
- "target": "controller_test_state_machine_test_assert_transition_rejects_skipping_a_state"
+ "source": "tests_unit_sample_data_test_generator_py",
+ "target": "sample_data_test_generator_test_equipment_json_normalized_is_deterministic",
+ "confidence_score": 1.0
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/controller/test_state_machine.py",
- "source_location": "L193",
+ "source_file": "tests/unit/sample_data/test_generator.py",
+ "source_location": "L383",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "tests_unit_controller_test_state_machine_py",
- "target": "controller_test_state_machine_test_assert_transition_rejects_terminal_to_anything"
+ "source": "tests_unit_sample_data_test_generator_py",
+ "target": "sample_data_test_generator_test_wipe_refuses_when_test_mode_unset",
+ "confidence_score": 1.0
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/controller/test_state_machine.py",
- "source_location": "L198",
+ "source_file": "tests/unit/sample_data/test_generator.py",
+ "source_location": "L389",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "tests_unit_controller_test_state_machine_py",
- "target": "controller_test_state_machine_test_assert_transition_rejects_done_back_to_pipeline"
+ "source": "tests_unit_sample_data_test_generator_py",
+ "target": "sample_data_test_generator_test_wipe_refuses_when_app_name_not_test",
+ "confidence_score": 1.0
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/controller/test_state_machine.py",
- "source_location": "L203",
+ "source_file": "tests/unit/sample_data/test_generator.py",
+ "source_location": "L399",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "tests_unit_controller_test_state_machine_py",
- "target": "controller_test_state_machine_test_assert_transition_rejects_backwards_through_pipeline"
+ "source": "tests_unit_sample_data_test_generator_py",
+ "target": "sample_data_test_generator_test_wipe_refuses_when_target_escapes_sandbox",
+ "confidence_score": 1.0
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/controller/test_state_machine.py",
- "source_location": "L213",
+ "source_file": "tests/unit/sample_data/test_generator.py",
+ "source_location": "L419",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "tests_unit_controller_test_state_machine_py",
- "target": "controller_test_state_machine_test_session_state_values_match_lowercase_names"
+ "source": "tests_unit_sample_data_test_generator_py",
+ "target": "sample_data_test_generator_test_wipe_refuses_symlinked_target_escaping_sandbox",
+ "confidence_score": 1.0
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/controller/test_state_machine.py",
- "source_location": "L218",
+ "source_file": "tests/unit/sample_data/test_generator.py",
+ "source_location": "L444",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "tests_unit_controller_test_state_machine_py",
- "target": "controller_test_state_machine_test_phase_values_use_spec_strings"
+ "source": "tests_unit_sample_data_test_generator_py",
+ "target": "sample_data_test_generator_test_seeded_equipment_roots_are_base_paths",
+ "confidence_score": 1.0
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/controller/test_state_machine.py",
- "source_location": "L229",
+ "source_file": "tests/unit/sample_data/test_generator.py",
+ "source_location": "L472",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "tests_unit_controller_test_state_machine_py",
- "target": "controller_test_state_machine_test_valid_transitions_keys_cover_every_session_state"
+ "source": "tests_unit_sample_data_test_generator_py",
+ "target": "sample_data_test_generator_test_no_wipe_is_idempotent_and_nondestructive",
+ "confidence_score": 1.0
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/controller/test_state_machine.py",
- "source_location": "L233",
+ "source_file": "tests/unit/sample_data/test_generator.py",
+ "source_location": "L487",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "tests_unit_controller_test_state_machine_py",
- "target": "controller_test_state_machine_test_assert_transition_rejects_unknown_source_state"
+ "source": "tests_unit_sample_data_test_generator_py",
+ "target": "sample_data_test_generator_test_generator_class_is_constructable",
+ "confidence_score": 1.0
},
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/controller/test_state_machine.py",
+ "source_file": "tests/unit/sample_data/test_generator.py",
"source_location": "L1",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "controller_test_state_machine_rationale_1",
- "target": "tests_unit_controller_test_state_machine_py"
+ "source": "sample_data_test_generator_rationale_1",
+ "target": "tests_unit_sample_data_test_generator_py",
+ "confidence_score": 1.0
},
{
- "relation": "calls",
- "context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/controller/test_state_machine.py",
- "source_location": "L26",
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/sample_data/test_generator.py",
+ "source_location": "L49",
"weight": 1.0,
- "source": "controller_test_state_machine_test_state_to_phase_pending_returns_none",
- "target": "controller_state_machine_state_to_phase"
+ "source": "sample_data_test_generator_rationale_49",
+ "target": "sample_data_test_generator_sandbox",
+ "confidence_score": 1.0
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "tests/unit/controller/test_state_machine.py",
- "source_location": "L30",
+ "source_file": "tests/unit/sample_data/test_generator.py",
+ "source_location": "L58",
"weight": 1.0,
- "source": "controller_test_state_machine_test_state_to_phase_validating_returns_validating_inputs",
- "target": "controller_state_machine_state_to_phase"
+ "source": "sample_data_test_generator_sandbox",
+ "target": "config_models_pathsconfig"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "tests/unit/controller/test_state_machine.py",
- "source_location": "L34",
+ "source_file": "tests/unit/sample_data/test_generator.py",
+ "source_location": "L63",
"weight": 1.0,
- "source": "controller_test_state_machine_test_state_to_phase_rendering_returns_rendering_template",
- "target": "controller_state_machine_state_to_phase"
+ "source": "sample_data_test_generator_sandbox",
+ "target": "config_models_orchestratorconfig"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "tests/unit/controller/test_state_machine.py",
- "source_location": "L38",
+ "source_file": "tests/unit/sample_data/test_generator.py",
+ "source_location": "L65",
"weight": 1.0,
- "source": "controller_test_state_machine_test_state_to_phase_plugin_pass_returns_running_plugins",
- "target": "controller_state_machine_state_to_phase"
+ "source": "sample_data_test_generator_sandbox",
+ "target": "config_loader_save_config"
},
{
"relation": "calls",
"context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/controller/test_state_machine.py",
- "source_location": "L42",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/sample_data/test_generator.py",
+ "source_location": "L159",
"weight": 1.0,
- "source": "controller_test_state_machine_test_state_to_phase_input_required_returns_input_required",
- "target": "controller_state_machine_state_to_phase"
+ "source": "sample_data_test_generator_test_every_folder_has_metadata",
+ "target": "sample_data_test_generator_read_creation",
+ "confidence_score": 1.0
},
{
"relation": "calls",
"context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/controller/test_state_machine.py",
- "source_location": "L46",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/sample_data/test_generator.py",
+ "source_location": "L206",
"weight": 1.0,
- "source": "controller_test_state_machine_test_state_to_phase_cache_write_returns_writing_cache",
- "target": "controller_state_machine_state_to_phase"
+ "source": "sample_data_test_generator_test_sync_status_spread",
+ "target": "sample_data_test_generator_read_creation",
+ "confidence_score": 1.0
},
{
"relation": "calls",
"context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/controller/test_state_machine.py",
- "source_location": "L50",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/sample_data/test_generator.py",
+ "source_location": "L230",
"weight": 1.0,
- "source": "controller_test_state_machine_test_state_to_phase_post_validate_returns_validating_post_creation",
- "target": "controller_state_machine_state_to_phase"
+ "source": "sample_data_test_generator_test_each_run_sync_status_matches_sample",
+ "target": "sample_data_test_generator_read_creation",
+ "confidence_score": 1.0
},
{
"relation": "calls",
"context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/controller/test_state_machine.py",
- "source_location": "L54",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/sample_data/test_generator.py",
+ "source_location": "L266",
"weight": 1.0,
- "source": "controller_test_state_machine_test_state_to_phase_sync_queued_returns_queueing_nas_sync",
- "target": "controller_state_machine_state_to_phase"
+ "source": "sample_data_test_generator_test_blocked_run_carries_trigger_file",
+ "target": "sample_data_test_generator_read_creation",
+ "confidence_score": 1.0
},
{
"relation": "calls",
"context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/controller/test_state_machine.py",
- "source_location": "L58",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/sample_data/test_generator.py",
+ "source_location": "L466",
"weight": 1.0,
- "source": "controller_test_state_machine_test_state_to_phase_done_returns_done",
- "target": "controller_state_machine_state_to_phase"
+ "source": "sample_data_test_generator_test_seeded_equipment_roots_are_base_paths",
+ "target": "sample_data_test_generator_read_creation",
+ "confidence_score": 1.0
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "tests/unit/controller/test_state_machine.py",
- "source_location": "L62",
+ "source_file": "tests/unit/sample_data/test_generator.py",
+ "source_location": "L70",
"weight": 1.0,
- "source": "controller_test_state_machine_test_state_to_phase_failed_returns_none",
- "target": "controller_state_machine_state_to_phase"
+ "source": "sample_data_test_generator_read_creation",
+ "target": "exlab_wizard_paths_creation_json_path"
},
{
"relation": "calls",
"context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/controller/test_state_machine.py",
- "source_location": "L66",
- "weight": 1.0,
- "source": "controller_test_state_machine_test_state_to_phase_aborted_returns_none",
- "target": "controller_state_machine_state_to_phase"
- },
- {
- "relation": "rationale_for",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/controller/test_state_machine.py",
- "source_location": "L70",
+ "source_file": "tests/unit/sample_data/test_generator.py",
+ "source_location": "L161",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "controller_test_state_machine_rationale_70",
- "target": "controller_test_state_machine_test_state_to_phase_covers_every_state"
+ "source": "sample_data_test_generator_test_every_folder_has_metadata",
+ "target": "sample_data_test_generator_read_readme_fields",
+ "confidence_score": 1.0
},
{
"relation": "calls",
"context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/controller/test_state_machine.py",
- "source_location": "L73",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/sample_data/test_generator.py",
+ "source_location": "L299",
"weight": 1.0,
- "source": "controller_test_state_machine_test_state_to_phase_covers_every_state",
- "target": "controller_state_machine_state_to_phase"
+ "source": "sample_data_test_generator_test_readme_field_layering",
+ "target": "sample_data_test_generator_read_readme_fields",
+ "confidence_score": 1.0
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "tests/unit/controller/test_state_machine.py",
- "source_location": "L179",
+ "source_file": "tests/unit/sample_data/test_generator.py",
+ "source_location": "L75",
"weight": 1.0,
- "source": "controller_test_state_machine_test_assert_transition_allows_legal_forward_edge",
- "target": "controller_state_machine_assert_transition"
+ "source": "sample_data_test_generator_read_readme_fields",
+ "target": "exlab_wizard_paths_readme_fields_json_path"
},
{
"relation": "calls",
"context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/controller/test_state_machine.py",
- "source_location": "L184",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/sample_data/test_generator.py",
+ "source_location": "L88",
"weight": 1.0,
- "source": "controller_test_state_machine_test_assert_transition_allows_cancel_from_any_non_terminal",
- "target": "controller_state_machine_assert_transition"
+ "source": "sample_data_test_generator_read_label",
+ "target": "sample_data_test_generator_read_front_matter",
+ "confidence_score": 1.0
},
{
"relation": "calls",
"context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/controller/test_state_machine.py",
- "source_location": "L190",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/sample_data/test_generator.py",
+ "source_location": "L163",
"weight": 1.0,
- "source": "controller_test_state_machine_test_assert_transition_rejects_skipping_a_state",
- "target": "controller_state_machine_assert_transition"
+ "source": "sample_data_test_generator_test_every_folder_has_metadata",
+ "target": "sample_data_test_generator_read_front_matter",
+ "confidence_score": 1.0
},
{
"relation": "calls",
"context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/controller/test_state_machine.py",
- "source_location": "L195",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/sample_data/test_generator.py",
+ "source_location": "L231",
"weight": 1.0,
- "source": "controller_test_state_machine_test_assert_transition_rejects_terminal_to_anything",
- "target": "controller_state_machine_assert_transition"
+ "source": "sample_data_test_generator_test_each_run_sync_status_matches_sample",
+ "target": "sample_data_test_generator_read_label",
+ "confidence_score": 1.0
},
{
"relation": "calls",
"context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/controller/test_state_machine.py",
- "source_location": "L200",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/sample_data/test_generator.py",
+ "source_location": "L249",
"weight": 1.0,
- "source": "controller_test_state_machine_test_assert_transition_rejects_done_back_to_pipeline",
- "target": "controller_state_machine_assert_transition"
+ "source": "sample_data_test_generator_test_default_payload_pair",
+ "target": "sample_data_test_generator_read_label",
+ "confidence_score": 1.0
},
{
"relation": "calls",
"context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/controller/test_state_machine.py",
- "source_location": "L205",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/sample_data/test_generator.py",
+ "source_location": "L295",
"weight": 1.0,
- "source": "controller_test_state_machine_test_assert_transition_rejects_backwards_through_pipeline",
- "target": "controller_state_machine_assert_transition"
+ "source": "sample_data_test_generator_test_readme_field_layering",
+ "target": "sample_data_test_generator_read_label",
+ "confidence_score": 1.0
},
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/controller/test_state_machine.py",
- "source_location": "L234",
+ "source_file": "tests/unit/sample_data/test_generator.py",
+ "source_location": "L87",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "controller_test_state_machine_rationale_234",
- "target": "controller_test_state_machine_test_assert_transition_rejects_unknown_source_state"
+ "source": "sample_data_test_generator_rationale_87",
+ "target": "sample_data_test_generator_read_label",
+ "confidence_score": 1.0
},
{
"relation": "calls",
"context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/controller/test_state_machine.py",
- "source_location": "L244",
- "weight": 1.0,
- "source": "controller_test_state_machine_test_assert_transition_rejects_unknown_source_state",
- "target": "controller_state_machine_assert_transition"
- },
- {
- "relation": "rationale_for",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/controller/__init__.py",
- "source_location": "L1",
+ "source_file": "tests/unit/sample_data/test_generator.py",
+ "source_location": "L131",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "controller_init_rationale_1",
- "target": "tests_unit_controller_init_py"
+ "source": "sample_data_test_generator_test_full_tree_exists",
+ "target": "sample_data_test_generator_project_dirs",
+ "confidence_score": 1.0
},
{
- "relation": "rationale_for",
+ "relation": "calls",
+ "context": "call",
"confidence": "EXTRACTED",
- "source_file": "tests/integration/controller/__init__.py",
- "source_location": "L1",
+ "source_file": "tests/unit/sample_data/test_generator.py",
+ "source_location": "L151",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "controller_init_rationale_1",
- "target": "tests_integration_controller_init_py"
+ "source": "sample_data_test_generator_test_every_folder_has_metadata",
+ "target": "sample_data_test_generator_project_dirs",
+ "confidence_score": 1.0
},
{
- "relation": "rationale_for",
+ "relation": "calls",
+ "context": "call",
"confidence": "EXTRACTED",
- "source_file": "src/exlab_wizard/controller/__init__.py",
- "source_location": "L1",
+ "source_file": "tests/unit/sample_data/test_generator.py",
+ "source_location": "L181",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "controller_init_rationale_1",
- "target": "src_exlab_wizard_controller_init_py"
+ "source": "sample_data_test_generator_test_test_runs_marker_present_for_test_projects",
+ "target": "sample_data_test_generator_project_dirs",
+ "confidence_score": 1.0
},
{
- "relation": "contains",
+ "relation": "calls",
+ "context": "call",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/controller/test_session_store.py",
- "source_location": "L36",
+ "source_file": "tests/unit/sample_data/test_generator.py",
+ "source_location": "L204",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "tests_unit_controller_test_session_store_py",
- "target": "controller_test_session_store_test_open_returns_fresh_pending_session"
+ "source": "sample_data_test_generator_test_sync_status_spread",
+ "target": "sample_data_test_generator_project_dirs",
+ "confidence_score": 1.0
},
{
- "relation": "contains",
+ "relation": "calls",
+ "context": "call",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/controller/test_session_store.py",
- "source_location": "L46",
+ "source_file": "tests/unit/sample_data/test_generator.py",
+ "source_location": "L228",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "tests_unit_controller_test_session_store_py",
- "target": "controller_test_session_store_test_open_assigns_uuid4_session_id"
+ "source": "sample_data_test_generator_test_each_run_sync_status_matches_sample",
+ "target": "sample_data_test_generator_project_dirs",
+ "confidence_score": 1.0
},
{
- "relation": "contains",
+ "relation": "calls",
+ "context": "call",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/controller/test_session_store.py",
- "source_location": "L54",
+ "source_file": "tests/unit/sample_data/test_generator.py",
+ "source_location": "L247",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "tests_unit_controller_test_session_store_py",
- "target": "controller_test_session_store_test_open_two_sessions_get_distinct_ids"
+ "source": "sample_data_test_generator_test_default_payload_pair",
+ "target": "sample_data_test_generator_project_dirs",
+ "confidence_score": 1.0
},
{
- "relation": "contains",
+ "relation": "calls",
+ "context": "call",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/controller/test_session_store.py",
- "source_location": "L61",
+ "source_file": "tests/unit/sample_data/test_generator.py",
+ "source_location": "L262",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "tests_unit_controller_test_session_store_py",
- "target": "controller_test_session_store_test_open_sets_created_at_and_last_heartbeat_to_now"
+ "source": "sample_data_test_generator_test_blocked_run_carries_trigger_file",
+ "target": "sample_data_test_generator_project_dirs",
+ "confidence_score": 1.0
},
{
- "relation": "contains",
+ "relation": "calls",
+ "context": "call",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/controller/test_session_store.py",
- "source_location": "L75",
+ "source_file": "tests/unit/sample_data/test_generator.py",
+ "source_location": "L291",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "tests_unit_controller_test_session_store_py",
- "target": "controller_test_session_store_test_get_returns_none_for_unknown_session_id"
+ "source": "sample_data_test_generator_test_readme_field_layering",
+ "target": "sample_data_test_generator_project_dirs",
+ "confidence_score": 1.0
},
{
- "relation": "contains",
+ "relation": "calls",
+ "context": "call",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/controller/test_session_store.py",
- "source_location": "L80",
+ "source_file": "tests/unit/sample_data/test_generator.py",
+ "source_location": "L464",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "tests_unit_controller_test_session_store_py",
- "target": "controller_test_session_store_test_get_returns_session_after_open"
+ "source": "sample_data_test_generator_test_seeded_equipment_roots_are_base_paths",
+ "target": "sample_data_test_generator_project_dirs",
+ "confidence_score": 1.0
},
{
- "relation": "contains",
+ "relation": "rationale_for",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/controller/test_session_store.py",
- "source_location": "L87",
+ "source_file": "tests/unit/sample_data/test_generator.py",
+ "source_location": "L92",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "tests_unit_controller_test_session_store_py",
- "target": "controller_test_session_store_test_iter_sorted_returns_pairs_oldest_created_first"
+ "source": "sample_data_test_generator_rationale_92",
+ "target": "sample_data_test_generator_project_dirs",
+ "confidence_score": 1.0
},
{
- "relation": "contains",
+ "relation": "calls",
+ "context": "call",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/controller/test_session_store.py",
- "source_location": "L98",
+ "source_file": "tests/unit/sample_data/test_generator.py",
+ "source_location": "L135",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "tests_unit_controller_test_session_store_py",
- "target": "controller_test_session_store_test_gc_publishes_terminal_frame_to_live_subscriber"
+ "source": "sample_data_test_generator_test_full_tree_exists",
+ "target": "sample_data_test_generator_run_dirs",
+ "confidence_score": 1.0
},
{
- "relation": "contains",
+ "relation": "calls",
+ "context": "call",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/controller/test_session_store.py",
- "source_location": "L120",
+ "source_file": "tests/unit/sample_data/test_generator.py",
+ "source_location": "L154",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "tests_unit_controller_test_session_store_py",
- "target": "controller_test_session_store_test_project_identifier_prefers_short_id_then_falls_back_to_project_name"
+ "source": "sample_data_test_generator_test_every_folder_has_metadata",
+ "target": "sample_data_test_generator_run_dirs",
+ "confidence_score": 1.0
},
{
- "relation": "contains",
+ "relation": "calls",
+ "context": "call",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/controller/test_session_store.py",
- "source_location": "L136",
+ "source_file": "tests/unit/sample_data/test_generator.py",
+ "source_location": "L205",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "tests_unit_controller_test_session_store_py",
- "target": "controller_test_session_store_test_transition_updates_state_and_phase_together"
+ "source": "sample_data_test_generator_test_sync_status_spread",
+ "target": "sample_data_test_generator_run_dirs",
+ "confidence_score": 1.0
},
{
- "relation": "contains",
+ "relation": "calls",
+ "context": "call",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/controller/test_session_store.py",
- "source_location": "L144",
+ "source_file": "tests/unit/sample_data/test_generator.py",
+ "source_location": "L229",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "tests_unit_controller_test_session_store_py",
- "target": "controller_test_session_store_test_transition_to_input_required_sets_next_action_awaiting_input"
+ "source": "sample_data_test_generator_test_each_run_sync_status_matches_sample",
+ "target": "sample_data_test_generator_run_dirs",
+ "confidence_score": 1.0
},
{
- "relation": "contains",
+ "relation": "calls",
+ "context": "call",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/controller/test_session_store.py",
- "source_location": "L154",
+ "source_file": "tests/unit/sample_data/test_generator.py",
+ "source_location": "L248",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "tests_unit_controller_test_session_store_py",
- "target": "controller_test_session_store_test_transition_back_to_plugin_pass_clears_next_action"
+ "source": "sample_data_test_generator_test_default_payload_pair",
+ "target": "sample_data_test_generator_run_dirs",
+ "confidence_score": 1.0
},
{
- "relation": "contains",
+ "relation": "calls",
+ "context": "call",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/controller/test_session_store.py",
- "source_location": "L169",
+ "source_file": "tests/unit/sample_data/test_generator.py",
+ "source_location": "L265",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "tests_unit_controller_test_session_store_py",
- "target": "controller_test_session_store_test_transition_rejects_unknown_session_id"
+ "source": "sample_data_test_generator_test_blocked_run_carries_trigger_file",
+ "target": "sample_data_test_generator_run_dirs",
+ "confidence_score": 1.0
},
{
- "relation": "contains",
+ "relation": "calls",
+ "context": "call",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/controller/test_session_store.py",
- "source_location": "L175",
+ "source_file": "tests/unit/sample_data/test_generator.py",
+ "source_location": "L294",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "tests_unit_controller_test_session_store_py",
- "target": "controller_test_session_store_test_transition_rejects_illegal_state_transition"
+ "source": "sample_data_test_generator_test_readme_field_layering",
+ "target": "sample_data_test_generator_run_dirs",
+ "confidence_score": 1.0
},
{
- "relation": "contains",
+ "relation": "calls",
+ "context": "call",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/controller/test_session_store.py",
- "source_location": "L187",
+ "source_file": "tests/unit/sample_data/test_generator.py",
+ "source_location": "L465",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "tests_unit_controller_test_session_store_py",
- "target": "controller_test_session_store_test_attach_event_queue_wires_queue_to_session"
+ "source": "sample_data_test_generator_test_seeded_equipment_roots_are_base_paths",
+ "target": "sample_data_test_generator_run_dirs",
+ "confidence_score": 1.0
},
{
- "relation": "contains",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/controller/test_session_store.py",
- "source_location": "L195",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/sample_data/test_generator.py",
+ "source_location": "L122",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "tests_unit_controller_test_session_store_py",
- "target": "controller_test_session_store_test_attach_event_queue_rejects_unknown_session_id"
+ "source": "sample_data_test_generator_test_full_tree_exists",
+ "target": "sample_data_generator_generate_samples"
},
{
- "relation": "contains",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/controller/test_session_store.py",
- "source_location": "L207",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/sample_data/test_generator.py",
+ "source_location": "L123",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "tests_unit_controller_test_session_store_py",
- "target": "controller_test_session_store_test_heartbeat_updates_last_heartbeat"
+ "source": "sample_data_test_generator_test_full_tree_exists",
+ "target": "config_loader_load_config"
},
{
- "relation": "contains",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/controller/test_session_store.py",
- "source_location": "L217",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/sample_data/test_generator.py",
+ "source_location": "L147",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "tests_unit_controller_test_session_store_py",
- "target": "controller_test_session_store_test_heartbeat_is_noop_for_unknown_session"
+ "source": "sample_data_test_generator_test_every_folder_has_metadata",
+ "target": "sample_data_generator_generate_samples"
},
{
- "relation": "contains",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/controller/test_session_store.py",
- "source_location": "L228",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/sample_data/test_generator.py",
+ "source_location": "L148",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "tests_unit_controller_test_session_store_py",
- "target": "controller_test_session_store_test_abandoned_older_than_returns_only_input_required_sessions"
+ "source": "sample_data_test_generator_test_every_folder_has_metadata",
+ "target": "config_loader_load_config"
},
{
- "relation": "contains",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/controller/test_session_store.py",
- "source_location": "L250",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/sample_data/test_generator.py",
+ "source_location": "L170",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "tests_unit_controller_test_session_store_py",
- "target": "controller_test_session_store_test_abandoned_older_than_skips_recent_input_required_sessions"
+ "source": "sample_data_test_generator_test_every_folder_has_metadata",
+ "target": "exlab_wizard_paths_equipment_json_path"
},
{
- "relation": "contains",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/controller/test_session_store.py",
- "source_location": "L265",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/sample_data/test_generator.py",
+ "source_location": "L177",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "tests_unit_controller_test_session_store_py",
- "target": "controller_test_session_store_test_abandoned_older_than_returns_empty_when_no_sessions_exist"
+ "source": "sample_data_test_generator_test_test_runs_marker_present_for_test_projects",
+ "target": "sample_data_generator_generate_samples"
},
{
- "relation": "contains",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/controller/test_session_store.py",
- "source_location": "L275",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/sample_data/test_generator.py",
+ "source_location": "L178",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "tests_unit_controller_test_session_store_py",
- "target": "controller_test_session_store_test_close_stores_outcome_for_done_session"
+ "source": "sample_data_test_generator_test_test_runs_marker_present_for_test_projects",
+ "target": "config_loader_load_config"
},
{
- "relation": "contains",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/controller/test_session_store.py",
- "source_location": "L294",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/sample_data/test_generator.py",
+ "source_location": "L183",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "tests_unit_controller_test_session_store_py",
- "target": "controller_test_session_store_test_close_stores_outcome_in_error_for_failed_session"
+ "source": "sample_data_test_generator_test_test_runs_marker_present_for_test_projects",
+ "target": "exlab_wizard_paths_cache_dir"
},
{
- "relation": "contains",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/controller/test_session_store.py",
- "source_location": "L304",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/sample_data/test_generator.py",
+ "source_location": "L199",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "tests_unit_controller_test_session_store_py",
- "target": "controller_test_session_store_test_close_is_noop_for_unknown_session"
+ "source": "sample_data_test_generator_test_sync_status_spread",
+ "target": "sample_data_generator_generate_samples"
},
{
- "relation": "contains",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/controller/test_session_store.py",
- "source_location": "L315",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/sample_data/test_generator.py",
+ "source_location": "L200",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "tests_unit_controller_test_session_store_py",
- "target": "controller_test_session_store_test_gc_loop_closes_abandoned_input_required_session"
+ "source": "sample_data_test_generator_test_sync_status_spread",
+ "target": "config_loader_load_config"
},
{
- "relation": "contains",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/controller/test_session_store.py",
- "source_location": "L339",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/sample_data/test_generator.py",
+ "source_location": "L217",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "tests_unit_controller_test_session_store_py",
- "target": "controller_test_session_store_test_gc_loop_periodically_runs_and_can_be_cancelled"
+ "source": "sample_data_test_generator_test_each_run_sync_status_matches_sample",
+ "target": "sample_data_generator_generate_samples"
},
{
- "relation": "contains",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/controller/test_session_store.py",
- "source_location": "L350",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/sample_data/test_generator.py",
+ "source_location": "L218",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "tests_unit_controller_test_session_store_py",
- "target": "controller_test_session_store_test_gc_loop_skips_non_input_required_sessions"
+ "source": "sample_data_test_generator_test_each_run_sync_status_matches_sample",
+ "target": "config_loader_load_config"
},
{
- "relation": "contains",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/controller/test_session_store.py",
- "source_location": "L366",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/sample_data/test_generator.py",
+ "source_location": "L241",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "tests_unit_controller_test_session_store_py",
- "target": "controller_test_session_store_test_session_is_terminal_for_terminal_states"
+ "source": "sample_data_test_generator_test_default_payload_pair",
+ "target": "sample_data_generator_generate_samples"
},
{
- "relation": "contains",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/controller/test_session_store.py",
- "source_location": "L382",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/sample_data/test_generator.py",
+ "source_location": "L242",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "tests_unit_controller_test_session_store_py",
- "target": "controller_test_session_store_test_session_is_terminal_false_for_non_terminal_states"
+ "source": "sample_data_test_generator_test_default_payload_pair",
+ "target": "config_loader_load_config"
},
{
- "relation": "rationale_for",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/controller/test_session_store.py",
- "source_location": "L1",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/sample_data/test_generator.py",
+ "source_location": "L257",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "controller_test_session_store_rationale_1",
- "target": "tests_unit_controller_test_session_store_py"
+ "source": "sample_data_test_generator_test_blocked_run_carries_trigger_file",
+ "target": "sample_data_generator_generate_samples"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "tests/unit/controller/test_session_store.py",
- "source_location": "L37",
+ "source_file": "tests/unit/sample_data/test_generator.py",
+ "source_location": "L258",
"weight": 1.0,
- "source": "controller_test_session_store_test_open_returns_fresh_pending_session",
- "target": "controller_session_store_sessionstore"
+ "source": "sample_data_test_generator_test_blocked_run_carries_trigger_file",
+ "target": "config_loader_load_config"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "tests/unit/controller/test_session_store.py",
- "source_location": "L47",
+ "source_file": "tests/unit/sample_data/test_generator.py",
+ "source_location": "L285",
"weight": 1.0,
- "source": "controller_test_session_store_test_open_assigns_uuid4_session_id",
- "target": "controller_session_store_sessionstore"
+ "source": "sample_data_test_generator_test_readme_field_layering",
+ "target": "sample_data_generator_generate_samples"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "tests/unit/controller/test_session_store.py",
- "source_location": "L55",
+ "source_file": "tests/unit/sample_data/test_generator.py",
+ "source_location": "L286",
"weight": 1.0,
- "source": "controller_test_session_store_test_open_two_sessions_get_distinct_ids",
- "target": "controller_session_store_sessionstore"
+ "source": "sample_data_test_generator_test_readme_field_layering",
+ "target": "config_loader_load_config"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "tests/unit/controller/test_session_store.py",
- "source_location": "L62",
+ "source_file": "tests/unit/sample_data/test_generator.py",
+ "source_location": "L308",
"weight": 1.0,
- "source": "controller_test_session_store_test_open_sets_created_at_and_last_heartbeat_to_now",
- "target": "controller_session_store_sessionstore"
+ "source": "sample_data_test_generator_test_seeded_config_default_is_present_and_optional",
+ "target": "sample_data_generator_generate_samples"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "tests/unit/controller/test_session_store.py",
- "source_location": "L76",
+ "source_file": "tests/unit/sample_data/test_generator.py",
+ "source_location": "L309",
"weight": 1.0,
- "source": "controller_test_session_store_test_get_returns_none_for_unknown_session_id",
- "target": "controller_session_store_sessionstore"
+ "source": "sample_data_test_generator_test_seeded_config_default_is_present_and_optional",
+ "target": "config_loader_load_config"
+ },
+ {
+ "relation": "calls",
+ "context": "call",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/sample_data/test_generator.py",
+ "source_location": "L343",
+ "weight": 1.0,
+ "source": "sample_data_test_generator_test_determinism",
+ "target": "sample_data_test_generator_snapshot",
+ "confidence_score": 1.0
+ },
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/sample_data/test_generator.py",
+ "source_location": "L326",
+ "weight": 1.0,
+ "source": "sample_data_test_generator_rationale_326",
+ "target": "sample_data_test_generator_snapshot",
+ "confidence_score": 1.0
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "tests/unit/controller/test_session_store.py",
- "source_location": "L81",
+ "source_file": "tests/unit/sample_data/test_generator.py",
+ "source_location": "L340",
"weight": 1.0,
- "source": "controller_test_session_store_test_get_returns_session_after_open",
- "target": "controller_session_store_sessionstore"
+ "source": "sample_data_test_generator_test_determinism",
+ "target": "sample_data_generator_generate_samples"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "tests/unit/controller/test_session_store.py",
- "source_location": "L88",
+ "source_file": "tests/unit/sample_data/test_generator.py",
+ "source_location": "L341",
"weight": 1.0,
- "source": "controller_test_session_store_test_iter_sorted_returns_pairs_oldest_created_first",
- "target": "controller_session_store_sessionstore"
+ "source": "sample_data_test_generator_test_determinism",
+ "target": "config_loader_load_config"
},
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/controller/test_session_store.py",
- "source_location": "L99",
+ "source_file": "tests/unit/sample_data/test_generator.py",
+ "source_location": "L355",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "controller_test_session_store_rationale_99",
- "target": "controller_test_session_store_test_gc_publishes_terminal_frame_to_live_subscriber"
+ "source": "sample_data_test_generator_rationale_355",
+ "target": "sample_data_test_generator_test_equipment_json_normalized_is_deterministic",
+ "confidence_score": 1.0
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "tests/unit/controller/test_session_store.py",
- "source_location": "L105",
+ "source_file": "tests/unit/sample_data/test_generator.py",
+ "source_location": "L356",
"weight": 1.0,
- "source": "controller_test_session_store_test_gc_publishes_terminal_frame_to_live_subscriber",
- "target": "controller_session_store_sessionstore"
+ "source": "sample_data_test_generator_test_equipment_json_normalized_is_deterministic",
+ "target": "sample_data_generator_generate_samples"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "tests/unit/controller/test_session_store.py",
- "source_location": "L124",
+ "source_file": "tests/unit/sample_data/test_generator.py",
+ "source_location": "L357",
"weight": 1.0,
- "source": "controller_test_session_store_test_project_identifier_prefers_short_id_then_falls_back_to_project_name",
- "target": "controller_session_store_project_identifier"
+ "source": "sample_data_test_generator_test_equipment_json_normalized_is_deterministic",
+ "target": "config_loader_load_config"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "tests/unit/controller/test_session_store.py",
- "source_location": "L137",
+ "source_file": "tests/unit/sample_data/test_generator.py",
+ "source_location": "L386",
"weight": 1.0,
- "source": "controller_test_session_store_test_transition_updates_state_and_phase_together",
- "target": "controller_session_store_sessionstore"
+ "source": "sample_data_test_generator_test_wipe_refuses_when_test_mode_unset",
+ "target": "sample_data_generator_generate_samples"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "tests/unit/controller/test_session_store.py",
- "source_location": "L145",
+ "source_file": "tests/unit/sample_data/test_generator.py",
+ "source_location": "L396",
"weight": 1.0,
- "source": "controller_test_session_store_test_transition_to_input_required_sets_next_action_awaiting_input",
- "target": "controller_session_store_sessionstore"
+ "source": "sample_data_test_generator_test_wipe_refuses_when_app_name_not_test",
+ "target": "sample_data_generator_generate_samples"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "tests/unit/controller/test_session_store.py",
- "source_location": "L155",
+ "source_file": "tests/unit/sample_data/test_generator.py",
+ "source_location": "L404",
"weight": 1.0,
- "source": "controller_test_session_store_test_transition_back_to_plugin_pass_clears_next_action",
- "target": "controller_session_store_sessionstore"
+ "source": "sample_data_test_generator_test_wipe_refuses_when_target_escapes_sandbox",
+ "target": "sample_data_generator_generate_samples"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "tests/unit/controller/test_session_store.py",
- "source_location": "L170",
+ "source_file": "tests/unit/sample_data/test_generator.py",
+ "source_location": "L405",
"weight": 1.0,
- "source": "controller_test_session_store_test_transition_rejects_unknown_session_id",
- "target": "controller_session_store_sessionstore"
+ "source": "sample_data_test_generator_test_wipe_refuses_when_target_escapes_sandbox",
+ "target": "config_loader_load_config"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "tests/unit/controller/test_session_store.py",
- "source_location": "L176",
+ "source_file": "tests/unit/sample_data/test_generator.py",
+ "source_location": "L407",
"weight": 1.0,
- "source": "controller_test_session_store_test_transition_rejects_illegal_state_transition",
- "target": "controller_session_store_sessionstore"
+ "source": "sample_data_test_generator_test_wipe_refuses_when_target_escapes_sandbox",
+ "target": "config_models_pathsconfig"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "tests/unit/controller/test_session_store.py",
- "source_location": "L188",
+ "source_file": "tests/unit/sample_data/test_generator.py",
+ "source_location": "L414",
"weight": 1.0,
- "source": "controller_test_session_store_test_attach_event_queue_wires_queue_to_session",
- "target": "controller_session_store_sessionstore"
+ "source": "sample_data_test_generator_test_wipe_refuses_when_target_escapes_sandbox",
+ "target": "config_loader_save_config"
+ },
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/sample_data/test_generator.py",
+ "source_location": "L420",
+ "weight": 1.0,
+ "source": "sample_data_test_generator_rationale_420",
+ "target": "sample_data_test_generator_test_wipe_refuses_symlinked_target_escaping_sandbox",
+ "confidence_score": 1.0
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "tests/unit/controller/test_session_store.py",
- "source_location": "L196",
+ "source_file": "tests/unit/sample_data/test_generator.py",
+ "source_location": "L423",
"weight": 1.0,
- "source": "controller_test_session_store_test_attach_event_queue_rejects_unknown_session_id",
- "target": "controller_session_store_sessionstore"
+ "source": "sample_data_test_generator_test_wipe_refuses_symlinked_target_escaping_sandbox",
+ "target": "sample_data_generator_generate_samples"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "tests/unit/controller/test_session_store.py",
- "source_location": "L208",
+ "source_file": "tests/unit/sample_data/test_generator.py",
+ "source_location": "L424",
"weight": 1.0,
- "source": "controller_test_session_store_test_heartbeat_updates_last_heartbeat",
- "target": "controller_session_store_sessionstore"
+ "source": "sample_data_test_generator_test_wipe_refuses_symlinked_target_escaping_sandbox",
+ "target": "config_loader_load_config"
+ },
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/sample_data/test_generator.py",
+ "source_location": "L445",
+ "weight": 1.0,
+ "source": "sample_data_test_generator_rationale_445",
+ "target": "sample_data_test_generator_test_seeded_equipment_roots_are_base_paths",
+ "confidence_score": 1.0
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "tests/unit/controller/test_session_store.py",
- "source_location": "L218",
+ "source_file": "tests/unit/sample_data/test_generator.py",
+ "source_location": "L453",
"weight": 1.0,
- "source": "controller_test_session_store_test_heartbeat_is_noop_for_unknown_session",
- "target": "controller_session_store_sessionstore"
+ "source": "sample_data_test_generator_test_seeded_equipment_roots_are_base_paths",
+ "target": "sample_data_generator_generate_samples"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "tests/unit/controller/test_session_store.py",
- "source_location": "L229",
+ "source_file": "tests/unit/sample_data/test_generator.py",
+ "source_location": "L454",
"weight": 1.0,
- "source": "controller_test_session_store_test_abandoned_older_than_returns_only_input_required_sessions",
- "target": "controller_session_store_sessionstore"
+ "source": "sample_data_test_generator_test_seeded_equipment_roots_are_base_paths",
+ "target": "config_loader_load_config"
+ },
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/sample_data/test_generator.py",
+ "source_location": "L473",
+ "weight": 1.0,
+ "source": "sample_data_test_generator_rationale_473",
+ "target": "sample_data_test_generator_test_no_wipe_is_idempotent_and_nondestructive",
+ "confidence_score": 1.0
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "tests/unit/controller/test_session_store.py",
- "source_location": "L251",
+ "source_file": "tests/unit/sample_data/test_generator.py",
+ "source_location": "L474",
"weight": 1.0,
- "source": "controller_test_session_store_test_abandoned_older_than_skips_recent_input_required_sessions",
- "target": "controller_session_store_sessionstore"
+ "source": "sample_data_test_generator_test_no_wipe_is_idempotent_and_nondestructive",
+ "target": "sample_data_generator_generate_samples"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "tests/unit/controller/test_session_store.py",
- "source_location": "L266",
+ "source_file": "tests/unit/sample_data/test_generator.py",
+ "source_location": "L475",
"weight": 1.0,
- "source": "controller_test_session_store_test_abandoned_older_than_returns_empty_when_no_sessions_exist",
- "target": "controller_session_store_sessionstore"
+ "source": "sample_data_test_generator_test_no_wipe_is_idempotent_and_nondestructive",
+ "target": "config_loader_load_config"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "tests/unit/controller/test_session_store.py",
- "source_location": "L276",
+ "source_file": "tests/unit/sample_data/test_generator.py",
+ "source_location": "L488",
"weight": 1.0,
- "source": "controller_test_session_store_test_close_stores_outcome_for_done_session",
- "target": "controller_session_store_sessionstore"
+ "source": "sample_data_test_generator_test_generator_class_is_constructable",
+ "target": "sample_data_generator_sampledatagenerator"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "tests/unit/controller/test_session_store.py",
- "source_location": "L295",
+ "source_file": "tests/unit/sample_data/test_generator.py",
+ "source_location": "L490",
"weight": 1.0,
- "source": "controller_test_session_store_test_close_stores_outcome_in_error_for_failed_session",
- "target": "controller_session_store_sessionstore"
+ "source": "sample_data_test_generator_test_generator_class_is_constructable",
+ "target": "config_loader_load_config"
+ },
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/sample_data/test_spec.py",
+ "source_location": "L23",
+ "weight": 1.0,
+ "source": "tests_unit_sample_data_test_spec_py",
+ "target": "sample_data_test_spec_project",
+ "confidence_score": 1.0
+ },
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/sample_data/test_spec.py",
+ "source_location": "L27",
+ "weight": 1.0,
+ "source": "tests_unit_sample_data_test_spec_py",
+ "target": "sample_data_test_spec_test_samples_top_level_shape",
+ "confidence_score": 1.0
+ },
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/sample_data/test_spec.py",
+ "source_location": "L34",
+ "weight": 1.0,
+ "source": "tests_unit_sample_data_test_spec_py",
+ "target": "sample_data_test_spec_test_testrig_has_one_project_three_runs",
+ "confidence_score": 1.0
+ },
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/sample_data/test_spec.py",
+ "source_location": "L41",
+ "weight": 1.0,
+ "source": "tests_unit_sample_data_test_spec_py",
+ "target": "sample_data_test_spec_test_altrig_has_two_projects_two_runs_each",
+ "confidence_score": 1.0
+ },
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/sample_data/test_spec.py",
+ "source_location": "L49",
+ "weight": 1.0,
+ "source": "tests_unit_sample_data_test_spec_py",
+ "target": "sample_data_test_spec_test_total_run_count_is_seven",
+ "confidence_score": 1.0
+ },
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/sample_data/test_spec.py",
+ "source_location": "L54",
+ "weight": 1.0,
+ "source": "tests_unit_sample_data_test_spec_py",
+ "target": "sample_data_test_spec_test_malformed_short_id_raises_validation_error",
+ "confidence_score": 1.0
+ },
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/sample_data/test_spec.py",
+ "source_location": "L73",
+ "weight": 1.0,
+ "source": "tests_unit_sample_data_test_spec_py",
+ "target": "sample_data_test_spec_test_malformed_equipment_id_raises_validation_error",
+ "confidence_score": 1.0
+ },
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/sample_data/test_spec.py",
+ "source_location": "L98",
+ "weight": 1.0,
+ "source": "tests_unit_sample_data_test_spec_py",
+ "target": "sample_data_test_spec_test_malformed_project_name_raises_validation_error",
+ "confidence_score": 1.0
+ },
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/sample_data/test_spec.py",
+ "source_location": "L119",
+ "weight": 1.0,
+ "source": "tests_unit_sample_data_test_spec_py",
+ "target": "sample_data_test_spec_test_unknown_key_rejected_extra_forbid",
+ "confidence_score": 1.0
+ },
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/sample_data/test_spec.py",
+ "source_location": "L131",
+ "weight": 1.0,
+ "source": "tests_unit_sample_data_test_spec_py",
+ "target": "sample_data_test_spec_test_samplefile_rejects_escaping_relpath",
+ "confidence_score": 1.0
+ },
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/sample_data/test_spec.py",
+ "source_location": "L137",
+ "weight": 1.0,
+ "source": "tests_unit_sample_data_test_spec_py",
+ "target": "sample_data_test_spec_test_samplefile_accepts_nested_relative_path",
+ "confidence_score": 1.0
+ },
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/sample_data/test_spec.py",
+ "source_location": "L141",
+ "weight": 1.0,
+ "source": "tests_unit_sample_data_test_spec_py",
+ "target": "sample_data_test_spec_test_sync_status_spread_covers_required_states",
+ "confidence_score": 1.0
+ },
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/sample_data/test_spec.py",
+ "source_location": "L151",
+ "weight": 1.0,
+ "source": "tests_unit_sample_data_test_spec_py",
+ "target": "sample_data_test_spec_test_proj_0003_blocked_run_carries_trigger_file",
+ "confidence_score": 1.0
+ },
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/sample_data/test_spec.py",
+ "source_location": "L162",
+ "weight": 1.0,
+ "source": "tests_unit_sample_data_test_spec_py",
+ "target": "sample_data_test_spec_test_proj_0002_calibration_a_has_readme_extra_fields",
+ "confidence_score": 1.0
+ },
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/sample_data/test_spec.py",
+ "source_location": "L1",
+ "weight": 1.0,
+ "source": "sample_data_test_spec_rationale_1",
+ "target": "tests_unit_sample_data_test_spec_py",
+ "confidence_score": 1.0
},
{
"relation": "calls",
"context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/unit/controller/test_session_store.py",
- "source_location": "L305",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/sample_data/test_spec.py",
+ "source_location": "L45",
"weight": 1.0,
- "source": "controller_test_session_store_test_close_is_noop_for_unknown_session",
- "target": "controller_session_store_sessionstore"
+ "source": "sample_data_test_spec_test_altrig_has_two_projects_two_runs_each",
+ "target": "sample_data_test_spec_project",
+ "confidence_score": 1.0
+ },
+ {
+ "relation": "calls",
+ "context": "call",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/sample_data/test_spec.py",
+ "source_location": "L153",
+ "weight": 1.0,
+ "source": "sample_data_test_spec_test_proj_0003_blocked_run_carries_trigger_file",
+ "target": "sample_data_test_spec_project",
+ "confidence_score": 1.0
+ },
+ {
+ "relation": "calls",
+ "context": "call",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/sample_data/test_spec.py",
+ "source_location": "L164",
+ "weight": 1.0,
+ "source": "sample_data_test_spec_test_proj_0002_calibration_a_has_readme_extra_fields",
+ "target": "sample_data_test_spec_project",
+ "confidence_score": 1.0
},
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
- "source_file": "tests/unit/controller/test_session_store.py",
- "source_location": "L316",
+ "source_file": "tests/unit/sample_data/test_spec.py",
+ "source_location": "L28",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "controller_test_session_store_rationale_316",
- "target": "controller_test_session_store_test_gc_loop_closes_abandoned_input_required_session"
+ "source": "sample_data_test_spec_rationale_28",
+ "target": "sample_data_test_spec_test_samples_top_level_shape",
+ "confidence_score": 1.0
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "tests/unit/controller/test_session_store.py",
- "source_location": "L317",
+ "source_file": "tests/unit/sample_data/test_spec.py",
+ "source_location": "L56",
"weight": 1.0,
- "source": "controller_test_session_store_test_gc_loop_closes_abandoned_input_required_session",
- "target": "controller_session_store_sessionstore"
+ "source": "sample_data_test_spec_test_malformed_short_id_raises_validation_error",
+ "target": "sample_data_spec_sampleproject"
},
{
- "relation": "rationale_for",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/controller/test_session_store.py",
- "source_location": "L340",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/sample_data/test_spec.py",
+ "source_location": "L63",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "controller_test_session_store_rationale_340",
- "target": "controller_test_session_store_test_gc_loop_periodically_runs_and_can_be_cancelled"
+ "source": "sample_data_test_spec_test_malformed_short_id_raises_validation_error",
+ "target": "sample_data_spec_samplerun"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "tests/unit/controller/test_session_store.py",
- "source_location": "L341",
+ "source_file": "tests/unit/sample_data/test_spec.py",
+ "source_location": "L75",
"weight": 1.0,
- "source": "controller_test_session_store_test_gc_loop_periodically_runs_and_can_be_cancelled",
- "target": "controller_session_store_sessionstore"
+ "source": "sample_data_test_spec_test_malformed_equipment_id_raises_validation_error",
+ "target": "sample_data_spec_sampleequipment"
},
{
- "relation": "rationale_for",
- "confidence": "EXTRACTED",
- "source_file": "tests/unit/controller/test_session_store.py",
- "source_location": "L351",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/sample_data/test_spec.py",
+ "source_location": "L79",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "controller_test_session_store_rationale_351",
- "target": "controller_test_session_store_test_gc_loop_skips_non_input_required_sessions"
+ "source": "sample_data_test_spec_test_malformed_equipment_id_raises_validation_error",
+ "target": "sample_data_spec_sampleproject"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "tests/unit/controller/test_session_store.py",
- "source_location": "L352",
+ "source_file": "tests/unit/sample_data/test_spec.py",
+ "source_location": "L86",
"weight": 1.0,
- "source": "controller_test_session_store_test_gc_loop_skips_non_input_required_sessions",
- "target": "controller_session_store_sessionstore"
+ "source": "sample_data_test_spec_test_malformed_equipment_id_raises_validation_error",
+ "target": "sample_data_spec_samplerun"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "tests/unit/controller/test_session_store.py",
- "source_location": "L367",
+ "source_file": "tests/unit/sample_data/test_spec.py",
+ "source_location": "L102",
"weight": 1.0,
- "source": "controller_test_session_store_test_session_is_terminal_for_terminal_states",
- "target": "controller_session_store_session"
+ "source": "sample_data_test_spec_test_malformed_project_name_raises_validation_error",
+ "target": "sample_data_spec_sampleproject"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "tests/unit/controller/test_session_store.py",
- "source_location": "L383",
+ "source_file": "tests/unit/sample_data/test_spec.py",
+ "source_location": "L109",
"weight": 1.0,
- "source": "controller_test_session_store_test_session_is_terminal_false_for_non_terminal_states",
- "target": "controller_session_store_session"
+ "source": "sample_data_test_spec_test_malformed_project_name_raises_validation_error",
+ "target": "sample_data_spec_samplerun"
+ },
+ {
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/sample_data/test_spec.py",
+ "source_location": "L121",
+ "weight": 1.0,
+ "source": "sample_data_test_spec_test_unknown_key_rejected_extra_forbid",
+ "target": "sample_data_spec_samplerun"
+ },
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/sample_data/test_spec.py",
+ "source_location": "L132",
+ "weight": 1.0,
+ "source": "sample_data_test_spec_rationale_132",
+ "target": "sample_data_test_spec_test_samplefile_rejects_escaping_relpath",
+ "confidence_score": 1.0
+ },
+ {
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/sample_data/test_spec.py",
+ "source_location": "L134",
+ "weight": 1.0,
+ "source": "sample_data_test_spec_test_samplefile_rejects_escaping_relpath",
+ "target": "sample_data_spec_samplefile"
+ },
+ {
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/sample_data/test_spec.py",
+ "source_location": "L138",
+ "weight": 1.0,
+ "source": "sample_data_test_spec_test_samplefile_accepts_nested_relative_path",
+ "target": "sample_data_spec_samplefile"
+ },
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/sample_data/__init__.py",
+ "source_location": "L1",
+ "weight": 1.0,
+ "source": "sample_data_init_rationale_1",
+ "target": "tests_unit_sample_data_init_py",
+ "confidence_score": 1.0
+ },
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "src/exlab_wizard/sample_data/__init__.py",
+ "source_location": "L1",
+ "weight": 1.0,
+ "source": "sample_data_init_rationale_1",
+ "target": "src_exlab_wizard_sample_data_init_py",
+ "confidence_score": 1.0
},
{
"relation": "contains",
@@ -145552,6 +154665,46 @@
"source": "config_models_config",
"target": "basemodel"
},
+ {
+ "relation": "inherits",
+ "confidence": "EXTRACTED",
+ "source_file": "src/exlab_wizard/sample_data/spec.py",
+ "source_location": "L29",
+ "weight": 1.0,
+ "source": "sample_data_spec_samplefile",
+ "target": "basemodel",
+ "confidence_score": 1.0
+ },
+ {
+ "relation": "inherits",
+ "confidence": "EXTRACTED",
+ "source_file": "src/exlab_wizard/sample_data/spec.py",
+ "source_location": "L50",
+ "weight": 1.0,
+ "source": "sample_data_spec_samplerun",
+ "target": "basemodel",
+ "confidence_score": 1.0
+ },
+ {
+ "relation": "inherits",
+ "confidence": "EXTRACTED",
+ "source_file": "src/exlab_wizard/sample_data/spec.py",
+ "source_location": "L63",
+ "weight": 1.0,
+ "source": "sample_data_spec_sampleproject",
+ "target": "basemodel",
+ "confidence_score": 1.0
+ },
+ {
+ "relation": "inherits",
+ "confidence": "EXTRACTED",
+ "source_file": "src/exlab_wizard/sample_data/spec.py",
+ "source_location": "L97",
+ "weight": 1.0,
+ "source": "sample_data_spec_sampleequipment",
+ "target": "basemodel",
+ "confidence_score": 1.0
+ },
{
"relation": "inherits",
"confidence": "EXTRACTED",
@@ -155247,6 +164400,109 @@
"source": "api_test_app_test_lifespan_starts_and_stops_audit_task",
"target": "api_app_create_app"
},
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/dev/test_seed.py",
+ "source_location": "L10",
+ "weight": 1.0,
+ "source": "tests_unit_dev_test_seed_py",
+ "target": "dev_test_seed_sandbox_under",
+ "confidence_score": 1.0
+ },
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/dev/test_seed.py",
+ "source_location": "L31",
+ "weight": 1.0,
+ "source": "tests_unit_dev_test_seed_py",
+ "target": "dev_test_seed_test_seed_main_creates_full_tree",
+ "confidence_score": 1.0
+ },
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/dev/test_seed.py",
+ "source_location": "L59",
+ "weight": 1.0,
+ "source": "tests_unit_dev_test_seed_py",
+ "target": "dev_test_seed_test_seed_main_wipes_and_rebuilds",
+ "confidence_score": 1.0
+ },
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/dev/test_seed.py",
+ "source_location": "L1",
+ "weight": 1.0,
+ "source": "dev_test_seed_rationale_1",
+ "target": "tests_unit_dev_test_seed_py",
+ "confidence_score": 1.0
+ },
+ {
+ "relation": "calls",
+ "context": "call",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/dev/test_seed.py",
+ "source_location": "L37",
+ "weight": 1.0,
+ "source": "dev_test_seed_test_seed_main_creates_full_tree",
+ "target": "dev_test_seed_sandbox_under",
+ "confidence_score": 1.0
+ },
+ {
+ "relation": "calls",
+ "context": "call",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/dev/test_seed.py",
+ "source_location": "L64",
+ "weight": 1.0,
+ "source": "dev_test_seed_test_seed_main_wipes_and_rebuilds",
+ "target": "dev_test_seed_sandbox_under",
+ "confidence_score": 1.0
+ },
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/dev/test_seed.py",
+ "source_location": "L11",
+ "weight": 1.0,
+ "source": "dev_test_seed_rationale_11",
+ "target": "dev_test_seed_sandbox_under",
+ "confidence_score": 1.0
+ },
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/dev/test_seed.py",
+ "source_location": "L32",
+ "weight": 1.0,
+ "source": "dev_test_seed_rationale_32",
+ "target": "dev_test_seed_test_seed_main_creates_full_tree",
+ "confidence_score": 1.0
+ },
+ {
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/unit/dev/test_seed.py",
+ "source_location": "L56",
+ "weight": 1.0,
+ "source": "dev_test_seed_test_seed_main_creates_full_tree",
+ "target": "exlab_wizard_paths_creation_json_path"
+ },
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/dev/test_seed.py",
+ "source_location": "L60",
+ "weight": 1.0,
+ "source": "dev_test_seed_rationale_60",
+ "target": "dev_test_seed_test_seed_main_wipes_and_rebuilds",
+ "confidence_score": 1.0
+ },
{
"relation": "contains",
"confidence": "EXTRACTED",
@@ -174158,6 +183414,16 @@
"source": "controller_test_creation_flow_rationale_432",
"target": "controller_test_creation_flow_test_plugin_input_required_suspend_resume"
},
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/integration/controller/test_creation_flow.py",
+ "source_location": "L501",
+ "weight": 1.0,
+ "source": "controller_test_creation_flow_rationale_501",
+ "target": "controller_test_creation_flow_test_cancel_with_discard_files_removes_partial_dir",
+ "confidence_score": 1.0
+ },
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
@@ -174178,6 +183444,16 @@
"source": "controller_test_creation_flow_rationale_503",
"target": "controller_test_creation_flow_test_cancel_with_discard_files_removes_partial_dir"
},
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/integration/controller/test_creation_flow.py",
+ "source_location": "L539",
+ "weight": 1.0,
+ "source": "controller_test_creation_flow_rationale_539",
+ "target": "controller_test_creation_flow_test_cancel_without_discard_leaves_partial_dir",
+ "confidence_score": 1.0
+ },
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
@@ -174198,6 +183474,16 @@
"source": "controller_test_creation_flow_rationale_541",
"target": "controller_test_creation_flow_test_cancel_without_discard_leaves_partial_dir"
},
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/integration/controller/test_creation_flow.py",
+ "source_location": "L563",
+ "weight": 1.0,
+ "source": "controller_test_creation_flow_rationale_563",
+ "target": "controller_test_creation_flow_test_post_validate_blocks_sync_when_placeholder_left_in_file",
+ "confidence_score": 1.0
+ },
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
@@ -174266,11 +183552,11 @@
"relation": "rationale_for",
"confidence": "EXTRACTED",
"source_file": "tests/integration/controller/test_creation_flow.py",
- "source_location": "L688",
+ "source_location": "L693",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "controller_test_creation_flow_rationale_688",
- "target": "controller_test_creation_flow_test_real_readme_generator_writes_frontmatter_and_cache"
+ "source": "controller_test_creation_flow_rationale_693",
+ "target": "controller_test_creation_flow_test_real_readme_generator_writes_frontmatter_and_cache",
+ "confidence_score": 1.0
},
{
"relation": "calls",
@@ -174294,6 +183580,16 @@
"source": "controller_test_creation_flow_test_real_readme_generator_writes_frontmatter_and_cache",
"target": "readme_generator_readmegenerator"
},
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/integration/controller/test_creation_flow.py",
+ "source_location": "L688",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "controller_test_creation_flow_rationale_688",
+ "target": "controller_test_creation_flow_test_real_readme_generator_writes_frontmatter_and_cache"
+ },
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
@@ -174315,6 +183611,16 @@
"source": "controller_test_creation_flow_test_noop_nas_sync_returns_none",
"target": "controller_creation_noopnassync"
},
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/integration/controller/test_creation_flow.py",
+ "source_location": "L769",
+ "weight": 1.0,
+ "source": "controller_test_creation_flow_rationale_769",
+ "target": "controller_test_creation_flow_test_required_template_field_missing_in_readme_extra_fails",
+ "confidence_score": 1.0
+ },
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
@@ -174335,6 +183641,16 @@
"source": "controller_test_creation_flow_rationale_771",
"target": "controller_test_creation_flow_test_required_template_field_missing_in_readme_extra_fails"
},
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/integration/controller/test_creation_flow.py",
+ "source_location": "L805",
+ "weight": 1.0,
+ "source": "controller_test_creation_flow_rationale_805",
+ "target": "controller_test_creation_flow_test_required_template_field_present_passes_validation",
+ "confidence_score": 1.0
+ },
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
@@ -174359,11 +183675,11 @@
"relation": "rationale_for",
"confidence": "EXTRACTED",
"source_file": "tests/integration/controller/test_creation_flow.py",
- "source_location": "L844",
+ "source_location": "L849",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "controller_test_creation_flow_rationale_844",
- "target": "controller_test_creation_flow_test_cancel_input_required_aborts_session_via_plugin_callback"
+ "source": "controller_test_creation_flow_rationale_849",
+ "target": "controller_test_creation_flow_test_cancel_input_required_aborts_session_via_plugin_callback",
+ "confidence_score": 1.0
},
{
"relation": "calls",
@@ -174376,6 +183692,16 @@
"source": "controller_test_creation_flow_test_cancel_input_required_aborts_session_via_plugin_callback",
"target": "plugins_host_pluginhost"
},
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/integration/controller/test_creation_flow.py",
+ "source_location": "L844",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "controller_test_creation_flow_rationale_844",
+ "target": "controller_test_creation_flow_test_cancel_input_required_aborts_session_via_plugin_callback"
+ },
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
@@ -174386,6 +183712,16 @@
"source": "controller_test_creation_flow_rationale_851",
"target": "controller_test_creation_flow_test_cancel_input_required_aborts_session_via_plugin_callback"
},
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/integration/controller/test_creation_flow.py",
+ "source_location": "L907",
+ "weight": 1.0,
+ "source": "controller_test_creation_flow_rationale_907",
+ "target": "controller_test_creation_flow_test_cancel_invokes_cleanup_when_compose_path_fails",
+ "confidence_score": 1.0
+ },
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
@@ -174406,6 +183742,16 @@
"source": "controller_test_creation_flow_rationale_909",
"target": "controller_test_creation_flow_test_cancel_invokes_cleanup_when_compose_path_fails"
},
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/integration/controller/test_creation_flow.py",
+ "source_location": "L930",
+ "weight": 1.0,
+ "source": "controller_test_creation_flow_rationale_930",
+ "target": "controller_test_creation_flow_test_cleanup_removes_existing_directory_when_discard_files_true",
+ "confidence_score": 1.0
+ },
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
@@ -174430,11 +183776,11 @@
"relation": "rationale_for",
"confidence": "EXTRACTED",
"source_file": "tests/integration/controller/test_creation_flow.py",
- "source_location": "L942",
+ "source_location": "L947",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "controller_test_creation_flow_rationale_942",
- "target": "controller_test_creation_flow_test_config_required_readme_field_missing_fails"
+ "source": "controller_test_creation_flow_rationale_947",
+ "target": "controller_test_creation_flow_test_config_required_readme_field_missing_fails",
+ "confidence_score": 1.0
},
{
"relation": "calls",
@@ -174447,6 +183793,16 @@
"source": "controller_test_creation_flow_test_config_required_readme_field_missing_fails",
"target": "config_models_readmedefaultfield"
},
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/integration/controller/test_creation_flow.py",
+ "source_location": "L942",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "controller_test_creation_flow_rationale_942",
+ "target": "controller_test_creation_flow_test_config_required_readme_field_missing_fails"
+ },
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
@@ -174457,6 +183813,16 @@
"source": "controller_test_creation_flow_rationale_949",
"target": "controller_test_creation_flow_test_config_required_readme_field_missing_fails"
},
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/integration/controller/test_creation_flow.py",
+ "source_location": "L973",
+ "weight": 1.0,
+ "source": "controller_test_creation_flow_rationale_973",
+ "target": "controller_test_creation_flow_test_render_failure_transitions_session_to_failed",
+ "confidence_score": 1.0
+ },
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
@@ -174477,6 +183843,16 @@
"source": "controller_test_creation_flow_rationale_975",
"target": "controller_test_creation_flow_test_render_failure_transitions_session_to_failed"
},
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/integration/controller/test_creation_flow.py",
+ "source_location": "L1001",
+ "weight": 1.0,
+ "source": "controller_test_creation_flow_rationale_1001",
+ "target": "controller_test_creation_flow_test_run_creation_writes_equipment_json_at_root",
+ "confidence_score": 1.0
+ },
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
@@ -174497,6 +183873,16 @@
"source": "controller_test_creation_flow_rationale_1003",
"target": "controller_test_creation_flow_test_run_creation_writes_equipment_json_at_root"
},
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/integration/controller/test_creation_flow.py",
+ "source_location": "L1017",
+ "weight": 1.0,
+ "source": "controller_test_creation_flow_rationale_1017",
+ "target": "controller_test_creation_flow_test_format_error_with_non_validation_exception_returns_internal_error",
+ "confidence_score": 1.0
+ },
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
@@ -174517,6 +183903,16 @@
"source": "controller_test_creation_flow_rationale_1019",
"target": "controller_test_creation_flow_test_format_error_with_non_validation_exception_returns_internal_error"
},
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/integration/controller/test_creation_flow.py",
+ "source_location": "L1024",
+ "weight": 1.0,
+ "source": "controller_test_creation_flow_rationale_1024",
+ "target": "controller_test_creation_flow_test_append_log_writes_log_line",
+ "confidence_score": 1.0
+ },
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
@@ -174537,6 +183933,16 @@
"source": "controller_test_creation_flow_rationale_1026",
"target": "controller_test_creation_flow_test_append_log_writes_log_line"
},
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/integration/controller/test_creation_flow.py",
+ "source_location": "L1040",
+ "weight": 1.0,
+ "source": "controller_test_creation_flow_rationale_1040",
+ "target": "controller_test_creation_flow_test_run_inherits_lims_project_block_from_parent",
+ "confidence_score": 1.0
+ },
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
@@ -174557,6 +183963,16 @@
"source": "controller_test_creation_flow_rationale_1042",
"target": "controller_test_creation_flow_test_run_inherits_lims_project_block_from_parent"
},
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/integration/controller/test_creation_flow.py",
+ "source_location": "L1064",
+ "weight": 1.0,
+ "source": "controller_test_creation_flow_rationale_1064",
+ "target": "controller_test_creation_flow_test_cancel_before_task_starts_invokes_cleanup",
+ "confidence_score": 1.0
+ },
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
@@ -174577,6 +183993,16 @@
"source": "controller_test_creation_flow_rationale_1066",
"target": "controller_test_creation_flow_test_cancel_before_task_starts_invokes_cleanup"
},
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/integration/controller/test_creation_flow.py",
+ "source_location": "L1084",
+ "weight": 1.0,
+ "source": "controller_test_creation_flow_rationale_1084",
+ "target": "controller_test_creation_flow_test_resume_session_with_no_resume_queue_raises",
+ "confidence_score": 1.0
+ },
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
@@ -174597,6 +184023,16 @@
"source": "controller_test_creation_flow_rationale_1086",
"target": "controller_test_creation_flow_test_resume_session_with_no_resume_queue_raises"
},
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/integration/controller/test_creation_flow.py",
+ "source_location": "L1105",
+ "weight": 1.0,
+ "source": "controller_test_creation_flow_rationale_1105",
+ "target": "controller_test_creation_flow_test_subscribe_creates_queue_when_missing",
+ "confidence_score": 1.0
+ },
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
@@ -174617,6 +184053,16 @@
"source": "controller_test_creation_flow_rationale_1107",
"target": "controller_test_creation_flow_test_subscribe_creates_queue_when_missing"
},
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/integration/controller/test_creation_flow.py",
+ "source_location": "L1129",
+ "weight": 1.0,
+ "source": "controller_test_creation_flow_rationale_1129",
+ "target": "controller_test_creation_flow_test_plugin_pass_aborted_transitions_to_failed",
+ "confidence_score": 1.0
+ },
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
@@ -174641,11 +184087,11 @@
"relation": "rationale_for",
"confidence": "EXTRACTED",
"source_file": "tests/integration/controller/test_creation_flow.py",
- "source_location": "L1169",
+ "source_location": "L1174",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "controller_test_creation_flow_rationale_1169",
- "target": "controller_test_creation_flow_test_required_field_ids_filters_non_dict_entries"
+ "source": "controller_test_creation_flow_rationale_1174",
+ "target": "controller_test_creation_flow_test_required_field_ids_filters_non_dict_entries",
+ "confidence_score": 1.0
},
{
"relation": "calls",
@@ -174658,6 +184104,16 @@
"source": "controller_test_creation_flow_test_required_field_ids_filters_non_dict_entries",
"target": "controller_creation_required_field_ids"
},
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/integration/controller/test_creation_flow.py",
+ "source_location": "L1169",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "controller_test_creation_flow_rationale_1169",
+ "target": "controller_test_creation_flow_test_required_field_ids_filters_non_dict_entries"
+ },
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
@@ -174668,6 +184124,16 @@
"source": "controller_test_creation_flow_rationale_1176",
"target": "controller_test_creation_flow_test_required_field_ids_filters_non_dict_entries"
},
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/integration/controller/test_creation_flow.py",
+ "source_location": "L1190",
+ "weight": 1.0,
+ "source": "controller_test_creation_flow_rationale_1190",
+ "target": "controller_test_creation_flow_test_run_without_parent_creation_json_fills_stub_block",
+ "confidence_score": 1.0
+ },
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
@@ -177398,6 +186864,16 @@
"source": "tests_e2e_test_flow_08_settings_py",
"target": "e2e_test_flow_08_settings_test_flow_08_lims_password_cancel_discards_edit"
},
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/e2e/test_flow_08_settings.py",
+ "source_location": "L108",
+ "weight": 1.0,
+ "source": "tests_e2e_test_flow_08_settings_py",
+ "target": "e2e_test_flow_08_settings_test_flow_08_workstation_section_hides_staging_root",
+ "confidence_score": 1.0
+ },
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
@@ -177461,6 +186937,27 @@
"source": "e2e_test_flow_08_settings_test_flow_08_lims_password_cancel_discards_edit",
"target": "page_objects_settings_page_settingspage"
},
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/e2e/test_flow_08_settings.py",
+ "source_location": "L109",
+ "weight": 1.0,
+ "source": "e2e_test_flow_08_settings_rationale_109",
+ "target": "e2e_test_flow_08_settings_test_flow_08_workstation_section_hides_staging_root",
+ "confidence_score": 1.0
+ },
+ {
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/e2e/test_flow_08_settings.py",
+ "source_location": "L112",
+ "weight": 1.0,
+ "source": "e2e_test_flow_08_settings_test_flow_08_workstation_section_hides_staging_root",
+ "target": "page_objects_settings_page_settingspage"
+ },
{
"relation": "contains",
"confidence": "EXTRACTED",
@@ -178192,11 +187689,11 @@
"relation": "rationale_for",
"confidence": "EXTRACTED",
"source_file": "tests/e2e/test_flow_16_add_equipment.py",
- "source_location": "L34",
+ "source_location": "L38",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "e2e_test_flow_16_add_equipment_rationale_34",
- "target": "e2e_test_flow_16_add_equipment_test_flow_16_add_equipment_identity_step"
+ "source": "e2e_test_flow_16_add_equipment_rationale_38",
+ "target": "e2e_test_flow_16_add_equipment_test_flow_16_add_equipment_identity_step",
+ "confidence_score": 1.0
},
{
"relation": "calls",
@@ -178213,11 +187710,21 @@
"relation": "rationale_for",
"confidence": "EXTRACTED",
"source_file": "tests/e2e/test_flow_16_add_equipment.py",
- "source_location": "L45",
+ "source_location": "L34",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "e2e_test_flow_16_add_equipment_rationale_45",
- "target": "e2e_test_flow_16_add_equipment_test_flow_16_add_equipment_paths_step"
+ "source": "e2e_test_flow_16_add_equipment_rationale_34",
+ "target": "e2e_test_flow_16_add_equipment_test_flow_16_add_equipment_identity_step"
+ },
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/e2e/test_flow_16_add_equipment.py",
+ "source_location": "L49",
+ "weight": 1.0,
+ "source": "e2e_test_flow_16_add_equipment_rationale_49",
+ "target": "e2e_test_flow_16_add_equipment_test_flow_16_add_equipment_paths_step",
+ "confidence_score": 1.0
},
{
"relation": "calls",
@@ -178234,11 +187741,21 @@
"relation": "rationale_for",
"confidence": "EXTRACTED",
"source_file": "tests/e2e/test_flow_16_add_equipment.py",
- "source_location": "L53",
+ "source_location": "L45",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "e2e_test_flow_16_add_equipment_rationale_53",
- "target": "e2e_test_flow_16_add_equipment_test_flow_16_add_equipment_sync_mode_step"
+ "source": "e2e_test_flow_16_add_equipment_rationale_45",
+ "target": "e2e_test_flow_16_add_equipment_test_flow_16_add_equipment_paths_step"
+ },
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/e2e/test_flow_16_add_equipment.py",
+ "source_location": "L61",
+ "weight": 1.0,
+ "source": "e2e_test_flow_16_add_equipment_rationale_61",
+ "target": "e2e_test_flow_16_add_equipment_test_flow_16_add_equipment_sync_mode_step",
+ "confidence_score": 1.0
},
{
"relation": "calls",
@@ -178255,11 +187772,21 @@
"relation": "rationale_for",
"confidence": "EXTRACTED",
"source_file": "tests/e2e/test_flow_16_add_equipment.py",
- "source_location": "L60",
+ "source_location": "L53",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "e2e_test_flow_16_add_equipment_rationale_60",
- "target": "e2e_test_flow_16_add_equipment_test_flow_16_add_equipment_review_and_confirm"
+ "source": "e2e_test_flow_16_add_equipment_rationale_53",
+ "target": "e2e_test_flow_16_add_equipment_test_flow_16_add_equipment_sync_mode_step"
+ },
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/e2e/test_flow_16_add_equipment.py",
+ "source_location": "L68",
+ "weight": 1.0,
+ "source": "e2e_test_flow_16_add_equipment_rationale_68",
+ "target": "e2e_test_flow_16_add_equipment_test_flow_16_add_equipment_review_and_confirm",
+ "confidence_score": 1.0
},
{
"relation": "calls",
@@ -178276,11 +187803,21 @@
"relation": "rationale_for",
"confidence": "EXTRACTED",
"source_file": "tests/e2e/test_flow_16_add_equipment.py",
- "source_location": "L70",
+ "source_location": "L60",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "e2e_test_flow_16_add_equipment_rationale_70",
- "target": "e2e_test_flow_16_add_equipment_test_flow_16_next_enables_on_valid_input_and_state_survives_back"
+ "source": "e2e_test_flow_16_add_equipment_rationale_60",
+ "target": "e2e_test_flow_16_add_equipment_test_flow_16_add_equipment_review_and_confirm"
+ },
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/e2e/test_flow_16_add_equipment.py",
+ "source_location": "L78",
+ "weight": 1.0,
+ "source": "e2e_test_flow_16_add_equipment_rationale_78",
+ "target": "e2e_test_flow_16_add_equipment_test_flow_16_next_enables_on_valid_input_and_state_survives_back",
+ "confidence_score": 1.0
},
{
"relation": "calls",
@@ -178293,6 +187830,16 @@
"source": "e2e_test_flow_16_add_equipment_test_flow_16_next_enables_on_valid_input_and_state_survives_back",
"target": "page_objects_wizard_equipment_page_wizardequipmentpage"
},
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/e2e/test_flow_16_add_equipment.py",
+ "source_location": "L70",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "e2e_test_flow_16_add_equipment_rationale_70",
+ "target": "e2e_test_flow_16_add_equipment_test_flow_16_next_enables_on_valid_input_and_state_survives_back"
+ },
{
"relation": "contains",
"confidence": "EXTRACTED",
@@ -178809,6 +188356,16 @@
"source": "e2e_test_flow_25_production_main_wiring_test_flow_25_footer_clear_verified_routes_to_callback",
"target": "e2e_test_flow_25_production_main_wiring_goto"
},
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/e2e/test_flow_25_production_main_wiring.py",
+ "source_location": "L24",
+ "weight": 1.0,
+ "source": "e2e_test_flow_25_production_main_wiring_rationale_24",
+ "target": "e2e_test_flow_25_production_main_wiring_goto",
+ "confidence_score": 1.0
+ },
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
@@ -178819,6 +188376,16 @@
"source": "e2e_test_flow_25_production_main_wiring_rationale_22",
"target": "e2e_test_flow_25_production_main_wiring_goto"
},
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/e2e/test_flow_25_production_main_wiring.py",
+ "source_location": "L43",
+ "weight": 1.0,
+ "source": "e2e_test_flow_25_production_main_wiring_rationale_43",
+ "target": "e2e_test_flow_25_production_main_wiring_test_flow_25_main_route_renders_redesigned_layout",
+ "confidence_score": 1.0
+ },
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
@@ -178829,6 +188396,16 @@
"source": "e2e_test_flow_25_production_main_wiring_rationale_41",
"target": "e2e_test_flow_25_production_main_wiring_test_flow_25_main_route_renders_redesigned_layout"
},
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/e2e/test_flow_25_production_main_wiring.py",
+ "source_location": "L81",
+ "weight": 1.0,
+ "source": "e2e_test_flow_25_production_main_wiring_rationale_81",
+ "target": "e2e_test_flow_25_production_main_wiring_test_flow_25_add_equipment_button_navigates_to_wizard",
+ "confidence_score": 1.0
+ },
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
@@ -178839,6 +188416,16 @@
"source": "e2e_test_flow_25_production_main_wiring_rationale_76",
"target": "e2e_test_flow_25_production_main_wiring_test_flow_25_add_equipment_button_navigates_to_wizard"
},
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/e2e/test_flow_25_production_main_wiring.py",
+ "source_location": "L88",
+ "weight": 1.0,
+ "source": "e2e_test_flow_25_production_main_wiring_rationale_88",
+ "target": "e2e_test_flow_25_production_main_wiring_test_flow_25_select_node_threads_selected_into_url",
+ "confidence_score": 1.0
+ },
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
@@ -178849,6 +188436,16 @@
"source": "e2e_test_flow_25_production_main_wiring_rationale_83",
"target": "e2e_test_flow_25_production_main_wiring_test_flow_25_select_node_threads_selected_into_url"
},
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/e2e/test_flow_25_production_main_wiring.py",
+ "source_location": "L101",
+ "weight": 1.0,
+ "source": "e2e_test_flow_25_production_main_wiring_rationale_101",
+ "target": "e2e_test_flow_25_production_main_wiring_test_flow_25_selected_query_renders_centre_and_right_panes",
+ "confidence_score": 1.0
+ },
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
@@ -178859,6 +188456,16 @@
"source": "e2e_test_flow_25_production_main_wiring_rationale_96",
"target": "e2e_test_flow_25_production_main_wiring_test_flow_25_selected_query_renders_centre_and_right_panes"
},
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/e2e/test_flow_25_production_main_wiring.py",
+ "source_location": "L111",
+ "weight": 1.0,
+ "source": "e2e_test_flow_25_production_main_wiring_rationale_111",
+ "target": "e2e_test_flow_25_production_main_wiring_test_flow_25_breadcrumb_navigation_re_navigates_main",
+ "confidence_score": 1.0
+ },
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
@@ -178869,6 +188476,16 @@
"source": "e2e_test_flow_25_production_main_wiring_rationale_106",
"target": "e2e_test_flow_25_production_main_wiring_test_flow_25_breadcrumb_navigation_re_navigates_main"
},
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/e2e/test_flow_25_production_main_wiring.py",
+ "source_location": "L127",
+ "weight": 1.0,
+ "source": "e2e_test_flow_25_production_main_wiring_rationale_127",
+ "target": "e2e_test_flow_25_production_main_wiring_test_flow_25_toggle_right_pane_toggles_query_param",
+ "confidence_score": 1.0
+ },
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
@@ -178879,6 +188496,16 @@
"source": "e2e_test_flow_25_production_main_wiring_rationale_122",
"target": "e2e_test_flow_25_production_main_wiring_test_flow_25_toggle_right_pane_toggles_query_param"
},
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/e2e/test_flow_25_production_main_wiring.py",
+ "source_location": "L138",
+ "weight": 1.0,
+ "source": "e2e_test_flow_25_production_main_wiring_rationale_138",
+ "target": "e2e_test_flow_25_production_main_wiring_test_flow_25_tree_context_action_deep_links_into_settings",
+ "confidence_score": 1.0
+ },
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
@@ -178889,6 +188516,16 @@
"source": "e2e_test_flow_25_production_main_wiring_rationale_133",
"target": "e2e_test_flow_25_production_main_wiring_test_flow_25_tree_context_action_deep_links_into_settings"
},
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/e2e/test_flow_25_production_main_wiring.py",
+ "source_location": "L153",
+ "weight": 1.0,
+ "source": "e2e_test_flow_25_production_main_wiring_rationale_153",
+ "target": "e2e_test_flow_25_production_main_wiring_test_flow_25_received_equipment_disables_creation_buttons",
+ "confidence_score": 1.0
+ },
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
@@ -178899,6 +188536,16 @@
"source": "e2e_test_flow_25_production_main_wiring_rationale_148",
"target": "e2e_test_flow_25_production_main_wiring_test_flow_25_received_equipment_disables_creation_buttons"
},
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/e2e/test_flow_25_production_main_wiring.py",
+ "source_location": "L182",
+ "weight": 1.0,
+ "source": "e2e_test_flow_25_production_main_wiring_rationale_182",
+ "target": "e2e_test_flow_25_production_main_wiring_test_flow_25_footer_clear_verified_routes_to_callback",
+ "confidence_score": 1.0
+ },
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
@@ -180010,6 +189657,16 @@
"source": "e2e_test_app_build_test_app",
"target": "ui_theme_register_theme"
},
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/e2e/_test_app.py",
+ "source_location": "L949",
+ "weight": 1.0,
+ "source": "e2e_test_app_rationale_949",
+ "target": "e2e_test_app_create_app_factory",
+ "confidence_score": 1.0
+ },
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
@@ -180153,6 +189810,212 @@
"source": "e2e_test_flow_12_quit_coordinator_rationale_1",
"target": "tests_e2e_test_flow_12_quit_coordinator_py"
},
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/e2e/test_flow_28_selection_search_density.py",
+ "source_location": "L26",
+ "weight": 1.0,
+ "source": "tests_e2e_test_flow_28_selection_search_density_py",
+ "target": "e2e_test_flow_28_selection_search_density_goto",
+ "confidence_score": 1.0
+ },
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/e2e/test_flow_28_selection_search_density.py",
+ "source_location": "L39",
+ "weight": 1.0,
+ "source": "tests_e2e_test_flow_28_selection_search_density_py",
+ "target": "e2e_test_flow_28_selection_search_density_test_flow_28_select_file_row_highlights_and_shows_subcard",
+ "confidence_score": 1.0
+ },
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/e2e/test_flow_28_selection_search_density.py",
+ "source_location": "L58",
+ "weight": 1.0,
+ "source": "tests_e2e_test_flow_28_selection_search_density_py",
+ "target": "e2e_test_flow_28_selection_search_density_test_flow_28_search_filters_tree_and_shows_count",
+ "confidence_score": 1.0
+ },
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/e2e/test_flow_28_selection_search_density.py",
+ "source_location": "L67",
+ "weight": 1.0,
+ "source": "tests_e2e_test_flow_28_selection_search_density_py",
+ "target": "e2e_test_flow_28_selection_search_density_test_flow_28_search_no_matches_state",
+ "confidence_score": 1.0
+ },
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/e2e/test_flow_28_selection_search_density.py",
+ "source_location": "L73",
+ "weight": 1.0,
+ "source": "tests_e2e_test_flow_28_selection_search_density_py",
+ "target": "e2e_test_flow_28_selection_search_density_test_flow_28_density_toggle_threads_density_param",
+ "confidence_score": 1.0
+ },
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/e2e/test_flow_28_selection_search_density.py",
+ "source_location": "L82",
+ "weight": 1.0,
+ "source": "tests_e2e_test_flow_28_selection_search_density_py",
+ "target": "e2e_test_flow_28_selection_search_density_test_flow_28_sync_legend_popover_lists_states",
+ "confidence_score": 1.0
+ },
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/e2e/test_flow_28_selection_search_density.py",
+ "source_location": "L94",
+ "weight": 1.0,
+ "source": "tests_e2e_test_flow_28_selection_search_density_py",
+ "target": "e2e_test_flow_28_selection_search_density_test_flow_28_selected_tree_node_carries_selected_class",
+ "confidence_score": 1.0
+ },
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/e2e/test_flow_28_selection_search_density.py",
+ "source_location": "L1",
+ "weight": 1.0,
+ "source": "e2e_test_flow_28_selection_search_density_rationale_1",
+ "target": "tests_e2e_test_flow_28_selection_search_density_py",
+ "confidence_score": 1.0
+ },
+ {
+ "relation": "calls",
+ "context": "call",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/e2e/test_flow_28_selection_search_density.py",
+ "source_location": "L42",
+ "weight": 1.0,
+ "source": "e2e_test_flow_28_selection_search_density_test_flow_28_select_file_row_highlights_and_shows_subcard",
+ "target": "e2e_test_flow_28_selection_search_density_goto",
+ "confidence_score": 1.0
+ },
+ {
+ "relation": "calls",
+ "context": "call",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/e2e/test_flow_28_selection_search_density.py",
+ "source_location": "L60",
+ "weight": 1.0,
+ "source": "e2e_test_flow_28_selection_search_density_test_flow_28_search_filters_tree_and_shows_count",
+ "target": "e2e_test_flow_28_selection_search_density_goto",
+ "confidence_score": 1.0
+ },
+ {
+ "relation": "calls",
+ "context": "call",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/e2e/test_flow_28_selection_search_density.py",
+ "source_location": "L69",
+ "weight": 1.0,
+ "source": "e2e_test_flow_28_selection_search_density_test_flow_28_search_no_matches_state",
+ "target": "e2e_test_flow_28_selection_search_density_goto",
+ "confidence_score": 1.0
+ },
+ {
+ "relation": "calls",
+ "context": "call",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/e2e/test_flow_28_selection_search_density.py",
+ "source_location": "L75",
+ "weight": 1.0,
+ "source": "e2e_test_flow_28_selection_search_density_test_flow_28_density_toggle_threads_density_param",
+ "target": "e2e_test_flow_28_selection_search_density_goto",
+ "confidence_score": 1.0
+ },
+ {
+ "relation": "calls",
+ "context": "call",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/e2e/test_flow_28_selection_search_density.py",
+ "source_location": "L84",
+ "weight": 1.0,
+ "source": "e2e_test_flow_28_selection_search_density_test_flow_28_sync_legend_popover_lists_states",
+ "target": "e2e_test_flow_28_selection_search_density_goto",
+ "confidence_score": 1.0
+ },
+ {
+ "relation": "calls",
+ "context": "call",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/e2e/test_flow_28_selection_search_density.py",
+ "source_location": "L97",
+ "weight": 1.0,
+ "source": "e2e_test_flow_28_selection_search_density_test_flow_28_selected_tree_node_carries_selected_class",
+ "target": "e2e_test_flow_28_selection_search_density_goto",
+ "confidence_score": 1.0
+ },
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/e2e/test_flow_28_selection_search_density.py",
+ "source_location": "L40",
+ "weight": 1.0,
+ "source": "e2e_test_flow_28_selection_search_density_rationale_40",
+ "target": "e2e_test_flow_28_selection_search_density_test_flow_28_select_file_row_highlights_and_shows_subcard",
+ "confidence_score": 1.0
+ },
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/e2e/test_flow_28_selection_search_density.py",
+ "source_location": "L59",
+ "weight": 1.0,
+ "source": "e2e_test_flow_28_selection_search_density_rationale_59",
+ "target": "e2e_test_flow_28_selection_search_density_test_flow_28_search_filters_tree_and_shows_count",
+ "confidence_score": 1.0
+ },
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/e2e/test_flow_28_selection_search_density.py",
+ "source_location": "L68",
+ "weight": 1.0,
+ "source": "e2e_test_flow_28_selection_search_density_rationale_68",
+ "target": "e2e_test_flow_28_selection_search_density_test_flow_28_search_no_matches_state",
+ "confidence_score": 1.0
+ },
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/e2e/test_flow_28_selection_search_density.py",
+ "source_location": "L74",
+ "weight": 1.0,
+ "source": "e2e_test_flow_28_selection_search_density_rationale_74",
+ "target": "e2e_test_flow_28_selection_search_density_test_flow_28_density_toggle_threads_density_param",
+ "confidence_score": 1.0
+ },
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/e2e/test_flow_28_selection_search_density.py",
+ "source_location": "L83",
+ "weight": 1.0,
+ "source": "e2e_test_flow_28_selection_search_density_rationale_83",
+ "target": "e2e_test_flow_28_selection_search_density_test_flow_28_sync_legend_popover_lists_states",
+ "confidence_score": 1.0
+ },
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/e2e/test_flow_28_selection_search_density.py",
+ "source_location": "L95",
+ "weight": 1.0,
+ "source": "e2e_test_flow_28_selection_search_density_rationale_95",
+ "target": "e2e_test_flow_28_selection_search_density_test_flow_28_selected_tree_node_carries_selected_class",
+ "confidence_score": 1.0
+ },
{
"relation": "contains",
"confidence": "EXTRACTED",
@@ -182480,6 +192343,17 @@
"source": "exlab_wizard_paths_rationale_96",
"target": "exlab_wizard_paths_app_name"
},
+ {
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "src/exlab_wizard/sample_data/generator.py",
+ "source_location": "L249",
+ "weight": 1.0,
+ "source": "sample_data_generator_sampledatagenerator_wipe",
+ "target": "exlab_wizard_paths_app_name"
+ },
{
"relation": "calls",
"context": "call",
@@ -182718,6 +192592,17 @@
"source": "tray_dependencies_make_save_config",
"target": "exlab_wizard_paths_os_config_path"
},
+ {
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "src/exlab_wizard/dev/seed.py",
+ "source_location": "L32",
+ "weight": 1.0,
+ "source": "dev_seed_main",
+ "target": "exlab_wizard_paths_os_config_path"
+ },
{
"relation": "calls",
"context": "call",
@@ -182845,6 +192730,39 @@
"source": "ui_mount_ensure_staging_root",
"target": "exlab_wizard_paths_ensure_dir"
},
+ {
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "src/exlab_wizard/config/test_bootstrap.py",
+ "source_location": "L63",
+ "weight": 1.0,
+ "source": "config_test_bootstrap_write_starter_test_config",
+ "target": "exlab_wizard_paths_ensure_dir"
+ },
+ {
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "src/exlab_wizard/sample_data/generator.py",
+ "source_location": "L326",
+ "weight": 1.0,
+ "source": "sample_data_generator_sampledatagenerator_write_project",
+ "target": "exlab_wizard_paths_ensure_dir"
+ },
+ {
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "src/exlab_wizard/sample_data/generator.py",
+ "source_location": "L429",
+ "weight": 1.0,
+ "source": "sample_data_generator_sampledatagenerator_write_metadata",
+ "target": "exlab_wizard_paths_ensure_dir"
+ },
{
"relation": "calls",
"context": "call",
@@ -182888,6 +192806,17 @@
"source": "window_main_main",
"target": "exlab_wizard_paths_ensure_state_dir"
},
+ {
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "src/exlab_wizard/dev/seed.py",
+ "source_location": "L31",
+ "weight": 1.0,
+ "source": "dev_seed_main",
+ "target": "exlab_wizard_paths_ensure_state_dir"
+ },
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
@@ -182974,6 +192903,17 @@
"source": "controller_creation_creationcontroller_validate_inputs",
"target": "exlab_wizard_paths_canonicalize_equipment_id"
},
+ {
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "src/exlab_wizard/sample_data/spec.py",
+ "source_location": "L111",
+ "weight": 1.0,
+ "source": "sample_data_spec_check_id",
+ "target": "exlab_wizard_paths_canonicalize_equipment_id"
+ },
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
@@ -182995,6 +192935,17 @@
"source": "exlab_wizard_paths_validate_project_short_id",
"target": "exlab_wizard_errors_configerror"
},
+ {
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "src/exlab_wizard/sample_data/spec.py",
+ "source_location": "L79",
+ "weight": 1.0,
+ "source": "sample_data_spec_check_short_id",
+ "target": "exlab_wizard_paths_validate_project_short_id"
+ },
{
"relation": "calls",
"context": "call",
@@ -183081,6 +193032,17 @@
"source": "controller_creation_creationcontroller_validate_inputs",
"target": "exlab_wizard_paths_validate_project_name"
},
+ {
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "src/exlab_wizard/sample_data/spec.py",
+ "source_location": "L92",
+ "weight": 1.0,
+ "source": "sample_data_spec_check_name",
+ "target": "exlab_wizard_paths_validate_project_name"
+ },
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
@@ -183102,6 +193064,17 @@
"source": "controller_creation_creationcontroller_compose_destination_path",
"target": "exlab_wizard_paths_compose_run_path"
},
+ {
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "src/exlab_wizard/sample_data/generator.py",
+ "source_location": "L358",
+ "weight": 1.0,
+ "source": "sample_data_generator_sampledatagenerator_write_project",
+ "target": "exlab_wizard_paths_compose_run_path"
+ },
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
@@ -183123,6 +193096,17 @@
"source": "controller_creation_creationcontroller_compose_destination_path",
"target": "exlab_wizard_paths_compose_project_path"
},
+ {
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "src/exlab_wizard/sample_data/generator.py",
+ "source_location": "L321",
+ "weight": 1.0,
+ "source": "sample_data_generator_sampledatagenerator_write_project",
+ "target": "exlab_wizard_paths_compose_project_path"
+ },
{
"relation": "calls",
"context": "call",
@@ -183546,6 +193530,28 @@
"source": "cache_sync_state_writer_sync_state_path",
"target": "exlab_wizard_paths_cache_dir"
},
+ {
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "src/exlab_wizard/sample_data/generator.py",
+ "source_location": "L397",
+ "weight": 1.0,
+ "source": "sample_data_generator_sampledatagenerator_write_project",
+ "target": "exlab_wizard_paths_cache_dir"
+ },
+ {
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "src/exlab_wizard/sample_data/generator.py",
+ "source_location": "L429",
+ "weight": 1.0,
+ "source": "sample_data_generator_sampledatagenerator_write_metadata",
+ "target": "exlab_wizard_paths_cache_dir"
+ },
{
"relation": "calls",
"context": "call",
@@ -183632,6 +193638,17 @@
"source": "controller_creation_creationcontroller_write_cache",
"target": "exlab_wizard_paths_creation_json_path"
},
+ {
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "src/exlab_wizard/sample_data/generator.py",
+ "source_location": "L463",
+ "weight": 1.0,
+ "source": "sample_data_generator_sampledatagenerator_write_metadata",
+ "target": "exlab_wizard_paths_creation_json_path"
+ },
{
"relation": "calls",
"context": "call",
@@ -183773,6 +193790,17 @@
"source": "controller_creation_creationcontroller_write_equipment_json",
"target": "exlab_wizard_paths_equipment_json_path"
},
+ {
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "src/exlab_wizard/sample_data/generator.py",
+ "source_location": "L311",
+ "weight": 1.0,
+ "source": "sample_data_generator_sampledatagenerator_write_equipment",
+ "target": "exlab_wizard_paths_equipment_json_path"
+ },
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
@@ -184546,6 +194574,46 @@
"source": "controller_creation_creationcontroller",
"target": "exlab_wizard_errors_configerror"
},
+ {
+ "relation": "uses",
+ "confidence": "INFERRED",
+ "source_file": "src/exlab_wizard/sample_data/spec.py",
+ "source_location": "L26",
+ "weight": 0.8,
+ "source": "sample_data_spec_samplefile",
+ "target": "exlab_wizard_errors_configerror",
+ "confidence_score": 0.5
+ },
+ {
+ "relation": "uses",
+ "confidence": "INFERRED",
+ "source_file": "src/exlab_wizard/sample_data/spec.py",
+ "source_location": "L26",
+ "weight": 0.8,
+ "source": "sample_data_spec_samplerun",
+ "target": "exlab_wizard_errors_configerror",
+ "confidence_score": 0.5
+ },
+ {
+ "relation": "uses",
+ "confidence": "INFERRED",
+ "source_file": "src/exlab_wizard/sample_data/spec.py",
+ "source_location": "L26",
+ "weight": 0.8,
+ "source": "sample_data_spec_sampleproject",
+ "target": "exlab_wizard_errors_configerror",
+ "confidence_score": 0.5
+ },
+ {
+ "relation": "uses",
+ "confidence": "INFERRED",
+ "source_file": "src/exlab_wizard/sample_data/spec.py",
+ "source_location": "L26",
+ "weight": 0.8,
+ "source": "sample_data_spec_sampleequipment",
+ "target": "exlab_wizard_errors_configerror",
+ "confidence_score": 0.5
+ },
{
"relation": "uses",
"confidence": "INFERRED",
@@ -185297,11 +195365,11 @@
"relation": "rationale_for",
"confidence": "EXTRACTED",
"source_file": "src/exlab_wizard/ui/theme.py",
- "source_location": "L113",
+ "source_location": "L129",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "ui_theme_rationale_113",
- "target": "ui_theme_register_theme"
+ "source": "ui_theme_rationale_129",
+ "target": "ui_theme_register_theme",
+ "confidence_score": 1.0
},
{
"relation": "calls",
@@ -185314,6 +195382,16 @@
"source": "ui_mount_mount_ui",
"target": "ui_theme_register_theme"
},
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "src/exlab_wizard/ui/theme.py",
+ "source_location": "L113",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "ui_theme_rationale_113",
+ "target": "ui_theme_register_theme"
+ },
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
@@ -185335,6 +195413,16 @@
"source": "ui_theme_register_static_assets",
"target": "ui_theme_resolve_assets_dir"
},
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "src/exlab_wizard/ui/theme.py",
+ "source_location": "L158",
+ "weight": 1.0,
+ "source": "ui_theme_rationale_158",
+ "target": "ui_theme_resolve_assets_dir",
+ "confidence_score": 1.0
+ },
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
@@ -185369,11 +195457,11 @@
"relation": "rationale_for",
"confidence": "EXTRACTED",
"source_file": "src/exlab_wizard/ui/theme.py",
- "source_location": "L157",
+ "source_location": "L173",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "ui_theme_rationale_157",
- "target": "ui_theme_register_static_assets"
+ "source": "ui_theme_rationale_173",
+ "target": "ui_theme_register_static_assets",
+ "confidence_score": 1.0
},
{
"relation": "calls",
@@ -185386,6 +195474,16 @@
"source": "ui_mount_mount_ui",
"target": "ui_theme_register_static_assets"
},
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "src/exlab_wizard/ui/theme.py",
+ "source_location": "L157",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "ui_theme_rationale_157",
+ "target": "ui_theme_register_static_assets"
+ },
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
@@ -186310,16 +196408,6 @@
"source": "src_exlab_wizard_ui_mount_py",
"target": "ui_mount_run_staging_action"
},
- {
- "relation": "contains",
- "confidence": "EXTRACTED",
- "source_file": "src/exlab_wizard/ui/mount.py",
- "source_location": "L1176",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "src_exlab_wizard_ui_mount_py",
- "target": "ui_mount_bulk_clear_verified"
- },
{
"relation": "contains",
"confidence": "EXTRACTED",
@@ -186584,41 +196672,51 @@
"relation": "contains",
"confidence": "EXTRACTED",
"source_file": "src/exlab_wizard/ui/mount.py",
- "source_location": "L1931",
+ "source_location": "L1950",
"weight": 1.0,
"confidence_score": 1.0,
"source": "src_exlab_wizard_ui_mount_py",
- "target": "ui_mount_build_staging_state"
+ "target": "ui_mount_show_toast"
+ },
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "src/exlab_wizard/ui/mount.py",
+ "source_location": "L1",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "ui_mount_rationale_1",
+ "target": "src_exlab_wizard_ui_mount_py"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
"source_file": "src/exlab_wizard/ui/mount.py",
- "source_location": "L1950",
+ "source_location": "L1176",
"weight": 1.0,
"confidence_score": 1.0,
"source": "src_exlab_wizard_ui_mount_py",
- "target": "ui_mount_show_toast"
+ "target": "ui_mount_bulk_clear_verified"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
"source_file": "src/exlab_wizard/ui/mount.py",
- "source_location": "L1963",
+ "source_location": "L1931",
"weight": 1.0,
"confidence_score": 1.0,
"source": "src_exlab_wizard_ui_mount_py",
- "target": "ui_mount_render_unavailable"
+ "target": "ui_mount_build_staging_state"
},
{
- "relation": "rationale_for",
+ "relation": "contains",
"confidence": "EXTRACTED",
"source_file": "src/exlab_wizard/ui/mount.py",
- "source_location": "L1",
+ "source_location": "L1963",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "ui_mount_rationale_1",
- "target": "src_exlab_wizard_ui_mount_py"
+ "source": "src_exlab_wizard_ui_mount_py",
+ "target": "ui_mount_render_unavailable"
},
{
"relation": "contains",
@@ -186667,10 +196765,10 @@
"context": "call",
"confidence": "EXTRACTED",
"source_file": "src/exlab_wizard/ui/mount.py",
- "source_location": "L1211",
+ "source_location": "L1300",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "ui_mount_bulk_clear_verified",
+ "source": "ui_mount_toggle_keep_local",
"target": "ui_mount_spawn_background"
},
{
@@ -186678,21 +196776,31 @@
"context": "call",
"confidence": "EXTRACTED",
"source_file": "src/exlab_wizard/ui/mount.py",
- "source_location": "L1300",
+ "source_location": "L1566",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "ui_mount_toggle_keep_local",
+ "source": "ui_mount_open_log_dialog",
"target": "ui_mount_spawn_background"
},
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "src/exlab_wizard/ui/mount.py",
+ "source_location": "L62",
+ "weight": 1.0,
+ "source": "ui_mount_rationale_62",
+ "target": "ui_mount_spawn_background",
+ "confidence_score": 1.0
+ },
{
"relation": "calls",
"context": "call",
"confidence": "EXTRACTED",
"source_file": "src/exlab_wizard/ui/mount.py",
- "source_location": "L1566",
+ "source_location": "L1211",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "ui_mount_open_log_dialog",
+ "source": "ui_mount_bulk_clear_verified",
"target": "ui_mount_spawn_background"
},
{
@@ -186720,11 +196828,11 @@
"relation": "rationale_for",
"confidence": "EXTRACTED",
"source_file": "src/exlab_wizard/ui/mount.py",
- "source_location": "L67",
+ "source_location": "L70",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "ui_mount_rationale_67",
- "target": "ui_mount_mount_ui"
+ "source": "ui_mount_rationale_70",
+ "target": "ui_mount_mount_ui",
+ "confidence_score": 1.0
},
{
"relation": "calls",
@@ -186737,6 +196845,26 @@
"source": "tray_main_build_default_app",
"target": "ui_mount_mount_ui"
},
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "src/exlab_wizard/ui/mount.py",
+ "source_location": "L67",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "ui_mount_rationale_67",
+ "target": "ui_mount_mount_ui"
+ },
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "src/exlab_wizard/ui/mount.py",
+ "source_location": "L98",
+ "weight": 1.0,
+ "source": "ui_mount_rationale_98",
+ "target": "ui_mount_register_pages",
+ "confidence_score": 1.0
+ },
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
@@ -186757,6 +196885,16 @@
"source": "ui_mount_rationale_90",
"target": "ui_mount_register_pages"
},
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "src/exlab_wizard/ui/mount.py",
+ "source_location": "L472",
+ "weight": 1.0,
+ "source": "ui_mount_rationale_472",
+ "target": "ui_mount_lims_credential_handlers",
+ "confidence_score": 1.0
+ },
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
@@ -186811,11 +196949,11 @@
"relation": "rationale_for",
"confidence": "EXTRACTED",
"source_file": "src/exlab_wizard/ui/mount.py",
- "source_location": "L523",
+ "source_location": "L526",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "ui_mount_rationale_523",
- "target": "ui_mount_nas_test_connection"
+ "source": "ui_mount_rationale_526",
+ "target": "ui_mount_nas_test_connection",
+ "confidence_score": 1.0
},
{
"relation": "calls",
@@ -186828,6 +196966,16 @@
"source": "ui_mount_nas_test_connection",
"target": "components_test_connection_panel_testconnectionresult"
},
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "src/exlab_wizard/ui/mount.py",
+ "source_location": "L523",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "ui_mount_rationale_523",
+ "target": "ui_mount_nas_test_connection"
+ },
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
@@ -186901,6 +197049,16 @@
"source": "ui_mount_persist_config",
"target": "ui_mount_apply_live_config"
},
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "src/exlab_wizard/ui/mount.py",
+ "source_location": "L582",
+ "weight": 1.0,
+ "source": "ui_mount_rationale_582",
+ "target": "ui_mount_persist_config",
+ "confidence_score": 1.0
+ },
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
@@ -186962,6 +197120,16 @@
"source": "ui_mount_ensure_staging_root",
"target": "ui_mount_show_toast"
},
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "src/exlab_wizard/ui/mount.py",
+ "source_location": "L614",
+ "weight": 1.0,
+ "source": "ui_mount_rationale_614",
+ "target": "ui_mount_ensure_staging_root",
+ "confidence_score": 1.0
+ },
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
@@ -187016,11 +197184,11 @@
"relation": "rationale_for",
"confidence": "EXTRACTED",
"source_file": "src/exlab_wizard/ui/mount.py",
- "source_location": "L637",
+ "source_location": "L640",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "ui_mount_rationale_637",
- "target": "ui_mount_apply_live_config"
+ "source": "ui_mount_rationale_640",
+ "target": "ui_mount_apply_live_config",
+ "confidence_score": 1.0
},
{
"relation": "calls",
@@ -187033,6 +197201,16 @@
"source": "ui_mount_apply_live_config",
"target": "tray_dependencies_apply_live_config"
},
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "src/exlab_wizard/ui/mount.py",
+ "source_location": "L637",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "ui_mount_rationale_637",
+ "target": "ui_mount_apply_live_config"
+ },
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
@@ -187088,11 +197266,11 @@
"relation": "rationale_for",
"confidence": "EXTRACTED",
"source_file": "src/exlab_wizard/ui/mount.py",
- "source_location": "L654",
+ "source_location": "L657",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "ui_mount_rationale_654",
- "target": "ui_mount_nas_remote_missing"
+ "source": "ui_mount_rationale_657",
+ "target": "ui_mount_nas_remote_missing",
+ "confidence_score": 1.0
},
{
"relation": "calls",
@@ -187105,6 +197283,16 @@
"source": "ui_mount_nas_remote_missing",
"target": "api_dependencies_nas_remote_available"
},
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "src/exlab_wizard/ui/mount.py",
+ "source_location": "L654",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "ui_mount_rationale_654",
+ "target": "ui_mount_nas_remote_missing"
+ },
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
@@ -187150,11 +197338,11 @@
"relation": "rationale_for",
"confidence": "EXTRACTED",
"source_file": "src/exlab_wizard/ui/mount.py",
- "source_location": "L678",
+ "source_location": "L681",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "ui_mount_rationale_678",
- "target": "ui_mount_is_setup_ready"
+ "source": "ui_mount_rationale_681",
+ "target": "ui_mount_is_setup_ready",
+ "confidence_score": 1.0
},
{
"relation": "calls",
@@ -187167,6 +197355,16 @@
"source": "ui_mount_is_setup_ready",
"target": "api_setup_compute_setup_state"
},
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "src/exlab_wizard/ui/mount.py",
+ "source_location": "L678",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "ui_mount_rationale_678",
+ "target": "ui_mount_is_setup_ready"
+ },
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
@@ -187211,11 +197409,11 @@
"relation": "rationale_for",
"confidence": "EXTRACTED",
"source_file": "src/exlab_wizard/ui/mount.py",
- "source_location": "L710",
+ "source_location": "L713",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "ui_mount_rationale_710",
- "target": "ui_mount_apply_autostart"
+ "source": "ui_mount_rationale_713",
+ "target": "ui_mount_apply_autostart",
+ "confidence_score": 1.0
},
{
"relation": "calls",
@@ -187228,6 +197426,16 @@
"source": "ui_mount_apply_autostart",
"target": "components_filter_chips_toggle"
},
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "src/exlab_wizard/ui/mount.py",
+ "source_location": "L710",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "ui_mount_rationale_710",
+ "target": "ui_mount_apply_autostart"
+ },
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
@@ -187290,6 +197498,17 @@
"source": "ui_mount_build_main_state",
"target": "ui_mount_setup_next_action"
},
+ {
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "src/exlab_wizard/ui/mount.py",
+ "source_location": "L759",
+ "weight": 1.0,
+ "source": "ui_mount_build_main_state",
+ "target": "components_status_bar_segment_derive_footer_segment_states"
+ },
{
"relation": "calls",
"context": "call",
@@ -187316,11 +197535,11 @@
"relation": "rationale_for",
"confidence": "EXTRACTED",
"source_file": "src/exlab_wizard/ui/mount.py",
- "source_location": "L769",
+ "source_location": "L787",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "ui_mount_rationale_769",
- "target": "ui_mount_panel_sessions"
+ "source": "ui_mount_rationale_787",
+ "target": "ui_mount_panel_sessions",
+ "confidence_score": 1.0
},
{
"relation": "calls",
@@ -187333,6 +197552,16 @@
"source": "ui_mount_panel_sessions",
"target": "controller_session_store_on_operations_panel"
},
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "src/exlab_wizard/ui/mount.py",
+ "source_location": "L769",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "ui_mount_rationale_769",
+ "target": "ui_mount_panel_sessions"
+ },
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
@@ -187383,6 +197612,16 @@
"source": "ui_mount_rationale_773",
"target": "ui_mount_panel_sessions"
},
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "src/exlab_wizard/ui/mount.py",
+ "source_location": "L804",
+ "weight": 1.0,
+ "source": "ui_mount_rationale_804",
+ "target": "ui_mount_operation_counts",
+ "confidence_score": 1.0
+ },
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
@@ -187447,11 +197686,11 @@
"relation": "rationale_for",
"confidence": "EXTRACTED",
"source_file": "src/exlab_wizard/ui/mount.py",
- "source_location": "L803",
+ "source_location": "L821",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "ui_mount_rationale_803",
- "target": "ui_mount_setup_next_action"
+ "source": "ui_mount_rationale_821",
+ "target": "ui_mount_setup_next_action",
+ "confidence_score": 1.0
},
{
"relation": "calls",
@@ -187464,6 +197703,16 @@
"source": "ui_mount_setup_next_action",
"target": "api_setup_compute_setup_state"
},
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "src/exlab_wizard/ui/mount.py",
+ "source_location": "L803",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "ui_mount_rationale_803",
+ "target": "ui_mount_setup_next_action"
+ },
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
@@ -187514,6 +197763,16 @@
"source": "ui_mount_rationale_807",
"target": "ui_mount_setup_next_action"
},
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "src/exlab_wizard/ui/mount.py",
+ "source_location": "L851",
+ "weight": 1.0,
+ "source": "ui_mount_rationale_851",
+ "target": "ui_mount_build_main_query",
+ "confidence_score": 1.0
+ },
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
@@ -187584,6 +197843,16 @@
"source": "ui_mount_rationale_830",
"target": "ui_mount_build_main_query"
},
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "src/exlab_wizard/ui/mount.py",
+ "source_location": "L884",
+ "weight": 1.0,
+ "source": "ui_mount_rationale_884",
+ "target": "ui_mount_classify_node",
+ "confidence_score": 1.0
+ },
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
@@ -187698,6 +197967,16 @@
"source": "ui_mount_build_metadata_payload",
"target": "ui_mount_metadata_for_run"
},
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "src/exlab_wizard/ui/mount.py",
+ "source_location": "L928",
+ "weight": 1.0,
+ "source": "ui_mount_rationale_928",
+ "target": "ui_mount_build_metadata_payload",
+ "confidence_score": 1.0
+ },
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
@@ -187768,6 +198047,16 @@
"source": "ui_mount_rationale_895",
"target": "ui_mount_build_metadata_payload"
},
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "src/exlab_wizard/ui/mount.py",
+ "source_location": "L955",
+ "weight": 1.0,
+ "source": "ui_mount_rationale_955",
+ "target": "ui_mount_metadata_for_owned_equipment",
+ "confidence_score": 1.0
+ },
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
@@ -187838,6 +198127,16 @@
"source": "ui_mount_rationale_922",
"target": "ui_mount_metadata_for_owned_equipment"
},
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "src/exlab_wizard/ui/mount.py",
+ "source_location": "L970",
+ "weight": 1.0,
+ "source": "ui_mount_rationale_970",
+ "target": "ui_mount_metadata_for_relay_equipment",
+ "confidence_score": 1.0
+ },
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
@@ -187919,6 +198218,16 @@
"source": "ui_mount_metadata_for_project",
"target": "ui_mount_count_dir_children"
},
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "src/exlab_wizard/ui/mount.py",
+ "source_location": "L984",
+ "weight": 1.0,
+ "source": "ui_mount_rationale_984",
+ "target": "ui_mount_metadata_for_project",
+ "confidence_score": 1.0
+ },
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
@@ -187989,6 +198298,16 @@
"source": "ui_mount_rationale_951",
"target": "ui_mount_metadata_for_project"
},
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "src/exlab_wizard/ui/mount.py",
+ "source_location": "L1018",
+ "weight": 1.0,
+ "source": "ui_mount_rationale_1018",
+ "target": "ui_mount_count_dir_children",
+ "confidence_score": 1.0
+ },
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
@@ -188063,11 +198382,11 @@
"relation": "rationale_for",
"confidence": "EXTRACTED",
"source_file": "src/exlab_wizard/ui/mount.py",
- "source_location": "L1015",
+ "source_location": "L1033",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "ui_mount_rationale_1015",
- "target": "ui_mount_metadata_for_run"
+ "source": "ui_mount_rationale_1033",
+ "target": "ui_mount_metadata_for_run",
+ "confidence_score": 1.0
},
{
"relation": "calls",
@@ -188080,6 +198399,16 @@
"source": "ui_mount_metadata_for_run",
"target": "io_json_files_read_msgspec_json"
},
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "src/exlab_wizard/ui/mount.py",
+ "source_location": "L1015",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "ui_mount_rationale_1015",
+ "target": "ui_mount_metadata_for_run"
+ },
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
@@ -188155,11 +198484,11 @@
"relation": "rationale_for",
"confidence": "EXTRACTED",
"source_file": "src/exlab_wizard/ui/mount.py",
- "source_location": "L1058",
+ "source_location": "L1076",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "ui_mount_rationale_1058",
- "target": "ui_mount_build_selected_file"
+ "source": "ui_mount_rationale_1076",
+ "target": "ui_mount_build_selected_file",
+ "confidence_score": 1.0
},
{
"relation": "calls",
@@ -188172,6 +198501,16 @@
"source": "ui_mount_build_selected_file",
"target": "pages_staging_format_bytes"
},
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "src/exlab_wizard/ui/mount.py",
+ "source_location": "L1058",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "ui_mount_rationale_1058",
+ "target": "ui_mount_build_selected_file"
+ },
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
@@ -188216,11 +198555,11 @@
"relation": "rationale_for",
"confidence": "EXTRACTED",
"source_file": "src/exlab_wizard/ui/mount.py",
- "source_location": "L1107",
+ "source_location": "L1125",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "ui_mount_rationale_1107",
- "target": "ui_mount_build_selected_folder"
+ "source": "ui_mount_rationale_1125",
+ "target": "ui_mount_build_selected_folder",
+ "confidence_score": 1.0
},
{
"relation": "calls",
@@ -188233,6 +198572,16 @@
"source": "ui_mount_build_selected_folder",
"target": "components_sync_rollup_sync_rollup"
},
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "src/exlab_wizard/ui/mount.py",
+ "source_location": "L1107",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "ui_mount_rationale_1107",
+ "target": "ui_mount_build_selected_folder"
+ },
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
@@ -188288,11 +198637,11 @@
"relation": "rationale_for",
"confidence": "EXTRACTED",
"source_file": "src/exlab_wizard/ui/mount.py",
- "source_location": "L1148",
+ "source_location": "L1166",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "ui_mount_rationale_1148",
- "target": "ui_mount_drive_folder_feed"
+ "source": "ui_mount_rationale_1166",
+ "target": "ui_mount_drive_folder_feed",
+ "confidence_score": 1.0
},
{
"relation": "calls",
@@ -188305,6 +198654,16 @@
"source": "ui_mount_drive_folder_feed",
"target": "components_file_list_filelistentry"
},
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "src/exlab_wizard/ui/mount.py",
+ "source_location": "L1148",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "ui_mount_rationale_1148",
+ "target": "ui_mount_drive_folder_feed"
+ },
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
@@ -188375,6 +198734,16 @@
"source": "ui_mount_rationale_1034",
"target": "ui_mount_drive_folder_feed"
},
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "src/exlab_wizard/ui/mount.py",
+ "source_location": "L1227",
+ "weight": 1.0,
+ "source": "ui_mount_rationale_1227",
+ "target": "ui_mount_fetch_folder_async",
+ "confidence_score": 1.0
+ },
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
@@ -188455,6 +198824,16 @@
"source": "ui_mount_rationale_1095",
"target": "ui_mount_fetch_folder_async"
},
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "src/exlab_wizard/ui/mount.py",
+ "source_location": "L1251",
+ "weight": 1.0,
+ "source": "ui_mount_rationale_1251",
+ "target": "ui_mount_refresh_selected_folder",
+ "confidence_score": 1.0
+ },
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
@@ -188527,6 +198906,16 @@
"source": "ui_mount_run_staging_action",
"target": "ui_mount_open_log_dialog"
},
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "src/exlab_wizard/ui/mount.py",
+ "source_location": "L1291",
+ "weight": 1.0,
+ "source": "ui_mount_rationale_1291",
+ "target": "ui_mount_run_staging_action",
+ "confidence_score": 1.0
+ },
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
@@ -188627,117 +199016,6 @@
"source": "ui_mount_rationale_1119",
"target": "ui_mount_run_staging_action"
},
- {
- "relation": "calls",
- "context": "call",
- "confidence": "EXTRACTED",
- "source_file": "src/exlab_wizard/ui/mount.py",
- "source_location": "L1187",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "ui_mount_bulk_clear_verified",
- "target": "ui_mount_show_toast"
- },
- {
- "relation": "rationale_for",
- "confidence": "EXTRACTED",
- "source_file": "src/exlab_wizard/ui/mount.py",
- "source_location": "L1331",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "ui_mount_rationale_1331",
- "target": "ui_mount_bulk_clear_verified"
- },
- {
- "relation": "rationale_for",
- "confidence": "EXTRACTED",
- "source_file": "src/exlab_wizard/ui/mount.py",
- "source_location": "L1326",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "ui_mount_rationale_1326",
- "target": "ui_mount_bulk_clear_verified"
- },
- {
- "relation": "rationale_for",
- "confidence": "EXTRACTED",
- "source_file": "src/exlab_wizard/ui/mount.py",
- "source_location": "L1319",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "ui_mount_rationale_1319",
- "target": "ui_mount_bulk_clear_verified"
- },
- {
- "relation": "rationale_for",
- "confidence": "EXTRACTED",
- "source_file": "src/exlab_wizard/ui/mount.py",
- "source_location": "L1317",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "ui_mount_rationale_1317",
- "target": "ui_mount_bulk_clear_verified"
- },
- {
- "relation": "rationale_for",
- "confidence": "EXTRACTED",
- "source_file": "src/exlab_wizard/ui/mount.py",
- "source_location": "L1282",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "ui_mount_rationale_1282",
- "target": "ui_mount_bulk_clear_verified"
- },
- {
- "relation": "rationale_for",
- "confidence": "EXTRACTED",
- "source_file": "src/exlab_wizard/ui/mount.py",
- "source_location": "L1274",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "ui_mount_rationale_1274",
- "target": "ui_mount_bulk_clear_verified"
- },
- {
- "relation": "rationale_for",
- "confidence": "EXTRACTED",
- "source_file": "src/exlab_wizard/ui/mount.py",
- "source_location": "L1241",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "ui_mount_rationale_1241",
- "target": "ui_mount_bulk_clear_verified"
- },
- {
- "relation": "rationale_for",
- "confidence": "EXTRACTED",
- "source_file": "src/exlab_wizard/ui/mount.py",
- "source_location": "L1142",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "ui_mount_rationale_1142",
- "target": "ui_mount_bulk_clear_verified"
- },
- {
- "relation": "rationale_for",
- "confidence": "EXTRACTED",
- "source_file": "src/exlab_wizard/ui/mount.py",
- "source_location": "L1123",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "ui_mount_rationale_1123",
- "target": "ui_mount_bulk_clear_verified"
- },
- {
- "relation": "rationale_for",
- "confidence": "EXTRACTED",
- "source_file": "src/exlab_wizard/ui/mount.py",
- "source_location": "L1177",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "ui_mount_rationale_1177",
- "target": "ui_mount_bulk_clear_verified"
- },
{
"relation": "calls",
"context": "call",
@@ -188771,6 +199049,16 @@
"source": "ui_mount_file_context_action",
"target": "ui_mount_toggle_keep_local"
},
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "src/exlab_wizard/ui/mount.py",
+ "source_location": "L1356",
+ "weight": 1.0,
+ "source": "ui_mount_rationale_1356",
+ "target": "ui_mount_file_context_action",
+ "confidence_score": 1.0
+ },
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
@@ -188886,11 +199174,11 @@
"relation": "rationale_for",
"confidence": "EXTRACTED",
"source_file": "src/exlab_wizard/ui/mount.py",
- "source_location": "L1415",
+ "source_location": "L1395",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "ui_mount_rationale_1415",
- "target": "ui_mount_toggle_keep_local"
+ "source": "ui_mount_rationale_1395",
+ "target": "ui_mount_toggle_keep_local",
+ "confidence_score": 1.0
},
{
"relation": "calls",
@@ -188914,6 +199202,16 @@
"source": "ui_mount_toggle_keep_local",
"target": "routers_browse_run_relative_posix"
},
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "src/exlab_wizard/ui/mount.py",
+ "source_location": "L1415",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "ui_mount_rationale_1415",
+ "target": "ui_mount_toggle_keep_local"
+ },
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
@@ -189004,6 +199302,16 @@
"source": "ui_mount_rationale_1261",
"target": "ui_mount_toggle_keep_local"
},
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "src/exlab_wizard/ui/mount.py",
+ "source_location": "L1438",
+ "weight": 1.0,
+ "source": "ui_mount_rationale_1438",
+ "target": "ui_mount_open_in_os",
+ "confidence_score": 1.0
+ },
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
@@ -189115,6 +199423,16 @@
"source": "ui_mount_open_operations_modal",
"target": "ui_mount_build_operation_rows"
},
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "src/exlab_wizard/ui/mount.py",
+ "source_location": "L1466",
+ "weight": 1.0,
+ "source": "ui_mount_rationale_1466",
+ "target": "ui_mount_build_operation_rows",
+ "confidence_score": 1.0
+ },
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
@@ -189263,11 +199581,11 @@
"relation": "rationale_for",
"confidence": "EXTRACTED",
"source_file": "src/exlab_wizard/ui/mount.py",
- "source_location": "L1498",
+ "source_location": "L1478",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "ui_mount_rationale_1498",
- "target": "ui_mount_open_operations_modal"
+ "source": "ui_mount_rationale_1478",
+ "target": "ui_mount_open_operations_modal",
+ "confidence_score": 1.0
},
{
"relation": "calls",
@@ -189280,6 +199598,16 @@
"source": "ui_mount_open_operations_modal",
"target": "components_operations_modal_operations_modal"
},
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "src/exlab_wizard/ui/mount.py",
+ "source_location": "L1498",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "ui_mount_rationale_1498",
+ "target": "ui_mount_open_operations_modal"
+ },
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
@@ -189381,6 +199709,16 @@
"source": "ui_mount_open_operation_details",
"target": "ui_mount_show_toast"
},
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "src/exlab_wizard/ui/mount.py",
+ "source_location": "L1502",
+ "weight": 1.0,
+ "source": "ui_mount_rationale_1502",
+ "target": "ui_mount_open_operation_details",
+ "confidence_score": 1.0
+ },
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
@@ -189503,6 +199841,16 @@
"source": "ui_mount_resume_operation",
"target": "ui_mount_open_input_required_dialog"
},
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "src/exlab_wizard/ui/mount.py",
+ "source_location": "L1536",
+ "weight": 1.0,
+ "source": "ui_mount_rationale_1536",
+ "target": "ui_mount_resume_operation",
+ "confidence_score": 1.0
+ },
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
@@ -189618,11 +199966,11 @@
"relation": "rationale_for",
"confidence": "EXTRACTED",
"source_file": "src/exlab_wizard/ui/mount.py",
- "source_location": "L1588",
+ "source_location": "L1568",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "ui_mount_rationale_1588",
- "target": "ui_mount_open_input_required_dialog"
+ "source": "ui_mount_rationale_1568",
+ "target": "ui_mount_open_input_required_dialog",
+ "confidence_score": 1.0
},
{
"relation": "calls",
@@ -189635,6 +199983,16 @@
"source": "ui_mount_open_input_required_dialog",
"target": "components_input_required_dialog_input_required_dialog"
},
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "src/exlab_wizard/ui/mount.py",
+ "source_location": "L1588",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "ui_mount_rationale_1588",
+ "target": "ui_mount_open_input_required_dialog"
+ },
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
@@ -189747,6 +200105,16 @@
"source": "ui_mount_cancel_operation",
"target": "ui_mount_cancel_session"
},
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "src/exlab_wizard/ui/mount.py",
+ "source_location": "L1606",
+ "weight": 1.0,
+ "source": "ui_mount_rationale_1606",
+ "target": "ui_mount_cancel_operation",
+ "confidence_score": 1.0
+ },
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
@@ -189847,6 +200215,16 @@
"source": "ui_mount_rationale_1472",
"target": "ui_mount_cancel_operation"
},
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "src/exlab_wizard/ui/mount.py",
+ "source_location": "L1615",
+ "weight": 1.0,
+ "source": "ui_mount_rationale_1615",
+ "target": "ui_mount_cancel_session",
+ "confidence_score": 1.0
+ },
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
@@ -189947,6 +200325,16 @@
"source": "ui_mount_rationale_1481",
"target": "ui_mount_cancel_session"
},
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "src/exlab_wizard/ui/mount.py",
+ "source_location": "L1656",
+ "weight": 1.0,
+ "source": "ui_mount_rationale_1656",
+ "target": "ui_mount_open_log_dialog",
+ "confidence_score": 1.0
+ },
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
@@ -190051,11 +200439,11 @@
"relation": "rationale_for",
"confidence": "EXTRACTED",
"source_file": "src/exlab_wizard/ui/mount.py",
- "source_location": "L1724",
+ "source_location": "L1704",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "ui_mount_rationale_1724",
- "target": "ui_mount_missing_setup_sections"
+ "source": "ui_mount_rationale_1704",
+ "target": "ui_mount_missing_setup_sections",
+ "confidence_score": 1.0
},
{
"relation": "calls",
@@ -190068,6 +200456,16 @@
"source": "ui_mount_missing_setup_sections",
"target": "api_dependencies_lims_password_present"
},
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "src/exlab_wizard/ui/mount.py",
+ "source_location": "L1724",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "ui_mount_rationale_1724",
+ "target": "ui_mount_missing_setup_sections"
+ },
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
@@ -190213,6 +200611,16 @@
"source": "ui_mount_submit_run",
"target": "ui_mount_templates_dir"
},
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "src/exlab_wizard/ui/mount.py",
+ "source_location": "L1737",
+ "weight": 1.0,
+ "source": "ui_mount_rationale_1737",
+ "target": "ui_mount_templates_dir",
+ "confidence_score": 1.0
+ },
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
@@ -190324,6 +200732,16 @@
"source": "ui_mount_render_run_wizard",
"target": "ui_mount_template_names"
},
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "src/exlab_wizard/ui/mount.py",
+ "source_location": "L1745",
+ "weight": 1.0,
+ "source": "ui_mount_rationale_1745",
+ "target": "ui_mount_template_names",
+ "confidence_score": 1.0
+ },
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
@@ -190439,11 +200857,11 @@
"relation": "rationale_for",
"confidence": "EXTRACTED",
"source_file": "src/exlab_wizard/ui/mount.py",
- "source_location": "L1782",
+ "source_location": "L1762",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "ui_mount_rationale_1782",
- "target": "ui_mount_template_questions_map"
+ "source": "ui_mount_rationale_1762",
+ "target": "ui_mount_template_questions_map",
+ "confidence_score": 1.0
},
{
"relation": "calls",
@@ -190467,6 +200885,16 @@
"source": "ui_mount_template_questions_map",
"target": "constants_enums_templatetype"
},
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "src/exlab_wizard/ui/mount.py",
+ "source_location": "L1782",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "ui_mount_rationale_1782",
+ "target": "ui_mount_template_questions_map"
+ },
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
@@ -190572,11 +201000,11 @@
"relation": "rationale_for",
"confidence": "EXTRACTED",
"source_file": "src/exlab_wizard/ui/mount.py",
- "source_location": "L1815",
+ "source_location": "L1795",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "ui_mount_rationale_1815",
- "target": "ui_mount_lims_catalogue_projects"
+ "source": "ui_mount_rationale_1795",
+ "target": "ui_mount_lims_catalogue_projects",
+ "confidence_score": 1.0
},
{
"relation": "calls",
@@ -190589,6 +201017,16 @@
"source": "ui_mount_lims_catalogue_projects",
"target": "lims_catalogue_read_catalogue"
},
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "src/exlab_wizard/ui/mount.py",
+ "source_location": "L1815",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "ui_mount_rationale_1815",
+ "target": "ui_mount_lims_catalogue_projects"
+ },
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
@@ -190679,6 +201117,16 @@
"source": "ui_mount_rationale_1661",
"target": "ui_mount_lims_catalogue_projects"
},
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "src/exlab_wizard/ui/mount.py",
+ "source_location": "L1829",
+ "weight": 1.0,
+ "source": "ui_mount_rationale_1829",
+ "target": "ui_mount_lims_projects",
+ "confidence_score": 1.0
+ },
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
@@ -190790,6 +201238,16 @@
"source": "ui_mount_render_run_wizard",
"target": "ui_mount_equipment_ids"
},
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "src/exlab_wizard/ui/mount.py",
+ "source_location": "L1859",
+ "weight": 1.0,
+ "source": "ui_mount_rationale_1859",
+ "target": "ui_mount_equipment_ids",
+ "confidence_score": 1.0
+ },
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
@@ -190901,6 +201359,16 @@
"source": "ui_mount_run_creation",
"target": "ui_mount_await_session"
},
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "src/exlab_wizard/ui/mount.py",
+ "source_location": "L1867",
+ "weight": 1.0,
+ "source": "ui_mount_rationale_1867",
+ "target": "ui_mount_await_session",
+ "confidence_score": 1.0
+ },
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
@@ -191023,6 +201491,16 @@
"source": "ui_mount_run_creation",
"target": "ui_mount_consume_session_progress"
},
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "src/exlab_wizard/ui/mount.py",
+ "source_location": "L1886",
+ "weight": 1.0,
+ "source": "ui_mount_rationale_1886",
+ "target": "ui_mount_consume_session_progress",
+ "confidence_score": 1.0
+ },
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
@@ -191123,6 +201601,16 @@
"source": "ui_mount_rationale_1752",
"target": "ui_mount_consume_session_progress"
},
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "src/exlab_wizard/ui/mount.py",
+ "source_location": "L1929",
+ "weight": 1.0,
+ "source": "ui_mount_rationale_1929",
+ "target": "ui_mount_close_dialog",
+ "confidence_score": 1.0
+ },
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
@@ -191249,11 +201737,11 @@
"relation": "rationale_for",
"confidence": "EXTRACTED",
"source_file": "src/exlab_wizard/ui/mount.py",
- "source_location": "L1957",
+ "source_location": "L1937",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "ui_mount_rationale_1957",
- "target": "ui_mount_submit_project"
+ "source": "ui_mount_rationale_1937",
+ "target": "ui_mount_submit_project",
+ "confidence_score": 1.0
},
{
"relation": "calls",
@@ -191266,6 +201754,16 @@
"source": "ui_mount_submit_project",
"target": "controller_creation_projectcreaterequest"
},
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "src/exlab_wizard/ui/mount.py",
+ "source_location": "L1957",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "ui_mount_rationale_1957",
+ "target": "ui_mount_submit_project"
+ },
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
@@ -191393,11 +201891,11 @@
"relation": "rationale_for",
"confidence": "EXTRACTED",
"source_file": "src/exlab_wizard/ui/mount.py",
- "source_location": "L1990",
+ "source_location": "L1970",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "ui_mount_rationale_1990",
- "target": "ui_mount_submit_run"
+ "source": "ui_mount_rationale_1970",
+ "target": "ui_mount_submit_run",
+ "confidence_score": 1.0
},
{
"relation": "calls",
@@ -191410,6 +201908,16 @@
"source": "ui_mount_submit_run",
"target": "controller_creation_runcreaterequest"
},
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "src/exlab_wizard/ui/mount.py",
+ "source_location": "L1990",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "ui_mount_rationale_1990",
+ "target": "ui_mount_submit_run"
+ },
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
@@ -191511,6 +202019,16 @@
"source": "ui_mount_run_creation",
"target": "ui_mount_show_toast"
},
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "src/exlab_wizard/ui/mount.py",
+ "source_location": "L2011",
+ "weight": 1.0,
+ "source": "ui_mount_rationale_2011",
+ "target": "ui_mount_run_creation",
+ "confidence_score": 1.0
+ },
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
@@ -191611,6 +202129,16 @@
"source": "ui_mount_rationale_1877",
"target": "ui_mount_run_creation"
},
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "src/exlab_wizard/ui/mount.py",
+ "source_location": "L2054",
+ "weight": 1.0,
+ "source": "ui_mount_rationale_2054",
+ "target": "ui_mount_safe_audit",
+ "confidence_score": 1.0
+ },
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
@@ -191714,13 +202242,13 @@
{
"relation": "calls",
"context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
+ "confidence": "EXTRACTED",
"source_file": "src/exlab_wizard/ui/mount.py",
- "source_location": "L1940",
+ "source_location": "L1187",
"weight": 1.0,
- "source": "ui_mount_build_staging_state",
- "target": "orchestrator_staging_query_list_staged_runs"
+ "confidence_score": 1.0,
+ "source": "ui_mount_bulk_clear_verified",
+ "target": "ui_mount_show_toast"
},
{
"relation": "contains",
@@ -192126,6 +202654,36 @@
"source": "components_file_list_rationale_1",
"target": "src_exlab_wizard_ui_components_file_list_py"
},
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "src/exlab_wizard/ui/components/file_list.py",
+ "source_location": "L40",
+ "weight": 1.0,
+ "source": "components_file_list_rationale_40",
+ "target": "components_file_list_filelistentry",
+ "confidence_score": 1.0
+ },
+ {
+ "relation": "uses",
+ "confidence": "INFERRED",
+ "source_file": "tests/unit/ui/test_mount.py",
+ "source_location": "L27",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "ui_test_mount_fakeui",
+ "target": "components_file_list_filelistentry"
+ },
+ {
+ "relation": "uses",
+ "confidence": "INFERRED",
+ "source_file": "tests/unit/ui/test_mount.py",
+ "source_location": "L27",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "ui_test_mount_boomui",
+ "target": "components_file_list_filelistentry"
+ },
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
@@ -192140,11 +202698,11 @@
"relation": "rationale_for",
"confidence": "EXTRACTED",
"source_file": "src/exlab_wizard/ui/components/file_list.py",
- "source_location": "L59",
+ "source_location": "L60",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "components_file_list_rationale_59",
- "target": "components_file_list_fileliststate"
+ "source": "components_file_list_rationale_60",
+ "target": "components_file_list_fileliststate",
+ "confidence_score": 1.0
},
{
"relation": "uses",
@@ -192167,6 +202725,16 @@
"source": "pages_main_render_centre_file_list",
"target": "components_file_list_fileliststate"
},
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "src/exlab_wizard/ui/components/file_list.py",
+ "source_location": "L59",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "components_file_list_rationale_59",
+ "target": "components_file_list_fileliststate"
+ },
{
"relation": "calls",
"context": "call",
@@ -192178,6 +202746,16 @@
"source": "components_file_list_diff_file_lists",
"target": "components_file_list_filelistdiff"
},
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "src/exlab_wizard/ui/components/file_list.py",
+ "source_location": "L73",
+ "weight": 1.0,
+ "source": "components_file_list_rationale_73",
+ "target": "components_file_list_filelistdiff",
+ "confidence_score": 1.0
+ },
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
@@ -192198,6 +202776,16 @@
"source": "components_file_list_rationale_69",
"target": "components_file_list_filelistdiff"
},
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "src/exlab_wizard/ui/components/file_list.py",
+ "source_location": "L84",
+ "weight": 1.0,
+ "source": "components_file_list_rationale_84",
+ "target": "components_file_list_diff_file_lists",
+ "confidence_score": 1.0
+ },
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
@@ -192229,6 +202817,16 @@
"source": "components_file_list_render_row",
"target": "components_file_list_row_background"
},
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "src/exlab_wizard/ui/components/file_list.py",
+ "source_location": "L123",
+ "weight": 1.0,
+ "source": "components_file_list_rationale_123",
+ "target": "components_file_list_row_background",
+ "confidence_score": 1.0
+ },
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
@@ -192275,11 +202873,11 @@
"relation": "rationale_for",
"confidence": "EXTRACTED",
"source_file": "src/exlab_wizard/ui/components/file_list.py",
- "source_location": "L179",
+ "source_location": "L180",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "components_file_list_rationale_179",
- "target": "components_file_list_render_file_list"
+ "source": "components_file_list_rationale_180",
+ "target": "components_file_list_render_file_list",
+ "confidence_score": 1.0
},
{
"relation": "calls",
@@ -192292,6 +202890,16 @@
"source": "pages_main_render_centre_file_list",
"target": "components_file_list_render_file_list"
},
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "src/exlab_wizard/ui/components/file_list.py",
+ "source_location": "L179",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "components_file_list_rationale_179",
+ "target": "components_file_list_render_file_list"
+ },
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
@@ -192332,6 +202940,16 @@
"source": "components_file_list_rationale_118",
"target": "components_file_list_render_file_list"
},
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "src/exlab_wizard/ui/components/file_list.py",
+ "source_location": "L224",
+ "weight": 1.0,
+ "source": "components_file_list_rationale_224",
+ "target": "components_file_list_render_header",
+ "confidence_score": 1.0
+ },
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
@@ -192919,6 +203537,16 @@
"source": "components_tree_treenode",
"target": "constants_enums_treeprojectstatus"
},
+ {
+ "relation": "uses",
+ "confidence": "INFERRED",
+ "source_file": "src/exlab_wizard/ui/pages/main.py",
+ "source_location": "L27",
+ "weight": 0.8,
+ "source": "pages_main_mainpagestate",
+ "target": "components_tree_treenode",
+ "confidence_score": 0.5
+ },
{
"relation": "calls",
"context": "call",
@@ -193003,6 +203631,17 @@
"source": "components_tree_rationale_153",
"target": "components_tree_build_nodes"
},
+ {
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "src/exlab_wizard/ui/pages/main.py",
+ "source_location": "L373",
+ "weight": 1.0,
+ "source": "pages_main_render_file_explorer_page",
+ "target": "components_tree_build_nodes"
+ },
{
"relation": "calls",
"context": "call",
@@ -193056,6 +203695,16 @@
"source": "components_tree_tree_header_slot",
"target": "components_tree_ctx_emit"
},
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "src/exlab_wizard/ui/components/tree.py",
+ "source_location": "L306",
+ "weight": 1.0,
+ "source": "components_tree_rationale_306",
+ "target": "components_tree_ctx_emit",
+ "confidence_score": 1.0
+ },
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
@@ -193081,11 +203730,11 @@
"relation": "rationale_for",
"confidence": "EXTRACTED",
"source_file": "src/exlab_wizard/ui/components/tree.py",
- "source_location": "L372",
+ "source_location": "L382",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "components_tree_rationale_372",
- "target": "components_tree_build_tree"
+ "source": "components_tree_rationale_382",
+ "target": "components_tree_build_tree",
+ "confidence_score": 1.0
},
{
"relation": "calls",
@@ -193098,6 +203747,16 @@
"source": "pages_main_render_file_explorer_page",
"target": "components_tree_build_tree"
},
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "src/exlab_wizard/ui/components/tree.py",
+ "source_location": "L372",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "components_tree_rationale_372",
+ "target": "components_tree_build_tree"
+ },
{
"relation": "contains",
"confidence": "EXTRACTED",
@@ -193396,11 +204055,11 @@
"relation": "rationale_for",
"confidence": "EXTRACTED",
"source_file": "src/exlab_wizard/ui/components/metadata_pane.py",
- "source_location": "L37",
+ "source_location": "L38",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "components_metadata_pane_rationale_37",
- "target": "components_metadata_pane_metadatapanestate"
+ "source": "components_metadata_pane_rationale_38",
+ "target": "components_metadata_pane_metadatapanestate",
+ "confidence_score": 1.0
},
{
"relation": "uses",
@@ -193423,6 +204082,16 @@
"source": "pages_main_render_right_pane",
"target": "components_metadata_pane_metadatapanestate"
},
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "src/exlab_wizard/ui/components/metadata_pane.py",
+ "source_location": "L37",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "components_metadata_pane_rationale_37",
+ "target": "components_metadata_pane_metadatapanestate"
+ },
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
@@ -193444,6 +204113,16 @@
"source": "components_metadata_pane_render_selected_file_card",
"target": "components_metadata_pane_selected_file_card_title"
},
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "src/exlab_wizard/ui/components/metadata_pane.py",
+ "source_location": "L52",
+ "weight": 1.0,
+ "source": "components_metadata_pane_rationale_52",
+ "target": "components_metadata_pane_selected_file_card_title",
+ "confidence_score": 1.0
+ },
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
@@ -193535,11 +204214,11 @@
"relation": "rationale_for",
"confidence": "EXTRACTED",
"source_file": "src/exlab_wizard/ui/components/metadata_pane.py",
- "source_location": "L67",
+ "source_location": "L68",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "components_metadata_pane_rationale_67",
- "target": "components_metadata_pane_render_metadata_pane"
+ "source": "components_metadata_pane_rationale_68",
+ "target": "components_metadata_pane_render_metadata_pane",
+ "confidence_score": 1.0
},
{
"relation": "calls",
@@ -193552,6 +204231,16 @@
"source": "pages_main_render_right_pane",
"target": "components_metadata_pane_render_metadata_pane"
},
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "src/exlab_wizard/ui/components/metadata_pane.py",
+ "source_location": "L67",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "components_metadata_pane_rationale_67",
+ "target": "components_metadata_pane_render_metadata_pane"
+ },
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
@@ -193654,11 +204343,11 @@
"relation": "rationale_for",
"confidence": "EXTRACTED",
"source_file": "src/exlab_wizard/ui/components/metadata_pane.py",
- "source_location": "L130",
+ "source_location": "L133",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "components_metadata_pane_rationale_130",
- "target": "components_metadata_pane_kv_sync"
+ "source": "components_metadata_pane_rationale_133",
+ "target": "components_metadata_pane_kv_sync",
+ "confidence_score": 1.0
},
{
"relation": "calls",
@@ -193671,6 +204360,16 @@
"source": "components_metadata_pane_kv_sync",
"target": "components_sync_status_icon_sync_status_icon"
},
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "src/exlab_wizard/ui/components/metadata_pane.py",
+ "source_location": "L130",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "components_metadata_pane_rationale_130",
+ "target": "components_metadata_pane_kv_sync"
+ },
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
@@ -193681,6 +204380,16 @@
"source": "components_metadata_pane_rationale_124",
"target": "components_metadata_pane_kv_sync"
},
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "src/exlab_wizard/ui/components/metadata_pane.py",
+ "source_location": "L151",
+ "weight": 1.0,
+ "source": "components_metadata_pane_rationale_151",
+ "target": "components_metadata_pane_render_selected_file_card",
+ "confidence_score": 1.0
+ },
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
@@ -194110,6 +204819,26 @@
"source": "components_input_required_dialog_rationale_58",
"target": "components_input_required_dialog_input_required_dialog"
},
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "src/exlab_wizard/ui/components/status_bar_segment.py",
+ "source_location": "L32",
+ "weight": 1.0,
+ "source": "src_exlab_wizard_ui_components_status_bar_segment_py",
+ "target": "components_status_bar_segment_footersegmentstates",
+ "confidence_score": 1.0
+ },
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "src/exlab_wizard/ui/components/status_bar_segment.py",
+ "source_location": "L46",
+ "weight": 1.0,
+ "source": "src_exlab_wizard_ui_components_status_bar_segment_py",
+ "target": "components_status_bar_segment_derive_footer_segment_states",
+ "confidence_score": 1.0
+ },
{
"relation": "contains",
"confidence": "EXTRACTED",
@@ -194150,6 +204879,37 @@
"source": "components_status_bar_segment_rationale_1",
"target": "src_exlab_wizard_ui_components_status_bar_segment_py"
},
+ {
+ "relation": "calls",
+ "context": "call",
+ "confidence": "EXTRACTED",
+ "source_file": "src/exlab_wizard/ui/components/status_bar_segment.py",
+ "source_location": "L69",
+ "weight": 1.0,
+ "source": "components_status_bar_segment_derive_footer_segment_states",
+ "target": "components_status_bar_segment_footersegmentstates",
+ "confidence_score": 1.0
+ },
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "src/exlab_wizard/ui/components/status_bar_segment.py",
+ "source_location": "L33",
+ "weight": 1.0,
+ "source": "components_status_bar_segment_rationale_33",
+ "target": "components_status_bar_segment_footersegmentstates",
+ "confidence_score": 1.0
+ },
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "src/exlab_wizard/ui/components/status_bar_segment.py",
+ "source_location": "L52",
+ "weight": 1.0,
+ "source": "components_status_bar_segment_rationale_52",
+ "target": "components_status_bar_segment_derive_footer_segment_states",
+ "confidence_score": 1.0
+ },
{
"relation": "calls",
"context": "call",
@@ -194161,6 +204921,16 @@
"source": "components_status_bar_segment_segment_spec",
"target": "components_status_bar_segment_segmentspec"
},
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "src/exlab_wizard/ui/components/status_bar_segment.py",
+ "source_location": "L78",
+ "weight": 1.0,
+ "source": "components_status_bar_segment_rationale_78",
+ "target": "components_status_bar_segment_segmentspec",
+ "confidence_score": 1.0
+ },
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
@@ -194182,6 +204952,16 @@
"source": "components_status_bar_segment_status_bar_segment",
"target": "components_status_bar_segment_segment_spec"
},
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "src/exlab_wizard/ui/components/status_bar_segment.py",
+ "source_location": "L91",
+ "weight": 1.0,
+ "source": "components_status_bar_segment_rationale_91",
+ "target": "components_status_bar_segment_segment_spec",
+ "confidence_score": 1.0
+ },
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
@@ -194192,6 +204972,16 @@
"source": "components_status_bar_segment_rationale_46",
"target": "components_status_bar_segment_segment_spec"
},
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "src/exlab_wizard/ui/components/status_bar_segment.py",
+ "source_location": "L115",
+ "weight": 1.0,
+ "source": "components_status_bar_segment_rationale_115",
+ "target": "components_status_bar_segment_status_bar_segment",
+ "confidence_score": 1.0
+ },
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
@@ -194202,6 +204992,16 @@
"source": "components_status_bar_segment_rationale_70",
"target": "components_status_bar_segment_status_bar_segment"
},
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "src/exlab_wizard/ui/components/sync_status_icon.py",
+ "source_location": "L118",
+ "weight": 1.0,
+ "source": "src_exlab_wizard_ui_components_sync_status_icon_py",
+ "target": "components_sync_status_icon_sync_legend_entries",
+ "confidence_score": 1.0
+ },
{
"relation": "contains",
"confidence": "EXTRACTED",
@@ -194232,6 +205032,27 @@
"source": "components_sync_status_icon_rationale_1",
"target": "src_exlab_wizard_ui_components_sync_status_icon_py"
},
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "src/exlab_wizard/ui/components/sync_status_icon.py",
+ "source_location": "L119",
+ "weight": 1.0,
+ "source": "components_sync_status_icon_rationale_119",
+ "target": "components_sync_status_icon_sync_legend_entries",
+ "confidence_score": 1.0
+ },
+ {
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "src/exlab_wizard/ui/pages/main.py",
+ "source_location": "L610",
+ "weight": 1.0,
+ "source": "pages_main_render_sync_legend",
+ "target": "components_sync_status_icon_sync_legend_entries"
+ },
{
"relation": "calls",
"context": "call",
@@ -194243,6 +205064,16 @@
"source": "components_sync_status_icon_sync_status_icon",
"target": "components_sync_status_icon_sync_status_props"
},
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "src/exlab_wizard/ui/components/sync_status_icon.py",
+ "source_location": "L138",
+ "weight": 1.0,
+ "source": "components_sync_status_icon_rationale_138",
+ "target": "components_sync_status_icon_sync_status_props",
+ "confidence_score": 1.0
+ },
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
@@ -194263,6 +205094,16 @@
"source": "components_sync_status_icon_rationale_113",
"target": "components_sync_status_icon_sync_status_props"
},
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "src/exlab_wizard/ui/components/sync_status_icon.py",
+ "source_location": "L177",
+ "weight": 1.0,
+ "source": "components_sync_status_icon_rationale_177",
+ "target": "components_sync_status_icon_sync_status_icon",
+ "confidence_score": 1.0
+ },
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
@@ -194428,11 +205269,11 @@
"relation": "rationale_for",
"confidence": "EXTRACTED",
"source_file": "src/exlab_wizard/ui/components/framed_pane.py",
- "source_location": "L96",
+ "source_location": "L97",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "components_framed_pane_rationale_96",
- "target": "components_framed_pane_framed_pane"
+ "source": "components_framed_pane_rationale_97",
+ "target": "components_framed_pane_framed_pane",
+ "confidence_score": 1.0
},
{
"relation": "calls",
@@ -194445,6 +205286,16 @@
"source": "pages_main_render_file_explorer_page",
"target": "components_framed_pane_framed_pane"
},
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "src/exlab_wizard/ui/components/framed_pane.py",
+ "source_location": "L96",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "components_framed_pane_rationale_96",
+ "target": "components_framed_pane_framed_pane"
+ },
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
@@ -195549,6 +206400,36 @@
"source": "components_filter_chips_rationale_69",
"target": "components_filter_chips_filter_chips"
},
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "src/exlab_wizard/ui/components/empty_state.py",
+ "source_location": "L21",
+ "weight": 1.0,
+ "source": "src_exlab_wizard_ui_components_empty_state_py",
+ "target": "components_empty_state_empty_state",
+ "confidence_score": 1.0
+ },
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "src/exlab_wizard/ui/components/empty_state.py",
+ "source_location": "L1",
+ "weight": 1.0,
+ "source": "components_empty_state_rationale_1",
+ "target": "src_exlab_wizard_ui_components_empty_state_py",
+ "confidence_score": 1.0
+ },
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "src/exlab_wizard/ui/components/empty_state.py",
+ "source_location": "L22",
+ "weight": 1.0,
+ "source": "components_empty_state_rationale_22",
+ "target": "components_empty_state_empty_state",
+ "confidence_score": 1.0
+ },
{
"relation": "contains",
"confidence": "EXTRACTED",
@@ -196490,11 +207371,11 @@
"relation": "rationale_for",
"confidence": "EXTRACTED",
"source_file": "src/exlab_wizard/ui/pages/wizard_equipment.py",
- "source_location": "L52",
+ "source_location": "L58",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "pages_wizard_equipment_rationale_52",
- "target": "pages_wizard_equipment_equipmentwizardstate"
+ "source": "pages_wizard_equipment_rationale_58",
+ "target": "pages_wizard_equipment_equipmentwizardstate",
+ "confidence_score": 1.0
},
{
"relation": "uses",
@@ -196506,6 +207387,16 @@
"source": "pages_wizard_equipment_equipmentwizardstate",
"target": "config_models_equipmentconfig"
},
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "src/exlab_wizard/ui/pages/wizard_equipment.py",
+ "source_location": "L52",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "pages_wizard_equipment_rationale_52",
+ "target": "pages_wizard_equipment_equipmentwizardstate"
+ },
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
@@ -196516,6 +207407,16 @@
"source": "pages_wizard_equipment_rationale_50",
"target": "pages_wizard_equipment_equipmentwizardstate"
},
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "src/exlab_wizard/ui/pages/wizard_equipment.py",
+ "source_location": "L79",
+ "weight": 1.0,
+ "source": "pages_wizard_equipment_rationale_79",
+ "target": "pages_wizard_equipment_can_advance",
+ "confidence_score": 1.0
+ },
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
@@ -196547,6 +207448,16 @@
"source": "pages_wizard_equipment_maybe_confirm",
"target": "pages_wizard_equipment_assemble_equipment_config"
},
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "src/exlab_wizard/ui/pages/wizard_equipment.py",
+ "source_location": "L107",
+ "weight": 1.0,
+ "source": "pages_wizard_equipment_rationale_107",
+ "target": "pages_wizard_equipment_assemble_equipment_config",
+ "confidence_score": 1.0
+ },
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
@@ -196567,6 +207478,16 @@
"source": "pages_wizard_equipment_rationale_122",
"target": "pages_wizard_equipment_assemble_equipment_config"
},
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "src/exlab_wizard/ui/pages/wizard_equipment.py",
+ "source_location": "L127",
+ "weight": 1.0,
+ "source": "pages_wizard_equipment_rationale_127",
+ "target": "pages_wizard_equipment_render_wizard_equipment",
+ "confidence_score": 1.0
+ },
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
@@ -196778,6 +207699,16 @@
"source": "pages_settings_settings_sections_for",
"target": "pages_settings_nas_mode_equipment"
},
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "src/exlab_wizard/ui/pages/settings.py",
+ "source_location": "L62",
+ "weight": 1.0,
+ "source": "pages_settings_rationale_62",
+ "target": "pages_settings_nas_mode_equipment",
+ "confidence_score": 1.0
+ },
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
@@ -196799,6 +207730,16 @@
"source": "pages_settings_render_settings_page",
"target": "pages_settings_settings_sections_for"
},
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "src/exlab_wizard/ui/pages/settings.py",
+ "source_location": "L77",
+ "weight": 1.0,
+ "source": "pages_settings_rationale_77",
+ "target": "pages_settings_settings_sections_for",
+ "confidence_score": 1.0
+ },
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
@@ -196845,11 +207786,11 @@
"relation": "rationale_for",
"confidence": "EXTRACTED",
"source_file": "src/exlab_wizard/ui/pages/settings.py",
- "source_location": "L97",
+ "source_location": "L96",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "pages_settings_rationale_97",
- "target": "pages_settings_settingsstate"
+ "source": "pages_settings_rationale_96",
+ "target": "pages_settings_settingsstate",
+ "confidence_score": 1.0
},
{
"relation": "uses",
@@ -196861,6 +207802,16 @@
"source": "pages_settings_settingsstate",
"target": "config_models_config"
},
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "src/exlab_wizard/ui/pages/settings.py",
+ "source_location": "L97",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "pages_settings_rationale_97",
+ "target": "pages_settings_settingsstate"
+ },
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
@@ -196882,6 +207833,16 @@
"source": "pages_settings_render_settings_page",
"target": "pages_settings_first_incomplete_section"
},
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "src/exlab_wizard/ui/pages/settings.py",
+ "source_location": "L105",
+ "weight": 1.0,
+ "source": "pages_settings_rationale_105",
+ "target": "pages_settings_first_incomplete_section",
+ "confidence_score": 1.0
+ },
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
@@ -196913,6 +207874,16 @@
"source": "pages_settings_render_settings_page",
"target": "pages_settings_save_button_label"
},
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "src/exlab_wizard/ui/pages/settings.py",
+ "source_location": "L125",
+ "weight": 1.0,
+ "source": "pages_settings_rationale_125",
+ "target": "pages_settings_save_button_label",
+ "confidence_score": 1.0
+ },
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
@@ -196944,6 +207915,16 @@
"source": "pages_settings_render_settings_page",
"target": "pages_settings_section_has_warning"
},
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "src/exlab_wizard/ui/pages/settings.py",
+ "source_location": "L135",
+ "weight": 1.0,
+ "source": "pages_settings_rationale_135",
+ "target": "pages_settings_section_has_warning",
+ "confidence_score": 1.0
+ },
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
@@ -196975,6 +207956,16 @@
"source": "pages_settings_render_settings_page",
"target": "pages_settings_section_is_dirty"
},
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "src/exlab_wizard/ui/pages/settings.py",
+ "source_location": "L141",
+ "weight": 1.0,
+ "source": "pages_settings_rationale_141",
+ "target": "pages_settings_section_is_dirty",
+ "confidence_score": 1.0
+ },
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
@@ -197006,6 +207997,16 @@
"source": "pages_settings_render_settings_page",
"target": "pages_settings_build_settings_draft"
},
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "src/exlab_wizard/ui/pages/settings.py",
+ "source_location": "L147",
+ "weight": 1.0,
+ "source": "pages_settings_rationale_147",
+ "target": "pages_settings_build_settings_draft",
+ "confidence_score": 1.0
+ },
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
@@ -197026,6 +208027,16 @@
"source": "pages_settings_rationale_151",
"target": "pages_settings_build_settings_draft"
},
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "src/exlab_wizard/ui/pages/settings.py",
+ "source_location": "L158",
+ "weight": 1.0,
+ "source": "pages_settings_rationale_158",
+ "target": "pages_settings_finalize_settings_draft",
+ "confidence_score": 1.0
+ },
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
@@ -197057,6 +208068,16 @@
"source": "pages_settings_render_section_body",
"target": "pages_settings_lims_credential_initial_state"
},
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "src/exlab_wizard/ui/pages/settings.py",
+ "source_location": "L176",
+ "weight": 1.0,
+ "source": "pages_settings_rationale_176",
+ "target": "pages_settings_lims_credential_initial_state",
+ "confidence_score": 1.0
+ },
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
@@ -197099,6 +208120,16 @@
"source": "pages_settings_render_settings_page",
"target": "pages_settings_render_section_body"
},
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "src/exlab_wizard/ui/pages/settings.py",
+ "source_location": "L205",
+ "weight": 1.0,
+ "source": "pages_settings_rationale_205",
+ "target": "pages_settings_render_settings_page",
+ "confidence_score": 1.0
+ },
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
@@ -197130,6 +208161,16 @@
"source": "pages_settings_render_section_body",
"target": "pages_settings_render_chip_editor"
},
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "src/exlab_wizard/ui/pages/settings.py",
+ "source_location": "L394",
+ "weight": 1.0,
+ "source": "pages_settings_rationale_394",
+ "target": "pages_settings_render_chip_editor",
+ "confidence_score": 1.0
+ },
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
@@ -197172,6 +208213,16 @@
"source": "pages_settings_render_section_body",
"target": "pages_settings_render_nas_remote_section"
},
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "src/exlab_wizard/ui/pages/settings.py",
+ "source_location": "L483",
+ "weight": 1.0,
+ "source": "pages_settings_rationale_483",
+ "target": "pages_settings_render_section_body",
+ "confidence_score": 1.0
+ },
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
@@ -197203,6 +208254,16 @@
"source": "pages_settings_rationale_492",
"target": "pages_settings_render_section_body"
},
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "src/exlab_wizard/ui/pages/settings.py",
+ "source_location": "L700",
+ "weight": 1.0,
+ "source": "pages_settings_rationale_700",
+ "target": "pages_settings_render_equipment_section",
+ "confidence_score": 1.0
+ },
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
@@ -197227,11 +208288,11 @@
"relation": "rationale_for",
"confidence": "EXTRACTED",
"source_file": "src/exlab_wizard/ui/pages/settings.py",
- "source_location": "L775",
+ "source_location": "L770",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "pages_settings_rationale_775",
- "target": "pages_settings_render_nas_remote_section"
+ "source": "pages_settings_rationale_770",
+ "target": "pages_settings_render_nas_remote_section",
+ "confidence_score": 1.0
},
{
"relation": "calls",
@@ -197244,6 +208305,16 @@
"source": "pages_settings_render_nas_remote_section",
"target": "api_dependencies_nas_remote_available"
},
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "src/exlab_wizard/ui/pages/settings.py",
+ "source_location": "L775",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "pages_settings_rationale_775",
+ "target": "pages_settings_render_nas_remote_section"
+ },
{
"relation": "contains",
"confidence": "EXTRACTED",
@@ -197366,6 +208437,26 @@
"source": "src_exlab_wizard_ui_pages_main_py",
"target": "pages_main_chip_state_to_tree_filters"
},
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "src/exlab_wizard/ui/pages/main.py",
+ "source_location": "L117",
+ "weight": 1.0,
+ "source": "src_exlab_wizard_ui_pages_main_py",
+ "target": "pages_main_count_search_results",
+ "confidence_score": 1.0
+ },
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "src/exlab_wizard/ui/pages/main.py",
+ "source_location": "L138",
+ "weight": 1.0,
+ "source": "src_exlab_wizard_ui_pages_main_py",
+ "target": "pages_main_density_card_class",
+ "confidence_score": 1.0
+ },
{
"relation": "contains",
"confidence": "EXTRACTED",
@@ -197396,6 +208487,16 @@
"source": "src_exlab_wizard_ui_pages_main_py",
"target": "pages_main_render_file_explorer_page"
},
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "src/exlab_wizard/ui/pages/main.py",
+ "source_location": "L584",
+ "weight": 1.0,
+ "source": "src_exlab_wizard_ui_pages_main_py",
+ "target": "pages_main_render_sync_legend",
+ "confidence_score": 1.0
+ },
{
"relation": "contains",
"confidence": "EXTRACTED",
@@ -197441,11 +208542,11 @@
"relation": "rationale_for",
"confidence": "EXTRACTED",
"source_file": "src/exlab_wizard/ui/pages/main.py",
- "source_location": "L34",
+ "source_location": "L35",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "pages_main_rationale_34",
- "target": "pages_main_mainpagestate"
+ "source": "pages_main_rationale_35",
+ "target": "pages_main_mainpagestate",
+ "confidence_score": 1.0
},
{
"relation": "uses",
@@ -197457,6 +208558,16 @@
"source": "pages_main_mainpagestate",
"target": "pages_staging_stagingdockstate"
},
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "src/exlab_wizard/ui/pages/main.py",
+ "source_location": "L34",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "pages_main_rationale_34",
+ "target": "pages_main_mainpagestate"
+ },
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
@@ -197478,6 +208589,16 @@
"source": "pages_main_render_file_explorer_page",
"target": "pages_main_default_chips"
},
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "src/exlab_wizard/ui/pages/main.py",
+ "source_location": "L97",
+ "weight": 1.0,
+ "source": "pages_main_rationale_97",
+ "target": "pages_main_default_chips",
+ "confidence_score": 1.0
+ },
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
@@ -197519,6 +208640,16 @@
"source": "pages_main_render_file_explorer_page",
"target": "pages_main_chip_state_to_tree_filters"
},
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "src/exlab_wizard/ui/pages/main.py",
+ "source_location": "L107",
+ "weight": 1.0,
+ "source": "pages_main_rationale_107",
+ "target": "pages_main_chip_state_to_tree_filters",
+ "confidence_score": 1.0
+ },
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
@@ -197549,6 +208680,48 @@
"source": "pages_main_rationale_86",
"target": "pages_main_chip_state_to_tree_filters"
},
+ {
+ "relation": "calls",
+ "context": "call",
+ "confidence": "EXTRACTED",
+ "source_file": "src/exlab_wizard/ui/pages/main.py",
+ "source_location": "L372",
+ "weight": 1.0,
+ "source": "pages_main_render_file_explorer_page",
+ "target": "pages_main_count_search_results",
+ "confidence_score": 1.0
+ },
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "src/exlab_wizard/ui/pages/main.py",
+ "source_location": "L118",
+ "weight": 1.0,
+ "source": "pages_main_rationale_118",
+ "target": "pages_main_count_search_results",
+ "confidence_score": 1.0
+ },
+ {
+ "relation": "calls",
+ "context": "call",
+ "confidence": "EXTRACTED",
+ "source_file": "src/exlab_wizard/ui/pages/main.py",
+ "source_location": "L446",
+ "weight": 1.0,
+ "source": "pages_main_render_file_explorer_page",
+ "target": "pages_main_density_card_class",
+ "confidence_score": 1.0
+ },
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "src/exlab_wizard/ui/pages/main.py",
+ "source_location": "L139",
+ "weight": 1.0,
+ "source": "pages_main_rationale_139",
+ "target": "pages_main_density_card_class",
+ "confidence_score": 1.0
+ },
{
"relation": "calls",
"context": "call",
@@ -197560,6 +208733,16 @@
"source": "pages_main_render_right_pane",
"target": "pages_main_problems_badge_text"
},
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "src/exlab_wizard/ui/pages/main.py",
+ "source_location": "L151",
+ "weight": 1.0,
+ "source": "pages_main_rationale_151",
+ "target": "pages_main_problems_badge_text",
+ "confidence_score": 1.0
+ },
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
@@ -197601,6 +208784,16 @@
"source": "pages_main_render_file_explorer_page",
"target": "pages_main_setup_incomplete_banner_props"
},
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "src/exlab_wizard/ui/pages/main.py",
+ "source_location": "L163",
+ "weight": 1.0,
+ "source": "pages_main_rationale_163",
+ "target": "pages_main_setup_incomplete_banner_props",
+ "confidence_score": 1.0
+ },
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
@@ -197653,6 +208846,16 @@
"source": "pages_main_render_file_explorer_page",
"target": "pages_main_render_right_pane"
},
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "src/exlab_wizard/ui/pages/main.py",
+ "source_location": "L214",
+ "weight": 1.0,
+ "source": "pages_main_rationale_214",
+ "target": "pages_main_render_file_explorer_page",
+ "confidence_score": 1.0
+ },
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
@@ -197693,6 +208896,26 @@
"source": "pages_main_rationale_157",
"target": "pages_main_render_file_explorer_page"
},
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "src/exlab_wizard/ui/pages/main.py",
+ "source_location": "L585",
+ "weight": 1.0,
+ "source": "pages_main_rationale_585",
+ "target": "pages_main_render_sync_legend",
+ "confidence_score": 1.0
+ },
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "src/exlab_wizard/ui/pages/main.py",
+ "source_location": "L631",
+ "weight": 1.0,
+ "source": "pages_main_rationale_631",
+ "target": "pages_main_render_centre_file_list",
+ "confidence_score": 1.0
+ },
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
@@ -197873,6 +209096,16 @@
"source": "pages_main_rationale_427",
"target": "pages_main_render_centre_file_list"
},
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "src/exlab_wizard/ui/pages/main.py",
+ "source_location": "L671",
+ "weight": 1.0,
+ "source": "pages_main_rationale_671",
+ "target": "pages_main_render_right_pane",
+ "confidence_score": 1.0
+ },
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
@@ -202390,6 +213623,16 @@
"source": "controller_creation_creationcontroller",
"target": "cache_equipment_equipmentcachewriter"
},
+ {
+ "relation": "uses",
+ "confidence": "INFERRED",
+ "source_file": "src/exlab_wizard/sample_data/generator.py",
+ "source_location": "L49",
+ "weight": 0.8,
+ "source": "sample_data_generator_sampledatagenerator",
+ "target": "cache_equipment_equipmentcachewriter",
+ "confidence_score": 0.5
+ },
{
"relation": "calls",
"context": "call",
@@ -202401,6 +213644,17 @@
"source": "tray_dependencies_build_equipment_writer",
"target": "cache_equipment_equipmentcachewriter"
},
+ {
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "src/exlab_wizard/sample_data/generator.py",
+ "source_location": "L161",
+ "weight": 1.0,
+ "source": "sample_data_generator_sampledatagenerator_init",
+ "target": "cache_equipment_equipmentcachewriter"
+ },
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
@@ -204318,6 +215572,16 @@
"source": "controller_creation_creationcontroller",
"target": "cache_creation_writer_creationwriter"
},
+ {
+ "relation": "uses",
+ "confidence": "INFERRED",
+ "source_file": "src/exlab_wizard/sample_data/generator.py",
+ "source_location": "L48",
+ "weight": 0.8,
+ "source": "sample_data_generator_sampledatagenerator",
+ "target": "cache_creation_writer_creationwriter",
+ "confidence_score": 0.5
+ },
{
"relation": "uses",
"confidence": "INFERRED",
@@ -204359,6 +215623,17 @@
"source": "tray_dependencies_build_creation_writer",
"target": "cache_creation_writer_creationwriter"
},
+ {
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "src/exlab_wizard/sample_data/generator.py",
+ "source_location": "L160",
+ "weight": 1.0,
+ "source": "sample_data_generator_sampledatagenerator_init",
+ "target": "cache_creation_writer_creationwriter"
+ },
{
"relation": "uses",
"confidence": "INFERRED",
@@ -205066,6 +216341,37 @@
"source": "config_models_rationale_94",
"target": "config_models_pathsconfig"
},
+ {
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "src/exlab_wizard/config/test_bootstrap.py",
+ "source_location": "L42",
+ "weight": 1.0,
+ "source": "config_test_bootstrap_write_starter_test_config",
+ "target": "config_models_pathsconfig"
+ },
+ {
+ "relation": "uses",
+ "confidence": "INFERRED",
+ "source_file": "tests/unit/ui/test_mount.py",
+ "source_location": "L350",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "ui_test_mount_fakeui",
+ "target": "config_models_pathsconfig"
+ },
+ {
+ "relation": "uses",
+ "confidence": "INFERRED",
+ "source_file": "tests/unit/ui/test_mount.py",
+ "source_location": "L350",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "ui_test_mount_boomui",
+ "target": "config_models_pathsconfig"
+ },
{
"relation": "uses",
"confidence": "INFERRED",
@@ -205188,6 +216494,26 @@
"source": "api_setup_autostartresult",
"target": "config_models_limsconfig"
},
+ {
+ "relation": "uses",
+ "confidence": "INFERRED",
+ "source_file": "tests/unit/ui/test_mount.py",
+ "source_location": "L350",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "ui_test_mount_fakeui",
+ "target": "config_models_limsconfig"
+ },
+ {
+ "relation": "uses",
+ "confidence": "INFERRED",
+ "source_file": "tests/unit/ui/test_mount.py",
+ "source_location": "L350",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "ui_test_mount_boomui",
+ "target": "config_models_limsconfig"
+ },
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
@@ -205208,6 +216534,16 @@
"source": "config_models_rationale_125",
"target": "config_models_readmedefaultfield"
},
+ {
+ "relation": "uses",
+ "confidence": "INFERRED",
+ "source_file": "src/exlab_wizard/sample_data/generator.py",
+ "source_location": "L51",
+ "weight": 0.8,
+ "source": "sample_data_generator_sampledatagenerator",
+ "target": "config_models_readmedefaultfield",
+ "confidence_score": 0.5
+ },
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
@@ -205228,6 +216564,27 @@
"source": "config_models_rationale_166",
"target": "config_models_readmeconfig"
},
+ {
+ "relation": "uses",
+ "confidence": "INFERRED",
+ "source_file": "src/exlab_wizard/sample_data/generator.py",
+ "source_location": "L51",
+ "weight": 0.8,
+ "source": "sample_data_generator_sampledatagenerator",
+ "target": "config_models_readmeconfig",
+ "confidence_score": 0.5
+ },
+ {
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "src/exlab_wizard/sample_data/generator.py",
+ "source_location": "L225",
+ "weight": 1.0,
+ "source": "sample_data_generator_sampledatagenerator_build_and_reload_config",
+ "target": "config_models_readmeconfig"
+ },
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
@@ -205446,6 +216803,26 @@
"source": "config_models_rationale_238",
"target": "config_models_nasconfig"
},
+ {
+ "relation": "uses",
+ "confidence": "INFERRED",
+ "source_file": "tests/unit/ui/test_mount.py",
+ "source_location": "L360",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "ui_test_mount_fakeui",
+ "target": "config_models_nasconfig"
+ },
+ {
+ "relation": "uses",
+ "confidence": "INFERRED",
+ "source_file": "tests/unit/ui/test_mount.py",
+ "source_location": "L360",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "ui_test_mount_boomui",
+ "target": "config_models_nasconfig"
+ },
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
@@ -205459,12 +216836,12 @@
{
"relation": "uses",
"confidence": "INFERRED",
- "source_file": "src/exlab_wizard/tray/main.py",
- "source_location": "L293",
+ "source_file": "src/exlab_wizard/sample_data/generator.py",
+ "source_location": "L51",
"weight": 0.8,
- "confidence_score": 0.5,
- "source": "tray_main_trayapp",
- "target": "config_models_equipmentconfig"
+ "source": "sample_data_generator_sampledatagenerator",
+ "target": "config_models_equipmentconfig",
+ "confidence_score": 0.5
},
{
"relation": "uses",
@@ -205576,6 +216953,47 @@
"source": "sync_nas_client_nassyncclient",
"target": "config_models_equipmentconfig"
},
+ {
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "src/exlab_wizard/sample_data/generator.py",
+ "source_location": "L206",
+ "weight": 1.0,
+ "source": "sample_data_generator_sampledatagenerator_build_and_reload_config",
+ "target": "config_models_equipmentconfig"
+ },
+ {
+ "relation": "uses",
+ "confidence": "INFERRED",
+ "source_file": "tests/unit/ui/test_mount.py",
+ "source_location": "L350",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "ui_test_mount_fakeui",
+ "target": "config_models_equipmentconfig"
+ },
+ {
+ "relation": "uses",
+ "confidence": "INFERRED",
+ "source_file": "tests/unit/ui/test_mount.py",
+ "source_location": "L350",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "ui_test_mount_boomui",
+ "target": "config_models_equipmentconfig"
+ },
+ {
+ "relation": "uses",
+ "confidence": "INFERRED",
+ "source_file": "src/exlab_wizard/tray/main.py",
+ "source_location": "L293",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "tray_main_trayapp",
+ "target": "config_models_equipmentconfig"
+ },
{
"relation": "calls",
"context": "call",
@@ -205731,6 +217149,27 @@
"source": "config_models_rationale_359",
"target": "config_models_operatorsconfig"
},
+ {
+ "relation": "uses",
+ "confidence": "INFERRED",
+ "source_file": "src/exlab_wizard/sample_data/generator.py",
+ "source_location": "L51",
+ "weight": 0.8,
+ "source": "sample_data_generator_sampledatagenerator",
+ "target": "config_models_operatorsconfig",
+ "confidence_score": 0.5
+ },
+ {
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "src/exlab_wizard/sample_data/generator.py",
+ "source_location": "L226",
+ "weight": 1.0,
+ "source": "sample_data_generator_sampledatagenerator_build_and_reload_config",
+ "target": "config_models_operatorsconfig"
+ },
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
@@ -205831,6 +217270,37 @@
"source": "config_models_rationale_466",
"target": "config_models_orchestratorconfig"
},
+ {
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "src/exlab_wizard/config/test_bootstrap.py",
+ "source_location": "L47",
+ "weight": 1.0,
+ "source": "config_test_bootstrap_write_starter_test_config",
+ "target": "config_models_orchestratorconfig"
+ },
+ {
+ "relation": "uses",
+ "confidence": "INFERRED",
+ "source_file": "tests/unit/ui/test_mount.py",
+ "source_location": "L350",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "ui_test_mount_fakeui",
+ "target": "config_models_orchestratorconfig"
+ },
+ {
+ "relation": "uses",
+ "confidence": "INFERRED",
+ "source_file": "tests/unit/ui/test_mount.py",
+ "source_location": "L350",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "ui_test_mount_boomui",
+ "target": "config_models_orchestratorconfig"
+ },
{
"relation": "uses",
"confidence": "INFERRED",
@@ -205894,16 +217364,6 @@
"source": "config_models_rationale_502",
"target": "config_models_config"
},
- {
- "relation": "uses",
- "confidence": "INFERRED",
- "source_file": "src/exlab_wizard/tray/main.py",
- "source_location": "L293",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "tray_main_trayapp",
- "target": "config_models_config"
- },
{
"relation": "uses",
"confidence": "INFERRED",
@@ -205984,6 +217444,26 @@
"source": "controller_creation_creationcontroller",
"target": "config_models_config"
},
+ {
+ "relation": "uses",
+ "confidence": "INFERRED",
+ "source_file": "src/exlab_wizard/controller/metadata_assembly.py",
+ "source_location": "L42",
+ "weight": 0.8,
+ "source": "controller_metadata_assembly_templatedesc",
+ "target": "config_models_config",
+ "confidence_score": 0.5
+ },
+ {
+ "relation": "uses",
+ "confidence": "INFERRED",
+ "source_file": "src/exlab_wizard/sample_data/generator.py",
+ "source_location": "L51",
+ "weight": 0.8,
+ "source": "sample_data_generator_sampledatagenerator",
+ "target": "config_models_config",
+ "confidence_score": 0.5
+ },
{
"relation": "uses",
"confidence": "INFERRED",
@@ -206164,6 +217644,36 @@
"source": "orchestrator_staging_query_stagedrunsummary",
"target": "config_models_config"
},
+ {
+ "relation": "uses",
+ "confidence": "INFERRED",
+ "source_file": "tests/unit/ui/test_mount.py",
+ "source_location": "L350",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "ui_test_mount_fakeui",
+ "target": "config_models_config"
+ },
+ {
+ "relation": "uses",
+ "confidence": "INFERRED",
+ "source_file": "tests/unit/ui/test_mount.py",
+ "source_location": "L350",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "ui_test_mount_boomui",
+ "target": "config_models_config"
+ },
+ {
+ "relation": "uses",
+ "confidence": "INFERRED",
+ "source_file": "src/exlab_wizard/tray/main.py",
+ "source_location": "L293",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "tray_main_trayapp",
+ "target": "config_models_config"
+ },
{
"relation": "uses",
"confidence": "INFERRED",
@@ -206411,6 +217921,17 @@
"source": "tray_dependencies_load_config_safely",
"target": "config_loader_load_config"
},
+ {
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "src/exlab_wizard/sample_data/generator.py",
+ "source_location": "L203",
+ "weight": 1.0,
+ "source": "sample_data_generator_sampledatagenerator_build_and_reload_config",
+ "target": "config_loader_load_config"
+ },
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
@@ -206453,6 +217974,28 @@
"source": "config_loader_save_config",
"target": "io_atomic_write_atomic_write_bytes"
},
+ {
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "src/exlab_wizard/config/test_bootstrap.py",
+ "source_location": "L52",
+ "weight": 1.0,
+ "source": "config_test_bootstrap_write_starter_test_config",
+ "target": "config_loader_save_config"
+ },
+ {
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "src/exlab_wizard/sample_data/generator.py",
+ "source_location": "L229",
+ "weight": 1.0,
+ "source": "sample_data_generator_sampledatagenerator_build_and_reload_config",
+ "target": "config_loader_save_config"
+ },
{
"relation": "calls",
"context": "call",
@@ -206484,6 +218027,100 @@
"source": "config_loader_rationale_172",
"target": "config_loader_dump_config"
},
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "src/exlab_wizard/config/test_bootstrap.py",
+ "source_location": "L18",
+ "weight": 1.0,
+ "source": "src_exlab_wizard_config_test_bootstrap_py",
+ "target": "config_test_bootstrap_write_starter_test_config",
+ "confidence_score": 1.0
+ },
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "src/exlab_wizard/config/test_bootstrap.py",
+ "source_location": "L68",
+ "weight": 1.0,
+ "source": "src_exlab_wizard_config_test_bootstrap_py",
+ "target": "config_test_bootstrap_bootstrap_test_config",
+ "confidence_score": 1.0
+ },
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "src/exlab_wizard/config/test_bootstrap.py",
+ "source_location": "L1",
+ "weight": 1.0,
+ "source": "config_test_bootstrap_rationale_1",
+ "target": "src_exlab_wizard_config_test_bootstrap_py",
+ "confidence_score": 1.0
+ },
+ {
+ "relation": "calls",
+ "context": "call",
+ "confidence": "EXTRACTED",
+ "source_file": "src/exlab_wizard/config/test_bootstrap.py",
+ "source_location": "L79",
+ "weight": 1.0,
+ "source": "config_test_bootstrap_bootstrap_test_config",
+ "target": "config_test_bootstrap_write_starter_test_config",
+ "confidence_score": 1.0
+ },
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "src/exlab_wizard/config/test_bootstrap.py",
+ "source_location": "L19",
+ "weight": 1.0,
+ "source": "config_test_bootstrap_rationale_19",
+ "target": "config_test_bootstrap_write_starter_test_config",
+ "confidence_score": 1.0
+ },
+ {
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "src/exlab_wizard/dev/seed.py",
+ "source_location": "L35",
+ "weight": 1.0,
+ "source": "dev_seed_main",
+ "target": "config_test_bootstrap_write_starter_test_config"
+ },
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "src/exlab_wizard/config/test_bootstrap.py",
+ "source_location": "L69",
+ "weight": 1.0,
+ "source": "config_test_bootstrap_rationale_69",
+ "target": "config_test_bootstrap_bootstrap_test_config",
+ "confidence_score": 1.0
+ },
+ {
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "src/exlab_wizard/config/test_bootstrap.py",
+ "source_location": "L83",
+ "weight": 1.0,
+ "source": "config_test_bootstrap_bootstrap_test_config",
+ "target": "sample_data_generator_generate_samples"
+ },
+ {
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "src/exlab_wizard/tray/main.py",
+ "source_location": "L340",
+ "weight": 1.0,
+ "source": "tray_main_main",
+ "target": "config_test_bootstrap_bootstrap_test_config"
+ },
{
"relation": "contains",
"confidence": "EXTRACTED",
@@ -209747,15 +221384,55 @@
"source": "constants_enums_rationale_15",
"target": "constants_enums_runkind"
},
+ {
+ "relation": "uses",
+ "confidence": "INFERRED",
+ "source_file": "src/exlab_wizard/sample_data/spec.py",
+ "source_location": "L25",
+ "weight": 0.8,
+ "source": "sample_data_spec_samplefile",
+ "target": "constants_enums_runkind",
+ "confidence_score": 0.5
+ },
+ {
+ "relation": "uses",
+ "confidence": "INFERRED",
+ "source_file": "src/exlab_wizard/sample_data/spec.py",
+ "source_location": "L25",
+ "weight": 0.8,
+ "source": "sample_data_spec_samplerun",
+ "target": "constants_enums_runkind",
+ "confidence_score": 0.5
+ },
+ {
+ "relation": "uses",
+ "confidence": "INFERRED",
+ "source_file": "src/exlab_wizard/sample_data/spec.py",
+ "source_location": "L25",
+ "weight": 0.8,
+ "source": "sample_data_spec_sampleproject",
+ "target": "constants_enums_runkind",
+ "confidence_score": 0.5
+ },
+ {
+ "relation": "uses",
+ "confidence": "INFERRED",
+ "source_file": "src/exlab_wizard/sample_data/spec.py",
+ "source_location": "L25",
+ "weight": 0.8,
+ "source": "sample_data_spec_sampleequipment",
+ "target": "constants_enums_runkind",
+ "confidence_score": 0.5
+ },
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "src/exlab_wizard/controller/creation.py",
- "source_location": "L1052",
+ "source_file": "src/exlab_wizard/controller/metadata_assembly.py",
+ "source_location": "L206",
"weight": 1.0,
- "source": "controller_creation_creationcontroller_write_cache",
+ "source": "controller_metadata_assembly_build_creation_json",
"target": "constants_enums_runkind"
},
{
@@ -209769,6 +221446,17 @@
"source": "routers_sessions_build_run_request",
"target": "constants_enums_runkind"
},
+ {
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "src/exlab_wizard/controller/creation.py",
+ "source_location": "L1052",
+ "weight": 1.0,
+ "source": "controller_creation_creationcontroller_write_cache",
+ "target": "constants_enums_runkind"
+ },
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
@@ -209779,6 +221467,46 @@
"source": "constants_enums_rationale_25",
"target": "constants_enums_syncstatus"
},
+ {
+ "relation": "uses",
+ "confidence": "INFERRED",
+ "source_file": "src/exlab_wizard/sample_data/spec.py",
+ "source_location": "L25",
+ "weight": 0.8,
+ "source": "sample_data_spec_samplefile",
+ "target": "constants_enums_syncstatus",
+ "confidence_score": 0.5
+ },
+ {
+ "relation": "uses",
+ "confidence": "INFERRED",
+ "source_file": "src/exlab_wizard/sample_data/spec.py",
+ "source_location": "L25",
+ "weight": 0.8,
+ "source": "sample_data_spec_samplerun",
+ "target": "constants_enums_syncstatus",
+ "confidence_score": 0.5
+ },
+ {
+ "relation": "uses",
+ "confidence": "INFERRED",
+ "source_file": "src/exlab_wizard/sample_data/spec.py",
+ "source_location": "L25",
+ "weight": 0.8,
+ "source": "sample_data_spec_sampleproject",
+ "target": "constants_enums_syncstatus",
+ "confidence_score": 0.5
+ },
+ {
+ "relation": "uses",
+ "confidence": "INFERRED",
+ "source_file": "src/exlab_wizard/sample_data/spec.py",
+ "source_location": "L25",
+ "weight": 0.8,
+ "source": "sample_data_spec_sampleequipment",
+ "target": "constants_enums_syncstatus",
+ "confidence_score": 0.5
+ },
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
@@ -209912,6 +221640,46 @@
"source": "constants_enums_rationale_160",
"target": "constants_enums_syncmode"
},
+ {
+ "relation": "uses",
+ "confidence": "INFERRED",
+ "source_file": "src/exlab_wizard/sample_data/spec.py",
+ "source_location": "L25",
+ "weight": 0.8,
+ "source": "sample_data_spec_samplefile",
+ "target": "constants_enums_syncmode",
+ "confidence_score": 0.5
+ },
+ {
+ "relation": "uses",
+ "confidence": "INFERRED",
+ "source_file": "src/exlab_wizard/sample_data/spec.py",
+ "source_location": "L25",
+ "weight": 0.8,
+ "source": "sample_data_spec_samplerun",
+ "target": "constants_enums_syncmode",
+ "confidence_score": 0.5
+ },
+ {
+ "relation": "uses",
+ "confidence": "INFERRED",
+ "source_file": "src/exlab_wizard/sample_data/spec.py",
+ "source_location": "L25",
+ "weight": 0.8,
+ "source": "sample_data_spec_sampleproject",
+ "target": "constants_enums_syncmode",
+ "confidence_score": 0.5
+ },
+ {
+ "relation": "uses",
+ "confidence": "INFERRED",
+ "source_file": "src/exlab_wizard/sample_data/spec.py",
+ "source_location": "L25",
+ "weight": 0.8,
+ "source": "sample_data_spec_sampleequipment",
+ "target": "constants_enums_syncmode",
+ "confidence_score": 0.5
+ },
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
@@ -209992,6 +221760,17 @@
"source": "constants_enums_rationale_201",
"target": "constants_enums_fieldtype"
},
+ {
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "src/exlab_wizard/controller/metadata_assembly.py",
+ "source_location": "L252",
+ "weight": 1.0,
+ "source": "controller_metadata_assembly_readme_decls_from_template",
+ "target": "constants_enums_fieldtype"
+ },
{
"relation": "calls",
"context": "call",
@@ -211373,6 +223152,39 @@
"source": "readme_generator_system_fields_dict",
"target": "utils_time_dt_to_iso"
},
+ {
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "src/exlab_wizard/sample_data/generator.py",
+ "source_location": "L308",
+ "weight": 1.0,
+ "source": "sample_data_generator_sampledatagenerator_write_equipment",
+ "target": "utils_time_dt_to_iso"
+ },
+ {
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "src/exlab_wizard/sample_data/generator.py",
+ "source_location": "L391",
+ "weight": 1.0,
+ "source": "sample_data_generator_sampledatagenerator_write_project",
+ "target": "utils_time_dt_to_iso"
+ },
+ {
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "src/exlab_wizard/sample_data/generator.py",
+ "source_location": "L461",
+ "weight": 1.0,
+ "source": "sample_data_generator_sampledatagenerator_write_metadata",
+ "target": "utils_time_dt_to_iso"
+ },
{
"relation": "calls",
"context": "call",
@@ -213379,16 +225191,6 @@
"source": "src_exlab_wizard_tray_main_py",
"target": "tray_main_parse_argv"
},
- {
- "relation": "contains",
- "confidence": "EXTRACTED",
- "source_file": "src/exlab_wizard/tray/main.py",
- "source_location": "L272",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "src_exlab_wizard_tray_main_py",
- "target": "tray_main_bootstrap_test_config"
- },
{
"relation": "contains",
"confidence": "EXTRACTED",
@@ -213419,6 +225221,16 @@
"source": "tray_main_rationale_1",
"target": "src_exlab_wizard_tray_main_py"
},
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "src/exlab_wizard/tray/main.py",
+ "source_location": "L272",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "src_exlab_wizard_tray_main_py",
+ "target": "tray_main_bootstrap_test_config"
+ },
{
"relation": "method",
"confidence": "EXTRACTED",
@@ -213749,32 +225561,21 @@
"context": "call",
"confidence": "EXTRACTED",
"source_file": "src/exlab_wizard/tray/main.py",
- "source_location": "L419",
+ "source_location": "L424",
"weight": 1.0,
"confidence_score": 1.0,
"source": "tray_main_main",
- "target": "tray_main_bootstrap_test_config"
+ "target": "tray_main_run_smoke"
},
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
"source_file": "src/exlab_wizard/tray/main.py",
- "source_location": "L273",
+ "source_location": "L277",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "tray_main_rationale_273",
- "target": "tray_main_bootstrap_test_config"
- },
- {
- "relation": "calls",
- "context": "call",
- "confidence": "EXTRACTED",
- "source_file": "src/exlab_wizard/tray/main.py",
- "source_location": "L424",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "tray_main_main",
- "target": "tray_main_run_smoke"
+ "source": "tray_main_rationale_277",
+ "target": "tray_main_run_smoke",
+ "confidence_score": 1.0
},
{
"relation": "rationale_for",
@@ -213800,11 +225601,11 @@
"relation": "rationale_for",
"confidence": "EXTRACTED",
"source_file": "src/exlab_wizard/tray/main.py",
- "source_location": "L384",
+ "source_location": "L310",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "tray_main_rationale_384",
- "target": "tray_main_main"
+ "source": "tray_main_rationale_310",
+ "target": "tray_main_main",
+ "confidence_score": 1.0
},
{
"relation": "calls",
@@ -213817,6 +225618,27 @@
"source": "tray_main_main",
"target": "logging_manager_configure_logging"
},
+ {
+ "relation": "calls",
+ "context": "call",
+ "confidence": "EXTRACTED",
+ "source_file": "src/exlab_wizard/tray/main.py",
+ "source_location": "L419",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "tray_main_main",
+ "target": "tray_main_bootstrap_test_config"
+ },
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "src/exlab_wizard/tray/main.py",
+ "source_location": "L384",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "tray_main_rationale_384",
+ "target": "tray_main_main"
+ },
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
@@ -215438,6 +227260,17 @@
"source": "readme_generator_corefields",
"target": "api_schemas_readmefieldsjson"
},
+ {
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "src/exlab_wizard/controller/metadata_assembly.py",
+ "source_location": "L158",
+ "weight": 1.0,
+ "source": "controller_metadata_assembly_build_readme_context",
+ "target": "readme_generator_corefields"
+ },
{
"relation": "calls",
"context": "call",
@@ -215469,6 +227302,28 @@
"source": "readme_generator_templatefielddecl",
"target": "api_schemas_readmefieldsjson"
},
+ {
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "src/exlab_wizard/controller/metadata_assembly.py",
+ "source_location": "L249",
+ "weight": 1.0,
+ "source": "controller_metadata_assembly_readme_decls_from_template",
+ "target": "readme_generator_templatefielddecl"
+ },
+ {
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "src/exlab_wizard/controller/metadata_assembly.py",
+ "source_location": "L274",
+ "weight": 1.0,
+ "source": "controller_metadata_assembly_readme_decls_from_config",
+ "target": "readme_generator_templatefielddecl"
+ },
{
"relation": "calls",
"context": "call",
@@ -215511,6 +227366,17 @@
"source": "readme_generator_customfield",
"target": "api_schemas_readmefieldsjson"
},
+ {
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "src/exlab_wizard/controller/metadata_assembly.py",
+ "source_location": "L137",
+ "weight": 1.0,
+ "source": "controller_metadata_assembly_build_readme_context",
+ "target": "readme_generator_customfield"
+ },
{
"relation": "calls",
"context": "call",
@@ -215542,6 +227408,17 @@
"source": "readme_generator_systemfields",
"target": "api_schemas_readmefieldsjson"
},
+ {
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "src/exlab_wizard/controller/metadata_assembly.py",
+ "source_location": "L144",
+ "weight": 1.0,
+ "source": "controller_metadata_assembly_build_readme_context",
+ "target": "readme_generator_systemfields"
+ },
{
"relation": "calls",
"context": "call",
@@ -215573,6 +227450,17 @@
"source": "readme_generator_readmecontext",
"target": "api_schemas_readmefieldsjson"
},
+ {
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "src/exlab_wizard/controller/metadata_assembly.py",
+ "source_location": "L156",
+ "weight": 1.0,
+ "source": "controller_metadata_assembly_build_readme_context",
+ "target": "readme_generator_readmecontext"
+ },
{
"relation": "calls",
"context": "call",
@@ -215624,6 +227512,17 @@
"source": "readme_generator_readmegenerator",
"target": "api_schemas_readmefieldsjson"
},
+ {
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "src/exlab_wizard/sample_data/generator.py",
+ "source_location": "L159",
+ "weight": 1.0,
+ "source": "sample_data_generator_sampledatagenerator_init",
+ "target": "readme_generator_readmegenerator"
+ },
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
@@ -216068,71 +227967,71 @@
"relation": "contains",
"confidence": "EXTRACTED",
"source_file": "src/exlab_wizard/controller/creation.py",
- "source_location": "L1269",
+ "source_location": "L1339",
"weight": 1.0,
"confidence_score": 1.0,
"source": "src_exlab_wizard_controller_creation_py",
- "target": "controller_creation_readme_decls_from_template"
+ "target": "controller_creation_has_hard_finding"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
"source_file": "src/exlab_wizard/controller/creation.py",
- "source_location": "L1301",
+ "source_location": "L1343",
"weight": 1.0,
"confidence_score": 1.0,
"source": "src_exlab_wizard_controller_creation_py",
- "target": "controller_creation_readme_decls_from_config"
+ "target": "controller_creation_attach_resolved"
},
{
- "relation": "contains",
+ "relation": "rationale_for",
"confidence": "EXTRACTED",
"source_file": "src/exlab_wizard/controller/creation.py",
- "source_location": "L1326",
+ "source_location": "L1",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "src_exlab_wizard_controller_creation_py",
- "target": "controller_creation_os_username"
+ "source": "controller_creation_rationale_1",
+ "target": "src_exlab_wizard_controller_creation_py"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
"source_file": "src/exlab_wizard/controller/creation.py",
- "source_location": "L1339",
+ "source_location": "L1269",
"weight": 1.0,
"confidence_score": 1.0,
"source": "src_exlab_wizard_controller_creation_py",
- "target": "controller_creation_has_hard_finding"
+ "target": "controller_creation_readme_decls_from_template"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
"source_file": "src/exlab_wizard/controller/creation.py",
- "source_location": "L1343",
+ "source_location": "L1301",
"weight": 1.0,
"confidence_score": 1.0,
"source": "src_exlab_wizard_controller_creation_py",
- "target": "controller_creation_attach_resolved"
+ "target": "controller_creation_readme_decls_from_config"
},
{
- "relation": "rationale_for",
+ "relation": "contains",
"confidence": "EXTRACTED",
"source_file": "src/exlab_wizard/controller/creation.py",
- "source_location": "L1",
+ "source_location": "L1326",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "controller_creation_rationale_1",
- "target": "src_exlab_wizard_controller_creation_py"
+ "source": "src_exlab_wizard_controller_creation_py",
+ "target": "controller_creation_os_username"
},
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
"source_file": "src/exlab_wizard/controller/creation.py",
- "source_location": "L142",
+ "source_location": "L136",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "controller_creation_rationale_142",
- "target": "controller_creation_projectcreaterequest"
+ "source": "controller_creation_rationale_136",
+ "target": "controller_creation_projectcreaterequest",
+ "confidence_score": 1.0
},
{
"relation": "uses",
@@ -216164,26 +228063,6 @@
"source": "controller_creation_projectcreaterequest",
"target": "api_schemas_limsprojectblock"
},
- {
- "relation": "uses",
- "confidence": "INFERRED",
- "source_file": "src/exlab_wizard/controller/creation.py",
- "source_location": "L46",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "controller_creation_projectcreaterequest",
- "target": "api_schemas_orchestratorblock"
- },
- {
- "relation": "uses",
- "confidence": "INFERRED",
- "source_file": "src/exlab_wizard/controller/creation.py",
- "source_location": "L46",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "controller_creation_projectcreaterequest",
- "target": "api_schemas_pathsblock"
- },
{
"relation": "uses",
"confidence": "INFERRED",
@@ -216208,11 +228087,11 @@
"relation": "uses",
"confidence": "INFERRED",
"source_file": "src/exlab_wizard/controller/creation.py",
- "source_location": "L46",
+ "source_location": "L71",
"weight": 0.8,
- "confidence_score": 0.5,
"source": "controller_creation_projectcreaterequest",
- "target": "api_schemas_templateblock"
+ "target": "controller_metadata_assembly_templatedesc",
+ "confidence_score": 0.5
},
{
"relation": "uses",
@@ -216269,11 +228148,11 @@
"relation": "rationale_for",
"confidence": "EXTRACTED",
"source_file": "src/exlab_wizard/controller/creation.py",
- "source_location": "L161",
+ "source_location": "L142",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "controller_creation_rationale_161",
- "target": "controller_creation_runcreaterequest"
+ "source": "controller_creation_rationale_142",
+ "target": "controller_creation_projectcreaterequest"
},
{
"relation": "uses",
@@ -216282,8 +228161,8 @@
"source_location": "L46",
"weight": 0.8,
"confidence_score": 0.5,
- "source": "controller_creation_runcreaterequest",
- "target": "api_schemas_creationjson"
+ "source": "controller_creation_projectcreaterequest",
+ "target": "api_schemas_orchestratorblock"
},
{
"relation": "uses",
@@ -216292,8 +228171,28 @@
"source_location": "L46",
"weight": 0.8,
"confidence_score": 0.5,
- "source": "controller_creation_runcreaterequest",
- "target": "api_schemas_equipmentjson"
+ "source": "controller_creation_projectcreaterequest",
+ "target": "api_schemas_pathsblock"
+ },
+ {
+ "relation": "uses",
+ "confidence": "INFERRED",
+ "source_file": "src/exlab_wizard/controller/creation.py",
+ "source_location": "L46",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "controller_creation_projectcreaterequest",
+ "target": "api_schemas_templateblock"
+ },
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "src/exlab_wizard/controller/creation.py",
+ "source_location": "L155",
+ "weight": 1.0,
+ "source": "controller_creation_rationale_155",
+ "target": "controller_creation_runcreaterequest",
+ "confidence_score": 1.0
},
{
"relation": "uses",
@@ -216303,7 +228202,7 @@
"weight": 0.8,
"confidence_score": 0.5,
"source": "controller_creation_runcreaterequest",
- "target": "api_schemas_limsprojectblock"
+ "target": "api_schemas_creationjson"
},
{
"relation": "uses",
@@ -216313,7 +228212,7 @@
"weight": 0.8,
"confidence_score": 0.5,
"source": "controller_creation_runcreaterequest",
- "target": "api_schemas_orchestratorblock"
+ "target": "api_schemas_equipmentjson"
},
{
"relation": "uses",
@@ -216323,7 +228222,7 @@
"weight": 0.8,
"confidence_score": 0.5,
"source": "controller_creation_runcreaterequest",
- "target": "api_schemas_pathsblock"
+ "target": "api_schemas_limsprojectblock"
},
{
"relation": "uses",
@@ -216349,11 +228248,11 @@
"relation": "uses",
"confidence": "INFERRED",
"source_file": "src/exlab_wizard/controller/creation.py",
- "source_location": "L46",
+ "source_location": "L71",
"weight": 0.8,
- "confidence_score": 0.5,
"source": "controller_creation_runcreaterequest",
- "target": "api_schemas_templateblock"
+ "target": "controller_metadata_assembly_templatedesc",
+ "confidence_score": 0.5
},
{
"relation": "uses",
@@ -216406,6 +228305,46 @@
"source": "routers_sessions_build_run_request",
"target": "controller_creation_runcreaterequest"
},
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "src/exlab_wizard/controller/creation.py",
+ "source_location": "L161",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "controller_creation_rationale_161",
+ "target": "controller_creation_runcreaterequest"
+ },
+ {
+ "relation": "uses",
+ "confidence": "INFERRED",
+ "source_file": "src/exlab_wizard/controller/creation.py",
+ "source_location": "L46",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "controller_creation_runcreaterequest",
+ "target": "api_schemas_orchestratorblock"
+ },
+ {
+ "relation": "uses",
+ "confidence": "INFERRED",
+ "source_file": "src/exlab_wizard/controller/creation.py",
+ "source_location": "L46",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "controller_creation_runcreaterequest",
+ "target": "api_schemas_pathsblock"
+ },
+ {
+ "relation": "uses",
+ "confidence": "INFERRED",
+ "source_file": "src/exlab_wizard/controller/creation.py",
+ "source_location": "L46",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "controller_creation_runcreaterequest",
+ "target": "api_schemas_templateblock"
+ },
{
"relation": "calls",
"context": "call",
@@ -216421,11 +228360,11 @@
"relation": "rationale_for",
"confidence": "EXTRACTED",
"source_file": "src/exlab_wizard/controller/creation.py",
- "source_location": "L186",
+ "source_location": "L180",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "controller_creation_rationale_186",
- "target": "controller_creation_sessionhandle"
+ "source": "controller_creation_rationale_180",
+ "target": "controller_creation_sessionhandle",
+ "confidence_score": 1.0
},
{
"relation": "uses",
@@ -216465,7 +228404,7 @@
"weight": 0.8,
"confidence_score": 0.5,
"source": "controller_creation_sessionhandle",
- "target": "api_schemas_orchestratorblock"
+ "target": "api_schemas_pluginapplied"
},
{
"relation": "uses",
@@ -216475,77 +228414,97 @@
"weight": 0.8,
"confidence_score": 0.5,
"source": "controller_creation_sessionhandle",
- "target": "api_schemas_pathsblock"
+ "target": "api_schemas_pluginisolation"
},
{
"relation": "uses",
"confidence": "INFERRED",
"source_file": "src/exlab_wizard/controller/creation.py",
- "source_location": "L46",
+ "source_location": "L71",
+ "weight": 0.8,
+ "source": "controller_creation_sessionhandle",
+ "target": "controller_metadata_assembly_templatedesc",
+ "confidence_score": 0.5
+ },
+ {
+ "relation": "uses",
+ "confidence": "INFERRED",
+ "source_file": "src/exlab_wizard/controller/creation.py",
+ "source_location": "L79",
"weight": 0.8,
"confidence_score": 0.5,
"source": "controller_creation_sessionhandle",
- "target": "api_schemas_pluginapplied"
+ "target": "controller_session_store_session"
},
{
"relation": "uses",
"confidence": "INFERRED",
"source_file": "src/exlab_wizard/controller/creation.py",
- "source_location": "L46",
+ "source_location": "L79",
"weight": 0.8,
"confidence_score": 0.5,
"source": "controller_creation_sessionhandle",
- "target": "api_schemas_pluginisolation"
+ "target": "controller_session_store_sessionstore"
},
{
"relation": "uses",
"confidence": "INFERRED",
"source_file": "src/exlab_wizard/controller/creation.py",
- "source_location": "L46",
+ "source_location": "L80",
"weight": 0.8,
"confidence_score": 0.5,
"source": "controller_creation_sessionhandle",
- "target": "api_schemas_templateblock"
+ "target": "controller_state_machine_phase"
},
{
"relation": "uses",
"confidence": "INFERRED",
"source_file": "src/exlab_wizard/controller/creation.py",
- "source_location": "L79",
+ "source_location": "L80",
"weight": 0.8,
"confidence_score": 0.5,
"source": "controller_creation_sessionhandle",
- "target": "controller_session_store_session"
+ "target": "controller_state_machine_sessionstate"
+ },
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "src/exlab_wizard/controller/creation.py",
+ "source_location": "L186",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "controller_creation_rationale_186",
+ "target": "controller_creation_sessionhandle"
},
{
"relation": "uses",
"confidence": "INFERRED",
"source_file": "src/exlab_wizard/controller/creation.py",
- "source_location": "L79",
+ "source_location": "L46",
"weight": 0.8,
"confidence_score": 0.5,
"source": "controller_creation_sessionhandle",
- "target": "controller_session_store_sessionstore"
+ "target": "api_schemas_orchestratorblock"
},
{
"relation": "uses",
"confidence": "INFERRED",
"source_file": "src/exlab_wizard/controller/creation.py",
- "source_location": "L80",
+ "source_location": "L46",
"weight": 0.8,
"confidence_score": 0.5,
"source": "controller_creation_sessionhandle",
- "target": "controller_state_machine_phase"
+ "target": "api_schemas_pathsblock"
},
{
"relation": "uses",
"confidence": "INFERRED",
"source_file": "src/exlab_wizard/controller/creation.py",
- "source_location": "L80",
+ "source_location": "L46",
"weight": 0.8,
"confidence_score": 0.5,
"source": "controller_creation_sessionhandle",
- "target": "controller_state_machine_sessionstate"
+ "target": "api_schemas_templateblock"
},
{
"relation": "method",
@@ -216561,11 +228520,11 @@
"relation": "rationale_for",
"confidence": "EXTRACTED",
"source_file": "src/exlab_wizard/controller/creation.py",
- "source_location": "L200",
+ "source_location": "L194",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "controller_creation_rationale_200",
- "target": "controller_creation_readmegeneratorprotocol"
+ "source": "controller_creation_rationale_194",
+ "target": "controller_creation_readmegeneratorprotocol",
+ "confidence_score": 1.0
},
{
"relation": "uses",
@@ -216605,7 +228564,7 @@
"weight": 0.8,
"confidence_score": 0.5,
"source": "controller_creation_readmegeneratorprotocol",
- "target": "api_schemas_orchestratorblock"
+ "target": "api_schemas_pluginapplied"
},
{
"relation": "uses",
@@ -216615,77 +228574,97 @@
"weight": 0.8,
"confidence_score": 0.5,
"source": "controller_creation_readmegeneratorprotocol",
- "target": "api_schemas_pathsblock"
+ "target": "api_schemas_pluginisolation"
},
{
"relation": "uses",
"confidence": "INFERRED",
"source_file": "src/exlab_wizard/controller/creation.py",
- "source_location": "L46",
+ "source_location": "L71",
+ "weight": 0.8,
+ "source": "controller_creation_readmegeneratorprotocol",
+ "target": "controller_metadata_assembly_templatedesc",
+ "confidence_score": 0.5
+ },
+ {
+ "relation": "uses",
+ "confidence": "INFERRED",
+ "source_file": "src/exlab_wizard/controller/creation.py",
+ "source_location": "L79",
"weight": 0.8,
"confidence_score": 0.5,
"source": "controller_creation_readmegeneratorprotocol",
- "target": "api_schemas_pluginapplied"
+ "target": "controller_session_store_session"
},
{
"relation": "uses",
"confidence": "INFERRED",
"source_file": "src/exlab_wizard/controller/creation.py",
- "source_location": "L46",
+ "source_location": "L79",
"weight": 0.8,
"confidence_score": 0.5,
"source": "controller_creation_readmegeneratorprotocol",
- "target": "api_schemas_pluginisolation"
+ "target": "controller_session_store_sessionstore"
},
{
"relation": "uses",
"confidence": "INFERRED",
"source_file": "src/exlab_wizard/controller/creation.py",
- "source_location": "L46",
+ "source_location": "L80",
"weight": 0.8,
"confidence_score": 0.5,
"source": "controller_creation_readmegeneratorprotocol",
- "target": "api_schemas_templateblock"
+ "target": "controller_state_machine_phase"
},
{
"relation": "uses",
"confidence": "INFERRED",
"source_file": "src/exlab_wizard/controller/creation.py",
- "source_location": "L79",
+ "source_location": "L80",
"weight": 0.8,
"confidence_score": 0.5,
"source": "controller_creation_readmegeneratorprotocol",
- "target": "controller_session_store_session"
+ "target": "controller_state_machine_sessionstate"
+ },
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "src/exlab_wizard/controller/creation.py",
+ "source_location": "L200",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "controller_creation_rationale_200",
+ "target": "controller_creation_readmegeneratorprotocol"
},
{
"relation": "uses",
"confidence": "INFERRED",
"source_file": "src/exlab_wizard/controller/creation.py",
- "source_location": "L79",
+ "source_location": "L46",
"weight": 0.8,
"confidence_score": 0.5,
"source": "controller_creation_readmegeneratorprotocol",
- "target": "controller_session_store_sessionstore"
+ "target": "api_schemas_orchestratorblock"
},
{
"relation": "uses",
"confidence": "INFERRED",
"source_file": "src/exlab_wizard/controller/creation.py",
- "source_location": "L80",
+ "source_location": "L46",
"weight": 0.8,
"confidence_score": 0.5,
"source": "controller_creation_readmegeneratorprotocol",
- "target": "controller_state_machine_phase"
+ "target": "api_schemas_pathsblock"
},
{
"relation": "uses",
"confidence": "INFERRED",
"source_file": "src/exlab_wizard/controller/creation.py",
- "source_location": "L80",
+ "source_location": "L46",
"weight": 0.8,
"confidence_score": 0.5,
"source": "controller_creation_readmegeneratorprotocol",
- "target": "controller_state_machine_sessionstate"
+ "target": "api_schemas_templateblock"
},
{
"relation": "method",
@@ -216712,11 +228691,11 @@
"relation": "rationale_for",
"confidence": "EXTRACTED",
"source_file": "src/exlab_wizard/controller/creation.py",
- "source_location": "L211",
+ "source_location": "L205",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "controller_creation_rationale_211",
- "target": "controller_creation_noopreadmegenerator"
+ "source": "controller_creation_rationale_205",
+ "target": "controller_creation_noopreadmegenerator",
+ "confidence_score": 1.0
},
{
"relation": "uses",
@@ -216756,7 +228735,7 @@
"weight": 0.8,
"confidence_score": 0.5,
"source": "controller_creation_noopreadmegenerator",
- "target": "api_schemas_orchestratorblock"
+ "target": "api_schemas_pluginapplied"
},
{
"relation": "uses",
@@ -216766,77 +228745,97 @@
"weight": 0.8,
"confidence_score": 0.5,
"source": "controller_creation_noopreadmegenerator",
- "target": "api_schemas_pathsblock"
+ "target": "api_schemas_pluginisolation"
},
{
"relation": "uses",
"confidence": "INFERRED",
"source_file": "src/exlab_wizard/controller/creation.py",
- "source_location": "L46",
+ "source_location": "L71",
+ "weight": 0.8,
+ "source": "controller_creation_noopreadmegenerator",
+ "target": "controller_metadata_assembly_templatedesc",
+ "confidence_score": 0.5
+ },
+ {
+ "relation": "uses",
+ "confidence": "INFERRED",
+ "source_file": "src/exlab_wizard/controller/creation.py",
+ "source_location": "L79",
"weight": 0.8,
"confidence_score": 0.5,
"source": "controller_creation_noopreadmegenerator",
- "target": "api_schemas_pluginapplied"
+ "target": "controller_session_store_session"
},
{
"relation": "uses",
"confidence": "INFERRED",
"source_file": "src/exlab_wizard/controller/creation.py",
- "source_location": "L46",
+ "source_location": "L79",
"weight": 0.8,
"confidence_score": 0.5,
"source": "controller_creation_noopreadmegenerator",
- "target": "api_schemas_pluginisolation"
+ "target": "controller_session_store_sessionstore"
},
{
"relation": "uses",
"confidence": "INFERRED",
"source_file": "src/exlab_wizard/controller/creation.py",
- "source_location": "L46",
+ "source_location": "L80",
"weight": 0.8,
"confidence_score": 0.5,
"source": "controller_creation_noopreadmegenerator",
- "target": "api_schemas_templateblock"
+ "target": "controller_state_machine_phase"
},
{
"relation": "uses",
"confidence": "INFERRED",
"source_file": "src/exlab_wizard/controller/creation.py",
- "source_location": "L79",
+ "source_location": "L80",
"weight": 0.8,
"confidence_score": 0.5,
"source": "controller_creation_noopreadmegenerator",
- "target": "controller_session_store_session"
+ "target": "controller_state_machine_sessionstate"
+ },
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "src/exlab_wizard/controller/creation.py",
+ "source_location": "L211",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "controller_creation_rationale_211",
+ "target": "controller_creation_noopreadmegenerator"
},
{
"relation": "uses",
"confidence": "INFERRED",
"source_file": "src/exlab_wizard/controller/creation.py",
- "source_location": "L79",
+ "source_location": "L46",
"weight": 0.8,
"confidence_score": 0.5,
"source": "controller_creation_noopreadmegenerator",
- "target": "controller_session_store_sessionstore"
+ "target": "api_schemas_orchestratorblock"
},
{
"relation": "uses",
"confidence": "INFERRED",
"source_file": "src/exlab_wizard/controller/creation.py",
- "source_location": "L80",
+ "source_location": "L46",
"weight": 0.8,
"confidence_score": 0.5,
"source": "controller_creation_noopreadmegenerator",
- "target": "controller_state_machine_phase"
+ "target": "api_schemas_pathsblock"
},
{
"relation": "uses",
"confidence": "INFERRED",
"source_file": "src/exlab_wizard/controller/creation.py",
- "source_location": "L80",
+ "source_location": "L46",
"weight": 0.8,
"confidence_score": 0.5,
"source": "controller_creation_noopreadmegenerator",
- "target": "controller_state_machine_sessionstate"
+ "target": "api_schemas_templateblock"
},
{
"relation": "calls",
@@ -216863,11 +228862,11 @@
"relation": "rationale_for",
"confidence": "EXTRACTED",
"source_file": "src/exlab_wizard/controller/creation.py",
- "source_location": "L227",
+ "source_location": "L221",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "controller_creation_rationale_227",
- "target": "controller_creation_nassyncprotocol"
+ "source": "controller_creation_rationale_221",
+ "target": "controller_creation_nassyncprotocol",
+ "confidence_score": 1.0
},
{
"relation": "uses",
@@ -216907,7 +228906,7 @@
"weight": 0.8,
"confidence_score": 0.5,
"source": "controller_creation_nassyncprotocol",
- "target": "api_schemas_orchestratorblock"
+ "target": "api_schemas_pluginapplied"
},
{
"relation": "uses",
@@ -216917,77 +228916,97 @@
"weight": 0.8,
"confidence_score": 0.5,
"source": "controller_creation_nassyncprotocol",
- "target": "api_schemas_pathsblock"
+ "target": "api_schemas_pluginisolation"
},
{
"relation": "uses",
"confidence": "INFERRED",
"source_file": "src/exlab_wizard/controller/creation.py",
- "source_location": "L46",
+ "source_location": "L71",
+ "weight": 0.8,
+ "source": "controller_creation_nassyncprotocol",
+ "target": "controller_metadata_assembly_templatedesc",
+ "confidence_score": 0.5
+ },
+ {
+ "relation": "uses",
+ "confidence": "INFERRED",
+ "source_file": "src/exlab_wizard/controller/creation.py",
+ "source_location": "L79",
"weight": 0.8,
"confidence_score": 0.5,
"source": "controller_creation_nassyncprotocol",
- "target": "api_schemas_pluginapplied"
+ "target": "controller_session_store_session"
},
{
"relation": "uses",
"confidence": "INFERRED",
"source_file": "src/exlab_wizard/controller/creation.py",
- "source_location": "L46",
+ "source_location": "L79",
"weight": 0.8,
"confidence_score": 0.5,
"source": "controller_creation_nassyncprotocol",
- "target": "api_schemas_pluginisolation"
+ "target": "controller_session_store_sessionstore"
},
{
"relation": "uses",
"confidence": "INFERRED",
"source_file": "src/exlab_wizard/controller/creation.py",
- "source_location": "L46",
+ "source_location": "L80",
"weight": 0.8,
"confidence_score": 0.5,
"source": "controller_creation_nassyncprotocol",
- "target": "api_schemas_templateblock"
+ "target": "controller_state_machine_phase"
},
{
"relation": "uses",
"confidence": "INFERRED",
"source_file": "src/exlab_wizard/controller/creation.py",
- "source_location": "L79",
+ "source_location": "L80",
"weight": 0.8,
"confidence_score": 0.5,
"source": "controller_creation_nassyncprotocol",
- "target": "controller_session_store_session"
+ "target": "controller_state_machine_sessionstate"
+ },
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "src/exlab_wizard/controller/creation.py",
+ "source_location": "L227",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "controller_creation_rationale_227",
+ "target": "controller_creation_nassyncprotocol"
},
{
"relation": "uses",
"confidence": "INFERRED",
"source_file": "src/exlab_wizard/controller/creation.py",
- "source_location": "L79",
+ "source_location": "L46",
"weight": 0.8,
"confidence_score": 0.5,
"source": "controller_creation_nassyncprotocol",
- "target": "controller_session_store_sessionstore"
+ "target": "api_schemas_orchestratorblock"
},
{
"relation": "uses",
"confidence": "INFERRED",
"source_file": "src/exlab_wizard/controller/creation.py",
- "source_location": "L80",
+ "source_location": "L46",
"weight": 0.8,
"confidence_score": 0.5,
"source": "controller_creation_nassyncprotocol",
- "target": "controller_state_machine_phase"
+ "target": "api_schemas_pathsblock"
},
{
"relation": "uses",
"confidence": "INFERRED",
"source_file": "src/exlab_wizard/controller/creation.py",
- "source_location": "L80",
+ "source_location": "L46",
"weight": 0.8,
"confidence_score": 0.5,
"source": "controller_creation_nassyncprotocol",
- "target": "controller_state_machine_sessionstate"
+ "target": "api_schemas_templateblock"
},
{
"relation": "method",
@@ -217014,11 +229033,11 @@
"relation": "rationale_for",
"confidence": "EXTRACTED",
"source_file": "src/exlab_wizard/controller/creation.py",
- "source_location": "L233",
+ "source_location": "L227",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "controller_creation_rationale_233",
- "target": "controller_creation_noopnassync"
+ "source": "controller_creation_rationale_227",
+ "target": "controller_creation_noopnassync",
+ "confidence_score": 1.0
},
{
"relation": "uses",
@@ -217050,26 +229069,6 @@
"source": "controller_creation_noopnassync",
"target": "api_schemas_limsprojectblock"
},
- {
- "relation": "uses",
- "confidence": "INFERRED",
- "source_file": "src/exlab_wizard/controller/creation.py",
- "source_location": "L46",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "controller_creation_noopnassync",
- "target": "api_schemas_orchestratorblock"
- },
- {
- "relation": "uses",
- "confidence": "INFERRED",
- "source_file": "src/exlab_wizard/controller/creation.py",
- "source_location": "L46",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "controller_creation_noopnassync",
- "target": "api_schemas_pathsblock"
- },
{
"relation": "uses",
"confidence": "INFERRED",
@@ -217094,11 +229093,11 @@
"relation": "uses",
"confidence": "INFERRED",
"source_file": "src/exlab_wizard/controller/creation.py",
- "source_location": "L46",
+ "source_location": "L71",
"weight": 0.8,
- "confidence_score": 0.5,
"source": "controller_creation_noopnassync",
- "target": "api_schemas_templateblock"
+ "target": "controller_metadata_assembly_templatedesc",
+ "confidence_score": 0.5
},
{
"relation": "uses",
@@ -217140,6 +229139,46 @@
"source": "controller_creation_noopnassync",
"target": "controller_state_machine_sessionstate"
},
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "src/exlab_wizard/controller/creation.py",
+ "source_location": "L233",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "controller_creation_rationale_233",
+ "target": "controller_creation_noopnassync"
+ },
+ {
+ "relation": "uses",
+ "confidence": "INFERRED",
+ "source_file": "src/exlab_wizard/controller/creation.py",
+ "source_location": "L46",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "controller_creation_noopnassync",
+ "target": "api_schemas_orchestratorblock"
+ },
+ {
+ "relation": "uses",
+ "confidence": "INFERRED",
+ "source_file": "src/exlab_wizard/controller/creation.py",
+ "source_location": "L46",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "controller_creation_noopnassync",
+ "target": "api_schemas_pathsblock"
+ },
+ {
+ "relation": "uses",
+ "confidence": "INFERRED",
+ "source_file": "src/exlab_wizard/controller/creation.py",
+ "source_location": "L46",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "controller_creation_noopnassync",
+ "target": "api_schemas_templateblock"
+ },
{
"relation": "calls",
"context": "call",
@@ -217425,11 +229464,11 @@
"relation": "rationale_for",
"confidence": "EXTRACTED",
"source_file": "src/exlab_wizard/controller/creation.py",
- "source_location": "L245",
+ "source_location": "L239",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "controller_creation_rationale_245",
- "target": "controller_creation_creationcontroller"
+ "source": "controller_creation_rationale_239",
+ "target": "controller_creation_creationcontroller",
+ "confidence_score": 1.0
},
{
"relation": "uses",
@@ -217469,7 +229508,7 @@
"weight": 0.8,
"confidence_score": 0.5,
"source": "controller_creation_creationcontroller",
- "target": "api_schemas_orchestratorblock"
+ "target": "api_schemas_pluginapplied"
},
{
"relation": "uses",
@@ -217479,77 +229518,97 @@
"weight": 0.8,
"confidence_score": 0.5,
"source": "controller_creation_creationcontroller",
- "target": "api_schemas_pathsblock"
+ "target": "api_schemas_pluginisolation"
},
{
"relation": "uses",
"confidence": "INFERRED",
"source_file": "src/exlab_wizard/controller/creation.py",
- "source_location": "L46",
+ "source_location": "L71",
+ "weight": 0.8,
+ "source": "controller_creation_creationcontroller",
+ "target": "controller_metadata_assembly_templatedesc",
+ "confidence_score": 0.5
+ },
+ {
+ "relation": "uses",
+ "confidence": "INFERRED",
+ "source_file": "src/exlab_wizard/controller/creation.py",
+ "source_location": "L79",
"weight": 0.8,
"confidence_score": 0.5,
"source": "controller_creation_creationcontroller",
- "target": "api_schemas_pluginapplied"
+ "target": "controller_session_store_session"
},
{
"relation": "uses",
"confidence": "INFERRED",
"source_file": "src/exlab_wizard/controller/creation.py",
- "source_location": "L46",
+ "source_location": "L79",
"weight": 0.8,
"confidence_score": 0.5,
"source": "controller_creation_creationcontroller",
- "target": "api_schemas_pluginisolation"
+ "target": "controller_session_store_sessionstore"
},
{
"relation": "uses",
"confidence": "INFERRED",
"source_file": "src/exlab_wizard/controller/creation.py",
- "source_location": "L46",
+ "source_location": "L80",
"weight": 0.8,
"confidence_score": 0.5,
"source": "controller_creation_creationcontroller",
- "target": "api_schemas_templateblock"
+ "target": "controller_state_machine_phase"
},
{
"relation": "uses",
"confidence": "INFERRED",
"source_file": "src/exlab_wizard/controller/creation.py",
- "source_location": "L79",
+ "source_location": "L80",
"weight": 0.8,
"confidence_score": 0.5,
"source": "controller_creation_creationcontroller",
- "target": "controller_session_store_session"
+ "target": "controller_state_machine_sessionstate"
+ },
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "src/exlab_wizard/controller/creation.py",
+ "source_location": "L245",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "controller_creation_rationale_245",
+ "target": "controller_creation_creationcontroller"
},
{
"relation": "uses",
"confidence": "INFERRED",
"source_file": "src/exlab_wizard/controller/creation.py",
- "source_location": "L79",
+ "source_location": "L46",
"weight": 0.8,
"confidence_score": 0.5,
"source": "controller_creation_creationcontroller",
- "target": "controller_session_store_sessionstore"
+ "target": "api_schemas_orchestratorblock"
},
{
"relation": "uses",
"confidence": "INFERRED",
"source_file": "src/exlab_wizard/controller/creation.py",
- "source_location": "L80",
+ "source_location": "L46",
"weight": 0.8,
"confidence_score": 0.5,
"source": "controller_creation_creationcontroller",
- "target": "controller_state_machine_phase"
+ "target": "api_schemas_pathsblock"
},
{
"relation": "uses",
"confidence": "INFERRED",
"source_file": "src/exlab_wizard/controller/creation.py",
- "source_location": "L80",
+ "source_location": "L46",
"weight": 0.8,
"confidence_score": 0.5,
"source": "controller_creation_creationcontroller",
- "target": "controller_state_machine_sessionstate"
+ "target": "api_schemas_templateblock"
},
{
"relation": "calls",
@@ -217562,6 +229621,16 @@
"source": "controller_creation_creationcontroller_init",
"target": "controller_session_store_sessionstore"
},
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "src/exlab_wizard/controller/creation.py",
+ "source_location": "L289",
+ "weight": 1.0,
+ "source": "controller_creation_rationale_289",
+ "target": "controller_creation_creationcontroller_apply_config",
+ "confidence_score": 1.0
+ },
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
@@ -217583,6 +229652,16 @@
"source": "controller_creation_creationcontroller_create_project",
"target": "controller_creation_creationcontroller_launch"
},
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "src/exlab_wizard/controller/creation.py",
+ "source_location": "L306",
+ "weight": 1.0,
+ "source": "controller_creation_rationale_306",
+ "target": "controller_creation_creationcontroller_create_project",
+ "confidence_score": 1.0
+ },
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
@@ -217604,6 +229683,16 @@
"source": "controller_creation_creationcontroller_create_run",
"target": "controller_creation_creationcontroller_launch"
},
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "src/exlab_wizard/controller/creation.py",
+ "source_location": "L319",
+ "weight": 1.0,
+ "source": "controller_creation_rationale_319",
+ "target": "controller_creation_creationcontroller_create_run",
+ "confidence_score": 1.0
+ },
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
@@ -217625,6 +229714,16 @@
"source": "controller_creation_creationcontroller_resume",
"target": "controller_creation_creationcontroller_handle"
},
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "src/exlab_wizard/controller/creation.py",
+ "source_location": "L324",
+ "weight": 1.0,
+ "source": "controller_creation_rationale_324",
+ "target": "controller_creation_creationcontroller_resume",
+ "confidence_score": 1.0
+ },
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
@@ -217646,6 +229745,16 @@
"source": "controller_creation_creationcontroller_cancel",
"target": "controller_creation_creationcontroller_cleanup"
},
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "src/exlab_wizard/controller/creation.py",
+ "source_location": "L348",
+ "weight": 1.0,
+ "source": "controller_creation_rationale_348",
+ "target": "controller_creation_creationcontroller_cancel",
+ "confidence_score": 1.0
+ },
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
@@ -217667,6 +229776,16 @@
"source": "controller_creation_creationcontroller_status",
"target": "controller_creation_creationcontroller_handle"
},
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "src/exlab_wizard/controller/creation.py",
+ "source_location": "L391",
+ "weight": 1.0,
+ "source": "controller_creation_rationale_391",
+ "target": "controller_creation_creationcontroller_status",
+ "confidence_score": 1.0
+ },
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
@@ -217677,6 +229796,16 @@
"source": "controller_creation_rationale_397",
"target": "controller_creation_creationcontroller_status"
},
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "src/exlab_wizard/controller/creation.py",
+ "source_location": "L398",
+ "weight": 1.0,
+ "source": "controller_creation_rationale_398",
+ "target": "controller_creation_creationcontroller_subscribe",
+ "confidence_score": 1.0
+ },
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
@@ -217753,6 +229882,16 @@
"source": "controller_creation_creationcontroller_launch",
"target": "controller_creation_creationcontroller_run_pipeline"
},
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "src/exlab_wizard/controller/creation.py",
+ "source_location": "L422",
+ "weight": 1.0,
+ "source": "controller_creation_rationale_422",
+ "target": "controller_creation_creationcontroller_launch",
+ "confidence_score": 1.0
+ },
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
@@ -217807,6 +229946,16 @@
"source": "controller_creation_creationcontroller_validate_inputs",
"target": "controller_creation_required_field_ids"
},
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "src/exlab_wizard/controller/creation.py",
+ "source_location": "L460",
+ "weight": 1.0,
+ "source": "controller_creation_rationale_460",
+ "target": "controller_creation_creationcontroller_validate_inputs",
+ "confidence_score": 1.0
+ },
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
@@ -217872,6 +230021,16 @@
"source": "controller_creation_creationcontroller_run_pipeline",
"target": "controller_creation_creationcontroller_fail"
},
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "src/exlab_wizard/controller/creation.py",
+ "source_location": "L602",
+ "weight": 1.0,
+ "source": "controller_creation_rationale_602",
+ "target": "controller_creation_creationcontroller_run_pipeline",
+ "confidence_score": 1.0
+ },
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
@@ -218003,6 +230162,16 @@
"source": "controller_creation_creationcontroller_pipeline_states",
"target": "controller_creation_creationcontroller_append_log"
},
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "src/exlab_wizard/controller/creation.py",
+ "source_location": "L622",
+ "weight": 1.0,
+ "source": "controller_creation_rationale_622",
+ "target": "controller_creation_creationcontroller_pipeline_states",
+ "confidence_score": 1.0
+ },
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
@@ -218079,6 +230248,16 @@
"source": "controller_creation_creationcontroller_write_cache",
"target": "controller_creation_project_name_for"
},
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "src/exlab_wizard/controller/creation.py",
+ "source_location": "L757",
+ "weight": 1.0,
+ "source": "controller_creation_rationale_757",
+ "target": "controller_creation_creationcontroller_resolve_run_lims_block",
+ "confidence_score": 1.0
+ },
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
@@ -218133,6 +230312,16 @@
"source": "controller_creation_creationcontroller_cleanup",
"target": "controller_creation_creationcontroller_compose_destination_path"
},
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "src/exlab_wizard/controller/creation.py",
+ "source_location": "L810",
+ "weight": 1.0,
+ "source": "controller_creation_rationale_810",
+ "target": "controller_creation_creationcontroller_render",
+ "confidence_score": 1.0
+ },
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
@@ -218148,44 +230337,87 @@
"context": "call",
"confidence": "EXTRACTED",
"source_file": "src/exlab_wizard/controller/creation.py",
- "source_location": "L914",
+ "source_location": "L975",
"weight": 1.0,
"confidence_score": 1.0,
+ "source": "controller_creation_creationcontroller_write_cache",
+ "target": "controller_creation_creationcontroller_build_readme_context"
+ },
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "src/exlab_wizard/controller/creation.py",
+ "source_location": "L899",
+ "weight": 1.0,
+ "source": "controller_creation_rationale_899",
+ "target": "controller_creation_creationcontroller_build_readme_context",
+ "confidence_score": 1.0
+ },
+ {
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "src/exlab_wizard/controller/creation.py",
+ "source_location": "L909",
+ "weight": 1.0,
"source": "controller_creation_creationcontroller_build_readme_context",
- "target": "controller_creation_readme_decls_from_template"
+ "target": "controller_metadata_assembly_templatedesc"
+ },
+ {
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "src/exlab_wizard/controller/creation.py",
+ "source_location": "L917",
+ "weight": 1.0,
+ "source": "controller_creation_creationcontroller_build_readme_context",
+ "target": "controller_metadata_assembly_build_readme_context"
+ },
+ {
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "src/exlab_wizard/controller/creation.py",
+ "source_location": "L930",
+ "weight": 1.0,
+ "source": "controller_creation_creationcontroller_build_readme_context",
+ "target": "controller_metadata_assembly_os_username"
},
{
"relation": "calls",
"context": "call",
"confidence": "EXTRACTED",
"source_file": "src/exlab_wizard/controller/creation.py",
- "source_location": "L915",
+ "source_location": "L914",
"weight": 1.0,
"confidence_score": 1.0,
"source": "controller_creation_creationcontroller_build_readme_context",
- "target": "controller_creation_readme_decls_from_config"
+ "target": "controller_creation_readme_decls_from_template"
},
{
"relation": "calls",
"context": "call",
"confidence": "EXTRACTED",
"source_file": "src/exlab_wizard/controller/creation.py",
- "source_location": "L942",
+ "source_location": "L915",
"weight": 1.0,
"confidence_score": 1.0,
"source": "controller_creation_creationcontroller_build_readme_context",
- "target": "controller_creation_os_username"
+ "target": "controller_creation_readme_decls_from_config"
},
{
"relation": "calls",
"context": "call",
"confidence": "EXTRACTED",
"source_file": "src/exlab_wizard/controller/creation.py",
- "source_location": "L975",
+ "source_location": "L942",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "controller_creation_creationcontroller_write_cache",
- "target": "controller_creation_creationcontroller_build_readme_context"
+ "source": "controller_creation_creationcontroller_build_readme_context",
+ "target": "controller_creation_os_username"
},
{
"relation": "rationale_for",
@@ -218212,11 +230444,11 @@
"relation": "rationale_for",
"confidence": "EXTRACTED",
"source_file": "src/exlab_wizard/controller/creation.py",
- "source_location": "L973",
+ "source_location": "L943",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "controller_creation_rationale_973",
- "target": "controller_creation_creationcontroller_write_cache"
+ "source": "controller_creation_rationale_943",
+ "target": "controller_creation_creationcontroller_write_cache",
+ "confidence_score": 1.0
},
{
"relation": "calls",
@@ -218251,6 +230483,38 @@
"source": "controller_creation_creationcontroller_write_cache",
"target": "api_schemas_pluginisolation"
},
+ {
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "src/exlab_wizard/controller/creation.py",
+ "source_location": "L1008",
+ "weight": 1.0,
+ "source": "controller_creation_creationcontroller_write_cache",
+ "target": "controller_metadata_assembly_templatedesc"
+ },
+ {
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "src/exlab_wizard/controller/creation.py",
+ "source_location": "L1016",
+ "weight": 1.0,
+ "source": "controller_creation_creationcontroller_write_cache",
+ "target": "controller_metadata_assembly_build_creation_json"
+ },
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "src/exlab_wizard/controller/creation.py",
+ "source_location": "L973",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "controller_creation_rationale_973",
+ "target": "controller_creation_creationcontroller_write_cache"
+ },
{
"relation": "calls",
"context": "call",
@@ -218299,11 +230563,11 @@
"relation": "rationale_for",
"confidence": "EXTRACTED",
"source_file": "src/exlab_wizard/controller/creation.py",
- "source_location": "L1083",
+ "source_location": "L1045",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "controller_creation_rationale_1083",
- "target": "controller_creation_creationcontroller_write_equipment_json"
+ "source": "controller_creation_rationale_1045",
+ "target": "controller_creation_creationcontroller_write_equipment_json",
+ "confidence_score": 1.0
},
{
"relation": "calls",
@@ -218316,6 +230580,26 @@
"source": "controller_creation_creationcontroller_write_equipment_json",
"target": "api_schemas_equipmentjson"
},
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "src/exlab_wizard/controller/creation.py",
+ "source_location": "L1083",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "controller_creation_rationale_1083",
+ "target": "controller_creation_creationcontroller_write_equipment_json"
+ },
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "src/exlab_wizard/controller/creation.py",
+ "source_location": "L1082",
+ "weight": 1.0,
+ "source": "controller_creation_rationale_1082",
+ "target": "controller_creation_creationcontroller_post_validate",
+ "confidence_score": 1.0
+ },
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
@@ -218370,6 +230654,16 @@
"source": "controller_creation_creationcontroller_fail",
"target": "controller_creation_creationcontroller_cleanup"
},
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "src/exlab_wizard/controller/creation.py",
+ "source_location": "L1161",
+ "weight": 1.0,
+ "source": "controller_creation_rationale_1161",
+ "target": "controller_creation_creationcontroller_cleanup",
+ "confidence_score": 1.0
+ },
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
@@ -218384,51 +230678,51 @@
"relation": "rationale_for",
"confidence": "EXTRACTED",
"source_file": "src/exlab_wizard/controller/creation.py",
- "source_location": "L1232",
+ "source_location": "L1194",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "controller_creation_rationale_1232",
- "target": "controller_creation_creationcontroller_append_log"
+ "source": "controller_creation_rationale_1194",
+ "target": "controller_creation_creationcontroller_append_log",
+ "confidence_score": 1.0
},
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
"source_file": "src/exlab_wizard/controller/creation.py",
- "source_location": "L1257",
+ "source_location": "L1232",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "controller_creation_rationale_1257",
- "target": "controller_creation_required_field_ids"
+ "source": "controller_creation_rationale_1232",
+ "target": "controller_creation_creationcontroller_append_log"
},
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
"source_file": "src/exlab_wizard/controller/creation.py",
- "source_location": "L1270",
+ "source_location": "L1219",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "controller_creation_rationale_1270",
- "target": "controller_creation_readme_decls_from_template"
+ "source": "controller_creation_rationale_1219",
+ "target": "controller_creation_required_field_ids",
+ "confidence_score": 1.0
},
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
"source_file": "src/exlab_wizard/controller/creation.py",
- "source_location": "L1302",
+ "source_location": "L1257",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "controller_creation_rationale_1302",
- "target": "controller_creation_readme_decls_from_config"
+ "source": "controller_creation_rationale_1257",
+ "target": "controller_creation_required_field_ids"
},
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
"source_file": "src/exlab_wizard/controller/creation.py",
- "source_location": "L1327",
+ "source_location": "L1238",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "controller_creation_rationale_1327",
- "target": "controller_creation_os_username"
+ "source": "controller_creation_rationale_1238",
+ "target": "controller_creation_attach_resolved",
+ "confidence_score": 1.0
},
{
"relation": "rationale_for",
@@ -218632,6 +230926,294 @@
"source": "controller_session_store_sessionstore_transition",
"target": "controller_state_machine_assert_transition"
},
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "src/exlab_wizard/controller/metadata_assembly.py",
+ "source_location": "L68",
+ "weight": 1.0,
+ "source": "src_exlab_wizard_controller_metadata_assembly_py",
+ "target": "controller_metadata_assembly_templatedesc",
+ "confidence_score": 1.0
+ },
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "src/exlab_wizard/controller/metadata_assembly.py",
+ "source_location": "L96",
+ "weight": 1.0,
+ "source": "src_exlab_wizard_controller_metadata_assembly_py",
+ "target": "controller_metadata_assembly_build_readme_context",
+ "confidence_score": 1.0
+ },
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "src/exlab_wizard/controller/metadata_assembly.py",
+ "source_location": "L168",
+ "weight": 1.0,
+ "source": "src_exlab_wizard_controller_metadata_assembly_py",
+ "target": "controller_metadata_assembly_build_creation_json",
+ "confidence_score": 1.0
+ },
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "src/exlab_wizard/controller/metadata_assembly.py",
+ "source_location": "L230",
+ "weight": 1.0,
+ "source": "src_exlab_wizard_controller_metadata_assembly_py",
+ "target": "controller_metadata_assembly_readme_decls_from_template",
+ "confidence_score": 1.0
+ },
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "src/exlab_wizard/controller/metadata_assembly.py",
+ "source_location": "L262",
+ "weight": 1.0,
+ "source": "src_exlab_wizard_controller_metadata_assembly_py",
+ "target": "controller_metadata_assembly_readme_decls_from_config",
+ "confidence_score": 1.0
+ },
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "src/exlab_wizard/controller/metadata_assembly.py",
+ "source_location": "L287",
+ "weight": 1.0,
+ "source": "src_exlab_wizard_controller_metadata_assembly_py",
+ "target": "controller_metadata_assembly_os_username",
+ "confidence_score": 1.0
+ },
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "src/exlab_wizard/controller/metadata_assembly.py",
+ "source_location": "L1",
+ "weight": 1.0,
+ "source": "controller_metadata_assembly_rationale_1",
+ "target": "src_exlab_wizard_controller_metadata_assembly_py",
+ "confidence_score": 1.0
+ },
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "src/exlab_wizard/controller/metadata_assembly.py",
+ "source_location": "L69",
+ "weight": 1.0,
+ "source": "controller_metadata_assembly_rationale_69",
+ "target": "controller_metadata_assembly_templatedesc",
+ "confidence_score": 1.0
+ },
+ {
+ "relation": "uses",
+ "confidence": "INFERRED",
+ "source_file": "src/exlab_wizard/controller/metadata_assembly.py",
+ "source_location": "L34",
+ "weight": 0.8,
+ "source": "controller_metadata_assembly_templatedesc",
+ "target": "api_schemas_creationjson",
+ "confidence_score": 0.5
+ },
+ {
+ "relation": "uses",
+ "confidence": "INFERRED",
+ "source_file": "src/exlab_wizard/controller/metadata_assembly.py",
+ "source_location": "L34",
+ "weight": 0.8,
+ "source": "controller_metadata_assembly_templatedesc",
+ "target": "api_schemas_limsprojectblock",
+ "confidence_score": 0.5
+ },
+ {
+ "relation": "uses",
+ "confidence": "INFERRED",
+ "source_file": "src/exlab_wizard/controller/metadata_assembly.py",
+ "source_location": "L34",
+ "weight": 0.8,
+ "source": "controller_metadata_assembly_templatedesc",
+ "target": "api_schemas_orchestratorblock",
+ "confidence_score": 0.5
+ },
+ {
+ "relation": "uses",
+ "confidence": "INFERRED",
+ "source_file": "src/exlab_wizard/controller/metadata_assembly.py",
+ "source_location": "L34",
+ "weight": 0.8,
+ "source": "controller_metadata_assembly_templatedesc",
+ "target": "api_schemas_pathsblock",
+ "confidence_score": 0.5
+ },
+ {
+ "relation": "uses",
+ "confidence": "INFERRED",
+ "source_file": "src/exlab_wizard/controller/metadata_assembly.py",
+ "source_location": "L34",
+ "weight": 0.8,
+ "source": "controller_metadata_assembly_templatedesc",
+ "target": "api_schemas_pluginapplied",
+ "confidence_score": 0.5
+ },
+ {
+ "relation": "uses",
+ "confidence": "INFERRED",
+ "source_file": "src/exlab_wizard/controller/metadata_assembly.py",
+ "source_location": "L34",
+ "weight": 0.8,
+ "source": "controller_metadata_assembly_templatedesc",
+ "target": "api_schemas_templateblock",
+ "confidence_score": 0.5
+ },
+ {
+ "relation": "uses",
+ "confidence": "INFERRED",
+ "source_file": "src/exlab_wizard/sample_data/generator.py",
+ "source_location": "L70",
+ "weight": 0.8,
+ "source": "sample_data_generator_sampledatagenerator",
+ "target": "controller_metadata_assembly_templatedesc",
+ "confidence_score": 0.5
+ },
+ {
+ "relation": "calls",
+ "context": "call",
+ "confidence": "EXTRACTED",
+ "source_file": "src/exlab_wizard/controller/metadata_assembly.py",
+ "source_location": "L120",
+ "weight": 1.0,
+ "source": "controller_metadata_assembly_build_readme_context",
+ "target": "controller_metadata_assembly_readme_decls_from_template",
+ "confidence_score": 1.0
+ },
+ {
+ "relation": "calls",
+ "context": "call",
+ "confidence": "EXTRACTED",
+ "source_file": "src/exlab_wizard/controller/metadata_assembly.py",
+ "source_location": "L121",
+ "weight": 1.0,
+ "source": "controller_metadata_assembly_build_readme_context",
+ "target": "controller_metadata_assembly_readme_decls_from_config",
+ "confidence_score": 1.0
+ },
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "src/exlab_wizard/controller/metadata_assembly.py",
+ "source_location": "L112",
+ "weight": 1.0,
+ "source": "controller_metadata_assembly_rationale_112",
+ "target": "controller_metadata_assembly_build_readme_context",
+ "confidence_score": 1.0
+ },
+ {
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "src/exlab_wizard/sample_data/generator.py",
+ "source_location": "L431",
+ "weight": 1.0,
+ "source": "sample_data_generator_sampledatagenerator_write_metadata",
+ "target": "controller_metadata_assembly_build_readme_context"
+ },
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "src/exlab_wizard/controller/metadata_assembly.py",
+ "source_location": "L184",
+ "weight": 1.0,
+ "source": "controller_metadata_assembly_rationale_184",
+ "target": "controller_metadata_assembly_build_creation_json",
+ "confidence_score": 1.0
+ },
+ {
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "src/exlab_wizard/controller/metadata_assembly.py",
+ "source_location": "L194",
+ "weight": 1.0,
+ "source": "controller_metadata_assembly_build_creation_json",
+ "target": "api_schemas_orchestratorblock"
+ },
+ {
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "src/exlab_wizard/controller/metadata_assembly.py",
+ "source_location": "L201",
+ "weight": 1.0,
+ "source": "controller_metadata_assembly_build_creation_json",
+ "target": "api_schemas_creationjson"
+ },
+ {
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "src/exlab_wizard/controller/metadata_assembly.py",
+ "source_location": "L208",
+ "weight": 1.0,
+ "source": "controller_metadata_assembly_build_creation_json",
+ "target": "api_schemas_templateblock"
+ },
+ {
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "src/exlab_wizard/controller/metadata_assembly.py",
+ "source_location": "L215",
+ "weight": 1.0,
+ "source": "controller_metadata_assembly_build_creation_json",
+ "target": "api_schemas_pathsblock"
+ },
+ {
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "src/exlab_wizard/sample_data/generator.py",
+ "source_location": "L448",
+ "weight": 1.0,
+ "source": "sample_data_generator_sampledatagenerator_write_metadata",
+ "target": "controller_metadata_assembly_build_creation_json"
+ },
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "src/exlab_wizard/controller/metadata_assembly.py",
+ "source_location": "L231",
+ "weight": 1.0,
+ "source": "controller_metadata_assembly_rationale_231",
+ "target": "controller_metadata_assembly_readme_decls_from_template",
+ "confidence_score": 1.0
+ },
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "src/exlab_wizard/controller/metadata_assembly.py",
+ "source_location": "L263",
+ "weight": 1.0,
+ "source": "controller_metadata_assembly_rationale_263",
+ "target": "controller_metadata_assembly_readme_decls_from_config",
+ "confidence_score": 1.0
+ },
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "src/exlab_wizard/controller/metadata_assembly.py",
+ "source_location": "L288",
+ "weight": 1.0,
+ "source": "controller_metadata_assembly_rationale_288",
+ "target": "controller_metadata_assembly_os_username",
+ "confidence_score": 1.0
+ },
{
"relation": "contains",
"confidence": "EXTRACTED",
@@ -218843,6 +231425,26 @@
"source": "controller_session_store_rationale_93",
"target": "controller_session_store_sessionstore"
},
+ {
+ "relation": "uses",
+ "confidence": "INFERRED",
+ "source_file": "tests/unit/ui/test_mount.py",
+ "source_location": "L282",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "ui_test_mount_fakeui",
+ "target": "controller_session_store_sessionstore"
+ },
+ {
+ "relation": "uses",
+ "confidence": "INFERRED",
+ "source_file": "tests/unit/ui/test_mount.py",
+ "source_location": "L282",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "ui_test_mount_boomui",
+ "target": "controller_session_store_sessionstore"
+ },
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
@@ -219084,6 +231686,531 @@
"source": "routers_operations_session_to_entry",
"target": "controller_session_store_project_identifier"
},
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "src/exlab_wizard/sample_data/spec.py",
+ "source_location": "L29",
+ "weight": 1.0,
+ "source": "src_exlab_wizard_sample_data_spec_py",
+ "target": "sample_data_spec_samplefile",
+ "confidence_score": 1.0
+ },
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "src/exlab_wizard/sample_data/spec.py",
+ "source_location": "L37",
+ "weight": 1.0,
+ "source": "src_exlab_wizard_sample_data_spec_py",
+ "target": "sample_data_spec_check_relpath",
+ "confidence_score": 1.0
+ },
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "src/exlab_wizard/sample_data/spec.py",
+ "source_location": "L50",
+ "weight": 1.0,
+ "source": "src_exlab_wizard_sample_data_spec_py",
+ "target": "sample_data_spec_samplerun",
+ "confidence_score": 1.0
+ },
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "src/exlab_wizard/sample_data/spec.py",
+ "source_location": "L63",
+ "weight": 1.0,
+ "source": "src_exlab_wizard_sample_data_spec_py",
+ "target": "sample_data_spec_sampleproject",
+ "confidence_score": 1.0
+ },
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "src/exlab_wizard/sample_data/spec.py",
+ "source_location": "L75",
+ "weight": 1.0,
+ "source": "src_exlab_wizard_sample_data_spec_py",
+ "target": "sample_data_spec_check_short_id",
+ "confidence_score": 1.0
+ },
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "src/exlab_wizard/sample_data/spec.py",
+ "source_location": "L85",
+ "weight": 1.0,
+ "source": "src_exlab_wizard_sample_data_spec_py",
+ "target": "sample_data_spec_check_name",
+ "confidence_score": 1.0
+ },
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "src/exlab_wizard/sample_data/spec.py",
+ "source_location": "L97",
+ "weight": 1.0,
+ "source": "src_exlab_wizard_sample_data_spec_py",
+ "target": "sample_data_spec_sampleequipment",
+ "confidence_score": 1.0
+ },
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "src/exlab_wizard/sample_data/spec.py",
+ "source_location": "L107",
+ "weight": 1.0,
+ "source": "src_exlab_wizard_sample_data_spec_py",
+ "target": "sample_data_spec_check_id",
+ "confidence_score": 1.0
+ },
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "src/exlab_wizard/sample_data/spec.py",
+ "source_location": "L1",
+ "weight": 1.0,
+ "source": "sample_data_spec_rationale_1",
+ "target": "src_exlab_wizard_sample_data_spec_py",
+ "confidence_score": 1.0
+ },
+ {
+ "relation": "uses",
+ "confidence": "INFERRED",
+ "source_file": "src/exlab_wizard/sample_data/generator.py",
+ "source_location": "L86",
+ "weight": 0.8,
+ "source": "sample_data_generator_sampledatagenerator",
+ "target": "sample_data_spec_samplerun",
+ "confidence_score": 0.5
+ },
+ {
+ "relation": "uses",
+ "confidence": "INFERRED",
+ "source_file": "src/exlab_wizard/sample_data/generator.py",
+ "source_location": "L86",
+ "weight": 0.8,
+ "source": "sample_data_generator_sampledatagenerator",
+ "target": "sample_data_spec_sampleproject",
+ "confidence_score": 0.5
+ },
+ {
+ "relation": "uses",
+ "confidence": "INFERRED",
+ "source_file": "src/exlab_wizard/sample_data/generator.py",
+ "source_location": "L86",
+ "weight": 0.8,
+ "source": "sample_data_generator_sampledatagenerator",
+ "target": "sample_data_spec_sampleequipment",
+ "confidence_score": 0.5
+ },
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "src/exlab_wizard/sample_data/generator.py",
+ "source_location": "L121",
+ "weight": 1.0,
+ "source": "src_exlab_wizard_sample_data_generator_py",
+ "target": "sample_data_generator_generate_samples",
+ "confidence_score": 1.0
+ },
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "src/exlab_wizard/sample_data/generator.py",
+ "source_location": "L147",
+ "weight": 1.0,
+ "source": "src_exlab_wizard_sample_data_generator_py",
+ "target": "sample_data_generator_sampledatagenerator",
+ "confidence_score": 1.0
+ },
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "src/exlab_wizard/sample_data/generator.py",
+ "source_location": "L1",
+ "weight": 1.0,
+ "source": "sample_data_generator_rationale_1",
+ "target": "src_exlab_wizard_sample_data_generator_py",
+ "confidence_score": 1.0
+ },
+ {
+ "relation": "calls",
+ "context": "call",
+ "confidence": "EXTRACTED",
+ "source_file": "src/exlab_wizard/sample_data/generator.py",
+ "source_location": "L144",
+ "weight": 1.0,
+ "source": "sample_data_generator_generate_samples",
+ "target": "sample_data_generator_sampledatagenerator_generate",
+ "confidence_score": 1.0
+ },
+ {
+ "relation": "calls",
+ "context": "call",
+ "confidence": "EXTRACTED",
+ "source_file": "src/exlab_wizard/sample_data/generator.py",
+ "source_location": "L144",
+ "weight": 1.0,
+ "source": "sample_data_generator_generate_samples",
+ "target": "sample_data_generator_sampledatagenerator",
+ "confidence_score": 1.0
+ },
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "src/exlab_wizard/sample_data/generator.py",
+ "source_location": "L127",
+ "weight": 1.0,
+ "source": "sample_data_generator_rationale_127",
+ "target": "sample_data_generator_generate_samples",
+ "confidence_score": 1.0
+ },
+ {
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "src/exlab_wizard/dev/seed.py",
+ "source_location": "L38",
+ "weight": 1.0,
+ "source": "dev_seed_main",
+ "target": "sample_data_generator_generate_samples"
+ },
+ {
+ "relation": "method",
+ "confidence": "EXTRACTED",
+ "source_file": "src/exlab_wizard/sample_data/generator.py",
+ "source_location": "L150",
+ "weight": 1.0,
+ "source": "sample_data_generator_sampledatagenerator",
+ "target": "sample_data_generator_sampledatagenerator_init",
+ "confidence_score": 1.0
+ },
+ {
+ "relation": "method",
+ "confidence": "EXTRACTED",
+ "source_file": "src/exlab_wizard/sample_data/generator.py",
+ "source_location": "L163",
+ "weight": 1.0,
+ "source": "sample_data_generator_sampledatagenerator",
+ "target": "sample_data_generator_sampledatagenerator_generate",
+ "confidence_score": 1.0
+ },
+ {
+ "relation": "method",
+ "confidence": "EXTRACTED",
+ "source_file": "src/exlab_wizard/sample_data/generator.py",
+ "source_location": "L171",
+ "weight": 1.0,
+ "source": "sample_data_generator_sampledatagenerator",
+ "target": "sample_data_generator_sampledatagenerator_generate_async",
+ "confidence_score": 1.0
+ },
+ {
+ "relation": "method",
+ "confidence": "EXTRACTED",
+ "source_file": "src/exlab_wizard/sample_data/generator.py",
+ "source_location": "L194",
+ "weight": 1.0,
+ "source": "sample_data_generator_sampledatagenerator",
+ "target": "sample_data_generator_sampledatagenerator_build_and_reload_config",
+ "confidence_score": 1.0
+ },
+ {
+ "relation": "method",
+ "confidence": "EXTRACTED",
+ "source_file": "src/exlab_wizard/sample_data/generator.py",
+ "source_location": "L239",
+ "weight": 1.0,
+ "source": "sample_data_generator_sampledatagenerator",
+ "target": "sample_data_generator_sampledatagenerator_wipe",
+ "confidence_score": 1.0
+ },
+ {
+ "relation": "method",
+ "confidence": "EXTRACTED",
+ "source_file": "src/exlab_wizard/sample_data/generator.py",
+ "source_location": "L286",
+ "weight": 1.0,
+ "source": "sample_data_generator_sampledatagenerator",
+ "target": "sample_data_generator_sampledatagenerator_write_equipment",
+ "confidence_score": 1.0
+ },
+ {
+ "relation": "method",
+ "confidence": "EXTRACTED",
+ "source_file": "src/exlab_wizard/sample_data/generator.py",
+ "source_location": "L313",
+ "weight": 1.0,
+ "source": "sample_data_generator_sampledatagenerator",
+ "target": "sample_data_generator_sampledatagenerator_write_project",
+ "confidence_score": 1.0
+ },
+ {
+ "relation": "method",
+ "confidence": "EXTRACTED",
+ "source_file": "src/exlab_wizard/sample_data/generator.py",
+ "source_location": "L401",
+ "weight": 1.0,
+ "source": "sample_data_generator_sampledatagenerator",
+ "target": "sample_data_generator_sampledatagenerator_write_metadata",
+ "confidence_score": 1.0
+ },
+ {
+ "relation": "method",
+ "confidence": "EXTRACTED",
+ "source_file": "src/exlab_wizard/sample_data/generator.py",
+ "source_location": "L469",
+ "weight": 1.0,
+ "source": "sample_data_generator_sampledatagenerator",
+ "target": "sample_data_generator_sampledatagenerator_run_date",
+ "confidence_score": 1.0
+ },
+ {
+ "relation": "method",
+ "confidence": "EXTRACTED",
+ "source_file": "src/exlab_wizard/sample_data/generator.py",
+ "source_location": "L479",
+ "weight": 1.0,
+ "source": "sample_data_generator_sampledatagenerator",
+ "target": "sample_data_generator_sampledatagenerator_write_payload",
+ "confidence_score": 1.0
+ },
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "src/exlab_wizard/sample_data/generator.py",
+ "source_location": "L148",
+ "weight": 1.0,
+ "source": "sample_data_generator_rationale_148",
+ "target": "sample_data_generator_sampledatagenerator",
+ "confidence_score": 1.0
+ },
+ {
+ "relation": "uses",
+ "confidence": "INFERRED",
+ "source_file": "src/exlab_wizard/sample_data/generator.py",
+ "source_location": "L43",
+ "weight": 0.8,
+ "source": "sample_data_generator_sampledatagenerator",
+ "target": "api_schemas_equipmentjson",
+ "confidence_score": 0.5
+ },
+ {
+ "relation": "uses",
+ "confidence": "INFERRED",
+ "source_file": "src/exlab_wizard/sample_data/generator.py",
+ "source_location": "L43",
+ "weight": 0.8,
+ "source": "sample_data_generator_sampledatagenerator",
+ "target": "api_schemas_limsprojectblock",
+ "confidence_score": 0.5
+ },
+ {
+ "relation": "uses",
+ "confidence": "INFERRED",
+ "source_file": "src/exlab_wizard/sample_data/generator.py",
+ "source_location": "L43",
+ "weight": 0.8,
+ "source": "sample_data_generator_sampledatagenerator",
+ "target": "api_schemas_testrunsjson",
+ "confidence_score": 0.5
+ },
+ {
+ "relation": "calls",
+ "context": "call",
+ "confidence": "EXTRACTED",
+ "source_file": "src/exlab_wizard/sample_data/generator.py",
+ "source_location": "L165",
+ "weight": 1.0,
+ "source": "sample_data_generator_sampledatagenerator_generate",
+ "target": "sample_data_generator_sampledatagenerator_generate_async",
+ "confidence_score": 1.0
+ },
+ {
+ "relation": "calls",
+ "context": "call",
+ "confidence": "EXTRACTED",
+ "source_file": "src/exlab_wizard/sample_data/generator.py",
+ "source_location": "L446",
+ "weight": 1.0,
+ "source": "sample_data_generator_sampledatagenerator_write_metadata",
+ "target": "sample_data_generator_sampledatagenerator_generate",
+ "confidence_score": 1.0
+ },
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "src/exlab_wizard/sample_data/generator.py",
+ "source_location": "L164",
+ "weight": 1.0,
+ "source": "sample_data_generator_rationale_164",
+ "target": "sample_data_generator_sampledatagenerator_generate",
+ "confidence_score": 1.0
+ },
+ {
+ "relation": "calls",
+ "context": "call",
+ "confidence": "EXTRACTED",
+ "source_file": "src/exlab_wizard/sample_data/generator.py",
+ "source_location": "L172",
+ "weight": 1.0,
+ "source": "sample_data_generator_sampledatagenerator_generate_async",
+ "target": "sample_data_generator_sampledatagenerator_build_and_reload_config",
+ "confidence_score": 1.0
+ },
+ {
+ "relation": "calls",
+ "context": "call",
+ "confidence": "EXTRACTED",
+ "source_file": "src/exlab_wizard/sample_data/generator.py",
+ "source_location": "L185",
+ "weight": 1.0,
+ "source": "sample_data_generator_sampledatagenerator_generate_async",
+ "target": "sample_data_generator_sampledatagenerator_wipe",
+ "confidence_score": 1.0
+ },
+ {
+ "relation": "calls",
+ "context": "call",
+ "confidence": "EXTRACTED",
+ "source_file": "src/exlab_wizard/sample_data/generator.py",
+ "source_location": "L188",
+ "weight": 1.0,
+ "source": "sample_data_generator_sampledatagenerator_generate_async",
+ "target": "sample_data_generator_sampledatagenerator_write_equipment",
+ "confidence_score": 1.0
+ },
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "src/exlab_wizard/sample_data/generator.py",
+ "source_location": "L195",
+ "weight": 1.0,
+ "source": "sample_data_generator_rationale_195",
+ "target": "sample_data_generator_sampledatagenerator_build_and_reload_config",
+ "confidence_score": 1.0
+ },
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "src/exlab_wizard/sample_data/generator.py",
+ "source_location": "L240",
+ "weight": 1.0,
+ "source": "sample_data_generator_rationale_240",
+ "target": "sample_data_generator_sampledatagenerator_wipe",
+ "confidence_score": 1.0
+ },
+ {
+ "relation": "calls",
+ "context": "call",
+ "confidence": "EXTRACTED",
+ "source_file": "src/exlab_wizard/sample_data/generator.py",
+ "source_location": "L297",
+ "weight": 1.0,
+ "source": "sample_data_generator_sampledatagenerator_write_equipment",
+ "target": "sample_data_generator_sampledatagenerator_write_project",
+ "confidence_score": 1.0
+ },
+ {
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "src/exlab_wizard/sample_data/generator.py",
+ "source_location": "L301",
+ "weight": 1.0,
+ "source": "sample_data_generator_sampledatagenerator_write_equipment",
+ "target": "api_schemas_equipmentjson"
+ },
+ {
+ "relation": "calls",
+ "context": "call",
+ "confidence": "EXTRACTED",
+ "source_file": "src/exlab_wizard/sample_data/generator.py",
+ "source_location": "L337",
+ "weight": 1.0,
+ "source": "sample_data_generator_sampledatagenerator_write_project",
+ "target": "sample_data_generator_sampledatagenerator_write_metadata",
+ "confidence_score": 1.0
+ },
+ {
+ "relation": "calls",
+ "context": "call",
+ "confidence": "EXTRACTED",
+ "source_file": "src/exlab_wizard/sample_data/generator.py",
+ "source_location": "L357",
+ "weight": 1.0,
+ "source": "sample_data_generator_sampledatagenerator_write_project",
+ "target": "sample_data_generator_sampledatagenerator_run_date",
+ "confidence_score": 1.0
+ },
+ {
+ "relation": "calls",
+ "context": "call",
+ "confidence": "EXTRACTED",
+ "source_file": "src/exlab_wizard/sample_data/generator.py",
+ "source_location": "L366",
+ "weight": 1.0,
+ "source": "sample_data_generator_sampledatagenerator_write_project",
+ "target": "sample_data_generator_sampledatagenerator_write_payload",
+ "confidence_score": 1.0
+ },
+ {
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "src/exlab_wizard/sample_data/generator.py",
+ "source_location": "L328",
+ "weight": 1.0,
+ "source": "sample_data_generator_sampledatagenerator_write_project",
+ "target": "api_schemas_limsprojectblock"
+ },
+ {
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "src/exlab_wizard/sample_data/generator.py",
+ "source_location": "L389",
+ "weight": 1.0,
+ "source": "sample_data_generator_sampledatagenerator_write_project",
+ "target": "api_schemas_testrunsjson"
+ },
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "src/exlab_wizard/sample_data/generator.py",
+ "source_location": "L420",
+ "weight": 1.0,
+ "source": "sample_data_generator_rationale_420",
+ "target": "sample_data_generator_sampledatagenerator_write_metadata",
+ "confidence_score": 1.0
+ },
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "src/exlab_wizard/sample_data/generator.py",
+ "source_location": "L470",
+ "weight": 1.0,
+ "source": "sample_data_generator_rationale_470",
+ "target": "sample_data_generator_sampledatagenerator_run_date",
+ "confidence_score": 1.0
+ },
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "src/exlab_wizard/sample_data/generator.py",
+ "source_location": "L480",
+ "weight": 1.0,
+ "source": "sample_data_generator_rationale_480",
+ "target": "sample_data_generator_sampledatagenerator_write_payload",
+ "confidence_score": 1.0
+ },
{
"relation": "contains",
"confidence": "EXTRACTED",
@@ -220683,6 +233810,26 @@
"source": "api_schemas_rationale_87",
"target": "api_schemas_limsprojectblock"
},
+ {
+ "relation": "uses",
+ "confidence": "INFERRED",
+ "source_file": "tests/unit/ui/test_mount.py",
+ "source_location": "L1344",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "ui_test_mount_fakeui",
+ "target": "api_schemas_limsprojectblock"
+ },
+ {
+ "relation": "uses",
+ "confidence": "INFERRED",
+ "source_file": "tests/unit/ui/test_mount.py",
+ "source_location": "L1344",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "ui_test_mount_boomui",
+ "target": "api_schemas_limsprojectblock"
+ },
{
"relation": "uses",
"confidence": "INFERRED",
@@ -220703,6 +233850,26 @@
"source": "api_schemas_rationale_107",
"target": "api_schemas_templateblock"
},
+ {
+ "relation": "uses",
+ "confidence": "INFERRED",
+ "source_file": "tests/unit/ui/test_mount.py",
+ "source_location": "L1344",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "ui_test_mount_fakeui",
+ "target": "api_schemas_templateblock"
+ },
+ {
+ "relation": "uses",
+ "confidence": "INFERRED",
+ "source_file": "tests/unit/ui/test_mount.py",
+ "source_location": "L1344",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "ui_test_mount_boomui",
+ "target": "api_schemas_templateblock"
+ },
{
"relation": "uses",
"confidence": "INFERRED",
@@ -220743,6 +233910,26 @@
"source": "api_schemas_rationale_153",
"target": "api_schemas_pathsblock"
},
+ {
+ "relation": "uses",
+ "confidence": "INFERRED",
+ "source_file": "tests/unit/ui/test_mount.py",
+ "source_location": "L1344",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "ui_test_mount_fakeui",
+ "target": "api_schemas_pathsblock"
+ },
+ {
+ "relation": "uses",
+ "confidence": "INFERRED",
+ "source_file": "tests/unit/ui/test_mount.py",
+ "source_location": "L1344",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "ui_test_mount_boomui",
+ "target": "api_schemas_pathsblock"
+ },
{
"relation": "uses",
"confidence": "INFERRED",
@@ -221093,6 +234280,26 @@
"source": "sync_nas_client_nassyncclient",
"target": "api_schemas_creationjson"
},
+ {
+ "relation": "uses",
+ "confidence": "INFERRED",
+ "source_file": "tests/unit/ui/test_mount.py",
+ "source_location": "L1344",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "ui_test_mount_fakeui",
+ "target": "api_schemas_creationjson"
+ },
+ {
+ "relation": "uses",
+ "confidence": "INFERRED",
+ "source_file": "tests/unit/ui/test_mount.py",
+ "source_location": "L1344",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "ui_test_mount_boomui",
+ "target": "api_schemas_creationjson"
+ },
{
"relation": "uses",
"confidence": "INFERRED",
@@ -222527,6 +235734,26 @@
"source": "routers_browse_rationale_133",
"target": "routers_browse_folderentry"
},
+ {
+ "relation": "uses",
+ "confidence": "INFERRED",
+ "source_file": "tests/unit/ui/test_mount.py",
+ "source_location": "L1729",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "ui_test_mount_fakeui",
+ "target": "routers_browse_folderentry"
+ },
+ {
+ "relation": "uses",
+ "confidence": "INFERRED",
+ "source_file": "tests/unit/ui/test_mount.py",
+ "source_location": "L1729",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "ui_test_mount_boomui",
+ "target": "routers_browse_folderentry"
+ },
{
"relation": "calls",
"context": "call",
@@ -222548,6 +235775,26 @@
"source": "routers_browse_rationale_157",
"target": "routers_browse_folderresponse"
},
+ {
+ "relation": "uses",
+ "confidence": "INFERRED",
+ "source_file": "tests/unit/ui/test_mount.py",
+ "source_location": "L1729",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "ui_test_mount_fakeui",
+ "target": "routers_browse_folderresponse"
+ },
+ {
+ "relation": "uses",
+ "confidence": "INFERRED",
+ "source_file": "tests/unit/ui/test_mount.py",
+ "source_location": "L1729",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "ui_test_mount_boomui",
+ "target": "routers_browse_folderresponse"
+ },
{
"relation": "calls",
"context": "call",
@@ -224029,6 +237276,46 @@
"source": "routers_staging_rationale_353",
"target": "routers_staging_require_config"
},
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "src/exlab_wizard/dev/__init__.py",
+ "source_location": "L1",
+ "weight": 1.0,
+ "source": "dev_init_rationale_1",
+ "target": "src_exlab_wizard_dev_init_py",
+ "confidence_score": 1.0
+ },
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "src/exlab_wizard/dev/seed.py",
+ "source_location": "L15",
+ "weight": 1.0,
+ "source": "src_exlab_wizard_dev_seed_py",
+ "target": "dev_seed_main",
+ "confidence_score": 1.0
+ },
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "src/exlab_wizard/dev/seed.py",
+ "source_location": "L1",
+ "weight": 1.0,
+ "source": "dev_seed_rationale_1",
+ "target": "src_exlab_wizard_dev_seed_py",
+ "confidence_score": 1.0
+ },
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "src/exlab_wizard/dev/seed.py",
+ "source_location": "L16",
+ "weight": 1.0,
+ "source": "dev_seed_rationale_16",
+ "target": "dev_seed_main",
+ "confidence_score": 1.0
+ },
{
"relation": "contains",
"confidence": "EXTRACTED",
@@ -229796,6 +243083,17 @@
"source": "orchestrator_staging_query_rationale_80",
"target": "orchestrator_staging_query_list_staged_runs"
},
+ {
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "src/exlab_wizard/ui/mount.py",
+ "source_location": "L1940",
+ "weight": 1.0,
+ "source": "ui_mount_build_staging_state",
+ "target": "orchestrator_staging_query_list_staged_runs"
+ },
{
"relation": "calls",
"context": "call",
@@ -229900,256 +243198,6 @@
"source": "orchestrator_staging_query_rationale_205",
"target": "orchestrator_staging_query_iso_to_epoch"
},
- {
- "relation": "contains",
- "confidence": "EXTRACTED",
- "source_file": "RESUME.md",
- "source_location": "L1",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "resume_md",
- "target": "exlabwizard_resume_resume_main_window_ui_refresh_phase_4_done_post_demo_ui_batch_committed"
- },
- {
- "relation": "contains",
- "confidence": "EXTRACTED",
- "source_file": "RESUME.md",
- "source_location": "L1",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "resume_md",
- "target": "exlabwizard_resume_resume_main_window_ui_refresh_phase_4_done_committed_at_demo_checkpoint"
- },
- {
- "relation": "contains",
- "confidence": "EXTRACTED",
- "source_file": "RESUME.md",
- "source_location": "L1",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "resume_md",
- "target": "exlabwizard_resume_resume_main_window_ui_refresh_phase_4_in_progress"
- },
- {
- "relation": "contains",
- "confidence": "EXTRACTED",
- "source_file": "RESUME.md",
- "source_location": "L7",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "exlabwizard_resume_resume_main_window_ui_refresh_phase_4_done_post_demo_ui_batch_committed",
- "target": "exlabwizard_resume_current_state_2026_05_29_session_2"
- },
- {
- "relation": "contains",
- "confidence": "EXTRACTED",
- "source_file": "RESUME.md",
- "source_location": "L47",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "exlabwizard_resume_resume_main_window_ui_refresh_phase_4_done_post_demo_ui_batch_committed",
- "target": "exlabwizard_resume_how_to_work_lessons_from_this_session_important"
- },
- {
- "relation": "contains",
- "confidence": "EXTRACTED",
- "source_file": "RESUME.md",
- "source_location": "L70",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "exlabwizard_resume_resume_main_window_ui_refresh_phase_4_done_post_demo_ui_batch_committed",
- "target": "exlabwizard_resume_where_things_stand"
- },
- {
- "relation": "contains",
- "confidence": "EXTRACTED",
- "source_file": "RESUME.md",
- "source_location": "L100",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "exlabwizard_resume_resume_main_window_ui_refresh_phase_4_done_post_demo_ui_batch_committed",
- "target": "exlabwizard_resume_phase_4_remaining_work_option_b_selection_metadata"
- },
- {
- "relation": "contains",
- "confidence": "EXTRACTED",
- "source_file": "RESUME.md",
- "source_location": "L164",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "exlabwizard_resume_resume_main_window_ui_refresh_phase_4_done_post_demo_ui_batch_committed",
- "target": "exlabwizard_resume_code_review_findings_to_honor_from_earlier_passes"
- },
- {
- "relation": "contains",
- "confidence": "EXTRACTED",
- "source_file": "RESUME.md",
- "source_location": "L171",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "exlabwizard_resume_resume_main_window_ui_refresh_phase_4_done_post_demo_ui_batch_committed",
- "target": "exlabwizard_resume_quick_resume_verification_run_sequentially_one_at_a_time"
- },
- {
- "relation": "contains",
- "confidence": "EXTRACTED",
- "source_file": "RESUME.md",
- "source_location": "L7",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "exlabwizard_resume_resume_main_window_ui_refresh_phase_4_done_committed_at_demo_checkpoint",
- "target": "exlabwizard_resume_current_state_2026_05_29_session_2"
- },
- {
- "relation": "contains",
- "confidence": "EXTRACTED",
- "source_file": "RESUME.md",
- "source_location": "L25",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "exlabwizard_resume_resume_main_window_ui_refresh_phase_4_done_committed_at_demo_checkpoint",
- "target": "exlabwizard_resume_how_to_work_lessons_from_this_session_important"
- },
- {
- "relation": "contains",
- "confidence": "EXTRACTED",
- "source_file": "RESUME.md",
- "source_location": "L7",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "exlabwizard_resume_resume_main_window_ui_refresh_phase_4_in_progress",
- "target": "exlabwizard_resume_how_to_work_lessons_from_this_session_important"
- },
- {
- "relation": "contains",
- "confidence": "EXTRACTED",
- "source_file": "RESUME.md",
- "source_location": "L38",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "exlabwizard_resume_where_things_stand",
- "target": "exlabwizard_resume_committed_clean_phases_1_3"
- },
- {
- "relation": "contains",
- "confidence": "EXTRACTED",
- "source_file": "RESUME.md",
- "source_location": "L46",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "exlabwizard_resume_where_things_stand",
- "target": "exlabwizard_resume_uncommitted_partial_phase_4_working_tree_additive_backward_compatible"
- },
- {
- "relation": "contains",
- "confidence": "EXTRACTED",
- "source_file": "RESUME.md",
- "source_location": "L48",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "exlabwizard_resume_resume_main_window_ui_refresh_phase_4_done_committed_at_demo_checkpoint",
- "target": "exlabwizard_resume_where_things_stand"
- },
- {
- "relation": "contains",
- "confidence": "EXTRACTED",
- "source_file": "RESUME.md",
- "source_location": "L30",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "exlabwizard_resume_resume_main_window_ui_refresh_phase_4_in_progress",
- "target": "exlabwizard_resume_where_things_stand"
- },
- {
- "relation": "contains",
- "confidence": "EXTRACTED",
- "source_file": "RESUME.md",
- "source_location": "L108",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "exlabwizard_resume_phase_4_remaining_work_option_b_selection_metadata",
- "target": "exlabwizard_resume_tests_to_add_phase_4"
- },
- {
- "relation": "contains",
- "confidence": "EXTRACTED",
- "source_file": "RESUME.md",
- "source_location": "L118",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "exlabwizard_resume_phase_4_remaining_work_option_b_selection_metadata",
- "target": "exlabwizard_resume_demo_checkpoint_task_6_after_phase_4_verifies_green"
- },
- {
- "relation": "contains",
- "confidence": "EXTRACTED",
- "source_file": "RESUME.md",
- "source_location": "L78",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "exlabwizard_resume_resume_main_window_ui_refresh_phase_4_done_committed_at_demo_checkpoint",
- "target": "exlabwizard_resume_phase_4_remaining_work_option_b_selection_metadata"
- },
- {
- "relation": "contains",
- "confidence": "EXTRACTED",
- "source_file": "RESUME.md",
- "source_location": "L60",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "exlabwizard_resume_resume_main_window_ui_refresh_phase_4_in_progress",
- "target": "exlabwizard_resume_phase_4_remaining_work_option_b_selection_metadata"
- },
- {
- "relation": "contains",
- "confidence": "EXTRACTED",
- "source_file": "RESUME.md",
- "source_location": "L142",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "exlabwizard_resume_resume_main_window_ui_refresh_phase_4_done_committed_at_demo_checkpoint",
- "target": "exlabwizard_resume_code_review_findings_to_honor_from_earlier_passes"
- },
- {
- "relation": "contains",
- "confidence": "EXTRACTED",
- "source_file": "RESUME.md",
- "source_location": "L124",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "exlabwizard_resume_resume_main_window_ui_refresh_phase_4_in_progress",
- "target": "exlabwizard_resume_code_review_findings_to_honor_from_earlier_passes"
- },
- {
- "relation": "contains",
- "confidence": "EXTRACTED",
- "source_file": "RESUME.md",
- "source_location": "L132",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "exlabwizard_resume_quick_resume_verification_run_sequentially_one_at_a_time",
- "target": "exlabwizard_resume_codeblock_1"
- },
- {
- "relation": "contains",
- "confidence": "EXTRACTED",
- "source_file": "RESUME.md",
- "source_location": "L149",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "exlabwizard_resume_resume_main_window_ui_refresh_phase_4_done_committed_at_demo_checkpoint",
- "target": "exlabwizard_resume_quick_resume_verification_run_sequentially_one_at_a_time"
- },
- {
- "relation": "contains",
- "confidence": "EXTRACTED",
- "source_file": "RESUME.md",
- "source_location": "L131",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "exlabwizard_resume_resume_main_window_ui_refresh_phase_4_in_progress",
- "target": "exlabwizard_resume_quick_resume_verification_run_sequentially_one_at_a_time"
- },
{
"relation": "contains",
"confidence": "EXTRACTED",
@@ -230800,6 +243848,26 @@
"source": "exlabwizard_design_08_usage_rules_anti_patterns",
"target": "exlabwizard_design_don_t"
},
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "CLAUDE.md",
+ "source_location": "L1",
+ "weight": 1.0,
+ "source": "claude_md",
+ "target": "exlabwizard_claude_exlabwizard_project_notes_for_claude",
+ "confidence_score": 1.0
+ },
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "CLAUDE.md",
+ "source_location": "L3",
+ "weight": 1.0,
+ "source": "exlabwizard_claude_exlabwizard_project_notes_for_claude",
+ "target": "exlabwizard_claude_orchestrator_staging_is_intentionally_hidden_not_removed",
+ "confidence_score": 1.0
+ },
{
"relation": "contains",
"confidence": "EXTRACTED",
@@ -234510,6 +247578,226 @@
"source": "specs_2026_05_21_operator_free_per_file_nas_sync_design_per_file_sync_state_sync_state_json",
"target": "specs_2026_05_21_operator_free_per_file_nas_sync_design_codeblock_1"
},
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "docs/superpowers/specs/2026-05-29-hide-orchestrator-staging-design.md",
+ "source_location": "L1",
+ "weight": 1.0,
+ "source": "docs_superpowers_specs_2026_05_29_hide_orchestrator_staging_design_md",
+ "target": "specs_2026_05_29_hide_orchestrator_staging_design_hide_orchestrator_staging_from_the_ui_design_spec",
+ "confidence_score": 1.0
+ },
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "docs/superpowers/specs/2026-05-29-hide-orchestrator-staging-design.md",
+ "source_location": "L14",
+ "weight": 1.0,
+ "source": "specs_2026_05_29_hide_orchestrator_staging_design_hide_orchestrator_staging_from_the_ui_design_spec",
+ "target": "specs_2026_05_29_hide_orchestrator_staging_design_1_summary",
+ "confidence_score": 1.0
+ },
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "docs/superpowers/specs/2026-05-29-hide-orchestrator-staging-design.md",
+ "source_location": "L61",
+ "weight": 1.0,
+ "source": "specs_2026_05_29_hide_orchestrator_staging_design_hide_orchestrator_staging_from_the_ui_design_spec",
+ "target": "specs_2026_05_29_hide_orchestrator_staging_design_2_goals_non_goals",
+ "confidence_score": 1.0
+ },
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "docs/superpowers/specs/2026-05-29-hide-orchestrator-staging-design.md",
+ "source_location": "L92",
+ "weight": 1.0,
+ "source": "specs_2026_05_29_hide_orchestrator_staging_design_hide_orchestrator_staging_from_the_ui_design_spec",
+ "target": "specs_2026_05_29_hide_orchestrator_staging_design_3_design",
+ "confidence_score": 1.0
+ },
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "docs/superpowers/specs/2026-05-29-hide-orchestrator-staging-design.md",
+ "source_location": "L181",
+ "weight": 1.0,
+ "source": "specs_2026_05_29_hide_orchestrator_staging_design_hide_orchestrator_staging_from_the_ui_design_spec",
+ "target": "specs_2026_05_29_hide_orchestrator_staging_design_4_claude_md_update",
+ "confidence_score": 1.0
+ },
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "docs/superpowers/specs/2026-05-29-hide-orchestrator-staging-design.md",
+ "source_location": "L218",
+ "weight": 1.0,
+ "source": "specs_2026_05_29_hide_orchestrator_staging_design_hide_orchestrator_staging_from_the_ui_design_spec",
+ "target": "specs_2026_05_29_hide_orchestrator_staging_design_5_testing",
+ "confidence_score": 1.0
+ },
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "docs/superpowers/specs/2026-05-29-hide-orchestrator-staging-design.md",
+ "source_location": "L255",
+ "weight": 1.0,
+ "source": "specs_2026_05_29_hide_orchestrator_staging_design_hide_orchestrator_staging_from_the_ui_design_spec",
+ "target": "specs_2026_05_29_hide_orchestrator_staging_design_6_risks_notes",
+ "confidence_score": 1.0
+ },
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "docs/superpowers/specs/2026-05-29-hide-orchestrator-staging-design.md",
+ "source_location": "L45",
+ "weight": 1.0,
+ "source": "specs_2026_05_29_hide_orchestrator_staging_design_1_summary",
+ "target": "specs_2026_05_29_hide_orchestrator_staging_design_why_hide_rather_than_a_feature_flag",
+ "confidence_score": 1.0
+ },
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "docs/superpowers/specs/2026-05-29-hide-orchestrator-staging-design.md",
+ "source_location": "L51",
+ "weight": 1.0,
+ "source": "specs_2026_05_29_hide_orchestrator_staging_design_1_summary",
+ "target": "specs_2026_05_29_hide_orchestrator_staging_design_critical_implementation_note_do_not_delete_the_orchestrator_package",
+ "confidence_score": 1.0
+ },
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "docs/superpowers/specs/2026-05-29-hide-orchestrator-staging-design.md",
+ "source_location": "L63",
+ "weight": 1.0,
+ "source": "specs_2026_05_29_hide_orchestrator_staging_design_2_goals_non_goals",
+ "target": "specs_2026_05_29_hide_orchestrator_staging_design_goals",
+ "confidence_score": 1.0
+ },
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "docs/superpowers/specs/2026-05-29-hide-orchestrator-staging-design.md",
+ "source_location": "L75",
+ "weight": 1.0,
+ "source": "specs_2026_05_29_hide_orchestrator_staging_design_2_goals_non_goals",
+ "target": "specs_2026_05_29_hide_orchestrator_staging_design_non_goals",
+ "confidence_score": 1.0
+ },
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "docs/superpowers/specs/2026-05-29-hide-orchestrator-staging-design.md",
+ "source_location": "L96",
+ "weight": 1.0,
+ "source": "specs_2026_05_29_hide_orchestrator_staging_design_3_design",
+ "target": "specs_2026_05_29_hide_orchestrator_staging_design_3_1_add_equipment_wizard_ui_pages_wizard_equipment_py",
+ "confidence_score": 1.0
+ },
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "docs/superpowers/specs/2026-05-29-hide-orchestrator-staging-design.md",
+ "source_location": "L114",
+ "weight": 1.0,
+ "source": "specs_2026_05_29_hide_orchestrator_staging_design_3_design",
+ "target": "specs_2026_05_29_hide_orchestrator_staging_design_3_2_settings_section_ui_pages_settings_py",
+ "confidence_score": 1.0
+ },
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "docs/superpowers/specs/2026-05-29-hide-orchestrator-staging-design.md",
+ "source_location": "L132",
+ "weight": 1.0,
+ "source": "specs_2026_05_29_hide_orchestrator_staging_design_3_design",
+ "target": "specs_2026_05_29_hide_orchestrator_staging_design_3_3_staging_route_ui_mount_py",
+ "confidence_score": 1.0
+ },
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "docs/superpowers/specs/2026-05-29-hide-orchestrator-staging-design.md",
+ "source_location": "L146",
+ "weight": 1.0,
+ "source": "specs_2026_05_29_hide_orchestrator_staging_design_3_design",
+ "target": "specs_2026_05_29_hide_orchestrator_staging_design_3_4_main_window_footer_ui_pages_main_py",
+ "confidence_score": 1.0
+ },
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "docs/superpowers/specs/2026-05-29-hide-orchestrator-staging-design.md",
+ "source_location": "L158",
+ "weight": 1.0,
+ "source": "specs_2026_05_29_hide_orchestrator_staging_design_3_design",
+ "target": "specs_2026_05_29_hide_orchestrator_staging_design_3_5_what_stays_dormant_explicitly_untouched",
+ "confidence_score": 1.0
+ },
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "docs/superpowers/specs/2026-05-29-hide-orchestrator-staging-design.md",
+ "source_location": "L173",
+ "weight": 1.0,
+ "source": "specs_2026_05_29_hide_orchestrator_staging_design_3_design",
+ "target": "specs_2026_05_29_hide_orchestrator_staging_design_3_6_reversibility_contract",
+ "confidence_score": 1.0
+ },
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "docs/superpowers/specs/2026-05-29-hide-orchestrator-staging-design.md",
+ "source_location": "L188",
+ "weight": 1.0,
+ "source": "specs_2026_05_29_hide_orchestrator_staging_design_4_claude_md_update",
+ "target": "specs_2026_05_29_hide_orchestrator_staging_design_codeblock_1",
+ "confidence_score": 1.0
+ },
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "docs/superpowers/specs/2026-05-29-hide-orchestrator-staging-design.md",
+ "source_location": "L220",
+ "weight": 1.0,
+ "source": "specs_2026_05_29_hide_orchestrator_staging_design_5_testing",
+ "target": "specs_2026_05_29_hide_orchestrator_staging_design_tests_that_must_change",
+ "confidence_score": 1.0
+ },
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "docs/superpowers/specs/2026-05-29-hide-orchestrator-staging-design.md",
+ "source_location": "L235",
+ "weight": 1.0,
+ "source": "specs_2026_05_29_hide_orchestrator_staging_design_5_testing",
+ "target": "specs_2026_05_29_hide_orchestrator_staging_design_tests_that_stay_green_unchanged_by_design",
+ "confidence_score": 1.0
+ },
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "docs/superpowers/specs/2026-05-29-hide-orchestrator-staging-design.md",
+ "source_location": "L241",
+ "weight": 1.0,
+ "source": "specs_2026_05_29_hide_orchestrator_staging_design_5_testing",
+ "target": "specs_2026_05_29_hide_orchestrator_staging_design_tests_to_add",
+ "confidence_score": 1.0
+ },
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "docs/superpowers/specs/2026-05-29-hide-orchestrator-staging-design.md",
+ "source_location": "L249",
+ "weight": 1.0,
+ "source": "specs_2026_05_29_hide_orchestrator_staging_design_5_testing",
+ "target": "specs_2026_05_29_hide_orchestrator_staging_design_verification",
+ "confidence_score": 1.0
+ },
{
"relation": "contains",
"confidence": "EXTRACTED",
@@ -234780,6 +248068,106 @@
"source": "specs_2026_05_28_rclone_conf_nas_sync_design_4_verify_cleanup_flow",
"target": "specs_2026_05_28_rclone_conf_nas_sync_design_codeblock_4"
},
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "docs/superpowers/specs/2026-05-29-main-window-ui-refresh-remaining-work.md",
+ "source_location": "L1",
+ "weight": 1.0,
+ "source": "docs_superpowers_specs_2026_05_29_main_window_ui_refresh_remaining_work_md",
+ "target": "specs_2026_05_29_main_window_ui_refresh_remaining_work_main_window_ui_refresh_remaining_work_v2",
+ "confidence_score": 1.0
+ },
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "docs/superpowers/specs/2026-05-29-main-window-ui-refresh-remaining-work.md",
+ "source_location": "L21",
+ "weight": 1.0,
+ "source": "specs_2026_05_29_main_window_ui_refresh_remaining_work_main_window_ui_refresh_remaining_work_v2",
+ "target": "specs_2026_05_29_main_window_ui_refresh_remaining_work_1_what_has_shipped_committed_on_the_branch",
+ "confidence_score": 1.0
+ },
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "docs/superpowers/specs/2026-05-29-main-window-ui-refresh-remaining-work.md",
+ "source_location": "L65",
+ "weight": 1.0,
+ "source": "specs_2026_05_29_main_window_ui_refresh_remaining_work_main_window_ui_refresh_remaining_work_v2",
+ "target": "specs_2026_05_29_main_window_ui_refresh_remaining_work_2_divergences_from_the_approved_design_spec_must_be_reconciled",
+ "confidence_score": 1.0
+ },
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "docs/superpowers/specs/2026-05-29-main-window-ui-refresh-remaining-work.md",
+ "source_location": "L102",
+ "weight": 1.0,
+ "source": "specs_2026_05_29_main_window_ui_refresh_remaining_work_main_window_ui_refresh_remaining_work_v2",
+ "target": "specs_2026_05_29_main_window_ui_refresh_remaining_work_a_spec_reconciliation_done",
+ "confidence_score": 1.0
+ },
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "docs/superpowers/specs/2026-05-29-main-window-ui-refresh-remaining-work.md",
+ "source_location": "L115",
+ "weight": 1.0,
+ "source": "specs_2026_05_29_main_window_ui_refresh_remaining_work_main_window_ui_refresh_remaining_work_v2",
+ "target": "specs_2026_05_29_main_window_ui_refresh_remaining_work_b_phase_5_polish_reconcile_each_item_with_the_popover",
+ "confidence_score": 1.0
+ },
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "docs/superpowers/specs/2026-05-29-main-window-ui-refresh-remaining-work.md",
+ "source_location": "L174",
+ "weight": 1.0,
+ "source": "specs_2026_05_29_main_window_ui_refresh_remaining_work_main_window_ui_refresh_remaining_work_v2",
+ "target": "specs_2026_05_29_main_window_ui_refresh_remaining_work_c_phase_6_e2e_final_verification_done_e72cd73",
+ "confidence_score": 1.0
+ },
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "docs/superpowers/specs/2026-05-29-main-window-ui-refresh-remaining-work.md",
+ "source_location": "L233",
+ "weight": 1.0,
+ "source": "specs_2026_05_29_main_window_ui_refresh_remaining_work_main_window_ui_refresh_remaining_work_v2",
+ "target": "specs_2026_05_29_main_window_ui_refresh_remaining_work_d_cleanup_tech_debt",
+ "confidence_score": 1.0
+ },
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "docs/superpowers/specs/2026-05-29-main-window-ui-refresh-remaining-work.md",
+ "source_location": "L250",
+ "weight": 1.0,
+ "source": "specs_2026_05_29_main_window_ui_refresh_remaining_work_main_window_ui_refresh_remaining_work_v2",
+ "target": "specs_2026_05_29_main_window_ui_refresh_remaining_work_e_risks_open_questions",
+ "confidence_score": 1.0
+ },
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "docs/superpowers/specs/2026-05-29-main-window-ui-refresh-remaining-work.md",
+ "source_location": "L271",
+ "weight": 1.0,
+ "source": "specs_2026_05_29_main_window_ui_refresh_remaining_work_main_window_ui_refresh_remaining_work_v2",
+ "target": "specs_2026_05_29_main_window_ui_refresh_remaining_work_f_deferred_out_of_scope_from_design_spec_11",
+ "confidence_score": 1.0
+ },
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "docs/superpowers/specs/2026-05-29-main-window-ui-refresh-remaining-work.md",
+ "source_location": "L280",
+ "weight": 1.0,
+ "source": "specs_2026_05_29_main_window_ui_refresh_remaining_work_main_window_ui_refresh_remaining_work_v2",
+ "target": "specs_2026_05_29_main_window_ui_refresh_remaining_work_working_notes_carry_forward",
+ "confidence_score": 1.0
+ },
{
"relation": "contains",
"confidence": "EXTRACTED",
@@ -240630,6 +254018,918 @@
"source": "memory_query_20260529_232003_how_are_the_example_equipment_projects_run_folde_q_how_are_the_example_equipment_projects_run_folders_and_samples_generated_in_test_mode_of_the_wizard_tray",
"target": "memory_query_20260529_232003_how_are_the_example_equipment_projects_run_folde_source_nodes"
},
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/ui/test_pages.py",
+ "source_location": "L95",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "ui_test_pages_rationale_95",
+ "target": "ui_test_pages_test_main_setup_banner_subline_tailored_for_nas_credentials"
+ },
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/ui/test_pages.py",
+ "source_location": "L276",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "ui_test_pages_rationale_276",
+ "target": "ui_test_pages_test_settings_first_incomplete_resolves_nas_credentials"
+ },
+ {
+ "relation": "method",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/ui/test_mount.py",
+ "source_location": "L101",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "ui_test_mount_fakeui",
+ "target": "ui_test_mount_fakeui_init"
+ },
+ {
+ "relation": "method",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/ui/test_mount.py",
+ "source_location": "L107",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "ui_test_mount_fakeui",
+ "target": "ui_test_mount_fakeui_card"
+ },
+ {
+ "relation": "method",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/ui/test_mount.py",
+ "source_location": "L111",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "ui_test_mount_fakeui",
+ "target": "ui_test_mount_fakeui_label"
+ },
+ {
+ "relation": "calls",
+ "context": "call",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/ui/test_mount.py",
+ "source_location": "L657",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "ui_test_mount_test_render_unavailable_renders_headline_and_subline",
+ "target": "ui_test_mount_fakeui"
+ },
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/ui/test_mount.py",
+ "source_location": "L99",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "ui_test_mount_rationale_99",
+ "target": "ui_test_mount_fakeui"
+ },
+ {
+ "relation": "uses",
+ "confidence": "INFERRED",
+ "source_file": "tests/unit/ui/test_mount.py",
+ "source_location": "L350",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "ui_test_mount_fakeui",
+ "target": "config_models_rclonesftptransport"
+ },
+ {
+ "relation": "method",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/ui/test_mount.py",
+ "source_location": "L119",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "ui_test_mount_boomui",
+ "target": "ui_test_mount_boomui_card"
+ },
+ {
+ "relation": "method",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/ui/test_mount.py",
+ "source_location": "L123",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "ui_test_mount_boomui",
+ "target": "ui_test_mount_boomui_label"
+ },
+ {
+ "relation": "calls",
+ "context": "call",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/ui/test_mount.py",
+ "source_location": "L665",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "ui_test_mount_test_render_unavailable_swallows_failure",
+ "target": "ui_test_mount_boomui"
+ },
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/ui/test_mount.py",
+ "source_location": "L118",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "ui_test_mount_rationale_118",
+ "target": "ui_test_mount_boomui"
+ },
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/ui/test_mount.py",
+ "source_location": "L117",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "ui_test_mount_rationale_117",
+ "target": "ui_test_mount_boomui"
+ },
+ {
+ "relation": "uses",
+ "confidence": "INFERRED",
+ "source_file": "tests/unit/ui/test_mount.py",
+ "source_location": "L350",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "ui_test_mount_boomui",
+ "target": "config_models_rclonesftptransport"
+ },
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/ui/test_mount.py",
+ "source_location": "L461",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "ui_test_mount_rationale_461",
+ "target": "ui_test_mount_test_staging_state_when_staging_root_missing"
+ },
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/ui/test_mount.py",
+ "source_location": "L460",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "ui_test_mount_rationale_460",
+ "target": "ui_test_mount_test_staging_state_when_staging_root_missing"
+ },
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/ui/test_mount.py",
+ "source_location": "L1702",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "ui_test_mount_rationale_1702",
+ "target": "ui_test_mount_drain_background"
+ },
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/ui/test_mount.py",
+ "source_location": "L1696",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "ui_test_mount_rationale_1696",
+ "target": "ui_test_mount_drain_background"
+ },
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/ui/test_mount.py",
+ "source_location": "L1698",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "ui_test_mount_rationale_1698",
+ "target": "ui_test_mount_drain_background"
+ },
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/ui/test_mount.py",
+ "source_location": "L1529",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "ui_test_mount_rationale_1529",
+ "target": "ui_test_mount_drain_background"
+ },
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/ui/test_mount.py",
+ "source_location": "L1503",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "ui_test_mount_rationale_1503",
+ "target": "ui_test_mount_drain_background"
+ },
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/ui/test_mount.py",
+ "source_location": "L1545",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "ui_test_mount_rationale_1545",
+ "target": "ui_test_mount_drain_background"
+ },
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/ui/test_mount.py",
+ "source_location": "L1790",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "ui_test_mount_rationale_1790",
+ "target": "ui_test_mount_test_bulk_clear_verified_clears_verified_rows"
+ },
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/ui/test_mount.py",
+ "source_location": "L1784",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "ui_test_mount_rationale_1784",
+ "target": "ui_test_mount_test_bulk_clear_verified_clears_verified_rows"
+ },
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/ui/test_mount.py",
+ "source_location": "L1786",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "ui_test_mount_rationale_1786",
+ "target": "ui_test_mount_test_bulk_clear_verified_clears_verified_rows"
+ },
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/ui/test_mount.py",
+ "source_location": "L1617",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "ui_test_mount_rationale_1617",
+ "target": "ui_test_mount_test_bulk_clear_verified_clears_verified_rows"
+ },
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/ui/test_mount.py",
+ "source_location": "L1592",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "ui_test_mount_rationale_1592",
+ "target": "ui_test_mount_test_bulk_clear_verified_clears_verified_rows"
+ },
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/ui/test_mount.py",
+ "source_location": "L1633",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "ui_test_mount_rationale_1633",
+ "target": "ui_test_mount_test_bulk_clear_verified_clears_verified_rows"
+ },
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/ui/test_mount.py",
+ "source_location": "L1817",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "ui_test_mount_rationale_1817",
+ "target": "ui_test_mount_test_bulk_clear_verified_no_config_toasts_and_returns"
+ },
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/ui/test_mount.py",
+ "source_location": "L1813",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "ui_test_mount_rationale_1813",
+ "target": "ui_test_mount_test_bulk_clear_verified_no_config_toasts_and_returns"
+ },
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/ui/test_mount.py",
+ "source_location": "L1644",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "ui_test_mount_rationale_1644",
+ "target": "ui_test_mount_test_bulk_clear_verified_no_config_toasts_and_returns"
+ },
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/ui/test_mount.py",
+ "source_location": "L1619",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "ui_test_mount_rationale_1619",
+ "target": "ui_test_mount_test_bulk_clear_verified_no_config_toasts_and_returns"
+ },
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/ui/test_mount.py",
+ "source_location": "L1660",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "ui_test_mount_rationale_1660",
+ "target": "ui_test_mount_test_bulk_clear_verified_no_config_toasts_and_returns"
+ },
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/ui/test_mount.py",
+ "source_location": "L1826",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "ui_test_mount_rationale_1826",
+ "target": "ui_test_mount_test_bulk_clear_verified_logs_helper_exception"
+ },
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/ui/test_mount.py",
+ "source_location": "L1820",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "ui_test_mount_rationale_1820",
+ "target": "ui_test_mount_test_bulk_clear_verified_logs_helper_exception"
+ },
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/ui/test_mount.py",
+ "source_location": "L1822",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "ui_test_mount_rationale_1822",
+ "target": "ui_test_mount_test_bulk_clear_verified_logs_helper_exception"
+ },
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/ui/test_mount.py",
+ "source_location": "L1653",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "ui_test_mount_rationale_1653",
+ "target": "ui_test_mount_test_bulk_clear_verified_logs_helper_exception"
+ },
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/ui/test_mount.py",
+ "source_location": "L1628",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "ui_test_mount_rationale_1628",
+ "target": "ui_test_mount_test_bulk_clear_verified_logs_helper_exception"
+ },
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/ui/test_mount.py",
+ "source_location": "L1627",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "ui_test_mount_rationale_1627",
+ "target": "ui_test_mount_test_bulk_clear_verified_logs_helper_exception"
+ },
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/ui/test_mount.py",
+ "source_location": "L1669",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "ui_test_mount_rationale_1669",
+ "target": "ui_test_mount_test_bulk_clear_verified_logs_helper_exception"
+ },
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/ui/test_mount.py",
+ "source_location": "L2937",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "ui_test_mount_rationale_2937",
+ "target": "ui_test_mount_test_bulk_clear_verified_no_verified_rows_toasts"
+ },
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/ui/test_mount.py",
+ "source_location": "L2931",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "ui_test_mount_rationale_2931",
+ "target": "ui_test_mount_test_bulk_clear_verified_no_verified_rows_toasts"
+ },
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/ui/test_mount.py",
+ "source_location": "L2933",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "ui_test_mount_rationale_2933",
+ "target": "ui_test_mount_test_bulk_clear_verified_no_verified_rows_toasts"
+ },
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/ui/test_mount.py",
+ "source_location": "L2764",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "ui_test_mount_rationale_2764",
+ "target": "ui_test_mount_test_bulk_clear_verified_no_verified_rows_toasts"
+ },
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/ui/test_mount.py",
+ "source_location": "L2739",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "ui_test_mount_rationale_2739",
+ "target": "ui_test_mount_test_bulk_clear_verified_no_verified_rows_toasts"
+ },
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/ui/test_mount.py",
+ "source_location": "L2738",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "ui_test_mount_rationale_2738",
+ "target": "ui_test_mount_test_bulk_clear_verified_no_verified_rows_toasts"
+ },
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/ui/test_mount.py",
+ "source_location": "L3017",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "ui_test_mount_rationale_3017",
+ "target": "ui_test_mount_test_build_staging_state_query_failure_returns_empty_rows"
+ },
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/ui/test_mount.py",
+ "source_location": "L3011",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "ui_test_mount_rationale_3011",
+ "target": "ui_test_mount_test_build_staging_state_query_failure_returns_empty_rows"
+ },
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/ui/test_mount.py",
+ "source_location": "L3013",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "ui_test_mount_rationale_3013",
+ "target": "ui_test_mount_test_build_staging_state_query_failure_returns_empty_rows"
+ },
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/ui/test_mount.py",
+ "source_location": "L2844",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "ui_test_mount_rationale_2844",
+ "target": "ui_test_mount_test_build_staging_state_query_failure_returns_empty_rows"
+ },
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/ui/test_mount.py",
+ "source_location": "L2819",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "ui_test_mount_rationale_2819",
+ "target": "ui_test_mount_test_build_staging_state_query_failure_returns_empty_rows"
+ },
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/unit/ui/test_mount.py",
+ "source_location": "L2818",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "ui_test_mount_rationale_2818",
+ "target": "ui_test_mount_test_build_staging_state_query_failure_returns_empty_rows"
+ },
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "src/exlab_wizard/ui/mount.py",
+ "source_location": "L1331",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "ui_mount_rationale_1331",
+ "target": "ui_mount_bulk_clear_verified"
+ },
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "src/exlab_wizard/ui/mount.py",
+ "source_location": "L1326",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "ui_mount_rationale_1326",
+ "target": "ui_mount_bulk_clear_verified"
+ },
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "src/exlab_wizard/ui/mount.py",
+ "source_location": "L1319",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "ui_mount_rationale_1319",
+ "target": "ui_mount_bulk_clear_verified"
+ },
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "src/exlab_wizard/ui/mount.py",
+ "source_location": "L1317",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "ui_mount_rationale_1317",
+ "target": "ui_mount_bulk_clear_verified"
+ },
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "src/exlab_wizard/ui/mount.py",
+ "source_location": "L1282",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "ui_mount_rationale_1282",
+ "target": "ui_mount_bulk_clear_verified"
+ },
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "src/exlab_wizard/ui/mount.py",
+ "source_location": "L1274",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "ui_mount_rationale_1274",
+ "target": "ui_mount_bulk_clear_verified"
+ },
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "src/exlab_wizard/ui/mount.py",
+ "source_location": "L1241",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "ui_mount_rationale_1241",
+ "target": "ui_mount_bulk_clear_verified"
+ },
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "src/exlab_wizard/ui/mount.py",
+ "source_location": "L1142",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "ui_mount_rationale_1142",
+ "target": "ui_mount_bulk_clear_verified"
+ },
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "src/exlab_wizard/ui/mount.py",
+ "source_location": "L1123",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "ui_mount_rationale_1123",
+ "target": "ui_mount_bulk_clear_verified"
+ },
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "src/exlab_wizard/ui/mount.py",
+ "source_location": "L1177",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "ui_mount_rationale_1177",
+ "target": "ui_mount_bulk_clear_verified"
+ },
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "src/exlab_wizard/tray/main.py",
+ "source_location": "L273",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "tray_main_rationale_273",
+ "target": "tray_main_bootstrap_test_config"
+ },
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "src/exlab_wizard/controller/creation.py",
+ "source_location": "L1270",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "controller_creation_rationale_1270",
+ "target": "controller_creation_readme_decls_from_template"
+ },
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "src/exlab_wizard/controller/creation.py",
+ "source_location": "L1302",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "controller_creation_rationale_1302",
+ "target": "controller_creation_readme_decls_from_config"
+ },
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "src/exlab_wizard/controller/creation.py",
+ "source_location": "L1327",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "controller_creation_rationale_1327",
+ "target": "controller_creation_os_username"
+ },
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "RESUME.md",
+ "source_location": "L1",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "resume_md",
+ "target": "exlabwizard_resume_resume_main_window_ui_refresh_phase_4_done_post_demo_ui_batch_committed"
+ },
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "RESUME.md",
+ "source_location": "L1",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "resume_md",
+ "target": "exlabwizard_resume_resume_main_window_ui_refresh_phase_4_done_committed_at_demo_checkpoint"
+ },
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "RESUME.md",
+ "source_location": "L1",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "resume_md",
+ "target": "exlabwizard_resume_resume_main_window_ui_refresh_phase_4_in_progress"
+ },
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "RESUME.md",
+ "source_location": "L7",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "exlabwizard_resume_resume_main_window_ui_refresh_phase_4_done_post_demo_ui_batch_committed",
+ "target": "exlabwizard_resume_current_state_2026_05_29_session_2"
+ },
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "RESUME.md",
+ "source_location": "L47",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "exlabwizard_resume_resume_main_window_ui_refresh_phase_4_done_post_demo_ui_batch_committed",
+ "target": "exlabwizard_resume_how_to_work_lessons_from_this_session_important"
+ },
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "RESUME.md",
+ "source_location": "L70",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "exlabwizard_resume_resume_main_window_ui_refresh_phase_4_done_post_demo_ui_batch_committed",
+ "target": "exlabwizard_resume_where_things_stand"
+ },
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "RESUME.md",
+ "source_location": "L100",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "exlabwizard_resume_resume_main_window_ui_refresh_phase_4_done_post_demo_ui_batch_committed",
+ "target": "exlabwizard_resume_phase_4_remaining_work_option_b_selection_metadata"
+ },
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "RESUME.md",
+ "source_location": "L164",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "exlabwizard_resume_resume_main_window_ui_refresh_phase_4_done_post_demo_ui_batch_committed",
+ "target": "exlabwizard_resume_code_review_findings_to_honor_from_earlier_passes"
+ },
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "RESUME.md",
+ "source_location": "L171",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "exlabwizard_resume_resume_main_window_ui_refresh_phase_4_done_post_demo_ui_batch_committed",
+ "target": "exlabwizard_resume_quick_resume_verification_run_sequentially_one_at_a_time"
+ },
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "RESUME.md",
+ "source_location": "L7",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "exlabwizard_resume_resume_main_window_ui_refresh_phase_4_done_committed_at_demo_checkpoint",
+ "target": "exlabwizard_resume_current_state_2026_05_29_session_2"
+ },
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "RESUME.md",
+ "source_location": "L25",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "exlabwizard_resume_resume_main_window_ui_refresh_phase_4_done_committed_at_demo_checkpoint",
+ "target": "exlabwizard_resume_how_to_work_lessons_from_this_session_important"
+ },
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "RESUME.md",
+ "source_location": "L7",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "exlabwizard_resume_resume_main_window_ui_refresh_phase_4_in_progress",
+ "target": "exlabwizard_resume_how_to_work_lessons_from_this_session_important"
+ },
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "RESUME.md",
+ "source_location": "L38",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "exlabwizard_resume_where_things_stand",
+ "target": "exlabwizard_resume_committed_clean_phases_1_3"
+ },
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "RESUME.md",
+ "source_location": "L46",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "exlabwizard_resume_where_things_stand",
+ "target": "exlabwizard_resume_uncommitted_partial_phase_4_working_tree_additive_backward_compatible"
+ },
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "RESUME.md",
+ "source_location": "L48",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "exlabwizard_resume_resume_main_window_ui_refresh_phase_4_done_committed_at_demo_checkpoint",
+ "target": "exlabwizard_resume_where_things_stand"
+ },
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "RESUME.md",
+ "source_location": "L30",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "exlabwizard_resume_resume_main_window_ui_refresh_phase_4_in_progress",
+ "target": "exlabwizard_resume_where_things_stand"
+ },
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "RESUME.md",
+ "source_location": "L108",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "exlabwizard_resume_phase_4_remaining_work_option_b_selection_metadata",
+ "target": "exlabwizard_resume_tests_to_add_phase_4"
+ },
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "RESUME.md",
+ "source_location": "L118",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "exlabwizard_resume_phase_4_remaining_work_option_b_selection_metadata",
+ "target": "exlabwizard_resume_demo_checkpoint_task_6_after_phase_4_verifies_green"
+ },
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "RESUME.md",
+ "source_location": "L78",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "exlabwizard_resume_resume_main_window_ui_refresh_phase_4_done_committed_at_demo_checkpoint",
+ "target": "exlabwizard_resume_phase_4_remaining_work_option_b_selection_metadata"
+ },
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "RESUME.md",
+ "source_location": "L60",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "exlabwizard_resume_resume_main_window_ui_refresh_phase_4_in_progress",
+ "target": "exlabwizard_resume_phase_4_remaining_work_option_b_selection_metadata"
+ },
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "RESUME.md",
+ "source_location": "L142",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "exlabwizard_resume_resume_main_window_ui_refresh_phase_4_done_committed_at_demo_checkpoint",
+ "target": "exlabwizard_resume_code_review_findings_to_honor_from_earlier_passes"
+ },
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "RESUME.md",
+ "source_location": "L124",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "exlabwizard_resume_resume_main_window_ui_refresh_phase_4_in_progress",
+ "target": "exlabwizard_resume_code_review_findings_to_honor_from_earlier_passes"
+ },
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "RESUME.md",
+ "source_location": "L132",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "exlabwizard_resume_quick_resume_verification_run_sequentially_one_at_a_time",
+ "target": "exlabwizard_resume_codeblock_1"
+ },
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "RESUME.md",
+ "source_location": "L149",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "exlabwizard_resume_resume_main_window_ui_refresh_phase_4_done_committed_at_demo_checkpoint",
+ "target": "exlabwizard_resume_quick_resume_verification_run_sequentially_one_at_a_time"
+ },
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "RESUME.md",
+ "source_location": "L131",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "exlabwizard_resume_resume_main_window_ui_refresh_phase_4_in_progress",
+ "target": "exlabwizard_resume_quick_resume_verification_run_sequentially_one_at_a_time"
+ },
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
@@ -242484,5 +256784,5 @@
}
],
"hyperedges": [],
- "built_at_commit": "51b618681d32c1eb8a1b051994927c47126723c1"
+ "built_at_commit": "43a5508320b0c27e4535d23b4b187f16bfcefa39"
}
\ No newline at end of file
diff --git a/graphify-out/manifest.json b/graphify-out/manifest.json
index 812ea3d..6c61b5b 100644
--- a/graphify-out/manifest.json
+++ b/graphify-out/manifest.json
@@ -12,7 +12,7 @@
"hash": "9c1e4ef8d86e83de2b60b3c32f985793"
},
"/Users/alex/Projects/ExLabWizard/tests/unit/test_paths.py": {
- "mtime": 1780089349.3177474,
+ "mtime": 1780127492.775397,
"hash": "7e4e855a4d3c854291bf29541f3ef33a"
},
"/Users/alex/Projects/ExLabWizard/tests/unit/test_main.py": {
@@ -24,47 +24,55 @@
"hash": "d3ac0f6c3b8fbffd4416a1dd8fbf268a"
},
"/Users/alex/Projects/ExLabWizard/tests/unit/ui/test_metadata_pane.py": {
- "mtime": 1780102467.6444001,
+ "mtime": 1780127492.7798204,
"hash": "cd9eaf0c5332806f78fe5b60e646c9fa"
},
"/Users/alex/Projects/ExLabWizard/tests/unit/ui/test_components.py": {
- "mtime": 1780089349.3181427,
- "hash": "53cfe3a74d440ba4924c49dffb13ced8"
+ "mtime": 1780127492.7764957,
+ "hash": "1b6008f10035cec93c1ca5f8d6714ec5"
},
"/Users/alex/Projects/ExLabWizard/tests/unit/ui/test_framed_pane.py": {
- "mtime": 1780102224.0792646,
- "hash": "a0591883902294de389feb93c240dbdc"
+ "mtime": 1780127492.7795568,
+ "hash": "57fd7b163f11192467258f94e16aa5df"
},
"/Users/alex/Projects/ExLabWizard/tests/unit/ui/test_pages.py": {
- "mtime": 1780054073.152241,
- "hash": "fd5a3d4a5a440f0f42dccfbda15fe8d2"
+ "mtime": 1780127492.7816114,
+ "hash": "228ab4bc29f7ae13ec28cd7f014f6f8e"
},
"/Users/alex/Projects/ExLabWizard/tests/unit/ui/test_mount.py": {
- "mtime": 1780102457.4899583,
- "hash": "ceef6978381f6ec5d6371be70222f3ce"
+ "mtime": 1780127492.7812407,
+ "hash": "ac051c46057b6978a779cfdbff1e2cda"
},
"/Users/alex/Projects/ExLabWizard/tests/unit/ui/test_settings_page.py": {
- "mtime": 1780018059.26053,
- "hash": "c23bf876d1b6df34ae8ab2c673fdb310"
+ "mtime": 1780127492.7940397,
+ "hash": "805bd9568cf2ac099fbf0d92a5b0940f"
},
"/Users/alex/Projects/ExLabWizard/tests/unit/ui/__init__.py": {
"mtime": 1778192475.5767596,
"hash": "8ed5d6363fb291bfde80adec3f3eb6a3"
},
"/Users/alex/Projects/ExLabWizard/tests/unit/ui/test_wizard_equipment.py": {
- "mtime": 1780056848.0742567,
- "hash": "597fc443f64f5071c10e77e30894b0f1"
+ "mtime": 1780127492.795881,
+ "hash": "4035f20fadfd810204dc69d344fe570a"
},
"/Users/alex/Projects/ExLabWizard/tests/unit/ui/test_staging_page.py": {
- "mtime": 1779440349.5867205,
- "hash": "4e36f575cd6c285f748e6b828961e428"
+ "mtime": 1780127492.7945998,
+ "hash": "b47c63b90b66a6bfe123e7b756b95cc2"
},
"/Users/alex/Projects/ExLabWizard/tests/unit/ui/test_notifications.py": {
"mtime": 1778192475.577294,
"hash": "50a9a7ab9eed0e6d1f5e8a2b74e53335"
},
+ "/Users/alex/Projects/ExLabWizard/tests/unit/ui/test_status_bar_segment.py": {
+ "mtime": 1780127492.7948403,
+ "hash": "7c2a0d17386fbf7deb1a8a928b8ada68"
+ },
+ "/Users/alex/Projects/ExLabWizard/tests/unit/ui/test_empty_state.py": {
+ "mtime": 1780127492.7774882,
+ "hash": "e9890cb46c1626678d32670f25c6bb1a"
+ },
"/Users/alex/Projects/ExLabWizard/tests/unit/ui/test_sync_status_icon.py": {
- "mtime": 1780098340.6532662,
+ "mtime": 1780127492.7951574,
"hash": "56ea263bcd90b005d679f1871462f083"
},
"/Users/alex/Projects/ExLabWizard/tests/unit/ui/test_templates_page.py": {
@@ -76,19 +84,19 @@
"hash": "1c27498b62e21bf92df8e1d077de1f45"
},
"/Users/alex/Projects/ExLabWizard/tests/unit/ui/test_dynamic_form.py": {
- "mtime": 1780056860.2935295,
+ "mtime": 1780127492.7773285,
"hash": "6e717afd0f0fb8644efba0bceef90cc4"
},
"/Users/alex/Projects/ExLabWizard/tests/unit/ui/test_file_list.py": {
- "mtime": 1780103257.787698,
+ "mtime": 1780127492.7793205,
"hash": "b2a4a651216f1648407937a5624ddcea"
},
"/Users/alex/Projects/ExLabWizard/tests/unit/ui/test_theme.py": {
- "mtime": 1780096810.880133,
- "hash": "c6dec8fad481865171282ae9b618f0ef"
+ "mtime": 1780127492.7955854,
+ "hash": "ad86af4230a93fab76dab54d2a533fe3"
},
"/Users/alex/Projects/ExLabWizard/tests/unit/ui/test_settings_nas_remote.py": {
- "mtime": 1780090445.4453564,
+ "mtime": 1780127492.7817829,
"hash": "444be67873050256c353111d4fa97a31"
},
"/Users/alex/Projects/ExLabWizard/tests/unit/ui/test_breadcrumb.py": {
@@ -96,7 +104,7 @@
"hash": "29deda2201ddbd6822a39c87f3dcaeec"
},
"/Users/alex/Projects/ExLabWizard/tests/unit/ui/test_sync_rollup.py": {
- "mtime": 1780098645.1099246,
+ "mtime": 1780127492.7949893,
"hash": "07d22562014692f55c6930bf795632b6"
},
"/Users/alex/Projects/ExLabWizard/tests/unit/ui/test_factories_smoke.py": {
@@ -104,7 +112,7 @@
"hash": "3e8f6696ad6a0027bb04ceb30266f420"
},
"/Users/alex/Projects/ExLabWizard/tests/unit/ui/test_design.py": {
- "mtime": 1780096791.0580933,
+ "mtime": 1780127492.7769916,
"hash": "10ef631a3907c5acb6f61d927e9f9374"
},
"/Users/alex/Projects/ExLabWizard/tests/unit/ui/test_travelling_badge.py": {
@@ -120,7 +128,7 @@
"hash": "ac23e27c91f5371ec8573869291df875"
},
"/Users/alex/Projects/ExLabWizard/tests/unit/lims/test_catalogue.py": {
- "mtime": 1780054073.0687616,
+ "mtime": 1780127492.7716691,
"hash": "536457500f9edb90ec9afd45382163d3"
},
"/Users/alex/Projects/ExLabWizard/tests/unit/lims/test_keyring_store.py": {
@@ -144,7 +152,7 @@
"hash": "add82d5e3c75fb4ddca7d30a97744a28"
},
"/Users/alex/Projects/ExLabWizard/tests/unit/validator/test_engine_reconfigure.py": {
- "mtime": 1780089349.3175116,
+ "mtime": 1780127492.7960641,
"hash": "9772ab094af61c195c128458e749d331"
},
"/Users/alex/Projects/ExLabWizard/tests/unit/validator/test_findings.py": {
@@ -180,11 +188,11 @@
"hash": "a0145513fca4f1c135b9efba1babea62"
},
"/Users/alex/Projects/ExLabWizard/tests/unit/cache/test_sync_state_writer.py": {
- "mtime": 1779484405.1287787,
+ "mtime": 1780127492.7678812,
"hash": "519a403d2abab42c1dc1981b19ca7fb3"
},
"/Users/alex/Projects/ExLabWizard/tests/unit/config/test_loader.py": {
- "mtime": 1780089349.3177516,
+ "mtime": 1780127492.7682116,
"hash": "00e9e17a3a0fb54ddbceb9a1cda7f2f8"
},
"/Users/alex/Projects/ExLabWizard/tests/unit/config/__init__.py": {
@@ -192,7 +200,7 @@
"hash": "08b871e14b89d3a9a0087f1a7633939f"
},
"/Users/alex/Projects/ExLabWizard/tests/unit/config/test_models.py": {
- "mtime": 1780056676.4053636,
+ "mtime": 1780127492.768593,
"hash": "b5c57aac8c6c7aa37efac0463bd86cdf"
},
"/Users/alex/Projects/ExLabWizard/tests/unit/plugins/test_registry.py": {
@@ -212,7 +220,7 @@
"hash": "b238c936c945cdc2d90b2b2b5fdcbcab"
},
"/Users/alex/Projects/ExLabWizard/tests/unit/constants/test_schema_versions.py": {
- "mtime": 1779484275.181043,
+ "mtime": 1780127492.770293,
"hash": "086194144f5c63b2084965761936e226"
},
"/Users/alex/Projects/ExLabWizard/tests/unit/constants/test_patterns.py": {
@@ -224,15 +232,15 @@
"hash": "1ad9c0f22b6b87c22a1db6af089e2fe2"
},
"/Users/alex/Projects/ExLabWizard/tests/unit/constants/test_enum_literal_alignment.py": {
- "mtime": 1780056684.4006004,
+ "mtime": 1780127492.7690096,
"hash": "407fa1e5adde27c9cdc4f8a6559f4154"
},
"/Users/alex/Projects/ExLabWizard/tests/unit/constants/test_enums.py": {
- "mtime": 1780056694.1220536,
+ "mtime": 1780127492.769342,
"hash": "940545d14e651e599da352c588415ac5"
},
"/Users/alex/Projects/ExLabWizard/tests/unit/constants/test_keyring.py": {
- "mtime": 1780055779.8613105,
+ "mtime": 1780127492.7699444,
"hash": "69f2a9adf854c6d8812f938056ffceac"
},
"/Users/alex/Projects/ExLabWizard/tests/unit/constants/test_limits.py": {
@@ -240,7 +248,7 @@
"hash": "2507a56ed8297c11734b95b080066253"
},
"/Users/alex/Projects/ExLabWizard/tests/unit/constants/test_filenames.py": {
- "mtime": 1779855843.682109,
+ "mtime": 1780127492.769662,
"hash": "62b2088f57700ba962e760f881359b68"
},
"/Users/alex/Projects/ExLabWizard/tests/unit/io/test_yaml_files.py": {
@@ -284,7 +292,7 @@
"hash": "1cd78fadd17c3efd584fe9592cdc548c"
},
"/Users/alex/Projects/ExLabWizard/tests/unit/tray/test_dependencies.py": {
- "mtime": 1780055591.3691678,
+ "mtime": 1780127492.775685,
"hash": "492797c07a9fa17e06ff24608fb6a0f0"
},
"/Users/alex/Projects/ExLabWizard/tests/unit/tray/test_icon.py": {
@@ -292,7 +300,7 @@
"hash": "fa7c022ed699127b36e34370146defc0"
},
"/Users/alex/Projects/ExLabWizard/tests/unit/tray/test_live_reload.py": {
- "mtime": 1780055591.3693438,
+ "mtime": 1780127492.7758014,
"hash": "dd66078ec0f271b1ee9135f04ca66055"
},
"/Users/alex/Projects/ExLabWizard/tests/unit/tray/__init__.py": {
@@ -324,8 +332,8 @@
"hash": "bf11e3ef2f3c01998d5022cb95e8c1cb"
},
"/Users/alex/Projects/ExLabWizard/tests/unit/tray/test_main.py": {
- "mtime": 1779757041.95291,
- "hash": "1a90f5d96089fec8e381faa6b7632bab"
+ "mtime": 1780127492.7761261,
+ "hash": "d5c72feddc7c51c580a55f9aba0251cb"
},
"/Users/alex/Projects/ExLabWizard/tests/unit/readme/test_generator.py": {
"mtime": 1778192475.5748081,
@@ -335,8 +343,12 @@
"mtime": 1778192475.5747452,
"hash": "7a73647defb3f8daef6bdedf1d21465e"
},
+ "/Users/alex/Projects/ExLabWizard/tests/unit/controller/test_metadata_assembly.py": {
+ "mtime": 1780127492.770636,
+ "hash": "8c89ef8125812035c8aac7c8a6f23aea"
+ },
"/Users/alex/Projects/ExLabWizard/tests/unit/controller/test_creation_apply_config.py": {
- "mtime": 1780010403.039255,
+ "mtime": 1780127492.7704635,
"hash": "72e93e8894e4f58f9b577455bc7e8594"
},
"/Users/alex/Projects/ExLabWizard/tests/unit/controller/test_state_machine.py": {
@@ -348,9 +360,21 @@
"hash": "a33a092ec45a0389b4b9d25e6125a6ea"
},
"/Users/alex/Projects/ExLabWizard/tests/unit/controller/test_session_store.py": {
- "mtime": 1780054073.0685444,
+ "mtime": 1780127492.770831,
"hash": "b6761a00135296dbc813fc4804a3837e"
},
+ "/Users/alex/Projects/ExLabWizard/tests/unit/sample_data/test_generator.py": {
+ "mtime": 1780127492.7729716,
+ "hash": "57408369ebbf71cc913e3423d1abf9e3"
+ },
+ "/Users/alex/Projects/ExLabWizard/tests/unit/sample_data/test_spec.py": {
+ "mtime": 1780127492.7731693,
+ "hash": "6e6a99015efe48f2a2db20b27ae16cfc"
+ },
+ "/Users/alex/Projects/ExLabWizard/tests/unit/sample_data/__init__.py": {
+ "mtime": 1780127492.7728174,
+ "hash": "1458085be0265691f7436a8af8ec2e6c"
+ },
"/Users/alex/Projects/ExLabWizard/tests/unit/window/test_pywebview_app.py": {
"mtime": 1778192475.5782878,
"hash": "44a51852304729dfe6566c103d4959d9"
@@ -364,7 +388,7 @@
"hash": "d67c8f78e08c64a6db3b8dd11ded28a8"
},
"/Users/alex/Projects/ExLabWizard/tests/unit/api/test_setup.py": {
- "mtime": 1780089349.3181524,
+ "mtime": 1780127492.767371,
"hash": "2ed533d8b41818be59d88f8e3b582e91"
},
"/Users/alex/Projects/ExLabWizard/tests/unit/api/test_errors.py": {
@@ -372,15 +396,15 @@
"hash": "81052c1115947cd793f32c3d86459dac"
},
"/Users/alex/Projects/ExLabWizard/tests/unit/api/test_config_router.py": {
- "mtime": 1780055591.3666506,
+ "mtime": 1780127492.7653618,
"hash": "2714aaf17ee667b18c3050f4d19d36b4"
},
"/Users/alex/Projects/ExLabWizard/tests/unit/api/test_operations.py": {
- "mtime": 1780089349.3174365,
+ "mtime": 1780127492.7660224,
"hash": "c2a251dd56c12175904849b885b25e14"
},
"/Users/alex/Projects/ExLabWizard/tests/unit/api/test_sessions.py": {
- "mtime": 1780089349.317949,
+ "mtime": 1780127492.7671595,
"hash": "c635fa72bb792879f6758ac40aba7d1c"
},
"/Users/alex/Projects/ExLabWizard/tests/unit/api/__init__.py": {
@@ -388,19 +412,19 @@
"hash": "2145e18491ee0565977bfa7b9d07170b"
},
"/Users/alex/Projects/ExLabWizard/tests/unit/api/test_browse.py": {
- "mtime": 1780089349.3175888,
+ "mtime": 1780127492.7649665,
"hash": "d43c8fd151042b0764d2c929f05944f7"
},
"/Users/alex/Projects/ExLabWizard/tests/unit/api/test_schemas.py": {
- "mtime": 1779440066.7145877,
+ "mtime": 1780127492.7668667,
"hash": "08f882b2af85f0155235951ab59efd0c"
},
"/Users/alex/Projects/ExLabWizard/tests/unit/api/test_health.py": {
- "mtime": 1780089349.317364,
+ "mtime": 1780127492.7656677,
"hash": "0d75474b2f8a81cc766cd3dd9f22c04a"
},
"/Users/alex/Projects/ExLabWizard/tests/unit/api/test_staging_router.py": {
- "mtime": 1780055591.3675961,
+ "mtime": 1780127492.7676933,
"hash": "bc296f4f6ac4568de9b147dc60221db3"
},
"/Users/alex/Projects/ExLabWizard/tests/unit/api/test_events.py": {
@@ -408,19 +432,27 @@
"hash": "c0b0fd1a1b82f9ace5966f1e761a19ca"
},
"/Users/alex/Projects/ExLabWizard/tests/unit/api/test_problems.py": {
- "mtime": 1780089349.3174274,
+ "mtime": 1780127492.7664242,
"hash": "93910c95e91ecfcad717c8d9cdf4ec15"
},
"/Users/alex/Projects/ExLabWizard/tests/unit/api/test_app.py": {
"mtime": 1778231226.4448552,
"hash": "2b76cc2c808dfde66db440c1555ad935"
},
+ "/Users/alex/Projects/ExLabWizard/tests/unit/dev/__init__.py": {
+ "mtime": 1780127492.771078,
+ "hash": "d41d8cd98f00b204e9800998ecf8427e"
+ },
+ "/Users/alex/Projects/ExLabWizard/tests/unit/dev/test_seed.py": {
+ "mtime": 1780127492.7712524,
+ "hash": "f8d54a9f83c940f2bd3faa02d44efa91"
+ },
"/Users/alex/Projects/ExLabWizard/tests/unit/sync/test_nas_client_extra.py": {
- "mtime": 1780055591.3687432,
+ "mtime": 1780127492.774299,
"hash": "017627d95c9647cf597873193d69dd5c"
},
"/Users/alex/Projects/ExLabWizard/tests/unit/sync/test_transports.py": {
- "mtime": 1780089458.2963915,
+ "mtime": 1780127492.7748806,
"hash": "0071afc688f51bbeb712a51c2afa6beb"
},
"/Users/alex/Projects/ExLabWizard/tests/unit/sync/test_bandwidth.py": {
@@ -436,15 +468,15 @@
"hash": "4133020cc8e2abfdccc2e65d7deb3ba2"
},
"/Users/alex/Projects/ExLabWizard/tests/unit/sync/test_manifest.py": {
- "mtime": 1780089403.2927425,
+ "mtime": 1780127492.7735682,
"hash": "052d1424e0931e0ad3a72b73c30e45a6"
},
"/Users/alex/Projects/ExLabWizard/tests/unit/sync/test_queue.py": {
- "mtime": 1779440066.7161484,
+ "mtime": 1780127492.7746835,
"hash": "74b0e368f65c7fec4dacfa26c7fc702a"
},
"/Users/alex/Projects/ExLabWizard/tests/unit/sync/test_nas_client.py": {
- "mtime": 1780089349.3179948,
+ "mtime": 1780127492.7738955,
"hash": "6880c6011c719efc0312342e5c1f61f3"
},
"/Users/alex/Projects/ExLabWizard/tests/unit/sync/test_pre_sync_gate.py": {
@@ -452,15 +484,15 @@
"hash": "a6fcee1bc3829913a84d60b214ceafd4"
},
"/Users/alex/Projects/ExLabWizard/tests/unit/sync/_helpers.py": {
- "mtime": 1780089349.3173623,
+ "mtime": 1780127492.7734172,
"hash": "d1f2cfce3dc507465c47ad2626bae3a8"
},
"/Users/alex/Projects/ExLabWizard/tests/unit/sync/transports/test_run.py": {
- "mtime": 1780055797.7350745,
+ "mtime": 1780127492.7750587,
"hash": "607879a5f01b6c13134bd23a25dae948"
},
"/Users/alex/Projects/ExLabWizard/tests/unit/sync/transports/__init__.py": {
- "mtime": 1779855071.352482,
+ "mtime": 1780127492.774925,
"hash": "d41d8cd98f00b204e9800998ecf8427e"
},
"/Users/alex/Projects/ExLabWizard/tests/unit/logging/test_handlers.py": {
@@ -488,19 +520,19 @@
"hash": "d41d8cd98f00b204e9800998ecf8427e"
},
"/Users/alex/Projects/ExLabWizard/tests/unit/orchestrator/test_scan.py": {
- "mtime": 1779440066.7156014,
+ "mtime": 1780127492.7721531,
"hash": "57367db62d6d36e813d593208aca1331"
},
"/Users/alex/Projects/ExLabWizard/tests/unit/orchestrator/test_staging_query.py": {
- "mtime": 1779440612.1588957,
+ "mtime": 1780127492.7726471,
"hash": "d9649cab738c9eabc9306914f6eb8fd5"
},
"/Users/alex/Projects/ExLabWizard/tests/unit/orchestrator/test_quiescence_poller.py": {
- "mtime": 1780056872.2030475,
+ "mtime": 1780127492.7718842,
"hash": "d4ae98a8a4ebe3465f7ec9cd85e5d3b0"
},
"/Users/alex/Projects/ExLabWizard/tests/integration/test_orchestrator_lifecycle.py": {
- "mtime": 1780055591.3662944,
+ "mtime": 1780127492.7643068,
"hash": "23c6441e6e8a0fc1251437ccad51bd3c"
},
"/Users/alex/Projects/ExLabWizard/tests/integration/test_tray_window_smoke.py": {
@@ -516,7 +548,7 @@
"hash": "0f4f55cb1ce70e3e71c0624153dbfa66"
},
"/Users/alex/Projects/ExLabWizard/tests/integration/test_nas_sync.py": {
- "mtime": 1780055591.3661125,
+ "mtime": 1780127492.7639818,
"hash": "2cb8f03107da1fc8cf237f0502e5e7d7"
},
"/Users/alex/Projects/ExLabWizard/tests/integration/test_lims_contract.py": {
@@ -528,7 +560,7 @@
"hash": "5f322e3384aa5c03f10f876b970f8e7f"
},
"/Users/alex/Projects/ExLabWizard/tests/integration/test_schema_major_mismatch.py": {
- "mtime": 1779440066.713749,
+ "mtime": 1780127492.7645805,
"hash": "21c848f8cf35aa68e8d7ce00c5dc912a"
},
"/Users/alex/Projects/ExLabWizard/tests/integration/test_creation_json_concurrent_writes.py": {
@@ -556,11 +588,11 @@
"hash": "5ef739e9d1f14f3535b763538b417f55"
},
"/Users/alex/Projects/ExLabWizard/tests/integration/controller/test_creation_flow.py": {
- "mtime": 1780055591.3658764,
- "hash": "cdea8aea1fba5ee56694a464ae7848ab"
+ "mtime": 1780127492.7636416,
+ "hash": "eac3dac147e5dc442affebee42387f37"
},
"/Users/alex/Projects/ExLabWizard/tests/integration/api/test_full_flow.py": {
- "mtime": 1780057483.2668922,
+ "mtime": 1780127492.7633097,
"hash": "004622d614515148ba4f7189dd7fe1a1"
},
"/Users/alex/Projects/ExLabWizard/tests/integration/api/__init__.py": {
@@ -576,7 +608,7 @@
"hash": "c5bd253e8f3c32ade2e5fd5c36c20551"
},
"/Users/alex/Projects/ExLabWizard/tests/fixtures/stub_rclone.py": {
- "mtime": 1780089349.3177044,
+ "mtime": 1780127492.7630148,
"hash": "321b822f02904409c06a0d0fd8ff4037"
},
"/Users/alex/Projects/ExLabWizard/tests/fixtures/lims/__init__.py": {
@@ -652,15 +684,15 @@
"hash": "8a7e67e129a688cb87e54beb6bda2b5b"
},
"/Users/alex/Projects/ExLabWizard/tests/e2e/test_flow_18_relay_receive.py": {
- "mtime": 1779756776.7318337,
- "hash": "a095da9485d1d386ee28f7ece7f41221"
+ "mtime": 1780127492.7587204,
+ "hash": "13eafd28d46b07dca72e4c8c9d71c28b"
},
"/Users/alex/Projects/ExLabWizard/tests/e2e/conftest.py": {
"mtime": 1778192475.564071,
"hash": "c829372e25eef37256a59f2f2c4c655c"
},
"/Users/alex/Projects/ExLabWizard/tests/e2e/test_flow_00_fresh_install_setup.py": {
- "mtime": 1780011020.0550826,
+ "mtime": 1780127492.756034,
"hash": "7a5d046bf277afa22b206d7175a59ff2"
},
"/Users/alex/Projects/ExLabWizard/tests/e2e/test_flow_22_onboarding_redesign.py": {
@@ -668,12 +700,12 @@
"hash": "1650794b7cac77e1c2b6ad7a0b71fb17"
},
"/Users/alex/Projects/ExLabWizard/tests/e2e/test_flow_24_context_menus.py": {
- "mtime": 1779756804.5270338,
+ "mtime": 1780127492.7604518,
"hash": "c2c8e5086bd253a6bfe566a0e5757aea"
},
"/Users/alex/Projects/ExLabWizard/tests/e2e/test_flow_08_settings.py": {
- "mtime": 1779227746.8426805,
- "hash": "d3f26ada5f06ba221b734ed4cb640c1f"
+ "mtime": 1780127492.7575479,
+ "hash": "fd4985ddb9a69bc772e47094854153f2"
},
"/Users/alex/Projects/ExLabWizard/tests/e2e/test_flow_11_crash_recovery.py": {
"mtime": 1778192475.565255,
@@ -684,36 +716,36 @@
"hash": "19775cc3226bc74e960e00f5b87b2cc4"
},
"/Users/alex/Projects/ExLabWizard/tests/e2e/_prod_server.py": {
- "mtime": 1779986413.153844,
+ "mtime": 1780127492.7551198,
"hash": "43a505812390991df92b25a4b501aaa9"
},
"/Users/alex/Projects/ExLabWizard/tests/e2e/test_flow_17_picker_step.py": {
- "mtime": 1779756766.9308562,
+ "mtime": 1780127492.7584834,
"hash": "e23004f7506d280e0f9800e80e792b5c"
},
"/Users/alex/Projects/ExLabWizard/tests/e2e/test_flow_20_file_explorer.py": {
- "mtime": 1779756795.9519956,
- "hash": "a8db4783f97e8094b40bf65b5ecf298c"
+ "mtime": 1780127492.7592452,
+ "hash": "04c74b325a42bccbd83f7622e0f50917"
},
"/Users/alex/Projects/ExLabWizard/tests/e2e/test_flow_05_browse_view_sync_icons.py": {
- "mtime": 1779442176.9190416,
+ "mtime": 1780127492.757116,
"hash": "6c093486780dfe0629d95d164e58d196"
},
"/Users/alex/Projects/ExLabWizard/tests/e2e/test_flow_05_browse_view.py": {
- "mtime": 1779756744.839734,
- "hash": "2a99ad94592dfcad5296bd4431e10c18"
+ "mtime": 1780127492.756897,
+ "hash": "28deafae8abe360179c2cff732d72d8e"
},
"/Users/alex/Projects/ExLabWizard/tests/e2e/__init__.py": {
"mtime": 1778192475.5637705,
"hash": "6480819940f21f3ae2328cf54c585bab"
},
"/Users/alex/Projects/ExLabWizard/tests/e2e/test_flow_16_add_equipment.py": {
- "mtime": 1779756757.3570318,
- "hash": "edf4da81c38419db4f5a793aca3184f9"
+ "mtime": 1780127492.7581873,
+ "hash": "0eb3146fa4fbd9644425bb32ba074354"
},
"/Users/alex/Projects/ExLabWizard/tests/e2e/test_flow_23_footer_staging.py": {
- "mtime": 1778871321.7852678,
- "hash": "bd483c4eb5d60cc1a643a0f8865b115f"
+ "mtime": 1780127492.7601063,
+ "hash": "2d5904fbbec8c46bffe632bc2d20f4b3"
},
"/Users/alex/Projects/ExLabWizard/tests/e2e/test_smoke.py": {
"mtime": 1778192475.5655344,
@@ -724,15 +756,15 @@
"hash": "d6fcd7fae19416124787bd557f01db23"
},
"/Users/alex/Projects/ExLabWizard/tests/e2e/_prod_app.py": {
- "mtime": 1780010908.8504312,
+ "mtime": 1780127492.7548025,
"hash": "ae30687a0f5a8822f669210c546984bf"
},
"/Users/alex/Projects/ExLabWizard/tests/e2e/test_flow_25_production_main_wiring.py": {
- "mtime": 1779756858.55785,
- "hash": "ed37996d2e2438ddc227bf47c4a99d81"
+ "mtime": 1780127492.760771,
+ "hash": "15958967f87c28c0c6c43baf61449c52"
},
"/Users/alex/Projects/ExLabWizard/tests/e2e/test_flow_00_full_lifecycle.py": {
- "mtime": 1780058294.8777995,
+ "mtime": 1780127492.7563918,
"hash": "d42e96a857a1a02f12f45c5048b537f2"
},
"/Users/alex/Projects/ExLabWizard/tests/e2e/test_flow_13_keyboard.py": {
@@ -740,23 +772,23 @@
"hash": "68630d2ccbfc8b7037a2b8fde15dee32"
},
"/Users/alex/Projects/ExLabWizard/tests/e2e/ux_catalog.py": {
- "mtime": 1780058311.3744118,
- "hash": "cfb91a781f6185a28ffefff890e0f8bd"
+ "mtime": 1780127492.7617998,
+ "hash": "45b8467766268d4dd48673981c9709f8"
},
"/Users/alex/Projects/ExLabWizard/tests/e2e/test_flow_07_plugin_input_required.py": {
"mtime": 1778231226.4438095,
"hash": "4a98c5cce9d1b968845728d9d3e30549"
},
"/Users/alex/Projects/ExLabWizard/tests/e2e/test_flow_26_equipment_wizard_persist.py": {
- "mtime": 1780058252.5317383,
- "hash": "dfcc52d378d474adbbb2d6148dd94d6f"
+ "mtime": 1780127492.7608967,
+ "hash": "03ae527198f8be67e9a74a363488cf47"
},
"/Users/alex/Projects/ExLabWizard/tests/e2e/test_flow_09_orchestrator.py": {
- "mtime": 1779440066.7122064,
- "hash": "c1b68a350a84a98ae13751d8bc4743ff"
+ "mtime": 1780127492.757826,
+ "hash": "e225f2b23f11dcf161c1a876d2725756"
},
"/Users/alex/Projects/ExLabWizard/tests/e2e/test_flow_27_nas_credential_settings.py": {
- "mtime": 1780089349.3176565,
+ "mtime": 1780127492.7611983,
"hash": "9dd0534a57d3bb552d1a67b8ee987a65"
},
"/Users/alex/Projects/ExLabWizard/tests/e2e/test_flow_15_websocket_reconnect.py": {
@@ -764,23 +796,27 @@
"hash": "a1297d4b32da80ea55922d26035f7bc3"
},
"/Users/alex/Projects/ExLabWizard/tests/e2e/test_flow_21_stage_ceiling.py": {
- "mtime": 1778871321.7851264,
- "hash": "c667d19a391ac83e3e13592f491dd631"
+ "mtime": 1780127492.7598636,
+ "hash": "23a2d59dc53f4ef2137864629c065823"
},
"/Users/alex/Projects/ExLabWizard/tests/e2e/_test_app.py": {
- "mtime": 1780103737.6304162,
- "hash": "1912d354fe6afe013ddad3f737d55ad9"
+ "mtime": 1780127492.7553606,
+ "hash": "610a82f42c2a7c1129f05f894f4f9202"
},
"/Users/alex/Projects/ExLabWizard/tests/e2e/test_flow_01_onboarding.py": {
- "mtime": 1779756734.0719478,
+ "mtime": 1780127492.7566726,
"hash": "cb7aa98e7ca787d2cb541ee5e24eb667"
},
"/Users/alex/Projects/ExLabWizard/tests/e2e/test_flow_12_quit_coordinator.py": {
"mtime": 1778192475.5653136,
"hash": "b446a82d687ebce887db8a3be258200b"
},
+ "/Users/alex/Projects/ExLabWizard/tests/e2e/test_flow_28_selection_search_density.py": {
+ "mtime": 1780127492.7614245,
+ "hash": "45c3a6c9921d00f99a8878c53a8fd304"
+ },
"/Users/alex/Projects/ExLabWizard/tests/e2e/test_flow_19_travelling_badge.py": {
- "mtime": 1779756786.8896565,
+ "mtime": 1780127492.7589877,
"hash": "485bc403e0aca95447a408b89e86a9a3"
},
"/Users/alex/Projects/ExLabWizard/tests/e2e/test_flow_04_test_run.py": {
@@ -816,7 +852,7 @@
"hash": "845cef84d0a5f2d23b5df1f11f2411d2"
},
"/Users/alex/Projects/ExLabWizard/tests/e2e/page_objects/wizard_equipment_page.py": {
- "mtime": 1780058243.1227832,
+ "mtime": 1780127492.7556603,
"hash": "424ab986931c731019088f9930051f81"
},
"/Users/alex/Projects/ExLabWizard/tests/e2e/page_objects/staging_page.py": {
@@ -852,7 +888,7 @@
"hash": "7b4912e2e5f6d9b05ae779cdaec666c6"
},
"/Users/alex/Projects/ExLabWizard/src/exlab_wizard/paths.py": {
- "mtime": 1780089301.373161,
+ "mtime": 1780127492.7423623,
"hash": "41694fd1199b7969f46148c4225e94d4"
},
"/Users/alex/Projects/ExLabWizard/src/exlab_wizard/__init__.py": {
@@ -868,15 +904,15 @@
"hash": "31376a07c68496d020a4ec65c890a8a2"
},
"/Users/alex/Projects/ExLabWizard/src/exlab_wizard/ui/theme.py": {
- "mtime": 1780103719.496492,
- "hash": "0b419940974050726fc967cb3877a073"
+ "mtime": 1780127492.7527719,
+ "hash": "4008c43960f502cf74c1bd64bcee20bf"
},
"/Users/alex/Projects/ExLabWizard/src/exlab_wizard/ui/equipment_form.py": {
- "mtime": 1780056544.0252504,
+ "mtime": 1780127492.7500763,
"hash": "7496ee16f936c63c8d827cb6b758a9fe"
},
"/Users/alex/Projects/ExLabWizard/src/exlab_wizard/ui/design.py": {
- "mtime": 1780096780.2650476,
+ "mtime": 1780127492.749751,
"hash": "19a34ecba9f3e2424880028c8ae79786"
},
"/Users/alex/Projects/ExLabWizard/src/exlab_wizard/ui/__init__.py": {
@@ -888,16 +924,16 @@
"hash": "fa8ba085628e54b8d93beb8a08c51c21"
},
"/Users/alex/Projects/ExLabWizard/src/exlab_wizard/ui/mount.py": {
- "mtime": 1780103726.6905062,
- "hash": "59b2323cb3f406bc687e6b2c1afc7c19"
+ "mtime": 1780127492.750392,
+ "hash": "d85ca1a349b6de37aa577848d9473e36"
},
"/Users/alex/Projects/ExLabWizard/src/exlab_wizard/ui/keyboard.py": {
"mtime": 1778887316.7165968,
"hash": "fbf7351a12e538ba507b9939608c2fd0"
},
"/Users/alex/Projects/ExLabWizard/src/exlab_wizard/ui/components/file_list.py": {
- "mtime": 1780103238.770357,
- "hash": "cddc5754a16e32ebf7d728f07cb80b7a"
+ "mtime": 1780127492.7468443,
+ "hash": "089f35bb74f49e228ce809b46983cca1"
},
"/Users/alex/Projects/ExLabWizard/src/exlab_wizard/ui/components/test_connection_panel.py": {
"mtime": 1778887316.715521,
@@ -908,8 +944,8 @@
"hash": "152c8bf8986bac00526b6812ecc1d3ae"
},
"/Users/alex/Projects/ExLabWizard/src/exlab_wizard/ui/components/tree.py": {
- "mtime": 1779441802.3543327,
- "hash": "6cdffcfec36618a4f122f7235157e954"
+ "mtime": 1780127492.749361,
+ "hash": "46b0ede6371f2e745a8bc786ebbb8a50"
},
"/Users/alex/Projects/ExLabWizard/src/exlab_wizard/ui/components/breadcrumb.py": {
"mtime": 1778887316.714585,
@@ -920,8 +956,8 @@
"hash": "1a8652318c6cdef6a633b66e6a279a15"
},
"/Users/alex/Projects/ExLabWizard/src/exlab_wizard/ui/components/metadata_pane.py": {
- "mtime": 1780103789.373093,
- "hash": "4caaf5cb75d585242bc294a4a297dc76"
+ "mtime": 1780127492.7475898,
+ "hash": "a5ed22ddf8f5d875e821666706beb4b1"
},
"/Users/alex/Projects/ExLabWizard/src/exlab_wizard/ui/components/travelling_badge.py": {
"mtime": 1778887316.7156353,
@@ -932,31 +968,31 @@
"hash": "a3dca258873ced990e4fbcfa793df49d"
},
"/Users/alex/Projects/ExLabWizard/src/exlab_wizard/ui/components/input_required_dialog.py": {
- "mtime": 1780054073.0601943,
+ "mtime": 1780127492.7472425,
"hash": "f7932b4cffad2ce648076047fc9eebbe"
},
"/Users/alex/Projects/ExLabWizard/src/exlab_wizard/ui/components/status_bar_segment.py": {
- "mtime": 1778887316.7153776,
- "hash": "665b502098247541d78470c96ea25d9c"
+ "mtime": 1780127492.7484574,
+ "hash": "ebdf27e726f9b903e9a716c94c20e911"
},
"/Users/alex/Projects/ExLabWizard/src/exlab_wizard/ui/components/sync_status_icon.py": {
- "mtime": 1780098407.7319925,
- "hash": "dacd5302036c89ec7677d292dd9ecdcd"
+ "mtime": 1780127492.749022,
+ "hash": "6f6bb3a5f3bb6bd4dbacdc3189ef560e"
},
"/Users/alex/Projects/ExLabWizard/src/exlab_wizard/ui/components/framed_pane.py": {
- "mtime": 1780104038.4705172,
- "hash": "66be5a73b97d753d4217bb61b4cc7159"
+ "mtime": 1780127492.747055,
+ "hash": "d2c67453a97631d78aa9962733509b42"
},
"/Users/alex/Projects/ExLabWizard/src/exlab_wizard/ui/components/tree_context_menu.py": {
"mtime": 1778887316.7158039,
"hash": "0b53e57b5cf5368220c333c14785ca5a"
},
"/Users/alex/Projects/ExLabWizard/src/exlab_wizard/ui/components/__init__.py": {
- "mtime": 1780054073.0600948,
+ "mtime": 1780127492.746346,
"hash": "7df53923728263eaa7b52d4d5460882c"
},
"/Users/alex/Projects/ExLabWizard/src/exlab_wizard/ui/components/operations_modal.py": {
- "mtime": 1780054073.0603356,
+ "mtime": 1780127492.7479556,
"hash": "505cc97f8ff9f889540d9e62e2e5088d"
},
"/Users/alex/Projects/ExLabWizard/src/exlab_wizard/ui/components/credential_field.py": {
@@ -964,7 +1000,7 @@
"hash": "bb5ea99d8cd87f9db6c3162fbbedd876"
},
"/Users/alex/Projects/ExLabWizard/src/exlab_wizard/ui/components/session_progress.py": {
- "mtime": 1780054073.0605893,
+ "mtime": 1780127492.7481494,
"hash": "b35ec4323a6972fc7d27dffbb7472e83"
},
"/Users/alex/Projects/ExLabWizard/src/exlab_wizard/ui/components/validation_summary.py": {
@@ -972,7 +1008,7 @@
"hash": "3bfd38a1aab846180aea65cce1d82570"
},
"/Users/alex/Projects/ExLabWizard/src/exlab_wizard/ui/components/sync_rollup.py": {
- "mtime": 1780097821.5339239,
+ "mtime": 1780127492.7486317,
"hash": "610e49becae2ccb4c049b1cf05ddf4b9"
},
"/Users/alex/Projects/ExLabWizard/src/exlab_wizard/ui/components/mode_badge.py": {
@@ -983,12 +1019,16 @@
"mtime": 1778887316.7148159,
"hash": "ccbc9d62e963b070e86da6d5b9225e44"
},
+ "/Users/alex/Projects/ExLabWizard/src/exlab_wizard/ui/components/empty_state.py": {
+ "mtime": 1780127492.7464836,
+ "hash": "9e522062f61d126a5699edfc10235849"
+ },
"/Users/alex/Projects/ExLabWizard/src/exlab_wizard/ui/components/banner_stack.py": {
"mtime": 1778887316.7145374,
"hash": "be7dc1fc2a61ad9c043807e0f75d4d4f"
},
"/Users/alex/Projects/ExLabWizard/src/exlab_wizard/ui/pages/wizard_run.py": {
- "mtime": 1780054073.0631807,
+ "mtime": 1780127492.7522957,
"hash": "94a1ba2fdc718b85f15cba0913461fa0"
},
"/Users/alex/Projects/ExLabWizard/src/exlab_wizard/ui/pages/__init__.py": {
@@ -1000,31 +1040,31 @@
"hash": "17428444f6305f0ded21f43ffad6510c"
},
"/Users/alex/Projects/ExLabWizard/src/exlab_wizard/ui/pages/problems.py": {
- "mtime": 1780054073.062179,
+ "mtime": 1780127492.7509363,
"hash": "2ad9347f86161cc3ace90b2232559e29"
},
"/Users/alex/Projects/ExLabWizard/src/exlab_wizard/ui/pages/wizard_equipment.py": {
- "mtime": 1780056590.2521746,
- "hash": "540a7773a1e88758a4d5c5c1267a89ee"
+ "mtime": 1780127492.7519054,
+ "hash": "6ca65c5fe5f788497c73401070e01e79"
},
"/Users/alex/Projects/ExLabWizard/src/exlab_wizard/ui/pages/settings.py": {
- "mtime": 1780054073.0625908,
- "hash": "ed826e694aa5d8b0b1c5aa8dc8718595"
+ "mtime": 1780127492.7512918,
+ "hash": "e8a9fe103e7cd5f7c1bb84909936e691"
},
"/Users/alex/Projects/ExLabWizard/src/exlab_wizard/ui/pages/welcome.py": {
"mtime": 1778887316.7175474,
"hash": "93443e3baaaad7b4083192196fdc7378"
},
"/Users/alex/Projects/ExLabWizard/src/exlab_wizard/ui/pages/main.py": {
- "mtime": 1780104972.020372,
- "hash": "dea929c62e5503b9a199093e7ff96742"
+ "mtime": 1780127492.750621,
+ "hash": "be6794eecca87d282c4dbf7c22c59a8e"
},
"/Users/alex/Projects/ExLabWizard/src/exlab_wizard/ui/pages/staging.py": {
- "mtime": 1779440066.7111874,
+ "mtime": 1780127492.7515812,
"hash": "c2bfea5f8d1943226c4c67d8ceb5fe28"
},
"/Users/alex/Projects/ExLabWizard/src/exlab_wizard/ui/pages/wizard_project.py": {
- "mtime": 1780054073.06304,
+ "mtime": 1780127492.7520502,
"hash": "f73b9beb3f4e2979968d197ffa404f9a"
},
"/Users/alex/Projects/ExLabWizard/src/exlab_wizard/ui/client/refresh_coordinator.py": {
@@ -1060,7 +1100,7 @@
"hash": "c97f40a1978d3bf5d19e2aaf042a1b2f"
},
"/Users/alex/Projects/ExLabWizard/src/exlab_wizard/lims/catalogue.py": {
- "mtime": 1780054073.0565794,
+ "mtime": 1780127492.740775,
"hash": "d0b38da7e90beb8a01d7eab36de27ab0"
},
"/Users/alex/Projects/ExLabWizard/src/exlab_wizard/validator/findings.py": {
@@ -1076,7 +1116,7 @@
"hash": "a0e24719f7552e94f1622cb08c9fd75b"
},
"/Users/alex/Projects/ExLabWizard/src/exlab_wizard/validator/engine.py": {
- "mtime": 1780009028.044374,
+ "mtime": 1780127492.7532067,
"hash": "2fa0066d4c427ce753a51f256848d5fe"
},
"/Users/alex/Projects/ExLabWizard/src/exlab_wizard/cache/equipment.py": {
@@ -1084,11 +1124,11 @@
"hash": "2bb6f468eaf403b89916bed3e88f343a"
},
"/Users/alex/Projects/ExLabWizard/src/exlab_wizard/cache/sync_state_schema.py": {
- "mtime": 1779855272.3585145,
+ "mtime": 1780127492.7363758,
"hash": "5798c1a0dd899ecba4a45b0550ee9d4a"
},
"/Users/alex/Projects/ExLabWizard/src/exlab_wizard/cache/sync_state_writer.py": {
- "mtime": 1779857194.194154,
+ "mtime": 1780127492.7365298,
"hash": "6f7592a49354a0a1a09a34414007b358"
},
"/Users/alex/Projects/ExLabWizard/src/exlab_wizard/cache/__init__.py": {
@@ -1104,7 +1144,7 @@
"hash": "dfec2dabdda0ff69f6328ef460c1d931"
},
"/Users/alex/Projects/ExLabWizard/src/exlab_wizard/config/models.py": {
- "mtime": 1780056506.5896342,
+ "mtime": 1780127492.7372184,
"hash": "4217789fc4446740b5199202c1c5da72"
},
"/Users/alex/Projects/ExLabWizard/src/exlab_wizard/config/__init__.py": {
@@ -1112,15 +1152,19 @@
"hash": "9d4df1a87a4de0801371cb8295bf37a1"
},
"/Users/alex/Projects/ExLabWizard/src/exlab_wizard/config/loader.py": {
- "mtime": 1779756530.9651835,
+ "mtime": 1780127492.7368817,
"hash": "450450079de510c1a274d3689ae648cb"
},
+ "/Users/alex/Projects/ExLabWizard/src/exlab_wizard/config/test_bootstrap.py": {
+ "mtime": 1780127492.7374804,
+ "hash": "d1797cade1bb01ebc3cff611c38719b4"
+ },
"/Users/alex/Projects/ExLabWizard/src/exlab_wizard/plugins/registry.py": {
"mtime": 1778887316.711591,
"hash": "29fced03bce3dd9ac45aa207e6cc7d1b"
},
"/Users/alex/Projects/ExLabWizard/src/exlab_wizard/plugins/host.py": {
- "mtime": 1780054073.0571249,
+ "mtime": 1780127492.7426171,
"hash": "b72dd5f6695b0cb6ed2a680c85d6eb8a"
},
"/Users/alex/Projects/ExLabWizard/src/exlab_wizard/plugins/__init__.py": {
@@ -1140,7 +1184,7 @@
"hash": "e3180c2c9c7985c96fd7dac690cda358"
},
"/Users/alex/Projects/ExLabWizard/src/exlab_wizard/constants/enums.py": {
- "mtime": 1780056518.8499293,
+ "mtime": 1780127492.7386696,
"hash": "9cb99526a85dc9ef1f39a31b335da1b0"
},
"/Users/alex/Projects/ExLabWizard/src/exlab_wizard/constants/patterns.py": {
@@ -1152,23 +1196,23 @@
"hash": "fa79e7b95ff3d79def246b2717f155a8"
},
"/Users/alex/Projects/ExLabWizard/src/exlab_wizard/constants/filenames.py": {
- "mtime": 1779855764.851056,
+ "mtime": 1780127492.738964,
"hash": "8bc238887a4a9b69300b1acb614f0e6b"
},
"/Users/alex/Projects/ExLabWizard/src/exlab_wizard/constants/__init__.py": {
- "mtime": 1780056532.0557973,
+ "mtime": 1780127492.7379632,
"hash": "6bb039e240dc387e195e35ddc41ebe55"
},
"/Users/alex/Projects/ExLabWizard/src/exlab_wizard/constants/keyring.py": {
- "mtime": 1780055753.0152812,
+ "mtime": 1780127492.739248,
"hash": "78c2cee12ea89415d8429962c29e42de"
},
"/Users/alex/Projects/ExLabWizard/src/exlab_wizard/constants/app.py": {
- "mtime": 1779756405.7655954,
+ "mtime": 1780127492.738331,
"hash": "a6f71851fc16d5d6f1473da0ff153914"
},
"/Users/alex/Projects/ExLabWizard/src/exlab_wizard/constants/schema_versions.py": {
- "mtime": 1779484219.8213682,
+ "mtime": 1780127492.7395022,
"hash": "e0b4552628e679f871216fcaaa19268e"
},
"/Users/alex/Projects/ExLabWizard/src/exlab_wizard/io/json_files.py": {
@@ -1236,11 +1280,11 @@
"hash": "1d67ebe63250b16a79225ba593a58776"
},
"/Users/alex/Projects/ExLabWizard/src/exlab_wizard/tray/main.py": {
- "mtime": 1780055591.3640535,
- "hash": "f8291d155f98e091a30c7e60cf1ed3b3"
+ "mtime": 1780127492.7461336,
+ "hash": "679b5e342a48b87c3f694525122057eb"
},
"/Users/alex/Projects/ExLabWizard/src/exlab_wizard/tray/dependencies.py": {
- "mtime": 1780060015.5331824,
+ "mtime": 1780127492.7457714,
"hash": "eeac3ad7049b07165e0b114bb1e2d5df"
},
"/Users/alex/Projects/ExLabWizard/src/exlab_wizard/tray/status.py": {
@@ -1260,21 +1304,37 @@
"hash": "4c7138b81baba5821d4f161c75efe99e"
},
"/Users/alex/Projects/ExLabWizard/src/exlab_wizard/controller/creation.py": {
- "mtime": 1780054073.0561836,
- "hash": "2b4a756d8614d0587ddeb146cfdbd55e"
+ "mtime": 1780127492.740004,
+ "hash": "6f16e811337471ca3dbfe03028c451ce"
},
"/Users/alex/Projects/ExLabWizard/src/exlab_wizard/controller/__init__.py": {
- "mtime": 1780054073.0560045,
+ "mtime": 1780127492.7396195,
"hash": "405e6cc064b0901197e29f80b99a7434"
},
"/Users/alex/Projects/ExLabWizard/src/exlab_wizard/controller/state_machine.py": {
"mtime": 1778887316.7091095,
"hash": "0a4a2cc88367c1fd28ecbb2724124fab"
},
+ "/Users/alex/Projects/ExLabWizard/src/exlab_wizard/controller/metadata_assembly.py": {
+ "mtime": 1780127492.7401772,
+ "hash": "60d804394038f9569fdddd5fe5298788"
+ },
"/Users/alex/Projects/ExLabWizard/src/exlab_wizard/controller/session_store.py": {
- "mtime": 1780054073.056357,
+ "mtime": 1780127492.7403305,
"hash": "40cb1a6d39431075aa83ae997d8ee0b3"
},
+ "/Users/alex/Projects/ExLabWizard/src/exlab_wizard/sample_data/__init__.py": {
+ "mtime": 1780127492.7428222,
+ "hash": "2c7f35120f1ff282c881bfd296881344"
+ },
+ "/Users/alex/Projects/ExLabWizard/src/exlab_wizard/sample_data/spec.py": {
+ "mtime": 1780127492.7431495,
+ "hash": "4477fab0f95b17c87c41e09798e56be8"
+ },
+ "/Users/alex/Projects/ExLabWizard/src/exlab_wizard/sample_data/generator.py": {
+ "mtime": 1780127492.7429783,
+ "hash": "3059e4a7ff1838218356e992640cf93d"
+ },
"/Users/alex/Projects/ExLabWizard/src/exlab_wizard/window/pywebview_app.py": {
"mtime": 1778887316.7195377,
"hash": "dc8a76edd7fa9db575086409f1c66ffe"
@@ -1288,11 +1348,11 @@
"hash": "9063ad0cc4f8c535ce7ea63789b48f88"
},
"/Users/alex/Projects/ExLabWizard/src/exlab_wizard/api/health.py": {
- "mtime": 1779484175.042146,
+ "mtime": 1780127492.73452,
"hash": "18697ab159bd8fbce89712c1daddd8b5"
},
"/Users/alex/Projects/ExLabWizard/src/exlab_wizard/api/_dependencies.py": {
- "mtime": 1780054073.0536618,
+ "mtime": 1780127492.733323,
"hash": "0ed6d7e9943b778d152760318339788f"
},
"/Users/alex/Projects/ExLabWizard/src/exlab_wizard/api/events.py": {
@@ -1304,23 +1364,23 @@
"hash": "48bed013bd51413dc7f9237be3b3e360"
},
"/Users/alex/Projects/ExLabWizard/src/exlab_wizard/api/setup.py": {
- "mtime": 1780055591.3631065,
+ "mtime": 1780127492.736241,
"hash": "dd6e78c79538fd1c47d915103ac3d67e"
},
"/Users/alex/Projects/ExLabWizard/src/exlab_wizard/api/schemas.py": {
- "mtime": 1779484850.0430028,
+ "mtime": 1780127492.7359338,
"hash": "e38b57b85c80d01b2d76b71dc7b25020"
},
"/Users/alex/Projects/ExLabWizard/src/exlab_wizard/api/app.py": {
- "mtime": 1780054073.0539734,
+ "mtime": 1780127492.7337248,
"hash": "9cfff859e37fc3674546271360860b42"
},
"/Users/alex/Projects/ExLabWizard/src/exlab_wizard/api/errors.py": {
- "mtime": 1779858522.1781368,
+ "mtime": 1780127492.734156,
"hash": "b0a68a0b15fd2274bb30dc5fbfcf58fc"
},
"/Users/alex/Projects/ExLabWizard/src/exlab_wizard/api/routers/browse.py": {
- "mtime": 1779442977.6942852,
+ "mtime": 1780127492.734869,
"hash": "209dd73510b163cbc533b0f372e24895"
},
"/Users/alex/Projects/ExLabWizard/src/exlab_wizard/api/routers/sessions.py": {
@@ -1328,7 +1388,7 @@
"hash": "81f672a70b8d6f7dd7045feb0c09f5f4"
},
"/Users/alex/Projects/ExLabWizard/src/exlab_wizard/api/routers/config.py": {
- "mtime": 1780054073.054517,
+ "mtime": 1780127492.7352352,
"hash": "696a9cd77e1cf39575e5338a529cc97f"
},
"/Users/alex/Projects/ExLabWizard/src/exlab_wizard/api/routers/__init__.py": {
@@ -1336,7 +1396,7 @@
"hash": "6fd1880a00170fce23b10839fbd1cf42"
},
"/Users/alex/Projects/ExLabWizard/src/exlab_wizard/api/routers/operations.py": {
- "mtime": 1780054073.054641,
+ "mtime": 1780127492.7353764,
"hash": "9ec4637d63ae1e7ec6726870513b252b"
},
"/Users/alex/Projects/ExLabWizard/src/exlab_wizard/api/routers/problems.py": {
@@ -1344,19 +1404,27 @@
"hash": "b90d8ffd6425ecee253a30306deab6fe"
},
"/Users/alex/Projects/ExLabWizard/src/exlab_wizard/api/routers/staging.py": {
- "mtime": 1779442904.0151088,
+ "mtime": 1780127492.735629,
"hash": "0a39d67b0cf64596742ac66f68a4b941"
},
+ "/Users/alex/Projects/ExLabWizard/src/exlab_wizard/dev/__init__.py": {
+ "mtime": 1780127492.7404745,
+ "hash": "6531fb973320a1ab9aec73f81321bcdb"
+ },
+ "/Users/alex/Projects/ExLabWizard/src/exlab_wizard/dev/seed.py": {
+ "mtime": 1780127492.7405903,
+ "hash": "c76def5c7bf679f25f8dbb87ccd81976"
+ },
"/Users/alex/Projects/ExLabWizard/src/exlab_wizard/sync/queue.py": {
- "mtime": 1779440066.7093844,
+ "mtime": 1780127492.7440805,
"hash": "85264151b44bd5a782eea72963d28370"
},
"/Users/alex/Projects/ExLabWizard/src/exlab_wizard/sync/manifest.py": {
- "mtime": 1780054073.0579178,
+ "mtime": 1780127492.743361,
"hash": "3f1ec584a9eafaa7023db1880b70c400"
},
"/Users/alex/Projects/ExLabWizard/src/exlab_wizard/sync/nas_client.py": {
- "mtime": 1780060071.3812962,
+ "mtime": 1780127492.7437706,
"hash": "8386077ad5c29e7b2a631c9bb45513cd"
},
"/Users/alex/Projects/ExLabWizard/src/exlab_wizard/sync/__init__.py": {
@@ -1376,11 +1444,11 @@
"hash": "955594315b5c9e19cd8af9ea405fa782"
},
"/Users/alex/Projects/ExLabWizard/src/exlab_wizard/sync/verifier.py": {
- "mtime": 1780054073.0594795,
+ "mtime": 1780127492.745401,
"hash": "d3efd1bfc30a75f97bb7df81d53258e2"
},
"/Users/alex/Projects/ExLabWizard/src/exlab_wizard/sync/run_delete.py": {
- "mtime": 1779441094.115504,
+ "mtime": 1780127492.744273,
"hash": "236e0a2cc47194ed090decb713c6f2bf"
},
"/Users/alex/Projects/ExLabWizard/src/exlab_wizard/sync/transports/__init__.py": {
@@ -1388,11 +1456,11 @@
"hash": "969f593c82e2f8d810fc14d18c7f8ce4"
},
"/Users/alex/Projects/ExLabWizard/src/exlab_wizard/sync/transports/rclone.py": {
- "mtime": 1780059989.2729561,
+ "mtime": 1780127492.7448435,
"hash": "8f275712cf0b3e7f133a0bd808742c32"
},
"/Users/alex/Projects/ExLabWizard/src/exlab_wizard/sync/transports/_run.py": {
- "mtime": 1780055651.8629074,
+ "mtime": 1780127492.7445235,
"hash": "82cda4b53794a4a610ea1d1fae3c0f73"
},
"/Users/alex/Projects/ExLabWizard/src/exlab_wizard/logging/handlers.py": {
@@ -1416,47 +1484,47 @@
"hash": "8f4df4fa7eaba0f8f4bf4638195efcd8"
},
"/Users/alex/Projects/ExLabWizard/src/exlab_wizard/orchestrator/quiescence_poller.py": {
- "mtime": 1780009097.5564256,
+ "mtime": 1780127492.741557,
"hash": "33cb3372ec583b7e1516a689e25353a6"
},
"/Users/alex/Projects/ExLabWizard/src/exlab_wizard/orchestrator/_scan.py": {
- "mtime": 1779440066.7088668,
+ "mtime": 1780127492.7414172,
"hash": "edcf28b19e340b56c557675510e005a4"
},
"/Users/alex/Projects/ExLabWizard/src/exlab_wizard/orchestrator/__init__.py": {
- "mtime": 1779440066.7087142,
+ "mtime": 1780127492.7410383,
"hash": "b8d5aef1bbfbba441a5e2017f9d8387d"
},
"/Users/alex/Projects/ExLabWizard/src/exlab_wizard/orchestrator/staging_clear.py": {
- "mtime": 1779484898.324295,
+ "mtime": 1780127492.7417138,
"hash": "ba94a24ffd24b749767c45e5bab04ea6"
},
"/Users/alex/Projects/ExLabWizard/src/exlab_wizard/orchestrator/staging_query.py": {
- "mtime": 1779484883.3951538,
+ "mtime": 1780127492.7419918,
"hash": "0005ca3ecf74d0bde4e7cc32c1e36a27"
},
- "/Users/alex/Projects/ExLabWizard/RESUME.md": {
- "mtime": 1780104603.0197268,
- "hash": "eef7a43d505f447d6e31036dafc8c343"
- },
"/Users/alex/Projects/ExLabWizard/README.md": {
- "mtime": 1780059235.8983097,
+ "mtime": 1780127492.6327887,
"hash": "11804cd2e3ebab98d154473118dd1c5b"
},
"/Users/alex/Projects/ExLabWizard/DESIGN.md": {
- "mtime": 1780097265.7269132,
- "hash": "75bd7614dff9734c6dafb4d935b122b2"
+ "mtime": 1780127492.6323993,
+ "hash": "c3a05673915471f27cafbf5de668a50f"
+ },
+ "/Users/alex/Projects/ExLabWizard/CLAUDE.md": {
+ "mtime": 1780127492.6319506,
+ "hash": "0866fbee43eb2619ecc6dc05960e23b7"
},
"/Users/alex/Projects/ExLabWizard/_internal/README.md": {
"mtime": 1778192475.5510361,
"hash": "e403bbc18b842a6ec94007208db50db3"
},
"/Users/alex/Projects/ExLabWizard/tests/docker/README.md": {
- "mtime": 1780059287.8496666,
+ "mtime": 1780127492.7538886,
"hash": "9c6f96d2eff5408f74db57ab5ead49d9"
},
"/Users/alex/Projects/ExLabWizard/tests/docker/docker-compose.yml": {
- "mtime": 1780059329.792995,
+ "mtime": 1780127492.7539966,
"hash": "3da2ffaec0a510317910d004f027ae0b"
},
"/Users/alex/Projects/ExLabWizard/tests/docker/nas-data/Run_2026-05-28T10-00/notes.txt": {
@@ -1492,7 +1560,7 @@
"hash": "0e45fac0a3f0c1878d8d9aa44f62922a"
},
"/Users/alex/Projects/ExLabWizard/tests/fixtures/configs/incomplete_no_lims.yaml": {
- "mtime": 1780055591.3650835,
+ "mtime": 1780127492.762414,
"hash": "c3da19993a7c74ed53e9c320fba84f6c"
},
"/Users/alex/Projects/ExLabWizard/tests/fixtures/configs/incomplete_no_equipment.yaml": {
@@ -1500,7 +1568,7 @@
"hash": "776bf7dbec2586b7874dece188b85ef7"
},
"/Users/alex/Projects/ExLabWizard/tests/fixtures/configs/incomplete_no_paths.yaml": {
- "mtime": 1780055591.365368,
+ "mtime": 1780127492.7627475,
"hash": "135f14f38d84daeef4bb7dcbb859e86f"
},
"/Users/alex/Projects/ExLabWizard/tests/fixtures/configs/README.md": {
@@ -1508,7 +1576,7 @@
"hash": "ce11b965fa9d372fcfe59145bf54261b"
},
"/Users/alex/Projects/ExLabWizard/tests/fixtures/configs/complete.yaml": {
- "mtime": 1780055591.3648598,
+ "mtime": 1780127492.7620916,
"hash": "3aaf7d7016b241d4a31c97f15e366b43"
},
"/Users/alex/Projects/ExLabWizard/tests/fixtures/templates/run_basic_both/copier.yml": {
@@ -1544,16 +1612,16 @@
"hash": "7854ac689141fb183330629890161f5f"
},
"/Users/alex/Projects/ExLabWizard/docs/REMAINING_WORK_TASKS.md": {
- "mtime": 1780054072.9264362,
+ "mtime": 1780127492.6361957,
"hash": "9600e3c6f5cf47b1581d4b852a54c8cd"
},
"/Users/alex/Projects/ExLabWizard/docs/REMAINING_WORK.md": {
- "mtime": 1780019735.8312056,
+ "mtime": 1780127492.6360016,
"hash": "a2e81051f3d87aeecdc3d3ecbd091587"
},
"/Users/alex/Projects/ExLabWizard/docs/UX_INTERACTIONS.md": {
- "mtime": 1780058315.8738008,
- "hash": "9d541678d89390618ce32bb552342977"
+ "mtime": 1780127492.6365495,
+ "hash": "91e2f91c00613e3cb4aa107250bcec05"
},
"/Users/alex/Projects/ExLabWizard/docs/source/index.md": {
"mtime": 1778887316.704442,
@@ -1576,7 +1644,7 @@
"hash": "7cf53076bf9f6eee3365cfcf6287db25"
},
"/Users/alex/Projects/ExLabWizard/docs/source/user_guide/01_settings.md": {
- "mtime": 1779440066.7064464,
+ "mtime": 1780127492.6375227,
"hash": "09300bc443c9cc5e658b9b113b604673"
},
"/Users/alex/Projects/ExLabWizard/docs/source/user_guide/06_readme.md": {
@@ -2100,59 +2168,67 @@
"hash": "a95d15b3fd67f4f74dd818b2771aa057"
},
"/Users/alex/Projects/ExLabWizard/docs/setup/rclone-remote-setup.md": {
- "mtime": 1780059005.7139099,
+ "mtime": 1780127492.6371698,
"hash": "78c5b53e591b0469ff733a4894b8c951"
},
"/Users/alex/Projects/ExLabWizard/docs/superpowers/plans/2026-05-28-rclone-conf-nas-sync.md": {
- "mtime": 1780054072.9283602,
+ "mtime": 1780127492.6380005,
"hash": "c8350a97b9387cd7eb92831f7fe5473c"
},
"/Users/alex/Projects/ExLabWizard/docs/superpowers/specs/2026-05-21-operator-free-per-file-nas-sync-design.md": {
- "mtime": 1779430584.872797,
+ "mtime": 1780127492.6382616,
"hash": "5367be02ac45a50b14099b0c7fc2d0ee"
},
+ "/Users/alex/Projects/ExLabWizard/docs/superpowers/specs/2026-05-29-hide-orchestrator-staging-design.md": {
+ "mtime": 1780127492.6392357,
+ "hash": "522f3ac8d4851d99d3e36c1dac9d6262"
+ },
"/Users/alex/Projects/ExLabWizard/docs/superpowers/specs/2026-05-28-rclone-conf-nas-sync-design.md": {
- "mtime": 1780054072.9288309,
+ "mtime": 1780127492.6386688,
"hash": "95d28226b9cb36646e93fef5fa02f553"
},
+ "/Users/alex/Projects/ExLabWizard/docs/superpowers/specs/2026-05-29-main-window-ui-refresh-remaining-work.md": {
+ "mtime": 1780127492.6407588,
+ "hash": "7cacfb2511fecbfecee7b93448d0a123"
+ },
"/Users/alex/Projects/ExLabWizard/docs/superpowers/specs/2026-05-26-rclone-only-nas-sync-design.md": {
- "mtime": 1779845832.8495932,
+ "mtime": 1780127492.638464,
"hash": "43b73291db0d69e51495778fdd2f6ff5"
},
"/Users/alex/Projects/ExLabWizard/docs/superpowers/specs/2026-05-28-staging-root-opt-in-design.md": {
- "mtime": 1780017359.8830984,
+ "mtime": 1780127492.638931,
"hash": "d56fc10fda54a79576688cc8bd9937c0"
},
"/Users/alex/Projects/ExLabWizard/docs/superpowers/specs/2026-05-29-main-window-ui-refresh-design.md": {
- "mtime": 1780095878.3579915,
- "hash": "d282a915c25a086d24ecd7bc22a322a4"
+ "mtime": 1780127492.6394908,
+ "hash": "48b475c09c1d487e02681d50c466631d"
},
"/Users/alex/Projects/ExLabWizard/docs/superpowers/specs/2026-05-29-sample-data-generation-design.md": {
- "mtime": 1780104679.628073,
+ "mtime": 1780127492.640989,
"hash": "70258894ffc1bb38439453188286fc5f"
},
"/Users/alex/Projects/ExLabWizard/docs/superpowers/specs/2026-05-29-main-window-ui-refresh-mockups/01-panel-framing.html": {
- "mtime": 1780093862.3769424,
+ "mtime": 1780127492.639764,
"hash": "49a4e07b135b59eb3791b8c45f0a3e4e"
},
"/Users/alex/Projects/ExLabWizard/docs/superpowers/specs/2026-05-29-main-window-ui-refresh-mockups/README.md": {
- "mtime": 1780093886.4036276,
+ "mtime": 1780127492.6404974,
"hash": "fb70c159acf041214b5f2324791cec27"
},
"/Users/alex/Projects/ExLabWizard/docs/superpowers/specs/2026-05-29-main-window-ui-refresh-mockups/03-zebra-and-row-states.html": {
- "mtime": 1780093862.378179,
+ "mtime": 1780127492.6401887,
"hash": "3f4e544a58b2e5eb6dd3f99eee626dbd"
},
"/Users/alex/Projects/ExLabWizard/docs/superpowers/specs/2026-05-29-main-window-ui-refresh-mockups/02-metadata-pane.html": {
- "mtime": 1780093862.3775811,
+ "mtime": 1780127492.6399722,
"hash": "6d24972e489685bf1f430b821c62dc6d"
},
"/Users/alex/Projects/ExLabWizard/design_specs/ExLab-Wizard_Frontend_Spec.md": {
- "mtime": 1780059358.741903,
+ "mtime": 1780127492.6342502,
"hash": "285c35784047449a4e8ac6ee51dae79d"
},
"/Users/alex/Projects/ExLabWizard/design_specs/ExLab-Wizard_Design_Spec.md": {
- "mtime": 1780059223.0669901,
+ "mtime": 1780127492.6331832,
"hash": "9cf49a512378d8998d1354e687b0084a"
},
"/Users/alex/Projects/ExLabWizard/design_specs/IMPLEMENTATION_PLAN.md": {
@@ -2160,7 +2236,7 @@
"hash": "32b2530bc80f6db00868d08018c95733"
},
"/Users/alex/Projects/ExLabWizard/design_specs/design_spec_sections/07_Sync_and_Database_Integration.md": {
- "mtime": 1780059710.6192603,
+ "mtime": 1780127492.6353943,
"hash": "5f2392237225b7aeb466138ad7f28621"
},
"/Users/alex/Projects/ExLabWizard/design_specs/design_spec_sections/03_Directory_Structure_Convention.md": {
@@ -2180,7 +2256,7 @@
"hash": "eb168a0f19078a0db433186fd943b876"
},
"/Users/alex/Projects/ExLabWizard/design_specs/design_spec_sections/04_Backend_Architecture.md": {
- "mtime": 1780059735.2139034,
+ "mtime": 1780127492.6348472,
"hash": "173ccf8c606b35b0fe3d2fbd3dea6d94"
},
"/Users/alex/Projects/ExLabWizard/design_specs/design_spec_sections/11_Cache_Folders.md": {
@@ -2212,65 +2288,13 @@
"hash": "000f4d2b3ef0ea572a57e7e8b59d6507"
},
"/Users/alex/Projects/ExLabWizard/design_specs/design_spec_sections/09_Configuration_File.md": {
- "mtime": 1780059065.9947093,
+ "mtime": 1780127492.6357927,
"hash": "bb6bd4fb6c3e4ac7ef70579b93e4a43d"
},
"/Users/alex/Projects/ExLabWizard/graphify-out/memory/query_20260529_232003_how_are_the_example_equipment__projects__run_folde.md": {
"mtime": 1780096803.6951628,
"hash": "ec3f6d9ef1d6e34e709a1264cd6a3e6d"
},
- "/Users/alex/Projects/ExLabWizard/phase4-toggle-element-iter2.png": {
- "mtime": 1780103437.422997,
- "hash": "0de7de983e932887e2ac47e53fefbedd"
- },
- "/Users/alex/Projects/ExLabWizard/nas-verify-connected.png": {
- "mtime": 1780054073.0531566,
- "hash": "d4b60a8c2b74a5d54f88076563e47f26"
- },
- "/Users/alex/Projects/ExLabWizard/phase4-iter5-popover-open.png": {
- "mtime": 1780104362.4543195,
- "hash": "b00bdf96e4d57116df16f503260b9140"
- },
- "/Users/alex/Projects/ExLabWizard/phase4-iter2-toggle.png": {
- "mtime": 1780103426.8827293,
- "hash": "47af9a16b2fc902ff0c30c59fec7f30a"
- },
- "/Users/alex/Projects/ExLabWizard/phase4-after-file-selected.png": {
- "mtime": 1780102892.6410756,
- "hash": "1be2e86ab0dd67895fd4870431bc3775"
- },
- "/Users/alex/Projects/ExLabWizard/phase4-iter4-header-left.png": {
- "mtime": 1780104093.274454,
- "hash": "95d40b075ca71a7d5f9da06c800c613a"
- },
- "/Users/alex/Projects/ExLabWizard/phase4-toggle-element.png": {
- "mtime": 1780103327.1303482,
- "hash": "3b331550f3ab4defc2dea7fac5f69f30"
- },
- "/Users/alex/Projects/ExLabWizard/phase4-iter5-popover-closed.png": {
- "mtime": 1780104381.3889573,
- "hash": "678fd9f64ac2fcfdf549c55c28cc12a8"
- },
- "/Users/alex/Projects/ExLabWizard/phase4-before-no-file-selected.png": {
- "mtime": 1780102878.5206833,
- "hash": "b74c23e9ed3602c70dc9fe1e170d4688"
- },
- "/Users/alex/Projects/ExLabWizard/phase4-iter3-theme-toggle-overflow.png": {
- "mtime": 1780103826.583603,
- "hash": "0baab2fd481ac1e86b1fdf3a50a1fa27"
- },
- "/Users/alex/Projects/ExLabWizard/nas-verify-01-main.png": {
- "mtime": 1780054073.0511315,
- "hash": "a075f0118806caabb5cea4e8cb5be6fe"
- },
- "/Users/alex/Projects/ExLabWizard/phase4-iter1-toggle-and-highlight.png": {
- "mtime": 1780103289.0490608,
- "hash": "1bc85b4ee40d7e021646f37127131b3d"
- },
- "/Users/alex/Projects/ExLabWizard/phase4-tombstone-file-selected.png": {
- "mtime": 1780102913.7540896,
- "hash": "270ddeb93b8bd5c4f72e0a1d2cd8d3f4"
- },
"/Users/alex/Projects/ExLabWizard/docs/source/_static/screenshots/08_problems/01_initial.png": {
"mtime": 1779316926.8585918,
"hash": "cca8c2da2f99b78ba6f0545c88362d0e"
diff --git a/tests/e2e/test_flow_06_problems.py b/tests/e2e/test_flow_06_problems.py
index 7b5430e..60d1b0d 100644
--- a/tests/e2e/test_flow_06_problems.py
+++ b/tests/e2e/test_flow_06_problems.py
@@ -13,6 +13,8 @@
from __future__ import annotations
+from playwright.sync_api import expect
+
from tests.e2e.page_objects.problems_page import ProblemsPage
@@ -25,17 +27,16 @@ def test_flow_06_problems(page, server_url) -> None:
problems.row(0).wait_for(state="visible", timeout=5_000)
# Initial state is Active and the override CTA is rendered.
- assert "Active" in problems.row_state(0).inner_text()
+ expect(problems.row_state(0)).to_contain_text("Active", timeout=5_000)
problems.row_override(0).click()
page.wait_for_load_state("networkidle")
# State flips to Override active (the row state label is the source
# of truth -- it includes the words "Override active").
- problems.row_state(0).wait_for(state="visible", timeout=5_000)
- assert "Override active" in problems.row_state(0).inner_text()
+ expect(problems.row_state(0)).to_contain_text("Override active", timeout=5_000)
# Revoke flips the state back to Active.
problems.row_revoke(0).wait_for(state="visible", timeout=5_000)
problems.row_revoke(0).click()
page.wait_for_load_state("networkidle")
problems.row(0).wait_for(state="visible", timeout=5_000)
- assert "Active" in problems.row_state(0).inner_text()
+ expect(problems.row_state(0)).to_contain_text("Active", timeout=5_000)
diff --git a/tests/integration/test_nas_sync.py b/tests/integration/test_nas_sync.py
index 0af0c62..262383a 100644
--- a/tests/integration/test_nas_sync.py
+++ b/tests/integration/test_nas_sync.py
@@ -14,11 +14,9 @@
from __future__ import annotations
-import asyncio
import os
import shutil
import stat
-from collections.abc import Callable
from pathlib import Path
import pytest
@@ -47,6 +45,7 @@
from exlab_wizard.sync.nas_client import NASSyncClient
from exlab_wizard.sync.queue import SyncJobRow, SyncJobState
from exlab_wizard.validator.engine import Validator
+from tests.unit.sync._helpers import wait_for_job_state, wait_until
class _StubKeyring:
@@ -137,26 +136,6 @@ async def _populate_run(local_root: Path) -> Path:
return run_dir
-async def _wait_for_state(
- queue_get: Callable[[str], asyncio.Future[SyncJobRow | None]],
- job_id: str,
- targets: set[SyncJobState],
- *,
- timeout_s: float = 8.0,
- poll_s: float = 0.05,
-) -> SyncJobRow:
- """Poll ``queue.get_by_id`` until ``state`` is in ``targets`` or timeout."""
- elapsed = 0.0
- while elapsed < timeout_s:
- row = await queue_get(job_id)
- if row is not None and row.state in targets:
- return row
- await asyncio.sleep(poll_s)
- elapsed += poll_s
- msg = f"job {job_id} never reached {targets!r}"
- raise AssertionError(msg)
-
-
async def test_full_happy_path_via_stub_rclone(
stub_binaries_on_path: Path,
tmp_path: Path,
@@ -208,8 +187,8 @@ async def test_full_happy_path_via_stub_rclone(
# The worker should drive through to VERIFIED + CLEANED (since
# the test config sets min_verify_passes=1 and min_age_hours=0).
- row = await _wait_for_state(
- client._queue.get_by_id,
+ row = await wait_for_job_state(
+ client,
handle.job_id,
{SyncJobState.CLEANED, SyncJobState.CLEANUP_ELIGIBLE, SyncJobState.VERIFIED},
)
@@ -295,7 +274,7 @@ async def test_auth_error_terminates_failed(
await client.init()
try:
handle = await client.enqueue(run_dir)
- row = await _wait_for_state(client._queue.get_by_id, handle.job_id, {SyncJobState.FAILED})
+ row = await wait_for_job_state(client, handle.job_id, {SyncJobState.FAILED})
assert row.state is SyncJobState.FAILED
finally:
await client.close()
@@ -406,8 +385,8 @@ async def _lsjson(run: Path) -> RemoteManifest:
try:
handle = await client.enqueue(run_dir)
assert handle.state == HandleState.QUEUED
- row = await _wait_for_state(
- client._queue.get_by_id,
+ row = await wait_for_job_state(
+ client,
handle.job_id,
{SyncJobState.VERIFIED, SyncJobState.CLEANUP_ELIGIBLE, SyncJobState.CLEANED},
)
@@ -474,8 +453,8 @@ async def _check(local: Path, *, files_from: Path) -> CheckResult:
await client.init()
try:
handle = await client.enqueue(run_dir)
- row = await _wait_for_state(
- client._queue.get_by_id,
+ row = await wait_for_job_state(
+ client,
handle.job_id,
{SyncJobState.CLEANUP_ELIGIBLE},
)
@@ -536,19 +515,26 @@ async def test_poller_per_file_enqueue_drives_to_synced_state(
assert enqueued == [run_dir]
# The worker drives the per-file job through to VERIFIED.
- async def _by_run_path(_ignored: str) -> SyncJobRow | None:
- return await client._queue.get_by_run_path(run_dir)
-
- row = await _wait_for_state(
- _by_run_path,
- "",
- {SyncJobState.VERIFIED, SyncJobState.CLEANUP_ELIGIBLE, SyncJobState.CLEANED},
- )
- assert row.state in {
+ targets = {
SyncJobState.VERIFIED,
SyncJobState.CLEANUP_ELIGIBLE,
SyncJobState.CLEANED,
}
+ captured: dict[str, SyncJobRow] = {}
+
+ async def _reached_target() -> bool:
+ row = await client._queue.get_by_run_path(run_dir)
+ if row is not None and row.state in targets:
+ captured["row"] = row
+ return True
+ return False
+
+ await wait_until(
+ _reached_target,
+ message=f"run {run_dir} never reached {targets!r}",
+ )
+ row = captured["row"]
+ assert row.state in targets
assert row.files == ("data.bin",)
# sync_state.json records the verified file.
@@ -623,14 +609,14 @@ async def test_poller_to_cleanup_honors_keep_local_and_stamps_cleared(
enqueued = await poller.poll_once(now_monotonic=cfg.sync.quiescence_minutes * 60 + 1.0)
assert enqueued == [run_dir]
- async def _by_run_path(_ignored: str) -> SyncJobRow | None:
- return await client._queue.get_by_run_path(run_dir)
-
# The worker drives the job through verify into the cleanup states.
- await _wait_for_state(
- _by_run_path,
- "",
- {SyncJobState.CLEANED},
+ async def _reached_cleaned() -> bool:
+ row = await client._queue.get_by_run_path(run_dir)
+ return row is not None and row.state is SyncJobState.CLEANED
+
+ await wait_until(
+ _reached_cleaned,
+ message=f"run {run_dir} never reached CLEANED",
)
# The keep_local file survives; the other data file is removed.
diff --git a/tests/unit/sync/_helpers.py b/tests/unit/sync/_helpers.py
index e21550d..186839c 100644
--- a/tests/unit/sync/_helpers.py
+++ b/tests/unit/sync/_helpers.py
@@ -25,9 +25,12 @@
from __future__ import annotations
+import asyncio
+import time
from collections.abc import Awaitable, Callable
from datetime import UTC, datetime
from pathlib import Path
+from typing import Any
from exlab_wizard.config.models import EquipmentConfig
from exlab_wizard.constants import CACHE_DIR_NAME
@@ -39,9 +42,72 @@
"local_check_factory",
"local_lsjson_factory",
"missing_one_lsjson_factory",
+ "wait_for_job_state",
+ "wait_until",
]
+# A generous wall-clock ceiling: irrelevant when the worker is responsive,
+# but large enough that a loaded CI runner never trips it spuriously.
+_DEFAULT_WAIT_TIMEOUT_S = 30.0
+_DEFAULT_POLL_INTERVAL_S = 0.02
+
+
+async def wait_until(
+ predicate: Callable[[], Awaitable[bool]],
+ *,
+ timeout: float = _DEFAULT_WAIT_TIMEOUT_S, # noqa: ASYNC109 - wall-clock budget, not an asyncio.timeout cancel scope
+ interval: float = _DEFAULT_POLL_INTERVAL_S,
+ message: str = "condition not met within timeout",
+) -> None:
+ """Await until ``predicate()`` returns True, bounded by wall-clock ``timeout``.
+
+ Replaces fixed-iteration busy-poll loops in the sync tests: the budget is
+ a real time ceiling (default 30s) rather than a magic iteration count, so a
+ slow/loaded worker thread cannot trip a false failure while a responsive one
+ still returns in milliseconds. Raises ``AssertionError(message)`` on timeout.
+ """
+ deadline = time.monotonic() + timeout
+ while True:
+ if await predicate():
+ return
+ if time.monotonic() >= deadline:
+ raise AssertionError(message)
+ await asyncio.sleep(interval)
+
+
+async def wait_for_job_state(
+ client: Any,
+ job_id: str,
+ target: set[Any],
+ *,
+ timeout: float = _DEFAULT_WAIT_TIMEOUT_S, # noqa: ASYNC109 - wall-clock budget, not an asyncio.timeout cancel scope
+ interval: float = _DEFAULT_POLL_INTERVAL_S,
+) -> Any:
+ """Return the queue row once ``row.state`` is in ``target`` (wall-clock bounded).
+
+ Thin loop over the most common sync-test shape: polling
+ ``client._queue.get_by_id(job_id)`` until the job reaches one of the
+ ``target`` states. Returns the matching row; raises ``AssertionError``
+ (naming the last observed state) on timeout. Like :func:`wait_until`, the
+ budget is a real wall-clock ceiling rather than a fixed iteration count, so
+ a slow/loaded worker thread cannot trip a false failure.
+ """
+ deadline = time.monotonic() + timeout
+ last_state = None
+ while True:
+ row = await client._queue.get_by_id(job_id)
+ if row is not None:
+ last_state = row.state
+ if row.state in target:
+ return row
+ if time.monotonic() >= deadline:
+ raise AssertionError(
+ f"job {job_id} never reached {target}; last observed state={last_state}"
+ )
+ await asyncio.sleep(interval)
+
+
def _read_files_from(files_from: Path | None) -> tuple[str, ...]:
"""Read run-relative paths from a ``--files-from`` tempfile."""
if files_from is None:
diff --git a/tests/unit/sync/test_nas_client.py b/tests/unit/sync/test_nas_client.py
index 0e71acc..ab4deb1 100644
--- a/tests/unit/sync/test_nas_client.py
+++ b/tests/unit/sync/test_nas_client.py
@@ -52,6 +52,8 @@
from tests.unit.sync._helpers import (
local_lsjson_factory,
missing_one_lsjson_factory,
+ wait_for_job_state,
+ wait_until,
)
# ---------------------------------------------------------------------------
@@ -289,13 +291,7 @@ async def test_retry_resets_failed_to_queued(tmp_path: Path, writer: CreationWri
try:
handle = await client.enqueue(run_dir)
# Wait until the worker has marked the job as FAILED.
- for _ in range(200):
- row = await client._queue.get_by_id(handle.job_id)
- if row is not None and row.state is SyncJobState.FAILED:
- break
- await asyncio.sleep(0.02)
- else:
- pytest.fail("worker did not transition to FAILED in time")
+ await wait_for_job_state(client, handle.job_id, {SyncJobState.FAILED})
await client.retry(handle.job_id)
row = await client._queue.get_by_id(handle.job_id)
@@ -356,17 +352,15 @@ async def test_worker_drives_to_verified_and_marks_synced(
await client.init()
try:
handle = await client.enqueue(run_dir)
- for _ in range(300):
- row = await client._queue.get_by_id(handle.job_id)
- if row is not None and row.state in {
+ await wait_for_job_state(
+ client,
+ handle.job_id,
+ {
SyncJobState.VERIFIED,
SyncJobState.CLEANUP_ELIGIBLE,
SyncJobState.CLEANED,
- }:
- break
- await asyncio.sleep(0.02)
- else:
- pytest.fail("worker did not reach VERIFIED in time")
+ },
+ )
creation_path = run_dir / CACHE_DIR_NAME / CREATION_JSON_NAME
decoded = msgspec_json.decode(creation_path.read_bytes(), type=CreationJson)
assert decoded.sync_status == "synced"
@@ -412,17 +406,15 @@ async def _check_should_not_run(local: Path, *, files_from: Path):
await client.init()
try:
handle = await client.enqueue(run_dir, ["data.bin"])
- for _ in range(400):
- row = await client._queue.get_by_id(handle.job_id)
- if row is not None and row.state in {
+ await wait_for_job_state(
+ client,
+ handle.job_id,
+ {
SyncJobState.VERIFIED,
SyncJobState.CLEANUP_ELIGIBLE,
SyncJobState.CLEANED,
- }:
- break
- await asyncio.sleep(0.01)
- else:
- pytest.fail("worker did not reconcile to VERIFIED via lsjson")
+ },
+ )
# The data file is credited in sync_state.json from the lsjson match.
state = await sync_state.read(run_dir)
@@ -466,14 +458,16 @@ async def test_routine_reconcile_requeues_when_remote_file_missing(
await client.init()
try:
handle = await client.enqueue(run_dir, ["data.bin", "other.bin"])
+
# The credited file lands in sync_state; the job never reaches VERIFIED.
- for _ in range(200):
+ async def _data_credited() -> bool:
state = await sync_state.read(run_dir)
- if "data.bin" in state.files and state.files["data.bin"].verified_at:
- break
- await asyncio.sleep(0.01)
- else:
- pytest.fail("data.bin was never credited from the partial listing")
+ return "data.bin" in state.files and bool(state.files["data.bin"].verified_at)
+
+ await wait_until(
+ _data_credited,
+ message="data.bin was never credited from the partial listing",
+ )
# The job keeps cycling QUEUED -> RUNNING -> AWAITING_VERIFY ->
# QUEUED because "other.bin" never reconciles; it must never reach a
@@ -508,13 +502,7 @@ async def test_worker_terminal_failed_on_auth_error(tmp_path: Path, writer: Crea
await client.init()
try:
handle = await client.enqueue(run_dir)
- for _ in range(200):
- row = await client._queue.get_by_id(handle.job_id)
- if row is not None and row.state is SyncJobState.FAILED:
- break
- await asyncio.sleep(0.02)
- else:
- pytest.fail("worker did not reach FAILED on auth error")
+ await wait_for_job_state(client, handle.job_id, {SyncJobState.FAILED})
finally:
await client.close()
@@ -537,13 +525,7 @@ async def test_enqueue_existing_failed_resets_to_queued(
await client.init()
try:
handle = await client.enqueue(run_dir)
- for _ in range(200):
- row = await client._queue.get_by_id(handle.job_id)
- if row is not None and row.state is SyncJobState.FAILED:
- break
- await asyncio.sleep(0.02)
- else:
- pytest.fail("worker did not reach FAILED")
+ await wait_for_job_state(client, handle.job_id, {SyncJobState.FAILED})
# Now the same enqueue call should reset to QUEUED.
handle2 = await client.enqueue(run_dir)
assert handle2.state == HandleState.QUEUED
@@ -699,13 +681,7 @@ async def test_enqueue_requeues_terminal_job_with_new_files(
await client.init()
try:
handle = await client.enqueue(run_dir, ["data.bin"])
- for _ in range(200):
- row = await client._queue.get_by_id(handle.job_id)
- if row is not None and row.state is SyncJobState.FAILED:
- break
- await asyncio.sleep(0.02)
- else:
- pytest.fail("worker did not reach FAILED")
+ await wait_for_job_state(client, handle.job_id, {SyncJobState.FAILED})
# Re-enqueue with a new subset -> re-armed QUEUED carrying the new files.
handle2 = await client.enqueue(run_dir, ["other.bin"])
assert handle2.state == HandleState.QUEUED
@@ -985,14 +961,16 @@ async def test_drive_job_bandwidth_comes_from_nas_block(
await client.init()
try:
await client.enqueue(run_dir)
+
# Wait for the worker to complete at least the push step (recorded
# bwlimit is set before the push call in _drive_job).
- for _ in range(200):
- if recorded:
- break
- await asyncio.sleep(0.02)
- else:
- pytest.fail("worker did not invoke the push callable in time")
+ async def _push_recorded() -> bool:
+ return bool(recorded)
+
+ await wait_until(
+ _push_recorded,
+ message="worker did not invoke the push callable in time",
+ )
finally:
await client.close()
diff --git a/tests/unit/sync/test_nas_client_extra.py b/tests/unit/sync/test_nas_client_extra.py
index 6a7cf74..5399a9f 100644
--- a/tests/unit/sync/test_nas_client_extra.py
+++ b/tests/unit/sync/test_nas_client_extra.py
@@ -14,8 +14,6 @@
from pathlib import Path
from typing import Any
-import pytest
-
from exlab_wizard.api.schemas import (
CreationJson,
LimsProjectBlock,
@@ -44,6 +42,8 @@
local_check_factory,
local_lsjson_factory,
missing_one_lsjson_factory,
+ wait_for_job_state,
+ wait_until,
)
@@ -150,17 +150,15 @@ async def _push(
try:
handle = await client.enqueue(run_dir)
# Wait for the second pass to land on a non-error state.
- for _ in range(400):
- row = await client._queue.get_by_id(handle.job_id)
- if row is not None and row.state in {
+ await wait_for_job_state(
+ client,
+ handle.job_id,
+ {
SyncJobState.VERIFIED,
SyncJobState.CLEANUP_ELIGIBLE,
SyncJobState.CLEANED,
- }:
- break
- await asyncio.sleep(0.01)
- else:
- pytest.fail("expected eventual VERIFIED after retry")
+ },
+ )
# Two transport calls: one mismatch, one success.
assert call_count["n"] >= 2
finally:
@@ -189,13 +187,7 @@ async def _push(
await client.init()
try:
handle = await client.enqueue(run_dir)
- for _ in range(400):
- row = await client._queue.get_by_id(handle.job_id)
- if row is not None and row.state is SyncJobState.FAILED:
- break
- await asyncio.sleep(0.01)
- else:
- pytest.fail("expected terminal FAILED on second hash mismatch")
+ await wait_for_job_state(client, handle.job_id, {SyncJobState.FAILED})
finally:
await client.close()
@@ -229,13 +221,7 @@ async def _push(
await client.init()
try:
handle = await client.enqueue(run_dir)
- for _ in range(400):
- row = await client._queue.get_by_id(handle.job_id)
- if row is not None and row.state is SyncJobState.CLEANED:
- break
- await asyncio.sleep(0.01)
- else:
- pytest.fail("expected CLEANED state")
+ await wait_for_job_state(client, handle.job_id, {SyncJobState.CLEANED})
# Full directory removal: the run directory itself is gone.
assert not run_dir.exists()
finally:
@@ -266,13 +252,7 @@ async def _push(
await client.init()
try:
handle = await client.enqueue(run_dir)
- for _ in range(400):
- row = await client._queue.get_by_id(handle.job_id)
- if row is not None and row.state is SyncJobState.CLEANED:
- break
- await asyncio.sleep(0.01)
- else:
- pytest.fail("expected CLEANED state")
+ await wait_for_job_state(client, handle.job_id, {SyncJobState.CLEANED})
# Data files removed; cache subtree retained.
assert (run_dir / CACHE_DIR_NAME).exists()
assert not (run_dir / "data.bin").exists()
@@ -306,13 +286,7 @@ async def _push(
try:
handle = await client.enqueue(run_dir)
# Wait for VERIFIED.
- for _ in range(400):
- row = await client._queue.get_by_id(handle.job_id)
- if row is not None and row.state is SyncJobState.VERIFIED:
- break
- await asyncio.sleep(0.01)
- else:
- pytest.fail("expected VERIFIED")
+ await wait_for_job_state(client, handle.job_id, {SyncJobState.VERIFIED})
# The run dir is still intact.
assert run_dir.exists()
assert (run_dir / "data.bin").exists()
@@ -344,13 +318,7 @@ async def _push(
await client.init()
try:
handle = await client.enqueue(run_dir)
- for _ in range(400):
- row = await client._queue.get_by_id(handle.job_id)
- if row is not None and row.state is SyncJobState.CLEANUP_ELIGIBLE:
- break
- await asyncio.sleep(0.01)
- else:
- pytest.fail("expected CLEANUP_ELIGIBLE")
+ await wait_for_job_state(client, handle.job_id, {SyncJobState.CLEANUP_ELIGIBLE})
# Files retained because min_verify_passes wasn't met.
assert (run_dir / "data.bin").exists()
finally:
@@ -382,13 +350,7 @@ async def _push(
await client.init()
try:
handle = await client.enqueue(run_dir)
- for _ in range(400):
- row = await client._queue.get_by_id(handle.job_id)
- if row is not None and row.state is SyncJobState.CLEANUP_ELIGIBLE:
- break
- await asyncio.sleep(0.01)
- else:
- pytest.fail("expected CLEANUP_ELIGIBLE on remote stat fail")
+ await wait_for_job_state(client, handle.job_id, {SyncJobState.CLEANUP_ELIGIBLE})
# Files retained because remote_stat failed.
assert (run_dir / "data.bin").exists()
finally:
@@ -555,13 +517,7 @@ async def _push(
await client.init()
try:
handle = await client.enqueue(run_dir)
- for _ in range(400):
- row = await client._queue.get_by_id(handle.job_id)
- if row is not None and row.state is SyncJobState.CLEANED:
- break
- await asyncio.sleep(0.01)
- else:
- pytest.fail("expected CLEANED state")
+ await wait_for_job_state(client, handle.job_id, {SyncJobState.CLEANED})
finally:
await client.close()
@@ -600,13 +556,7 @@ async def _push(
await client.init()
try:
handle = await client.enqueue(run_dir)
- for _ in range(400):
- row = await client._queue.get_by_id(handle.job_id)
- if row is not None and row.state is SyncJobState.CLEANED:
- break
- await asyncio.sleep(0.01)
- else:
- pytest.fail("expected CLEANED state")
+ await wait_for_job_state(client, handle.job_id, {SyncJobState.CLEANED})
# The keep_local file survives; the other data file is removed.
assert (run_dir / "data.bin").exists()
assert not (run_dir / "subdir" / "child.txt").exists()
@@ -650,13 +600,7 @@ async def _push(
await client.init()
try:
handle = await client.enqueue(run_dir, files=["data.bin"])
- for _ in range(400):
- row = await client._queue.get_by_id(handle.job_id)
- if row is not None and row.state is SyncJobState.VERIFIED:
- break
- await asyncio.sleep(0.01)
- else:
- pytest.fail("expected VERIFIED")
+ await wait_for_job_state(client, handle.job_id, {SyncJobState.VERIFIED})
# Give the worker a beat -- cleanup must NOT advance the job.
await asyncio.sleep(0.1)
row = await client._queue.get_by_id(handle.job_id)
@@ -702,13 +646,7 @@ async def _slow(
import shutil
shutil.rmtree(run_dir)
- for _ in range(400):
- row = await client._queue.get_by_id(handle.job_id)
- if row is not None and row.state is SyncJobState.FAILED:
- break
- await asyncio.sleep(0.01)
- else:
- pytest.fail("expected FAILED on vanished local")
+ await wait_for_job_state(client, handle.job_id, {SyncJobState.FAILED})
finally:
await client.close()
@@ -761,13 +699,7 @@ async def _push(_local: Path, *, bwlimit_kibps: int | None, files_from: object =
await client.init()
try:
handle = await client.enqueue(run_dir)
- for _ in range(400):
- row = await client._queue.get_by_id(handle.job_id)
- if row is not None and row.state is SyncJobState.CLEANED:
- break
- await asyncio.sleep(0.01)
- else:
- pytest.fail("expected CLEANED after a passing hash-gate")
+ await wait_for_job_state(client, handle.job_id, {SyncJobState.CLEANED})
# The hash-gate ran before the irreversible delete; data is gone.
assert gate_calls["n"] >= 1
assert not (run_dir / "data.bin").exists()
@@ -799,13 +731,7 @@ async def _push(_local: Path, *, bwlimit_kibps: int | None, files_from: object =
await client.init()
try:
handle = await client.enqueue(run_dir)
- for _ in range(400):
- row = await client._queue.get_by_id(handle.job_id)
- if row is not None and row.state is SyncJobState.CLEANUP_ELIGIBLE:
- break
- await asyncio.sleep(0.01)
- else:
- pytest.fail("expected CLEANUP_ELIGIBLE on a failing hash-gate")
+ await wait_for_job_state(client, handle.job_id, {SyncJobState.CLEANUP_ELIGIBLE})
# The local data survives because the integrity gate did not pass.
await asyncio.sleep(0.05)
row = await client._queue.get_by_id(handle.job_id)
@@ -868,13 +794,7 @@ async def _push(_local: Path, *, bwlimit_kibps: int | None, files_from: object =
await client.init()
try:
handle = await client.enqueue(run_dir)
- for _ in range(400):
- row = await client._queue.get_by_id(handle.job_id)
- if row is not None and row.state is SyncJobState.CLEANUP_ELIGIBLE:
- break
- await asyncio.sleep(0.01)
- else:
- pytest.fail("expected CLEANUP_ELIGIBLE when the cleanup existence probe fails")
+ await wait_for_job_state(client, handle.job_id, {SyncJobState.CLEANUP_ELIGIBLE})
# The probe ran (a second lsjson call) and the local data survives.
await asyncio.sleep(0.05)
row = await client._queue.get_by_id(handle.job_id)
@@ -932,13 +852,14 @@ async def _push(
await client.init()
try:
handle = await client.enqueue(run_dir)
- for _ in range(200):
+
+ async def _attempted() -> bool:
row = await client._queue.get_by_id(handle.job_id)
- if row is not None and row.attempts >= 1:
- break
- await asyncio.sleep(0.01)
- else:
- pytest.fail("network error never increased attempts")
+ return row is not None and row.attempts >= 1
+
+ await wait_until(_attempted, message="network error never increased attempts")
+ row = await client._queue.get_by_id(handle.job_id)
+ assert row is not None
assert row.last_error == "network"
assert row.next_attempt_at # backoff scheduled
finally:
@@ -1060,15 +981,18 @@ async def _push(_local: Path, *, bwlimit_kibps: int | None, files_from: object =
await client.init()
try:
handle = await client.enqueue(run_dir, ["data.bin", "subdir/child.txt"])
+
# data.bin reconciles on every sweep; the batch re-queues because
# child.txt never reconciles. Wait until data.bin is credited.
- for _ in range(600):
+ async def _data_credited() -> bool:
state = await sync_state.read(run_dir)
- if "data.bin" in state.files and state.files["data.bin"].verified_at:
- break
- await asyncio.sleep(0.01)
- else:
- pytest.fail("expected data.bin to be credited from the partial listing")
+ return "data.bin" in state.files and bool(state.files["data.bin"].verified_at)
+
+ await wait_until(
+ _data_credited,
+ message="expected data.bin to be credited from the partial listing",
+ )
+ state = await sync_state.read(run_dir)
# data.bin reconciled: it carries a synced_signature + verified_at.
assert state.files["data.bin"].synced_signature is not None
@@ -1121,17 +1045,15 @@ async def _push(_local: Path, *, bwlimit_kibps: int | None, files_from: object =
await client.init()
try:
handle = await client.enqueue(run_dir, ["data.bin", "subdir/child.txt"])
- for _ in range(400):
- row = await client._queue.get_by_id(handle.job_id)
- if row is not None and row.state in {
+ await wait_for_job_state(
+ client,
+ handle.job_id,
+ {
SyncJobState.VERIFIED,
SyncJobState.CLEANUP_ELIGIBLE,
SyncJobState.CLEANED,
- }:
- break
- await asyncio.sleep(0.01)
- else:
- pytest.fail("expected eventual VERIFIED")
+ },
+ )
state = await sync_state.read(run_dir)
assert {"data.bin", "subdir/child.txt"} <= set(state.files)
for rec in state.files.values():