|
@@ -37,11 +37,27 @@ zoeken of scannen — scope alle bestandsoperaties tot dit project.
|
|
|
kunnen meerdere sessies tegelijk actief zijn.** Check vóór je een
|
|
kunnen meerdere sessies tegelijk actief zijn.** Check vóór je een
|
|
|
taak oppakt of de Eigenaar-regel al "— bezig" zegt door iemand
|
|
taak oppakt of de Eigenaar-regel al "— bezig" zegt door iemand
|
|
|
anders — zo ja, niet zelfstandig ook gaan bouwen aan hetzelfde
|
|
anders — zo ja, niet zelfstandig ook gaan bouwen aan hetzelfde
|
|
|
- bestand/component, vraag Bob eerst wie 'm afmaakt. Zet zelf "—
|
|
|
|
|
- bezig" zodra je serieus begint. (Precedent 2026-08-04: twee sessies
|
|
|
|
|
- pakten onafhankelijk dezelfde P0-taak op — Bob moest scheidsrechteren
|
|
|
|
|
- tussen twee stukken werk aan hetzelfde bestand.)
|
|
|
|
|
-- **Een draaiend `ff-run-fvm.sh`/`flutter run`-proces is géén
|
|
|
|
|
|
|
+ bestand/component, vraag Bob eerst wie 'm afmaakt. **Zet zelf "—
|
|
|
|
|
+ bezig" zodra je serieus begint — dit geldt óók voor puur onderzoek/
|
|
|
|
|
+ reproductie (bv. een eigen `flutter run`-sessie starten om een stack
|
|
|
|
|
+ trace te vangen), niet alleen voor builder-edits.** (Precedent
|
|
|
|
|
+ 2026-08-04: twee sessies pakten onafhankelijk dezelfde P0-taak op —
|
|
|
|
|
+ Bob moest scheidsrechteren tussen twee stukken werk aan hetzelfde
|
|
|
|
|
+ bestand. **Tweede precedent, 2026-08-09:** een sessie deed 20+
|
|
|
|
|
+ minuten actief P1-13-onderzoek — eigen `flutter run`-proces + een
|
|
|
|
|
+ nieuwe bug gevonden (P1-19) — zonder ooit "— bezig" te zetten; een
|
|
|
|
|
+ nieuwe sessie kwam er via `git diff`/proces-inspectie toevallig
|
|
|
|
|
+ achter vlak vóórdat ze zelf hetzelfde pad zou inslaan. Geen schade,
|
|
|
|
|
+ maar puur geluk — vandaar nu ook `ff-session-check.sh`, zie
|
|
|
|
|
+ hieronder.)
|
|
|
|
|
+- **Start elke sessie met `/home/bob/Projects/ff-session-check.sh`**
|
|
|
|
|
+ (géén argumenten nodig voor dit project) — bundelt in één keer
|
|
|
|
|
+ git-status, welke devices/emulators draaien, welke
|
|
|
|
|
+ flutter/ff-run-fvm/`script`-processen actief zijn (met leeftijd), en
|
|
|
|
|
+ welke `TASKS.md`-taken al "— bezig" staan. Vervangt de losse
|
|
|
|
|
+ handmatige `git status`/`adb devices`/`ps aux`-stappen hieronder —
|
|
|
|
|
+ dat was voorheen makkelijk (deels) over te slaan, dit script niet.
|
|
|
|
|
+ **Een draaiend `ff-run-fvm.sh`/`flutter run`-proces alléén is géén
|
|
|
betrouwbaar signaal dat er "nu" iemand actief mee bezig is** —
|
|
betrouwbaar signaal dat er "nu" iemand actief mee bezig is** —
|
|
|
bevestigd 2026-08-07: meerdere van die processen bleken dagen oud
|
|
bevestigd 2026-08-07: meerdere van die processen bleken dagen oud
|
|
|
(gestart Aug05/Aug06, nog steeds draaiend), puur omdat het
|
|
(gestart Aug05/Aug06, nog steeds draaiend), puur omdat het
|
|
@@ -51,8 +67,10 @@ zoeken of scannen — scope alle bestandsoperaties tot dit project.
|
|
|
`CLAUDE.md` zelf ook wijzigingen tonen t.o.v. de laatste commit) —
|
|
`CLAUDE.md` zelf ook wijzigingen tonen t.o.v. de laatste commit) —
|
|
|
dát is een aanwijzing dat een sessie iets heeft afgerond/uitgevoerd
|
|
dát is een aanwijzing dat een sessie iets heeft afgerond/uitgevoerd
|
|
|
maar de afsluitroutine (commit+push, zie hieronder) nog niet heeft
|
|
maar de afsluitroutine (commit+push, zie hieronder) nog niet heeft
|
|
|
- gedaan. Zie zo'n situatie: bouw erop voort waar zinnig, maar commit
|
|
|
|
|
- niet over andermans nog-niet-afgeronde wijziging heen zonder
|
|
|
|
|
|
|
+ gedaan. **Beide signalen samen (proces + ongecommitte diff) zijn het
|
|
|
|
|
+ sterkste bewijs van live werk** — het script hierboven toont ze
|
|
|
|
|
+ gecombineerd. Zie zo'n situatie: bouw erop voort waar zinnig, maar
|
|
|
|
|
+ commit niet over andermans nog-niet-afgeronde wijziging heen zonder
|
|
|
navraag.
|
|
navraag.
|
|
|
|
|
|
|
|
## Sessiegeheugen — afsluitroutine
|
|
## Sessiegeheugen — afsluitroutine
|
|
@@ -183,14 +201,33 @@ export PATH="/home/bob/fvm/bin:$HOME/.pub-cache/bin:$PATH" && /home/bob/Projects
|
|
|
vóór je die crash reproduceert, ván een schone/crash-vrije pagina uit
|
|
vóór je die crash reproduceert, ván een schone/crash-vrije pagina uit
|
|
|
— dat reset de teller. Een `run_in_background`-Bash-aanroep van
|
|
— dat reset de teller. Een `run_in_background`-Bash-aanroep van
|
|
|
`ff-run-fvm.sh` heeft **stdin op `/dev/null`** (niet-interactief),
|
|
`ff-run-fvm.sh` heeft **stdin op `/dev/null`** (niet-interactief),
|
|
|
- dus `r`/`R` is dan niet te versturen; voor dat scenario is een
|
|
|
|
|
- losse `flutter run` met stdin aan een `mkfifo`-named-pipe gekoppeld
|
|
|
|
|
- nodig (niet via de standaardwrapper). Flutter DevTools (de
|
|
|
|
|
- `devtools`-URL uit dezelfde run-log) is zelf ook een
|
|
|
|
|
- Flutter-Web-canvas-app zonder toegankelijke DOM — geen bruikbare
|
|
|
|
|
- omweg om alsnog bij de volledige historische foutenlijst te komen.
|
|
|
|
|
-
|
|
|
|
|
-Daarna automatisch:
|
|
|
|
|
|
|
+ dus `r`/`R` is dan niet te versturen. **Kale `mkfifo` alléén werkt
|
|
|
|
|
+ niet** (Flutter's keyboard-handler test op een echte TTY vóórdat hij
|
|
|
|
|
+ raw keypresses verwerkt — een FIFO is er geen, dus de `R` komt nooit
|
|
|
|
|
+ aan, ook al accepteert `flutter run` de pipe zonder foutmelding).
|
|
|
|
|
+ **Bevestigd werkend recept (2026-08-09): `setsid` op zowel de
|
|
|
|
|
+ FIFO-writer als de `flutter run`-aanroep zelf**, elk in een eigen
|
|
|
|
|
+ `run_in_background`-Bash-call:
|
|
|
|
|
+ ```
|
|
|
|
|
+ mkfifo /pad/naar/fifo
|
|
|
|
|
+ setsid bash -c "exec 9>'/pad/naar/fifo'; sleep 3600" < /dev/null > /dev/null 2>&1 &
|
|
|
|
|
+ disown
|
|
|
|
|
+ # aparte tool-call:
|
|
|
|
|
+ setsid script -qc "fvm flutter run -d <device>" /pad/naar/logfile < /pad/naar/fifo > /dev/null 2>&1 &
|
|
|
|
|
+ disown
|
|
|
|
|
+ # later, weer een eigen call, om te restarten:
|
|
|
|
|
+ printf 'R' > /pad/naar/fifo
|
|
|
|
|
+ ```
|
|
|
|
|
+ `setsid` geeft beide achtergrondprocessen een eigen sessie los van de
|
|
|
|
|
+ Bash-call die ze startte, dus ze overleven gewoon over meerdere losse
|
|
|
|
|
+ tool-calls heen. Flutter DevTools (de `devtools`-URL uit dezelfde
|
|
|
|
|
+ run-log) is zelf ook een Flutter-Web-canvas-app zonder toegankelijke
|
|
|
|
|
+ DOM — geen bruikbare omweg om alsnog bij de volledige historische
|
|
|
|
|
+ foutenlijst te komen. Zie `TASKS.md` P1-13 voor het bekende
|
|
|
|
|
+ resterende knelpunt (race tussen `R` sturen en de daaropvolgende
|
|
|
|
|
+ deep-link-navigatie bij een tool-call-round-trip ertussen).
|
|
|
|
|
+
|
|
|
|
|
+Daarna automatisch (of gebruik `ff-commit.sh`, zie hieronder):
|
|
|
1. `git status --short`, dan `git add` — **niet blind `-A`**. Alleen
|
|
1. `git status --short`, dan `git add` — **niet blind `-A`**. Alleen
|
|
|
echte FlutterFlow/app-wijzigingen (`lib/`, `android/`, `ios/`,
|
|
echte FlutterFlow/app-wijzigingen (`lib/`, `android/`, `ios/`,
|
|
|
`pubspec*`, `.gitignore`). `.claude/` blijft uitgesloten
|
|
`pubspec*`, `.gitignore`). `.claude/` blijft uitgesloten
|
|
@@ -209,6 +246,18 @@ export, vóór staging, deze regel weer toe als hij ontbreekt:
|
|
|
(`CLAUDE.md` zelf overleeft een export altijd — check voor de
|
|
(`CLAUDE.md` zelf overleeft een export altijd — check voor de
|
|
|
zekerheid toch even.)
|
|
zekerheid toch even.)
|
|
|
|
|
|
|
|
|
|
+**`/home/bob/Projects/ff-commit.sh` (2026-08-09) automatiseert bovenstaande
|
|
|
|
|
+3 stappen + de .gitignore-valkuil-check in één keer:**
|
|
|
|
|
+```
|
|
|
|
|
+/home/bob/Projects/ff-commit.sh "commit message" # app-code modus (lib/android/ios/pubspec*/.gitignore)
|
|
|
|
|
+/home/bob/Projects/ff-commit.sh --docs "commit message" # alleen CLAUDE.md/TASKS.md
|
|
|
|
|
+```
|
|
|
|
|
+Herstelt automatisch de `.claude/`-gitignore-regel, staget alleen wat
|
|
|
|
|
+echt gewijzigd is binnen de relevante paden, toont wat wél/niet
|
|
|
|
|
+meegaat, en vraagt bevestiging vóór commit+push. Optioneel
|
|
|
|
|
+`--dir <pad>` voor een ander projectpad dan de default
|
|
|
|
|
+(`ff-app/uitgaanskrant-1qhvtd`).
|
|
|
|
|
+
|
|
|
## Eerst research, dan bouwen
|
|
## Eerst research, dan bouwen
|
|
|
|
|
|
|
|
Vóór een niet-triviale taak (bugfix, nieuw patroon, integratie): kort
|
|
Vóór een niet-triviale taak (bugfix, nieuw patroon, integratie): kort
|