asher-cli 1.3.0__tar.gz → 1.4.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (114) hide show
  1. {asher_cli-1.3.0 → asher_cli-1.4.0}/.github/workflows/bandit.yml +1 -1
  2. {asher_cli-1.3.0 → asher_cli-1.4.0}/.github/workflows/claude-code-review.yml +1 -1
  3. {asher_cli-1.3.0 → asher_cli-1.4.0}/.github/workflows/claude.yml +1 -1
  4. asher_cli-1.4.0/.github/workflows/dependency-automerge.yml +66 -0
  5. {asher_cli-1.3.0 → asher_cli-1.4.0}/CHANGELOG.md +16 -0
  6. {asher_cli-1.3.0 → asher_cli-1.4.0}/PKG-INFO +6 -4
  7. {asher_cli-1.3.0 → asher_cli-1.4.0}/README.md +3 -1
  8. {asher_cli-1.3.0 → asher_cli-1.4.0}/pyproject.toml +3 -3
  9. asher_cli-1.4.0/renovate.json +48 -0
  10. {asher_cli-1.3.0 → asher_cli-1.4.0}/uv.lock +11 -11
  11. asher_cli-1.3.0/renovate.json +0 -22
  12. {asher_cli-1.3.0 → asher_cli-1.4.0}/.claude/hooks/block-env.py +0 -0
  13. {asher_cli-1.3.0 → asher_cli-1.4.0}/.claude/settings.json +0 -0
  14. {asher_cli-1.3.0 → asher_cli-1.4.0}/.claude/skills/mcp-bridge/SKILL.md +0 -0
  15. {asher_cli-1.3.0 → asher_cli-1.4.0}/.claude/skills/pylitterbot-ref/SKILL.md +0 -0
  16. {asher_cli-1.3.0 → asher_cli-1.4.0}/.claude/skills/textual/SKILL.md +0 -0
  17. {asher_cli-1.3.0 → asher_cli-1.4.0}/.env.example +0 -0
  18. {asher_cli-1.3.0 → asher_cli-1.4.0}/.githooks/pre-push +0 -0
  19. {asher_cli-1.3.0 → asher_cli-1.4.0}/.github/FUNDING.yml +0 -0
  20. {asher_cli-1.3.0 → asher_cli-1.4.0}/.github/pull_request_template.md +0 -0
  21. {asher_cli-1.3.0 → asher_cli-1.4.0}/.github/workflows/ci.yml +0 -0
  22. {asher_cli-1.3.0 → asher_cli-1.4.0}/.github/workflows/coverage.yml +0 -0
  23. {asher_cli-1.3.0 → asher_cli-1.4.0}/.github/workflows/release.yml +0 -0
  24. {asher_cli-1.3.0 → asher_cli-1.4.0}/.gitignore +0 -0
  25. {asher_cli-1.3.0 → asher_cli-1.4.0}/.vscode/launch.json +0 -0
  26. {asher_cli-1.3.0 → asher_cli-1.4.0}/.vscode/settings.json +0 -0
  27. {asher_cli-1.3.0 → asher_cli-1.4.0}/.vscode/tasks.json +0 -0
  28. {asher_cli-1.3.0 → asher_cli-1.4.0}/CLAUDE.md +0 -0
  29. {asher_cli-1.3.0 → asher_cli-1.4.0}/CODEOWNERS +0 -0
  30. {asher_cli-1.3.0 → asher_cli-1.4.0}/LICENSE +0 -0
  31. {asher_cli-1.3.0 → asher_cli-1.4.0}/app.py +0 -0
  32. {asher_cli-1.3.0 → asher_cli-1.4.0}/asher/__init__.py +0 -0
  33. {asher_cli-1.3.0 → asher_cli-1.4.0}/asher/__main__.py +0 -0
  34. {asher_cli-1.3.0 → asher_cli-1.4.0}/asher/activity_labels.py +0 -0
  35. {asher_cli-1.3.0 → asher_cli-1.4.0}/asher/app.py +0 -0
  36. {asher_cli-1.3.0 → asher_cli-1.4.0}/asher/auth.py +0 -0
  37. {asher_cli-1.3.0 → asher_cli-1.4.0}/asher/autostart.py +0 -0
  38. {asher_cli-1.3.0 → asher_cli-1.4.0}/asher/cats.py +0 -0
  39. {asher_cli-1.3.0 → asher_cli-1.4.0}/asher/commands/__init__.py +0 -0
  40. {asher_cli-1.3.0 → asher_cli-1.4.0}/asher/commands/base.py +0 -0
  41. {asher_cli-1.3.0 → asher_cli-1.4.0}/asher/completion.py +0 -0
  42. {asher_cli-1.3.0 → asher_cli-1.4.0}/asher/config.py +0 -0
  43. {asher_cli-1.3.0 → asher_cli-1.4.0}/asher/connection/__init__.py +0 -0
  44. {asher_cli-1.3.0 → asher_cli-1.4.0}/asher/constants.py +0 -0
  45. {asher_cli-1.3.0 → asher_cli-1.4.0}/asher/daemon.py +0 -0
  46. {asher_cli-1.3.0 → asher_cli-1.4.0}/asher/desktoptheme.py +0 -0
  47. {asher_cli-1.3.0 → asher_cli-1.4.0}/asher/export.py +0 -0
  48. {asher_cli-1.3.0 → asher_cli-1.4.0}/asher/faults.py +0 -0
  49. {asher_cli-1.3.0 → asher_cli-1.4.0}/asher/headless.py +0 -0
  50. {asher_cli-1.3.0 → asher_cli-1.4.0}/asher/helpers.py +0 -0
  51. {asher_cli-1.3.0 → asher_cli-1.4.0}/asher/history_view.py +0 -0
  52. {asher_cli-1.3.0 → asher_cli-1.4.0}/asher/launcher.py +0 -0
  53. {asher_cli-1.3.0 → asher_cli-1.4.0}/asher/login_flow.py +0 -0
  54. {asher_cli-1.3.0 → asher_cli-1.4.0}/asher/mcp_bridge.py +0 -0
  55. {asher_cli-1.3.0 → asher_cli-1.4.0}/asher/mcp_config.py +0 -0
  56. {asher_cli-1.3.0 → asher_cli-1.4.0}/asher/monitoring/__init__.py +0 -0
  57. {asher_cli-1.3.0 → asher_cli-1.4.0}/asher/notifications.py +0 -0
  58. {asher_cli-1.3.0 → asher_cli-1.4.0}/asher/robot_adapters.py +0 -0
  59. {asher_cli-1.3.0 → asher_cli-1.4.0}/asher/robot_protocol.py +0 -0
  60. {asher_cli-1.3.0 → asher_cli-1.4.0}/asher/slash-commands/__init__.py +0 -0
  61. {asher_cli-1.3.0 → asher_cli-1.4.0}/asher/theme.py +0 -0
  62. {asher_cli-1.3.0 → asher_cli-1.4.0}/asher/tray.py +0 -0
  63. {asher_cli-1.3.0 → asher_cli-1.4.0}/asher/ui/__init__.py +0 -0
  64. {asher_cli-1.3.0 → asher_cli-1.4.0}/asher/ui/style.tcss +0 -0
  65. {asher_cli-1.3.0 → asher_cli-1.4.0}/asher/updates.py +0 -0
  66. {asher_cli-1.3.0 → asher_cli-1.4.0}/asher/watcher.py +0 -0
  67. {asher_cli-1.3.0 → asher_cli-1.4.0}/cliff.toml +0 -0
  68. {asher_cli-1.3.0 → asher_cli-1.4.0}/docs/ROADMAP.md +0 -0
  69. {asher_cli-1.3.0 → asher_cli-1.4.0}/docs/roadmap-archive/README.md +0 -0
  70. {asher_cli-1.3.0 → asher_cli-1.4.0}/docs/roadmap-archive/cat-panel-badges.md +0 -0
  71. {asher_cli-1.3.0 → asher_cli-1.4.0}/docs/roadmap-archive/config-persistence.md +0 -0
  72. {asher_cli-1.3.0 → asher_cli-1.4.0}/docs/roadmap-archive/desktop-notifications.md +0 -0
  73. {asher_cli-1.3.0 → asher_cli-1.4.0}/docs/roadmap-archive/fault-monitoring.md +0 -0
  74. {asher_cli-1.3.0 → asher_cli-1.4.0}/docs/roadmap-archive/headless-export.md +0 -0
  75. {asher_cli-1.3.0 → asher_cli-1.4.0}/docs/roadmap-archive/history-export.md +0 -0
  76. {asher_cli-1.3.0 → asher_cli-1.4.0}/docs/roadmap-archive/tab-completion.md +0 -0
  77. {asher_cli-1.3.0 → asher_cli-1.4.0}/requirements.txt +0 -0
  78. {asher_cli-1.3.0 → asher_cli-1.4.0}/test.py +0 -0
  79. {asher_cli-1.3.0 → asher_cli-1.4.0}/tests/__init__.py +0 -0
  80. {asher_cli-1.3.0 → asher_cli-1.4.0}/tests/conftest.py +0 -0
  81. {asher_cli-1.3.0 → asher_cli-1.4.0}/tests/test_activity_labels.py +0 -0
  82. {asher_cli-1.3.0 → asher_cli-1.4.0}/tests/test_app_pilot.py +0 -0
  83. {asher_cli-1.3.0 → asher_cli-1.4.0}/tests/test_auth.py +0 -0
  84. {asher_cli-1.3.0 → asher_cli-1.4.0}/tests/test_auth_pilot.py +0 -0
  85. {asher_cli-1.3.0 → asher_cli-1.4.0}/tests/test_autostart.py +0 -0
  86. {asher_cli-1.3.0 → asher_cli-1.4.0}/tests/test_cats.py +0 -0
  87. {asher_cli-1.3.0 → asher_cli-1.4.0}/tests/test_commands_pilot.py +0 -0
  88. {asher_cli-1.3.0 → asher_cli-1.4.0}/tests/test_completion.py +0 -0
  89. {asher_cli-1.3.0 → asher_cli-1.4.0}/tests/test_config.py +0 -0
  90. {asher_cli-1.3.0 → asher_cli-1.4.0}/tests/test_connection.py +0 -0
  91. {asher_cli-1.3.0 → asher_cli-1.4.0}/tests/test_connection_mixin.py +0 -0
  92. {asher_cli-1.3.0 → asher_cli-1.4.0}/tests/test_daemon.py +0 -0
  93. {asher_cli-1.3.0 → asher_cli-1.4.0}/tests/test_desktoptheme.py +0 -0
  94. {asher_cli-1.3.0 → asher_cli-1.4.0}/tests/test_export.py +0 -0
  95. {asher_cli-1.3.0 → asher_cli-1.4.0}/tests/test_faults.py +0 -0
  96. {asher_cli-1.3.0 → asher_cli-1.4.0}/tests/test_headless.py +0 -0
  97. {asher_cli-1.3.0 → asher_cli-1.4.0}/tests/test_history_view.py +0 -0
  98. {asher_cli-1.3.0 → asher_cli-1.4.0}/tests/test_launcher.py +0 -0
  99. {asher_cli-1.3.0 → asher_cli-1.4.0}/tests/test_lr5_commands.py +0 -0
  100. {asher_cli-1.3.0 → asher_cli-1.4.0}/tests/test_mcp_bridge.py +0 -0
  101. {asher_cli-1.3.0 → asher_cli-1.4.0}/tests/test_mcp_command.py +0 -0
  102. {asher_cli-1.3.0 → asher_cli-1.4.0}/tests/test_mcp_config.py +0 -0
  103. {asher_cli-1.3.0 → asher_cli-1.4.0}/tests/test_missing_robot_commands.py +0 -0
  104. {asher_cli-1.3.0 → asher_cli-1.4.0}/tests/test_monitoring.py +0 -0
  105. {asher_cli-1.3.0 → asher_cli-1.4.0}/tests/test_new_commands_pilot.py +0 -0
  106. {asher_cli-1.3.0 → asher_cli-1.4.0}/tests/test_notifications.py +0 -0
  107. {asher_cli-1.3.0 → asher_cli-1.4.0}/tests/test_robot_adapters.py +0 -0
  108. {asher_cli-1.3.0 → asher_cli-1.4.0}/tests/test_tray.py +0 -0
  109. {asher_cli-1.3.0 → asher_cli-1.4.0}/tests/test_ui.py +0 -0
  110. {asher_cli-1.3.0 → asher_cli-1.4.0}/tests/test_updates.py +0 -0
  111. {asher_cli-1.3.0 → asher_cli-1.4.0}/tests/test_version_command.py +0 -0
  112. {asher_cli-1.3.0 → asher_cli-1.4.0}/tests/test_watcher.py +0 -0
  113. {asher_cli-1.3.0 → asher_cli-1.4.0}/tests/testhelpers.py +0 -0
  114. {asher_cli-1.3.0 → asher_cli-1.4.0}/watchrun.py +0 -0
@@ -41,7 +41,7 @@ jobs:
41
41
  -c pyproject.toml -r . -f sarif -o bandit.sarif --exit-zero
42
42
 
43
43
  - name: Upload SARIF to code scanning
44
- uses: github/codeql-action/upload-sarif@ff2f1c621b7f889edc0d3c761ac2e6a3f8cdb0dd # v4.37.7
44
+ uses: github/codeql-action/upload-sarif@cdf488f595d80d6e07e03d4674febd5ab45fa938 # v4.37.9
45
45
  with:
46
46
  sarif_file: bandit.sarif
47
47
  category: bandit
@@ -33,7 +33,7 @@ jobs:
33
33
 
34
34
  - name: Run Claude Code Review
35
35
  id: claude-review
36
- uses: anthropics/claude-code-action@9d7150bc8a3dae8149739a88019d192b579ad90c # v1
36
+ uses: anthropics/claude-code-action@9c5ddab2e6d17b83ea679153b31f1d5f023cf636 # v1
37
37
  with:
38
38
  claude_code_oauth_token: ${{ secrets.CLAUDE_CODE_OAUTH_TOKEN }}
39
39
  plugin_marketplaces: 'https://github.com/anthropics/claude-code.git'
@@ -32,7 +32,7 @@ jobs:
32
32
 
33
33
  - name: Run Claude Code
34
34
  id: claude
35
- uses: anthropics/claude-code-action@9d7150bc8a3dae8149739a88019d192b579ad90c # v1
35
+ uses: anthropics/claude-code-action@9c5ddab2e6d17b83ea679153b31f1d5f023cf636 # v1
36
36
  with:
37
37
  claude_code_oauth_token: ${{ secrets.CLAUDE_CODE_OAUTH_TOKEN }}
38
38
 
@@ -0,0 +1,66 @@
1
+ name: Dependency auto-merge
2
+
3
+ on:
4
+ pull_request_target:
5
+ types: [opened, synchronize, reopened, edited, labeled]
6
+
7
+ permissions:
8
+ contents: write
9
+ pull-requests: write
10
+
11
+ jobs:
12
+ automerge:
13
+ runs-on: ubuntu-latest
14
+ if: github.event.pull_request.base.repo.full_name == github.repository
15
+ steps:
16
+ - name: Dependabot metadata
17
+ if: github.event.pull_request.user.login == 'dependabot[bot]'
18
+ id: dependabot-metadata
19
+ uses: dependabot/fetch-metadata@v2
20
+ with:
21
+ github-token: "${{ secrets.GITHUB_TOKEN }}"
22
+
23
+ - name: Decide eligibility
24
+ id: decide
25
+ env:
26
+ TITLE: ${{ github.event.pull_request.title }}
27
+ ACTOR: ${{ github.event.pull_request.user.login }}
28
+ LABELS: ${{ join(github.event.pull_request.labels.*.name, ',') }}
29
+ DEPENDABOT_UPDATE_TYPE: ${{ steps.dependabot-metadata.outputs.update-type }}
30
+ run: |
31
+ safe=false
32
+ if [ "$ACTOR" = "dependabot[bot]" ]; then
33
+ # Only semver patch/minor bumps auto-merge; majors always wait for review.
34
+ case "$DEPENDABOT_UPDATE_TYPE" in
35
+ version-update:semver-patch|version-update:semver-minor) safe=true ;;
36
+ esac
37
+ elif [ "$ACTOR" = "karanshukla" ]; then
38
+ # The dependency-update routine commits under this account rather than a
39
+ # bot identity. The `dependencies` label is the reliable signal; the title
40
+ # pattern is a fallback for when it is missing. Either way, a title
41
+ # mentioning "major"/"breaking" is left for manual merge. Only the
42
+ # title is scanned -- dependency-audit bodies routinely mention other
43
+ # packages' major versions, which used to veto safe patch-level PRs.
44
+ matched=false
45
+ case ",$LABELS," in
46
+ *,dependencies,*) matched=true ;;
47
+ esac
48
+ if [ "$matched" = false ]; then
49
+ if printf '%s' "$TITLE" | grep -Eiq '^(chore|fix)(\([a-z0-9/_-]+\))?:.*(dependenc|advisory|CVE|vulnerab|bump)'; then
50
+ matched=true
51
+ fi
52
+ fi
53
+ if [ "$matched" = true ]; then
54
+ if ! printf '%s' "$TITLE" | grep -Eiq '\b(major|breaking)\b'; then
55
+ safe=true
56
+ fi
57
+ fi
58
+ fi
59
+ echo "safe=$safe" >> "$GITHUB_OUTPUT"
60
+
61
+ - name: Enable auto-merge
62
+ if: steps.decide.outputs.safe == 'true'
63
+ env:
64
+ GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
65
+ PR_URL: ${{ github.event.pull_request.html_url }}
66
+ run: gh pr merge --auto --squash "$PR_URL"
@@ -7,6 +7,22 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
7
7
 
8
8
  Generated by [git-cliff](https://git-cliff.org) from conventional commits.
9
9
 
10
+ ## [1.4.0] - 2026-09-13
11
+
12
+ ### 🐛 Bug Fixes
13
+
14
+ - *(ci)* Only scan the PR title for major/breaking in auto-merge (#86)
15
+ - *(deps)* Update dependency pylitterbot to v2025.6.5 (#82)
16
+
17
+ ### 👷 CI/CD
18
+
19
+ - Auto-merge non-major dependency PRs once checks pass (#85)
20
+
21
+ ### 🔧 Miscellaneous
22
+
23
+ - *(renovate)* Squash automerged updates (#84)
24
+ - *(renovate)* Auto-merge non-major updates once checks pass (#83)
25
+
10
26
  ## [1.3.0] - 2026-08-23
11
27
 
12
28
  ### 🚀 Features
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.5
2
2
  Name: asher-cli
3
- Version: 1.3.0
3
+ Version: 1.4.0
4
4
  Summary: Terminal dashboard for Litter Robot (LR3/LR4/LR5) via the Whisker cloud API
5
5
  Project-URL: Homepage, https://github.com/karanshukla/asher-cli
6
6
  Project-URL: Repository, https://github.com/karanshukla/asher-cli
@@ -40,14 +40,14 @@ Classifier: Topic :: Home Automation
40
40
  Requires-Python: >=3.10
41
41
  Requires-Dist: keyring>=24.0.0
42
42
  Requires-Dist: plyer>=2.1.0
43
- Requires-Dist: pylitterbot==2025.6.4
43
+ Requires-Dist: pylitterbot==2025.6.5
44
44
  Requires-Dist: python-dotenv>=1.0.0
45
45
  Requires-Dist: rich>=13.0.0
46
46
  Requires-Dist: textual>=0.47.0
47
47
  Requires-Dist: tzlocal>=5.4
48
48
  Provides-Extra: mcp
49
49
  Requires-Dist: mcp<2; extra == 'mcp'
50
- Requires-Dist: pylitterbot[mcp]==2025.6.4; extra == 'mcp'
50
+ Requires-Dist: pylitterbot[mcp]==2025.6.5; extra == 'mcp'
51
51
  Provides-Extra: tray
52
52
  Requires-Dist: pillow>=10.0; extra == 'tray'
53
53
  Requires-Dist: pygobject>=3.42; (sys_platform == 'linux') and extra == 'tray'
@@ -66,7 +66,9 @@ Description-Content-Type: text/markdown
66
66
 
67
67
  A Claude Code-style terminal dashboard for monitoring and controlling Litter Robot via the Whisker cloud API.
68
68
 
69
- <img width="808" height="351" alt="image" src="https://github.com/user-attachments/assets/6599966f-837c-419c-8692-bfda3533e730" />
69
+ <img width="1165" height="885" alt="image" src="https://github.com/user-attachments/assets/03be7ed3-95f6-45cf-93db-cf5bf84d6499" />
70
+
71
+ <img width="1165" height="885" alt="image" src="https://github.com/user-attachments/assets/5aa60ff1-6e6b-4c71-8376-d96d52d96809" />
70
72
 
71
73
  ## Features
72
74
 
@@ -10,7 +10,9 @@
10
10
 
11
11
  A Claude Code-style terminal dashboard for monitoring and controlling Litter Robot via the Whisker cloud API.
12
12
 
13
- <img width="808" height="351" alt="image" src="https://github.com/user-attachments/assets/6599966f-837c-419c-8692-bfda3533e730" />
13
+ <img width="1165" height="885" alt="image" src="https://github.com/user-attachments/assets/03be7ed3-95f6-45cf-93db-cf5bf84d6499" />
14
+
15
+ <img width="1165" height="885" alt="image" src="https://github.com/user-attachments/assets/5aa60ff1-6e6b-4c71-8376-d96d52d96809" />
14
16
 
15
17
  ## Features
16
18
 
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "asher-cli"
3
- version = "1.3.0"
3
+ version = "1.4.0"
4
4
  description = "Terminal dashboard for Litter Robot (LR3/LR4/LR5) via the Whisker cloud API"
5
5
  readme = "README.md"
6
6
  license = { file = "LICENSE" }
@@ -17,7 +17,7 @@ classifiers = [
17
17
  "Topic :: Home Automation",
18
18
  ]
19
19
  dependencies = [
20
- "pylitterbot==2025.6.4",
20
+ "pylitterbot==2025.6.5",
21
21
  "textual>=0.47.0",
22
22
  "rich>=13.0.0",
23
23
  "python-dotenv>=1.0.0",
@@ -30,7 +30,7 @@ dependencies = [
30
30
  # pylitterbot asks for mcp[cli]>=1.0.0 with no upper bound, but its server does
31
31
  # `from mcp.server.fastmcp import FastMCP`, and mcp 2.0 deleted that module.
32
32
  # Cap it here until pylitterbot ships a 2.x-compatible release.
33
- mcp = ["pylitterbot[mcp]==2025.6.4", "mcp<2"]
33
+ mcp = ["pylitterbot[mcp]==2025.6.5", "mcp<2"]
34
34
  # PyGObject is what puts pystray on its AppIndicator backend. Without it pystray
35
35
  # silently falls back to a legacy XEmbed icon, which KDE Plasma and GNOME no
36
36
  # longer host at all — the watcher runs, draws an icon, and nothing shows it.
@@ -0,0 +1,48 @@
1
+ {
2
+ "$schema": "https://docs.renovatebot.com/renovate-schema.json",
3
+ "extends": [
4
+ "config:recommended"
5
+ ],
6
+ "packageRules": [
7
+ {
8
+ "matchManagers": [
9
+ "pep621"
10
+ ],
11
+ "enabled": false
12
+ },
13
+ {
14
+ "matchManagers": [
15
+ "pep621"
16
+ ],
17
+ "matchPackageNames": [
18
+ "pylitterbot"
19
+ ],
20
+ "enabled": true,
21
+ "schedule": [
22
+ "before 9am on Monday"
23
+ ]
24
+ },
25
+ {
26
+ "matchManagers": [
27
+ "github-actions"
28
+ ],
29
+ "pinDigests": true,
30
+ "enabled": true,
31
+ "schedule": [
32
+ "before 9am on Monday"
33
+ ]
34
+ },
35
+ {
36
+ "description": "Auto-merge non-major updates once required checks pass; majors still get manual review.",
37
+ "matchUpdateTypes": [
38
+ "patch",
39
+ "minor",
40
+ "digest",
41
+ "pin"
42
+ ],
43
+ "automerge": true,
44
+ "platformAutomerge": true,
45
+ "automergeStrategy": "squash"
46
+ }
47
+ ]
48
+ }
@@ -3,13 +3,13 @@ revision = 3
3
3
  requires-python = ">=3.10"
4
4
  resolution-markers = [
5
5
  "python_full_version >= '3.15' and sys_platform == 'win32'",
6
- "python_full_version == '3.14.*' and sys_platform == 'win32'",
7
6
  "python_full_version >= '3.15' and sys_platform != 'win32'",
7
+ "python_full_version == '3.14.*' and sys_platform == 'win32'",
8
8
  "python_full_version == '3.14.*' and sys_platform != 'win32'",
9
- "python_full_version >= '3.11' and python_full_version < '3.14' and sys_platform == 'win32'",
10
- "python_full_version < '3.11' and sys_platform == 'win32'",
11
9
  "python_full_version >= '3.12' and python_full_version < '3.14' and sys_platform == 'emscripten'",
10
+ "python_full_version >= '3.11' and python_full_version < '3.14' and sys_platform == 'win32'",
12
11
  "(python_full_version >= '3.11' and python_full_version < '3.14' and sys_platform != 'emscripten' and sys_platform != 'win32') or (python_full_version == '3.11.*' and sys_platform == 'emscripten')",
12
+ "python_full_version < '3.11' and sys_platform == 'win32'",
13
13
  "python_full_version < '3.11' and sys_platform != 'win32'",
14
14
  ]
15
15
 
@@ -219,7 +219,7 @@ wheels = [
219
219
 
220
220
  [[package]]
221
221
  name = "asher-cli"
222
- version = "1.3.0"
222
+ version = "1.4.0"
223
223
  source = { editable = "." }
224
224
  dependencies = [
225
225
  { name = "keyring" },
@@ -269,8 +269,8 @@ requires-dist = [
269
269
  { name = "pillow", marker = "extra == 'tray'", specifier = ">=10.0" },
270
270
  { name = "plyer", specifier = ">=2.1.0" },
271
271
  { name = "pygobject", marker = "sys_platform == 'linux' and extra == 'tray'", specifier = ">=3.42" },
272
- { name = "pylitterbot", specifier = "==2025.6.4" },
273
- { name = "pylitterbot", extras = ["mcp"], marker = "extra == 'mcp'", specifier = "==2025.6.4" },
272
+ { name = "pylitterbot", specifier = "==2025.6.5" },
273
+ { name = "pylitterbot", extras = ["mcp"], marker = "extra == 'mcp'", specifier = "==2025.6.5" },
274
274
  { name = "pystray", marker = "extra == 'tray'", specifier = ">=0.19" },
275
275
  { name = "python-dotenv", specifier = ">=1.0.0" },
276
276
  { name = "rich", specifier = ">=13.0.0" },
@@ -2585,7 +2585,7 @@ crypto = [
2585
2585
 
2586
2586
  [[package]]
2587
2587
  name = "pylitterbot"
2588
- version = "2025.6.4"
2588
+ version = "2025.6.5"
2589
2589
  source = { registry = "https://pypi.org/simple" }
2590
2590
  dependencies = [
2591
2591
  { name = "aiohttp" },
@@ -2593,9 +2593,9 @@ dependencies = [
2593
2593
  { name = "pycognito" },
2594
2594
  { name = "pyjwt" },
2595
2595
  ]
2596
- sdist = { url = "https://files.pythonhosted.org/packages/74/19/84f7d5078ef3add6ee8e9b9972020a47d0489f1eb88d6a6a0876d7acdee4/pylitterbot-2025.6.4.tar.gz", hash = "sha256:9ab5cbf81151ff5d073990b443c1dcf73255064a896ba8b9aada62efba83f5b9", size = 68685, upload-time = "2026-08-03T16:17:27.841Z" }
2596
+ sdist = { url = "https://files.pythonhosted.org/packages/83/33/7768130bdb281c4523e4af96b212d6364d911adb4dd9e07bded0e4abb133/pylitterbot-2025.6.5.tar.gz", hash = "sha256:6128c00385fbf843c51f379983221a2a8a71003aa9e6e1771d37bf6b337c7a5d", size = 68619, upload-time = "2026-09-04T22:32:40.031Z" }
2597
2597
  wheels = [
2598
- { url = "https://files.pythonhosted.org/packages/0d/44/da42aa0bbb16b7e962cec8114327336be5e33fe54b055a6edb708598542b/pylitterbot-2025.6.4-py3-none-any.whl", hash = "sha256:c402a7de7c1e303b1b6fa9d31b2373fa85146108c1536ef3f614ef5023043283", size = 85767, upload-time = "2026-08-03T16:17:28.646Z" },
2598
+ { url = "https://files.pythonhosted.org/packages/88/ba/b87cf7bad59f0ef1cb2484ca1e148f0393a08e17e62f2a4befed813dafc6/pylitterbot-2025.6.5-py3-none-any.whl", hash = "sha256:d9cf5f855b106b17d84dce6dc8c0d89c387a9254eb7418e0ea78ea5bbe89af13", size = 85682, upload-time = "2026-09-04T22:32:38.942Z" },
2599
2599
  ]
2600
2600
 
2601
2601
  [package.optional-dependencies]
@@ -3063,11 +3063,11 @@ version = "2026.6.3"
3063
3063
  source = { registry = "https://pypi.org/simple" }
3064
3064
  resolution-markers = [
3065
3065
  "python_full_version >= '3.15' and sys_platform == 'win32'",
3066
- "python_full_version == '3.14.*' and sys_platform == 'win32'",
3067
3066
  "python_full_version >= '3.15' and sys_platform != 'win32'",
3067
+ "python_full_version == '3.14.*' and sys_platform == 'win32'",
3068
3068
  "python_full_version == '3.14.*' and sys_platform != 'win32'",
3069
- "python_full_version >= '3.11' and python_full_version < '3.14' and sys_platform == 'win32'",
3070
3069
  "python_full_version >= '3.12' and python_full_version < '3.14' and sys_platform == 'emscripten'",
3070
+ "python_full_version >= '3.11' and python_full_version < '3.14' and sys_platform == 'win32'",
3071
3071
  "(python_full_version >= '3.11' and python_full_version < '3.14' and sys_platform != 'emscripten' and sys_platform != 'win32') or (python_full_version == '3.11.*' and sys_platform == 'emscripten')",
3072
3072
  ]
3073
3073
  sdist = { url = "https://files.pythonhosted.org/packages/aa/2a/9618a122aeb2a169a28b03889a2995fe297588964333d4a7d67bdf46e147/rpds_py-2026.6.3.tar.gz", hash = "sha256:1cebd1337c242e4ec2293e541f712b2da849b29f48f0c293684b71c0632625d4", size = 64051, upload-time = "2026-06-30T07:17:53.009Z" }
@@ -1,22 +0,0 @@
1
- {
2
- "$schema": "https://docs.renovatebot.com/renovate-schema.json",
3
- "extends": ["config:recommended"],
4
- "packageRules": [
5
- {
6
- "matchManagers": ["pep621"],
7
- "enabled": false
8
- },
9
- {
10
- "matchManagers": ["pep621"],
11
- "matchPackageNames": ["pylitterbot"],
12
- "enabled": true,
13
- "schedule": ["before 9am on Monday"]
14
- },
15
- {
16
- "matchManagers": ["github-actions"],
17
- "pinDigests": true,
18
- "enabled": true,
19
- "schedule": ["before 9am on Monday"]
20
- }
21
- ]
22
- }
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes