Skip to content

feat: telemetry for the workspace engine - #1513

Open
ralphstodomingo wants to merge 14 commits into
feat/workspace-usage-telemetryfrom
feat/workspace-engine-telemetry
Open

ralphstodomingo wants to merge 14 commits into
feat/workspace-usage-telemetryfrom
feat/workspace-engine-telemetry

Conversation

@ralphstodomingo

@ralphstodomingo ralphstodomingo commented Oct 15, 2026 •

Copy link
Copy Markdown
Contributor

Closes #1512

Stacked on #1511 (usage rows), itself on #1509; review the commit above #1511.

What

The rows that say whether the workspace engine is there for a linked project, and what gets in the way, per the shared event contract.

  • workspace_engine_attach when a session's attach outcome settles and differs from the last one recorded for that session: attached (with available, declared and missing counts and engine_version), engine_missing, engine_too_old (found_version), connect_failed (an error_class), disabled, unbound. A repeated turn boundary with the same outcome reports nothing.
  • workspace_engine_install_prompt: shown once per offer with the surface that took it (headless, dialog, bus, toast) and whether Node was found to install with (node_detected, node_major); then accepted, installed, install_failed, copied or declined from the TUI dialog.
  • workspace_engine_precedence when a session's precedence snapshot changes: on or off with the reason, counts of shadowed integration types and connections, extensions, and whether the escape hatch is set.
  • workspace_engine_redirect when a datamate_manager call is refused because the project is linked (the workspace's engine owns its integrations).
  • workspace_engine_error with a stage (attach, install, precedence) and a masked message when the overlay, an install or a precedence derivation throws.

The builders live in altimate/workspace/engine-telemetry.ts; each hook is one call at an existing decision point (the overlay's record, offerOrNotify, the dialog's actions, refresh, refusal). Nothing awaits the network and no tracker can throw into its caller.

Not here: an attach duration (the outcome settles across turn boundaries, so there is no single start to measure from), and a redirect row for a datamate call that runs on the engine (that is an ordinary MCP call, reported as tool_call.via_workspace by #1511).

Why

Linking and usage (#1509, #1511) say a workspace reached the CLI and was used. These rows say whether the engine that serves its integrations was actually available, how the install offer lands, and where it fails: the "what gets in the way" stage of the funnel.

Verification

  • New tests: the builders (outcome mapping, change signatures, the install prompt's node fields, the precedence snapshot, masking and bounds), and each hook through the existing fixtures: an attach reported once and again on change, a too-old engine's version, a probe throw as an attach-stage error, the headless and bus shown events with node detection, the precedence snapshot deduped per session, the refusal's redirect row.
  • Workspace, tool and telemetry suites pass; tsgo --noEmit, oxlint and the marker guard clean.

Review log (claims and residuals Codex reviews against): #1513 (comment)

🤖 Generated with Claude Code

https://claude.ai/code/session_011AhtJPr3nmT1Po92ZQk4VE


Summary by cubic

Adds telemetry for the workspace engine to see whether the engine that serves a linked project's integrations was available, how the install offer lands, and where it fails, alongside the usage rows from #1511.

New events

  • workspace_engine_attach — one row per session when the attach outcome settles or changes, with counts, the engine version, and the reason when it did not attach. Dedupe uses the account-scoped workspace identity, so a relink or the same id under another account reports again. An unbound row names no workspace explicitly. The in-session retry sentinel reports nothing, and a retry add that throws settles as a connect failure.
  • workspace_engine_install_prompt — shown is reported by the surface that rendered the offer (the dialog when it renders, the headless and toast paths when they actually show it, and an attached run that prints the offer it read off the bus), then the user's action, and whether Node was available to install with; an install that throws past installEngine reports the same rows as a reported failure. The bus path's shown row carries no node fields, as the probe stays off the publish path. copied is tracked only when a writer exists and a write-read-back confirms the clipboard holds the command.
  • workspace_engine_precedence — one row per session when the snapshot changes, with the types the session can route through the engine, the local connections the engine shadows, extensions, and the escape hatch flag; a change in shadowed connection count re-reports it, and dedupe uses the account-scoped workspace identity. A disabled snapshot's row names the linked workspace instead of its own binding.
  • workspace_engine_redirect — a datamate_manager call refused because the project is linked.
  • workspace_engine_error — attach, install, or precedence failures with masked, bounded messages, including turn-hook attach failures; a precedence error names the refreshed session.

All tracking is fire-and-forget: no tracker awaits the network or throws into its caller, and repeated identical outcomes are not re-reported per session.

Written for commit 951858d. Summary will update on new commits.

View guided diff Turn on auto-fix

@ralphstodomingo

ralphstodomingo commented Oct 15, 2026 •

Copy link
Copy Markdown
Contributor Author

Codex review log

Stacked on #1511; review only the commit above it. Review runs against these claims. Report only a reproducible trace that violates a numbered claim; instances of the disclosed residuals are not findings. A round with no claim violation ends review.

Claims

  • C1 workspace_engine_attach is tracked from record() in engine-overlay.ts when attachKey (the directory's account-scoped workspace identity, the credential scope plus the id as the overlay keys it, plus attachSignature: kind; the counts and extension count for an attach; declared for a missing engine; found for a too-old one; the error class for a connect failure) differs from the key last reported for the session; the same key again tracks nothing, and a relink to another workspace with the same-shaped outcome reports again. The retry sentinel (connect-failed: retrying) is transient: it reports nothing and the next settled outcome is compared with the last reported one; a retry whose add throws settles connect-failed with the error. Fields: outcome from the kind; workspace_id from the directory's linked workspace (present but undefined for unbound and disabled, so the session's entry is not stamped onto them; the envelope drops it); available, declared, missing (a count), extensions when present; engine_version on an attach; found_version for engine_too_old; error_class from connectErrorClass for connect_failed; session_id is the recorded session.
  • C2 workspace_engine_error with stage attach is tracked from the overlay's catch (a throw after the binding read: the probe or the entry) and from the turn hook's catch (a throw during the boundary's reconcile), the latter with the session; a binding read that fails is an outcome, not an error row. Every error message passes Telemetry.maskString and is cut at 200 characters.
  • C3 workspace_engine_install_prompt with action shown is tracked by the surface that showed the offer: offerOrNotify for the headless line and for the toast when notify() returned true (with reason, workspace_id when the offer's id is a positive integer, declared or found_version, node_detected and node_major from nodeMajor(), the offered session's id); the TUI dialog from its mount, with surface dialog and the node it detected, whether it was taken in-realm or dispatched over the bus; an attached run (--attach), which prints the offer it reads off the bus in its own process, from that print with surface bus, the offer's fields carried in the event's arguments (encodeOfferDetail, trackPrintedOffer; an event whose fields do not decode reports nothing; no node fields, since a node probe would sit on the dispatch path ahead of the turn boundary). Dispatch alone reports nothing, so an offer the TUI's latch holds back is not shown.
  • C4 The TUI dialog tracks shown when it renders, accepted on Install, installed when the install succeeds, install_failed plus a workspace_engine_error with stage install when it fails (a reported failure or a rejection thrown past installEngine's result), copied when Copy's write is confirmed by the read-back (confirmedCopy: a writer exists, and the clipboard then holds the command; no writer, an unconfirmed or a failed copy tracks nothing and the warning toast shows the command) and declined on Not now, each with the same offer fields. These rows are tracked in the TUI plugin realm, whose telemetry instance flushes like the server's (its skill_published rows with source tui reach the sink); they carry no session id (R5) and join the server-side rows on workspace_id and launch_id, which the worker inherits from tui.ts.
  • C5 workspace_engine_precedence is tracked from refresh() when the session's signature (precedenceSignature: workspace id, enabled, reason, shadowed types with their capability counts, extension count; plus the shadowed-connection count, the escape hatch and the directory's account-scoped workspace identity from the overlay, so the same id under another account is another workspace) differs from the last one tracked for that session; session_id is the refreshed session; fields: enabled, reason when off, shadowed_types (servedInventory(result).length: the types this session can route through the engine under its rules, the inventory line's count; 0 when disabled), shadowed_connections (countShadowedConnections for an enabled snapshot, the inventory line's count; 0 for a disabled one, without reading the registry), extensions, escape_hatch from escapeHatchOn(), workspace_id from the snapshot's own binding, else the directory's linked workspace passed by refresh() (so a disabled snapshot of a bound session, escape hatch or unattributed, still names its workspace), present and undefined when neither names one (an unbound, unlinked session's row names no workspace; the envelope drops the key). The dedupe map keeps the newest 256 sessions.
  • C6 A derive() throw in refresh() tracks workspace_engine_error with stage precedence and the refreshed session's id, and still settles the empty derive-failed snapshot, which C5 then reports.
  • C7 workspace_engine_redirect is tracked from refusal() in datamate-manager-gate.ts with tool: "datamate", the refused operation, outcome: "refused", the workspace id and the calling session (the datamate tool threads ctx.sessionID into every refusal); nothing else tracks it.
  • C8 No tracker awaits the network or throws into its caller: every track* catches, and each hook is a single call at an existing decision point, so the overlay, the offer, the dialog, the precedence derivation and the refusal behave as before.

Residuals

  • R1 No attach duration: the outcome settles across turn boundaries, so there is no single start to measure from (asked for in [FEATURE]: telemetry for the workspace engine: attach, install offer, precedence, redirects and errors #1512, deferred).
  • R2 A datamate call that runs on the engine is an ordinary MCP call (tool_call.via_workspace, feat: usage rows of a linked workspace #1511), not a redirect row; workspace_engine_redirect covers the refusal only.
  • R3 The dedupes are per process: a session evicted from the precedence map (past 256) reports its snapshot again on its next refresh; the attach dedupe uses the overlay's own session record and follows its eviction.
  • R4 The dialog's shown does not say whether it was taken in-realm or dispatched over the bus; both render the same dialog. A TUI shows the offer for its directory: the TUI's command dispatch (upstream packages/tui/src/app.tsx) filters the event on the directory and passes only the command's name, and the dialog re-derives the offer from the directory, so every TUI on that directory and server shows the dialog and reports its own shown (a display each), none with the raising session (R5).
  • R5 session_id on the dialog's rows (the offer command carries no session) and on the overlay's own attach-stage error rows comes from the telemetry context (empty in the TUI realm); attach, shown from the offer layer, precedence, precedence-error, turn-hook error and redirect rows carry the session they were recorded for.

Rounds: round 1 on f2bb0a0 found C5 (capabilities summed as connections; fixed in 4c3cf95) and C4 (TUI realm; declined with evidence). Round 2 on 4c3cf95 found C1 (the retry sentinel reported as a connect failure) and C4 (an install rejection unreported), fixed in ab20e9c. Round 3 on ab20e9c found C6 (the precedence error row taking the process-global session), fixed in 0bb8580, which no Codex round has reviewed. The cap of three rounds is spent; no further rounds unless Ralph raises it. Cubic's first pass (on the ready flip) found 9 items: 8 fixed in 82f88d8 (C1, C2, C3, C4, C5, C7, R4, R5 updated above), 1 declined (the dialog's session, as before). 82f88d8 is not Codex-reviewed. Cubic's second pass found the relink dedupe gap and Kilo a dropped session on a create's add; both fixed in a027586, not Codex-reviewed.
Cap raised (Ralph, 2026-10-15: more rounds are fine as long as we evaluate why they keep being needed): a further round reviews a027586. Round 4 on a027586 found C1 (the dedupe keyed on the tenant-local id, so the same id under another account was suppressed): the dedupe-key class from the evaluation, fixed in 444bfd6; round 5 reviews it. Round 5 on 444bfd6 found C5 (the precedence dedupe keyed on the tenant-local id), the dedupe-key class again; fixed in c427a1b; round 6 reviews it. Round 6 on c427a1b found C5 (shadowed_types counted every materialised type, not the ones the session's rules let it route), a loose-predicate item; fixed in cd10a15; round 7 reviews it. Round 7 on cd10a15 found C5 (a disabled snapshot's row left to the process context for its workspace), fixed in a8f283a; round 8 reviews it. Round 8 on a8f283a found C1 (an unbound attach row taking the session's workspace from the stamp), fixed in 87721c5; round 9 reviews it. Round 9 on 87721c5 found C4 (copied tracked on the selection, before the read-back confirmed the clipboard: the wrong-lifecycle-point class) and C5 (an unbound precedence row left without the key, so a stamp could name one), both fixed in 589f845, which also sits on #1511's be3b516 where the ambient stamp itself is gone (every row names its workspace or carries none); round 10 reviews it. Round 10 on 589f845 found C3 (an attached run printed the bus offer with no shown row: the surface-ownership class, the server's publish taken as delivery), fixed in f9c1531, where the event carries the offer's fields and the printing process reports; round 11 reviews it. Round 11 on f9c1531 found a second TUI on the same directory and server showing the dialog and reporting its own shown: declined with evidence (each surface that showed the offer reports, C3; the dialog is directory-scoped and carries no session, now stated in R4/R5). Review closed on Ralph's call (2026-10-15): the branch is rebased onto the trimmed #1511 (head bb184e9; its own commits are unchanged); no further rounds, the PR goes to human review. Cubic's full review of bb184e9 (after the rebase) found the node probe awaited on the offer's dispatch path and confirmedCopy confirming without a writer: fixed in 951858d; its precedence-signature item is declined (the signature covers every field the row carries; a change the row cannot show would re-emit an identical row).

@ralphstodomingo

Copy link
Copy Markdown
Contributor Author

@codex review against the numbered claims and the disclosed residuals in the review-log comment on this PR: report only a reproducible trace that violates a numbered claim. Instances of the disclosed residuals are not findings. A round with no claim violation ends review. This PR is stacked on #1511: review only the commit above it.

@coderabbitai

coderabbitai Bot commented Oct 15, 2026 •

Copy link
Copy Markdown

Important

Review skipped

Auto reviews are disabled on base/target branches other than the default branch.

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: Repository UI
  • Review profile: CHILL
  • Plan: Advanced
  • Run ID: 44c2c3ca-0d97-492d-9325-da0bbaf91cbd

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
  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

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

@github-actions

Copy link
Copy Markdown

This PR doesn't fully meet our contributing guidelines and PR template.

What needs to be fixed:

  • PR description is missing required template sections. Please use the PR template.

Please edit this PR description to address the above within 2 hours, or it will be automatically closed.

If you believe this was flagged incorrectly, please let a maintainer know.

@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Oct 15, 2026 •

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review ✅ Completed 2026-10-15T16:24:02.650793Z f9c1531 Manual request
ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

@chatgpt-codex-connector chatgpt-codex-connector Bot 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.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: f2bb0a0181

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread packages/opencode/src/plugin/tui/altimate/workspace.tsx
Comment thread packages/opencode/src/altimate/workspace/engine-telemetry.ts Outdated
@ralphstodomingo

Copy link
Copy Markdown
Contributor Author

@codex review against the numbered claims and the disclosed residuals in the review-log comment on this PR: report only a reproducible trace that violates a numbered claim. Instances of the disclosed residuals are not findings. A round with no claim violation ends review. This PR is stacked on #1511: review only the two commits above it.

@chatgpt-codex-connector chatgpt-codex-connector Bot 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.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 4c3cf955a3

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread packages/opencode/src/altimate/workspace/engine-overlay.ts Outdated
Comment thread packages/opencode/src/plugin/tui/altimate/workspace.tsx
@ralphstodomingo

Copy link
Copy Markdown
Contributor Author

@codex review against the numbered claims and the disclosed residuals in the review-log comment on this PR: report only a reproducible trace that violates a numbered claim. Instances of the disclosed residuals are not findings. A round with no claim violation ends review. This PR is stacked on #1511: review only the three commits above it.

@chatgpt-codex-connector chatgpt-codex-connector Bot 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.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: ab20e9c5be

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread packages/opencode/src/altimate/workspace/precedence.ts Outdated
@ralphstodomingo
ralphstodomingo marked this pull request as ready for review October 15, 2026 12:17
@kilo-code-bot

kilo-code-bot Bot commented Oct 15, 2026 •

Copy link
Copy Markdown

Code Review Summary

Status: No Issues Found | Recommendation: Merge

Files Reviewed (17 files)
  • packages/opencode/src/altimate/telemetry/index.ts
  • packages/opencode/src/altimate/tools/datamate.ts
  • packages/opencode/src/altimate/workspace/datamate-manager-gate.ts
  • packages/opencode/src/altimate/workspace/engine-offer.ts
  • packages/opencode/src/altimate/workspace/engine-overlay.ts
  • packages/opencode/src/altimate/workspace/engine-seams.ts
  • packages/opencode/src/altimate/workspace/engine-telemetry.ts
  • packages/opencode/src/altimate/workspace/precedence.ts
  • packages/opencode/src/cli/cmd/run.ts
  • packages/opencode/src/plugin/tui/altimate/workspace.tsx
  • packages/opencode/src/server/tui-event.ts
  • packages/opencode/test/altimate/plugin/workspace.test.ts
  • packages/opencode/test/altimate/workspace/datamate-manager-gate.test.ts
  • packages/opencode/test/altimate/workspace/engine-install-offer.test.ts
  • packages/opencode/test/altimate/workspace/engine-overlay.test.ts
  • packages/opencode/test/altimate/workspace/engine-telemetry.test.ts
  • packages/opencode/test/altimate/workspace/precedence.test.ts
Previous Review Summaries (10 snapshots, latest commit 4c68447)

Current summary above is authoritative. Previous snapshots are kept for context only.

Previous review (commit 4c68447)

Status: No Issues Found | Recommendation: Merge

Files Reviewed (17 files)
  • packages/opencode/src/altimate/telemetry/index.ts
  • packages/opencode/src/altimate/tools/datamate.ts
  • packages/opencode/src/altimate/workspace/datamate-manager-gate.ts
  • packages/opencode/src/altimate/workspace/engine-offer.ts
  • packages/opencode/src/altimate/workspace/engine-overlay.ts
  • packages/opencode/src/altimate/workspace/engine-seams.ts
  • packages/opencode/src/altimate/workspace/engine-telemetry.ts
  • packages/opencode/src/altimate/workspace/precedence.ts
  • packages/opencode/src/cli/cmd/run.ts
  • packages/opencode/src/plugin/tui/altimate/workspace.tsx
  • packages/opencode/src/server/tui-event.ts
  • packages/opencode/test/altimate/plugin/workspace.test.ts
  • packages/opencode/test/altimate/workspace/datamate-manager-gate.test.ts
  • packages/opencode/test/altimate/workspace/engine-install-offer.test.ts
  • packages/opencode/test/altimate/workspace/engine-overlay.test.ts
  • packages/opencode/test/altimate/workspace/engine-telemetry.test.ts
  • packages/opencode/test/altimate/workspace/precedence.test.ts

Previous review (commit f9c1531)

Status: No Issues Found | Recommendation: Merge

Files Reviewed (17 files)
  • packages/opencode/src/altimate/telemetry/index.ts
  • packages/opencode/src/altimate/tools/datamate.ts
  • packages/opencode/src/altimate/workspace/datamate-manager-gate.ts
  • packages/opencode/src/altimate/workspace/engine-offer.ts
  • packages/opencode/src/altimate/workspace/engine-overlay.ts
  • packages/opencode/src/altimate/workspace/engine-seams.ts
  • packages/opencode/src/altimate/workspace/engine-telemetry.ts
  • packages/opencode/src/altimate/workspace/precedence.ts
  • packages/opencode/src/cli/cmd/run.ts
  • packages/opencode/src/plugin/tui/altimate/workspace.tsx
  • packages/opencode/src/server/tui-event.ts
  • packages/opencode/test/altimate/plugin/workspace.test.ts
  • packages/opencode/test/altimate/workspace/datamate-manager-gate.test.ts
  • packages/opencode/test/altimate/workspace/engine-install-offer.test.ts
  • packages/opencode/test/altimate/workspace/engine-overlay.test.ts
  • packages/opencode/test/altimate/workspace/engine-telemetry.test.ts
  • packages/opencode/test/altimate/workspace/precedence.test.ts

Previous review (commit 589f845)

Status: No Issues Found | Recommendation: Merge

Files Reviewed (14 files)
  • packages/opencode/src/altimate/telemetry/index.ts
  • packages/opencode/src/altimate/tools/datamate.ts
  • packages/opencode/src/altimate/workspace/datamate-manager-gate.ts
  • packages/opencode/src/altimate/workspace/engine-offer.ts
  • packages/opencode/src/altimate/workspace/engine-overlay.ts
  • packages/opencode/src/altimate/workspace/engine-telemetry.ts
  • packages/opencode/src/altimate/workspace/precedence.ts
  • packages/opencode/src/plugin/tui/altimate/workspace.tsx
  • packages/opencode/test/altimate/plugin/workspace.test.ts
  • packages/opencode/test/altimate/workspace/datamate-manager-gate.test.ts
  • packages/opencode/test/altimate/workspace/engine-install-offer.test.ts
  • packages/opencode/test/altimate/workspace/engine-overlay.test.ts
  • packages/opencode/test/altimate/workspace/engine-telemetry.test.ts
  • packages/opencode/test/altimate/workspace/precedence.test.ts

Previous review (commit 87721c5)

Status: No Issues Found | Recommendation: Merge

Files Reviewed (13 files)
  • packages/opencode/src/altimate/telemetry/index.ts
  • packages/opencode/src/altimate/tools/datamate.ts
  • packages/opencode/src/altimate/workspace/datamate-manager-gate.ts
  • packages/opencode/src/altimate/workspace/engine-offer.ts
  • packages/opencode/src/altimate/workspace/engine-overlay.ts
  • packages/opencode/src/altimate/workspace/engine-telemetry.ts
  • packages/opencode/src/altimate/workspace/precedence.ts
  • packages/opencode/src/plugin/tui/altimate/workspace.tsx
  • packages/opencode/test/altimate/workspace/datamate-manager-gate.test.ts
  • packages/opencode/test/altimate/workspace/engine-install-offer.test.ts
  • packages/opencode/test/altimate/workspace/engine-overlay.test.ts
  • packages/opencode/test/altimate/workspace/engine-telemetry.test.ts
  • packages/opencode/test/altimate/workspace/precedence.test.ts

Previous review (commit a8f283a)

Status: No Issues Found | Recommendation: Merge

Files Reviewed (13 files)
  • packages/opencode/src/altimate/telemetry/index.ts
  • packages/opencode/src/altimate/tools/datamate.ts
  • packages/opencode/src/altimate/workspace/datamate-manager-gate.ts
  • packages/opencode/src/altimate/workspace/engine-offer.ts
  • packages/opencode/src/altimate/workspace/engine-overlay.ts
  • packages/opencode/src/altimate/workspace/engine-telemetry.ts
  • packages/opencode/src/altimate/workspace/precedence.ts
  • packages/opencode/src/plugin/tui/altimate/workspace.tsx
  • packages/opencode/test/altimate/workspace/datamate-manager-gate.test.ts
  • packages/opencode/test/altimate/workspace/engine-install-offer.test.ts
  • packages/opencode/test/altimate/workspace/engine-overlay.test.ts
  • packages/opencode/test/altimate/workspace/engine-telemetry.test.ts
  • packages/opencode/test/altimate/workspace/precedence.test.ts

Previous review (commit cd10a15)

Status: No Issues Found | Recommendation: Merge

Files Reviewed (13 files)
  • packages/opencode/src/altimate/telemetry/index.ts
  • packages/opencode/src/altimate/tools/datamate.ts
  • packages/opencode/src/altimate/workspace/datamate-manager-gate.ts
  • packages/opencode/src/altimate/workspace/engine-offer.ts
  • packages/opencode/src/altimate/workspace/engine-overlay.ts
  • packages/opencode/src/altimate/workspace/engine-telemetry.ts
  • packages/opencode/src/altimate/workspace/precedence.ts
  • packages/opencode/src/plugin/tui/altimate/workspace.tsx
  • packages/opencode/test/altimate/workspace/datamate-manager-gate.test.ts
  • packages/opencode/test/altimate/workspace/engine-install-offer.test.ts
  • packages/opencode/test/altimate/workspace/engine-overlay.test.ts
  • packages/opencode/test/altimate/workspace/engine-telemetry.test.ts
  • packages/opencode/test/altimate/workspace/precedence.test.ts

Previous review (commit 444bfd6)

Status: No Issues Found | Recommendation: Merge

Files Reviewed (13 files)
  • packages/opencode/src/altimate/telemetry/index.ts
  • packages/opencode/src/altimate/tools/datamate.ts
  • packages/opencode/src/altimate/workspace/datamate-manager-gate.ts
  • packages/opencode/src/altimate/workspace/engine-offer.ts
  • packages/opencode/src/altimate/workspace/engine-overlay.ts
  • packages/opencode/src/altimate/workspace/engine-telemetry.ts
  • packages/opencode/src/altimate/workspace/precedence.ts
  • packages/opencode/src/plugin/tui/altimate/workspace.tsx
  • packages/opencode/test/altimate/workspace/datamate-manager-gate.test.ts
  • packages/opencode/test/altimate/workspace/engine-install-offer.test.ts
  • packages/opencode/test/altimate/workspace/engine-overlay.test.ts
  • packages/opencode/test/altimate/workspace/engine-telemetry.test.ts
  • packages/opencode/test/altimate/workspace/precedence.test.ts

Previous review (commit a027586)

Status: No Issues Found | Recommendation: Merge

Files Reviewed (13 files)
  • packages/opencode/src/altimate/telemetry/index.ts
  • packages/opencode/src/altimate/tools/datamate.ts
  • packages/opencode/src/altimate/workspace/datamate-manager-gate.ts
  • packages/opencode/src/altimate/workspace/engine-offer.ts
  • packages/opencode/src/altimate/workspace/engine-overlay.ts
  • packages/opencode/src/altimate/workspace/engine-telemetry.ts
  • packages/opencode/src/altimate/workspace/precedence.ts
  • packages/opencode/src/plugin/tui/altimate/workspace.tsx
  • packages/opencode/test/altimate/workspace/datamate-manager-gate.test.ts
  • packages/opencode/test/altimate/workspace/engine-install-offer.test.ts
  • packages/opencode/test/altimate/workspace/engine-overlay.test.ts
  • packages/opencode/test/altimate/workspace/engine-telemetry.test.ts
  • packages/opencode/test/altimate/workspace/precedence.test.ts

Previous review (commit 82f88d8)

Status: 1 Issue Found | Recommendation: Address before merge

Overview

Severity Count
CRITICAL 0
WARNING 1
SUGGESTION 0
Issue Details (click to expand)

WARNING

File Line Issue
packages/opencode/src/altimate/tools/datamate.ts 542 handleCreate receives sessionID and passes it to its initial refusal("create", off, sessionID) check on line 522, but omits sessionID when calling handleAdd(..., "create") on lines 540–543. If the project is linked while createDatamate is in flight, handleAdd's mid-operation refusal checks call refusal("create", ..., undefined) and fall back to the process-global telemetry session ID.
Files Reviewed (13 files)
  • packages/opencode/src/altimate/telemetry/index.ts
  • packages/opencode/src/altimate/tools/datamate.ts - 1 issue
  • packages/opencode/src/altimate/workspace/datamate-manager-gate.ts
  • packages/opencode/src/altimate/workspace/engine-offer.ts
  • packages/opencode/src/altimate/workspace/engine-overlay.ts
  • packages/opencode/src/altimate/workspace/engine-telemetry.ts
  • packages/opencode/src/altimate/workspace/precedence.ts
  • packages/opencode/src/plugin/tui/altimate/workspace.tsx
  • packages/opencode/test/altimate/workspace/datamate-manager-gate.test.ts
  • packages/opencode/test/altimate/workspace/engine-install-offer.test.ts
  • packages/opencode/test/altimate/workspace/engine-overlay.test.ts
  • packages/opencode/test/altimate/workspace/engine-telemetry.test.ts
  • packages/opencode/test/altimate/workspace/precedence.test.ts

Fix these issues in Kilo Cloud

Previous review (commit 0bb8580)

Status: No Issues Found | Recommendation: Merge

Files Reviewed (12 files)
  • packages/opencode/src/altimate/telemetry/index.ts
  • packages/opencode/src/altimate/workspace/datamate-manager-gate.ts
  • packages/opencode/src/altimate/workspace/engine-offer.ts
  • packages/opencode/src/altimate/workspace/engine-overlay.ts
  • packages/opencode/src/altimate/workspace/engine-telemetry.ts
  • packages/opencode/src/altimate/workspace/precedence.ts
  • packages/opencode/src/plugin/tui/altimate/workspace.tsx
  • packages/opencode/test/altimate/workspace/datamate-manager-gate.test.ts
  • packages/opencode/test/altimate/workspace/engine-install-offer.test.ts
  • packages/opencode/test/altimate/workspace/engine-overlay.test.ts
  • packages/opencode/test/altimate/workspace/engine-telemetry.test.ts
  • packages/opencode/test/altimate/workspace/precedence.test.ts

Reviewed by gemini-4-argon · Input: 334.8K · Output: 2.7K · Cached: 1.7M

Review guidance: REVIEW.md from base branch feat/workspace-usage-telemetry

@cubic-dev-ai cubic-dev-ai Bot 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.

All reported issues were addressed across 12 files

Reply with feedback, questions, or to request a fix.

View guided diff | Turn on auto-fix | Re-trigger cubic

Comment thread packages/opencode/src/altimate/workspace/datamate-manager-gate.ts Outdated
Comment thread packages/opencode/src/altimate/workspace/engine-offer.ts Outdated
Comment thread packages/opencode/src/altimate/workspace/precedence.ts Outdated
Comment thread packages/opencode/src/altimate/workspace/engine-overlay.ts
Comment thread packages/opencode/src/altimate/workspace/engine-telemetry.ts Outdated
Comment thread packages/opencode/src/altimate/workspace/engine-telemetry.ts Outdated
Comment thread packages/opencode/src/altimate/workspace/engine-overlay.ts
Comment thread packages/opencode/src/plugin/tui/altimate/workspace.tsx
Comment thread packages/opencode/src/altimate/workspace/engine-telemetry.ts Outdated
Comment thread packages/opencode/src/altimate/tools/datamate.ts

@cubic-dev-ai cubic-dev-ai Bot 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.

All reported issues were addressed across 12 files (changes from recent commits).

Reply with feedback, questions, or to request a fix.

View guided diff | Turn on auto-fix | Re-trigger cubic

Comment thread packages/opencode/src/altimate/workspace/engine-overlay.ts Outdated
@ralphstodomingo

Copy link
Copy Markdown
Contributor Author

@codex review against the numbered claims and the disclosed residuals in the review-log comment on this PR: report only a reproducible trace that violates a numbered claim. Instances of the disclosed residuals are not findings. A round with no claim violation ends review. This PR is stacked on #1511: review only the commits above it.

@chatgpt-codex-connector chatgpt-codex-connector Bot 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.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: a027586a01

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread packages/opencode/src/altimate/workspace/engine-overlay.ts Outdated
@ralphstodomingo

Copy link
Copy Markdown
Contributor Author

@codex review against the numbered claims and the disclosed residuals in the review-log comment on this PR: report only a reproducible trace that violates a numbered claim. Instances of the disclosed residuals are not findings. A round with no claim violation ends review. This PR is stacked on #1511: review only the commits above it.

@chatgpt-codex-connector chatgpt-codex-connector Bot 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.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 444bfd6a96

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread packages/opencode/src/altimate/workspace/engine-telemetry.ts
@ralphstodomingo

Copy link
Copy Markdown
Contributor Author

@codex review against the numbered claims and the disclosed residuals in the review-log comment on this PR: report only a reproducible trace that violates a numbered claim. Instances of the disclosed residuals are not findings. A round with no claim violation ends review. This PR is stacked on #1511: review only the commits above it.

@chatgpt-codex-connector chatgpt-codex-connector Bot 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.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: c427a1b20a

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread packages/opencode/src/altimate/workspace/engine-telemetry.ts Outdated
@ralphstodomingo

Copy link
Copy Markdown
Contributor Author

@codex review against the numbered claims and the disclosed residuals in the review-log comment on this PR: report only a reproducible trace that violates a numbered claim. Instances of the disclosed residuals are not findings. A round with no claim violation ends review. This PR is stacked on #1511: review only the commits above it.

@chatgpt-codex-connector chatgpt-codex-connector Bot 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.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: cd10a15c49

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread packages/opencode/src/altimate/workspace/engine-telemetry.ts Outdated
@ralphstodomingo

Copy link
Copy Markdown
Contributor Author

@codex review against the numbered claims and the disclosed residuals in the review-log comment on this PR: report only a reproducible trace that violates a numbered claim. Instances of the disclosed residuals are not findings. A round with no claim violation ends review. This PR is stacked on #1511: review only the commits above it.

@chatgpt-codex-connector chatgpt-codex-connector Bot 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.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: a8f283aab2

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread packages/opencode/src/altimate/workspace/engine-telemetry.ts Outdated
@ralphstodomingo

Copy link
Copy Markdown
Contributor Author

@codex review against the numbered claims and the disclosed residuals in the review-log comment on this PR: report only a reproducible trace that violates a numbered claim. Instances of the disclosed residuals are not findings. A round with no claim violation ends review. This PR is stacked on #1511: review only the commits above it.

@chatgpt-codex-connector chatgpt-codex-connector Bot 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.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 87721c569a

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread packages/opencode/src/plugin/tui/altimate/workspace.tsx
Comment thread packages/opencode/src/altimate/workspace/engine-telemetry.ts Outdated
@ralphstodomingo
ralphstodomingo force-pushed the feat/workspace-engine-telemetry branch from 87721c5 to 589f845 Compare October 15, 2026 16:04
@ralphstodomingo

Copy link
Copy Markdown
Contributor Author

@codex review against the numbered claims and the disclosed residuals in the review-log comment on this PR: report only a reproducible trace that violates a numbered claim. Instances of the disclosed residuals are not findings. A round with no claim violation ends review. This PR is stacked on #1511: review only the commits above it.

@chatgpt-codex-connector chatgpt-codex-connector Bot 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.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 589f8451b0

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread packages/opencode/src/altimate/workspace/engine-offer.ts Outdated
@ralphstodomingo

Copy link
Copy Markdown
Contributor Author

@codex review against the numbered claims and the disclosed residuals in the review-log comment on this PR: report only a reproducible trace that violates a numbered claim. Instances of the disclosed residuals are not findings. A round with no claim violation ends review. This PR is stacked on #1511: review only the commits above it.

@chatgpt-codex-connector chatgpt-codex-connector Bot 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.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: f9c1531ce1

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread packages/opencode/src/plugin/tui/altimate/workspace.tsx
@ralphstodomingo
ralphstodomingo force-pushed the feat/workspace-engine-telemetry branch from f9c1531 to 4c68447 Compare October 15, 2026 16:44
@ralphstodomingo
ralphstodomingo force-pushed the feat/workspace-usage-telemetry branch from 37563d1 to 3ce788b Compare October 15, 2026 17:42
ralphstodomingo and others added 13 commits October 16, 2026 01:42
Attach outcomes, the install prompt and what the user did with it, the
precedence snapshot, refusals of datamate_manager and engine errors, each
reported once per session when it changes.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_011AhtJPr3nmT1Po92ZQk4VE
The precedence row summed served capabilities; it now reports the registry
connections whose type the engine serves, the count the inventory line uses,
and re-reports when that count moves.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_011AhtJPr3nmT1Po92ZQk4VE
…hat rejects

The in-session retry records a transient connect-failed before the real
outcome; it no longer reports, and the next settled outcome is compared
with the last reported one. A throw past installEngine's result now tracks
the same failure rows as a reported failure.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_011AhtJPr3nmT1Po92ZQk4VE
Rows name their session and workspace explicitly; shown is reported by the
surface that rendered the offer; a retry add that throws settles as a
failure; turn-hook attach errors are tracked; dedupe signatures cover the
escape hatch and extensions; the registry is read only for an enabled
snapshot.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_011AhtJPr3nmT1Po92ZQk4VE
…ate's add

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_011AhtJPr3nmT1Po92ZQk4VE
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_011AhtJPr3nmT1Po92ZQk4VE
…ow names no workspace

`confirmedCopy` writes and reads back; the dialog tracks `copied` only when the clipboard then holds the command. `precedenceEvent` sets `workspace_id` explicitly (undefined when unbound and unlinked), as the attach row does.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_011AhtJPr3nmT1Po92ZQk4VE
The offer command carries the offer's telemetry fields and the server's node major (`arguments`, JSON); `run --attach` reports `shown` with surface `bus` from them when it prints the line. The server's publish is not a display.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_011AhtJPr3nmT1Po92ZQk4VE
@ralphstodomingo
ralphstodomingo force-pushed the feat/workspace-engine-telemetry branch from 4c68447 to bb184e9 Compare October 15, 2026 17:43
@ralphstodomingo

Copy link
Copy Markdown
Contributor Author

@cubic review

@cubic-dev-ai

cubic-dev-ai Bot commented Oct 15, 2026

Copy link
Copy Markdown

@cubic review

@ralphstodomingo I have started the AI code review. It will take a few minutes to complete.

@cubic-dev-ai cubic-dev-ai Bot 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.

All reported issues were addressed across 17 files

Reply with feedback, questions, or to request a fix.

View guided diff | Turn on auto-fix | Re-trigger cubic

Comment thread packages/opencode/src/altimate/workspace/engine-offer.ts Outdated
Comment thread packages/opencode/src/altimate/workspace/engine-telemetry.ts
Comment thread packages/opencode/src/plugin/tui/altimate/workspace.tsx Outdated
The bus offer carries the offer's fields only, so publishing no longer awaits `node --version` ahead of the turn boundary; the printed-offer row has no node fields. `confirmedCopy` returns false without a writer, whatever the clipboard holds.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_011AhtJPr3nmT1Po92ZQk4VE

This branch has not been deployed

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

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant