Migrate to Poetry packaging and restructure codebase #21
Reference in New Issue
Block a user
Delete Branch "codebase-improvements"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
.whlwith frontendSummary by CodeRabbit
Bug Fixes
Security
New Features
Build & Packaging
Documentation
Chores
✏️ Tip: You can customize this high-level summary in your review settings.
Here's the code health analysis summary for commits
80cf812..085385a. View details on DeepSource ↗.Analysis Summary
Review the following changes in direct dependencies. Learn more about Socket for GitHub.
Security
View full report
Walkthrough
Repackages into a Python package layout, moves frontend outputs into the package, migrates packaging to Poetry with version-sync tooling, introduces multi-target CI/release workflows, tightens Electron/web security, adds build helpers (cx_Freeze, wheel tooling), updates Docker/Makefile/Dockerfile, and expands repo ignore lists.
Changes
\.github/workflows/build.ymlpyproject.toml,meshchatx/src/version.py,meshchatx/__init__.py,scripts/sync_version.pymeshchatxpackage version modules and__version__, and a sync script that readspackage.json, writesmeshchatx/src/version.py, and updatespyproject.toml.MakefilePYTHON/POETRY; adds targetspython,wheel,sync-version,build-docker,run-docker,develop,node_modules; updatesinstall,run,clean, and Docker build variables/flags.Dockerfile,.dockerignore,docker-compose.ymlmeshchatxpackage and runspython -m meshchatx.meshchat;.dockerignoregreatly expanded to ignore docs, builds, IDE/OS artifacts, venvs, and runtime temp files; docker-compose image made parameterizable via${MESHCHAT_IMAGE}.electron/main.js,vite.config.js,package.json,scripts/prepare_frontend_dir.py,scripts/build-backend.jsmeshchatxlayout; addsdist-prebuiltnpm script; frontend preparation and backend build scripts now drive backend build via Poetry.meshchatx/src/frontend/public/service-worker.js,src/frontend/public/service-worker.js(removed),meshchatx/public/meshchatx/public; includes prepare script to safely create/clean the public directory.cx_setup.py,scripts/move_wheels.py,scripts/test_wheel.sh,scripts/prepare_frontend_dir.pydist/topython-dist/, a wheel test helper that installs the wheel into a temp venv and performs runtime checks, and a frontend directory prepare script.meshchatx/meshchat.py,meshchatx/database.pymeshchatx.src.version, replacestimezone.utcusage with aUTCconstant, enhancesget_file_pathwith wheel/repo fallbacks, and addssecurity_middlewareinjecting CSP and related headers..gitignore,.dockerignore,README.mdmeshchatx/public, Python artifacts, venvs, OS/IDE files, logs, storage/testing); README updated for Poetry, packaging, version sync, Docker and build instructions.setup.py,src/setup.py,src/frontend/public/service-worker.jssetup.pyfiles and the old service-worker implementation; replaced by new build scripts and packaging tooling.meshchatx/src/backend/__init__.py,meshchatx/src/backend/interfaces/__init__.py,meshchatx/src/backend/interfaces/WebsocketServerInterface.pyWebsocketServerInterface(no behavioral change).scripts/build-backend.js,package.json,vite.config.jsdist-prebuiltnpm script, and updates Vite build inputs/outDir to themeshchatxpaths.Estimated code review effort
🎯 4 (Complex) | ⏱️ ~40 minutes
.github/workflows/build.yml— matrix logic, conditional steps, artifact naming/collection, checksum generation, consolidated release creation.meshchatx/meshchat.py— security_middleware integration, CSP header correctness, get_file_path fallbacks, and package import changes.meshchatx/database.py— widespread datetime default changes switching toUTCconstant.pyproject.toml,Makefile,package.json— Poetry integration, entry-point correctness, and ensuring build target consistency.Dockerfile/.dockerignore— adjusted copy paths and expanded ignore patterns which affect Docker build contexts.Poem
Pre-merge checks and finishing touches
❌ Failed checks (1 warning)
@coderabbitai generate docstringsto improve docstring coverage.✅ Passed checks (2 passed)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.
❤️ Share
Comment
@coderabbitai helpto get the list of available commands and usage tips.Actionable comments posted: 8
🧹 Nitpick comments (9)
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
📥 Commits
Reviewing files that changed from the base of the PR and between
80cf812e54andcfad1ddc5f.⛔ Files ignored due to path filters (20)
meshchatx/src/frontend/fonts/RobotoMonoNerdFont/RobotoMonoNerdFont-Regular.ttfis excluded by!**/*.ttfmeshchatx/src/frontend/public/assets/images/logo-chat-bubble.pngis excluded by!**/*.pngmeshchatx/src/frontend/public/assets/images/logo.pngis excluded by!**/*.pngmeshchatx/src/frontend/public/assets/images/network-visualiser/interface_connected.pngis excluded by!**/*.pngmeshchatx/src/frontend/public/assets/images/network-visualiser/interface_disconnected.pngis excluded by!**/*.pngmeshchatx/src/frontend/public/assets/images/network-visualiser/server.pngis excluded by!**/*.pngmeshchatx/src/frontend/public/assets/images/network-visualiser/server_1hop.pngis excluded by!**/*.pngmeshchatx/src/frontend/public/assets/images/network-visualiser/user.pngis excluded by!**/*.pngmeshchatx/src/frontend/public/assets/images/network-visualiser/user_1hop.pngis excluded by!**/*.pngmeshchatx/src/frontend/public/assets/images/reticulum_logo_512.pngis excluded by!**/*.pngmeshchatx/src/frontend/public/assets/js/codec2-emscripten/c2dec.wasmis excluded by!**/*.wasmmeshchatx/src/frontend/public/assets/js/codec2-emscripten/c2enc.wasmis excluded by!**/*.wasmmeshchatx/src/frontend/public/assets/js/codec2-emscripten/sox.wasmis excluded by!**/*.wasmmeshchatx/src/frontend/public/favicons/favicon-512x512.pngis excluded by!**/*.pngmeshchatx/src/frontend/public/rnode-flasher/js/zip.min.jsis excluded by!**/*.min.jsmeshchatx/src/frontend/public/rnode-flasher/reticulum_logo_512.pngis excluded by!**/*.pngpackage-lock.jsonis excluded by!**/package-lock.jsonpoetry.lockis excluded by!**/*.locksrc/frontend/public/rnode-flasher/js/vue@3.4.26/dist/vue.global.jsis excluded by!**/dist/**src/frontend/public/rnode-flasher/js/web-serial-polyfill@1.0.15/dist/serial.jsis excluded by!**/dist/**📒 Files selected for processing (26)
.dockerignore(2 hunks).github/workflows/build.yml(2 hunks).gitignore(1 hunks)Dockerfile(2 hunks)Makefile(2 hunks)README.md(2 hunks)cx_setup.py(1 hunks)electron/main.js(1 hunks)meshchatx/__init__.py(1 hunks)meshchatx/database.py(10 hunks)meshchatx/meshchat.py(13 hunks)meshchatx/src/backend/__init__.py(1 hunks)meshchatx/src/backend/interfaces/WebsocketServerInterface.py(1 hunks)meshchatx/src/backend/interfaces/__init__.py(1 hunks)meshchatx/src/frontend/public/service-worker.js(1 hunks)meshchatx/src/version.py(1 hunks)package.json(1 hunks)pyproject.toml(1 hunks)scripts/build-backend.js(1 hunks)scripts/move_wheels.py(1 hunks)scripts/prepare_frontend_dir.py(1 hunks)scripts/sync_version.py(1 hunks)scripts/test_wheel.sh(1 hunks)setup.py(0 hunks)src/frontend/public/service-worker.js(0 hunks)vite.config.js(1 hunks)💤 Files with no reviewable changes (2)
🧰 Additional context used
🧬 Code graph analysis (1)
vite.config.js (1)
🪛 actionlint (1.7.9)
.github/workflows/build.yml
221-221: shellcheck reported issue in this script: SC1058:error:5:49: Expected 'do'
(shellcheck)
221-221: shellcheck reported issue in this script: SC1072:error:5:50: Fix any mentioned problems and try again
(shellcheck)
221-221: shellcheck reported issue in this script: SC1073:error:5:1: Couldn't parse this for loop. Fix to allow more checks
(shellcheck)
🪛 checkmake (0.2.2)
Makefile
[warning] 1-1: Missing required phony target "all"
(minphony)
[warning] 1-1: Missing required phony target "test"
(minphony)
🪛 LanguageTool
README.md
[style] ~16-~16: In American English, abbreviations like “etc.” require a period.
Context: ...translate, LoRa calculator, LXMFy bots, etc) - [x] Codebase reorganization and clea...
(ETC_PERIOD)
🪛 Ruff (0.14.6)
meshchatx/meshchat.py
3029-3029: Do not catch blind exception:
Exception(BLE001)
scripts/prepare_frontend_dir.py
1-1: Shebang is present but file is not executable
(EXE001)
scripts/sync_version.py
52-52: Avoid specifying long messages outside the exception class
(TRY003)
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (1)
🔇 Additional comments (28)
@@ -131,31 +49,201 @@ jobs:with:⚠️ Potential issue | 🔴 Critical
Fix shell syntax error in SHA256 checksum generation script.
The for loop at line 226 has invalid shell syntax:
2>/dev/nullcannot be placed after the glob pattern list in a for statement. This causes shellcheck to fail parsing (SC1058, SC1072, SC1073). Since the conditionalif [ -f "$file" ]already handles non-matching globs, the redirection is unnecessary.Apply this diff to fix the syntax error:
🧰 Tools
🪛 actionlint (1.7.9)
221-221: shellcheck reported issue in this script: SC1058:error:5:49: Expected 'do'
(shellcheck)
221-221: shellcheck reported issue in this script: SC1072:error:5:50: Fix any mentioned problems and try again
(shellcheck)
221-221: shellcheck reported issue in this script: SC1073:error:5:1: Couldn't parse this for loop. Fix to allow more checks
(shellcheck)
🤖 Prompt for AI Agents
@@ -8,22 +8,22 @@ A heavily customized fork of [Reticulum MeshChat](https://github.com/liamcottle/- [x] Ability to set inbound and propagation node stamps.⚠️ Potential issue | 🟡 Minor
Minor style issue: "etc" should be "etc."
In American English, the abbreviation requires a period.
📝 Committable suggestion
🧰 Tools
🪛 LanguageTool
[style] ~16-~16: In American English, abbreviations like “etc.” require a period.
Context: ...translate, LoRa calculator, LXMFy bots, etc) - [x] Codebase reorganization and clea...
(ETC_PERIOD)
🤖 Prompt for AI Agents
✅ Addressed in commits
ac839dftoc98131f@@ -35,25 +35,76 @@ Check [releases](https://github.com/Sudo-Ivan/reticulum-meshchatX/releases) for## Building⚠️ Potential issue | 🟡 Minor
Documentation references outdated
setup.py.The text mentions
setup.pybut the PR appears to have migrated to Poetry withpyproject.toml. Thecx_setup.pyis for cx_Freeze, not for pip packaging.Consider updating to reflect the Poetry workflow:
📝 Committable suggestion
🤖 Prompt for AI Agents
✅ Addressed in commits
ac839dftoc98131f@@ -0,0 +1,47 @@[build-system]⚠️ Potential issue | 🟠 Major
🧩 Analysis chain
🏁 Script executed:
Repository: Sudo-Ivan/reticulum-meshchatX
Length of output: 55
🏁 Script executed:
Repository: Sudo-Ivan/reticulum-meshchatX
Length of output: 1232
🏁 Script executed:
Repository: Sudo-Ivan/reticulum-meshchatX
Length of output: 82
🏁 Script executed:
Repository: Sudo-Ivan/reticulum-meshchatX
Length of output: 522
🏁 Script executed:
Repository: Sudo-Ivan/reticulum-meshchatX
Length of output: 1828
Remove
scripts/sync_version.pyfrom package distribution.sync_version.pyis a build-time utility for synchronizing versions betweenpackage.json,version.py, andpyproject.toml. It has no runtime usage and should not be included in the distributed package. Only thelogoasset needs to be included.🤖 Prompt for AI Agents
✅ Addressed in commits
ac839dftoc98131f@@ -0,0 +30,4 @@"psutil>=7.1.3","rns>=1.0.4","websockets>=15.0.1",]⚠️ Potential issue | 🟠 Major
🧩 Analysis chain
🌐 Web query:
aiohttp latest version 2025 security vulnerabilities💡 Result:
As of Dec 1, 2025 the latest aiohttp release on PyPI is 3.13.2 — upgrade to the latest release. [1]
Notable 2024–2025 security issues you should be aware of
Recommendation
Sources
[1] PyPI aiohttp release details (v3.13.2).
[2] NVD — CVE‑2025‑53643 (request smuggling).
[3] Ubuntu / GitHub advisory summary for CVE‑2025‑53643.
[4] GHSA / advisory for multipart infinite‑loop DoS (CVE‑2024‑30251).
[5] CVE details / GitHub advisory for XSS in static index pages (CVE‑2024‑27306).
🌐 Web query:
websockets latest version 2025 security vulnerabilities💡 Result:
Do you mean (pick one):
🌐 Web query:
pypi aiohttp 3.12.14 security advisory💡 Result:
Summary: aiohttp has a request-smuggling vulnerability (CVE-2025-53643) in its pure‑Python HTTP parser that fails to parse trailer sections. Affects aiohttp < 3.12.14; fixed in 3.12.14. Upgrade to >= 3.12.14 (or ensure C extensions are enabled) to mitigate. (nvd.nist.gov)
Citations:
🌐 Web query:
pypi websockets 14.2 security advisory💡 Result:
Short answer: there is no project security advisory or CVE specifically for websockets 14.2; the project's 14.2 changelog (Jan 19, 2025) lists features/bug fixes but no security fix. Some vulnerability databases list websockets versions (including 14.x) as affected by older CVEs and recommend upgrading — the current recommended secure release is 15.0.1. [1][2][3]
Sources
🌐 Web query:
peewee latest version 2025 security vulnerabilities💡 Result:
As of Dec 1, 2025 the latest Peewee release is 3.18.3 — upgrade to it to get the newest fixes. [1][2]
Known security issues (most relevant):
Recommendation: upgrade to peewee==3.18.3 and review your dependency tree (vendor/distribution packages may lag). Verify fixed versions in your environment (PyPI/distribution package) before deploying. [1][2]
Sources:
[1] Peewee package security summary (Safety DB).
[2] Fedora package updates showing peewee 3.18.3.
🌐 Web query:
psutil latest version 2025 security vulnerabilities💡 Result:
Latest psutil release: 7.1.3 (released 2025-11-02). (piwheels.org)
Known/security-relevant issues reported recently:
If you want, I can: (a) check whether your installed psutil version is affected and show mitigation/fix versions, or (b) fetch upstream GitHub / PyPI security/CHANGELOG entries for 7.1.3.
Citations:
🌐 Web query:
lxmf latest version 2025 security vulnerabilities💡 Result:
Summary (as of Dec 1, 2025)
Sources
Would you like me to: (A) check GitHub release tags and commit history directly for 0.9.2 and release dates, or (B) search CVE/NVD and vendor advisories for any additional vulnerability reports?
🌐 Web query:
rns python package latest version 2025 security vulnerabilities💡 Result:
Latest PyPI release: rns 1.0.4 (uploaded Nov 22–23, 2025). [1]
Known security issues: public vulnerability record shows a race-condition advisory affecting versions < 0.0.8 (fixed in 0.0.8); no other high‑profile CVEs listed for current releases. [2]
Sources:
[1] PyPI rns project page (release files/metadata).
[2] SafetyDB advisory PVE-2023-60402 (rns race-condition; affected <0.0.8, fixed in 0.0.8).
Update dependency versions to address confirmed security vulnerabilities.
3.18.1to3.18.3to fix PVE-2025-81123 vulnerability.3.12.14to3.13.2to reach the latest stable release. Note: The current minimum version (3.12.14) includes the CVE-2025-53643 fix but leaves CVE-2024-30251 and CVE-2024-27306 unpatched if the C extensions are not enabled.14.2to15.0.1(latest recommended secure release).🤖 Prompt for AI Agents
✅ Addressed in commits
ac839dftoc98131f@@ -0,0 +1,14 @@import shutil⚠️ Potential issue | 🟡 Minor
Make the file executable or remove the shebang.
The shebang is present but the file is not executable.
Based on static analysis hints, run:
Or remove the shebang if the script is only intended to be invoked via
python scripts/prepare_frontend_dir.py.🧰 Tools
🪛 Ruff (0.14.6)
1-1: Shebang is present but file is not executable
(EXE001)
🤖 Prompt for AI Agents
✅ Addressed in commits
ac839dftoc98131f🛠️ Refactor suggestion | 🟠 Major
Add safety checks before removing the directory.
The script unconditionally removes the target directory without validation. If the
TARGETpath is misconfigured or if there's a symlink, this could lead to unintended data loss.Consider adding basic safety checks:
✅ Addressed in commits
ac839dftoc98131f@@ -0,0 +1,74 @@#!/bin/bash⚠️ Potential issue | 🟠 Major
Hardcoded version will break on version bumps.
The wheel path contains a hardcoded version
2.41.0. This will fail when the version changes viasync_version.py.Consider using a glob pattern or dynamically reading the version:
📝 Committable suggestion
🤖 Prompt for AI Agents
✅ Addressed in commits
ac839dftoc98131fActionable comments posted: 0
🧹 Nitpick comments (3)
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
📥 Commits
Reviewing files that changed from the base of the PR and between
cfad1ddc5fandc98131f76b.⛔ Files ignored due to path filters (1)
poetry.lockis excluded by!**/*.lock📒 Files selected for processing (5)
.github/workflows/build.yml(2 hunks)README.md(2 hunks)pyproject.toml(1 hunks)scripts/prepare_frontend_dir.py(1 hunks)scripts/test_wheel.sh(1 hunks)🧰 Additional context used
🪛 actionlint (1.7.9)
.github/workflows/build.yml
221-221: shellcheck reported issue in this script: SC2035:info:18:7: Use ./glob or -- glob so names with dashes won't become options
(shellcheck)
🪛 Ruff (0.14.6)
scripts/prepare_frontend_dir.py
7-7: Avoid specifying long messages outside the exception class
(TRY003)
11-11: Avoid specifying long messages outside the exception class
(TRY003)
🪛 Shellcheck (0.11.0)
scripts/test_wheel.sh
[warning] 6-6: Quote to prevent word splitting/globbing, or split robustly with mapfile or read -a.
(SC2206)
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (1)
🔇 Additional comments (7)
Actionable comments posted: 1
🧹 Nitpick comments (2)
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
📥 Commits
Reviewing files that changed from the base of the PR and between
c98131f76banda0047ea8fb.📒 Files selected for processing (3)
Makefile(2 hunks)README.md(2 hunks)docker-compose.yml(1 hunks)🧰 Additional context used
🪛 checkmake (0.2.2)
Makefile
[warning] 1-1: Missing required phony target "all"
(minphony)
[warning] 1-1: Missing required phony target "test"
(minphony)
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (1)
🔇 Additional comments (8)
⚠️ Potential issue | 🟠 Major
🧩 Analysis chain
🏁 Script executed:
Repository: Sudo-Ivan/reticulum-meshchatX
Length of output: 136
🏁 Script executed:
Repository: Sudo-Ivan/reticulum-meshchatX
Length of output: 771
🏁 Script executed:
Repository: Sudo-Ivan/reticulum-meshchatX
Length of output: 1094
🏁 Script executed:
Repository: Sudo-Ivan/reticulum-meshchatX
Length of output: 97
🏁 Script executed:
Repository: Sudo-Ivan/reticulum-meshchatX
Length of output: 81
🏁 Script executed:
Repository: Sudo-Ivan/reticulum-meshchatX
Length of output: 487
🏁 Script executed:
Repository: Sudo-Ivan/reticulum-meshchatX
Length of output: 1719
⚠️ Documentation inconsistency: wheel destination differs between workflows.
The README documents that
make wheelproduces wheels inpython-dist/(line 50, viamove_wheels.pyrelocation), but the standalone Poetry/pip examples (lines 79–89 and 95–101) show wheels indist/. When developers follow the standalone examples, they bypass themove_wheels.pyscript and wheels remain in Poetry's defaultdist/directory, creating confusion about expected output locations.Clarify the documentation by noting which workflow uses which destination:
Building with pip (alternative)
If you prefer pip, you can build/install directly:
+Note: When using
make wheel, themove_wheels.pyscript relocates wheels topython-dist/. The standalone Poetry/pip workflows shown above do not invoke this script and use Poetry/pip's default output location (dist/).In README.md around lines 79 to 101, the documented Poetry/pip build/install
steps reference wheels in dist/, which conflicts with the make wheel workflow
that relocates wheels to python-dist/ via move_wheels.py; update the README to
explicitly state that poetry build and python -m build produce wheels in dist/
by default and that make wheel invokes move_wheels.py to relocate artifacts to
python-dist/, so users know which workflow produces which destination and which
command to run to get wheels in python-dist/ versus dist/.
Actionable comments posted: 0
🧹 Nitpick comments (3)
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
📥 Commits
Reviewing files that changed from the base of the PR and between
a0047ea8fbandd06ede8c5e.📒 Files selected for processing (1)
meshchatx/meshchat.py(16 hunks)🧰 Additional context used
🧬 Code graph analysis (1)
meshchatx/meshchat.py (4)
🪛 Ruff (0.14.6)
meshchatx/meshchat.py
3020-3020: Do not catch blind exception:
Exception(BLE001)
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (1)
🔇 Additional comments (3)
Actionable comments posted: 1
🧹 Nitpick comments (1)
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
📥 Commits
Reviewing files that changed from the base of the PR and between
d06ede8c5eand5fc13dc61a.📒 Files selected for processing (2)
README.md(2 hunks)tailwind.config.js(1 hunks)⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (1)
@@ -59,0 +77,4 @@### Build artifact locationsBoth `poetry build` and `python -m build` generate wheels inside the default `dist/` directory. The `make wheel` shortcut wraps `poetry build -f wheel` and then runs `python scripts/move_wheels.py` to relocate the generated `.whl` files into `python-dist/` (the layout expected by `scripts/test_wheel.sh` and the release automation). Use `make wheel` if you need the artifacts in `python-dist/`; `poetry build` or `python -m build` alone will leave them in `dist/`.🛠️ Refactor suggestion | 🟠 Major
Inconsistent Python invocation: use
python3consistently.Line 46 uses
pythonwhile line 75 usespython3for the samesync_version.pyscript. Since Python 3 is standard and line 75 explicitly specifiespython3, line 46 should do the same for consistency.Apply this diff:
Or more simply, update line 46:
📝 Committable suggestion
🤖 Prompt for AI Agents
✅ Addressed in commits
284517bto3848613Actionable comments posted: 0
🧹 Nitpick comments (3)
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
📥 Commits
Reviewing files that changed from the base of the PR and between
5fc13dc61aandf8b0dd18c5.📒 Files selected for processing (5)
README.md(2 hunks)cx_setup.py(1 hunks)meshchatx/meshchat.py(22 hunks)meshchatx/src/version.py(1 hunks)scripts/prepare_frontend_dir.py(1 hunks)🧰 Additional context used
🧬 Code graph analysis (1)
meshchatx/meshchat.py (1)
🪛 Ruff (0.14.6)
meshchatx/meshchat.py
3025-3025: Do not catch blind exception:
Exception(BLE001)
5186-5186: Unused method argument:
request_receipt(ARG002)
scripts/prepare_frontend_dir.py
7-7: Avoid specifying long messages outside the exception class
(TRY003)
11-11: Avoid specifying long messages outside the exception class
(TRY003)
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (1)
🔇 Additional comments (9)