Skip to content

Release: cross-app OS lane (system volume, lock session, IME state) v206-v208#435

Merged
JE-Chen merged 8 commits into
mainfrom
dev
Jun 25, 2026
Merged

Release: cross-app OS lane (system volume, lock session, IME state) v206-v208#435
JE-Chen merged 8 commits into
mainfrom
dev

Conversation

@JE-Chen

@JE-Chen JE-Chen commented Jun 25, 2026

Copy link
Copy Markdown
Member

Release — ROUND-15 cross-app OS lane (part 2)

Three new headless features, each with a pure/injectable-seam core, full 5-layer wiring (facade → AC_* executor → ac_* MCP → Script Builder), headless tests, and EN/Zh docs. All merged to dev with CI green first try and zero Codacy issues.

Also includes the prior static-analysis-backlog chore commits already on dev.

Package stays Qt-free; all new logic unit-tested without the OS via injected seams.

JE-Chen added 8 commits June 25, 2026 11:30
Resolve the open SonarCloud (193) and Codacy (3) findings:

- S1172 (141): accessibility backend ABC default methods now pass their
  args through to _unsupported(*context), so the explicit signatures
  required for fake-backend overrides (W0221) are kept without unused
  parameters.
- S1192 (13): extract duplicated literals to module constants
  (command_schema "Native UI" x67, placeholders, ".approvals", flow_editor
  submodule paths).
- Code smells: merge nested if (http_cassette), flatten nested ternaries
  (assertions, color_match), drop redundant FileNotFoundError (notifier),
  prune expired leases after iteration instead of list() copy
  (credential_broker), extract _signal_parts to cut cognitive complexity
  (element_scoring), unused locals -> _ (form_fields), valid NOSONAR
  syntax (stats), keep timeout param for 3.10 (webrtc_transport).
- Security S8707 (4): justify the CLI/operator-supplied paths
  (config_bundle, turn_config, host_service, stubs) — not a remote
  trust boundary.
- Tests: rename Image->pil_image, dict()->literal, comprehension->list(),
  drop gratuitous truthiness, reword code-like comments, guard the empty
  block, def instead of identity-check lambda, boto3 API names justified.
- Frontend: self->globalThis (sw.js), aria-labels on inputs, valid
  NOSONAR on the non-module top-level-await line.
- Codacy: guard QApplication create (W0106), nosemgrep on the protocol
  SHA-1 handshake and the local-CLI subprocess test.
…ysis-backlog

Clear SonarCloud + Codacy static-analysis backlog
Replace the blind media-key nudges with read-backable, absolute control
of the default output device (percent 0-100 + mute), behind an injectable
VolumeDriver seam so all logic is unit-tested without an audio device.
The default driver uses Windows Core Audio via the optional pycaw extra.
…e-batch

Add system_volume: absolute read/set master volume and mute
session_guard could only detect a locked session and raise; this adds
acting on the lock state — lock the box at the end of an unattended run,
block until a human unlocks it before resuming, and reduce a lock-state
sample stream to lock/unlock events. The lock action runs through an
injectable driver and the waits reuse session_guard's real probe with
injectable clock/sleep, so all logic is unit-tested without the OS.
…-batch

Add lock_session: lock the workstation and wait for unlock
Typing into a CJK field while the IME is composing corrupts entry — the
candidate text isn't committed, so reads return half-formed glyphs and the
next keystroke edits the composition. text_unicode is blind to this. Expose
the focused window's live composition/conversion state (Windows IMM32,
read-only) behind an injectable reader, with is_composing and a
wait_for_composition_commit gate, so flows wait for commit first.
Add ime_state: live IME composition state for safe CJK entry
@codacy-production

Copy link
Copy Markdown

Up to standards ✅

🟢 Issues 0 issues

Results:
0 new issues

View in Codacy

🟢 Metrics 128 complexity · 0 duplication

Metric Results
Complexity 128
Duplication 0

View in Codacy

NEW Get contextual insights on your PRs based on Codacy's metrics, along with PR and Jira context, without leaving GitHub. Enable AI reviewer
TIP This summary will be updated as you push new changes.

@JE-Chen JE-Chen merged commit 2506eba into main Jun 25, 2026
31 checks passed
@sonarqubecloud

Copy link
Copy Markdown

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant