DeskPilot
0.3.0-preview0001
Minimum PowerShell version
7.0
Installation Options
Owners
Copyright
(c) Raimund Andree. MIT licensed.
Package Details
Author(s)
- Raimund Andree
Tags
Copilot GitHubCopilot ShellPilot Agent AI GUI AgenticOperatingModel Windows Linux macOS
Functions
PSEditions
Dependencies
This module has no dependencies.
Release Notes
## [0.3.0-preview0001] - 2026-07-09
### Added
- **Automatic update checks with a consent-gated in-app update.** DeskPilot now
polls the PowerShell Gallery for a newer release in the background (every 5
minutes by default, configurable in **Settings → Engine & data → Updates**, plus
a manual **Check for updates** button) and, when one is found, shows a dismissible
banner in the UI. Clicking **Update now** installs the newest DeskPilot **and**
ShellPilot into the CurrentUser scope, then **force-reloads ShellPilot live in the
Engine Runspace** so the Engine update takes effect immediately; DeskPilot's own
host code can't hot-swap in-process, so a one-click **Restart DeskPilot** relaunch
applies it (a fresh process imports the updated modules, keeping your
Conversations). Full releases are offered by default; an
opt-in **Include preview releases** setting also considers previews, and updating
DeskPilot to a preview accepts a preview ShellPilot too — otherwise both are
pinned to stable. The check is fail-silent and never blocks serving (it runs in a
background job), and the notice is web-UI only (no console output). New
`GET /api/update`, `POST /api/update/check`, `POST /api/update/install`, and
`POST /api/update/restart` routes; new `updateCheckIntervalMinutes` and
`updateIncludePrereleases` Settings; new `Get-DpUpdateStatus`,
`Invoke-DpSelfUpdate`, `Get-DpUpdatePayload`, `Update-DpUpdateCheckState`,
`Update-DpEngineModule` (live Engine reload) and `Restart-DpHost` (relaunch)
helpers (replacing the launch-only, console-only `Get-DpUpdateNotice`); +20 unit
tests.
- **DeskPilot version shown in the sidebar corner.** The running version (from
`GET /api/health`) now appears as a muted `DeskPilot vX.Y.Z` line in the
bottom-left of the sidebar, so the installed build is always visible at a glance
(and easy to quote alongside the update banner).
- **Set up CopilotAtelier from the Agent menu.** The Agent dropdown has a new
**Set up CopilotAtelier…** action that provisions the
[CopilotAtelier](https://github.com/raandree/CopilotAtelier) customization set —
the curated agents, skills, instructions and prompt files that feed the very
menu it lives in. Because CopilotAtelier is a repository rather than an
installable module, DeskPilot downloads it (a zip of the `main` branch over
HTTPS from the fixed first-party URL, extracted under the data directory) and
runs its `Setup-CopilotSettings.ps1`, which links
`~/.copilot/{agents,instructions,skills,prompts}` to a synced copy. It is
deliberately **not a one-click action**: choosing the menu item first opens a
consent dialog that spells out exactly what the script changes (the `~/.copilot`
junctions, VS Code `settings.json`/`keybindings.json`, and the
`COPILOT_ALLOW_ALL` user environment variable) before anything is downloaded or
run, and the script then runs in a visible PowerShell console the user drives so
its own safety prompts (OneDrive account choice, replacing a non-empty folder)
work. Windows only — the script uses NTFS junctions; on other platforms the
files are fetched for a manual run. New `POST /api/atelier/setup` route and
`Get-DpAtelierSource` / `Invoke-DpAtelierSetup` helpers (+4 unit tests).
- **The Agent list now refreshes without a restart.** Agents that appear after
startup — most notably from the new CopilotAtelier setup, which runs in a
separate console — now show up in the Agent menu on their own. The SPA
re-checks the list on a short interval and whenever the window regains focus or
the tab becomes visible (so returning from the setup console refreshes it), and
`GET /api/agents` now adopts the conventional `~/.copilot/agents` folder the
moment it exists even if it was absent at startup (new `Resolve-DpAgentsRoot`
helper), so a selected Agent also reaches the Turn. Previously the Agents folder
was resolved once at startup, so a freshly-created `~/.copilot/agents` (e.g. the
CopilotAtelier junction) stayed invisible until DeskPilot was restarted. Polling
was chosen over a server-side folder watcher to fit the single-threaded,
no-persistent-SSE Host Server. (+3 unit tests.)
- **Publishable from the PowerShell Gallery, with the web UI bundled.** The
DeskPilot web UI now ships inside the module (ModuleBuilder `CopyPaths`), so
`Install-Module DeskPilot; Start-DeskPilot` serves the full interface from the
installed module with no build step and nothing extra to download. The shipped
`Start-DeskPilot` resolves its assets internally (`$PSScriptRoot/web`) — the
public `-WebRoot` parameter is gone — and fails fast with a clear message if the
bundle is missing or incomplete; a source checkout and the tests serve
`source/web` via the `DESKPILOT_WEB_ROOT` environment variable so UI edits still
hot-reload without a rebuild. ShellPilot stays resolved at runtime by
`Resolve-DpEngineModule` (not a hard manifest dependency, so import never fails
when the engine is absent), and the manifest metadata (author,
project/license/icon URIs, description, tags) is filled in for the Gallery
listing. A fail-silent
launch-time check reports when a newer DeskPilot is available on the Gallery.
Added an MIT `LICENSE`, Gallery/CI README badges, a new `Get-DpUpdateNotice`
helper, and web-asset guard tests (bundle presence, Linux case-sensitivity of
asset references, and a no-secrets scan). The `web/` folder was relocated to
`source/web/`.
- **Persistent memory (DeskPilot learns who you are).** DeskPilot now carries
durable memory across conversations, injected into every turn. Two parts: a
**User profile** — the note you write about yourself (the existing preferences,
now framed as your profile, up to 8,000 characters) — and a new agent-curated
**Agent memory** — durable, declarative facts the agent keeps about you and your
environment (conventions, tools, observed preferences, lessons), up to 12,000
characters. Both are shown as fenced *reference notes* in the system prompt so a
recalled fact is never mistaken for a new instruction. The agent keeps its memory
up to date two ways: **automatically** (a throttled, best-effort background step
after some turns — default on, announced with a toast, one toggle to disable) and
**manually** (an "Update from this conversation" button). Learning writes facts
only, never secrets or one-off task state, and never changes your visible
messages. Manage it all in **Settings → Memory**: view, edit, or clear either
store, with a live character/budget count. New endpoints `GET`/`PUT /api/memory`
and `POST /api/memory/learn`; new helpers `Get-DpMemoryLimits`,
`Import-DpMemoryStore`, `Save-DpMemoryStore`, `New-DpMemoryPrompt`,
`ConvertFrom-DpMemoryResult`, `Get-DpMemoryPayload`; a new `agent-memory.json`
store and a `memoryLearning` setting (+17 unit tests).
- **Automatic conversation compaction (Memory & context).** When a conversation
fills most of the model's context window, DeskPilot can now summarise its earlier
turns automatically so it keeps working instead of overflowing — the same
summarise-and-keep-recent **Compact** it already offered, run for you after a turn
once the context passes a threshold you set. Your visible messages are always
kept, and every automatic compaction is announced with a toast. New **Memory &
context** settings: an on/off toggle (default **on**), a **Compact when context
reaches** percentage (50–95, default 80), and **Recent messages to keep in full**
(2–100, default 4). The same keep-recent setting now also drives the manual
Compact action. No new endpoint — auto-compaction reuses
`POST /api/conversations/{id}/compact`. The Session Info panel shows a one-line
indicator when auto-compaction is on. (+6 unit tests.)
- **Richer Usage panel.** The credits/usage popover now shows the **tokens in /
tokens out** split (prompt vs. completion) for both the session and all-time
counters, a **Top models** list for the session (ranked by tokens), and the
credits-per-day chart gained a **30-day** range alongside 7d and 14d. All from
data already tracked — no extra cost or Engine change.
- **Session info + Compact conversation (like GitHub Copilot).** Each conversation
now has a **Session Info** panel — opened from a glanceable **context meter**
pill in the top bar or the **⋯** menu — showing the conversation's accumulated
cost (credits and $) and turn count, and a **Context Window** gauge: how much of
the model's context window the last turn used, with a hatched *reserved for
response* tail and an estimated split into **Messages** vs. **System + tools**.
The context figure is measured exactly from the Engine's reported `promptTokens`;
the per-part breakdown is a labelled client-side estimate. A **Compact
conversation** button summarises the earlier turns into a short briefing so
future turns send far fewer tokens — your visible messages stay intact; only what
is replayed to the model shrinks. New endpoint
`POST /api/conversations/{id}/compact` (runs a pure-reasoning turn with all tools
disabled) and a new `compactedUtc` conversation field. New helpers
`New-DpCompactionPrompt`, `ConvertFrom-DpCompactionResult`, and
`Compress-DpConversationHistory` (+16 unit tests).
- **A richer conversation menu.** The per-conversation **⋯** menu is now grouped
into clear sections with several new actions: **Open in new window** (opens the
conversation in a separate browser window via a `/?c=<id>` deep link),
**Duplicate** (an independent copy of the title, messages, and history),
**Mark as unread** / **Mark as read** with an unread dot, a bold title, and a
**Mark N as read** control under the list, an optional **Colour** label from a
fixed palette (shown as a dot on the row), **Copy transcript** (the Markdown
transcript straight to the clipboard), and **Details** (a read-only popover with
the created/updated times, messa
FileList
- DeskPilot.nuspec
- DeskPilot.psd1
- web\index.html
- web\assets\app.js
- web\assets\logo-mark-dark.png
- web\assets\logo-mark.png
- web\assets\markdown.js
- web\assets\logo-full-dark.png
- DeskPilot.psm1
- web\assets\logo-full.png
- web\assets\styles.css
Version History
| Version | Downloads | Last updated |
|---|---|---|
| 0.3.0-previe... (current version) | 6 | 7/9/2026 |
| 0.2.0 | 5 | 7/9/2026 |
| 0.2.0-previe... | 3 | 7/9/2026 |
| 0.2.0-previe... | 5 | 7/9/2026 |
| 0.2.0-previe... | 5 | 7/9/2026 |
| 0.2.0-previe... | 9 | 7/9/2026 |
| 0.2.0-previe... | 7 | 7/8/2026 |