Active Work
Branches and PRs currently in flight across RENEWA repos. Sweep at 2026-06-12 — pulled from gh pr list on bookish-broccoli, crispy-octo-barnacle, craftcms, config. Previous sweep: 2026-05-07 (145 PRs merged in between — see “Recently merged” below).
RENEWA One (bookish-broccoli)
Ready for review (41 open)
Current (opened 2026-05-08 or later):
| PR | Title | Area |
|---|---|---|
| PR#2011 | Decision pointer for deterministic lcov reporter (I#1992) | docs / decision pointer |
| PR#2010 | Building energy data: validation & provenance model, HubSpot intake, table consolidation (I#1962) | schema / integrations |
| PR#2008 | Pin all GitHub Actions to commit SHAs (I#2007) | CI security |
| PR#1997 | Skip frontend CI checks on changelog-only changes (I#1996) | CI |
| PR#1990 | Explicit onDelete policies on remaining FKs (I#1973) | schema integrity |
| PR#1987 | Decision pointer: secret-migration workflow cleanup (I#1967) | docs / decision pointer |
| PR#1965 | Versioned encryption key ring + re-encryption script (I#1950) | security |
| PR#1960 | Sentry cron monitors for BullMQ schedulers (I#1951) | observability |
| PR#1920 | Sync HubSpot payment terms into variable workflow tranches (max 3) | integrations / commission flow |
| PR#1915 | Fix unparseable config-sync.yml — likely obsolete: config-sync decommissioned by merged PR#1968 | CI (cleanup candidate) |
| PR#1904 | Fix deterministic JWT collision causing sessions 500s (renewa-gmbh/fluffy-doodle#111) | auth |
| PR#1890 | Funding applications in building dashboard & workflow engine (I#1884) | features / dashboard |
| PR#1875 | Design spec: consolidate receivable + external invoices, line-item funding allocation | billing / spec |
| PR#1862, PR#1856, PR#1830, PR#1765 | Weekly security audit fixes (06-08, 06-01, 05-25, 05-18) — four weeks unmerged | security (review backlog) |
| PR#1810 | hotfix(templates): catalog filter + BAFA airtightness + atlas gate idempotency | templates / hotfix |
| PR#1805 | Tag Heizlast + EA templates with Antragstellung phase | config data |
| PR#1739 | docs(hubspot): plan to move HubSpot URLs onto renewa.de behind Zero Trust | docs / infra |
| PR#1723 | Workflow Engine v4 monolith (Kanban, Mentions, Blocker, Terminmodul) — kept as reference; being re-landed via the v4 PR-series (I#1933) | workflow v4 |
| PR#1722 | Archive/restore templates + files gold standard — foundation re-landed via merged PR#1752; remainder pending | documents (partially superseded) |
| PR#1848/PR#1847, PR#1818, PR#1816, PR#1716 | @types/big.js v7 (duplicate pair), prettier v3, eslint v10, archiver v8 | deps (Renovate) |
Long-stale (opened pre-2026-05, cleanup candidates):
| PR | Title | Area |
|---|---|---|
| PR#1629 | Billing write-off backend (RNW-426) | billing (stalled since 04-29) |
| PR#1626 | Billing inline sql → Drizzle helpers (RNW-400) | billing refactor (stalled) |
| PR#1623 | Billing email templates seed → migration (RNW-394) | billing / i18n (stalled) |
| PR#1425 | Env validation + key rotation + Entra rotation workflow | infra / secrets (stalled since 04-13) |
| PR#1410 | HubSpot pipeline stage ↔ phase bidirectional sync | integrations (stalled since 03-31) |
| PR#1405 | devContainer sandbox for Claude Code | infra |
| PR#1333, PR#1335, PR#1337, PR#1339, PR#1340, PR#1343, PR#1345 | fluffy-doodle portal-fix batch from 2026-03-24 | portal (stalled ~11 weeks) |
| PR#1050 | Building dashboard + customer portal | features (stalled since 02-24; dashboard since delivered via the tab series) |
Drafts (22 open)
| PR | Title | Scope |
|---|---|---|
| PR#2040 | Collection-derived file access + link-based reassignment (I#2022) | files canonical follow-up |
| PR#2039 | Upload target params + template label slots (I#2024) | files canonical follow-up |
| PR#2038 | Chain merge-pdfs output into the canonical file model (I#2025) | files canonical follow-up |
| PR#2036 | Adopt document_obtaining_request_files into the canonical model (I#2026) | files canonical follow-up |
| PR#2016 | Workflow v4 — PR-3: Wochenplan + activity-log unification (I#1935) | workflow v4 series |
| PR#2006 | Workflow v4 — PR-2: Admin Kanban surfaces (I#1934) | workflow v4 series |
| PR#1989 | Wrap collection-service multi-table writes in transactions (I#1971) | data integrity |
| PR#1874 | Task-level snooze — Phase 2a | workflow |
| PR#1859 | ”Gebäudedetails” + “Fördermittelanträge” tabs on building dashboard | dashboard |
| PR#1852 | 🧪 TESTING ENV (do not merge) — Workflow Engine V3 preview | testing environment |
| PR#1849 | Export/import workflow-template snapshots as JSON | config tooling |
| PR#1833 | V4 feature-parity port — design + ranked scope | workflow v4 planning |
| PR#1824 | Kanban team-assignment: persist via contactId | workflow fix |
| PR#1806 | Task↔LineItem value distribution all-in-one (PRs 2–3 landed separately as PR#1811/PR#1812) | workflow (partially superseded) |
| PR#1804 | Implementation timeline + event backbone | workflow |
| PR#1800 | Research note: files fulfillment-chain future work | docs |
| PR#1799 | pr-preview: automate Cloudflare custom-domain attach/detach for Zero Trust | infra |
| PR#1786 | Building-context dimensions in document matrix | documents |
| PR#1698 | Self-host Redis for non-prod (~$120/mo saving) | infra / cost |
| PR#1630 | BillingWriteOffDialog FE (RNW-426) | billing (stalled) |
| PR#1614 | docs(vo): VO shape γ from Email pilot | architecture docs (stalled) |
| PR#1423 | Dashboard V3 — superseded: delivered as merged 5-PR tab series, draft still open | frontend (cleanup candidate) |
Recently merged — 2026-05-08 → 2026-06-12, by week
145 PRs merged in the window (17 Renovate dep updates, collapsed to counts below).
Week 2026-06-08 → 06-12 (58 merged, 0 deps) — hardening surge, the heaviest week of the window:
- Workflow v4 — PR-1: data layer foundation (PR#1942, I#1933) — the v4 multi-PR series begins; PR-2/PR-3 drafts opened same week
- Files collection-canonical foundation (PR#1752, restart of PR#1722) + document obtaining writes the canonical file chain (PR#2005, I#1802); four follow-up drafts opened (I#2022–I#2026)
- Persistence topology (I#2013): PoEAA layering spec,
domain/modules as sole DB owner (PR#2014) + ratcheted enforcement gate and first container domain slice (PR#2020) — Strangler-Fig migration now underway - HubSpot hardening batch from the integration audit (I#1893–I#1902): durable BullMQ webhook processing + claim-based dedup (PR#1907), self-healing token lifecycle (PR#1911), orphan detection without per-row GETs (PR#1912), portal security / single-use OAuth state (PR#1921), webhook event ordering + race-free upserts (PR#1922), associations data integrity (PR#1926), timeouts / Retry-After / log retention (PR#1927), sanitization at the mapping choke point (PR#1928), unified integration log (PR#1964), webhook payload redaction (PR#1982), sync watermark fix (PR#1910)
- Site protocols: building-dashboard tab (PR#1969) + PDF export (PR#1994); HubSpot mirror columns on buildings (PR#1983)
- Rollback tooling: MPG rollback via CI image re-promotion + guided DB break-glass (PR#1918); MPG snapshot before every data-mutating deploy (PR#1877)
- N-1 migration compatibility gate in CI (PR#1938) — expand→migrate→contract enforced
- Backend coverage shards fixed: 0/3 merge + shard-aware diff-coverage gate (PR#2000), deterministic lcov reporter (PR#1993)
- Deliberate passes documented (PR#1956, I#1955) — feature flags, SBOM/signing, DCO, full OpenAPI, Prometheus consciously declined with revisit triggers
- Mock people defer to Entra (PR#1879) + browser-session login via hardened e2e bots (PR#1924)
- Human-FK retargets to
contacts.id:workflow_packages.assigneeId(PR#1923),workflow_transition_log.actorId(PR#1931) - GitHub Issues become the source of truth for feature planning (PR#1888); Storybook preview providers + story tests (PR#1966) and build gate + diff coverage (PR#1958); “Umsätze” dashboard tab, PR 5/5 (PR#1860); contractor_contact sync + participants panel (PR#1891); portal resubmit-loop fix (PR#1882); Linear deploy-status updater fix (PR#2037); plus CI flake fixes, decision records, CLAUDE.md compressions
Week 2026-06-01 → 06-07 (6 merged, 0 deps) — quiet week, dashboard tab series:
- Project dashboard tab series: real project overview PR 2/5 (PR#1776), “Baubeteiligte” association aggregation + CSV/PDF export PR 3/5 (PR#1777), “Bauzeitenplan” timeline + Gantt PR 4/5 (PR#1778), external engagements + detail panel (PR#1861)
- Workflow package handover redesign Phase 1 (PR#1855); HubSpot association webhooks persist directly (PR#1853)
Week 2026-05-25 → 05-31 (7 merged, 1 dep):
- Billing tool refinements P5 (PR#1751) — final rebase of the long-running 1424 billing line, merged at last
- HubSpot User sync: contacts mirror + persistent owner mapping + UI owner display (PR#1767); property mappings promoted mock → config migration (PR#1790); test-portal sync fixes (PR#1823)
- Template editor surfaces orphan keys + HubSpot-retired products (PR#1851); per-worktree Storybook port (PR#1854)
Week 2026-05-18 → 05-24 (33 merged, 8 deps incl. React 19 + TypeScript 6):
- Quote Change rebuild P3 (PR#1730, follow-up PR#1736) — replaces the closed V3 monolith feature
- Task↔LineItem value distribution: template editor PR 2 (PR#1811) + Auswertung PR 3 (PR#1812)
- Schema cleanup: 10 vestigial
workflow_packagescolumns dropped (PR#1742); priority-matrix rename not_required → not_relevant (PR#1822) - Document templates baselined from staging as one-shot migration (PR#1789); in-file
renewa:atlas:skip-ondirective (PR#1797); atlas-migrate hardening (PR#1793, PR#1795) - Auto-logout fix (stop redirecting on JWT expiry, PR#1788); SSO returnUrl redirect merged after 7 weeks (PR#1403)
- HubSpot production role aliases + drop invoice_recipient (PR#1783); quote-template React modules (PR#1718)
Week 2026-05-11 → 05-17 (36 merged, 6 deps) — the restructuring week:
- 2026-05-14 mass-close: Workflow Engine V3 monolith (PR#1554), KOP integration (PR#1675), Quote Change (PR#1676), audience enum (PR#1632) and the schema spec (PR#1429) all closed unmerged — superseded by the staged P1–P5 rebuild series
- Contractor engagement workflow rebuild P2 (PR#1690) — engagement_type discriminator, commission tranches; the commission-flow foundation
- Long-running PRs cleared in one sweep on 05-14: config data export + nightly sync (PR#1201), table-consolidation spec (PR#1426), GoBD entity snapshot (PR#1631), analytics SQL (PR#1622), info tooltips (PR#1280), backlog filter (PR#1444), download auth (PR#1404), Infisical staging spec (PR#1615)
- New
/auditchecks: naming scope drift + HubSpot association infrastructure (PR#1688) - Staging aligned with production: 3-machine fleet + canary deploys (PR#1726)
- Grafana observability train starts: dashboards-as-code scaffold (PR#1744), cloud token via Infisical (PR#1749), Loki datasource (PR#1750)
- Secrets cleanup: redundant pushes removed from promote-image (PR#1741) and log-shipper (PR#1740); Infisical/Fly parity check (PR#1687); HubSpot webhook URL limit hardening (PR#1721); Teams changelog delivery fix (PR#1746)
Week 2026-05-08 → 05-10 (5 merged, 2 deps):
- HubSpot association role layer P1 (PR#1689) — foundation for the whole KOP / Quote-Change rebuild;
RENEWA_ROLE_BINDINGS, no new FK columns for HubSpot-tracked relationships - Deal=Project + no-vendor-lock rule made discoverable (PR#1685); sets-from-completed-sets fix (PR#1627)
Notable patterns from this sweep
- Monolith → staged series is now the house style. The V3 monolith line (PR#1554 + satellites) was closed unmerged on 2026-05-14 and re-landed as reviewable stages P1→P5 (association layer, contractor engagement, quote change, billing refinements). Workflow v4 (PR#1723 monolith → ranked port plan PR#1833 → PR-1/2/3 series) and files collection-canonical (PR#1722 → PR#1752 + follow-up drafts) follow the same playbook.
- June is a hardening month. Week 06-08→06-12 alone: 58 merges dominated by the HubSpot audit batch (I#1893–I#1902), persistence-topology enforcement, N-1 migration gate, rollback tooling, coverage-shard fixes — quality/infra over features.
- Architecture rules keep accruing enforcement. Persistence topology (I#2013) ships with a ratcheted CI gate; N-1 migrations gated by script; GitHub Issues codified as planning source of truth (PR#1888); deliberate passes recorded with revisit triggers (I#1955).
- Review backlog building up. Four weekly security-audit PRs (PR#1765, PR#1830, PR#1856, PR#1862) and 14 pre-May ready PRs sit unmerged; several open PRs are factually superseded (PR#1423, PR#1722, PR#1915, PR#1806) — a close/cleanup pass would declutter the queue.
- Dashboard V3 shipped sideways. The original draft (PR#1423) never merged; the capability arrived as the 5-PR tab series (overview, Baubeteiligte, Bauzeitenplan, Umsätze, engagements) merged 2026-06-01→08.
- Observability is a new visible workstream. Grafana dashboards-as-code, Loki datasource, staging BI datasource (PR#1782), Sentry cron monitors for BullMQ (PR#1960, open) — within the “no Prometheus pipeline” deliberate pass.
Commission flow — multi-tranche / partner-portal subsystem
Status: foundation merged 2026-05-13 as the P2 contractor-engagement rebuild (PR#1690): engagement_type discriminator, commissionRate synced read-only from HubSpot, eager tracking tranche per internal_contractor package. Multi-tranche flow is advancing: PR#1920 (open) syncs HubSpot payment terms into variable workflow tranches (max 3).
Design: bookish-broccoli docs/superpowers/specs/2026-05-11-commission-flow-design.md
Follow-up issues: I#1709 (defaultCommissionRate mirrors), I#1710 (dealAmount sync), I#1711 (multi-tranche + contractor invoice ingestion + partner portal), I#1712 (payable commission).
Key decisions (memo §6): HubSpot is the source for ALL commission rates, R1 read-only; projects.dealAmount is the commission base; multi-tranche keyed to contractor invoices; partner portal generalizes the customer-portal architecture to multiple partner roles.
Open: workflow templates seeded in PR#1690 were placeholders; real templates configured by Peer with Flo and Julius (handover tracked in the PR thread). Template-editor tooling has since landed (PR#1851, PR#1811/PR#1812).
Landing Pages (crispy-octo-barnacle)
No merges since 2026-04-21 (sanierungskompass index.html, renewa-gmbh/crispy-octo-barnacle#7). One open PR: renewa-gmbh/crispy-octo-barnacle#8 “Update index.html”, sitting since 2026-04-29.
CraftCMS
Busy May: a Redis outage drove an emergency caching overhaul (Blitz → FileStorage renewa-gmbh/craftcms#26, Cloudflare edge-caching of anonymous HTML renewa-gmbh/craftcms#21/#22–#24, all merged 2026-05-11/12). An upgrade train is now open: Craft 4 (renewa-gmbh/craftcms#30, #32), Craft 5 (#33), PHP 8.5 (#34), plus a Fly.io staging environment (#31). See index.
CRM
Local docs-knowledge-base-reference branch pending push to Azure DevOps.
Config
renewa-gmbh/config#3 still open (since 2026-04-17) — adds Knowledge Base reference to CLAUDE.md. No commits to main since 2026-01.
Knowledge Base (renewa-knowledge-base)
No open PRs (direct-push-to-main workflow).
How this page is updated
- Manually: ask Claude to sweep open PRs and branches across repos
- Semi-automatic: Claude updates this page when finishing work in any project repo
- Periodic: weekly sweep refreshes the whole page