Heretek-Drop 6fafd4915f feat(docs): auto-generate workspace crate table
Per AI_HARNESS_PLAN.md phase 5.1 and 5.3.

- new docs/generate-crate-table.sh parses each member's
  Cargo.toml description field and emits a markdown table.
  Sourceable, executable, bash -n clean.
- pnpm docs:sync runs the generator for ad-hoc use.
- README.md crate table updated to match generated output
  (syncs descriptions from the manifests, not from memory).
- commitlint scope-enum gains 'docs' to allow this and future
  docs-only commits.

The table stays in sync with member manifests. Re-run
'pnpm docs:sync' after adding a sub-crate or changing a
description.
2026-07-30 11:23:19 -04:00

Heretek-Drop

A native, AGPL-3.0 client for Drop — an open-source game distribution platform (like a self-hosted Steam).

Stack

  • Language: Rust (edition 2024, stable)
  • UI: Slint (declarative UI, no webview, no Chromium)
  • Distribution: Linux flatpak (v0.1)

Status

v0.1 (in development) — minimal feature set: auth, browse library, download, launch.

Architecture

┌─────────────────────────────────────────────────┐
│                 heretek-drop                      │
│  ┌──────────┐  ┌──────────┐  ┌───────────────┐  │
│  │ Slint UI │  │ Commands │  │  EventBus     │  │
│  │  .slint  │◄─┤  Bridge  │◄─┤ (flume 256)   │  │
│  └────┬─────┘  └────┬─────┘  └───────┬───────┘  │
│       │             │                │           │
│  ┌────▼─────────────▼────────────────▼───────┐   │
│  │              Services Layer               │   │
│  │  Auth │ Library │ Download │ Settings     │   │
│  └────┬────────┬──────┬──────────┬───────────┘   │
│       │        │      │          │               │
│  ┌────▼────────▼──────▼──────────▼───────────┐   │
│  │              Sub-crates                    │   │
│  │ protocol │ auth │ database │ dl_manager   │   │
│  │               │ process_manager           │   │
│  └───────────────────────────────────────────┘   │
└─────────────────────────────────────────────────┘
                        │
              HTTP (REST + JWT)
                        │
               ┌────────▼────────┐
               │   Drop Server   │
               │  (upstream)     │
               └─────────────────┘

Single Rust binary. Cargo workspace at apps/desktop/ with sub-crates. The table below is auto-generated by pnpm docs:sync (see docs/generate-crate-table.sh); the root binary crate is heretek-drop.

Crate Purpose
heretek-drop (root) Binary + Slint UI + glue
heretek-drop-protocol Drop REST API client. HTTP + JWT auth header injection.
heretek-drop-auth Drop auth flow. Login, JWT handling, credential persistence.
heretek-drop-database Local SQLite-backed key-value store for caching, settings, and library snapshots.
heretek-drop-download-manager Download manager for game files. Chunked downloads with progress events.
heretek-drop-process-manager Game process tracker. Spawns, monitors, and signals running game processes.
heretek-drop-shared Shared types and errors used across all Heretek-Drop sub-crates.

Build

# Prerequisites
sudo apt-get install -y flatpak flatpak-builder
rustup toolchain install stable
cargo install slint-viewer

# Build
cargo build --workspace

# Run
cargo run --bin heretek-drop

# Tests
cargo test --workspace

# Format + lint
cargo fmt --all -- --check
cargo clippy --workspace --all-targets -- -D warnings

# Live UI iteration (no Rust recompile)
cargo install slint-viewer
slint-viewer apps/desktop/src/ui/app-window.slint

# Flatpak build (v0.1 release target)
cd apps/desktop
flatpak-builder build flatpak/app.heretek.drop.yml --user --install
flatpak run app.heretek.drop

Git Hooks

Pre-commit runs: cargo fmt → clippy → fallow → prettier Commit-msg enforces: conventional commits (via commitlint) Pre-push runs: cargo test --workspace

Packages

# Release (from GitHub Releases)
flatpak install ./app.heretek.drop-v0.1.0-x86_64.flatpak

Flatpak builds for x86_64 and aarch64 on every tag push.

License

AGPL-3.0. See LICENSE and AGPL-3.0.LICENSE.

Upstream attribution in NOTICE.

Upstream

S
Description
No description provided
Readme
334 KiB
0 Stars 1 Watchers 0 Forks
Languages
Rust 79.6%
Slint 12.1%
Shell 7.5%
JavaScript 0.8%