Skip to content

ci: add desktop build check to CI pipeline and simplify vite obfuscat… - #3

Merged
AteebNoOne merged 6 commits into
mainfrom
fix/Web0.0.5-2
Jul 11, 2026
Merged

ci: add desktop build check to CI pipeline and simplify vite obfuscat…#3
AteebNoOne merged 6 commits into
mainfrom
fix/Web0.0.5-2

Conversation

@AteebNoOne

@AteebNoOne AteebNoOne commented Jul 11, 2026

Copy link
Copy Markdown
Member

…ion/chunking config

Summary by CodeRabbit

  • Build & Quality
    • Added desktop app build validation to CI and local builds (desktop-build), including ci-local/help updates.
    • Improved production obfuscation gating and updated code-splitting to better focus on PDF-related assets.
    • Refreshed local build step progress numbering.
  • Release
    • Enhanced release automation permissions/checkout handling.
    • Added Linux Snap builds with stable-channel publishing.
  • Documentation & Community
    • Added issue/PR templates, SECURITY, Code of Conduct, contributor/development docs, and initialized the changelog.
    • Updated the project to be publishable (package visibility).

…ion/chunking config

Co-authored-by: Atib Ur Rehman <rehmanateebur@gmail.com>
@vercel

vercel Bot commented Jul 11, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
teebot-flow Ready Ready Preview, Comment Jul 11, 2026 11:30pm

@coderabbitai

coderabbitai Bot commented Jul 11, 2026

Copy link
Copy Markdown

Review Change Stack

Important

Review skipped

No new commits to review since the last review.

⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro Plus

Run ID: 56c603c2-1759-49d1-ab65-e37967fe02b7

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review
📝 Walkthrough

Walkthrough

The changes add Tauri desktop build validation to hosted and local CI, introduce Linux Snap release publishing, update production build and asset routing, add project governance and licensing documents, and document development workflows.

Changes

Desktop build and release pipeline

Layer / File(s) Summary
Desktop build checks
.github/workflows/ci.yml, Makefile
Hosted and local CI now run pnpm tauri build --no-bundle, with updated targets, help text, dependencies, and step numbering.
Desktop release workflows
.github/workflows/release.yml, scripts/update-version.cjs, snap/snapcraft.yaml
The desktop release matrix is adjusted and a Linux Snap job builds, uploads, and publishes a Snap package to the stable channel.
Workflow checkout and permissions
.github/workflows/release.yml
The web release job limits permissions to read access, and release checkouts disable credential persistence.

Production build configuration

Layer / File(s) Summary
Vite production configuration
vite.config.ts
Production obfuscation is limited to Tauri builds, selected options are disabled, and explicit application and PDF chunks are configured.
Web asset routing
vercel.json
Asset requests receive an explicit rewrite before the existing index fallback.
Tauri configuration formatting
src-tauri/tauri.conf.json
Asset protocol scope and file association extension arrays are reformatted without changing their values.

Project governance and documentation

Layer / File(s) Summary
Community and issue workflows
.github/ISSUE_TEMPLATE/*, .github/PULL_REQUEST_TEMPLATE/*, CODE_OF_CONDUCT.md, SECURITY.md
Adds structured issue and pull request templates plus conduct and vulnerability-reporting guidance.
Licensing and project metadata
LICENSE, NOTICE, CHANGELOG.md, README.md, package.json
Adds AGPL licensing, initializes release metadata, updates public project documentation, and enables package publication.
Development documentation
CONTRIBUTING.md, docs/DEVELOPMENT.md, docs/README.md
Documents contribution practices, local web and desktop workflows, architecture notes, and the documentation index.
Repository artifacts
.gitignore
Ignores credentials and generated build and Snap artifacts.

Estimated code review effort: 4 (Complex) | ~60 minutes

Possibly related PRs

  • iTeebot/flow#1: Modifies the same Vite production JavaScript obfuscation configuration and implementation.
🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title matches the main changes: adding a desktop build CI check and simplifying Vite obfuscation/chunking settings.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch fix/Web0.0.5-2

Comment @coderabbitai help to get the list of available commands.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 2

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (1)
.github/workflows/ci.yml (1)

74-103: 🔒 Security & Privacy | 🟡 Minor | ⚡ Quick win

Restrict desktop-build's GITHUB_TOKEN scope. Add permissions: contents: read to this job; none of its steps need write access, and this avoids inheriting broader repo defaults.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In @.github/workflows/ci.yml around lines 74 - 103, Add a job-level permissions
block to desktop-build granting only contents: read, ensuring the job does not
inherit broader GITHUB_TOKEN permissions while leaving its existing steps
unchanged.

Source: Linters/SAST tools

🧹 Nitpick comments (1)
vite.config.ts (1)

120-125: 🚀 Performance & Scalability | 🔵 Trivial | ⚡ Quick win

Keep an explicit vendor split for the heavy shared deps. Removing manualChunks drops the cache boundary between app code and libraries like recharts/jspdf, so app edits can invalidate more of the bundle. If that separation still matters, use a Vite 7-supported chunking config instead of the default.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@vite.config.ts` around lines 120 - 125, Restore an explicit vendor chunk
split in the Vite build configuration near the existing build.rollupOptions
settings, using a Vite 7-supported manualChunks configuration. Ensure heavy
shared dependencies such as recharts and jspdf remain isolated from application
code so app changes do not invalidate the vendor bundle.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In @.github/workflows/ci.yml:
- Around line 78-79: Update the actions/checkout@v4 step in the workflow to set
persist-credentials to false, preventing the checkout token from being stored in
the workspace git configuration while leaving the existing checkout behavior
unchanged.

In `@Makefile`:
- Line 15: Update the Makefile target dependency declaration for desktop-build
so it depends on frontend-build, ensuring frontend dependencies are installed
before any desktop build and preserving correct ordering under parallel ci-local
execution.

---

Outside diff comments:
In @.github/workflows/ci.yml:
- Around line 74-103: Add a job-level permissions block to desktop-build
granting only contents: read, ensuring the job does not inherit broader
GITHUB_TOKEN permissions while leaving its existing steps unchanged.

---

Nitpick comments:
In `@vite.config.ts`:
- Around line 120-125: Restore an explicit vendor chunk split in the Vite build
configuration near the existing build.rollupOptions settings, using a Vite
7-supported manualChunks configuration. Ensure heavy shared dependencies such as
recharts and jspdf remain isolated from application code so app changes do not
invalidate the vendor bundle.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro Plus

Run ID: 125d9784-7854-4023-b0c1-246a0f16e3d6

📥 Commits

Reviewing files that changed from the base of the PR and between e7f527c and 6a9af69.

📒 Files selected for processing (3)
  • .github/workflows/ci.yml
  • Makefile
  • vite.config.ts

Comment thread .github/workflows/ci.yml
Comment thread Makefile
@echo " make desktop-build - Verify Tauri desktop app build compiles (--no-bundle)"

ci-local: format-check clippy test frontend-build
ci-local: format-check clippy test frontend-build desktop-build

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🩺 Stability & Availability | 🟠 Major | ⚡ Quick win

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
set -eu
make -n desktop-build
make -n -j ci-local

Repository: iTeebot/flow

Length of output: 192


🏁 Script executed:

#!/bin/bash
set -eu

# Inspect the Makefile targets around the reported lines.
wc -l Makefile
cat -n Makefile | sed -n '1,120p'

Repository: iTeebot/flow

Length of output: 2063


🏁 Script executed:

#!/bin/bash
set -eu

# Map the Makefile structure to check whether desktop-build already depends on frontend-build
# and whether ci-local can invoke them concurrently.
rg -n '^(ci-local|desktop-build|frontend-build):' Makefile
cat -n Makefile | sed -n '1,120p'

Repository: iTeebot/flow

Length of output: 2155


🏁 Script executed:

#!/bin/bash
set -eu

wc -l Makefile
cat -n Makefile | sed -n '1,120p'

Repository: iTeebot/flow

Length of output: 2063


🏁 Script executed:

#!/bin/bash
set -eu

# Inspect the Tauri config and package scripts referenced by desktop-build.
fd -a 'tauri.conf.*|package.json|pnpm-workspace.yaml' .
rg -n 'beforeBuildCommand|tauri build|pnpm run build|install|frontend' .

Repository: iTeebot/flow

Length of output: 1692


🏁 Script executed:

#!/bin/bash
set -eu

fd -a 'tauri.conf.*|package.json|pnpm-workspace.yaml' .
rg -n 'beforeBuildCommand|tauri build|pnpm run build|install|frontend' .

Repository: iTeebot/flow

Length of output: 1692


Make desktop-build depend on frontend-build. desktop-build doesn’t install frontend deps, so a clean make desktop-build can fail, and make -j ci-local can start it before the frontend step finishes. The Tauri hook also runs pnpm build during the desktop build.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@Makefile` at line 15, Update the Makefile target dependency declaration for
desktop-build so it depends on frontend-build, ensuring frontend dependencies
are installed before any desktop build and preserving correct ordering under
parallel ci-local execution.

…tegy

Co-authored-by: Atib Ur Rehman <rehmanateebur@gmail.com>

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🧹 Nitpick comments (1)
vite.config.ts (1)

55-63: 🔒 Security & Privacy | 🔵 Trivial | 💤 Low value

Remove the inert debugProtectionInterval setting.

It only applies when debugProtection is enabled, so with debugProtection: false it has no effect.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@vite.config.ts` around lines 55 - 63, Remove the inert
debugProtectionInterval property from the obfuscation configuration near
debugProtection in vite.config.ts, leaving the existing debugProtection setting
and all other options unchanged.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Nitpick comments:
In `@vite.config.ts`:
- Around line 55-63: Remove the inert debugProtectionInterval property from the
obfuscation configuration near debugProtection in vite.config.ts, leaving the
existing debugProtection setting and all other options unchanged.

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro Plus

Run ID: deeda5d1-c565-4c9c-92a6-ef5271534129

📥 Commits

Reviewing files that changed from the base of the PR and between 6a9af69 and 42400bb.

📒 Files selected for processing (2)
  • .github/workflows/ci.yml
  • vite.config.ts
🚧 Files skipped from review as they are similar to previous changes (1)
  • .github/workflows/ci.yml

…eparate snap builds and improved matrix builds

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 3

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In @.github/workflows/release.yml:
- Around line 180-188: Update the “Update Version Code” validation in the
release workflow to reject any GITHUB_REF_NAME containing a prerelease suffix,
so only plain vMAJOR.MINOR.PATCH tags continue to the stable publishing path.
Preserve the existing version extraction and update-version.cjs invocation for
valid stable tags, and apply the same stable-only guard to the corresponding
release block noted by the comment.
- Around line 174-178: Update the credentialed release job’s “Setup Node.js”
step to disable the pnpm cache by removing its cache configuration, and disable
any Rust cache configuration in the same job. Keep Node version selection via
node-version-file unchanged and ensure release build/publish steps do not
restore caches.
- Around line 201-215: The Build and Package Snap step currently relies on
Tauri’s --bundles snap, which does not produce the required artifact. Update the
workflow to build the Debian package, invoke Snapcraft using the repository’s
snapcraft.yaml to wrap that .deb, and ensure the generated .snap is available
for the release action.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro Plus

Run ID: 8d4357ff-9bee-47cc-92ab-b999a7f61376

📥 Commits

Reviewing files that changed from the base of the PR and between 42400bb and 934a1f6.

📒 Files selected for processing (2)
  • .github/workflows/release.yml
  • src-tauri/tauri.conf.json
✅ Files skipped from review due to trivial changes (1)
  • src-tauri/tauri.conf.json

Comment thread .github/workflows/release.yml Outdated
Comment thread .github/workflows/release.yml
Comment thread .github/workflows/release.yml Outdated
…on guidelines

- Updated README.md to reflect open source status and contribution guidelines.
- Changed package.json to set "private" to false, allowing public access.
- Added scripts to update version in snapcraft.yaml.
- Created issue templates for bug reports and feature requests.
- Added pull request template to standardize contributions.
- Introduced CHANGELOG.md to document project updates.
- Added CODE_OF_CONDUCT.md to establish community standards.
- Created CONTRIBUTING.md to guide new contributors.
- Added LICENSE file for AGPL-3.0 compliance.
- Established SECURITY.md for reporting vulnerabilities.
- Developed DEVELOPMENT.md for setup and workflow guidance.
- Created documentation index in docs/README.md.
- Added snapcraft.yaml for packaging the application.

Co-authored-by: Atib Ur Rehman <rehmanateebur@gmail.com>

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 4

🧹 Nitpick comments (1)
.github/workflows/release.yml (1)

220-231: 🔒 Security & Privacy | 🔵 Trivial | ⚡ Quick win

Avoid expanding ${{ github.ref_name }} directly inside the run shell body.

github.ref_name is interpolated into the shell script before execution (lines 229–230), which is the template-injection sink flagged by static analysis. It's largely mitigated here since the earlier "Update Version Code" step fails the job for any tag not matching ^v[0-9]+\.[0-9]+\.[0-9]+$, but pass it via an environment variable to remove the sink and keep the guard as defense-in-depth.

🔒 Proposed hardening
       - name: Upload Snap to GitHub Release
         env:
           GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+          REF_NAME: ${{ github.ref_name }}
         run: |
           SNAP_FILE=$(find . -maxdepth 1 -name "*.snap" | head -1)
           if [ -z "$SNAP_FILE" ]; then
             echo "Warning: no .snap file found, skipping GitHub Release upload"
             exit 0
           fi
-          echo "Uploading $SNAP_FILE to GitHub Release ${{ github.ref_name }}..."
-          gh release upload "${{ github.ref_name }}" "$SNAP_FILE" --clobber || \
+          echo "Uploading $SNAP_FILE to GitHub Release $REF_NAME..."
+          gh release upload "$REF_NAME" "$SNAP_FILE" --clobber || \
             echo "Release may not exist yet (created by desktop job). Snap will be uploaded by Snap Store step."
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In @.github/workflows/release.yml around lines 220 - 231, Update the “Upload
Snap to GitHub Release” step to pass github.ref_name through an environment
variable, then reference that variable inside the run script instead of directly
interpolating the GitHub expression. Preserve the existing release upload
behavior and the prior version-format validation guard.

Source: Linters/SAST tools

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In @.github/ISSUE_TEMPLATE/bug_report.yml:
- Line 13: Quote the placeholder value in the issue template so the colon in
“Example: ...” is parsed as literal text rather than a YAML mapping delimiter.

In @.github/ISSUE_TEMPLATE/config.yml:
- Around line 3-5: Add a concrete private reporting destination for the
“Security report” entry in the issue template, such as a valid security contact
email or GitHub private vulnerability-reporting URL, and ensure the linked
guidance directs reporters there before they use public issue channels.

In @.github/ISSUE_TEMPLATE/feature_request.yml:
- Line 12: Update the placeholder value in the feature request YAML
configuration to quote the entire example string, preserving the existing text
while ensuring the embedded colon is treated as literal content.

In `@README.md`:
- Around line 194-197: Update the README prerequisites/setup instructions to
explain how to install or enable pnpm via Corepack before the existing pnpm
install step, and specify the supported pnpm version using the repository’s
configured version where available.

---

Nitpick comments:
In @.github/workflows/release.yml:
- Around line 220-231: Update the “Upload Snap to GitHub Release” step to pass
github.ref_name through an environment variable, then reference that variable
inside the run script instead of directly interpolating the GitHub expression.
Preserve the existing release upload behavior and the prior version-format
validation guard.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro Plus

Run ID: 2c636e1d-5e23-4798-9333-6a9955ef0c26

📥 Commits

Reviewing files that changed from the base of the PR and between 934a1f6 and 315cd02.

📒 Files selected for processing (18)
  • .github/ISSUE_TEMPLATE/bug_report.yml
  • .github/ISSUE_TEMPLATE/config.yml
  • .github/ISSUE_TEMPLATE/feature_request.yml
  • .github/PULL_REQUEST_TEMPLATE/pull_request_template.md
  • .github/workflows/release.yml
  • .gitignore
  • CHANGELOG.md
  • CODE_OF_CONDUCT.md
  • CONTRIBUTING.md
  • LICENSE
  • README.md
  • SECURITY.md
  • docs/DEVELOPMENT.md
  • docs/README.md
  • package.json
  • scripts/update-version.cjs
  • snap/snapcraft.yaml
  • src-tauri/tauri.conf.json
✅ Files skipped from review due to trivial changes (8)
  • docs/README.md
  • CHANGELOG.md
  • SECURITY.md
  • .gitignore
  • CONTRIBUTING.md
  • .github/PULL_REQUEST_TEMPLATE/pull_request_template.md
  • docs/DEVELOPMENT.md
  • src-tauri/tauri.conf.json

Comment thread .github/ISSUE_TEMPLATE/bug_report.yml Outdated
Comment thread .github/ISSUE_TEMPLATE/config.yml Outdated
Comment thread .github/ISSUE_TEMPLATE/feature_request.yml Outdated
Comment thread README.md
Co-authored-by: Atib Ur Rehman <rehmanateebur@gmail.com>
…refine GitHub release scripts and issue templates

Co-authored-by: Atib Ur Rehman <rehmanateebur@gmail.com>
@AteebNoOne

Copy link
Copy Markdown
Member Author

@coderabbitai resume

@coderabbitai

coderabbitai Bot commented Jul 11, 2026

Copy link
Copy Markdown
✅ Action performed

Reviews resumed.

@iTeebot iTeebot deleted a comment from coderabbitai Bot Jul 11, 2026
@AteebNoOne
AteebNoOne merged commit 4201356 into main Jul 11, 2026
10 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant