Initial commit of version 0.2.0
This commit is contained in:
parent
86fc06b877
commit
dfb04462f3
108 changed files with 16167 additions and 80 deletions
80
README.md
80
README.md
|
|
@ -1,41 +1,71 @@
|
|||
# Decky
|
||||
|
||||
Decky is a focused Windows desktop client for viewing and editing boards from a
|
||||
Nextcloud Deck instance.
|
||||
Decky is a focused cross-platform desktop client for viewing and editing boards
|
||||
from a Nextcloud Deck instance.
|
||||
|
||||
## Current status
|
||||
## Current application
|
||||
|
||||
The repository currently contains:
|
||||
The active application lives in `app/` and uses:
|
||||
|
||||
- `Decky.Core`, a UI-independent Deck REST API client and domain foundation;
|
||||
- `Decky.ApiSpike`, a read-only connection and compatibility probe;
|
||||
- `Decky.App`, the initial WinUI 3 desktop shell;
|
||||
- focused tests for API path discovery, required headers, update serialization,
|
||||
completion clearing, color preservation, and text contrast.
|
||||
- Tauri 2 for the small native desktop shell;
|
||||
- Svelte 5 and TypeScript for the interface;
|
||||
- the operating system webview on Windows, macOS, and Linux;
|
||||
- the native credential store on each platform (Windows Credential Manager,
|
||||
macOS Keychain, or Linux Secret Service);
|
||||
- Tauri's Rust HTTP client so Nextcloud requests are not blocked by browser CORS.
|
||||
|
||||
Implemented functionality includes:
|
||||
|
||||
- app-password authentication and automatic API-path discovery;
|
||||
- active-board filtering and saved board selection;
|
||||
- horizontal and vertical layouts saved independently per board;
|
||||
- card creation, editing, deletion, due date, description, and color controls;
|
||||
- a directly visible completion checkmark that synchronizes Deck's `done` value
|
||||
and applies the configured active/completed color;
|
||||
- preserved full-card update payloads and the tested Deck cross-stack movement
|
||||
compatibility fallback;
|
||||
- responsive/collapsible navigation and card search.
|
||||
|
||||
The earlier .NET/WinUI projects remain in `src/` and `tests/` temporarily as a
|
||||
reference for the compatibility probe and original API test cases. They are no
|
||||
longer the primary application.
|
||||
|
||||
## Development
|
||||
|
||||
Install the .NET 10 SDK and the Visual Studio WinUI application-development
|
||||
workload. Then run:
|
||||
Install Node.js, Rust stable, the platform-specific Tauri prerequisites, and
|
||||
then run:
|
||||
|
||||
```powershell
|
||||
dotnet restore Decky.slnx
|
||||
dotnet test tests/Decky.Core.Tests/Decky.Core.Tests.csproj
|
||||
dotnet run --project src/Decky.ApiSpike/Decky.ApiSpike.csproj
|
||||
cd app
|
||||
npm install
|
||||
npm run check
|
||||
npm test
|
||||
npm run tauri dev
|
||||
```
|
||||
|
||||
The compatibility probe prompts for a Nextcloud app password without echoing or
|
||||
storing it. It starts with read-only board, stack, and card-list requests. On a
|
||||
disposable test board, its explicitly confirmed `WRITE` mode also verifies card
|
||||
color creation/preservation, setting and clearing completion, same-stack reorder,
|
||||
cross-stack movement, response verification, and cleanup.
|
||||
Build a release executable with:
|
||||
|
||||
The desktop app stores its JSON settings in `%LOCALAPPDATA%\Decky\settings.json`.
|
||||
The app password is stored separately in Windows Credential Locker and is never
|
||||
written to the JSON file.
|
||||
```powershell
|
||||
powershell -ExecutionPolicy Bypass -File .\scripts\Prepare-Release.ps1 -Version 0.2.0 -Notes "Release notes"
|
||||
```
|
||||
|
||||
This produces a normal per-user Windows setup executable plus the cryptographic
|
||||
signature and metadata used by Decky's in-app updater.
|
||||
|
||||
Cross-platform artifacts must be compiled on their target operating system.
|
||||
Use macOS for `.app`/DMG builds, Windows for MSI/NSIS builds, and Linux for the
|
||||
desired Linux packages.
|
||||
|
||||
## Security
|
||||
|
||||
Decky only accepts HTTPS servers, except for `localhost` during development.
|
||||
The app password is never stored in local storage or the JSON/settings model.
|
||||
When “Save securely on this device” is selected it is saved through the native
|
||||
OS credential service.
|
||||
|
||||
## Updates
|
||||
|
||||
Release builds will be distributed as a signed MSIX bundle through a stable
|
||||
`Decky.appinstaller` feed. Forgejo is the source and CI/release host; installed
|
||||
copies do not update with `git pull`.
|
||||
Installed copies update from signed release artifacts, never with `git pull`.
|
||||
The updater is available from Settings and reads stable metadata from the
|
||||
Forgejo repository. See `app/UPDATES.md` for signing-key backup, release tags,
|
||||
Forgejo Actions secrets, and the manual release fallback.
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue