bug: startup_ready.fresh_install is always false for headless serve/run first runs
Nobody has claimed this yet.
Assessment
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Newbie friendliness
- 48/100
- Issue type
- Bug
- Clarity
- Mostly clear
- Activity status
- Active
- Tech stack
- typescript
- Domain
- cli, observability
Research direction
Start with packages/opencode/src/altimate/telemetry/index.ts and packages/opencode/src/cli/welcome.ts to trace the install marker or machine-id signal used by first_launch. Then inspect the CLI middleware and docs/internal/first-run-telemetry.md to understand headless command coverage. Done means fresh headless serve and run starts report fresh_install true, while returning installs remain false and the KQL buckets them correctly.
Written by the indexing model from the issue text.
Description
Found during the v0.11.1 release review (Tech Lead persona). Deferred because: decoupling fresh-install detection from the TUI welcome flow is more than a quick fix.
startup_ready.fresh_install is set only when track() observes a non-upgrade first_launch event (packages/opencode/src/altimate/telemetry/index.ts), and first_launch is only tracked from packages/opencode/src/cli/welcome.ts, which is TUI-only onboarding. serve and run never go through it, so a brand-new machine's first altimate serve or altimate run always reports fresh_install: false.
Those are exactly the entry points the v0.11.0 first-run freeze hit, and the "startup time by command, fresh vs returning" KQL in docs/internal/first-run-telemetry.md will mis-bucket every fresh headless install.
Suggested fix. Derive fresh_install from the install marker / machine-id probe directly (the same signal first_launch uses), independent of which command consumed it, or emit first_launch from the CLI middleware for every command.
- Dominant language
- TypeScript
- Stars
- 813
- Forks
- 134
- Avg merge
- 2d 5h
- Merged PRs (30d)
- 62
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from AltimateAI/altimate-code
-
Difficulty 2/5 1-3 hours Newbie friendliness 84/100
AltimateAI/altimate-code#1323 ·
-
Difficulty 2/5 1-3 hours Newbie friendliness 86/100
AltimateAI/altimate-code#1288 ·
-
Difficulty 1/5 Under an hour Newbie friendliness 92/100
AltimateAI/altimate-code#1285 ·
-
privacy: Altimate Base consent dialog no longer discloses persistent per-installation identifier Open
Difficulty 1/5 Under an hour Newbie friendliness 88/100
AltimateAI/altimate-code#1284 ·
-
Difficulty 2/5 Under an hour Newbie friendliness 72/100
AltimateAI/altimate-code#1283 ·
All issues in AltimateAI/altimate-code
Similar issues
-
Browser Waiting for: Product Owner
Difficulty 2/5 1-3 hours Newbie friendliness 85/100
getsentry/sentry-javascript#24577 · 1 comment ·
-
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
agilepathway/label-checker#640 ·
-
Difficulty 2/5 1-3 hours Newbie friendliness 84/100
copse-dev/agent-pane#2953 ·
-
agentic-workflows
Difficulty 1/5 Under an hour Newbie friendliness 85/100
githubnext/rig#534 ·
-
automation missing-model model-sync provider:pioneer
Difficulty 2/5 1-3 hours Newbie friendliness 76/100
anomalyco/models.dev#7701 ·