Pythagora-io / gpt-pilot

The first real AI developer
Other
29.06k stars 2.91k forks source link

More telemetry #1008

Closed senko closed 2 weeks ago

senko commented 3 weeks ago

This PR fixes system dependency checks to be done even if example project is started, and to wait for user confirmation before continuing. It also stores the information on whether the dependency is installed or not in telemetry data.

It also disables telemetry in unit tests and adds new trace events for:

senko commented 2 weeks ago

@LeonOstrez comments addressed in the 4 new commits (recommend checking one by one)

Example project and package installation status info in final telemetry event:

Screenshot from 2024-06-13 10-33-13

Extra data in trace events:

Screenshot from 2024-06-13 13-51-26

Also, instead of SpecWriter handling everything for an example project, each agent now does its part:

[core.agents.orchestrator] Running agent SpecWriter (step 1)
[core.agents.spec_writer] Starting example project: example-project
[core.agents.orchestrator] Agent SpecWriter is done, committing state for step 1: 0/0 epics, 0/0 tasks, 0/0 iterations, 0/0 dev steps.
[core.agents.orchestrator] Running agent Architect (step 1)
[core.agents.architect] Setting architecture for example project: example-project
[core.proc.process_manager] Starting process: node --version (cwd=/home/senko/Projects/Pythagora/gpt-pilot/workspace/demo-020922a)
[core.agents.orchestrator] Agent Architect is done, committing state for step 1: 0/0 epics, 0/0 tasks, 0/0 iterations, 0/0 dev steps.
[core.db.session] Connected to database sqlite+aiosqlite:///pythagora.db
[core.agents.orchestrator] Running agent TechLead (step 2)
[core.agents.tech_lead] Planning example project: example-project
[core.agents.orchestrator] Agent TechLead is done, committing state for step 2: 0/1 epics, 0/1 tasks, 0/0 iterations, 0/0 dev steps.
[core.db.session] Connected to database sqlite+aiosqlite:///pythagora.db
[core.agents.orchestrator] Running agent TechLead (step 3)
[core.agents.tech_lead] Applying project template: javascript_react
[core.templates.registry] Applying project template javascript_react...
[core.agents.orchestrator] Agent TechLead is done, committing state for step 3: 0/1 epics, 0/1 tasks, 0/0 iterations, 0/0 dev steps.
[core.agents.orchestrator] Running agent ExternalDocumentation (step 4)
[core.agents.external_docs] Example project detected, no documentation selected.

As as side-effect, this also allows future expansion to add more/different example projects.