From: Junio C Hamano Date: Mon, 12 Jan 2026 15:45:09 +0000 (-0800) Subject: What's cooking (2026/01 #04) X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=fe5ab7cc85c8d4c015e698c622371b6b148905b7;p=thirdparty%2Fgit.git What's cooking (2026/01 #04) --- diff --git a/whats-cooking.txt b/whats-cooking.txt index 9b9b32fbf4..95234cde9f 100644 --- a/whats-cooking.txt +++ b/whats-cooking.txt @@ -1,10 +1,10 @@ To: git@vger.kernel.org -Subject: What's cooking in git.git (Jan 2026, #03) -X-master-at: d529f3a197364881746f558e5652f0236131eb86 -X-next-at: a520c3929364f336279b44986f6d617b46a734d4 +Subject: What's cooking in git.git (Jan 2026, #04) +X-master-at: 8745eae506f700657882b9e32b2aa00f234a6fb6 +X-next-at: 054afa95bc2d358432c7c8a34045c160b9f262b3 Bcc: lwn@lwn.net, gitster@pobox.com -What's cooking in git.git (Jan 2026, #03) +What's cooking in git.git (Jan 2026, #04) ----------------------------------------- Here are the topics that have been cooking in my tree. Commits @@ -48,117 +48,242 @@ Release tarballs are available at: -------------------------------------------------- [Graduated to 'master'] -* ar/run-command-hook (2025-12-26) 11 commits - (merged to 'next' on 2025-12-28 at 048cdffe21) - + receive-pack: convert receive hooks to hook API - + receive-pack: convert update hooks to new API - + hooks: allow callers to capture output - + run-command: allow capturing of collated output - + hook: allow overriding the ungroup option - + reference-transaction: use hook API instead of run-command - + transport: convert pre-push to hook API - + hook: convert 'post-rewrite' hook in sequencer.c to hook API - + hook: provide stdin via callback - + run-command: add stdin callback for parallelization - + run-command: add first helper for pp child states +* ja/doc-synopsis-style-more (2025-12-20) 5 commits + (merged to 'next' on 2026-01-05 at 20eb741139) + + doc: convert git-remote to synopsis style + + doc: convert git stage to use synopsis block + + doc: convert git-status tables to AsciiDoc format + + doc: convert git-status to synopsis style + + doc: fix t0450-txt-doc-vs-help to select only first synopsis block - Use hook API to replace ad-hoc invocation of hook scripts with the - run_command() API. - source: <20251226122334.16687-1-adrian.ratiu@collabora.com> + More doc style updates. + source: -* bc/checkout-error-message-fix (2025-12-24) 1 commit - (merged to 'next' on 2025-12-28 at d807c22e01) - + checkout: quote invalid treeish in error message +* js/mailmap-karsten-blees (2026-01-10) 1 commit + (merged to 'next' on 2026-01-10 at 90c69f0044) + + .mailmap: replace Karsten Blees' default address - Message fix. - source: <20251224203253.881129-1-sandals@crustytoothpaste.net> + Mailmap update for Karsten + source: -* dd/t5403-modernise (2025-12-29) 1 commit - (merged to 'next' on 2026-01-01 at d1d712e288) - + t5403: use test_path_is_file instead of test -f +* ps/t1300-2021-use-test-path-is-helpers (2026-01-04) 1 commit + (merged to 'next' on 2026-01-05 at c9366fe5a0) + + t1300: use test helpers instead of `test` command - Test micro-clean-up. - source: <20251229185737.2328-1-deveshigurgaon@gmail.com> + Test updates. + source: <20260104194812.15134-1-pushkarkumarsingh1970@gmail.com> -* ds/diff-lazy-fetch-with-name-only-fix (2025-12-29) 1 commit - (merged to 'next' on 2026-01-01 at ccbd34d6c9) - + diff: avoid segfault with freed entries +* rs/commit-stack (2025-12-24) 14 commits + (merged to 'next' on 2026-01-05 at 8b44eff694) + + commit-reach: use commit_stack + + commit-graph: use commit_stack + + commit: add commit_stack_grow() + + shallow: use commit_stack + + pack-bitmap-write: use commit_stack + + commit: add commit_stack_init() + + test-reach: use commit_stack + + remote: use commit_stack for src_commits + + remote: use commit_stack for sent_tips + + remote: use commit_stack for local_commits + + name-rev: use commit_stack + + midx: use commit_stack + + log: use commit_stack + + revision: export commit_stack - Running "git diff" with "--name-only" and other options that allows - us not to look at the blob contents, while objects that are lazily - fetched from a promisor remote, caused use-after-free, which has - been corrected. - source: + Code clean-up, unifying various hand-rolled "list of commit + objects" and use the commit_stack API. + source: <20251224170327.68049-1-l.s.r@web.de> -* en/ort-recursive-d-f-conflict-fix (2025-12-29) 1 commit - (merged to 'next' on 2026-01-01 at 883dcfc63e) - + merge-ort: fix corner case recursive submodule/directory conflict handling +* sb/bundle-uri-without-uri (2025-12-19) 1 commit + (merged to 'next' on 2026-01-05 at 62d0a58199) + + bundle-uri: validate that bundle entries have a uri - The ort merge machinery hit an assertion failure in a history with - criss-cross merges renamed a directory and a non-directory, which - has been corrected. - source: + Diagnose invalid bundle-URI that lack the URI entry, instead of + crashing. + source: +-------------------------------------------------- +[New Topics] -* rs/macos-iconv-workaround (2025-12-24) 2 commits - (merged to 'next' on 2025-12-28 at 94ed776719) - + macOS: use iconv from Homebrew if needed and present - + macOS: make Homebrew use configurable +* bc/doc-stash-import-export (2026-01-08) 1 commit + (merged to 'next' on 2026-01-10 at 48f26103bc) + + gitfaq: document using stash import/export to sync working tree - Workaround the "iconv" shipped as part of macOS, which is broken - handling stateful ISO/IEC 2022 encoded strings. - source: + Update a FAQ entry on synching two separate repositories using the + "git stash export/import" recently introduced. + Will merge to 'master'. + source: <20260109014608.42773-1-sandals@crustytoothpaste.net> -* rs/parse-config-expiry-simplify (2025-12-27) 1 commit - (merged to 'next' on 2025-12-30 at 138de1df67) - + config: use git_parse_int() in git_config_get_expiry_in_days() - Code clean-up. - source: <1bd3c7f3-fcf6-4d8e-aa38-c15e3d51ce4c@web.de> +* ds/builtin-doc-update (2026-01-08) 1 commit + (merged to 'next' on 2026-01-10 at a98a468cf0) + + builtin.h: update documentation + Update in-code comment doc to match the current API. -* rs/show-branch-prio-queue (2025-12-25) 1 commit - (merged to 'next' on 2025-12-28 at 99d21acd7b) - + show-branch: use prio_queue + Will merge to 'master'. + source: + + +* kh/doc-patch-id (2026-01-07) 6 commits + (merged to 'next' on 2026-01-10 at 27a1d947d1) + + doc: patch-id: --verbatim locks in --stable + + doc: patch-id: spell out the git-diff-tree(1) form + + doc: patch-id: use definite article for the result + + patch-id: use “patch ID” throughout + + doc: patch-id: capitalize Git version + + doc: patch-id: don’t use semicolon between bullet points + + "git patch-id" documentation updates. + + Will merge to 'master'. + source: + + +* kj/t7101-modernize (2026-01-08) 1 commit + (merged to 'next' on 2026-01-10 at c33f8ae0bb) + + t7101: modernize test path checks + + Test update. + + Will merge to 'master'. + source: <20260109032027.68680-1-jayatheerthkulkarni2005@gmail.com> + + +* ar/run-command-hook (2026-01-09) 1 commit + (merged to 'next' on 2026-01-10 at 236f60e30d) + + hook: check for NULL pointer before deref - Code clean-up. - source: <70ed751e-fc3c-4cb4-a4fd-26094a9f622e@web.de> + Fix-up a topic that has recently graduated to 'master'. + Will merge to 'master'. + source: <20260109181912.689409-1-adrian.ratiu@collabora.com> + + +* ps/ref-consistency-checks (2026-01-12) 17 commits + - builtin/fsck: drop `fsck_head_link()` + - builtin/fsck: move generic HEAD check into `refs_fsck()` + - builtin/fsck: move generic object ID checks into `refs_fsck()` + - refs/reftable: introduce generic checks for refs + - refs/reftable: fix consistency checks with worktrees + - refs/reftable: extract function to retrieve backend for worktree + - refs/reftable: adapt includes to become consistent + - refs/files: introduce function to perform normal ref checks + - refs/files: extract generic symref target checks + - fsck: drop unused fields from `struct fsck_ref_report` + - refs/files: perform consistency checks for root refs + - refs/files: improve error handling when verifying symrefs + - refs/files: extract function to check single ref + - refs/files: remove useless indirection + - refs/files: remove `refs_check_dir` parameter + - refs/files: move fsck functions into global scope + - refs/files: simplify iterating through root refs + + Update code paths that check data integrity around refs subsystem. + + Will merge to 'next". + cf. + source: <20260112-pks-refs-verify-fixes-v2-0-2e9e453bd6c3@pks.im> + + +* rs/tree-wo-the-repository (2026-01-09) 10 commits + - cocci: convert parse_tree functions to repo_ variants + - tree: stop using the_repository + - tree: use repo_parse_tree() + - path-walk: use repo_parse_tree_gently() + - pack-bitmap-write: use repo_parse_tree() + - delta-islands: use repo_parse_tree() + - bloom: use repo_parse_tree() + - add-interactive: use repo_parse_tree_indirect() + - tree: add repo_parse_tree*() + - environment: move access to core.maxTreeDepth into repo settings + + Remove implicit reliance on the_repository global in the APIs + around tree objects and make it explicit which repository to work + in. + + Comments? + cf. + source: <20260109213021.2546-1-l.s.r@web.de> + + +* cs/rebased-subtree-split (2026-01-09) 1 commit + - contrib/subtree: detect rewritten subtree commits + + The split command in "git subtree" (in contrib/) has been taught to + deal better with rebased history. + + Will merge to 'next'. + source: <20260110011811.788219-1-ask+git@howdoi.land> -* rs/tag-wo-the-repository (2025-12-28) 4 commits - (merged to 'next' on 2026-01-01 at 3b7c52229a) - + tag: stop using the_repository - + tag: support arbitrary repositories in parse_tag() - + tag: support arbitrary repositories in gpg_verify_tag() - + tag: use algo of repo parameter in parse_tag_buffer() - Code clean-up. - source: <20251228181051.68724-1-l.s.r@web.de> +* sp/shallow-deepen-relative-fix (2026-01-09) 2 commits + - shallow: handling fetch relative-deepen + - shallow: free local object_array allocations + + "git fetch --deepen" that tries to go beyond merged branch used to + get confused where the updated shallow points are, which has been + corrected. + + Will merge to 'next'? + source: + + +* kt/http-backend-errors (2026-01-11) 1 commit + - http-backend: write newlines to stderr when responding with errors + + Some error messages from the http transport layer lacked the + terminating newline, which has been corrected. + + Will merge to 'next'. + source: <20260112014508.17248-1-kj@kjtsanaktsidis.id.au> + + +* ps/t1410-cleanup (2026-01-11) 1 commit + - t1410: use test helpers in reflog rewind test + + Test clean-up. + + Will merge to 'next'. + source: <20260111191525.17087-1-pushkarkumarsingh1970@gmail.com> + + +* dd/t5403-modernise (2026-01-11) 2 commits + - t5403: use test_cmp for post-checkout argument checks + - t5403:introduce check_post_checkout helper function + + Test clean-up. + + Will merge to 'next'? + source: <20260112065301.1290-3-deveshigurgaon@gmail.com> -------------------------------------------------- -[New Topics] +[Cooking] -* ml/doc-blame-markup (2026-01-05) 1 commit - - doc: git-blame: convert blame to new doc format +* ml/doc-blame-markup (2026-01-08) 2 commits + (merged to 'next' on 2026-01-10 at 1f87b77810) + + doc: git-blame: convert to new doc format + + doc: blame-options: convert to new doc format Doc mark-up update. - Expecting a reroll. - cf. <9123496.T7Z3S40VBb@debian-mbp> - source: <20260105230220.519303-1-git@michael.lyo.nz> + Will merge to 'master'. + cf. <2813520.mvXUDI8C0e@piment-oiseau> + source: <20260108153039.658217-1-git@michael.lyo.nz> * ac/t1420-use-more-direct-check (2026-01-06) 1 commit - - t1420: modernize the lost-found test + (merged to 'next' on 2026-01-10 at 6bccdd0e04) + + t1420: modernize the lost-found test Test update. - Will merge to 'next'? + Will merge to 'master'. source: <20260106132658.798706-1-andchi@fastmail.com> @@ -173,25 +298,26 @@ Release tarballs are available at: * jk/cat-file-avoid-bitmap-when-unneeded (2026-01-06) 1 commit - - cat-file: only use bitmaps when filtering + (merged to 'next' on 2026-01-10 at 5e3f0240f7) + + cat-file: only use bitmaps when filtering Fix for a performance regression in "git cat-file". - Will merge to 'next'? + Will merge to 'master'. + cf. source: <20260106102558.GA68914@coredump.intra.peff.net> * jk/t-perf-fixes (2026-01-06) 2 commits - - t/perf/run: preserve GIT_PERF_* from environment - - t/perf/perf-lib: fix assignment of TEST_OUTPUT_DIRECTORY + (merged to 'next' on 2026-01-10 at 9a633e87df) + + t/perf/run: preserve GIT_PERF_* from environment + + t/perf/perf-lib: fix assignment of TEST_OUTPUT_DIRECTORY Perf-test fixes. - Will merge to 'next'? + Will merge to 'master'. source: <20260106101043.GA3723319@coredump.intra.peff.net> --------------------------------------------------- -[Cooking] * en/xdiff-cleanup-3 (2026-01-03) 11 commits - SQUASH??? cocci @@ -212,7 +338,7 @@ Release tarballs are available at: source: -* hn/status-compare-with-push (2026-01-04) 2 commits +* hn/status-compare-with-push (2026-01-10) 2 commits - status: show comparison with push remote tracking branch - refactor format_branch_comparison in preparation @@ -220,8 +346,8 @@ Release tarballs are available at: and its push destination as well as its upstream, when the two are different (i.e., triangular workflow). - Comments? - source: + Will merge to 'next'? + source: * ob/core-attributesfile-in-repository (2026-01-02) 1 commit @@ -235,24 +361,14 @@ Release tarballs are available at: source: -* aa/add-p-previous-decisions (2026-01-06) 1 commit +* aa/add-p-previous-decisions (2026-01-08) 1 commit - add -p: show user's hunk decision when selecting hunks "git add -p" and friends notes what the current status of the hunk being shown is. - Comments? - source: - - -* ps/t1300-2021-use-test-path-is-helpers (2026-01-04) 1 commit - (merged to 'next' on 2026-01-05 at c9366fe5a0) - + t1300: use test helpers instead of `test` command - - Test updates. - - Will merge to 'master'. - source: <20260104194812.15134-1-pushkarkumarsingh1970@gmail.com> + Will merge to 'next'? + source: * pt/fsmonitor-linux (2025-12-31) 1 commit @@ -283,14 +399,15 @@ Release tarballs are available at: source: -* en/fsck-snapshot-ref-state (2026-01-06) 1 commit - - fsck: snapshot default refs before object walk +* en/fsck-snapshot-ref-state (2026-01-09) 1 commit + (merged to 'next' on 2026-01-12 at d5dff1bba4) + + fsck: snapshot default refs before object walk "git fsck" used inconsistent set of refs to show a confused warning, which has been corrected. - Will merge to 'next'? - source: + Will merge to 'master'. + source: * kh/replay-invalid-onto-advance (2026-01-05) 6 commits @@ -303,7 +420,9 @@ Release tarballs are available at: + replay: remove dead code and rearrange (this branch is used by ps/history and pw/replay-drop-empty.) - Test coverage of "git replay" has been improved. + Improve the error message when a bad argument is given to the + `--onto` option of "git replay". Test coverage of "git replay" has + been improved. Will merge to 'master'. cf. @@ -327,30 +446,6 @@ Release tarballs are available at: source: <20251223111113.47473-1-christian.couder@gmail.com> -* rs/commit-stack (2025-12-24) 14 commits - (merged to 'next' on 2026-01-05 at 8b44eff694) - + commit-reach: use commit_stack - + commit-graph: use commit_stack - + commit: add commit_stack_grow() - + shallow: use commit_stack - + pack-bitmap-write: use commit_stack - + commit: add commit_stack_init() - + test-reach: use commit_stack - + remote: use commit_stack for src_commits - + remote: use commit_stack for sent_tips - + remote: use commit_stack for local_commits - + name-rev: use commit_stack - + midx: use commit_stack - + log: use commit_stack - + revision: export commit_stack - - Code clean-up, unifying various hand-rolled "list of commit - objects" and use the commit_stack API. - - Will merge to 'master'. - source: <20251224170327.68049-1-l.s.r@web.de> - - * tt/receive-pack-oo-namespace-symref-fix (2025-12-27) 1 commit - receive-pack: fix crash on out-of-namespace symref @@ -361,17 +456,6 @@ Release tarballs are available at: source: -* sb/bundle-uri-without-uri (2025-12-19) 1 commit - (merged to 'next' on 2026-01-05 at 62d0a58199) - + bundle-uri: validate that bundle entries have a uri - - Diagnose invalid bundle-URI that lack the URI entry, instead of - crashing. - - Will merge to 'master'. - source: - - * sb/doc-worktree-prune-expire-improvement (2025-12-19) 2 commits - worktree: use 'prune' instead of 'expire' in help text - worktree: clarify --expire applies to missing worktrees @@ -383,21 +467,7 @@ Release tarballs are available at: source: -* ja/doc-synopsis-style-more (2025-12-20) 5 commits - (merged to 'next' on 2026-01-05 at 20eb741139) - + doc: convert git-remote to synopsis style - + doc: convert git stage to use synopsis block - + doc: convert git-status tables to AsciiDoc format - + doc: convert git-status to synopsis style - + doc: fix t0450-txt-doc-vs-help to select only first synopsis block - - More doc style updates. - - Will merge to 'master'. - source: - - -* js/symlink-windows (2025-12-17) 19 commits +* js/symlink-windows (2026-01-09) 19 commits - mingw: special-case index entries for symlinks with buggy size - mingw: emulate `stat()` a little more faithfully - mingw: try to create symlinks without elevated permissions @@ -421,9 +491,8 @@ Release tarballs are available at: Upstream symbolic link support on Windows from Git-for-Windows. - Expecting review responses. - cf. <19030791-dafa-4a63-985b-9cdf423bfd1b@kdbg.org> - source: + Will merge to 'next'? + source: * pc/lockfile-pid (2026-01-07) 1 commit @@ -450,7 +519,7 @@ Release tarballs are available at: source: -* ps/read-object-info-improvements (2026-01-07) 8 commits +* ps/read-object-info-improvements (2026-01-12) 8 commits - packfile: drop repository parameter from `packed_object_info()` - packfile: skip unpacking object header for disk size requests - packfile: disentangle return value of `packed_object_info()` @@ -463,29 +532,24 @@ Release tarballs are available at: The object-info API has been cleaned up. Comments? - source: <20260107-b4-pks-odb-read-object-info-improvements-v4-0-b5d55c47082a@pks.im> + source: <20260112-b4-pks-odb-read-object-info-improvements-v5-0-9a6124e95bf2@pks.im> -* tb/macos-iconv-workarounds (2025-12-15) 6 commits - . config.mak.uname: activate ICONV_RESTART_RESET if needed - . Makefile: make all darwin into config.mak.uname - . utf8.c: prepare workaround for iconv under macOS 14/15 - . Merge branch 'rs/macos-iconv-workaround' into tb/macos-iconv-workarounds - . config.mak.uname: use iconv from Homebrew on macOS - . Makefile: add NO_HOMEBREW +* tb/macos-iconv-workarounds (2026-01-11) 2 commits + - utf8.c: enable workaround for iconv under macOS 14/15 + - utf8.c: prepare workaround for iconv under macOS 14/15 The iconv library on macOS fails to correctly handle stateful ISO/IEC 2022 encoded strings. Work it around instead of replacing it wholesale from homebrew. - RFC. - needs to be debased from older rs/macos-iconv-workaround topic. - source: <20251215204524.1946518-1-tboegi@web.de> + Will merge to 'next'. + source: <20260111195151.716191-1-tboegi@web.de> -* js/prep-symlink-windows (2025-12-16) 6 commits +* js/prep-symlink-windows (2026-01-09) 6 commits - trim_last_path_component(): avoid hard-coding the directory separator - - strbuf_readlink(): support link targets that exceed PATH_MAX + - strbuf_readlink(): support link targets that exceed 2*PATH_MAX - strbuf_readlink(): avoid calling `readlink()` twice in corner-cases - init: do parse _all_ core.* settings early - mingw: do resolve symlinks in `getcwd()` @@ -494,18 +558,22 @@ Release tarballs are available at: Further preparation to upstream symbolic link support on Windows. - Expecting review responses. - cf. - source: + Will merge to 'next'? + source: * ap/http-probe-rpc-use-auth (2025-11-12) 1 commit - remote-curl: Use auth for probe_rpc() requests too + HTTP transport failed to authenticate in some code pahts, which has + been corrected. + + Expecting a reroll? + cf. source: <20251112223722.376330-1-aplattner@nvidia.com> -* ps/packfile-store-in-odb-source (2025-12-17) 12 commits +* ps/packfile-store-in-odb-source (2026-01-09) 12 commits - packfile: move MIDX into packfile store - packfile: refactor `find_pack_entry()` to work on the packfile store - packfile: inline `find_kept_pack_entry()` @@ -523,20 +591,20 @@ Release tarballs are available at: The packfile_store data structure is moved from object store to odb source. - Will merge to 'next'. - cf. <87zf6po3r4.fsf@iotcl.com> - source: <20251218-b4-pks-pack-store-via-source-v2-0-62849007ce21@pks.im> + Will merge to 'next'? + source: <20260109-b4-pks-pack-store-via-source-v3-0-877fd7b7bf81@pks.im> -* lo/repo-info-keys (2025-12-09) 3 commits +* lo/repo-info-keys (2026-01-09) 3 commits - repo: add new flag --keys to git-repo-info - repo: add a default output format to enum output_format - Merge branch 'lo/repo-struct-z' into lo/repo-info-keys "git repo info" learns "--keys" action to list known keys. - Comments? - source: <20251209194616.61620-1-lucasseikioshiro@gmail.com> + Expecting a (hopefully small and final) reroll? + cf. <12814829.O9o76ZdvQC@piment-oiseau> + source: <20251207190532.67107-1-lucasseikioshiro@gmail.com> * sb/doc-update-ref-markup-fix (2025-12-08) 1 commit @@ -640,8 +708,9 @@ Release tarballs are available at: source: <20251126-toon-last-modified-zzzz-v1-0-608350df0caa@iotcl.com> -* pw/replay-drop-empty (2025-12-18) 1 commit +* pw/replay-drop-empty (2025-12-18) 2 commits - replay: drop commits that become empty + - Merge branch 'ps/history' into pw/replay-drop-empty (this branch uses kh/replay-invalid-onto-advance and ps/history.) "git replay" is taught to drop commits that become empty (not the @@ -738,22 +807,24 @@ Release tarballs are available at: * je/doc-reset (2026-01-05) 4 commits - - doc: git-reset: clarify `git reset ` - - doc: git-reset: clarify `git reset [mode]` - - doc: git-reset: clarify intro - - doc: git-reset: reorder the forms + (merged to 'next' on 2026-01-12 at 44b4f99803) + + doc: git-reset: clarify `git reset ` + + doc: git-reset: clarify `git reset [mode]` + + doc: git-reset: clarify intro + + doc: git-reset: reorder the forms Documentation updates. - Will merge to 'next'? + Will merge to 'master'. source: -* ps/history (2026-01-07) 8 commits +* ps/history (2026-01-12) 9 commits - builtin/history: implement "reword" subcommand - builtin: add new "history" command - wt-status: provide function to expose status for trees - - replay: yield the object ID of the final rewritten commit + - replay: support updating detached HEAD + - replay: support empty commit ranges - replay: small set of cleanups - builtin/replay: move core logic into "libgit.a" - builtin/replay: extract core logic to replay revisions @@ -761,9 +832,7 @@ Release tarballs are available at: (this branch is used by pw/replay-drop-empty; uses kh/replay-invalid-onto-advance.) "git history" history rewriting UI. - - Comments? - source: <20260107-b4-pks-history-builtin-v8-0-18e9779e3a26@pks.im> + source: <20260112-b4-pks-history-builtin-v10-0-e3c6aa5b4cec@pks.im> * ms/doc-worktree-side-by-side (2025-10-10) 2 commits