### Start Monitoring Source: https://github.com/sjp38/hackermail/blob/master/USAGE.md Initiates the requested monitoring. Note that new requests added after starting are not automatically included in the running instance; a new instance must be started for them. To stop the current instance, use Ctrl+C. ```bash hkml monitor start ``` -------------------------------- ### Example of hkml reply command Source: https://github.com/sjp38/hackermail/blob/master/USAGE.md Demonstrates how to reply to a specific email using the 'reply' sub-command. It shows the interactive prompt for confirmation and saving as a draft. ```bash $ hkml reply 3 [...] # hkml reply open VIM. Below is an example output after closing VIM. Will send above mail. Okay? [y/N] n ``` -------------------------------- ### Example Cover Letter Bogus Commit Message Source: https://github.com/sjp38/hackermail/blob/master/USAGE.md This example shows the expected format for a cover letter bogus commit message when using `hkml patch format`. The message includes a subject, a blank line, and the body of the cover letter. ```git log ==== Marking start of the work (hkml patch format will ignore this) ==== hkml_patch_format: support new feature X long description of the patch series. long description of the patch series line 2. Signed-off-by: SeongJae Park ``` -------------------------------- ### Write a new email using a draft Source: https://github.com/sjp38/hackermail/blob/master/USAGE.md Use the 'write --draft' command to start a new email based on a previous draft. This opens an editor for further modifications before sending. ```bash $ hkml write --draft 0 [...] # hkml write open VIM. Below is an example output after closing VIM. Will send above mail. Okay? [y/N] n Tag as drafts? [Y/n] y ``` -------------------------------- ### Get Sashiko.dev Review Status for a Patch Series Source: https://github.com/sjp38/hackermail/blob/master/USAGE.md Use this command to retrieve the review status for all patches in a series, identified by a message ID. This is useful for getting an overview of the patch review progress. ```bash $ hkml patch sashiko_dev --thread_status 20260322155728.81434-1-sj@kernel.org - [RFC PATCH v4 01/10] mm/damon/core: introduce damon_ctx->paused - status: Reviewed - review: ISSUES MAY FOUND - [RFC PATCH v4 02/10] mm/damon/core: introduce damon_ctx->paused - status: Reviewed - review: No issues found. - [RFC PATCH v4 03/10] Docs/mm/damon/design: update for context pause/resume feature - status: Reviewed - review: No issues found. - [RFC PATCH v4 04/10] Docs/admin-guide/mm/damon/usage: update for pause file - status: Reviewed - review: No issues found. - [RFC PATCH v4 05/10] Docs/ABI/damon: update for pause sysfs file - status: Reviewed - review: No issues found. - [RFC PATCH v4 06/10] mm/damon/tests/core-kunit: test pause commitment - status: Reviewed - review: No issues found. - [RFC PATCH v4 07/10] selftests/damon/_damon_sysfs: support pause file staging - status: Pending - [RFC PATCH v4 08/10] selftests/damon/drgn_dump_damon_status: dump pause - status: Reviewed - review: No issues found. - [RFC PATCH v4 09/10] selftests/damon/sysfs.py: check pause on assert_ctx_committed() - status: Reviewed - review: No issues found. - [RFC PATCH v4 10/10] selftets/damon/sysfs.py: pause DAMON before dumping status - status: Reviewed - review: ISSUES MAY FOUND # hkml [1] generated a draft of this mail. It can be regenerated # using below command: # # hkml patch sashiko_dev --thread_status --for_forwarding \ # 20260322155728.81434-1-sj@kernel.org # # [1] https://github.com/sjp38/hackermail ``` -------------------------------- ### Specify Commits by Subject for Formatting Source: https://github.com/sjp38/hackermail/blob/master/USAGE.md When using `hkml patch format`, you can specify commits using the `subject()` format. This example converts three commits before a specific commit to patch files. ```bash hkml patch format "subject(hkml_patch: implement feature X)~4..subject(hkml_patch: implement feature X)~1" ``` -------------------------------- ### Get Sashiko.dev Inline Review Comments for a Patch Source: https://github.com/sjp38/hackermail/blob/master/USAGE.md Use this command to fetch inline review comments for a specific patch, identified by its message ID. This is useful for detailed code review analysis. ```bash $ hkml patch sashiko_dev 20260322155728.81434-2-sj@kernel.org # patch subject: [RFC PATCH v4 01/10] mm/damon/core: introduce damon_ctx->paused # patch msgid: 20260322155728.81434-2-sj@kernel.org # review status: Reviewed # reivew result: Review completed successfully. # inline review: commit 2a3be2c8b6c327ef72163cd54e6121ef72b9c932 Author: SeongJae Park mm/damon/core: introduce damon_ctx->paused DAMON supports only start and stop of the execution. When it is stopped, its internal data that it self-trained goes away. It will be useful if the execution can be paused and resumed with the previous self-trained data. > diff --git a/mm/damon/core.c b/mm/damon/core.c > index db6c67e52d2b..0ab2cfa848e6 100644 > --- a/mm/damon/core.c > +++ b/mm/damon/core.c [ ... ] > + kdamond_usleep(ctx->attrs.sample_interval); Could this result in a busy loop if sample_interval is 0? The DAMON API allows attrs.sample_interval to be 0 (for example, when tuning is disabled via goal.aggrs == 0). If sample_interval is 0, this invokes usleep_range_idle(0, 1), which sleeps for at most 1 microsecond using an hrtimer. Since the normally expensive monitoring operations are bypassed while paused, would this cause the thread to loop almost instantly and create an interrupt storm? > + /* allow caller unset pause via damon_call() */ > + kdamond_call(ctx, false); > + if (kdamond_need_stop(ctx) || ctx->maybe_corrupted) > + goto done; > + } > if (!list_empty(&ctx->schemes)) > kdamond_apply_schemes(ctx); > else # end of sashiko.dev inline review # review url: https://sashiko.dev/#/patchset/20260322155728.81434-2-sj@kernel.org ``` -------------------------------- ### Apply Linux Kernel Patches to Local Source Tree Source: https://github.com/sjp38/hackermail/blob/master/USAGE.md Use `hkml patch apply` to apply a patch series to your local source tree. This example applies the same patch series checked previously, specifying the repository path. ```bash $ hkml patch apply 28 --repo ../linux [...] Applying: mm/damon/paddr: implement damon_folio_young() Applying: mm/damon/paddr: implement damon_folio_mkold() Applying: mm/damon: add DAMOS filter type YOUNG Applying: mm/damon/paddr: support DAMOS filter type YOUNG $ $ $ git -C ../linux log -4 --oneline af5c978e1153 (HEAD) mm/damon/paddr: support DAMOS filter type YOUNG d8e76d9430ed mm/damon: add DAMOS filter type YOUNG f76e7c473942 mm/damon/paddr: implement damon_folio_mkold() 29829d099dd9 mm/damon/paddr: implement damon_folio_young() ``` -------------------------------- ### Export Linux Kernel Patches as Files Source: https://github.com/sjp38/hackermail/blob/master/USAGE.md Use `hkml patch export` to save patches from a mail identifier as individual files. This example exports a patch series starting with mail ID '11'. It prompts for confirmation and indicates where files are saved. ```bash $ hkml list damon [...] [11] [PATCH 0/9] Docs/damon: minor fixups and improvements (SeongJae Park, 2024/07/01 12:26) [12] [PATCH 1/9] Docs/mm/damon/design: fix two typos (SeongJae Park, 2024/07/01 12:26) [...] $ hkml patch export 11 use patch.msgid.link domain for patch origin? [Y/n] Given mail seems the cover letter of the patchset. Adding the cover letter on the first patch. patch file for mail '[PATCH 1/9] Docs/mm/damon/design: fix two typos' is saved at '/tmp/hkml_patch_-patch-1-9--docs-mm-damon-design--fix-two-typosudjxu63b' patch file for mail '[PATCH 2/9] Docs/mm/damon/design: clarify regions merging operation' is saved at '/tmp/hkml_patch_-patch-2-9--docs-mm-damon-design--clarify-regions-merging-om5v8v5tv' [...] ``` -------------------------------- ### List Recent Mails in a Mailing List Source: https://github.com/sjp38/hackermail/blob/master/README.md Lists recent mails in a specified Linux kernel subsystem mailing list. The first time it's run, it will prompt for setup and fetching mails from the internet. ```bash $ ./hkml list damon ``` -------------------------------- ### Add a mail monitoring request Source: https://github.com/sjp38/hackermail/blob/master/USAGE.md Configure hackermail to monitor specific mailing lists for new emails. This example sets up monitoring for the 'DAMON Beer/Coffee/Tea chat series' with hourly checks and email notifications. ```bash $ hkml monitor add damon \ --subject_keywords "DAMON Beer/Coffee/Tea chat series" \ --monitor_interval 3600 --lore --noti_mails $YOUR_EMAIL_ADDRESS \ --name "DAMON chat series monitoring" ``` -------------------------------- ### Check Linux Kernel Patches with checkpatch.pl Source: https://github.com/sjp38/hackermail/blob/master/USAGE.md Use `hkml patch check` to validate a patch series against a checker program like Linux's `checkpatch.pl`. This example shows checking a patch series identified by '28'. ```bash $ hkml list damon [...] [28] [RFC PATCH v2 0/4] mm/damon: add a DAMOS filter type for page granularity access recheck (SeongJae Park, 2024/03/11 13:45) [29] [RFC PATCH v2 1/4] mm/damon/paddr: implement damon_folio_young() (SeongJae Park, 2024/03/11 13:45) [...] $ $ $ hkml patch check 28 ../linux/scripts/checkpatch.pl [RFC PATCH v2 1/4] mm/damon/paddr: implement damon_folio_young() total: 0 errors, 0 warnings, 65 lines checked /tmp/hkml_patch_7fkfxxat has no obvious style problems and is ready for submission. [RFC PATCH v2 2/4] mm/damon/paddr: implement damon_folio_mkold() total: 0 errors, 0 warnings, 57 lines checked /tmp/hkml_patch_s9i6r8xh has no obvious style problems and is ready for submission. [RFC PATCH v2 3/4] mm/damon: add DAMOS filter type YOUNG total: 0 errors, 0 warnings, 21 lines checked /tmp/hkml_patch_8223u8v9 has no obvious style problems and is ready for submission. [RFC PATCH v2 4/4] mm/damon/paddr: support DAMOS filter type YOUNG total: 0 errors, 0 warnings, 11 lines checked /tmp/hkml_patch_4anxkvj3 has no obvious style problems and is ready for submission. ``` -------------------------------- ### Display Help for hkml Source: https://github.com/sjp38/hackermail/blob/master/README.md Displays the help message for the hkml command, showing all available options and commands. ```bash $ ./hkml -h ``` -------------------------------- ### Initialize Hackermail with a Manifest File Source: https://github.com/sjp38/hackermail/blob/master/USAGE.md Initializes the hackermail working directory and sets the manifest file. This command prepares hackermail to manage emails for the specified mailing lists. ```bash $ hkml init --manifest ./lore.json ``` -------------------------------- ### Display Help for hkml list command Source: https://github.com/sjp38/hackermail/blob/master/README.md Displays the help message specifically for the 'list' command within hkml, detailing its options. ```bash $ ./hkml list -h ``` -------------------------------- ### Format Patch with TODO Commentary Handling Source: https://github.com/sjp38/hackermail/blob/master/USAGE.md Demonstrates how `hkml patch format` handles a 'TODO: move to commentary' line in a commit message, prompting the user to move the paragraph to the commentary section. Shows the interactive prompt and the resulting patch file. ```bash $ git show HEAD the subject of the patch long description of the patch. long description of the patch line 2. TODO: mvoe to commentary Change from v1: - v1: https://lore.kernel.org/foo - fix a bug. Signed-off-by: John Doe --- [...] $ hkml patch format HEAD^..HEAD [...] Found below TODO TODO: move to commentary Changes from v1 - v1: https://lore.kernel.org/20260411183029.81030-1-sj@kernel.org - replace typo-ed word: s/a non-mandastory/an optional/. - wordsmith recipients reduction rule of thumbs. Do that? [Y/n] y [...] $ cat ./0001-the-subject-of-the-patch.patch the subject of the patch long description of the patch. long description of the patch line 2. Signed-off-by: John Doe --- Change from v1: - v1: https://lore.kernel.org/foo - fix a bug. [...] ``` -------------------------------- ### Format Patches and Manage Cover Letter Source: https://github.com/sjp38/hackermail/blob/master/USAGE.md This snippet shows the interactive process of formatting patches using `hkml patch format`. It includes prompts for subject, blurb, patch checking, subject review, recipient review, and the final `git send-email` command. ```bash $ hkml patch format "subject(Docs/admin-guide/mm/damon/usage: add intervals_goal directory on the hierarchy)~8..subject(Docs/admin-guide/mm/damon/usage: add intervals_goal directory on the hierarchy)" made below patch files ./0000-cover-letter.patch ./0001-mm-damon-add-data-structure-for-monitoring-intervals.patch ./0002-mm-damon-core-implement-intervals-auto-tuning.patch ./0003-mm-damon-sysfs-implement-intervals-tuning-goal-direc.patch ./0004-mm-damon-sysfs-commit-intervals-tuning-goal.patch ./0005-mm-damon-sysfs-implement-a-command-to-update-auto-tu.patch ./0006-Docs-mm-damon-design-document-for-intervals-auto-tun.patch ./0007-Docs-ABI-damon-document-intervals-auto-tuning-ABI.patch ./0008-Docs-admin-guide-mm-damon-usage-add-intervals_goal-d.patch get_maintainer.pl found. add recipients using it. You did not set --to, and we will set below as Cc: 0. Andrew Morton 1. Jonathan Corbet 2. SeongJae Park 3. damon@lists.linux.dev 4. linux-doc@vger.kernel.org 5. linux-kernel@vger.kernel.org 6. linux-mm@kvack.org Shall I set one of above as To: for all mails? [N/index] 0 May I add the base commit to the coverletter? [Y/n] I will do below to the coverletter (./0000-cover-letter.patch) - replace "*** SUBJECT HERE ***" with mm/damon: auto-tune aggregation interval - replace "*** BLURB HERE ***" with DAMON requires time-consuming and repetitive aggregation interval tuning. Introduce a feature for automating it using a feedback loop [...] will conduct more evaluations with more massive and realistic workloads and share the results by the time that we drop the RFC tag. looks good? [Y/n] checkpatch.pl found. shall I run it? (hint: you can do this manually via 'hkml patch check') [Y/n] y Below 0 patches may have problems Looks good? [Y/n] y would you review subjects of formatted patches? [Y/n] y below are the subjects [PATCH 0/8] mm/damon: auto-tune aggregation interval [PATCH 1/8] mm/damon: add data structure for monitoring intervals auto-tuning [PATCH 2/8] mm/damon/core: implement intervals auto-tuning [PATCH 3/8] mm/damon/sysfs: implement intervals tuning goal directory [PATCH 4/8] mm/damon/sysfs: commit intervals tuning goal [PATCH 5/8] mm/damon/sysfs: implement a command to update auto-tuned monitoring intervals [PATCH 6/8] Docs/mm/damon/design: document for intervals auto-tuning [PATCH 7/8] Docs/ABI/damon: document intervals auto-tuning ABI [PATCH 8/8] Docs/admin-guide/mm/damon/usage: add intervals_goal directory on the hierarchy Looks good? [Y/n] y would you review recipients of formatted patches? (hint: you can do this manually via 'hkml patch recipients') [Y/n] y Common recipients: To: Andrew Morton Cc: SeongJae Park Cc: damon@lists.linux.dev Cc: linux-kernel@vger.kernel.org Cc: linux-mm@kvack.org Additional recipients for "[PATCH 0/8] mm/damon: auto-tune aggregation interval" Cc: Jonathan Corbet Cc: linux-doc@vger.kernel.org Additional recipients for "[PATCH 6/8] Docs/mm/damon/design: document for intervals auto-tuning" Cc: Jonathan Corbet Cc: linux-doc@vger.kernel.org Additional recipients for "[PATCH 8/8] Docs/admin-guide/mm/damon/usage: add intervals_goal directory on the hierarchy" Cc: Jonathan Corbet Cc: linux-doc@vger.kernel.org Looks good? [Y/n] y May I send the patches? If you say yes, I will do below git send-email \ ./0000-cover-letter.patch \ ./0001-mm-damon-add-data-structure-for-monitoring-intervals.patch \ ./0002-mm-damon-core-implement-intervals-auto-tuning.patch \ ./0003-mm-damon-sysfs-implement-intervals-tuning-goal-direc.patch \ ./0004-mm-damon-sysfs-commit-intervals-tuning-goal.patch \ ./0005-mm-damon-sysfs-implement-a-command-to-update-auto-tu.patch \ ./0006-Docs-mm-damon-design-document-for-intervals-auto-tun.patch \ ./0007-Docs-ABI-damon-document-intervals-auto-tuning-ABI.patch \ ./0008-Docs-admin-guide-mm-damon-usage-add-intervals_goal-d.patch \ You can manually review and modify the patch files before answering the next question. Do it? [y/N] n ``` -------------------------------- ### Open git log Source: https://github.com/sjp38/hackermail/blob/master/USAGE.md Executes a git command and displays its output using the 'open' subcommand. This is useful for browsing git history and related discussions within the hkml interactive viewer. ```bash $ hkml open "git log -10" ``` -------------------------------- ### Open local patch file Source: https://github.com/sjp38/hackermail/blob/master/USAGE.md Opens a local patch file for viewing using the 'open' subcommand. This allows for browsing patch content within the hkml interactive viewer. ```bash $ hkml open ./foo-bar.patch ``` -------------------------------- ### Exporting mails to mbox format Source: https://github.com/sjp38/hackermail/blob/master/USAGE.md Shows how to export a range of emails from a list to an mbox file using the 'export' sub-command, followed by listing the exported mails. ```bash $ hkml export --range 0 4 foo.mbox $ hkml list foo.mbox --since 2024-02-15 --until 2024-02-17 [0] [PATCH 0/5] Docs/mm/damon: misc readability improvements (SeongJae Park, 24/02/16 16:58) [1] [PATCH 1/5] Docs/mm/damon/maintainer-profile: fix reference links for mm-[un]stable tree (SeongJae Park, 24/02/16 16:58) [2] [PATCH 2/5] Docs/mm/damon: move the list of DAMOS actions to design doc (SeongJae Park, 24/02/16 16:58) [3] [PATCH 3/5] Docs/mm/damon: move DAMON operation sets list from the usage to the design document (SeongJae Park, 24/02/16 16:58) ``` -------------------------------- ### List Emails with Date Range and Minimum Mail Count Source: https://github.com/sjp38/hackermail/blob/master/USAGE.md Lists emails sent to the 'damon' mailing list within a specific date range and with a minimum number of mails. The `--fetch` option retrieves the full email content. ```bash $ hkml list damon --fetch --since 2024-02-15 --until 2024-02-17 --min_nr_mails 0 ``` -------------------------------- ### Forward Sashiko.dev Status/Comments to Mailing List Source: https://github.com/sjp38/hackermail/blob/master/USAGE.md Use `hkml patch sashiko_dev --forward` to generate and send a draft email forwarding sashiko.dev review status or comments to a mailing list. The command opens a text editor for draft modification before sending. ```bash hkml patch sashiko_dev --forward ``` -------------------------------- ### List all existing tags and mail counts Source: https://github.com/sjp38/hackermail/blob/master/USAGE.md Displays all generated tags along with the number of mails associated with each tag. This command provides an overview of the tagging system's current state. ```bash $ hkml tag list ``` -------------------------------- ### Open a specific email by index Source: https://github.com/sjp38/hackermail/blob/master/USAGE.md Opens the 3rd mail from the last list or thread output using its index. The output is displayed in hkml's interactive viewer. ```bash $ hkml open 3 ``` -------------------------------- ### Fetch Emails from a Mailing List Source: https://github.com/sjp38/hackermail/blob/master/USAGE.md Downloads recent emails from a specified mailing list (e.g., linux-mm) to the local storage. This command is used to populate the local email repository. ```bash $ hkml fetch linux-mm ``` -------------------------------- ### Add multiple tags to a mail Source: https://github.com/sjp38/hackermail/blob/master/USAGE.md Adds three tags ('tag_example', 'damon_patch', 'not_yet_merged') to the 5th mail from the last list or thread output. Tags can be any arbitrary string. ```bash $ hkml tag add 5 tag_example damon_patch not_yet_merged ``` -------------------------------- ### Synchronize mail tagging information Source: https://github.com/sjp38/hackermail/blob/master/USAGE.md Synchronize mail tagging data between machines using a remote git repository. Ensure the git repository is accessible for pushing commits. ```bash # from the first machine $ ssh machine_1 machine_1:~ $ hkml tag list to_read_later: 3 mails to_review_later: 3 mails to_test_later: 4 mails machine_1:~ $ hkml sync --remote git@github.com:$USER/hkml_backup_repo.git $ $ # move to the second machine $ ssh machine_2 machine_2:~ $ hkml tag list machine_2:~ $ machine_2:~ $ hkml sync --remote git@github.com:$USER/hkml_backup_repo.git [...] machine_2:~ $ hkml tag list to_read_later: 3 mails to_review_later: 3 mails to_test_later: 4 mails ``` -------------------------------- ### Create Bogus Commit as a Merge Commit Source: https://github.com/sjp38/hackermail/blob/master/USAGE.md To create a bogus commit as a merge commit, pass the baseline commit of the change via the `--as_merge` option to `hkml patch commit_cv`. ```bash hkml patch commit_cv --as_merge ``` -------------------------------- ### Show Monitoring Status Source: https://github.com/sjp38/hackermail/blob/master/USAGE.md Displays the current status of monitoring and lists all active monitoring requests. Use this to check which requests are being monitored. ```bash hkml monitor status ``` -------------------------------- ### List Emails from a Mailing List Source: https://github.com/sjp38/hackermail/blob/master/USAGE.md Lists downloaded emails from a specified mailing list, defaulting to mails sent within the last three days. It can optionally download new mails and filter by various criteria. ```bash $ hkml list linux-mm ``` -------------------------------- ### Format Git Commits into Patch Files Source: https://github.com/sjp38/hackermail/blob/master/USAGE.md Use `hkml patch format` to format a range of git commits into patch files suitable for `git send-email`. It uses `git format-patch` internally and adds extra functionality. ```bash hkml patch format ``` -------------------------------- ### Generate Linux Kernel Mailing List Manifest Source: https://github.com/sjp38/hackermail/blob/master/USAGE.md Generates a JSON manifest file for the Linux kernel mailing lists from lore.kernel.org. This is a prerequisite for initializing hackermail for kernel development. ```bash $ hkml manifest fetch_lore --fetch_lore_output ./lore.json ``` -------------------------------- ### List Emails with Hackermail Source: https://github.com/sjp38/hackermail/blob/master/USAGE.md Displays a list of emails, including patch series information. The first column shows the index or identifier for each mail. ```bash # 9 mails, 2 threads, 2 new threads # 9 patches, 2 series # oldest: 2024-02-16 11:40:23-08:00 # newest: 2024-02-16 16:58:42-08:00 [0] [PATCH 0/5] Docs/mm/damon: misc readability improvements (SeongJae Park, 24/02/16 16:58) [1] [PATCH 1/5] Docs/mm/damon/maintainer-profile: fix reference links for mm-[un]stable tree (SeongJae Park, 24/02/16 16:58) [2] [PATCH 2/5] Docs/mm/damon: move the list of DAMOS actions to design doc (SeongJae Park, 24/02/16 16:58) [3] [PATCH 3/5] Docs/mm/damon: move DAMON operation sets list from the usage to the design document (SeongJae Park, 24/02/16 16:58) [4] [PATCH 4/5] Docs/mm/damon: move monitoring target regions setup detail from the usage to the design document (SeongJae Park, 24/02/16 16:58) [5] [PATCH 5/5] Docs/admin-guide/mm/damon/usage: fix wrong quotas diabling condition (SeongJae Park, 24/02/16 16:58) [6] [PATCH 0/2] mm/damon: fix quota status loss due to online tunings (SeongJae Park, 24/02/16 11:40) [7] [PATCH 1/2] mm/damon/reclaim: fix quota stauts loss due to online tunings (SeongJae Park, 24/02/16 11:40) [8] [PATCH 2/2] mm/damon/lru_sort: fix quota status loss due to online tunings (SeongJae Park, 24/02/16 11:40) ``` -------------------------------- ### Create Bogus Commit for Patch Management Source: https://github.com/sjp38/hackermail/blob/master/USAGE.md Use `hkml patch commit_cv` to create a bogus commit, which is useful for managing multiple or long changes split into multiple patchsets. By default, it creates a baseline commit. ```bash hkml patch commit_cv ``` -------------------------------- ### List mails tagged 'tag_damon' Source: https://github.com/sjp38/hackermail/blob/master/USAGE.md Lists all mails associated with the 'tag_damon' tag. This utilizes the 'list' command with a tag as the mail source. ```bash $ hkml list tag_damon ``` -------------------------------- ### List Entire Email Thread Source: https://github.com/sjp38/hackermail/blob/master/USAGE.md Retrieves all messages belonging to a specific email thread, identified by a mail identifier. This is useful for viewing complete conversations on large mailing lists where `hkml list` might omit older messages. ```bash $ hkml thread 3 ``` -------------------------------- ### Filter Patches for Review Source: https://github.com/sjp38/hackermail/blob/master/USAGE.md Filters emails to show only patch mails that have not yet received a 'Reviewed-by:' tag. This is an experimental feature. ```bash $ hkml list damon --patches_for reviewer "SeongJae Park " --stdout --fetch # stat for total mails # 66 mails, 17 threads, 17 new threads # 27 patches, 14 series # oldest: 2025-04-08 00:55:53-07:00 # newest: 2025-05-24 09:29:10-07:00 # # stat for filtered mails # 2 mails, 2 threads, 2 new threads # 2 patches, 2 series # oldest: 2025-04-08 00:55:53-07:00 # newest: 2025-05-21 00:07:47-07:00 [03] [PATCH] mm/damon: make region calculations more precise (Enze Li, 2025/05/21 00:07) [50] [RFC PATCH] mm/damon: add full LPAE support for memory monitoring above 4GB (Ze Zuo, 2025/04/08 00:55) ``` -------------------------------- ### Search Public-inbox Mails Source: https://github.com/sjp38/hackermail/blob/master/USAGE.md Uses public-inbox search queries for more sophisticated mail filtering. This is an experimental feature. ```bash $ hkml list damon --pisearch "foo AND range damos filter" # 2 mails, 2 threads, 0 new threads # 2 patches, 0 series # oldest: 2023-07-28 13:34:35-07:00 ``` -------------------------------- ### Remove a tag from a mail Source: https://github.com/sjp38/hackermail/blob/master/USAGE.md Removes the 'tag_damon' tag from the 0-th mail in the current list. The removal is confirmed by subsequently listing all tags. ```bash $ hkml tag remove 0 tag_damon ``` ```bash $ hkml tag list ``` === COMPLETE CONTENT === This response contains all available snippets from this library. No additional content exists. Do not make further requests.