From e9f83a73ec1b9a6d70aca51107b382939eef18dc Mon Sep 17 00:00:00 2001 From: Nathan Zender Date: Fri, 24 Jul 2026 22:50:22 -0400 Subject: [PATCH 1/6] feat(frontend): bump @lab-sync/nuxt-common to ^0.2.3 The 0.2.x line adds the ShellRail and PageTitle shell components plus the shellRailTestIds helper, which the circuit-python device driver frontend template uses for the shared Lab Sync theming. 0.2.3 declares `@nuxt/ui >=4.10.0` and a non-optional `openapi-types >=12.1` peer dependency, so bump @nuxt/ui and add openapi-types as a dev dependency for driver projects. --- extensions/context.py | 5 +++-- template/frontend/package.json.jinja | 3 ++- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/extensions/context.py b/extensions/context.py index 63226f1dd..cd4489cb2 100644 --- a/extensions/context.py +++ b/extensions/context.py @@ -66,7 +66,7 @@ def hook( # noqa: PLR0915 # yes, this is a lot of statements, but it's all just context["pyrefly_version"] = ">=1.1.1" context["default_node_version"] = "24.11.1" - context["nuxt_ui_version"] = "^4.8.1" + context["nuxt_ui_version"] = "^4.10.0" context["nuxt_version"] = "^4.4.6" context["nuxt_icon_version"] = "^2.2.1" context["typescript_version"] = "^6.0.2" @@ -96,9 +96,10 @@ def hook( # noqa: PLR0915 # yes, this is a lot of statements, but it's all just context["vue_eslint_parser_version"] = "^10.4.0" context["happy_dom_version"] = "^20.10.1" context["node_kiota_bundle_version"] = "1.0.0-preview.103" - context["labsync_nuxt_common_version"] = "^0.1.4" + context["labsync_nuxt_common_version"] = "^0.2.3" context["tanstack_vue_table_version"] = "^8.21.3" context["unplugin_auto_import_version"] = "^21.0.0" + context["openapi_types_version"] = "^12.1.3" context["gha_checkout"] = "v6.0.2" context["gha_setup_python"] = "v6.2.0" diff --git a/template/frontend/package.json.jinja b/template/frontend/package.json.jinja index e4d4ec7a2..37463b1fd 100644 --- a/template/frontend/package.json.jinja +++ b/template/frontend/package.json.jinja @@ -71,7 +71,8 @@ "graphql": "^16.14.0", "graphql-tag": "^2.12.6",{% endraw %}{% endif %}{% raw %} "happy-dom": "{% endraw %}{{ happy_dom_version }}{% raw %}",{% endraw %}{% if frontend_uses_graphql %}{% raw %} - "mock-apollo-client": "^1.4.0",{% endraw %}{% endif %}{% raw %} + "mock-apollo-client": "^1.4.0",{% endraw %}{% endif %}{% if is_circuit_python_driver %}{% raw %} + "openapi-types": "{% endraw %}{{ openapi_types_version }}{% raw %}",{% endraw %}{% endif %}{% raw %} "playwright": "{% endraw %}{{ playwright_version }}{% raw %}", "playwright-core": "{% endraw %}{{ playwright_version }}{% raw %}", "postcss": "^8.5.14", From bf481db74e2cb464d7b413afd37acdb49210da20 Mon Sep 17 00:00:00 2001 From: Nathan Zender Date: Sat, 25 Jul 2026 20:00:33 -0400 Subject: [PATCH 2/6] chore: copier pull in base template --- .claude/skills/address-pr-comments/fetch-pr-comments.py | 3 +++ .config/.copier-answers.yml | 2 +- .../.claude/skills/address-pr-comments/fetch-pr-comments.py | 3 +++ 3 files changed, 7 insertions(+), 1 deletion(-) diff --git a/.claude/skills/address-pr-comments/fetch-pr-comments.py b/.claude/skills/address-pr-comments/fetch-pr-comments.py index c88b27aff..283a46a41 100755 --- a/.claude/skills/address-pr-comments/fetch-pr-comments.py +++ b/.claude/skills/address-pr-comments/fetch-pr-comments.py @@ -70,6 +70,7 @@ def gh_rest(*args: str) -> Any: # noqa: ANN401 — return type is genuinely unk ["gh", *call_args], # noqa: S607 — gh is expected on PATH capture_output=True, text=True, + encoding="utf-8", check=True, timeout=GH_TIMEOUT_SECONDS, ) @@ -91,6 +92,7 @@ def gh_graphql(query: str, variables: dict[str, str | int]) -> Any: # noqa: ANN args, capture_output=True, text=True, + encoding="utf-8", check=True, timeout=GH_TIMEOUT_SECONDS, ) @@ -105,6 +107,7 @@ def fetch_current_user_login() -> str: ["gh", "api", "user", "--jq", ".login"], # noqa: S607 — gh is expected on PATH capture_output=True, text=True, + encoding="utf-8", check=True, timeout=GH_TIMEOUT_SECONDS, ) diff --git a/.config/.copier-answers.yml b/.config/.copier-answers.yml index dbe1ebd31..a949c8145 100644 --- a/.config/.copier-answers.yml +++ b/.config/.copier-answers.yml @@ -1,5 +1,5 @@ # Changes here will be overwritten by Copier -_commit: v0.0.144 +_commit: v0.0.144-2-gf4568b34 _src_path: gh:LabAutomationAndScreening/copier-base-template.git copier_answers_directory: .config description: A web app that is hosted within a local intranet. Nuxt frontend, python diff --git a/template/.claude/skills/address-pr-comments/fetch-pr-comments.py b/template/.claude/skills/address-pr-comments/fetch-pr-comments.py index c88b27aff..283a46a41 100755 --- a/template/.claude/skills/address-pr-comments/fetch-pr-comments.py +++ b/template/.claude/skills/address-pr-comments/fetch-pr-comments.py @@ -70,6 +70,7 @@ def gh_rest(*args: str) -> Any: # noqa: ANN401 — return type is genuinely unk ["gh", *call_args], # noqa: S607 — gh is expected on PATH capture_output=True, text=True, + encoding="utf-8", check=True, timeout=GH_TIMEOUT_SECONDS, ) @@ -91,6 +92,7 @@ def gh_graphql(query: str, variables: dict[str, str | int]) -> Any: # noqa: ANN args, capture_output=True, text=True, + encoding="utf-8", check=True, timeout=GH_TIMEOUT_SECONDS, ) @@ -105,6 +107,7 @@ def fetch_current_user_login() -> str: ["gh", "api", "user", "--jq", ".login"], # noqa: S607 — gh is expected on PATH capture_output=True, text=True, + encoding="utf-8", check=True, timeout=GH_TIMEOUT_SECONDS, ) From cc00d9738dadd9941321c63cb5171d0e94b36d1a Mon Sep 17 00:00:00 2001 From: Nathan Zender Date: Sat, 25 Jul 2026 20:04:59 -0400 Subject: [PATCH 3/6] chore: copier pull --- .config/.copier-answers.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.config/.copier-answers.yml b/.config/.copier-answers.yml index a949c8145..dd013e8d3 100644 --- a/.config/.copier-answers.yml +++ b/.config/.copier-answers.yml @@ -1,5 +1,5 @@ # Changes here will be overwritten by Copier -_commit: v0.0.144-2-gf4568b34 +_commit: v0.0.144-3-ga3ab3bf3 _src_path: gh:LabAutomationAndScreening/copier-base-template.git copier_answers_directory: .config description: A web app that is hosted within a local intranet. Nuxt frontend, python From 7bb439dae939b4de785b9a0d1ea6676d5475886b Mon Sep 17 00:00:00 2001 From: Nathan Zender Date: Sat, 25 Jul 2026 20:21:35 -0400 Subject: [PATCH 4/6] chore: copier base pull --- .config/.copier-answers.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.config/.copier-answers.yml b/.config/.copier-answers.yml index dd013e8d3..4a7515707 100644 --- a/.config/.copier-answers.yml +++ b/.config/.copier-answers.yml @@ -1,5 +1,5 @@ # Changes here will be overwritten by Copier -_commit: v0.0.144-3-ga3ab3bf3 +_commit: v0.0.144-4-g87e1d30b _src_path: gh:LabAutomationAndScreening/copier-base-template.git copier_answers_directory: .config description: A web app that is hosted within a local intranet. Nuxt frontend, python From b57b518bb3588ce6aa352af4c45ebfc369bc6303 Mon Sep 17 00:00:00 2001 From: Nathan Zender Date: Sat, 25 Jul 2026 20:33:09 -0400 Subject: [PATCH 5/6] chore: pull from base --- .config/.copier-answers.yml | 2 +- extensions/context.py | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/.config/.copier-answers.yml b/.config/.copier-answers.yml index 4a7515707..8b8a438c5 100644 --- a/.config/.copier-answers.yml +++ b/.config/.copier-answers.yml @@ -1,5 +1,5 @@ # Changes here will be overwritten by Copier -_commit: v0.0.144-4-g87e1d30b +_commit: v0.0.144-5-g05ff7d7a _src_path: gh:LabAutomationAndScreening/copier-base-template.git copier_answers_directory: .config description: A web app that is hosted within a local intranet. Nuxt frontend, python diff --git a/extensions/context.py b/extensions/context.py index cd4489cb2..0d994e2a8 100644 --- a/extensions/context.py +++ b/extensions/context.py @@ -64,6 +64,7 @@ def hook( # noqa: PLR0915 # yes, this is a lot of statements, but it's all just context["python_faker_version"] = ">=40.35.0" context["mutmut_version"] = ">=3.6.0" context["pyrefly_version"] = ">=1.1.1" + context["vacuum_openapi_version"] = "0.30.0" context["default_node_version"] = "24.11.1" context["nuxt_ui_version"] = "^4.10.0" From 877e6c8a26721876e4d74f015db92afcfa6c0f31 Mon Sep 17 00:00:00 2001 From: Nathan Zender Date: Sat, 25 Jul 2026 20:41:12 -0400 Subject: [PATCH 6/6] chore: tag --- .config/.copier-answers.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.config/.copier-answers.yml b/.config/.copier-answers.yml index 8b8a438c5..e2d5615cc 100644 --- a/.config/.copier-answers.yml +++ b/.config/.copier-answers.yml @@ -1,5 +1,5 @@ # Changes here will be overwritten by Copier -_commit: v0.0.144-5-g05ff7d7a +_commit: v0.0.145 _src_path: gh:LabAutomationAndScreening/copier-base-template.git copier_answers_directory: .config description: A web app that is hosted within a local intranet. Nuxt frontend, python