Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
27 changes: 27 additions & 0 deletions .editorconfig
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
root = true

[*]
charset = utf-8
end_of_line = lf
insert_final_newline = true
trim_trailing_whitespace = true
indent_style = space
indent_size = 4

[*.{ts,tsx,js,jsx,mjs,cjs}]
indent_size = 2

[*.{rs,toml}]
indent_size = 4

[*.{py,pyi}]
indent_size = 4

[*.yml]
indent_size = 2

[*.md]
trim_trailing_whitespace = false

[Makefile]
indent_style = tab
56 changes: 46 additions & 10 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,35 +7,71 @@ on:
branches: [main, master]

jobs:
test:
rust-lint:
name: rust lint
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: dtolnay/rust-toolchain@nightly
components: clippy, rustfmt
- uses: Swatinem/rust-cache@v2
- name: Check formatting
run: cargo fmt --all -- --check
- name: Run clippy
run: cargo clippy --all-features -- -D warnings

rust-test:
name: test (${{ matrix.os }})
runs-on: ${{ matrix.os }}
needs: rust-lint
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest, macos-latest]
steps:
- uses: actions/checkout@v4

- name: Install Rust (nightly)
uses: dtolnay/rust-toolchain@nightly

- name: Cache cargo
uses: Swatinem/rust-cache@v2
- uses: dtolnay/rust-toolchain@nightly
- uses: Swatinem/rust-cache@v2
with:
key: ${{ matrix.os }}

- name: Install system dependencies (linux)
if: runner.os == 'Linux'
run: |
sudo apt-get update
sudo apt-get install -y --no-install-recommends libssl-dev pkg-config libglib2.0-dev libgtk-3-dev libwebkit2gtk-4.1-dev libappindicator3-dev librsvg2-dev libsoup-3.0-dev

- name: Install LLVM (macOS)
if: runner.os == 'macOS'
run: brew install llvm

- name: Run tests
env:
LIBCLANG_PATH: ${{ runner.os == 'macOS' && '/opt/homebrew/opt/llvm/lib' || '' }}
run: cargo test --all-features

ts-lint-test:
name: ts lint & test
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: '20'
- name: Install ai-agent dependencies
run: npm ci
working-directory: ai-agent/pardus-browser
- name: Typecheck ai-agent
run: npm run lint
working-directory: ai-agent/pardus-browser
- name: Test ai-agent
run: npm test
working-directory: ai-agent/pardus-browser

security-audit:
name: security audit
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: dtolnay/rust-toolchain@nightly
- name: Install cargo-audit
run: cargo install cargo-audit
- name: Run cargo audit
run: cargo audit --ignore RUSTSEC-2024-0438
13 changes: 10 additions & 3 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
/target
**/*.rs.bk
**/*.bak
Cargo.lock
.DS_Store
**/.DS_Store

Expand Down Expand Up @@ -29,12 +28,20 @@ web/dist/
ai-agent/pardus-browser/node_modules/
ai-agent/pardus-browser/dist/

# Lockfiles
**/package-lock.json
# Lockfiles (committed for reproducibility)
# If you need to regenerate: rm **/package-lock.json && npm install

.env
.env.*
!.env.example

# Research benchmark data
research/
bench-results/

# Tool caches
.ruff_cache/

# AI coding assistant configs (local only)
.opencode/
.claude/
1 change: 1 addition & 0 deletions .nvmrc
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
20
Loading