Chuck and Claude Opus 5.5
f6c0fe55d9
fix(core): font zip cache, monotonic timers, resolver back-off, and other core/common fixes ( #654 )
...
* fix(core): font zip cache, monotonic timers, resolver back-off, and other core/common fixes
- font_manager: a .zip font URL is served as its extracted font after a
restart (the cached-file check returned the archive first); downloads
use requests with a 30s timeout into a temp file + os.replace.
- api_helper / sync_manager: rate-limit and heartbeat/leader timeouts use
time.monotonic(); last_request_time and the status file's ts stay
wall-clock. set_on_new_cycle docstring no longer claims core uses it.
- logo_helper: the placeholder uses the same scaled box as a real logo.
- permission_utils: one _sudo_bash_candidates() helper (with the sudoers
exact-argv rationale) shared by sudo_remove_directory, which now retries
the next bash path on a sudo refusal, and install_requirements_file.
- dynamic_team_resolver: failed/empty fetch backs off 5 min; duplicate
INFO log and contradictory docstring example fixed.
- element_style: scale default looked up through element aliases.
- background_data_service: cache-hit callback runs outside the lock.
- config_arrays: union-aware type check (["array","null"]); stale
dotToNested() reference removed.
- auto_update_setup: non-dict auto_update reads as off; temp result file
unlinked when the write fails.
- exceptions: constructors copy the caller's context dict.
- logging_config: StructuredFormatter json.dumps(default=str).
- error_aggregator: removed unused export_path/export_to_file/_auto_export.
- Docstrings: validate_file_upload max_size_mb, raise_on_errors.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
* fix(sync): retry the status-file rename like the other atomic writers
On Windows os.replace can fail with "Access is denied" while a scanner
briefly holds the target open; config_manager_atomic._replace already
retries that (and re-raises at once on other platforms). The sync status
writer called os.replace directly, which made
test_concurrent_writers_each_use_their_own_temp_file flaky on Windows.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
---------
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com >
2026-09-28 10:40:16 -04:00
..
2026-09-23 16:33:24 -04:00
2026-09-28 08:26:55 -04:00
2026-09-23 12:36:26 -04:00
2026-09-28 10:40:16 -04:00
2026-03-20 15:06:58 -04:00
2026-08-21 11:16:52 -04:00
2026-09-24 17:37:15 -04:00
2026-07-12 10:38:52 -04:00
2026-07-12 10:38:52 -04:00
2026-09-28 10:40:16 -04:00
2026-09-28 08:24:43 -04:00
2026-08-21 11:16:52 -04:00
2026-09-28 08:24:43 -04:00
2026-09-08 08:34:52 -04:00
2026-09-11 10:07:38 -04:00
2026-09-24 17:35:49 -04:00
2026-09-28 08:26:05 -04:00
2026-09-23 12:36:53 -04:00
2026-08-23 11:44:23 -04:00
2026-09-23 12:36:53 -04:00
2026-09-28 08:24:43 -04:00
2026-09-23 10:29:16 -04:00
2026-09-24 17:35:49 -04:00
2026-08-21 11:16:52 -04:00
2026-09-23 10:29:16 -04:00
2026-09-24 17:35:49 -04:00
2026-09-11 10:07:38 -04:00
2026-09-11 10:07:38 -04:00
2026-09-24 17:35:49 -04:00
2026-09-24 17:32:29 -04:00
2026-07-14 08:08:51 -04:00
2026-09-28 10:40:16 -04:00
2026-09-24 15:51:14 -04:00
2026-09-17 16:37:29 -04:00
2026-09-18 09:56:50 -04:00
2026-09-28 10:40:16 -04:00
2026-08-26 10:03:43 -04:00
2026-09-01 09:54:04 -04:00
2026-09-28 08:24:43 -04:00
2026-09-28 08:26:05 -04:00
2026-08-07 16:17:11 -04:00
2026-09-13 11:53:50 -04:00
2026-09-28 10:39:40 -04:00
2026-09-24 15:51:53 -04:00
2026-08-12 08:42:56 -04:00
2026-09-23 12:54:07 -04:00
2026-08-19 12:28:22 -04:00
2026-09-07 13:37:54 -04:00
2026-08-12 08:40:07 -04:00
2026-09-17 12:38:39 -04:00
2026-09-24 15:50:50 -04:00
2026-09-23 12:54:07 -04:00
2026-08-11 14:14:25 -04:00
2026-08-19 17:40:52 -04:00
2026-09-14 09:42:24 -04:00
2026-09-23 16:33:24 -04:00
2026-09-28 08:26:05 -04:00
2026-08-07 10:17:30 -04:00
2026-09-23 12:52:50 -04:00
2026-07-14 08:49:43 -04:00
2026-09-11 10:07:38 -04:00
2026-09-16 17:12:18 -04:00
2026-08-06 14:04:23 -04:00
2026-09-23 12:36:26 -04:00
2026-09-24 17:32:02 -04:00
2026-09-17 16:37:29 -04:00
2026-09-15 18:19:39 -04:00
2026-08-04 13:46:28 -04:00
2026-09-03 16:06:40 -04:00
2026-09-28 10:39:40 -04:00
2026-09-23 12:44:55 -04:00
2026-09-23 16:48:02 -04:00
2026-09-24 15:52:52 -04:00
2026-09-28 08:25:26 -04:00
2026-09-28 09:07:08 -04:00
2026-09-23 10:29:16 -04:00
2026-08-23 11:43:39 -04:00
2026-09-28 08:25:26 -04:00
2026-09-23 10:29:16 -04:00
2026-09-27 18:13:49 -04:00
2026-09-28 08:26:05 -04:00
2026-09-28 10:39:40 -04:00
2026-09-24 17:37:15 -04:00
2026-09-23 12:36:26 -04:00
2026-09-24 19:38:22 -04:00
2026-09-07 13:37:54 -04:00
2026-09-17 16:37:29 -04:00
2026-09-28 10:39:40 -04:00
2026-09-23 12:36:26 -04:00
2026-09-24 19:38:22 -04:00
2026-09-24 17:35:49 -04:00
2026-08-06 14:04:23 -04:00
2026-09-28 10:40:16 -04:00
2026-09-28 10:40:16 -04:00
2026-09-24 17:32:29 -04:00
2026-08-07 13:27:20 -04:00
2026-09-24 17:32:29 -04:00
2026-09-28 10:40:16 -04:00
2026-09-23 14:32:02 -04:00
2026-09-18 09:56:50 -04:00
2026-09-24 17:31:41 -04:00
2026-09-28 10:39:40 -04:00
2026-09-28 10:40:16 -04:00
2026-09-24 17:32:29 -04:00
2026-09-23 16:50:42 -04:00
2026-09-24 19:38:49 -04:00
2026-08-21 14:30:29 -04:00
2026-09-07 13:37:38 -04:00
2026-07-12 10:38:52 -04:00
2026-08-21 15:50:55 -04:00
2026-09-24 17:32:29 -04:00
2026-09-23 12:36:26 -04:00
2026-08-12 14:58:05 -04:00
2026-08-23 11:42:51 -04:00
2026-08-03 16:52:42 -04:00
2026-09-24 17:31:41 -04:00
2026-09-14 17:38:17 -04:00
2026-09-28 08:25:45 -04:00
2026-08-21 15:50:55 -04:00
2026-09-23 10:29:16 -04:00
2026-09-27 18:13:49 -04:00
2026-09-18 11:09:25 -04:00
2026-09-24 17:35:49 -04:00
2026-09-11 08:41:58 -04:00
2026-09-23 12:36:26 -04:00
2026-09-28 10:40:16 -04:00
2026-09-28 08:26:05 -04:00
2026-09-28 08:26:05 -04:00
2026-09-28 10:40:16 -04:00
2026-09-28 10:39:40 -04:00
2026-09-24 17:32:02 -04:00
2026-09-11 11:32:12 -04:00
2026-09-08 08:34:52 -04:00
2026-08-11 16:10:56 -04:00
2026-09-24 19:57:03 -04:00
2026-09-07 13:37:38 -04:00
2026-09-28 08:25:26 -04:00
2026-08-19 12:49:46 -04:00
2026-09-23 10:34:20 -04:00
2026-09-24 17:35:49 -04:00
2026-09-11 15:32:03 -04:00
2026-09-23 12:36:53 -04:00
2026-09-28 10:40:16 -04:00
2026-09-15 19:17:48 -04:00
2026-08-17 15:35:02 -04:00
2026-09-08 08:34:52 -04:00
2026-09-02 09:51:27 -04:00
2026-09-17 16:37:29 -04:00
2026-09-24 15:52:52 -04:00
2026-08-21 16:19:33 -04:00
2026-09-11 08:41:58 -04:00
2026-08-19 12:28:22 -04:00
2026-09-28 08:25:45 -04:00
2026-09-24 17:32:29 -04:00
2026-08-23 11:43:39 -04:00
2026-09-28 08:25:45 -04:00
2026-09-24 17:32:02 -04:00
2026-07-09 07:54:18 -04:00
2026-09-28 08:25:45 -04:00
2026-09-24 17:32:02 -04:00
2026-09-17 16:37:29 -04:00
2026-09-23 12:36:26 -04:00
2026-09-23 12:36:26 -04:00
2026-09-15 18:19:39 -04:00
2026-09-15 18:19:39 -04:00
2026-09-24 15:49:51 -04:00
2026-08-07 13:02:59 -04:00
2026-09-28 08:25:26 -04:00
2026-09-24 17:32:02 -04:00
2026-09-24 17:32:02 -04:00
2026-09-23 16:33:24 -04:00
2026-09-28 10:39:40 -04:00
2026-09-17 16:37:29 -04:00
2026-09-24 17:32:02 -04:00
2026-09-24 19:47:44 -04:00
2026-08-21 16:22:48 -04:00
2026-08-07 10:17:30 -04:00
2026-05-15 10:19:55 -04:00
2026-09-07 13:37:54 -04:00
2026-07-31 09:40:38 -04:00
2026-09-28 08:26:05 -04:00
2026-09-17 16:37:29 -04:00
2026-09-17 16:37:29 -04:00
2026-07-13 09:28:30 -04:00
2026-09-14 12:48:36 -04:00
2026-09-13 11:53:50 -04:00
2026-09-15 15:32:21 -04:00
2026-09-17 16:37:29 -04:00
2026-09-20 18:25:33 -04:00
2026-08-26 11:25:10 -04:00
2026-09-24 15:51:35 -04:00
2026-09-23 16:33:12 -04:00
2026-09-11 10:07:38 -04:00
2026-09-28 08:26:05 -04:00
2026-09-24 17:32:02 -04:00
2026-09-23 12:36:26 -04:00
2026-09-23 16:33:24 -04:00
2026-09-28 08:24:43 -04:00
2026-09-24 17:32:02 -04:00
2026-07-13 09:32:37 -04:00
2026-09-24 17:31:41 -04:00
2026-09-24 17:31:41 -04:00
2026-09-24 15:51:14 -04:00
2026-09-28 10:40:16 -04:00
2026-09-11 08:45:40 -04:00
2026-09-24 17:35:49 -04:00
2026-08-21 14:29:45 -04:00
2026-09-24 17:31:41 -04:00
2026-08-06 14:04:23 -04:00
2026-09-28 08:25:45 -04:00
2026-09-24 17:32:29 -04:00
2026-09-28 08:24:43 -04:00
2026-09-23 12:36:26 -04:00
2026-08-21 14:30:29 -04:00
2026-08-21 14:30:29 -04:00
2026-09-24 17:37:15 -04:00
2026-09-24 17:37:15 -04:00
2026-09-23 10:29:16 -04:00
2026-09-28 08:25:26 -04:00
2026-09-24 19:38:22 -04:00
2026-09-28 08:25:26 -04:00
2026-08-23 11:42:33 -04:00
2026-08-12 14:06:32 -04:00
2026-09-24 17:37:15 -04:00
2026-08-13 17:02:36 -04:00
2026-08-21 15:50:55 -04:00
2026-07-08 09:43:13 -04:00
2026-09-24 17:37:15 -04:00
2026-09-28 10:39:14 -04:00
2026-09-24 17:37:15 -04:00
2026-09-24 19:57:03 -04:00
2026-09-23 16:33:24 -04:00
2026-09-23 12:36:26 -04:00
2026-09-23 12:36:53 -04:00
2026-09-10 17:42:00 -04:00
2026-09-23 12:36:53 -04:00
2026-09-24 15:53:19 -04:00
2026-07-09 09:22:24 -04:00
2026-09-23 10:29:16 -04:00
2026-09-14 09:42:24 -04:00
2026-09-24 15:51:14 -04:00
2026-09-09 16:25:45 -04:00
2026-09-14 09:42:24 -04:00
2026-09-14 12:40:41 -04:00
2026-09-14 12:40:41 -04:00
2026-09-24 17:32:29 -04:00
2026-09-28 08:26:05 -04:00