No description
  • C# 89.8%
  • PowerShell 10.2%
Find a file
oss 010598247a
Some checks failed
ci / build + unit suites (push) Successful in 7m7s
ci / installer + lifecycle (push) Successful in 54m50s
ci / FlaUI UI suites (push) Failing after 15m51s
Merge pull request 'chore(deps): update dependency microsoft.net.test.sdk to 18.12.0' (#16) from renovate/vstest-monorepo into main
Reviewed-on: ⁨#16⁩
2026-11-14 20:59:10 +01:00
.forgejo/workflows fix: export the release version without a byte-order mark 2026-11-03 11:23:02 +01:00
.githooks test: stabilize M7 elevated-runner harness 2026-07-29 18:31:31 +02:00
docs fix: harden release signing per review 2026-11-03 10:06:31 +01:00
eng fix: harden release signing per review 2026-11-03 10:06:31 +01:00
plans docs: record verified release signing and M8 completion [skip ci] 2026-11-03 12:49:04 +01:00
src fix: redesign the pairing screen and report a rejected password 2026-11-03 13:30:14 +01:00
tests chore(deps): update dependency microsoft.net.test.sdk to 18.12.0 2026-11-12 03:04:55 +00:00
.editorconfig feat: establish native Windows foundation 2026-07-22 23:33:43 +02:00
.gitattributes feat: establish native Windows foundation 2026-07-22 23:33:43 +02:00
.gitignore feat: establish native Windows foundation 2026-07-22 23:33:43 +02:00
AGENTS.md docs: align verification policy with Yeet manual smoke 2026-11-02 18:20:41 +01:00
CLAUDE.md docs: align verification policy with Yeet manual smoke 2026-11-02 18:20:41 +01:00
Directory.Build.props build: stop embedding absolute source paths in CI builds 2026-08-03 21:06:50 +02:00
Directory.Packages.props chore(deps): update dependency microsoft.net.test.sdk to 18.12.0 2026-11-12 03:04:55 +00:00
global.json feat: establish native Windows foundation 2026-07-22 23:33:43 +02:00
PROGRESS.md docs: record verified release signing and M8 completion [skip ci] 2026-11-03 12:49:04 +01:00
README.md docs: describe self-signed releases in the README [skip ci] 2026-11-03 10:30:30 +01:00
RELEASE-NOTES.md fix: harden release signing per review 2026-11-03 10:06:31 +01:00
renovate.json Add renovate.json 2026-07-26 03:09:12 +00:00
THIRD-PARTY-NOTICES.md feat: generate the shipped dependency and licence inventory 2026-08-03 18:41:36 +02:00
Yeet.Windows.slnx feat: establish native Windows foundation 2026-07-22 23:33:43 +02:00

Yeet Windows

Native C#/.NET 10 WPF client for Yeet.

Product boundary

The application delivers the unified Transfers workflow while preserving intended KMP behavior and correcting verified defects. Cancelled chat and P2P/LAN work are deliberately excluded.

The UI uses a Material-style design system and official Google Material Symbols. Closing the main window hides it to the notification area; explicit Quit is the only process-exit path once Windows lifecycle integration lands.

Build and test

Ordinary builds, automated tests, and UI verification run only in Forgejo CI for the exact pushed SHA. Do not run builds or tests locally. Explicitly authorized attended production smoke and installer/OS manual checks use a CI-built artifact in an isolated test scope and are recorded separately as manual evidence. They do not replace required CI jobs or authorize a release.

For authorized manual smoke, launch the installed CI-built application in the isolated test scope.

CI packaging uses eng/Build-CiInstaller.ps1. It archives the exact triggering commit and builds in the fixed %LOCALAPPDATA%\Yeet.CI\release-source directory under an exclusive lock. This works around the remaining compiler dependence on the source directory; it does not make arbitrary build paths reproducible. Payload timestamps and MSI summary dates use the source commit time. The compound-file root modification timestamp is cleared after summary persistence. Product and package GUIDs derive from the source SHA, version, runtime, commit time, and published file names/hashes. The installer CI job and release workflow compare two clean builds of the payload, MSI, and checksum before accepting them. WiX debug databases are excluded because they are not release assets.

SemVer tags are gated by the release workflow, which requires successful CI for the exact tagged SHA before packaging or publishing. Releases are signed with a self-signed certificate held only in Forgejo secrets; see docs/releasing.md for what that does and does not provide. A tag or release still requires explicit authorization.

Local Git gates

Install this checkout's tracked hooks once:

powershell -NoProfile -ExecutionPolicy Bypass -File eng/Install-Hooks.ps1

The pre-commit hook checks the exact staged tree statically. It does not build, test, run UI automation, or create a local test receipt.

The pre-push hook checks each exact outgoing tree statically. It does not build, test, run UI automation, or create a local test receipt. Branch protection and required statuses are configured externally in Forgejo; the pushed SHA's Forgejo CI result is the authority. The hook checks tag/version agreement; the release workflow enforces the CI gate.

Delivery plan

Milestones and their canonical status are in plans/INDEX.md. Each milestone has implementation tasks, exit criteria, architecture checks, and evidence. Completed verification is appended to PROGRESS.md with the exact Forgejo CI SHA/result; older local results remain historical diagnostics. Do not commit unless explicitly requested.

The source-traceable migration baseline is split into architecture, KMP parity, verified defects, UI inventory, and testing strategy.