Skip to content

Review Idle watch - #1855

Merged
paseo-bot[bot] merged 3 commits into
mainfrom
submit/issue-1854
Nov 3, 2026
Merged

paseo-bot[bot] merged 3 commits into
mainfrom
submit/issue-1854

Conversation

@github-actions

@github-actions github-actions Bot commented Nov 3, 2026

Copy link
Copy Markdown
Contributor

Closes #1854. Submitted by @nathansgreen.

Ready for artifact review. The reviewer will resolve the submitted source and complete the registry listing.

Submission: submissions/1854.json.
Git references are optional. Use a supplied reference; otherwise resolve main during review. Git updates are submitted manually.

@github-actions github-actions Bot added the submission Plugin submission label Nov 3, 2026
@github-actions github-actions Bot mentioned this pull request Nov 3, 2026
2 of 9 tasks

@paseo-bot paseo-bot Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Idle watch v0.3.1 is approved, @nathansgreen. I completed the pinned registry listing with your categories and attribution, retained your description, overview and settings image, and removed the intake file. Nothing is required from you.

Review data
  • Policy: main REVIEW.md blob 3c5e763c9565b93ea33fa48c9aeb83e415c72d67. Reviewed registry head 0e622118a30dd3a1ef083e173f1b7d64c7665fcf. Read submission #1854, this PR and their current discussion. The submission author also authored the pinned source commit.
  • Artifact: root of https://github.com/heroicode/paseo-idle-watch.git, commit f2e6b6fa4ac5d283d65bf72c380fe6487ae8c076. Requested tag v0.3.1 resolves directly to that commit; manifest and package identify Idle watch 0.3.1. Fetched the exact tree without hooks/submodules; checked every archive member for confined relative paths and regular-file/directory types before extraction. Archive SHA-256 cb5842a2f3ad948b35587b2956bc1c29da5e4dfaa3fecdff60db2f2b61887f41.
  • Inspected both entries, every client/server/shared runtime module, manifest, package and lock metadata, README, shipped overview and settings image. Required entries/local imports exist. No manifest preparation command, production dependency or installation lifecycle script. Runtime external imports use Node built-ins and host-provided Paseo/React/React Native/Zod libraries. The development-only v3 lock fixes 321 package sources at registry.npmjs.org with integrity; its fsevents install-script flag does not introduce a plugin installation step. No plugin or dependency was installed, built, imported or run.
  • Activity monitoring: index.server.ts attaches on status/test RPC or turn hooks. server/monitor.ts:31-57 reads up to 200 unarchived agent summaries and provider usage through Paseo. Once attached, agents are polled every minute and usage every five minutes; turn start/end and increases in usage meters reset provider idle clocks. Settings persist through Paseo host settings; idle tracking is memory-only. No conversation content is read or sent by these paths.
  • Notifications: server/monitor.ts:93-97 sends when the configured idle condition is due and notifications are enabled; the Test notification action sends current usage regardless of that switch. server/push.ts:28-42 reads the daemon's registered push subscriptions and server ID, filters expired tokens, and POSTs tokens, alert title/body and server ID to https://exp.host/--/api/v2/push/send. Idle alerts contain provider names/times; tests add quota percentages/balances. shared/format.ts removes parenthesized account suffixes from provider names; this is pattern-based formatting, not a general guarantee of secret redaction. The documented push-token access serves mobile alerts; no unrelated credential collector or other direct HTTP destination was found.
  • Desktop execution: server/notify.ts:5-20 uses a fixed osascript notification program on macOS, passing title/body as arguments rather than interpolating them into AppleScript. Other platforms report unsupported desktop delivery while still attempting mobile push. No shell construction, eval, runtime software acquisition, arbitrary host-file write/delete or remote-code loader was found in the inspected runtime modules.
  • Listing: retained English manifest name/description, artifact OVERVIEW.md and images/settings.png. Viewed the image: it shows the matching Idle watch settings with sample provider rows. Its immutable raw-GitHub URL returns 200 and image/png. No translations or redundant registry overview/description added. The overview discloses polling limits, restart behavior, mobile token access and Expo delivery.
  • Registry changes: added heroicode/idle-watch with the exact Git pin, requested sidebar/utils categories, original submission timestamp and human attribution; removed submissions/1854.json. Only those intended files were committed and pushed without force after checking the remote head. Trusted current-main online validation passed: 464 well-formed records, one matching artifact, zero skipped. All 189 trusted registry tests passed. Exact-head CI is checked before merge.
  • Limits: static inspection only; no live macOS/mobile notification, provider usage or UI interaction test, and no exhaustive host-library audit. Mobile delivery depends on the daemon's internal token-file format and active registrations, as documented. No concrete serious safety concern or factory-policy incompatibility found. No remaining author requirement.

@paseo-bot
paseo-bot Bot merged commit d6bc9c7 into main Nov 3, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

submission Plugin submission

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Idle watch

0 participants