feat(recon): resolve writeup deliverables at case/path variants - #22
Merged
Conversation
reg-lab-recon matched the manifest deliverable path strictly (repo/<file>), so a writeup committed as WRITEUP.md, Writeup.md, submission/writeup.md, or "CECS 378 Lab Writeup.md" read as not-present: a false doc-✗ in FACTS.md and, worse, no body to snapshot into recon-<lab>/writeups/. In the su26 §01 Lab 2 population that dropped 5 of 24 submitters (including two top-of-class writeups) from the vault snapshot. Add resolve_doc_path(repo_root, rel_file): exact -> case-insensitive basename anywhere (shallowest wins) -> a single .md whose name contains the configured stem. Ambiguous or not-found returns the canonical path, so a genuine non-submission still records present=False. .git is never searched. Wired into recon.py's cloned-repo doc pass. Tests: 9 resolver cases (exact/case/subdir/fuzzy/root-pref/git-skip/ ambiguous/not-found/integration). Full suite green (397 passed). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_015cY2osrcunEXb5a8xtTy2V
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
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Problem
reg-lab-reconmatched the manifest deliverable path strictly (repo/<file>). A writeup committed asWRITEUP.md,Writeup.md,submission/writeup.md, orCECS 378 Lab Writeup.mdread as not-present — a false doc-✗ inFACTS.md, and (the part that bit us) no body to snapshot intorecon-<lab>/writeups/. In the su26 §01 Lab 2 population that silently dropped 5 of 24 submitters — including two top-of-class writeups — from the vault cross-reference.Fix
resolve_doc_path(repo_root, rel_file)resolves in priority order:repo/<rel_file>.mdwhose name contains the configured stem (e.g.…Writeup.md)Ambiguous (2+ fuzzy) or not-found returns the canonical path, so a genuine non-submission still records
present=False..gitis never searched. Wired intorecon.py's cloned-repo doc pass.Tests
9 resolver cases + integration; verified against the 5 real repos that exposed the bug (all now resolve; true non-submitter stays
present=False). Full suite green — 397 passed.🤖 Generated with Claude Code
https://claude.ai/code/session_015cY2osrcunEXb5a8xtTy2V