kiapanahi / kiapanahi/KuriousLabs.WindowsTilingWindowManager

Scaffold Bastion.Bar (WinUI 3 status bar, appbar registration)

Open
#19 0 comments 0 reactions 0 assignees View on GitHub
area:bar type:feature
Dominant language
C#
Stars
0
Forks
0
PR merge metrics
No merged PRs in 30d

Description

## Problem / goal

Scaffold `Bastion.Bar`, the WinUI 3 status bar/appbar. This project does not exist yet — it is explicitly deferred (see `CLAUDE.md`'s project table: "Deferred to v0.3, not yet scaffolded").

## References

- `DESIGN.md` §3.8 (Bar, summarized — full behavior spec is in §7/§8/§9 for the pieces it surfaces).
- `DESIGN.md` §10 (Technology Stack) — `Bastion.Bar` is WinUI 3/Windows App SDK, `AppWindow`, own windows only.
- `DESIGN.md` §9 edge-case table, Explorer-restart row — re-register appbar via the `ABM_NEW` sequence, re-init `ITaskbarList`, on Explorer restart (`TaskbarCreated` broadcast message).
- `docs/engineering/interop.md` §5 (apartment discipline — the single dedicated STA thread rule for all shell-COM calls applies directly to this project's `ITaskbarList` usage).
- Depends on the v0.1 IPC-server issue (the bar is a broadcast-pipe subscriber).

## Acceptance criteria

- [ ] `src/Bastion.Bar/Bastion.Bar.csproj` exists as a WinUI 3/Windows App SDK project, added to `Bastion.slnx`.
- [ ] The bar registers itself as an appbar (`SHAppBarMessage` `ABM_NEW` sequence) and re-registers on a detected Explorer restart (`TaskbarCreated` broadcast message).
- [ ] All `ITaskbarList`/shell-COM calls run on the single dedicated STA thread per `docs/engineering/interop.md` §5 — never from a WinUI dispatcher/UI thread callback directly if that thread isn't the designated STA thread (state explicitly in the PR which thread was chosen and why).
- [ ] The bar connects to `bastiond`'s broadcast IPC pipe (from the v0.1 IPC-server issue) to receive state updates.

Contributor guide

Open the contributing guide

Research direction

Start with CLAUDE.md's project table, then read DESIGN.md §§3.8, 7–10 and docs/engineering/interop.md §5. Create src/Bastion.Bar/Bastion.Bar.csproj and add it to Bastion.slnx, then trace the v0.1 IPC-server issue's broadcast-pipe contract. Done means the WinUI 3 bar registers and re-registers its appbar, uses one dedicated STA thread for shell-COM calls, and receives state updates from bastiond.

Written by the indexing model from the issue text.

Assessment

Tech stack
csharp
Domain
desktop, operating-systems
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.