DeskPilot.psd1
|
@{ RootModule = 'DeskPilot.psm1' ModuleVersion = '0.4.0' GUID = 'b8f3a2d1-7c4e-4a9b-9f1d-2e6c5a0b3d77' Author = 'Raimund Andree' CompanyName = 'Raimund Andree' Copyright = '(c) Raimund Andree. MIT licensed.' Description = 'DeskPilot is a local, desktop-style web UI that fronts the ShellPilot engine to give non-technical users the full GitHub Copilot agent toolset (browse, read/write files, run commands, skills, instructions) with visible permissions and honest cost - no terminal or IDE required. The web UI is bundled in the module and served on loopback; ShellPilot and a Copilot-enabled GitHub account are required.' PowerShellVersion = '7.0' FunctionsToExport = 'Start-DeskPilot' CmdletsToExport = @() VariablesToExport = @() AliasesToExport = @() PrivateData = @{ PSData = @{ Tags = @('Copilot', 'GitHubCopilot', 'ShellPilot', 'Agent', 'AI', 'GUI', 'AgenticOperatingModel', 'PSEdition_Core', 'Windows', 'Linux', 'macOS') LicenseUri = 'https://github.com/raandree/DeskPilot/blob/main/LICENSE' ProjectUri = 'https://github.com/raandree/DeskPilot' IconUri = 'https://raw.githubusercontent.com/raandree/DeskPilot/main/source/web/assets/logo-mark.png' ReleaseNotes = '## [0.4.0-preview0001] - 2026-08-06 ### Fixed - **Undoing a file now clears it from the review list.** The diff viewer kept the file list it opened with, so after you confirmed an undo the file was still listed, still showed its old diff, and still offered a second **Undo this file** for a change that was already gone. The viewer now re-reads the change set after every Keep or Undo: a file that no longer differs drops out, the selection moves to the next file, and the viewer closes when nothing is left to review. A file put back through Git also stops being reported as an unreviewed DeskPilot change. - **A model with no published rate no longer reads as free.** The engine prices a turn from a table keyed by exact model id; a model newer than that table (for example `claude-opus-5`) comes back with *no* price, and DeskPilot was showing that as a confident `$0.0000 · 0 credits` — over a million tokens could look free. Such a turn now says **cost unknown — no published rate for this model**, session and all-time totals show a `≥` prefix and count how many turns could not be priced, and the per-model list says **no rate** instead of `0 cr`. The fix for the *number* is a rate for the model in the engine''s price table; this fix is DeskPilot no longer misreporting its absence. ### Added - **The files panel is resizable.** Drag its left edge to make it as wide as you need (up to 60 % of the window), double-click the edge to snap back to the default, or focus it and use `←`/`→` — `Shift` for bigger steps, `Home` to reset. The width is remembered on this machine. - **Save all your changes at once, without knowing Git.** The Changes panel gains a **Save all…** button (also in the Branch Wizard when you have unsaved work, and in the command palette) that opens one dialog: it lists every uncommitted file with its added and removed line counts, prefills an editable one-line description, and records the lot as a single entry in the project''s history. No staging, no `git add`, no terminal — and nothing is sent anywhere until you choose **Send to server**. Saving a file also stops DeskPilot reporting it as an unreviewed change, because a file you saved is a file you reviewed. - **Let DeskPilot write the description.** A ✨ button beside the box reads your changes and suggests a one-line description, the way GitHub Copilot''s commit box does. It only ever fills the box — you read the words and decide — and it runs on your click, never on its own. - **DeskPilot now remembers what it changed until you decide.** Before every turn it records how your files looked, so the edits the agent makes stay listed as *not reviewed yet* — across a reload, a restart, and switching conversations — until you **Keep** them (accept, without committing) or **Undo** them. Undo puts a file back the way it was *before the agent touched it*, so your own earlier edits survive, and a file the agent created is removed. This is a layer above Git: "what did the agent change?" and "what is uncommitted?" are different questions and now have different answers. - **A Changes card under every new answer, with Keep and Undo.** When the agent edits files in a Git project, the answer now carries a `N files changed +A −D` summary and one row per file with its status and its own added/deleted line counts, measured against the pre-turn snapshot. The card disappears once those files are reviewed. - **Changed files are visible in the file panel, not buried in Activity.** A **Changes** panel sits directly under the Git bar with two sections — what DeskPilot changed and you have not reviewed (with **Keep all** / **Undo all**), and what is merely uncommitted — and the file tree itself is colour-coded the way an IDE explorer is: a changed file''s name takes its status colour (amber modified, green new, red deleted or conflicting) and carries a one-letter status, a folder containing changes is tinted and shows how many changed files are inside, and an unreviewed DeskPilot change carries an accent edge. - **A diff viewer.** Clicking a changed file opens a unified diff with both old and new line numbers, colour-coded additions and removals, and a file list to step through the whole change set (`↑`/`↓`). A pending DeskPilot change is shown against the pre-turn snapshot, so you see what the agent did rather than everything since your last commit. A brand-new file is shown as all additions; a binary file says so instead of showing bytes. - **A Branch Wizard for people who do not know Git.** One place to see where you are, create a branch (with the name validated in plain language before Git sees it), switch, delete (never the default branch; unmerged work needs an explicit "delete anyway"; the remote delete is a separate opt-in), merge (hands off to the existing Merge Wizard), and sync with the server — *get*, *send*, or both, including publishing a branch that has never been sent. Uncommitted work can be set aside and restored around a sync. - **A generated prompt for merge conflicts.** When the same lines were changed in two places outside the Merge Wizard, DeskPilot writes the prompt that asks the agent to resolve it, shows it for review and editing, and sends it only when you choose to. Copy and Abort-the-merge are offered alongside. - **Ask you now opens a Questionnaire wizard for related questions.** The Model can bundle up to ten questions into one in-thread flow with numbered choices, radio-style single selection, checkmarked multi-selection, conditional custom answers, previous/next navigation, progress, collapse, and close-to-Stop. Text-only questions show only a free-text field; plain Engine questions remain a one-step fallback. Answers return to the same Turn as one correlated JSON payload, and the completed Activity shows the Questionnaire title instead of protocol JSON. ### Changed - **Git can no longer hang DeskPilot.** Every Git call now reads its output asynchronously and runs with terminal prompting disabled, and networked calls (fetch, push, remote delete) carry a timeout. Previously a stalled remote or a credential prompt could freeze the single-threaded Host Server, and with it the whole UI. - The per-turn file diff moved from an inline block in the Activity panel into the new diff viewer, and the Activity panel''s "Undo file changes" button moved into the Changes card as **Undo**. ### Fixed - **The Project chip now shows the selected folder''s leaf name.** The chip sizes itself to shorter folder names, caps long names with an ellipsis, and exposes the full leaf name on hover instead of showing a stale Project name or the folder''s root. - **Stop now reacts immediately and preserves the interrupted Turn''s Usage.** Clicking Stop freezes further streamed text at once, disables the button as **Stopping…**, and cancels the Engine pipeline asynchronously so the Host Server can keep processing requests while it unwinds. The resulting stopped Message is persisted with its credits and cost. Exact Engine Usage is used when available; hard-stopped streams that never receive the provider''s final token frame show a clearly labelled input-only estimate instead of zero. - **Ask you now pauses for an in-thread answer instead of reporting that no interactive console is available.** DeskPilot captures ShellPilot''s structured `ask_user` Tool event, renders a correlated answer card, feeds the response to the waiting Engine Runspace, and resumes the same Turn. Repeated questions can form a multi-round interview, stale answers are rejected, and Stop cancels a pending question. Adds a `POST /api/conversations/{id}/question` route and focused Host Server, Engine-contract, and web-asset tests. - **The GitHub sign-in screen no longer hides the device code behind its own progress output.** The Engine writes one line per poll while it waits for you to authorise, and the sign-in panel appended every one of them, so the verification link and the user code scrolled out of the small box within seconds and the screen looked stuck. Sign-in progress is now a fixed panel: the link and the code stay pinned with a **Copy code** button, and the poll heartbeat only updates a single status line. The code step also spells out that GitHub''s password and two-factor prompts are the normal sign-in and that the device code belongs only in the **Device activation** box — pasting it into the two-factor field is rejected by GitHub. A sign-in that ends without a token now says the code may have expired instead of only "Try again". Adds a small `auth.js` browser module and one focused unit test. ' Prerelease = 'preview0001' } } } |