Skip to content

Refinement: proxy auto-detect, docs consolidation, skills & test fixes#33

Merged
xxthunder merged 32 commits intodevelopfrom
refinement
Mar 4, 2026
Merged

Refinement: proxy auto-detect, docs consolidation, skills & test fixes#33
xxthunder merged 32 commits intodevelopfrom
refinement

Conversation

@xxthunder
Copy link
Owner

@xxthunder xxthunder commented Mar 1, 2026

Summary

  • SC-008: Split monolithic docs/backlog.md into folder-based layout (docs/backlog/index.md + in_progress/, todo/, done/ folders with one file per item)
  • SC-009: Add PSScriptAnalyzer lint guard via skill update and pre-commit hook
  • SC-007: Add setup-proxy action to WSL Manager with automatic proxy detection via setProxy.ps1 library mode
  • SC-004: Consolidate WSL docs — merge DevContainer, Podman, and bug-fix guides into a single wsl-manager.md
  • SC-001: Backlog refinement — rename IDs to SC-### schema, refine stories, enable post-install integration tests for local runs

Test plan

  • Run Invoke-Pester bin/install.Integration.Tests.ps1 locally to verify tests pass without skip
  • Run Invoke-Pester tools/pslib/wsl/lib/proxy.Tests.ps1 for proxy library unit tests
  • Verify setProxy.ps1 still works standalone (non-library mode)
  • Spot-check docs/backlog/index.md links resolve to correct item files
  • Spot-check cross-references in README, development-principles, roadmap point to docs/backlog/index.md

🤖 Generated with Claude Code

xxthunder and others added 14 commits February 25, 2026 17:55
…nt (CHORE-002)

Clone-and-own: copied refinement, retrospective, and skill-creator
skills back from external repo into project. Updated refinement skill
with Step 1b (Bootstrap Backlog) and a references/backlog-format.md
that defines the complete backlog structure, entry format, and ID
conventions for greenfield projects.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Recommend symlinking Windows .gitconfig into WSL distributions
instead of duplicating settings. Document how core.sshCommand=ssh.exe
with enabled interop reuses Windows SSH keys, config, and agent.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Switch non-done backlog items from type-based IDs (FEAT-007, REFACT-006,
etc.) to sequential project-prefixed IDs (SC-001 through SC-006). Update
skills to match the new ID convention and add source comments.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Expand scope to merge wsl-devcontainer-setup.md and wsl-podman-setup.md
into a single linear workflow guide (install → user → runtime → config →
verify). Bump priority to Medium, add 10 acceptance criteria.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
…hapter (SC-004)

Rewrote wsl-manager.md from internal spec into user-facing tool guide.
Absorbed all DevContainer content from wsl-devcontainer-setup.md as a
chapter. Dropped stale internal content (phase history, checklists,
SpecKit refs). Updated README to link one WSL doc. Fixed backlog refs.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Add corporate proxy configuration story for wsl-manager with full ACs,
implementation notes, and scope decisions. Priority: Urgent.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Reads $Env:HTTPS_PROXY and $Env:NO_PROXY from the PowerShell session
and configures proxy settings inside a WSL distro across .bashrc, apt,
Docker client, and Podman (containers.conf).

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
… (SC-001)

Rework SC-007 to dot-source setProxy.ps1 as a library instead of
requiring a separate manual run. Move story to IN PROGRESS in backlog
and table of contents.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Rename the guard variable to reflect its actual purpose: exposing
setProxy.ps1 functions for library-mode consumption without executing
the main initialization logic.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Rewrite Install-WslProxy to dot-source setProxy.ps1 in library mode and
auto-detect proxy from PAC/registry. Add --remove flag to setup-proxy.sh
for DIRECT (no proxy) mode that cleans up all managed proxy configs.

- Install-WslProxy: remove ProxyUrl/NoProxy params, add PAC detection,
  credential prompting, manual fallback, and DIRECT support
- setup-proxy.sh: add --remove flag with remove_proxy_configs()
- proxy.Tests.ps1: rewrite with PAC/DIRECT/manual/credential test contexts
- wsl-manager.ps1: update menu label to "Setup proxy (corporate)"

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- wsl-manager.md: describe auto-detection workflow, remove prerequisite
  to run setProxy.ps1 first, document DIRECT/remove capability, update
  function signature
- backlog.md: check off all SC-007 acceptance criteria

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Remove CI-only skip guard and the vscode test so integration tests
run on any machine where the repo is installed via install.ps1.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@codecov
Copy link

codecov bot commented Mar 1, 2026

Codecov Report

❌ Patch coverage is 93.83562% with 9 lines in your changes missing coverage. Please review.
✅ Project coverage is 80.69%. Comparing base (a007f6c) to head (e550276).
⚠️ Report is 32 commits behind head on develop.
✅ All tests successful. No failed tests found.

Files with missing lines Patch % Lines
test/bin/testrunner.ps1 0.00% 4 Missing ⚠️
tools/pslib/wsl/lib/proxy.ps1 96.47% 3 Missing ⚠️
tools/pslib/wsl/wsl-manager.ps1 94.44% 2 Missing ⚠️
Additional details and impacted files
@@             Coverage Diff             @@
##           develop      #33      +/-   ##
===========================================
+ Coverage    77.02%   80.69%   +3.66%     
===========================================
  Files           18       17       -1     
  Lines         1628     1709      +81     
===========================================
+ Hits          1254     1379     +125     
+ Misses         374      330      -44     
Flag Coverage Δ
PS5 80.63% <93.83%> (+3.66%) ⬆️
PS7 80.69% <93.83%> (+3.66%) ⬆️

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

xxthunder and others added 9 commits March 1, 2026 20:39
…SC-007)

mkdir -p as root created ~/.config owned by root:root, which broke
systemctl --user unit discovery and prevented podman.socket from
being enabled on corporate proxy setups.

Replace mkdir -p with install -d -o -g to create directories with
correct user ownership atomically.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Align install-podman.sh with setup-proxy.sh pattern by using
BEGIN/END markers instead of grep-based append. This enables
clean removal and idempotent overwrites on re-runs.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
When NO_PROXY is already set in the environment, use its value
instead of the hardcoded "localhost,127.0.0.1" fallback. This
allows corporate environments to propagate their no-proxy lists
into WSL distributions.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
… hook (SC-009)

Add -LintOnly switch to testrunner.ps1 so the testrunner serves as the
single linting entry point. Pre-commit hook and powershell-dev skill now
use testrunner -LintOnly instead of calling PSScriptAnalyzer directly.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Replace monolithic docs/backlog.md with folder-based layout:
docs/backlog/index.md + in_progress/, todo/, done/ folders.
Each item gets its own file; status changes become git mv.
Updated all cross-references and refinement skill format reference.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Cover Invoke-SetupProxy, Invoke-SetupProxyInteractive, and the
Invoke-WslManager setup-proxy routing — including interactive
selection by number/name, error propagation, and cancellation.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Delete install-claude-code.Tests.ps1 and install-npm-global.Tests.ps1
entirely — all tests were string-matching source code patterns, not
exercising behaviour. Strip equivalent blocks from install.Tests.ps1
(Script Structure, Remote Mode Structure, CI Guards, Dot-Source
Support, JSON File Validation), keeping only the real unit tests.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
xxthunder and others added 2 commits March 2, 2026 23:22
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

chore: close backlog items (SC-004, SC-007)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

chore: close backlog items (SC-004, SC-007)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
…operly (SC-001)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@xxthunder xxthunder force-pushed the refinement branch 3 times, most recently from 0e33c4a to a9edbd4 Compare March 3, 2026 14:46
…kthrough (SC-004)

Replace Debian with Ubuntu-24.04 LTS throughout the VS Code DevContainer
setup walkthrough and troubleshooting examples. Add LTS recommendation
note at Step 1. Update clone target from debian-devcon to ubuntu-devcon.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
xxthunder and others added 6 commits March 3, 2026 21:55
- Add username/password tip and -Username/-Password CLI args to Step 3
- Rewrite apt reference as "package management (APT)" in proxy step
- Replace PowerShell ~ with $env:USERPROFILE in SSH agent snippet
- Add Step 10 listing required VS Code extensions
- Rewrite VS Code Settings step to guide through Settings UI with tables
- Move SC-010 to done

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Add polling loop after wsl.exe --terminate to confirm the distro has
actually stopped before returning. Retries up to 3 times with increasing
delays (2s, 4s, 6s) to handle the asynchronous nature of wsl.exe
--terminate, preventing race conditions in downstream operations like
Copy-WslDistro.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
…C-011)

Mask plaintext passwords in Install-WslProxy output using existing
Get-MaskedProxyUrl. Auto-terminate WSL distro via Stop-WslDistro after
successful Docker/Podman install so users don't need to restart manually.
Remove redundant restart instructions from wsl-manager callers.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
… (SC-011)

Stop-WslDistro output leaked into the return pipeline, causing
Install-WslDockerEngine and Install-WslPodman to return an array
instead of just $true.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Runner infrastructure variance caused test jobs to exceed the 15-minute
timeout. Install + dependency + coverage phases now regularly take 12-15
minutes combined.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@xxthunder xxthunder merged commit 22e923b into develop Mar 4, 2026
6 checks passed
@xxthunder xxthunder deleted the refinement branch March 4, 2026 09:47
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant