Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
36 commits
Select commit Hold shift + click to select a range
c9c3fb8
Add About section to Settings with app description and author
phoscoder Sep 11, 2026
d56bc4f
Add styles for About card in Settings
phoscoder Sep 11, 2026
2d249bb
Remove Architect and QA credit from About author row
phoscoder Sep 11, 2026
f242210
Remove the React frontend and Tauri shell
phoscoder Oct 2, 2026
d63f45e
Make the backend a standalone Rust crate
phoscoder Oct 2, 2026
3dc1af1
Add money formatting and amount parsing
phoscoder Oct 2, 2026
8fca13f
Add persisted UI preferences
phoscoder Oct 2, 2026
238622d
Add page arithmetic for list screens
phoscoder Oct 2, 2026
f60452f
Add date-range presets for list filters
phoscoder Oct 2, 2026
81a342c
Add subscription scheduling and filtering
phoscoder Oct 2, 2026
190e785
Add balance projection math
phoscoder Oct 2, 2026
90f753b
Add dashboard summaries for a date range
phoscoder Oct 2, 2026
5b4b394
Add CSV and JSON export
phoscoder Oct 2, 2026
6c6fe6f
Add CSV import session rules
phoscoder Oct 2, 2026
b4d9648
Skip repeated rows within a single CSV import
phoscoder Oct 2, 2026
8bdc89f
Add the GPUI app shell
phoscoder Oct 2, 2026
723ece3
Port the Accounts screen
phoscoder Oct 2, 2026
e15ecf2
Port the Categories and Settings screens
phoscoder Oct 2, 2026
a0c6d9c
Bridge the Omarchy theme to gpui-component and add date fields
phoscoder Oct 2, 2026
5b33220
Port the Subscriptions screen
phoscoder Oct 2, 2026
fbf5836
Port the Projections screen
phoscoder Oct 2, 2026
a9cb09e
Add a shared date filter control and table cell helpers
phoscoder Oct 2, 2026
d122382
Port the Transactions screen
phoscoder Oct 2, 2026
0c2361e
Add the CSV import dialog
phoscoder Oct 2, 2026
92b59b0
Port the Overview filters and charts
phoscoder Oct 2, 2026
7b66426
Close dialogs with Escape and submit forms with Enter
phoscoder Oct 2, 2026
de857f9
Give the window a title, app id and minimum size
phoscoder Oct 2, 2026
fdf4a47
Move CI, release packaging and tooling to the Rust build
phoscoder Oct 2, 2026
5008298
Rewrite the README for the Rust build
phoscoder Oct 2, 2026
5c79c38
Track Cargo.lock
phoscoder Oct 2, 2026
e8c8804
Replace the made-up 115 Ch logo with an element tile
phoscoder Oct 2, 2026
2e8a881
Use the Omarchy font for the whole UI
phoscoder Oct 2, 2026
bd593c7
Size body text to match the Omarchy controls
phoscoder Oct 2, 2026
a687b34
Add a text size preference
phoscoder Oct 2, 2026
2d77503
Add a text size setting
phoscoder Oct 2, 2026
8b71a1f
Document the text size shortcuts
phoscoder Oct 2, 2026
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
28 changes: 28 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
name: CI

on:
push:
branches: [main]
pull_request:

jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4

- name: Install Rust toolchain
uses: dtolnay/rust-toolchain@stable

- name: Install system dependencies
run: |
sudo apt-get update
sudo apt-get install -y \
build-essential clang cmake pkg-config \
libxkbcommon-dev libxkbcommon-x11-dev libwayland-dev \
libx11-xcb-dev libxcb1-dev libfontconfig1-dev libvulkan-dev libssl-dev

- uses: Swatinem/rust-cache@v2

- name: Test
run: cargo test --locked
92 changes: 38 additions & 54 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,92 +13,75 @@ jobs:
steps:
- uses: actions/checkout@v4

- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: "22"

- name: Install Rust toolchain
uses: dtolnay/rust-toolchain@stable

- name: Install system dependencies
run: |
sudo apt-get update
sudo apt-get install -y \
libgtk-3-dev \
libwebkit2gtk-4.1-dev \
libappindicator3-dev \
librsvg2-dev \
patchelf \
libssl-dev
build-essential clang cmake pkg-config \
libxkbcommon-dev libxkbcommon-x11-dev libwayland-dev \
libx11-xcb-dev libxcb1-dev libfontconfig1-dev libvulkan-dev libssl-dev \
patchelf

- name: Install frontend dependencies
run: npm ci
- uses: Swatinem/rust-cache@v2

- name: Build frontend
run: npm run build
- name: Test
run: cargo test --locked

- name: Build Rust backend
working-directory: src-tauri
run: cargo build --release
- name: Build
run: cargo build --release --locked --bin chelete

- name: Get version from tag
id: version
run: echo "VERSION=${GITHUB_REF#refs/tags/v}" >> $GITHUB_OUTPUT

- name: Create tarball
run: |
NAME="chelete_${{ steps.version.outputs.VERSION }}_linux_x86_64"
mkdir -p "dist/$NAME"
cp target/release/chelete "dist/$NAME/"
cp assets/chelete.desktop "dist/$NAME/"
cp assets/icons/128x128.png "dist/$NAME/chelete.png"
cp LICENSE README.md "dist/$NAME/"
tar -C dist -czf "dist/$NAME.tar.gz" "$NAME"

- name: Create AppImage
working-directory: src-tauri/target/release
working-directory: dist
run: |
mkdir -p AppDir/usr/bin
mkdir -p AppDir/usr/share/applications
mkdir -p AppDir/usr/share/icons/hicolor/256x256/apps
cp chelete AppDir/usr/bin/
cp ../../icons/128x128.png AppDir/chelete.png
cp ../../icons/128x128.png AppDir/usr/share/icons/hicolor/256x256/apps/chelete.png
cat > AppDir/chelete.desktop << EOF
[Desktop Entry]
Name=Chelete
Exec=chelete
Icon=chelete
Type=Application
Categories=Office;Finance;
EOF
cp AppDir/chelete.desktop AppDir/usr/share/applications/chelete.desktop
mkdir -p AppDir/usr/bin AppDir/usr/share/applications AppDir/usr/share/icons/hicolor/256x256/apps
cp ../target/release/chelete AppDir/usr/bin/
cp ../assets/icons/128x128.png AppDir/chelete.png
cp ../assets/icons/128x128.png AppDir/usr/share/icons/hicolor/256x256/apps/chelete.png
cp ../assets/chelete.desktop AppDir/chelete.desktop
cp ../assets/chelete.desktop AppDir/usr/share/applications/chelete.desktop
cat > AppDir/AppRun << 'APPEOF'
#!/bin/sh
HERE="$(dirname "$(readlink -f "${0}")")"
exec "${HERE}/usr/bin/chelete" "$@"
APPEOF
chmod +x AppDir/AppRun
chmod +x AppDir/usr/bin/chelete
chmod +x AppDir/AppRun AppDir/usr/bin/chelete
wget -q https://github.com/linuxdeploy/linuxdeploy/releases/download/continuous/linuxdeploy-x86_64.AppImage
chmod +x linuxdeploy-x86_64.AppImage
./linuxdeploy-x86_64.AppImage --appdir AppDir --output appimage

- name: Package .deb
working-directory: src-tauri/target/release
working-directory: dist
run: |
DEB_DIR="chelete_${{ steps.version.outputs.VERSION }}_amd64"
mkdir -p "$DEB_DIR/DEBIAN"
mkdir -p "$DEB_DIR/usr/bin"
mkdir -p "$DEB_DIR/usr/share/applications"
mkdir -p "$DEB_DIR/usr/share/icons/hicolor/256x256/apps"
cp chelete "$DEB_DIR/usr/bin/"
cp ../../icons/128x128.png "$DEB_DIR/usr/share/icons/hicolor/256x256/apps/chelete.png"
cat > "$DEB_DIR/chelete.desktop" << EOF
[Desktop Entry]
Name=Chelete
Exec=chelete
Icon=chelete
Type=Application
Categories=Finance;
EOF
mkdir -p "$DEB_DIR/DEBIAN" "$DEB_DIR/usr/bin" "$DEB_DIR/usr/share/applications" "$DEB_DIR/usr/share/icons/hicolor/256x256/apps"
cp ../target/release/chelete "$DEB_DIR/usr/bin/"
cp ../assets/chelete.desktop "$DEB_DIR/usr/share/applications/"
cp ../assets/icons/128x128.png "$DEB_DIR/usr/share/icons/hicolor/256x256/apps/chelete.png"
cat > "$DEB_DIR/DEBIAN/control" << EOF
Package: chelete
Version: ${{ steps.version.outputs.VERSION }}
Architecture: amd64
Depends: libgtk-3-0, libwebkit2gtk-4.1-0, libappindicator3-1
Maintainer: Victor Phos
Depends: libvulkan1, libxkbcommon0, libxkbcommon-x11-0, libwayland-client0, libfontconfig1
Description: Personal finance tracker
A fast, keyboard-driven personal finance tracker built for Omarchy.
EOF
dpkg-deb --build "$DEB_DIR"

Expand All @@ -107,5 +90,6 @@ jobs:
with:
generate_release_notes: true
files: |
src-tauri/target/release/*.deb
src-tauri/target/release/*.AppImage
dist/*.tar.gz
dist/*.deb
dist/*.AppImage
3 changes: 0 additions & 3 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,6 @@ node_modules/
# Build
dist/
target/
*.lock
*.tsbuildinfo

# Environment
Expand All @@ -25,5 +24,3 @@ target/
.DS_Store
Thumbs.db

# Tauri
src-tauri/target/
Loading
Loading