Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: TMHSDigital/Developer-Tools-Directory
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: v1.7.1
Choose a base ref
...
head repository: TMHSDigital/Developer-Tools-Directory
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: v1.7.2
Choose a head ref
  • 1 commit
  • 13 files changed
  • 1 contributor

Commits on Apr 24, 2026

  1. feat: drift checker CI integration (Phase 2 Session C) (#9)

    * feat: drift checker CI integration (Phase 2 Session C)
    
    Ships the CI infrastructure for the drift checker:
    - .github/actions/drift-check composite action (reusable by
      meta-repo and tool-repo workflows, tag-pinned for consumer safety)
    - .github/workflows/drift-check.yml with path-gated push, weekly
      cron, workflow_dispatch, and pull_request triggers
    - snapshot.py sparse-checkout mode for remote tool repo reads,
      with token scrub after clone and tempdir cleanup on error
    - report/issue.py sticky-issue upsert implementing the Q1-resolved
      reopen-on-drift state machine
    - cli.py --remote / --all / --gh-token / --update-sticky-issue
    - docs/drift-check-token-setup.md token configuration guide
    
    Dogfooded via workflow_dispatch against all 9 active registry
    repos before merge (see PR body for run link).
    
    Session D will add the drift-check job to each tool repo's
    validate.yml and perform the v1.7.x signal rollout to clear
    the expected drift.
    
    See #1 Phase 2 Session C.
    
    Signed-off-by: 154358121+TMHSDigital@users.noreply.github.com
    Made-with: Cursor
    
    * fix: scrub script-dir from sys.path so cli.py does not shadow stdlib types
    
    Detected when the composite action ran on Ubuntu Python 3.11: stdlib
    enum's 'from types import GenericAlias' resolved to our drift_check/types.py
    because Python adds the script's own dir to sys.path[0] when the module
    is invoked directly. Same shadowing class as the Session A signal.py
    rename. Pop sys.path[0] before any further imports run.
    
    Made-with: Cursor
    
    * fix: use git sparse-checkout --no-cone to mix file and dir patterns
    
    Modern git (>= 2.35) defaults to cone mode which rejects file-level
    patterns. Our SPARSE_PATHS includes AGENTS.md and CLAUDE.md (files),
    which fail with 'fatal: AGENTS.md is not a directory'. Pass --no-cone
    to opt into the legacy mode that accepts file patterns. Surfaced by
    the composite action's first run on the Ubuntu runner.
    
    Made-with: Cursor
    
    ---------
    
    Signed-off-by: 154358121+TMHSDigital@users.noreply.github.com
    TMHSDigital authored Apr 24, 2026
    Configuration menu
    Copy the full SHA
    937290e View commit details
    Browse the repository at this point in the history
Loading