You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Review the nanodot product design and agree on a small, testable MVP before implementation expands.
The README describes nanodot as a minimal, open-source AI assistant with persistent memory and proactive task execution. This issue turns that direction into a reviewable product scope.
The workflow and UX below are proposals for discussion. Creating this issue does not settle the MVP choice or approve every proposed feature.
Confirmed direction
Build a minimal, open-source personal agent from scratch in Python to understand its architecture.
Keep memory, task state, and execution local-first and inspectable.
Start with a native runner. Consider an adapter later; DSH and openJiuwen are candidates, with neither selected.
Support ongoing work while the host is awake and the runner is available. A sleeping or powered-off host cannot continue execution.
Keep the inference decision open: API-backed, local, or a supported combination.
Proposed MVP: a task inbox with one bounded workflow
The suggested first workflow is a read-only watch on one explicitly selected GitHub pull request.
Example user intent: “Watch this PR and tell me when the required checks pass, or when something needs my attention.”
Capture the task and show its exact target, purpose, check cadence, allowed actions, notification conditions, and stopping conditions.
Take an initial snapshot and persist the task locally.
Check again while the runner is available.
Report meaningful changes with links and evidence. Distinguish pending checks, failures, unavailable data, and a confirmed terminal outcome.
Stop on the agreed success condition, PR merge/closure, user cancellation, or an explicitly configured end condition. Surface lost access as a blocker.
This proposal is read-only: commenting, code changes, reruns, merging, and other external writes would need separate scope and approval.
A bounded paper-research task is an alternative first workflow. Choose one for the first end-to-end build. Slack integration can follow after the local task loop is proven.
Proposed user experience
Keep the interface small. It should let the user answer four questions:
Tasks: What is nanodot doing, what is it waiting for, and when will it stop? Show status, latest result, next check, blockers, and pause/resume/cancel controls.
Memory: What has it retained and why? Make retained facts visible, show their source where available, and allow correction or deletion. Avoid treating tentative model inferences as confirmed facts.
Activity: What actually ran? Show concise, timestamped checks, relevant evidence, failures, retries, and notifications without exposing secrets.
Approvals: What action needs permission? Show the proposed action, target, data being shared, and expected effect. Approval must apply to that action and scope; silence is not approval.
Decide whether the first interface is CLI/TUI or a small local web UI. A full chat interface is not a prerequisite for validating the task loop.
Reliability and safety requirements to review
Persist task configuration and progress so a restart does not lose the task.
Define recovery after sleep, restart, and interrupted checks. On waking, reconcile current state instead of replaying every missed notification.
Prevent overlapping runs of the same task and duplicate notifications for an unchanged event.
Tie PR check results to the current commit; passing checks on an older commit must not count as success for a newer one.
Define bounded retries/backoff for network failures, rate limits, and temporary errors. Make prolonged failures visible.
Preserve explicit pause/cancel state across restarts and stop scheduling completed tasks.
Keep external content as data, not authority to expand a task or grant permissions.
Separate local-first storage/execution from inference privacy. If an API model is used, clearly identify what context leaves the host.
Keep credentials out of task text, memory, activity logs, and generated summaries.
These are review requirements, not claims about existing implementation.
First workflow: PR watch or paper research? What concrete user outcome defines success? — Decided 2026-09-30: read-only GitHub PR watch.
First interface: CLI/TUI or local web UI? — Decided 2026-09-30: CLI/TUI first; local web UI deferred, core stays interface-agnostic.
Inference: API, local, or both? What is the minimum provider/model contract? — Decided 2026-09-30: API model first, behind a thin provider interface; the context-leaves-host boundary must be explicit.
Memory: what deserves durable retention, what needs explicit confirmation, and what is the retention/deletion policy? — Under dedicated design; confirmation-gated write path and provenance agreed, sub-decisions still open.
Task behavior: default cadence, retry policy, notification rules, and required stopping conditions? — Defaults proposed (poll ~5 min, backoff to 60 min), pending confirmation; notification channel still open.
Permissions: what is allowed by default, what needs approval, and how is approval recorded and invalidated when scope changes? — Decided 2026-09-30: ZCode-style — named modes with readonly default, scoped per-action approval grants, silence is never approval.
Adapter timing: what real limitation would justify adding DSH or openJiuwen after the native runner? — Decided 2026-09-30: native runner first, architecture reserves an adapter seam; trigger is execution beyond an awake host or multi-machine dispatch.
Review acceptance checklist
Agree on the primary user need and choose exactly one MVP workflow
Document the happy path, blocked path, and stopping conditions
Agree on the minimal task, memory, activity, and approval controls
Resolve the first interface and inference approach
Define local storage, privacy boundaries, credential handling, and memory correction/deletion
Define sleep/restart recovery, retry/backoff, concurrency, and notification deduplication
Record deferred features and the trigger for considering an adapter
Goal
Review the nanodot product design and agree on a small, testable MVP before implementation expands.
The README describes nanodot as a minimal, open-source AI assistant with persistent memory and proactive task execution. This issue turns that direction into a reviewable product scope.
The workflow and UX below are proposals for discussion. Creating this issue does not settle the MVP choice or approve every proposed feature.
Confirmed direction
Proposed MVP: a task inbox with one bounded workflow
The suggested first workflow is a read-only watch on one explicitly selected GitHub pull request.
Example user intent: “Watch this PR and tell me when the required checks pass, or when something needs my attention.”
This proposal is read-only: commenting, code changes, reruns, merging, and other external writes would need separate scope and approval.
A bounded paper-research task is an alternative first workflow. Choose one for the first end-to-end build. Slack integration can follow after the local task loop is proven.
Proposed user experience
Keep the interface small. It should let the user answer four questions:
Decide whether the first interface is CLI/TUI or a small local web UI. A full chat interface is not a prerequisite for validating the task loop.
Reliability and safety requirements to review
These are review requirements, not claims about existing implementation.
Open decisions
Status as of 2026-09-30 — resolutions recorded in the decision-record comment.
Review acceptance checklist
Suggested end-to-end validation if PR watch is selected