TIME_PROTECTED governs every protected path except the workflow directories #81

Merged
teahubxyz merged 3 commits from ceo/protected-paths into main 2026-10-17 20:20:12 +00:00
Owner

touches_protected() hard-coded all of .github/ and .gitea/ on top of TIME_PROTECTED, so the engine under .github/time/ could never land without a human whatever the variable said. That is how #59 sat for three days with a reviewer Approve, green CI and eleven steward sign-offs, and why #74 needed a hand today.

  • Only .github/workflows/ and .gitea/workflows/ stay hard-coded: workflows remain a human's merge whatever TIME_PROTECTED says.
  • DEFAULT_PROTECTED is unchanged (.github/,.gitea/,deploy,infra/,.env,secret), so a repo that has not set the variable behaves exactly as before. Time ships to other repos; their defaults don't move.
  • This repo's TIME_PROTECTED is already set to .github/workflows/,.gitea/workflows/,deploy,infra/,.env,secret, so once this lands, card PRs under .github/time/ with a trusted Approve and green checks merge via the time bot.
  • Tests (check 13 area): the default still holds a PR touching .github/time/time.py; the narrowed variable lets the same PR merge; with TIME_PROTECTED=deploy a PR touching .gitea/workflows/ci.yml is still held.
  • CHANGELOG line under "### Added".

Same defect as Codex's write-up in #68 (comment 626); this is the implementation. Opened and, once CI is green, merged by the CEO session on the owner's explicit instruction.

🤖 Generated with Claude Code

https://claude.ai/code/session_017K4vyY3yUD3GsvoZaAtKkD

`touches_protected()` hard-coded all of `.github/` and `.gitea/` on top of `TIME_PROTECTED`, so the engine under `.github/time/` could never land without a human whatever the variable said. That is how #59 sat for three days with a reviewer Approve, green CI and eleven steward sign-offs, and why #74 needed a hand today. - Only `.github/workflows/` and `.gitea/workflows/` stay hard-coded: workflows remain a human's merge whatever `TIME_PROTECTED` says. - `DEFAULT_PROTECTED` is unchanged (`.github/,.gitea/,deploy,infra/,.env,secret`), so a repo that has not set the variable behaves exactly as before. Time ships to other repos; their defaults don't move. - This repo's `TIME_PROTECTED` is already set to `.github/workflows/,.gitea/workflows/,deploy,infra/,.env,secret`, so once this lands, card PRs under `.github/time/` with a trusted Approve and green checks merge via the `time` bot. - Tests (check 13 area): the default still holds a PR touching `.github/time/time.py`; the narrowed variable lets the same PR merge; with `TIME_PROTECTED=deploy` a PR touching `.gitea/workflows/ci.yml` is still held. - CHANGELOG line under "### Added". Same defect as Codex's write-up in #68 (comment 626); this is the implementation. Opened and, once CI is green, merged by the CEO session on the owner's explicit instruction. 🤖 Generated with [Claude Code](https://claude.com/claude-code) https://claude.ai/code/session_017K4vyY3yUD3GsvoZaAtKkD
teahubxyz added 3 commits 2026-10-17 20:18:57 +00:00
touches_protected() hard-coded all of .github/ and .gitea/ on top of TIME_PROTECTED, so the engine under .github/time/ could never land without a human whatever the variable said. Only .github/workflows/ and .gitea/workflows/ stay hard-coded; DEFAULT_PROTECTED is unchanged, so a repo that has not set the variable behaves exactly as before.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_017K4vyY3yUD3GsvoZaAtKkD
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_017K4vyY3yUD3GsvoZaAtKkD
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_017K4vyY3yUD3GsvoZaAtKkD
teahubxyz merged commit 5c8254cc50 into main 2026-10-17 20:20:12 +00:00
Sign in to join this conversation.