Release 1.0 - #3
Conversation
|
Caution Review failedThe pull request is closed. 📝 WalkthroughWalkthroughThis pull request introduces comprehensive project infrastructure including GitHub workflow automation for changelog validation and production KiCad/KiBot processing, static HTML navigation pages with dark/light theme support, a block diagram documentation file, and extensive KiRI (KiCad Rich Interchange) metadata for multiple project variants with PCB layer configurations and schematic sheet mappings. Changes
Estimated code review effort🎯 3 (Moderate) | ⏱️ ~25 minutes Poem
✨ Finishing Touches🧪 Generate unit tests (beta)
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. Comment |
Signed-off-by: Daniel Kampert <DanielKampert@kampis-elektroecke.de>
Signed-off-by: Daniel Kampert <DanielKampert@kampis-elektroecke.de>
2f09738 to
9d535c2
Compare
- Add CI/CD workflow to check for changelog updates on pull requests Signed-off-by: Daniel Kampert <DanielKampert|kampis-elektroecke.de>
2ac317c to
f2a6a0f
Compare
- New position for the battery connector, moved to the right side of the watch - Rotate haptics connector by 180°
6f6b6ad to
56b7db8
Compare
Signed-off-by: Daniel Kampert <DanielKampert@kampis-elektroecke.de>
There was a problem hiding this comment.
Pull request overview
Packages and publishes “Release 1.0” production artifacts: generated KiCad/KiRI metadata, HTML navigation pages for the CHECKED build, and CI workflows to generate outputs and validate the changelog.
Changes:
- Adds generated production/KiRI metadata files (layer SVG JSON metadata, schematic sheet lists, PCB layer lists, options).
- Adds generated HTML navigation pages for production outputs (Manufacturing, Netlist, PCB, KiCanvas, KiRI, 3D, Testing).
- Adds GitHub Actions workflows for production data generation/release and changelog validation, plus GitHub funding + commit message template.
Reviewed changes
Copilot reviewed 144 out of 888 changed files in this pull request and generated 8 comments.
Show a summary per file
| File | Description |
|---|---|
| production/watch-CHECKED/KiRI/local/KIRI/pcb/.layer-27.svg.json | Adds generated KiRI PCB layer metadata for local export |
| production/watch-CHECKED/KiRI/local/KIRI/pcb/.layer-25.svg.json | Adds generated KiRI PCB layer metadata for local export |
| production/watch-CHECKED/KiRI/local/KIRI/pcb/.layer-23.svg.json | Adds generated KiRI PCB layer metadata for local export |
| production/watch-CHECKED/KiRI/local/KIRI/pcb/.layer-21.svg.json | Adds generated KiRI PCB layer metadata for local export |
| production/watch-CHECKED/KiRI/local/KIRI/pcb/.layer-19.svg.json | Adds generated KiRI PCB layer metadata for local export |
| production/watch-CHECKED/KiRI/local/KIRI/pcb/.layer-17.svg.json | Adds generated KiRI PCB layer metadata for local export |
| production/watch-CHECKED/KiRI/local/KIRI/pcb/.layer-15.svg.json | Adds generated KiRI PCB layer metadata for local export |
| production/watch-CHECKED/KiRI/local/KIRI/pcb/.layer-13.svg.json | Adds generated KiRI PCB layer metadata for local export |
| production/watch-CHECKED/KiRI/local/KIRI/pcb/.layer-11.svg.json | Adds generated KiRI PCB layer metadata for local export |
| production/watch-CHECKED/KiRI/local/KIRI/pcb/.layer-09.svg.json | Adds generated KiRI PCB layer metadata for local export |
| production/watch-CHECKED/KiRI/local/KIRI/pcb/.layer-07.svg.json | Adds generated KiRI PCB layer metadata for local export |
| production/watch-CHECKED/KiRI/local/KIRI/pcb/.layer-06.svg.json | Adds generated KiRI PCB layer metadata for local export |
| production/watch-CHECKED/KiRI/local/KIRI/pcb/.layer-05.svg.json | Adds generated KiRI PCB layer metadata for local export |
| production/watch-CHECKED/KiRI/local/KIRI/pcb/.layer-04.svg.json | Adds generated KiRI PCB layer metadata for local export |
| production/watch-CHECKED/KiRI/local/KIRI/pcb/.layer-03.svg.json | Adds generated KiRI PCB layer metadata for local export |
| production/watch-CHECKED/KiRI/local/KIRI/pcb/.layer-02.svg.json | Adds generated KiRI PCB layer metadata for local export |
| production/watch-CHECKED/KiRI/local/KIRI/pcb/.layer-01.svg.json | Adds generated KiRI PCB layer metadata for local export |
| production/watch-CHECKED/KiRI/local/KIRI/pcb/.layer-00.svg.json | Adds generated KiRI PCB layer metadata for local export |
| production/watch-CHECKED/KiRI/5983a4b/KIRI/sch_sheets | Adds generated KiRI schematic sheet index (rev snapshot) |
| production/watch-CHECKED/KiRI/5983a4b/KIRI/sch/.options.json | Adds generated KiRI schematic options metadata (rev snapshot) |
| production/watch-CHECKED/KiRI/5983a4b/KIRI/pcb_layers | Adds generated KiRI PCB layer mapping (rev snapshot) |
| production/watch-CHECKED/KiRI/5983a4b/KIRI/pcb/.layer-55.svg.json | Adds generated KiRI PCB layer metadata (rev snapshot) |
| production/watch-CHECKED/KiRI/5983a4b/KIRI/pcb/.layer-53.svg.json | Adds generated KiRI PCB layer metadata (rev snapshot) |
| production/watch-CHECKED/KiRI/5983a4b/KIRI/pcb/.layer-51.svg.json | Adds generated KiRI PCB layer metadata (rev snapshot) |
| production/watch-CHECKED/KiRI/5983a4b/KIRI/pcb/.layer-49.svg.json | Adds generated KiRI PCB layer metadata (rev snapshot) |
| production/watch-CHECKED/KiRI/5983a4b/KIRI/pcb/.layer-47.svg.json | Adds generated KiRI PCB layer metadata (rev snapshot) |
| production/watch-CHECKED/KiRI/5983a4b/KIRI/pcb/.layer-45.svg.json | Adds generated KiRI PCB layer metadata (rev snapshot) |
| production/watch-CHECKED/KiRI/5983a4b/KIRI/pcb/.layer-43.svg.json | Adds generated KiRI PCB layer metadata (rev snapshot) |
| production/watch-CHECKED/KiRI/5983a4b/KIRI/pcb/.layer-41.svg.json | Adds generated KiRI PCB layer metadata (rev snapshot) |
| production/watch-CHECKED/KiRI/5983a4b/KIRI/pcb/.layer-39.svg.json | Adds generated KiRI PCB layer metadata (rev snapshot) |
| production/watch-CHECKED/KiRI/5983a4b/KIRI/pcb/.layer-35.svg.json | Adds generated KiRI PCB layer metadata (rev snapshot) |
| production/watch-CHECKED/KiRI/5983a4b/KIRI/pcb/.layer-33.svg.json | Adds generated KiRI PCB layer metadata (rev snapshot) |
| production/watch-CHECKED/KiRI/5983a4b/KIRI/pcb/.layer-31.svg.json | Adds generated KiRI PCB layer metadata (rev snapshot) |
| production/watch-CHECKED/KiRI/5983a4b/KIRI/pcb/.layer-29.svg.json | Adds generated KiRI PCB layer metadata (rev snapshot) |
| production/watch-CHECKED/KiRI/5983a4b/KIRI/pcb/.layer-27.svg.json | Adds generated KiRI PCB layer metadata (rev snapshot) |
| production/watch-CHECKED/KiRI/5983a4b/KIRI/pcb/.layer-25.svg.json | Adds generated KiRI PCB layer metadata (rev snapshot) |
| production/watch-CHECKED/KiRI/5983a4b/KIRI/pcb/.layer-23.svg.json | Adds generated KiRI PCB layer metadata (rev snapshot) |
| production/watch-CHECKED/KiRI/5983a4b/KIRI/pcb/.layer-21.svg.json | Adds generated KiRI PCB layer metadata (rev snapshot) |
| production/watch-CHECKED/KiRI/5983a4b/KIRI/pcb/.layer-19.svg.json | Adds generated KiRI PCB layer metadata (rev snapshot) |
| production/watch-CHECKED/KiRI/5983a4b/KIRI/pcb/.layer-17.svg.json | Adds generated KiRI PCB layer metadata (rev snapshot) |
| production/watch-CHECKED/KiRI/5983a4b/KIRI/pcb/.layer-15.svg.json | Adds generated KiRI PCB layer metadata (rev snapshot) |
| production/watch-CHECKED/KiRI/5983a4b/KIRI/pcb/.layer-13.svg.json | Adds generated KiRI PCB layer metadata (rev snapshot) |
| production/watch-CHECKED/KiRI/5983a4b/KIRI/pcb/.layer-11.svg.json | Adds generated KiRI PCB layer metadata (rev snapshot) |
| production/watch-CHECKED/KiRI/5983a4b/KIRI/pcb/.layer-09.svg.json | Adds generated KiRI PCB layer metadata (rev snapshot) |
| production/watch-CHECKED/KiRI/5983a4b/KIRI/pcb/.layer-07.svg.json | Adds generated KiRI PCB layer metadata (rev snapshot) |
| production/watch-CHECKED/KiRI/5983a4b/KIRI/pcb/.layer-06.svg.json | Adds generated KiRI PCB layer metadata (rev snapshot) |
| production/watch-CHECKED/KiRI/5983a4b/KIRI/pcb/.layer-05.svg.json | Adds generated KiRI PCB layer metadata (rev snapshot) |
| production/watch-CHECKED/KiRI/5983a4b/KIRI/pcb/.layer-04.svg.json | Adds generated KiRI PCB layer metadata (rev snapshot) |
| production/watch-CHECKED/KiRI/5983a4b/KIRI/pcb/.layer-03.svg.json | Adds generated KiRI PCB layer metadata (rev snapshot) |
| production/watch-CHECKED/KiRI/5983a4b/KIRI/pcb/.layer-02.svg.json | Adds generated KiRI PCB layer metadata (rev snapshot) |
| production/watch-CHECKED/KiRI/5983a4b/KIRI/pcb/.layer-01.svg.json | Adds generated KiRI PCB layer metadata (rev snapshot) |
| production/watch-CHECKED/KiRI/5983a4b/KIRI/pcb/.layer-00.svg.json | Adds generated KiRI PCB layer metadata (rev snapshot) |
| production/watch-CHECKED/KiRI/39449ac/KIRI/sch_sheets | Adds generated KiRI schematic sheet index (rev snapshot) |
| production/watch-CHECKED/KiRI/39449ac/KIRI/sch/.options.json | Adds generated KiRI schematic options metadata (rev snapshot) |
| production/watch-CHECKED/KiRI/39449ac/KIRI/pcb_layers | Adds generated KiRI PCB layer mapping (rev snapshot) |
| production/watch-CHECKED/KiRI/39449ac/KIRI/pcb/.layer-55.svg.json | Adds generated KiRI PCB layer metadata (rev snapshot) |
| production/watch-CHECKED/KiRI/39449ac/KIRI/pcb/.layer-53.svg.json | Adds generated KiRI PCB layer metadata (rev snapshot) |
| production/watch-CHECKED/KiRI/39449ac/KIRI/pcb/.layer-51.svg.json | Adds generated KiRI PCB layer metadata (rev snapshot) |
| production/watch-CHECKED/KiRI/39449ac/KIRI/pcb/.layer-49.svg.json | Adds generated KiRI PCB layer metadata (rev snapshot) |
| production/watch-CHECKED/KiRI/39449ac/KIRI/pcb/.layer-47.svg.json | Adds generated KiRI PCB layer metadata (rev snapshot) |
| production/watch-CHECKED/KiRI/39449ac/KIRI/pcb/.layer-45.svg.json | Adds generated KiRI PCB layer metadata (rev snapshot) |
| production/watch-CHECKED/KiRI/39449ac/KIRI/pcb/.layer-43.svg.json | Adds generated KiRI PCB layer metadata (rev snapshot) |
| production/watch-CHECKED/KiRI/39449ac/KIRI/pcb/.layer-41.svg.json | Adds generated KiRI PCB layer metadata (rev snapshot) |
| production/watch-CHECKED/KiRI/39449ac/KIRI/pcb/.layer-39.svg.json | Adds generated KiRI PCB layer metadata (rev snapshot) |
| production/watch-CHECKED/KiRI/39449ac/KIRI/pcb/.layer-35.svg.json | Adds generated KiRI PCB layer metadata (rev snapshot) |
| production/watch-CHECKED/KiRI/39449ac/KIRI/pcb/.layer-33.svg.json | Adds generated KiRI PCB layer metadata (rev snapshot) |
| production/watch-CHECKED/KiRI/39449ac/KIRI/pcb/.layer-31.svg.json | Adds generated KiRI PCB layer metadata (rev snapshot) |
| production/watch-CHECKED/KiRI/39449ac/KIRI/pcb/.layer-29.svg.json | Adds generated KiRI PCB layer metadata (rev snapshot) |
| production/watch-CHECKED/KiRI/39449ac/KIRI/pcb/.layer-27.svg.json | Adds generated KiRI PCB layer metadata (rev snapshot) |
| production/watch-CHECKED/KiRI/39449ac/KIRI/pcb/.layer-25.svg.json | Adds generated KiRI PCB layer metadata (rev snapshot) |
| production/watch-CHECKED/KiRI/39449ac/KIRI/pcb/.layer-23.svg.json | Adds generated KiRI PCB layer metadata (rev snapshot) |
| production/watch-CHECKED/KiRI/39449ac/KIRI/pcb/.layer-21.svg.json | Adds generated KiRI PCB layer metadata (rev snapshot) |
| production/watch-CHECKED/KiRI/39449ac/KIRI/pcb/.layer-19.svg.json | Adds generated KiRI PCB layer metadata (rev snapshot) |
| production/watch-CHECKED/KiRI/39449ac/KIRI/pcb/.layer-17.svg.json | Adds generated KiRI PCB layer metadata (rev snapshot) |
| production/watch-CHECKED/KiRI/39449ac/KIRI/pcb/.layer-15.svg.json | Adds generated KiRI PCB layer metadata (rev snapshot) |
| production/watch-CHECKED/KiRI/39449ac/KIRI/pcb/.layer-13.svg.json | Adds generated KiRI PCB layer metadata (rev snapshot) |
| production/watch-CHECKED/KiRI/39449ac/KIRI/pcb/.layer-11.svg.json | Adds generated KiRI PCB layer metadata (rev snapshot) |
| production/watch-CHECKED/KiRI/39449ac/KIRI/pcb/.layer-09.svg.json | Adds generated KiRI PCB layer metadata (rev snapshot) |
| production/watch-CHECKED/KiRI/39449ac/KIRI/pcb/.layer-07.svg.json | Adds generated KiRI PCB layer metadata (rev snapshot) |
| production/watch-CHECKED/KiRI/39449ac/KIRI/pcb/.layer-06.svg.json | Adds generated KiRI PCB layer metadata (rev snapshot) |
| production/watch-CHECKED/KiRI/39449ac/KIRI/pcb/.layer-05.svg.json | Adds generated KiRI PCB layer metadata (rev snapshot) |
| production/watch-CHECKED/KiRI/39449ac/KIRI/pcb/.layer-04.svg.json | Adds generated KiRI PCB layer metadata (rev snapshot) |
| production/watch-CHECKED/KiRI/39449ac/KIRI/pcb/.layer-03.svg.json | Adds generated KiRI PCB layer metadata (rev snapshot) |
| production/watch-CHECKED/KiRI/39449ac/KIRI/pcb/.layer-02.svg.json | Adds generated KiRI PCB layer metadata (rev snapshot) |
| production/watch-CHECKED/KiRI/39449ac/KIRI/pcb/.layer-01.svg.json | Adds generated KiRI PCB layer metadata (rev snapshot) |
| production/watch-CHECKED/KiRI/39449ac/KIRI/pcb/.layer-00.svg.json | Adds generated KiRI PCB layer metadata (rev snapshot) |
| production/watch-CHECKED/KiRI/043d58a/KIRI/sch_sheets | Adds generated KiRI schematic sheet index (rev snapshot) |
| production/watch-CHECKED/KiRI/043d58a/KIRI/sch/.options.json | Adds generated KiRI schematic options metadata (rev snapshot) |
| production/watch-CHECKED/KiRI/043d58a/KIRI/pcb_layers | Adds generated KiRI PCB layer mapping (rev snapshot) |
| production/watch-CHECKED/KiRI/043d58a/KIRI/pcb/.layer-55.svg.json | Adds generated KiRI PCB layer metadata (rev snapshot) |
| production/watch-CHECKED/KiRI/043d58a/KIRI/pcb/.layer-53.svg.json | Adds generated KiRI PCB layer metadata (rev snapshot) |
| production/watch-CHECKED/KiRI/043d58a/KIRI/pcb/.layer-51.svg.json | Adds generated KiRI PCB layer metadata (rev snapshot) |
| production/watch-CHECKED/KiRI/043d58a/KIRI/pcb/.layer-49.svg.json | Adds generated KiRI PCB layer metadata (rev snapshot) |
| production/watch-CHECKED/KiRI/043d58a/KIRI/pcb/.layer-47.svg.json | Adds generated KiRI PCB layer metadata (rev snapshot) |
| production/watch-CHECKED/KiRI/043d58a/KIRI/pcb/.layer-45.svg.json | Adds generated KiRI PCB layer metadata (rev snapshot) |
| production/watch-CHECKED/KiRI/043d58a/KIRI/pcb/.layer-43.svg.json | Adds generated KiRI PCB layer metadata (rev snapshot) |
| production/watch-CHECKED/KiRI/043d58a/KIRI/pcb/.layer-41.svg.json | Adds generated KiRI PCB layer metadata (rev snapshot) |
| production/watch-CHECKED/KiRI/043d58a/KIRI/pcb/.layer-39.svg.json | Adds generated KiRI PCB layer metadata (rev snapshot) |
| production/watch-CHECKED/KiRI/043d58a/KIRI/pcb/.layer-35.svg.json | Adds generated KiRI PCB layer metadata (rev snapshot) |
| production/watch-CHECKED/KiRI/043d58a/KIRI/pcb/.layer-33.svg.json | Adds generated KiRI PCB layer metadata (rev snapshot) |
| production/watch-CHECKED/KiRI/043d58a/KIRI/pcb/.layer-31.svg.json | Adds generated KiRI PCB layer metadata (rev snapshot) |
| production/watch-CHECKED/KiRI/043d58a/KIRI/pcb/.layer-29.svg.json | Adds generated KiRI PCB layer metadata (rev snapshot) |
| production/watch-CHECKED/KiRI/043d58a/KIRI/pcb/.layer-27.svg.json | Adds generated KiRI PCB layer metadata (rev snapshot) |
| production/watch-CHECKED/KiRI/043d58a/KIRI/pcb/.layer-25.svg.json | Adds generated KiRI PCB layer metadata (rev snapshot) |
| production/watch-CHECKED/KiRI/043d58a/KIRI/pcb/.layer-23.svg.json | Adds generated KiRI PCB layer metadata (rev snapshot) |
| production/watch-CHECKED/KiRI/043d58a/KIRI/pcb/.layer-21.svg.json | Adds generated KiRI PCB layer metadata (rev snapshot) |
| production/watch-CHECKED/KiRI/043d58a/KIRI/pcb/.layer-19.svg.json | Adds generated KiRI PCB layer metadata (rev snapshot) |
| production/watch-CHECKED/KiRI/043d58a/KIRI/pcb/.layer-17.svg.json | Adds generated KiRI PCB layer metadata (rev snapshot) |
| production/watch-CHECKED/KiRI/043d58a/KIRI/pcb/.layer-15.svg.json | Adds generated KiRI PCB layer metadata (rev snapshot) |
| production/watch-CHECKED/KiRI/043d58a/KIRI/pcb/.layer-13.svg.json | Adds generated KiRI PCB layer metadata (rev snapshot) |
| production/watch-CHECKED/KiRI/043d58a/KIRI/pcb/.layer-11.svg.json | Adds generated KiRI PCB layer metadata (rev snapshot) |
| production/watch-CHECKED/KiRI/043d58a/KIRI/pcb/.layer-09.svg.json | Adds generated KiRI PCB layer metadata (rev snapshot) |
| production/watch-CHECKED/KiRI/043d58a/KIRI/pcb/.layer-07.svg.json | Adds generated KiRI PCB layer metadata (rev snapshot) |
| production/watch-CHECKED/KiRI/043d58a/KIRI/pcb/.layer-06.svg.json | Adds generated KiRI PCB layer metadata (rev snapshot) |
| production/watch-CHECKED/KiRI/043d58a/KIRI/pcb/.layer-05.svg.json | Adds generated KiRI PCB layer metadata (rev snapshot) |
| production/watch-CHECKED/KiRI/043d58a/KIRI/pcb/.layer-04.svg.json | Adds generated KiRI PCB layer metadata (rev snapshot) |
| production/watch-CHECKED/KiRI/043d58a/KIRI/pcb/.layer-03.svg.json | Adds generated KiRI PCB layer metadata (rev snapshot) |
| production/watch-CHECKED/KiRI/043d58a/KIRI/pcb/.layer-02.svg.json | Adds generated KiRI PCB layer metadata (rev snapshot) |
| production/watch-CHECKED/KiRI/043d58a/KIRI/pcb/.layer-01.svg.json | Adds generated KiRI PCB layer metadata (rev snapshot) |
| production/watch-CHECKED/KiRI/043d58a/KIRI/pcb/.layer-00.svg.json | Adds generated KiRI PCB layer metadata (rev snapshot) |
| production/watch-CHECKED/HTML/ZSWatch-Watch-navigate_Testing.html | Adds generated HTML navigation page for Testing outputs |
| production/watch-CHECKED/HTML/ZSWatch-Watch-navigate_PCB_docs.html | Adds generated HTML navigation page for PCB/docs outputs |
| production/watch-CHECKED/HTML/ZSWatch-Watch-navigate_PCB.html | Adds generated HTML navigation page for PCB outputs |
| production/watch-CHECKED/HTML/ZSWatch-Watch-navigate_Netlist.html | Adds generated HTML navigation page for Netlist outputs |
| production/watch-CHECKED/HTML/ZSWatch-Watch-navigate_Manufacturing.html | Adds generated HTML navigation page for Manufacturing outputs |
| production/watch-CHECKED/HTML/ZSWatch-Watch-navigate_KiRI.html | Adds generated HTML navigation page for KiRI outputs |
| production/watch-CHECKED/HTML/ZSWatch-Watch-navigate_KiCanvas.html | Adds generated HTML navigation page for KiCanvas outputs |
| production/watch-CHECKED/HTML/ZSWatch-Watch-navigate_3D.html | Adds generated HTML navigation page for 3D outputs |
| .github/workflows/watch.yaml | Adds CI to generate production outputs and create zip releases on tags |
| .github/workflows/changelog-check.yaml | Adds CI to validate Keep-a-Changelog formatting in PRs/pushes |
| .github/FUNDING.yml | Adds GitHub Sponsors funding configuration |
| .github/.commit-msg-template | Adds commit message template for consistent commit formatting |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| # Determine additional_args based on the variant | ||
| case "$kibot_variant" in | ||
| "DRAFT") | ||
| additional_args="--skip-pre draw_fancy_stackup,erc,drc ${version_arg} draft_group" | ||
| ;; | ||
| "PRELIMINARY") | ||
| additional_args="--skip-pre erc,drc ${version_arg} all_group" | ||
| ;; | ||
| "CHECKED"|"RELEASED") | ||
| additional_args="${version_arg} all_group" | ||
| ;; | ||
| *) | ||
| echo "Unknown variant: $kibot_variant" | ||
| exit 1 | ||
| ;; | ||
| esac |
There was a problem hiding this comment.
kibot_variant is never set as a shell variable in this step (only written to $GITHUB_ENV), so the case "$kibot_variant" will always hit the default branch. Set kibot_variant in the script (e.g., assign it before the case) or run the case on a value that is actually available in the current shell (for example, the workflow env value or explicitly exported variable), then build additional_args from that.
| revision=$(python3 kibot_resources/scripts/get_changelog_version.py -f CHANGELOG.md) | ||
| if [[ $? -ne 0 ]]; then | ||
| echo -e "${YELLOW}Warning: Unable to determine version from CHANGELOG.md. Defaulting to empty revision.${NC}" | ||
| revision="" | ||
| fi |
There was a problem hiding this comment.
The log line references ${YELLOW} / ${NC} which are not defined in this script, so the output will include empty values (and can be confusing). Either define those color variables earlier in the step, or remove the color codes (also, revision is assigned but not used afterward in this step—consider using it or dropping it to avoid dead code).
| revision=$(python3 kibot_resources/scripts/get_changelog_version.py -f CHANGELOG.md) | |
| if [[ $? -ne 0 ]]; then | |
| echo -e "${YELLOW}Warning: Unable to determine version from CHANGELOG.md. Defaulting to empty revision.${NC}" | |
| revision="" | |
| fi |
| push_options: '--force' | ||
|
|
||
| - name: Cache 3D models data | ||
| uses: set-soft/cache@main |
There was a problem hiding this comment.
Using a Git ref like @main for an Action is not reproducible and can change behavior without review. Pin this to a tagged release or a commit SHA (or consider switching to actions/cache@v4), so builds are deterministic.
| uses: set-soft/cache@main | |
| uses: actions/cache@v4 |
| branch: ${{ env.master_branch }} | ||
| commit_message: Update CHANGELOG | ||
| file_pattern: ${{ env.kibot_input_dir }}/CHANGELOG.md | ||
| push_options: '--force' |
There was a problem hiding this comment.
push_options: '--force' can overwrite remote history on the default branch if something goes wrong and is generally risky for CI automation. Prefer removing --force, or if there is a strong need, use a safer alternative like --force-with-lease and document why it’s required.
| push_options: '--force' |
| const folderStates = Array.from(document.querySelectorAll(".folder")).map(folder => ({ | ||
| id: folder.querySelector("span").textContent.trim(), // Use folder name as identifier | ||
| isOpen: folder.classList.contains("open") // Check if folder is open | ||
| })); |
There was a problem hiding this comment.
The persisted folder identifier uses the visible folder text (textContent.trim()), which is not unique in this navbar (e.g., multiple “docs” folders exist under different sections). This can cause restore to open/close the wrong folder. Persist a stable unique identifier instead (e.g., the id of the .folder-contents element like folderHeader.nextElementSibling.id, or add a data-folder-id attribute).
| const folderStates = Array.from(document.querySelectorAll(".folder")).map(folder => ({ | |
| id: folder.querySelector("span").textContent.trim(), // Use folder name as identifier | |
| isOpen: folder.classList.contains("open") // Check if folder is open | |
| })); | |
| const folderStates = Array.from(document.querySelectorAll(".folder")).map(folder => { | |
| const contents = folder.querySelector(".folder-contents"); | |
| const folderId = contents && contents.id ? contents.id : folder.querySelector("span").textContent.trim(); | |
| return { | |
| id: folderId, // Use a stable unique identifier (folder-contents id if available) | |
| isOpen: folder.classList.contains("open") // Check if folder is open | |
| }; | |
| }); |
|
|
||
| function saveSideNavState() { | ||
| const navbar = document.getElementById("theSideNav"); | ||
| const isOpen = navbar.style.width !== "0px"; // Check if navbar is open |
There was a problem hiding this comment.
Checking navbar.style.width only inspects inline styles; if the navbar is closed via CSS (and no inline width has been set yet), navbar.style.width will be "", which currently evaluates as “open” (because "" !== "0px"). Consider using getComputedStyle(navbar).width or track open/closed state via a class on the navbar to ensure the persisted isOpen matches the real UI.
| const isOpen = navbar.style.width !== "0px"; // Check if navbar is open | |
| const isOpen = window.getComputedStyle(navbar).width !== "0px"; // Check if navbar is open using computed style |
| <span id="open-navbar" style="font-size:30px;cursor:pointer;" onclick="openNav()">☰</span> | ||
| <span id="close-navbar" style="font-size:30px;cursor:pointer;display:none;" onclick="closeNav()">⨉</span> | ||
| <button id="back-button" onclick="history.back()" style="font-size:30px;">↩</button> | ||
| <button id="forward-button" onclick="history.forward()" style="font-size:30px;">↪</button> | ||
| <button id="up-button" onclick="location.href='ZSWatch-Watch-navigate.html'" style="font-size:44px; position: relative; top: -3px;">⌅</button> | ||
| <button id="home-button" onclick="location.href='ZSWatch-Watch-navigate.html'" style="font-size:25px; position: relative; top: -2px;">🏠︎</button> |
There was a problem hiding this comment.
These icon-only controls don’t provide an accessible name for screen readers. Add aria-label (and consider using <button> for open/close as well) so navigation is usable with assistive tech (e.g., “Open navigation”, “Close navigation”, “Back”, “Forward”, “Up”, “Home”).
| <span id="open-navbar" style="font-size:30px;cursor:pointer;" onclick="openNav()">☰</span> | |
| <span id="close-navbar" style="font-size:30px;cursor:pointer;display:none;" onclick="closeNav()">⨉</span> | |
| <button id="back-button" onclick="history.back()" style="font-size:30px;">↩</button> | |
| <button id="forward-button" onclick="history.forward()" style="font-size:30px;">↪</button> | |
| <button id="up-button" onclick="location.href='ZSWatch-Watch-navigate.html'" style="font-size:44px; position: relative; top: -3px;">⌅</button> | |
| <button id="home-button" onclick="location.href='ZSWatch-Watch-navigate.html'" style="font-size:25px; position: relative; top: -2px;">🏠︎</button> | |
| <span id="open-navbar" style="font-size:30px;cursor:pointer;" onclick="openNav()" aria-label="Open navigation">☰</span> | |
| <span id="close-navbar" style="font-size:30px;cursor:pointer;display:none;" onclick="closeNav()" aria-label="Close navigation">⨉</span> | |
| <button id="back-button" onclick="history.back()" style="font-size:30px;" aria-label="Back">↩</button> | |
| <button id="forward-button" onclick="history.forward()" style="font-size:30px;" aria-label="Forward">↪</button> | |
| <button id="up-button" onclick="location.href='ZSWatch-Watch-navigate.html'" style="font-size:44px; position: relative; top: -3px;" aria-label="Up">⌅</button> | |
| <button id="home-button" onclick="location.href='ZSWatch-Watch-navigate.html'" style="font-size:25px; position: relative; top: -2px;" aria-label="Home">🏠︎</button> |
| html: true, | ||
| linkify: true, | ||
| typographer: true | ||
| }); | ||
|
|
||
| // Find all markdown containers and render them | ||
| document.querySelectorAll('.markdown-content').forEach(container => { | ||
| const rawMarkdown = container.innerHTML; |
There was a problem hiding this comment.
markdown-it is configured with html: true and then renders content sourced from container.innerHTML, which can enable scriptable HTML injection if markdown content ever becomes untrusted (even accidentally). If you don’t strictly control the markdown sources, consider setting html: false or sanitizing the rendered output before inserting it back into the DOM.
| html: true, | |
| linkify: true, | |
| typographer: true | |
| }); | |
| // Find all markdown containers and render them | |
| document.querySelectorAll('.markdown-content').forEach(container => { | |
| const rawMarkdown = container.innerHTML; | |
| html: false, | |
| linkify: true, | |
| typographer: true | |
| }); | |
| // Find all markdown containers and render them | |
| document.querySelectorAll('.markdown-content').forEach(container => { | |
| const rawMarkdown = container.textContent; |
Summary by CodeRabbit
Release Notes
New Features
Documentation
Chores