Resolution dropdown, list-focus preservation, unified dark theme, startup logging, and memory map
- Bottom-bar resolution dropdown (1080p60/1080p30/720p60/480p30) with tooltip on finding upload bandwidth; disabled while live; no in-app speed test - FocusPreservingListBox keeps selection/focus coherent when a selected scene/source is deleted (skip hidden scenes; leave list when empty) - Themes/Controls.xaml: single dark-theme dictionary merged once in App.xaml; custom ComboBox template fixes SelectionBoxItem rendering; GoLiveWindow and ReuseImageDialog consolidated onto shared styles - AppLog file logger + AppDomain/Dispatcher exception hooks; checkpointed MainWindow/VM/dialog constructors (caught MenuItemRole.Separator XAML crash) - Memory map: schema.md conventions, per-directory index.md, updated ai.md/ TASKS.md/README.md (OAuth creds real; token persistence still pending)
This commit is contained in:
@@ -0,0 +1,54 @@
|
||||
# ytLlive — Memory Map (schema)
|
||||
|
||||
This file defines how the repo stores durable, associative memory: context as
|
||||
plain markdown files, versioned in git. It is the map of the map — the schema
|
||||
that every other memory file follows. Read `ai.md` first; this file explains
|
||||
*why* and *how*.
|
||||
|
||||
## Why markdown files, not a database
|
||||
|
||||
- Grep-able, diffable, portable, human-editable — no tooling lock-in.
|
||||
- Git gives versioning and history for free; every stale fact is a `git log` away.
|
||||
- Files form a graph: each file is a node, each relative link an edge. The map
|
||||
stays associative (like memory) rather than a rigid tree.
|
||||
|
||||
## File inventory
|
||||
|
||||
| File | Role | Entry point? |
|
||||
|------|------|--------------|
|
||||
| `README.md` | Human-facing intro: what the app is, how to run it, roadmap | no |
|
||||
| `ai.md` | **AI guide + session handoff** — architecture, patterns, decisions, the cognitive map home | **yes — start here** |
|
||||
| `TASKS.md` | Task queue + authoritative YouTube API research facts + task statuses | yes — for status |
|
||||
| `schema.md` | This file: the conventions below | when in doubt |
|
||||
| `<dir>/index.md` | Per-directory map (progressive disclosure): what lives there + links | when diving into code |
|
||||
| `Views/` | Reserved for Views; currently empty | — |
|
||||
|
||||
## Conventions
|
||||
|
||||
1. **Semantic filenames.** A file's name says what it is (`YouTubeAuthService.cs`,
|
||||
`FocusPreservingListBox.cs`). No codes, no abbreviations. Naming beats search.
|
||||
2. **One `index.md` per code directory.** The index is a Map of Content (MOC):
|
||||
it lists every file in that directory with a one-line purpose and links out to
|
||||
related directories. Details live in the files, never duplicated in the index.
|
||||
3. **Links over hierarchy.** Prefer relative links between related files over
|
||||
deep nesting. Relationships that matter should be visible from `ai.md` or an
|
||||
`index.md`; a note that is unreachable from `ai.md` might as well not exist.
|
||||
4. **Stale facts get FIXED, not appended.** A wrong map is worse than no map.
|
||||
When the code changes, update the memory file in the same change — no
|
||||
"TODO: update later" notes.
|
||||
5. **Progressive disclosure.** Don't cram detail into `ai.md`. `ai.md` names
|
||||
concepts and points at files; the indexes and source are the detail. Each
|
||||
layer adds resolution only when you drill in.
|
||||
|
||||
## Reading order
|
||||
|
||||
1. `ai.md` — what this app is, how it's built, current state, open decisions.
|
||||
2. `TASKS.md` — what's done, what's next, and the YouTube API constraints.
|
||||
3. `<dir>/index.md` — to understand a directory before reading its files.
|
||||
4. The source files themselves — always the authority over any memory file.
|
||||
|
||||
## Integration rule
|
||||
|
||||
Every feature change ships with its memory update: `ai.md` for architecture /
|
||||
patterns, `TASKS.md` for status, index files when the layout changes. That is
|
||||
what keeps the map accurate enough to trust next session.
|
||||
Reference in New Issue
Block a user