Skip to content

Audit fixes: triggers and scheduler, small utilities, JWT and data checks; add AC_idempotency_release - #489

Merged
JE-Chen merged 87 commits into
mainfrom
feat/coverage-to-80
Sep 25, 2026
Merged

JE-Chen merged 87 commits into
mainfrom
feat/coverage-to-80

Conversation

@JE-Chen

@JE-Chen JE-Chen commented Sep 24, 2026

Copy link
Copy Markdown
Member

Follow-up to #486, which was merged at 8a35c39. Everything after that commit on this branch had no PR, so it never ran CI.

Fixes

  • Triggers and scheduler (6a453d5): trigger-engine start/stop is serialised. A malformed email header no longer stalls its mailbox. Mailbox names are quoted. Webhook verbs the server cannot answer are refused. A string max_runs is stored as an int. Corrupt .xlsx sources raise an action error.
  • Small utilities (436066d): implicit-SSL mail defaults to port 465. The profiler freezes at stop. Content-Length accepts digits only. The WebRunner bridge sends file_path. Failed notifications are reported.
  • Data checks (1100f7a): JWT expiry-second and base64url strictness. DAG errors stay in the framework family. Time-series, schema and similarity arguments are validated. Feature-flag serving falls back on malformed input.

Added

  • AC_idempotency_release (9954b3f, 50d3f64): the matching MCP tool ac_idempotency_release and a Script Builder command free an in-progress key whose work failed. This closes the Progress.md item. Measured counts are now 775 commands and 678 MCP tools.

Each fix has a regression test that fails on the previous commit. The full headless suite passes locally.

…ling its mailbox, quote mailbox names, refuse unanswerable webhook verbs, store max_runs as an int, contain corrupt workbooks
… only digit Content-Lengths, send WebRunner's file_path, report failed notifications
…ep DAG errors in the framework family, validate time-series, schema and similarity arguments, fall back on malformed flag serves
…whose work failed

The executor's named idempotency stores have no TTL, so outside the Python
API a key whose work raised stayed in_progress for the life of the process.
@codacy-production

codacy-production Bot commented Sep 24, 2026 •

Copy link
Copy Markdown

Up to standards ✅

🟢 Issues 0 issues

Results:
0 new issues

View in Codacy

🟢 Metrics 2223 complexity · 22 duplication

Metric Results
Complexity 2223
Duplication 22

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.

…s, honour ConfigField.env, follow dbt and CLDR, use MIME-typed A2A modes and the real UIA Value / RangeValue ids
…endpoints, split .po entries without blank lines, take CLDR plural operands, refuse host-bound file URIs, stop coturn and XML injection
…C 9535, read OCR field values below their label, list only hardware encoders that open, encode odd-sized frames
… malformed log record and failing notifier without the calls Codacy flags
… handshake key, fail transfers to no file, keep the encrypted recorder's count honest, let a failed mic start again, keep host voice when viewer audio is off
…g, route sampling through the connection-aware path, look once at timeout 0, stop USB credit and claim races, let callback assertions propagate, keep device errors in the framework family
…nst the endpoint's direction, release interfaces before reattaching drivers, keep agent runs alive on malformed decisions, and bring USB/IP, self-heal and anchor errors into the family
…ayer's layout, contain audio device errors, clear a reused viewer's closed flag, close mDNS and the asyncio bridge on failure
…ze wlr-randr outputs by rotation and scale, report a malformed capture override as a screen error
…refuse unbound X keys, skip recorded wheel events, press and release macOS media keys, re-enable the macOS tap through its own handle
… the AutoControlException family, and make the family gate see builtin bases
…the platform audit tests that only the Linux and macOS runners execute
…-weight grounding votes, read table cells in reading order, profile non-finite numbers, refuse unknown verify modes, keep accent position and NFD in collation, parse CF_HTML offsets from str, keep HSV bounds inside uint8
…for persistence, treat one modifier name as one key, refuse unknown CI levels, score off-frame change boxes as nothing, write strict typed OTLP JSON, read every action-file shape in SOPs
…s on the GUI thread, route Quick Connect viewer callbacks through queued signals, and retire running WebRTC signaling threads instead of destroying them
…d the admin console broadcast and DAG remote nodes use it
…d drags at the model's coordinate, honour key repeat and click modifiers
… the presence tab's registry listener when it is destroyed
… them down at exit, so closing a tab or the window mid-job no longer aborts; move the computer-use, DAG and LLM planner tabs onto start_worker
…executor, honour MCP --read-only in the server, write UTF-8 from MCP stdio and the CLIs whatever the code page, check codegen action shapes, validate server ports, and let SARIF, SOP and Allure output take real-world text
…cess trees on timeout, fail AC_shell_command when its program cannot start and keep arguments out of logs and adb errors, read an empty Linux clipboard as empty, and fix USB/IP device lists, speeds, idle devices and isochronous URBs
…eter start-up, so a loaded machine no longer fails them, and share the probe runner
…L range as not found, unwrap macOS AXValue bounds, never click an accessibility match with no rectangle, read Windows roles in audits, keep the recorder running through framework errors, and bound the Linux control search
…from resolved annotations without private or callback parameters, keep coordinates through strings and scaling, read VLM replies in the image the model saw and raise on request failures, treat OpenAI refusals as errors, and start each run on a reused backend afresh
…SON depth limit, which 3.14 on Linux and macOS does not reach, so both audit tests pass CI; drop a duplicated batch-table row
…r on cross-origin redirects, send assert_http and config sync through http_client, keep Office, S3 and SQLite errors in the framework family, fire the IMAP trigger once per message with UIDVALIDITY and modified UTF-7 mailbox names, and mask credentials in cassettes
… front, press watchdog keys only in the popup, keep psutil and regex errors in the framework family, refuse empty needles, report no app for unregistered types, drop absolute paths, and act on the selected window in the Window Manager; record the paths Jeffrey_RPA runs as blocked
…loud's reliability gate flagged as a possible IndexError past its guard
…ead_barcodes, vote match_ensemble on one frame, lock the shared voice router, normalise unit-glued numbers in failure signatures, count deltas from the summarised frames, survive a missing home directory, and fix infinite-sample timeouts, clipped checkboxes, averaged contrast colours and opaque URL schemes
…up, stop a closed session window from aborting the process, report every connect error, keep audio on with the Advanced section collapsed, share the running host's settings, survive malformed dates and remote rows, and send signaling and USB device fetches through http_client
…hat fire on building a CompletedProcess or TimeoutExpired, put taskkill's marker on the line the rule reports, import the generated codegen test instead of exec'ing it, and assign the test QApplication
…hosting, survive a host stopped under the approval dialog or the stats thread, report imports of the wrong shape, let Stop cancel a pending reconnect, keep the pen on new windows, stop calling empty recordings saved, and end Quick Connect ws:// sessions on close, errors and approval timeouts
…utor, keep positional arguments and a wrapped file's other keys through load and save, accept decimal points under comma locales, load odd RGB values, and let a new loop take children
…so French and German users can type a decimal point and grouped digits never reach int()
…th is not prefixed with the cwd on Linux and macOS
…based revisions: server/discover, resultType and caching hints, the reserved error codes, per-request capabilities and log levels, no unsolicited notifications to a stateless peer, and destructive-tool confirmation as a signed, single-use multi round-trip
…ts the comparison (behaviour unchanged: None still forwards nothing)
…lse absolute by the host's rules, so a relative path on Linux and macOS still gets the host cwd
…ixels, instead of one overlay offset by the virtual desktop's origin that left scaled screens uncovered, and wait on an event loop instead of spinning
…, so a BOM file opens, a wrapped file keeps its other keys, and saves are atomic
…e tab at the end (the bare expression was flagged as assigned to nothing)
…or its body into MCP-Protocol-Version, Mcp-Method and Mcp-Name, a disagreeing header is 400 HeaderMismatch, version and metadata errors are 400 and unknown methods 404, no session is kept, and an unsupported version header answers with the supported versions
…efore subscriptions/listen joins them (refactor, no behaviour change)
…ledge what will be sent, tag every notification with the subscription id, end silently on notifications/cancelled or a closed stream, and answer with a completion result when the server ends it
@sonarqubecloud

Copy link
Copy Markdown

@JE-Chen
JE-Chen merged commit e1b30e9 into main Sep 25, 2026
40 checks passed
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