feat(integration): add status reporting by PascalThuet · Pull Request #2674 · github/spec-kit (original) (raw)
AI review requested due to automatic review settings
Copilot AI review requested due to automatic review settings
Copilot AI review requested due to automatic review settings
PascalThuet changed the title
feat(integration): add doctor diagnostics feat(integration): add status reporting
Copilot AI review requested due to automatic review settings
Copilot AI review requested due to automatic review settings
Copilot AI review requested due to automatic review settings
…ainment
On Windows, os.readlink() (and sometimes Path.resolve()) return paths with
the \?\ extended-length prefix. Comparing such a target against a plain
project root via Path.relative_to() spuriously fails, so an in-project
dangling symlink was classified as invalid instead of missing — failing
test_status_treats_dangling_symlink_as_missing and the windows-style variant
on the Windows CI runners.
Centralize the containment check in _is_within_project() and strip the \?\ / \?\UNC\ prefix from both sides before relative_to(). Add portable regression tests for the prefix-stripping helper and the containment contract.
Co-Authored-By: Claude Opus 4.8 (1M context) noreply@anthropic.com
Co-authored-by: Copilot Autofix powered by AI 175728472+Copilot@users.noreply.github.com
A three-way merge / rebase onto main silently dropped the module-level
import pytest from test_integration_subcommand.py: main reorganized the
import block without it (using only a local import pytest as _pytest),
while this branch added top-level fixtures and pytest.skip/pytest.raises
usage. The overlapping import-hunk edits resolved by dropping the import,
breaking collection with NameError: name 'pytest' is not defined on every
runner. Re-add the import in the third-party group.
Co-Authored-By: Claude Opus 4.8 (1M context) noreply@anthropic.com
test_strip_extended_length_prefix_normalizes_windows_paths compared the
str() form of the helper's output against a hand-built string. On Windows,
pathlib renders a UNC root with a trailing separator (\\server\share\),
so the exact string match failed there (\\server\share\ != \\server\share)
even though _strip_extended_length_prefix behaves correctly — the trailing
separator is irrelevant to the relative_to containment check it feeds.
Compare Path objects (semantic equality) instead of exact strings so the assertion holds on both POSIX and Windows. No production code change needed.
Co-Authored-By: Claude Opus 4.8 (1M context) noreply@anthropic.com
The fallback _manifest_suggestion for the shared speckit manifest (used
when no usable default integration is recorded) suggested
specify init --here --force, which can trigger interactive integration
selection. For CI/agent consumers of integration status, surface an
explicit --integration <key> placeholder, matching the file's existing
<key> suggestion style.
Co-Authored-By: Claude Opus 4.8 (1M context) noreply@anthropic.com
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.Learn more about bidirectional Unicode characters
[ Show hidden characters]({{ revealButtonHref }})