Skip to content

Insights Service#628

Merged
lbedner merged 1 commit intomainfrom
insights-service
Apr 13, 2026
Merged

Insights Service#628
lbedner merged 1 commit intomainfrom
insights-service

Conversation

@lbedner
Copy link
Copy Markdown
Owner

@lbedner lbedner commented Apr 13, 2026

No description provided.

Copilot AI review requested due to automatic review settings April 13, 2026 20:36
Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

Adds a new Insights (analytics/adoption metrics) service to the Aegis Stack generator, including bracket-syntax source selection and end-to-end template/doc/test integration.

Changes:

  • Introduces insights[...] bracket syntax parsing + validation and wires it into service resolution and template context.
  • Adds Insights service spec/answer keys/copier prompts plus generated-project templates (collectors, health, scheduler hooks, frontend card/modal wiring).
  • Expands documentation + mkdocs nav and adds tests covering parser, resolver, registry, and template context flags.

Reviewed changes

Copilot reviewed 81 out of 90 changed files in this pull request and generated 9 comments.

Show a summary per file
File Description
tests/core/test_template_generator.py Tests template-context flags for Insights + source selection.
tests/core/test_services.py Verifies Insights exists in SERVICES and uses constants for components.
tests/core/test_service_resolver.py Tests dependency resolution + bracket validation for Insights.
tests/core/test_insights_service_parser.py Unit tests for insights[...] parsing rules.
mkdocs.yml Adds Insights docs section to site navigation.
docs/services/insights/index.md Adds Insights service overview + architecture + setup guidance.
docs/services/insights/examples.md Adds usage examples and workflows.
docs/services/insights/data-sources.md Documents supported data sources and what’s collected.
docs/services/insights/dashboard.md Documents Overseer dashboard integration for Insights.
docs/services/insights/configuration.md Documents environment variables and collection intervals.
docs/services/insights/cli.md Documents Insights CLI commands.
docs/services/index.md Adds Insights to services overview/diagrams and updates service table.
docs/overseer/index.md Mentions Insights as a service card in Overseer docs.
docs/components/index.md Updates “Services vs Components” examples to include Insights.
copier.yml Adds include_insights and per-source toggles for Copier prompts.
aegis/templates/copier-aegis-project/{{ project_slug }}/tests/services/test_collector_service.py Adds generated-project tests for collector orchestration.
aegis/templates/copier-aegis-project/{{ project_slug }}/tests/services/test_collector_reddit.py Adds generated-project tests for Reddit collector behavior.
aegis/templates/copier-aegis-project/{{ project_slug }}/tests/services/test_collector_pypi.py Adds generated-project tests for PyPI collector behavior.
aegis/templates/copier-aegis-project/{{ project_slug }}/tests/services/test_collector_github_stars.py Adds generated-project tests for GitHub stars collector behavior.
aegis/templates/copier-aegis-project/{{ project_slug }}/tests/services/test_collector_github_events.py Adds generated-project tests for GitHub events collector behavior.
aegis/templates/copier-aegis-project/{{ project_slug }}/app/services/system/ui.py.jinja Adds Insights service label/subtitle formatting in UI helpers.
aegis/templates/copier-aegis-project/{{ project_slug }}/app/services/insights/seed.py.jinja Adds idempotent seed data for Insight sources + metric types.
aegis/templates/copier-aegis-project/{{ project_slug }}/app/services/insights/schemas.py Adds Pydantic metadata schemas for stored JSON metadata shapes.
aegis/templates/copier-aegis-project/{{ project_slug }}/app/services/insights/query_service.py Adds sync query layer for dashboard queries.
aegis/templates/copier-aegis-project/{{ project_slug }}/app/services/insights/models.py Adds SQLModel tables for insight sources/metrics/events/records.
aegis/templates/copier-aegis-project/{{ project_slug }}/app/services/insights/jobs.py.jinja Adds scheduler job functions for collectors.
aegis/templates/copier-aegis-project/{{ project_slug }}/app/services/insights/health.py.jinja Adds Insights health check for Overseer.
aegis/templates/copier-aegis-project/{{ project_slug }}/app/services/insights/constants.py Adds source/metric/period constants for Insights.
aegis/templates/copier-aegis-project/{{ project_slug }}/app/services/insights/collectors/reddit.py.jinja Adds Reddit collector template implementation.
aegis/templates/copier-aegis-project/{{ project_slug }}/app/services/insights/collectors/reddit.py Adds Reddit collector implementation used in generated project.
aegis/templates/copier-aegis-project/{{ project_slug }}/app/services/insights/collectors/pypi.py Adds PyPI collector implementation used in generated project.
aegis/templates/copier-aegis-project/{{ project_slug }}/app/services/insights/collectors/plausible.py.jinja Adds Plausible collector template implementation.
aegis/templates/copier-aegis-project/{{ project_slug }}/app/services/insights/collectors/plausible.py Adds Plausible collector implementation used in generated project.
aegis/templates/copier-aegis-project/{{ project_slug }}/app/services/insights/collectors/github_traffic.py.jinja Adds GitHub traffic collector template implementation.
aegis/templates/copier-aegis-project/{{ project_slug }}/app/services/insights/collectors/github_traffic.py Adds GitHub traffic collector implementation used in generated project.
aegis/templates/copier-aegis-project/{{ project_slug }}/app/services/insights/collectors/github_stars.py.jinja Adds GitHub stars collector template implementation.
aegis/templates/copier-aegis-project/{{ project_slug }}/app/services/insights/collectors/github_stars.py Adds GitHub stars collector implementation used in generated project.
aegis/templates/copier-aegis-project/{{ project_slug }}/app/services/insights/collectors/github_events.py.jinja Adds GitHub events collector template implementation.
aegis/templates/copier-aegis-project/{{ project_slug }}/app/services/insights/collectors/base.py Adds base collector helpers + upsert semantics + ClickHouse helper.
aegis/templates/copier-aegis-project/{{ project_slug }}/app/services/insights/collectors/init.py Package init for collectors.
aegis/templates/copier-aegis-project/{{ project_slug }}/app/services/insights/init.py Package init for insights service.
aegis/templates/copier-aegis-project/{{ project_slug }}/app/i18n/locales/en.py Adds English CLI strings for Insights commands.
aegis/templates/copier-aegis-project/{{ project_slug }}/app/core/config.py.jinja Adds Insights environment variable settings to generated project config.
aegis/templates/copier-aegis-project/{{ project_slug }}/app/components/scheduler/main.py.jinja Registers Insights collection jobs in scheduler component.
aegis/templates/copier-aegis-project/{{ project_slug }}/app/components/frontend/main.py.jinja Adds Insights card routing in frontend component.
aegis/templates/copier-aegis-project/{{ project_slug }}/app/components/frontend/dashboard/status_overview.py.jinja Adds Insights display info in status overview.
aegis/templates/copier-aegis-project/{{ project_slug }}/app/components/frontend/dashboard/modals/task_history_section.py Refactors timestamp/duration formatting helpers into shared module.
aegis/templates/copier-aegis-project/{{ project_slug }}/app/components/frontend/dashboard/modals/scheduler_modal.py Adjusts scheduler modal status indicator logic and wording.
aegis/templates/copier-aegis-project/{{ project_slug }}/app/components/frontend/dashboard/modals/modal_sections.py Adds shared formatting helpers + milestone/metric UI enhancements.
aegis/templates/copier-aegis-project/{{ project_slug }}/app/components/frontend/dashboard/modals/init.py.jinja Exports Insights detail modal when Insights enabled.
aegis/templates/copier-aegis-project/{{ project_slug }}/app/components/frontend/dashboard/diagram/diagram_node.py Enables subtitle rendering for service_insights in diagram nodes.
aegis/templates/copier-aegis-project/{{ project_slug }}/app/components/frontend/dashboard/cards/insights_card.py Adds Insights dashboard card implementation.
aegis/templates/copier-aegis-project/{{ project_slug }}/app/components/frontend/dashboard/cards/card_utils.py.jinja Registers Insights modal + disables caching for data-heavy Insights modal.
aegis/templates/copier-aegis-project/{{ project_slug }}/app/components/frontend/dashboard/cards/init.py.jinja Exports Insights card when Insights enabled.
aegis/templates/copier-aegis-project/{{ project_slug }}/app/components/frontend/dashboard/activity_feed.py Tweaks relative-time formatting for midnight timestamps.
aegis/templates/copier-aegis-project/{{ project_slug }}/app/components/backend/startup/database_init.py.jinja Seeds insights lookup tables at startup (idempotent).
aegis/templates/copier-aegis-project/{{ project_slug }}/app/components/backend/startup/component_health.py.jinja Registers Insights service health check.
aegis/templates/copier-aegis-project/{{ project_slug }}/app/components/backend/api/deps.py.jinja Adds DI providers for Insights services.
aegis/templates/copier-aegis-project/{{ project_slug }}/app/cli/main.py.jinja Conditionally registers insights CLI module.
aegis/templates/copier-aegis-project/{{ project_slug }}/alembic/env.py.jinja Includes Insights models in Alembic metadata when enabled.
aegis/templates/copier-aegis-project/{{ project_slug }}/README.md.jinja Adds generated-project README section listing included services.
aegis/templates/copier-aegis-project/{{ project_slug }}/.env.example.jinja Adds Insights env var examples in generated .env.example.
aegis/core/template_generator.py Adds Insights parsing + template-context flags for include/source selection.
aegis/core/services.py Registers Insights service spec and migrates required components to ComponentNames constants.
aegis/core/service_resolver.py Validates Insights bracket syntax.
aegis/core/post_gen_tasks.py Adds Insights files to generated-project include/remove mapping and migration retention rules.
aegis/core/insights_service_parser.py Implements Insights bracket syntax parser.
aegis/core/copier_manager.py Passes Insights flags through Copier data mapping and migration decisions.
aegis/constants.py Adds AnswerKeys entries for Insights and per-source toggles.
aegis/commands/add_service.py Supports aegis add-service insights[...] source flag propagation.
aegis/cli/callbacks.py Adds CLI parsing feedback/validation for Insights bracket syntax.
README.md Mentions Insights in top-level project README service list.

Comment thread docs/services/insights/configuration.md
Comment thread docs/services/index.md Outdated
Comment thread docs/services/insights/index.md
@lbedner lbedner merged commit cfa0821 into main Apr 13, 2026
7 checks passed
@lbedner lbedner deleted the insights-service branch April 13, 2026 21:17
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