Skip to content

Init Blueprints - #960

Merged
lbedner merged 1 commit into
mainfrom
init-blueprints
Aug 21, 2026
Merged

Init Blueprints#960
lbedner merged 1 commit into
mainfrom
init-blueprints

Conversation

@lbedner

@lbedner lbedner commented Aug 21, 2026

Copy link
Copy Markdown
Owner

No description provided.

Copilot AI lite review requested due to automatic review settings August 21, 2026 19:57

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

🟡 Changes recommended

The template finance importer has a mis-indented asyncio.to_thread(...) call that will produce a SyntaxError and must be fixed before merging.

Once you've addressed the issues Copilot identified, you can request another Copilot review.

Pull request overview

Adds “blueprints” (named preset stacks) to the Aegis Stack CLI so users can start aegis init from a curated configuration, while keeping the preset behavior identical to answering the existing selection engine screens by hand.

Changes:

  • Introduces the blueprint registry/spec + aegis blueprints command and aegis init --blueprint/-b flag, plus guided UI “starting point” + gallery flow.
  • Updates project map rendering to derive the services/ section from the service registry (and adds map labels for newly surfaced services).
  • Improves generated-project template behavior around finance imports/recurring review UX and avoids blocking the event loop for several sync/CPU-heavy operations (with new tests).
File summaries
File Description
tests/core/test_project_map.py New tests ensuring all registered services render in the project map with short labels.
tests/core/test_module_size_budget.py Updates ratcheted size budget for a finance importer module.
tests/cli/test_guided.py Adjusts guided-init key drives for the new starting-point screen.
tests/cli/test_blueprints.py New test suite covering blueprint registry, CLI, guided seeding behavior, and equivalence guarantees.
pyrightconfig.json Adds Pyright config and excludes template/generated project directories from type checking.
pyproject.toml Extends tooling excludes to ignore additional generated demo directories.
docs/cli-reference.md Documents aegis blueprints and the --blueprint flag + guided flow changes.
aegis/templates/copier-aegis-project/{{ project_slug }}/tests/test_client.py Adds tests pinning longer timeout usage for finance import upload endpoints.
aegis/templates/copier-aegis-project/{{ project_slug }}/tests/services/test_system_jobs.py Adds tests asserting DB backup/restore subprocess calls run off the event loop.
aegis/templates/copier-aegis-project/{{ project_slug }}/tests/services/test_finance_import.py Adds tests asserting finance import parsing runs in a worker thread.
aegis/templates/copier-aegis-project/{{ project_slug }}/tests/services/test_finance_attach.py Adds coverage for improved recurring-match candidate filtering edge cases.
aegis/templates/copier-aegis-project/{{ project_slug }}/tests/services/ai/chat_kit/test_agent.py Adds test asserting usage recorder runs off the event loop.
aegis/templates/copier-aegis-project/{{ project_slug }}/tests/api/test_finance_endpoints.py Adds tests for the new recurring review-queue batch endpoint.
aegis/templates/copier-aegis-project/{{ project_slug }}/app/services/system/backup.py.jinja Moves pg_dump/psql subprocess work to asyncio.to_thread to avoid blocking the loop.
aegis/templates/copier-aegis-project/{{ project_slug }}/app/services/finance/domains/planning/recurring/queries.py Adds query helper to infer effective member category id for matching logic.
aegis/templates/copier-aegis-project/{{ project_slug }}/app/services/finance/domains/planning/recurring/matching.py Enhances match candidate filtering to avoid sibling-claimed/identified-as-other noise.
aegis/templates/copier-aegis-project/{{ project_slug }}/app/services/finance/adapters/importers/imports.py Moves CSV/OFX/QIF parsing off the event loop and refactors extension parsing into base.
aegis/templates/copier-aegis-project/{{ project_slug }}/app/services/finance/adapters/importers/base.py New shared parsing helpers + UnsupportedFileTypeError.
aegis/templates/copier-aegis-project/{{ project_slug }}/app/services/ai/chat_kit/agent.py Runs synchronous usage recording in a thread to protect streaming latency.
aegis/templates/copier-aegis-project/{{ project_slug }}/app/components/frontend/dashboard/modals/finance_recurring_tab/tab.py Adds a “Review” button for overdue recurring items and keeps count updated.
aegis/templates/copier-aegis-project/{{ project_slug }}/app/components/frontend/dashboard/modals/finance_recurring_tab/shared.py Adds past_due/needs_review helpers used across UI surfaces.
aegis/templates/copier-aegis-project/{{ project_slug }}/app/components/frontend/dashboard/modals/finance_recurring_tab/rows.py Displays “Overdue” based on due-date truth (not grace) to match review semantics.
aegis/templates/copier-aegis-project/{{ project_slug }}/app/components/frontend/dashboard/modals/finance_recurring_tab/dialogs.py Adds multi-step recurring review queue UX and reuses existing match dialog.
aegis/templates/copier-aegis-project/{{ project_slug }}/app/components/frontend/dashboard/modals/finance_modal/transactions_panel/imports_flow.py Adds import-specific longer timeout for in-request preview/import endpoints.
aegis/templates/copier-aegis-project/{{ project_slug }}/app/components/backend/api/finance/recurring.py Adds /recurring/review-queue endpoint and shares candidate-enrichment logic.
aegis/i18n/locales/en.py Adds new blueprint/init help strings and project-map labels for added services.
aegis/i18n/locales/de.py Stubs new blueprint/init keys and project-map labels.
aegis/i18n/locales/es.py Stubs new blueprint/init keys and project-map labels.
aegis/i18n/locales/fr.py Stubs new blueprint/init keys and project-map labels.
aegis/i18n/locales/ja.py Stubs new blueprint/init keys and project-map labels.
aegis/i18n/locales/ko.py Stubs new blueprint/init keys and project-map labels.
aegis/i18n/locales/ru.py Stubs new blueprint/init keys and project-map labels.
aegis/i18n/locales/zh.py Stubs new blueprint/init keys and project-map labels.
aegis/i18n/locales/zh_hant.py Stubs new blueprint/init keys and project-map labels.
aegis/core/project_map.py Derives services/ section from SERVICES registry and adds service label fallback logic.
aegis/commands/init.py Adds --blueprint/-b and blueprint expansion + guided pass-through.
aegis/commands/blueprints.py New aegis blueprints command implementation.
aegis/main.py Registers the new blueprints command on the root Typer app.
aegis/cli/callbacks.py Extracts reusable service option-handler application for bracket syntax.
aegis/cli/guided.py Adds blueprint-aware guided init flow, sidebar rules, and starting-point integration.
aegis/cli/guided_chrome.py New shared guided UI chrome module (key reader, styles, helpers).
aegis/cli/guided_blueprints.py New starting-point + blueprint gallery screens for guided init.
aegis/blueprints/spec.py New blueprint data model + adapters for driving the selection engine.
aegis/blueprints/finance.py Adds the initial “finance” blueprint preset.
aegis/blueprints/init.py Adds import-time discovery/registry of blueprint modules.
.gitignore Ignores an additional generated demo directory.
Review details
  • Files reviewed: 45/46 changed files
  • Comments generated: 2
  • Review effort level: Lite

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

Comment thread aegis/commands/init.py
@lbedner
lbedner merged commit 6422261 into main Aug 21, 2026
29 of 30 checks passed
@lbedner
lbedner deleted the init-blueprints branch August 21, 2026 20:52
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.

2 participants