Skip to content
Draft
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
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@ dist-ssr
.npm-cache/
.npm-logs/
native-macos/.build/
native-macos/build/
src-tauri/standforge.db*

# Editor directories and files
Expand Down
13 changes: 10 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,15 +8,15 @@ StandForge is a small macOS/Tauri app that runs a background sitting timer and p
- Background timer that keeps running after the settings window is closed
- Always-on-top reminder popup when it is time to stand
- Pause, resume, stop, snooze, and manual phase switching
- Local SQLite storage for cycle settings and completed stand sessions
- Local persistence for cycle settings, active timers, and completed stand sessions
- Today view with completed sessions, standing time, snooze count, and completion rate

## Development

This repository now has two app implementations:

- **Tauri/React**: the current cross-platform shell with CSS glass styling.
- **Native macOS**: a SwiftUI/AppKit floating window that uses system Liquid Glass on macOS 26+.
- **Tauri/React**: the current cross-platform shell with CSS glass styling and SQLite storage.
- **Native macOS**: a SwiftUI/AppKit floating window that uses system Liquid Glass on macOS 26+ and stores its state in `UserDefaults`.

```bash
npm install
Expand Down Expand Up @@ -50,3 +50,10 @@ npm run mac:native:build
```

The native app bundle is written to `native-macos/.build/app/StandForge Native.app`.

Run the backend and native unit tests with:

```bash
cargo test --locked --manifest-path src-tauri/Cargo.toml
swift test --package-path native-macos
```
4 changes: 4 additions & 0 deletions native-macos/Package.swift
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,10 @@ let package = Package(
.executableTarget(
name: "StandForgeMac",
path: "Sources/StandForgeMac"
),
.testTarget(
name: "StandForgeMacTests",
dependencies: ["StandForgeMac"]
)
]
)
9 changes: 9 additions & 0 deletions native-macos/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,15 @@ The app bundle is written to:
native-macos/.build/app/StandForge Native.app
```

Local builds use an ad-hoc signature. For a distributable Developer ID build,
provide a signing identity and an optional notarytool keychain profile:

```bash
CODESIGN_IDENTITY="Developer ID Application: Example Corp (TEAMID)" \
NOTARY_PROFILE="standforge-notary" \
native-macos/scripts/build-app.sh
```

## Liquid Glass behavior

The SwiftUI version uses `GlassEffectContainer`, `glassEffect(_:in:)`, and the
Expand Down
Loading