Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -139,7 +139,7 @@ Icon-Only-Modus, responsive Verhalten).
> Frontend Phase B/C; Release v1.0.10). **Scope-Entscheid: nur Projekte** (Orgs haben bereits
> Member-Management → eigener Folge-Zyklus). Rollen `VIEWER/MEMBER/ADMIN` (bestehender
> Enum, keine Migration); read-only server- **und** clientseitig durchgesetzt.
> Spec: `2026-07-11-project-permissions-design.md` · Pläne:
> Spec: `specs/2026-07-11-project-permissions-design.md` · Pläne:
> `../plans/2026-07-11-project-permissions-phase-a-backend.md`,
> `../plans/2026-07-11-project-permissions-phase-bc-frontend.md`. Offen: Wolfgangs
> manuelle Browser-Verifikation der drei Rollen-Flows.
Expand Down Expand Up @@ -223,7 +223,7 @@ deferren bis Patch verfügbar. Ops/Security-Zyklus.
> **Folge-Vorhaben #15** (Full-Rollout aller Komponenten, mehrere Sessions) ist
> **KOMPLETT** — alle Sessions S0–S18 gemergt (zuletzt S17 PR #79 + S18 PR #80,
> main `683a891`); Allowlist `[]`, Scanner 0, en/de-Parität grün → Frontend-UI
> 100% lokalisiert. Master-Spec `2026-07-13-i18n-full-rollout-design.md`
> 100% lokalisiert. Master-Spec `specs/2026-07-13-i18n-full-rollout-design.md`
> (lebende Coverage-Matrix, alle Zeilen ✅). **#13 + #15 zusammen ausgeliefert in
> Release v1.0.13** (2026-07-18); Wolfgangs manueller DE/EN-Browser-Check
> S9–S18 noch offen.
Expand All @@ -233,7 +233,7 @@ deferren bis Patch verfügbar. Ops/Security-Zyklus.
> Kern-Settings inkl. Sprachumschalter. Backend: Migration V30 (nullable
> `users.language`), `PATCH /api/v1/me/language` (en/de-Validierung → 400 generisch).
> SDD subagent-driven, finaler Whole-Branch-Review = merge-ready (keine Critical/
> Important). Spec: `2026-07-12-i18n-foundation-design.md` · Plan:
> Important). Spec: `specs/2026-07-12-i18n-foundation-design.md` · Plan:
> `../plans/2026-07-12-i18n-foundation.md`. Merge + Release erledigt (v1.0.13).
> **Offen:** Wolfgangs manuelle Browser-Verifikation. **Folge-Zyklen:** restliche Seiten,
> `MessageSource`, voller Intl-Zeit-Rollout (Feeds/Activity), weitere Sprachen.
Expand Down Expand Up @@ -268,7 +268,7 @@ umgehen können, statt auf feste Strings zu prüfen).
> Phase B: PR #56. Beide subagent-driven (SDD) + Whole-Branch-Reviews; §5-Autorisierungs-/
> Vererbungs-Matrix end-to-end gegen das Backend verifiziert (38/38). Nachfolge-Zyklus zu
> #9 (das bewusst „nur Projekte" scoped hatte). Spec:
> `2026-07-12-organizations-umbrella-design.md` (+ `-phase-b-frontend.md`) · Pläne:
> `specs/2026-07-12-organizations-umbrella-design.md` (+ `-phase-b-frontend.md`) · Pläne:
> `../plans/2026-07-12-organizations-umbrella-phase-a-backend.md`,
> `../plans/2026-07-12-organizations-umbrella-phase-b-frontend.md`.
> **Hinweis:** nur UI-Visuelles (Banner/disabled-selects/inline-Fehler) blieb Wolfgangs
Expand All @@ -293,7 +293,7 @@ Datenisolation & `switch-org`. Details siehe Spec.

## H1 — nginx `index.html` no-cache Härtung (Ops, klein)
> ✅ **AUSGELIEFERT** (PR #51, 2026-07-10; Release v1.0.10). Spec:
> `2026-07-10-h1-nginx-index-nocache-design.md` ·
> `specs/2026-07-10-h1-nginx-index-nocache-design.md` ·
> Plan: `../plans/2026-07-10-h1-nginx-index-nocache.md`

Aus dem Debugging vom 2026-07-07 (wkozian sah nach dem v1.0.07-Redeploy keine
Expand All @@ -307,7 +307,7 @@ Frontend-Image.

## H2 — Notification-Prefs PUT: unbekannter Typ → 400 leakt Enum-Namen (klein)
> ✅ **AUSGELIEFERT** (PR #50, 2026-07-10; Release v1.0.10). Spec:
> `2026-07-10-h2-notification-prefs-enum-leak-design.md` ·
> `specs/2026-07-10-h2-notification-prefs-enum-leak-design.md` ·
> Plan: `../plans/2026-07-10-h2-notification-prefs-enum-leak.md`

Aus dem Final-Review von #3 (v1.0.09): `NotificationPreferenceController.update`
Expand All @@ -321,7 +321,7 @@ Trusted UI schickt heute nur gültige Typen → niedrige Prio.

## H3 — `changePassword`: `newPassword` erlaubt reine Leerzeichen (klein)
> ✅ **AUSGELIEFERT** (PR #50, 2026-07-10; Release v1.0.10). Spec:
> `2026-07-10-h3-blank-password-validation-design.md` ·
> `specs/2026-07-10-h3-blank-password-validation-design.md` ·
> Plan: `../plans/2026-07-10-h3-blank-password-validation.md`.
> Scope-Entscheid: fixt **auch** `RegisterRequest.password` (gleiche Lücke).

Expand All @@ -335,7 +335,7 @@ akzeptiert. Frontend erzwingt zusätzlich die Länge, daher niedriges Risiko. Fi
> `ProjectService.changeMemberRole` weist jetzt `actorId == targetUserId` mit 403
> ab (nach `requireAdmin`, vor Owner-Guard) + Integrationstest; `MembersPage`
> deaktiviert das eigene Rollen-`<select>`. Spec:
> `2026-07-11-project-permissions-fixes-design.md` · Plan:
> `specs/2026-07-11-project-permissions-fixes-design.md` · Plan:
> `plans/2026-07-11-b1-self-role-change.md`.

Ein Nutzer kann seine **eigene** Rolle ändern (Selbst-Rechteausweitung möglich).
Expand All @@ -360,7 +360,7 @@ serverseitig unterbinden) **und** UI (eigene Rolle nicht editierbar anzeigen).
> `VIEWER→PATCH issue → 403` (heute ungetestet); (b) optionaler Polish: Admin-only
> Config-Seiten (Workflow/Automation/Dashboard/API-Keys/Webhooks/Integrations)
> clientseitig auf `isAdmin` gaten statt nur Server-403. Details:
> `2026-07-11-project-permissions-fixes-design.md`.
> `specs/2026-07-11-project-permissions-fixes-design.md`.

Trotz Read-only-Rolle können Nutzer Tickets ändern – die Read-only-Durchsetzung
wirkt nicht. Erwartet: Read-only-Nutzer haben ausschließlich Lesezugriff, jegliche
Expand All @@ -372,7 +372,7 @@ schreibenden Ticket-Endpunkten verifizieren/nachziehen (nicht nur UI ausblenden)
## B3 — Logout-Button verschwindet, wenn das Menü länger als der Bildschirm ist 🐞
> Gemeldet 2026-07-11. Status: ✅ **AUSGELIEFERT** (PR #54, Release v1.0.11).
> `<nav>` intern scrollbar (`min-h-0 overflow-y-auto`), Footer/Logout bleibt
> gepinnt. Spec: `2026-07-11-sidebar-groups-and-logout-design.md` · Plan:
> gepinnt. Spec: `specs/2026-07-11-sidebar-groups-and-logout-design.md` · Plan:
> `plans/2026-07-11-sidebar-groups-and-logout.md`.

Wird die linke Sidebar vertikal länger als der Bildschirm (viele Einträge/kleiner
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -125,10 +125,10 @@ Expected: **leere Ausgabe** (keine offenen Alerts mehr) — jackson (#78) und gg

- [ ] **Step 5: Backlog-Status aktualisieren**

In `docs/superpowers/specs/2026-07-07-backlog-overview.md` die #12-Zeile auf erledigt setzen (Muster wie #3/#7/#8, inkl. „jackson #78 deferred") und committen:
In `docs/superpowers/backlog-overview.md` die #12-Zeile auf erledigt setzen (Muster wie #3/#7/#8, inkl. „jackson #78 deferred") und committen:

```bash
git add docs/superpowers/specs/2026-07-07-backlog-overview.md
git add docs/superpowers/backlog-overview.md
git commit -m "docs(backlog): mark #12 done (Dependabot alerts cleared; jackson #78 deferred)"
```

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -1188,7 +1188,7 @@ git commit -m "feat(users): user search endpoint for member add dialog (#9)"
## Task 7: Full backend regression + backlog note

**Files:**
- Modify: `docs/superpowers/specs/2026-07-07-backlog-overview.md` (Status #9)
- Modify: `docs/superpowers/backlog-overview.md` (Status #9)

- [ ] **Step 1: Run the whole backend test suite**

Expand All @@ -1197,13 +1197,13 @@ Expected: BUILD SUCCESSFUL. If anything fails, fix before proceeding — do not

- [ ] **Step 2: Update the backlog status line for #9**

In `docs/superpowers/specs/2026-07-07-backlog-overview.md`, change the #9 table row status from `Backlog` to note Phase A backend done, e.g.:
In `docs/superpowers/backlog-overview.md`, change the #9 table row status from `Backlog` to note Phase A backend done, e.g.:
`| 9 | User-Rechte-Verwaltung (Projekt-/Org-Freischaltung + Rollen) | Full-Stack | Phase A (Backend) fertig — B/C (Frontend) offen |`

- [ ] **Step 3: Commit**

```bash
git add docs/superpowers/specs/2026-07-07-backlog-overview.md
git add docs/superpowers/backlog-overview.md
git commit -m "docs(backlog): #9 Phase A backend complete"
```

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -498,12 +498,12 @@ git commit -m "ci(i18n): gate frontend build on i18n coverage + key parity"
Fix the stale #13 status, register the two follow-up backlog items (#15 rollout, #16 backend MessageSource), and append a reusable per-session migration checklist to the master spec so every future session follows the locked pattern.

**Files:**
- Modify: `docs/superpowers/specs/2026-07-07-backlog-overview.md`
- Modify: `docs/superpowers/backlog-overview.md`
- Modify: `docs/superpowers/specs/2026-07-13-i18n-full-rollout-design.md` (append appendix)

- [ ] **Step 1: Fix the #13 table row**

In `docs/superpowers/specs/2026-07-07-backlog-overview.md`, replace:
In `docs/superpowers/backlog-overview.md`, replace:

```
| 13 | Internationalisierung (UI in mehreren Sprachen) | Full-Stack/UI | 🔀 **PR #57 offen** (Fundament + Pilot-Slice, nicht gemergt) |
Expand Down Expand Up @@ -568,13 +568,13 @@ Parität grün.

- [ ] **Step 4: Verify the docs render and cross-reference correctly**

Run: `cd frontend && node -e "const fs=require('node:fs'); const b=fs.readFileSync('../docs/superpowers/specs/2026-07-07-backlog-overview.md','utf8'); if(b.includes('PR #57 offen')) throw new Error('stale #13 text remains'); if(!b.includes('| 15 |')||!b.includes('| 16 |')) throw new Error('#15/#16 rows missing'); console.log('backlog updated')"`
Run: `cd frontend && node -e "const fs=require('node:fs'); const b=fs.readFileSync('../docs/superpowers/backlog-overview.md','utf8'); if(b.includes('PR #57 offen')) throw new Error('stale #13 text remains'); if(!b.includes('| 15 |')||!b.includes('| 16 |')) throw new Error('#15/#16 rows missing'); console.log('backlog updated')"`
Expected: `backlog updated`.

- [ ] **Step 5: Commit**

```bash
git add docs/superpowers/specs/2026-07-07-backlog-overview.md docs/superpowers/specs/2026-07-13-i18n-full-rollout-design.md
git add docs/superpowers/backlog-overview.md docs/superpowers/specs/2026-07-13-i18n-full-rollout-design.md
git commit -m "docs(i18n): correct #13 status, register #15/#16, add per-session migration checklist"
```

Expand Down
6 changes: 3 additions & 3 deletions docs/superpowers/plans/2026-10-19-m3-phase1-spring-boot-4.md
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,7 @@
| `backend/src/test/kotlin/com/taskowolf/core/FlywayMigrationsAppliedIntegrationTest.kt` | Create | Guard gegen die Flyway-Starter-Falle |
| `backend/src/test/kotlin/com/taskowolf/core/JsonWireFormatGuardIntegrationTest.kt` | Create | Guard: Jackson 2 aktiv + Draht-Format |
| `.trivyignore` | Modify | zwei Spring-Einträge entfernen |
| `docs/superpowers/specs/2026-07-07-backlog-overview.md` | Modify | M3-Status |
| `docs/superpowers/backlog-overview.md` | Modify | M3-Status |
| `mkdocs/developer-guide/ai-guide.md` | Modify | Boot-4-Patterns, Flyway-Stand V30 |

---
Expand Down Expand Up @@ -575,7 +575,7 @@ Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>"
### Task 6: Doku

**Files:**
- Modify: `docs/superpowers/specs/2026-07-07-backlog-overview.md`
- Modify: `docs/superpowers/backlog-overview.md`
- Modify: `mkdocs/developer-guide/ai-guide.md`

**Interfaces:**
Expand Down Expand Up @@ -613,7 +613,7 @@ In `mkdocs/developer-guide/ai-guide.md`:
- [ ] **Step 3: Commit**

```bash
git add docs/superpowers/specs/2026-07-07-backlog-overview.md mkdocs/developer-guide/ai-guide.md
git add docs/superpowers/backlog-overview.md mkdocs/developer-guide/ai-guide.md
git commit -m "docs(m3): Phase 1 status and Spring Boot 4 conventions in ai-guide

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>"
Expand Down
4 changes: 2 additions & 2 deletions docs/superpowers/plans/2026-10-19-m3-phase2-jackson3.md
Original file line number Diff line number Diff line change
Expand Up @@ -57,7 +57,7 @@
| `backend/src/main/kotlin/com/taskowolf/integrations/infrastructure/StringListConverter.kt` | Modify | ein gemeinsamer `JsonMapper` |
| `backend/src/test/kotlin/**` (~30 Dateien) | Modify | Imports `tools.jackson`, `asString()` |
| `docs/superpowers/specs/2026-10-19-m3-spring-boot-4-migration-design.md` | Modify | springdoc-Abweichung |
| `docs/superpowers/specs/2026-07-07-backlog-overview.md` | Modify | M3-Status |
| `docs/superpowers/backlog-overview.md` | Modify | M3-Status |
| `mkdocs/developer-guide/ai-guide.md` | Modify | Jackson-3-Konventionen |
| `frontend/package.json`, `frontend/package-lock.json` | Modify (Task 7) | Version 1.0.21 |

Expand Down Expand Up @@ -643,7 +643,7 @@ Danach abbauen: `docker compose -p m3p2smoke ... down -v`.

**Files:**
- Modify: `docs/superpowers/specs/2026-10-19-m3-spring-boot-4-migration-design.md`
- Modify: `docs/superpowers/specs/2026-07-07-backlog-overview.md`
- Modify: `docs/superpowers/backlog-overview.md`
- Modify: `mkdocs/developer-guide/ai-guide.md`

- [ ] **Step 1: Spec-Abweichung dokumentieren**
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# #9 — Projekt-Rechte-Verwaltung (Member-Management + Rollen-Durchsetzung)

> Spec, 2026-07-11. Backlog-Item #9 aus `2026-07-07-backlog-overview.md`.
> Spec, 2026-07-11. Backlog-Item #9 aus `backlog-overview.md`.
> **Scope-Entscheid:** nur **Projekte** (Orgs haben bereits Member-Management
> `OWNER/ADMIN/MEMBER` + UI → eigener Folge-Zyklus).

Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
# Spec: Projekt-Permissions-Fixes — Self-Role-Change (B1) + Read-only-Enforcement (B2)

> Design 2026-07-11, **korrigiert 2026-07-11** nach Reproduktion. Backlog:
> `2026-07-07-backlog-overview.md` B1 + B2. Baut auf #9 (Projekt-Permissions,
> `backlog-overview.md` B1 + B2. Baut auf #9 (Projekt-Permissions,
> `2026-07-11-project-permissions-design.md`, Release v1.0.10) auf.
>
> **Aktueller Umsetzungs-Scope dieser Spec: nur B1** (kleiner, bestätigter
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# Spec: Sidebar-Gruppen einzeln zusammenklappbar (#10) + Logout immer erreichbar (B3)

> Design 2026-07-11. Backlog: `2026-07-07-backlog-overview.md` #10 + B3.
> Design 2026-07-11. Backlog: `backlog-overview.md` #10 + B3.
> Frontend-only. Domäne: linke Sidebar (`frontend/src/layouts/AppLayout.tsx`).

## Kontext & Problem
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# #13 — Internationalisierung: Fundament + Pilot-Slice (Design)

> Backlog-Item **#13** aus `2026-07-07-backlog-overview.md` (Typ: Full-Stack/UI).
> Backlog-Item **#13** aus `backlog-overview.md` (Typ: Full-Stack/UI).
> Dieser Zyklus liefert das **i18n-Fundament** plus einen vollständig migrierten
> **Pilot-Slice** als kopierbares Muster. Die flächendeckende String-Extraktion
> über alle ~95 `.tsx`-Dateien erfolgt in eigenen Folge-Zyklen pro Feature.
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
# Organisationen als Oberkategorie — Projekt-/Member-Zuordnung & Rechte-Vererbung

> Design-Spec, 2026-07-12. Backlog-Eintrag **#14** (siehe
> `2026-07-07-backlog-overview.md`). Nachfolge-Zyklus zu #9 (Projekt-Permissions),
> `backlog-overview.md`). Nachfolge-Zyklus zu #9 (Projekt-Permissions),
> der bewusst „nur Projekte" scoped hatte, weil Orgs einen eigenen Zyklus bekommen.

## 1. Ziel
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -155,7 +155,7 @@ Session 0 liefert **nur Werkzeuge + Doku**, noch keine Feature-Extraktion:
CI bleibt grün.
2. **Diese Master-Spec** (`2026-07-13-i18n-full-rollout-design.md`) mit der lebenden
Coverage-Matrix.
3. **Backlog-Korrekturen** in `docs/superpowers/specs/2026-07-07-backlog-overview.md`:
3. **Backlog-Korrekturen** in `docs/superpowers/backlog-overview.md`:
- **#13** von „🔀 PR #57 offen, nicht gemergt" auf „✅ Fundament+Pilot **gemergt**
(`0b9b817`, PR #57; noch nicht released)" korrigieren.
- Neuer Sammel-Eintrag **#15 — i18n Full-Rollout** (dieses Vorhaben), verlinkt auf
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# M3 — Spring Boot 4 Migration (Design)

> Stand 2026-10-19. Backlog-Eintrag: `2026-07-07-backlog-overview.md` → M3.
> Stand 2026-10-19. Backlog-Eintrag: `backlog-overview.md` → M3.
> Zwei Phasen, je eine Session mit eigenem Plan. **Ein gemeinsames Release (v1.0.21) nach Phase 2.**

## Ziel
Expand Down
Loading