feat(claude-do): „Claude Help Me"-Button: Claude-Session zur Setup-Fehlersuch
Der Button, der aus „Problem erkannt" ein „Problem gelöst" macht: startet eine interaktive Claude-Session, die dem Nutzer beim Einrichten hilft. ## Warum externes Terminal Der ConPTY-Stack (`PtyTerminalSession`, `ConPtyPaneView`) liegt in `ClaudeDo.Ui` und ist Avalonia — der Installer ist WPF und referenziert nur Data/Releases/Localization. Beim Fresh Install sind `app\`/`worker\` außerdem noch n ClaudeDo-Task: 4e196058-38a3-404f-9862-4cb0e90195da
This commit is contained in:
@@ -128,16 +128,11 @@ The Apps & Features uninstall string and "Rerun Installer" both point at `<Insta
|
||||
|
||||
## Environment Checks
|
||||
|
||||
> **Merge status (2026-08-05): not yet on `main`.** The `Checks/` folder, `SystemCheckPage`,
|
||||
> and `ExecutableResolver` described below exist only on unmerged task branches
|
||||
> (`claudedo/06aca9b3afec4b939f59b627bfe21737` for the Installer side,
|
||||
> `claudedo/40272c0bb3b14562b59c022d09c382b6` for the `ClaudeDo.Worker` wiring). Build/test
|
||||
> verification for this section was done against a local scratch integration of both, not
|
||||
> against this repo's actual `main`. Merge them (or re-derive equivalent commits) before trusting
|
||||
> this section against the checked-out code. See `docs/open.md` for the outstanding gap this
|
||||
> leaves (`Checks/` and `SystemCheckPage` are real, but the "Claude Help Me" button and the
|
||||
> Config-mode Diagnose section described as follow-ups were never implemented — both follow-up
|
||||
> tasks blocked on this same missing merge and shipped no code).
|
||||
> **Merge status (2026-08-06): `Checks/`, `SystemCheckPage`, `ExecutableResolver`, and the
|
||||
> "Claude Help Me" button below are on this branch.** The 2026-08-05 note about two unmerged
|
||||
> task branches applied to an earlier state; the "Claude Help Me" button follow-up has since
|
||||
> landed (see below). The Config-mode Diagnose section in `SettingsWindow` is still **not**
|
||||
> implemented — see `docs/open.md`.
|
||||
|
||||
`Checks/` holds one `IEnvironmentCheck` per concern, run in parallel by `EnvironmentCheckService.RunAllAsync`:
|
||||
|
||||
@@ -169,8 +164,18 @@ on page entry (`LoadAsync`, guarded against double-entry). "Next" is disabled vi
|
||||
subscribes to `PropertyChanged` on the current page so a live recheck can flip it back. A "Recheck"
|
||||
button re-runs `EnvironmentCheckService.RunAllAsync` (disabled while already running).
|
||||
|
||||
**Not implemented (see merge-status note above):** a "Claude Help Me" button that launches an
|
||||
external terminal with a live `claude` session for setup troubleshooting, and a Diagnose section
|
||||
in `SettingsWindow` (Config mode) that re-runs the same checks against the installed configuration.
|
||||
Both were speced as follow-up tasks; both blocked before writing any code because their prerequisite
|
||||
(this section) wasn't on `main` yet.
|
||||
**"Claude Help Me" button** (`Core/ClaudeHelpLauncher.cs`) — a second footer button next to
|
||||
"Recheck", enabled only when `claude-cli` is `Ok` and `claude-auth` is not `Failed` (`Unknown`
|
||||
stays enabled — an indeterminate login state shouldn't block the one feature that could help
|
||||
diagnose it). `BuildReportAsync` renders all check results (Id/Severity/Status/Message table,
|
||||
plus the full `Detail` of any `Failed` check) and system info (OS, `dotnet --list-runtimes`,
|
||||
resolved `git`/`claude` messages, planned install dir/ports) into
|
||||
`%TEMP%\claudedo-setup-diagnose.md` — English and hardcoded (an AI assistant reads it, not the
|
||||
user) and deliberately excludes credentials/tokens/env-var dumps. `LaunchTerminal` then opens
|
||||
`wt.exe -d %TEMP% cmd.exe /k <claude> <prompt>` (or `cmd.exe /k <claude> <prompt>` if `wt.exe`
|
||||
isn't resolvable) via the injectable `IProcessLauncher`, pointing the initial prompt at that
|
||||
report file. Errors from either step surface as `ClaudeHelpError` on the page, never an
|
||||
exception.
|
||||
|
||||
**Not implemented:** a Diagnose section in `SettingsWindow` (Config mode) that re-runs the same
|
||||
checks against the installed configuration — still speced as a follow-up, no code yet.
|
||||
|
||||
Reference in New Issue
Block a user