Repository navigation
[4/7] feat: explain session activity, usage and attention - #134
BIackFIame wants to merge 47 commits into
Conversation
|
@codex review Please review this PR for correctness, regressions and security issues. Review only; post findings on GitHub without changing code. This is part 4/7 of a cumulative series. Focus on changes introduced after predecessor |
…cklog/1-orchestration
|
@BIackFIame, we are rejecting this PR in its current form and closing it following the maintainer's local DEV acceptance. The reasons are the same product and design concerns already explained for #132 and #137: the added interface does not follow CanvasTTY's design contract and adds too much harness administration to the default canvas experience. Related feedback: Design and interactionThe maintainer inspected the session-activity interface in the combined Linux DEV build and rejected its composition and complexity. This is a product acceptance decision, not a claim that every operating system has the same rendering failure. There are concrete implementation problems behind that feedback. The inherited Please use the existing UI contract, components, theme tokens, typography, icons and interaction patterns for any future contribution. Recoloring this inspector will not solve the larger UX problem: normal canvas use should not require understanding another set of event filters, usage categories, price settings and notification channels. Optional diagnostics need a clear purpose, a discoverable entry and deliberate opt-in. Scope and maintenanceThe #133-to-#134 layer includes durable timelines, searchable terminal-output storage, Markdown session reports, usage attribution and pricing, attention preferences and loop-detection integration. It also changes provider runtime hooks, the native helper, terminal/session lifecycle, redaction, worker processes, IPC/preload and companion presentation. This is a substantial set of independently reviewable concerns, not just an additional report screen. The architectural overlap matters even when Git can combine the files. Other contributions use the same terminal input/output, session lifecycle, plugin-event and usage paths. Each additional observer, persistent history and completion report must preserve ordering, cancellation, secret handling and restart behavior. A successful build or historical CI run does not establish product acceptance or compatibility across those combined paths. Requested directionPlease move the activity dashboard, report presentation, usage/pricing administration, notification configuration and loop-analysis workflow into an optional CanvasTTY plugin. Start with the existing supervised services, session events, permission-controlled screen access and plugin UI contributions described in ARCHITECTURE.md. If the plugin needs an operation that those APIs cannot express, propose a narrowly scoped core extension separately, with the concrete use case, data contract, permissions, retention, cancellation and disabled-plugin behavior. Authoritative validation, secret redaction and privileged operations must remain enforced by the trusted host. Independently useful runtime or redaction fixes may be proposed as focused core PRs; they should not require accepting this entire UI and harness feature bundle. This series is cumulative. #134 includes earlier unmerged work, including the rejected #132, and later parts include #134. Please split or rebase remaining proposals so rejected functionality cannot return through another cumulative PR. Closing this PR rejects the current scope; it does not approve that scope through its successors. |
This integrates the six contributions accepted during the maintainer's DEV review, together with the maintainer's local UI and minimap fixes. Rejected orchestration features, including #133, are excluded entirely. ## Included contributions and credit - #125 by @tab11pm: read-only file cards, directory browsing, and richer Markdown/code previews. - #130 by @SaneSanders: image/material remarks and handoff to an existing agent session. - #131 by @BIackFIame: macOS clipboard/edit context menus for text fields. - #138 by @pepechka-kun: usage history, measured quota changes, local-log evidence, and explicit attribution uncertainty. - #139 by @CLOSETTTY: interactive mascots and the Codex mascot creation workflow. - #140 by @teo-nex: the macOS node-pty file-descriptor leak fix, patch delivery, and resource diagnostics. Thank you to all six contributors. Each original PR head and its author commits are retained in Git history through separate merge commits. This integration must use a merge commit rather than squash or rebase. ## Maintainer patches - Fit the minimap overview to the camera viewport and all canvas objects together, with padding; retain stable drag coordinates during a gesture. - Keep the material handoff icon fixed in the header, remove the count beneath it, and place equally sized Cancel/Send actions at the bottom right of the handoff dialog. - Split usage history into five left-side sections: conditional estimate, quotas, agents, local-log tokens, and source state. Use pages within sections to fit the window without a long scrolling report. - Resolve shared App/IPC/preload integrations while retaining the file, handoff, and usage-history flows. - Retain the approved DEV dependency set and Electron 43.7.7; reuse the matching lockfile with patch-package 8.0.1. ## Scope #132, #133, #134, #135, and #137 are not included. #136 is also excluded pending the previously requested UI/UX redesign. No commits from that cumulative orchestration series are ancestors of this branch. Material handoff in #130 does not automatically apply a saved JSON agent report to the material state; this remains the reviewed behavior. ## Validation - `VITE_BUILD_CHANNEL=DEV npm run build` passed, including the script's TypeScript checks and native-helper build. - `git diff --check` passed. - Verified that all six accepted PR heads are ancestors of the integration and all six excluded PR heads are not. - Verified that the three approved local UI/minimap implementations match the selected DEV copy. - Added minimap geometry coverage for distant camera positions and adapted usage-history fixtures for section navigation. - The maintainer manually reviewed the accepted features in the earlier combined DEV build. The final integration without #133 has not received another manual UI pass. Automated tests and macOS/Windows runtime checks were not run locally for this integration.
Summary
Part 4/7 of the CanvasTTY agent-workflow series. Durable timelines, session reports and searchable output history explain long-running work. Missing usage remains unknown; loop-detection hooks and attention events expose stalled work. Output history includes streaming secret redaction and masked worker snapshots.
Review scope and dependencies
Depends on: #133.
This is a cumulative upstream PR: GitHub's Files changed tab includes earlier unmerged parts because all PRs target upstream
main; cross-fork stacked bases are unsupported. Review this part in the isolated predecessor-to-head diff. The intended merge order follows the numbered series; do not merge a later part independently of its predecessors.The Assistant plugin supplies loop judgments. Phone transport is in the final experimental part.
Validation and current blockers
Tested feature head:
21d5c99f7957ec98ea5aa893127ec6360b6084fe. Local helpers, typecheck, build and secret audit passed; full suite: 1,968 passed, 8 skipped, zero failures. Historical fork CI passed on macOS, Linux and Windows using the exact candidate tree under a temporary workflow overlay. That overlay is not included here.Draft: merge preview against updated upstream
6faadcdcfound conflicts insrc/preload/index.ts,src/renderer/src/features/workspace/WorkspaceCanvas.tsx,src/shared/contracts.ts. These historical results do not validate a conflict-resolved integration with current main. Preserve the newly accepted material/terminal-link behavior, resolve the overlaps, and rerun checks before marking ready.Historical hidden-app evidence recorded timeline events and notification payloads; actual OS/phone delivery was not exercised. A deterministic loop fixture triggered after six denied actions, without model calls. Real-model loop detection and large-history performance remain unverified.
Series order
Parts 2–7 are cumulative Draft PRs against upstream main, with an isolated layer diff in each description. Their tested feature heads currently conflict with newer upstream changes; integration and fresh checks are required before readiness. Part 7 also retains its independent experimental acceptance gate.