From 7c3f27d254c024375602c92eda3aebb7aa5aeb1c Mon Sep 17 00:00:00 2001 From: Asher Norland Date: Wed, 25 Feb 2026 16:46:06 -0800 Subject: [PATCH 1/2] Update AGENTS.md --- AGENTS.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/AGENTS.md b/AGENTS.md index b442c82..5b88636 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -1,3 +1,3 @@ # AGENTS.md -This repository doesn't contain any agent specific instructions other than its README.md and its linked resources. +This repository doesn't contain any agent specific instructions other than its [README.md](README.md) and its linked resources. From 25bb03f2ae59f01b8a3c2e1bb7606374c3a0c422 Mon Sep 17 00:00:00 2001 From: Asher Norland Date: Wed, 25 Feb 2026 18:42:44 -0800 Subject: [PATCH 2/2] Update Chore --- pdm.lock | 8 ++++---- pyproject.toml | 2 +- .../application/screen/action_card.py | 18 +++++++++++++++++- 3 files changed, 22 insertions(+), 6 deletions(-) diff --git a/pdm.lock b/pdm.lock index e73f74b..7176831 100644 --- a/pdm.lock +++ b/pdm.lock @@ -5,7 +5,7 @@ groups = ["default", "build", "dev", "lint", "test"] strategy = ["inherit_metadata"] lock_version = "4.5.0" -content_hash = "sha256:7c9f1e0616bf21c1674750564d9b957eac025cc24306614309b43c098f5ddffb" +content_hash = "sha256:a11fee70f025f3a84c850cd7cc7fd3629253f7883281b29ce63f141a6147c4f3" [[metadata.targets]] requires_python = ">=3.14,<3.15" @@ -336,7 +336,7 @@ files = [ [[package]] name = "porringer" -version = "0.2.1.dev51" +version = "0.2.1.dev52" requires_python = ">=3.14" summary = "" groups = ["default"] @@ -349,8 +349,8 @@ dependencies = [ "userpath>=1.9.2", ] files = [ - {file = "porringer-0.2.1.dev51-py3-none-any.whl", hash = "sha256:9e41486847a583a2d731db6f1f62d97930577757ca09422022e3d82c63c964aa"}, - {file = "porringer-0.2.1.dev51.tar.gz", hash = "sha256:a2ffe2da0bbc729ea5b052a5b46080014cea079fb665b9518b40ad6d65d6155e"}, + {file = "porringer-0.2.1.dev52-py3-none-any.whl", hash = "sha256:266c37fb3e338fe4186420db9dc0f30bc0642dc8bab1bb8c1804d366b9d74274"}, + {file = "porringer-0.2.1.dev52.tar.gz", hash = "sha256:84dddf11ecd20696f64ca5b16b27583bde79df6042a37a9c679d9029ba0b6bde"}, ] [[package]] diff --git a/pyproject.toml b/pyproject.toml index 446ddec..90c7ccf 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -14,7 +14,7 @@ requires-python = ">=3.14, <3.15" dependencies = [ "pyside6>=6.10.2", "packaging>=26.0", - "porringer>=0.2.1.dev51", + "porringer>=0.2.1.dev52", "qasync>=0.28.0", "velopack>=0.0.1442.dev64255", "typer>=0.24.1", diff --git a/synodic_client/application/screen/action_card.py b/synodic_client/application/screen/action_card.py index 100f336..9919424 100644 --- a/synodic_client/application/screen/action_card.py +++ b/synodic_client/application/screen/action_card.py @@ -297,6 +297,9 @@ def _build_top_row(self) -> QHBoxLayout: self._package_label = QLabel() self._package_label.setStyleSheet(ACTION_CARD_PACKAGE_STYLE) + self._package_label.setTextInteractionFlags( + Qt.TextInteractionFlag.TextSelectableByMouse, + ) top.addWidget(self._package_label) top.addStretch() @@ -327,6 +330,9 @@ def _build_description_row(self) -> QLabel: self._desc_label = QLabel() self._desc_label.setStyleSheet(ACTION_CARD_DESC_STYLE) self._desc_label.setWordWrap(True) + self._desc_label.setTextInteractionFlags( + Qt.TextInteractionFlag.TextSelectableByMouse, + ) return self._desc_label def _build_command_row(self) -> QWidget: @@ -377,9 +383,13 @@ def mousePressEvent(self, event: object) -> None: # noqa: N802 """Toggle the inline log body on click.""" if self._is_skeleton or not hasattr(self, '_log_output'): return - # Don't toggle the log when clicking the copy button + # Don't toggle the log when clicking interactive child widgets if hasattr(self, '_copy_btn') and self._copy_btn.underMouse(): return + if hasattr(self, '_package_label') and self._package_label.underMouse(): + return + if hasattr(self, '_desc_label') and self._desc_label.underMouse(): + return self._toggle_log() def _toggle_log(self) -> None: @@ -560,6 +570,12 @@ def set_check_result(self, result: SetupActionResult) -> None: self._status_label.setText(label) self._status_label.setStyleSheet(ACTION_CARD_STATUS_NEEDED) + # Surface diagnostic detail (e.g. SCM URL mismatch) as a tooltip + if result.message: + self._status_label.setToolTip(result.message) + else: + self._status_label.setToolTip('') + # Version column self._check_available_version = result.available_version if result.installed_version and result.available_version: