DeskPilot.psd1

@{
    RootModule        = 'DeskPilot.psm1'
    ModuleVersion     = '0.3.1'
    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.3.1-preview0001] - 2026-08-05

### Added

- **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.

### 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'
        }
    }
}