chore(deps): bump pygments from 2.19.2 to 2.20.0#2
Closed
dependabot[bot] wants to merge 40 commits into
Closed
Conversation
…istinguish viewer roles (read-only vs quiz form)
Root cause: Each open_viewer() call created a new tk.Tk() in a daemon thread. When Feature A and Feature B viewers were open simultaneously, multiple tk.Tk() instances across threads caused a C-level segfault in tkinter. Fix: Use a single dedicated tkinter thread with one tk.Tk() root (hidden). All viewer windows are created as tk.Toplevel() via a queue-based dispatch. This allows multiple viewers to coexist safely.
tk.StringVar() requires an explicit master when no default root window exists. After the Toplevel refactor, the hidden root is not registered as the tkinter default, so StringVar(value='') raised 'Too early to create variable: no default root window'. Fix: pass master=topic_frame to tk.StringVar().
_determine_output_folder previously reused the cached output_folder_path from state.json even after the user changed input_folders in settings. Now it checks whether the existing output folder's parent matches the current input_folders[0] and re-determines the output path if they differ.
winotify sets tag=title by default. Windows silently replaces notifications with the same tag+group instead of showing a new popup. Added unique timestamp suffix to toast.tag on all Notification instances so each notification is treated as a new one.
- Section boundary regex stopped at any ## heading, truncating the section
before Q1/Q2 were reached. Now stops only at the next topic_key marker.
- Q1/Q2 regex did not handle markdown heading format (## Q1 Multiple Choice).
Updated to match #{1,4} prefixed headings, em-dash, and other variations.
- Replaced hardcoded Japanese fallback strings with i18n t() calls and added
scorer.question_extraction_failed / scorer.source_not_found keys.
The previous unique-tag fix (ec876a1) caused notifications to accumulate in Action Center. Windows suppresses popup banners when multiple notifications from the same app pile up. New approach: inject History.Clear(appId) into the PowerShell script just before Notifier.Show(). This removes stale notifications so every Show() creates a fresh notification with a visible popup banner. Removed the timestamp-tag workaround; default tag (= title) is now sufficient since old notifications are always cleared first.
- extract_topic_keys(): filter out topic_key markers whose heading starts with Q1/Q2 (LLM places separate markers per question) - _extract_quiz_questions(): skip Q1/Q2 heading markers when finding section boundaries so question text stays within the section - Update Q1/Q2 text extraction regex to handle English headings (## Q1 Multiple Choice, ### Q2 Free-Form) in addition to Japanese format (**Q1(4択)**) - Add Quiz Results section boundary to prevent bleed-through
Windows 11 (build 26100+) requires an AppUserModelID-registered Start Menu shortcut for toast notifications to show popup banners. Without it, notifications go to Action Center silently. - Add _ensure_start_menu_shortcut(): creates .lnk in Start Menu with AUMID set via IPropertyStore (SHGetPropertyStoreFromParsingName) - Simplify _toast_show_with_clear(): register shortcut (once), clear history, then delegate to native toast.show() - Add _clear_notification_history(): separate PowerShell subprocess for History.Clear() before showing new notification
- Add check_and_run_missed_jobs() to Scheduler for post-sleep/restart recovery - Add _should_catchup() and _parse_day_of_week_set() helper functions - Add last_run_a_at / last_run_b_at tracking to StateManager - Integrate catchup check into main.py startup flow - Add test_scheduler.py with unit tests
…Windows sleep - APScheduler's Event.wait() uses WaitForSingleObjectEx on Windows which does not count time elapsed during sleep, causing scheduled jobs to never fire after resume - Add watchdog thread that checks wall clock every 30s and calls scheduler.wakeup() when a gap >90s is detected (sleep/wake) - Register sleep-wake callback in main.py to re-run catchup logic on resume - Increase misfire_grace_time from 3h to 15h for same-day recovery - Remove elapsed time limit from startup catchup (_should_catchup) - Add 4 watchdog tests (27 scheduler tests total, 194 all pass)
- LLM sometimes places <!-- topic_key --> on Q1/Q2 headings instead of topic headings, causing _is_question_title filter to drop all markers - Add fallback in extract_topic_keys: when all markers are filtered out, deduplicate by topic_key and use them anyway - Add debug logging for link clicks in viewer - Re-set on_link_click on _html after load_html for robustness - Add 7 extract_topic_keys tests (200 total, all pass)
- Platform-aware npx command: npx.cmd on Windows, npx on others - Fixes WorkIQ MCP always timing out due to subprocess resolution failure - Add TestGenerateBriefingA tests for WorkIQ MCP configuration
- Add timeout and max_retries to WorkIQMcpConfig (default 60s, 1 retry) - _call_with_retry now accepts configurable max_retries parameter - WorkIQ failures trigger diagnostic: npx availability, GitHub API connectivity - Phase-level timing logs for create_session / send_and_wait - Add 5 new tests for WorkIQ timeout/retry/fallback behavior
- Retry start() up to 3 times with 5s delay on failure - Fixes TimeoutError during SDK ping/handshake phase - Add 2 tests for start retry behavior
- Register event handler on each session to capture TOOL_EXECUTION_START/COMPLETE - Log tool name, MCP server/tool name, and result summary (truncated to 200 chars) - Enables diagnosing WorkIQ internal failures that SDK does not surface as errors
…d Q2 - Deduplicate topic_matches by topic_key after filtering - LLM sometimes puts topic_key comments on both Q1 and Q2 sections with custom titles that bypass _is_question_title filter - Fixes: same topic rendered as 2 separate answer panels (4 fields instead of 2)
Bumps [pygments](https://github.com/pygments/pygments) from 2.19.2 to 2.20.0. - [Release notes](https://github.com/pygments/pygments/releases) - [Changelog](https://github.com/pygments/pygments/blob/master/CHANGES) - [Commits](pygments/pygments@2.19.2...2.20.0) --- updated-dependencies: - dependency-name: pygments dependency-version: 2.20.0 dependency-type: indirect ... Signed-off-by: dependabot[bot] <support@github.com>
Author
|
OK, I won't notify you again about this release, but will get in touch when a new version is available. If you'd rather skip all updates until the next major or minor version, let me know by commenting If you change your mind, just re-open this PR and I'll resolve any conflicts on it. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Bumps pygments from 2.19.2 to 2.20.0.
Release notes
Sourced from pygments's releases.
Changelog
Sourced from pygments's changelog.
Commits
708197dFix underline length.1d4538aPrepare 2.20 release.2ceaee4Update CHANGES.e3a3c54Fix Haskell lexer: handle escape sequences in character literals (#3069)d7c3453Merge pull request #3071 from pygments/harden-html-formatter0f97e7cHarden the HTML formatter against CSS.9f981b2Update CHANGES.1d88915Update CHANGES.c3d93adFix ASN.1 lexer: recognize minus sign and fix range operator (#3060)4f06bcffix bad behaving backtracking regex in CommonLispLexerDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting
@dependabot rebase.Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR:
@dependabot rebasewill rebase this PR@dependabot recreatewill recreate this PR, overwriting any edits that have been made to it@dependabot show <dependency name> ignore conditionswill show all of the ignore conditions of the specified dependency@dependabot ignore this major versionwill close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)@dependabot ignore this minor versionwill close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)@dependabot ignore this dependencywill close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)You can disable automated security fix PRs for this repo from the Security Alerts page.