[WIP] Investigate fronmatter hash mismatch and add integration tests #13227
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Investigation Plan
path.resolve()creates absolute paths which break GitHub API file readerfrontmatter_hash_pure.cjsRoot Cause
The
processImportsTextBasedfunction usespath.resolve(baseDir, importPath)to compute import paths. WhenbaseDiris a relative path like.github/workflowsand we're in a working directory,path.resolvecreates an absolute filesystem path like/home/runner/work/gh-aw/gh-aw/.github/workflows/shared/gh.md.This absolute path is then passed to the GitHub API file reader, which expects repository-relative paths like
.github/workflows/shared/gh.md. The GitHub API fails to fetch the file, causing imports to be skipped, which changes the frontmatter hash.Solution
Replaced
path.resolvewithpath.joinfor import path resolution. This preserves the relative nature of paths when using the GitHub API reader.Changes Made
Fixed path resolution in
frontmatter_hash_pure.cjs:path.resolve(baseDir, importPath)topath.join(baseDir, importPath)Added integration tests in
frontmatter_hash_github_api.test.cjs:Testing
All tests pass:
frontmatter_hash_pure.test.cjs(25 tests)frontmatter_hash_github_api.test.cjs(12 tests including 2 new tests)check_workflow_timestamp_api.test.cjs(21 tests)Original prompt
💡 You can make Copilot smarter by setting up custom instructions, customizing its development environment and configuring Model Context Protocol (MCP) servers. Learn more Copilot coding agent tips in the docs.