Skip to content

Plan explicit MemoryBudgets for wireframe app (1.7.1)#301

Draft
leynos wants to merge 1 commit intomainfrom
configure-memory-budgets-wireframe-q3nbpv
Draft

Plan explicit MemoryBudgets for wireframe app (1.7.1)#301
leynos wants to merge 1 commit intomainfrom
configure-memory-budgets-wireframe-q3nbpv

Conversation

@leynos
Copy link
Copy Markdown
Owner

@leynos leynos commented Apr 10, 2026

Summary

  • Adds a comprehensive ExecPlan to layout explicit MemoryBudgets for the wireframe app as part of roadmap item 1.7.1.

Changes

  • New file: docs/execplans/1-7-1-configure-explicit-memory-budgets-for-the-wireframe-app.md
    • Contains the full plan, including Purpose, Constraints, Tolerances, Risks, Agent team and ownership, Context, Plan of work (Stages A–F), Progress, Surprises & Discoveries, Decision Log, Outcomes & Retrospective, and a concrete Implementation checklist.

Rationale

  • Establish explicit budgeting aligned with Hotline protocol and streaming limits, preserve existing hexagonal boundary, and enable test-backed verification. The plan guides staged work from design through verification and documentation, with clear exit criteria at each stage.

Plan of work (high level)

  • Stage A: design the budget model and disconnect contract
  • Stage B: implement explicit runtime configuration
  • Stage C: add unit coverage with rstest
  • Stage D: add integration and behavioural coverage
  • Stage E: update documentation and roadmap state
  • Stage F: verification and quality gates

Implementation checklist (highlights)

  • Derive budget formulas from existing protocol constants (MAX_FRAME_DATA, MAX_PAYLOAD_SIZE, 1.3.2 streaming limit)
  • Introduce explicit MemoryBudgets in the wireframe app builder and an explicit read timeout
  • Keep fragmentation(None) unless Stage A approves a scope change
  • Add rstest-based unit tests and rstest-bdd coverage where helpful
  • Use pg_embedded_setup_unpriv for local PostgreSQL validation per repo docs
  • Update docs/design.md, docs/users-guide.md, and docs/roadmap.md as changes land

Validation / Testing

  • Stage F defines the verification and quality gates to run in sequence (lint, tests, docs checks, type checks, and markdown validation). The ExecPlan recommends running the gate sequence outlined in the plan and capturing logs for traceability.

Notes for reviewers

  • This PR introduces a planning/documentation artifact only. No functional API changes are included yet. Please provide feedback on the plan’s scope, risks, acceptance criteria, and any gaps in the proposed stages.

Related context

  • Aligns with roadmap item 1.7.1 and dependencies 1.3.2, 1.6.1; keeps the wireframe topology and existing framing logic intact while making budgeting explicit and test-backed.

◳ Generated by DevBoxer


ℹ️ Tag @devboxerhub to ask questions and address PR feedback

📎 Task: https://www.devboxer.com/task/70d99282-808c-4e11-a1d6-2cd5209dc42c

Summary by Sourcery

Documentation:

  • Add a detailed exec plan markdown document outlining stages, constraints, risks, verification steps, and documentation updates for introducing explicit MemoryBudgets and timeouts to the wireframe server.

…figuration

Add a comprehensive ExecPlan document for roadmap item 1.7.1 that outlines the purpose, constraints, tolerances, risks, ownership, context, plan of work, progress, decisions, and expected outcomes for configuring explicit MemoryBudgets and read timeouts in the wireframe app server. This document will guide the implementation, testing, and documentation work to ensure predictable disconnection of oversize and stalled fragmented inputs using explicit budgeting rather than derived defaults.

Co-authored-by: devboxerhub[bot] <devboxerhub[bot]@users.noreply.github.com>
@coderabbitai
Copy link
Copy Markdown
Contributor

coderabbitai Bot commented Apr 10, 2026

Important

Review skipped

Draft detected.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Organization UI

Review profile: ASSERTIVE

Plan: Pro

Run ID: a5e66a47-86fb-4d13-a0c5-21bf228ef998

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch configure-memory-budgets-wireframe-q3nbpv

Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link
Copy Markdown

@codescene-delta-analysis codescene-delta-analysis Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

No application code in the PR — skipped Code Health checks.

See analysis details in CodeScene

Quality Gate Profile: Pay Down Tech Debt
Install CodeScene MCP: safeguard and uplift AI-generated code. Catch issues early with our IDE extension and CLI tool.

@sourcery-ai
Copy link
Copy Markdown
Contributor

sourcery-ai Bot commented Apr 10, 2026

Reviewer's Guide

Adds a new ExecPlan markdown document that defines a detailed, staged implementation and verification plan for introducing explicit MemoryBudgets and read timeouts to the wireframe server, without changing any current runtime behaviour yet.

Sequence diagram for Stage F verification and quality gates

sequenceDiagram
  actor Developer
  participant Shell
  participant PgEmbedded as pg_embedded_setup_unpriv
  participant MakeFmt as make_fmt
  participant MakeCheckFmt as make_check_fmt
  participant MakeLint as make_lint
  participant MakeTest as make_test
  participant MakeMarkdownlint as make_markdownlint
  participant MakeNixie as make_nixie
  participant MakeTypecheck as make_typecheck

  Developer->>Shell: set -o pipefail
  Developer->>Shell: export PROJECT and BRANCH

  Developer->>Shell: run pg_embedded_setup_unpriv
  Shell->>PgEmbedded: start PostgreSQL
  PgEmbedded-->>Shell: log output to /tmp/pg-setup-PROJECT-BRANCH.log

  Developer->>Shell: run make fmt
  Shell->>MakeFmt: execute formatter
  MakeFmt-->>Shell: status and output to /tmp/fmt-PROJECT-BRANCH.log

  Developer->>Shell: run make check-fmt
  Shell->>MakeCheckFmt: check formatting
  MakeCheckFmt-->>Shell: status and output to /tmp/check-fmt-PROJECT-BRANCH.log

  Developer->>Shell: run make lint
  Shell->>MakeLint: execute lints
  MakeLint-->>Shell: status and output to /tmp/lint-PROJECT-BRANCH.log

  Developer->>Shell: run make test
  Shell->>MakeTest: run test suite
  MakeTest-->>Shell: status and output to /tmp/test-PROJECT-BRANCH.log

  Developer->>Shell: run make markdownlint
  Shell->>MakeMarkdownlint: lint Markdown
  MakeMarkdownlint-->>Shell: status and output to /tmp/markdownlint-PROJECT-BRANCH.log

  Developer->>Shell: run make nixie
  Shell->>MakeNixie: run docs and mermaid checks
  MakeNixie-->>Shell: status and output to /tmp/nixie-PROJECT-BRANCH.log

  Developer->>Shell: run make typecheck
  Shell->>MakeTypecheck: run type checks
  MakeTypecheck-->>Shell: status and output to /tmp/typecheck-PROJECT-BRANCH.log

  Shell-->>Developer: report first failing gate if any
  Developer->>Developer: fix issues and rerun affected gate before marking 1_7_1 complete
Loading

Flow diagram for staged ExecPlan A–F for MemoryBudgets feature

flowchart TD
  A["Stage A Design budget model and disconnect contract"] --> B["Stage B Implement explicit runtime configuration"]
  B --> C["Stage C Add unit coverage with rstest"]
  C --> D["Stage D Add integration and behavioural coverage"]
  D --> E["Stage E Update documentation and roadmap state"]
  E --> F["Stage F Run verification and quality gates"]

  subgraph roles["Agent ownership"]
    arch_agent["Architecture agent"]
    runtime_agent["Runtime implementation agent"]
    verification_agent["Verification agent"]
    docs_agent["Documentation agent"]
  end

  arch_agent --> A
  runtime_agent --> B
  verification_agent --> C
  verification_agent --> D
  verification_agent --> F
  docs_agent --> E

  A --> A_exit["Exit criteria A Design decisions recorded in docs/design.md"]
  B --> B_exit["Exit criteria B Budgets and timeout configured in builder"]
  C --> C_exit["Exit criteria C Unit tests lock down formulas and edge cases"]
  D --> D_exit["Exit criteria D Integration and behavioural tests cover happy and unhappy paths"]
  E --> E_exit["Exit criteria E Docs and roadmap updated to match behaviour"]
  F --> F_exit["Exit criteria F All gates pass and logs captured"]

  F_exit --> done["Roadmap item 1_7_1 marked done"]
Loading

File-Level Changes

Change Details Files
Introduce an ExecPlan document describing staged work to configure explicit MemoryBudgets and read timeouts for the wireframe app, including constraints, risks, testing strategy, and implementation checklist.
  • Create a roadmap-aligned ExecPlan for item 1.7.1 covering purpose, constraints, tolerances, risks, ownership, and current technical context.
  • Define staged plan (Stages A–F) for design, implementation, unit and integration testing, documentation updates, and verification gates.
  • Specify detailed budget-derivation rules from existing protocol constants and streaming limits, and the requirement to keep fragmentation(None) unless scope is explicitly widened.
  • Lay out testing and verification strategy using rstest, rstest-bdd, existing binary-under-test harness, and PostgreSQL setup via pg_embedded_setup_unpriv.
  • Add a concrete implementation checklist plus ongoing sections for progress, surprises, decision log, and retrospective to be updated as work proceeds.
docs/execplans/1-7-1-configure-explicit-memory-budgets-for-the-wireframe-app.md

Tips and commands

Interacting with Sourcery

  • Trigger a new review: Comment @sourcery-ai review on the pull request.
  • Continue discussions: Reply directly to Sourcery's review comments.
  • Generate a GitHub issue from a review comment: Ask Sourcery to create an
    issue from a review comment by replying to it. You can also reply to a
    review comment with @sourcery-ai issue to create an issue from it.
  • Generate a pull request title: Write @sourcery-ai anywhere in the pull
    request title to generate a title at any time. You can also comment
    @sourcery-ai title on the pull request to (re-)generate the title at any time.
  • Generate a pull request summary: Write @sourcery-ai summary anywhere in
    the pull request body to generate a PR summary at any time exactly where you
    want it. You can also comment @sourcery-ai summary on the pull request to
    (re-)generate the summary at any time.
  • Generate reviewer's guide: Comment @sourcery-ai guide on the pull
    request to (re-)generate the reviewer's guide at any time.
  • Resolve all Sourcery comments: Comment @sourcery-ai resolve on the
    pull request to resolve all Sourcery comments. Useful if you've already
    addressed all the comments and don't want to see them anymore.
  • Dismiss all Sourcery reviews: Comment @sourcery-ai dismiss on the pull
    request to dismiss all existing Sourcery reviews. Especially useful if you
    want to start fresh with a new review - don't forget to comment
    @sourcery-ai review to trigger a new review!

Customizing Your Experience

Access your dashboard to:

  • Enable or disable review features such as the Sourcery-generated pull request
    summary, the reviewer's guide, and others.
  • Change the review language.
  • Add, remove or edit custom review instructions.
  • Adjust other review settings.

Getting Help

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant