Repository navigation
Retain copyright fixes and protect live CSS - #53
Coding-Dev-Tools wants to merge 32 commits into
Conversation
…aceful import fallback - Remove revenueholdings-license>=0.1.0 from required dependencies - Add license optional-dependencies group with revenueholdings-license - Make require_license() import conditional: try/except ImportError - On ImportError, define no-op require_license() and print warning - Fixes CI breakage caused by revenueholdings-license not on PyPI (COM-79, COM-82, COM-83)
# Conflicts: # pyproject.toml # src/deadcode/cli.py
docs: add AGENTS.md
…h graceful fallback)
…s Revenue Holdings / stale 2026 year); W-directed fleet-wide pass
…ssors Detect and treat `styles.card` / `styles['card-hover']` (the canonical Next.js/React CSS-module consumption pattern) as used classes. Previously every *.module.css class was reported as orphaned and marked removable=True, which could delete live styles. Bracket accessors are recognized and non-module object access (util.foo) is not over-matched. Adds TestCSSModuleUsage regression tests; all 116 tests pass, ruff clean. Co-Authored-By: cowork-bot <cowork-bot@users.noreply.github.com>
The previous SHA 34e1148 was a v6-era PR commit, not the v4 tag. GitHub Actions could not resolve it, causing zero-step CI failures. The correct v4 tag SHA is 11d5960a326750d5838078e36cf38b85af677262.
…ot a valid ref)
…e needs local repo)
Validated local candidate: 57daaacaffc6dfed6cfc4458edc6e2e889c138c1 - 57daaacaffc6dfed6cfc4458edc6e2e889c138c1 fix(scanner): preserve module styles and enforce project boundary
Validated local candidate: 33b48f9efde1ecd6207aea0fca07cd6b4560bb2e - 33b48f9efde1ecd6207aea0fca07cd6b4560bb2e fix(cli): validate remove target and organize imports
Automated Code ReviewRuff lint: 0 issue(s)Ruff format: CleanSecret detection: 0 potential secret(s)Verdict: PASS Automated by Coding-Dev-Tools/.github reusable workflow. |
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: bd6773499f
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 986f21ab1b
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 4fcf543057
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
Collect class evidence from a conservative runtime view while preserving contextual value syntax, template expressions and stylesheet import scope. Keep raw symbol analysis intact and cover both original review findings plus independent release-blocking boundary controls. Align the existing Python 3.10 dev tomli dependency with the lock metadata without changing package versions or artifacts.
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 6ce8439091
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
Read class property and assignment targets through code tokens, retaining literal values and conservative dynamic or compound writes without interpreting comparisons or JSX attributes as assignments. Keep closing JSX tags, fragments and generic self-closing delimiters from swallowing later module references as regex bodies. Add94 source and actual-removal controls while preserving all473 prior cases.
Protect live CSS while distinguishing TypeScript declarations from runtime usage. The scanner retains classes assigned through DOM className properties, including bracket and comment-separated writes, and keeps CSS when a dynamic value is uncertain. Adjacent JSX closing tags no longer hide later runtime class bindings. Type-only declarations are excluded from CSS usage without changing the raw import/export analysis or weakening stylesheet and unknown-binding safeguards.
Preserves the reconciled branch history, copyright fixes, original tests and package policy. The lockfile retains the two missing declared development edges added in the earlier correction; package versions, source URLs and hashes are unchanged.
Validation: 567 tests passed on each Python 3.10–3.13 with zero skips; all 473 previously qualified cases remain intact. The genuine TypeScript compiler oracle passed 232 cases, plus 21 JSX cases checked against React JSX emission. Independent checks passed 47 scan/removal cases and 16 actual JavaScript assignment fixtures. Lint, formatting, frozen lock and dependency checks, native package builds, strict Twine, wheel-from-sdist and isolated installed CLI/removal checks passed. The 94 new regressions reproduced 76 failures on the previous published source before the fix.
The qualified source is 59b6937 (tree d0656a92026b8cdb7d3d0b944a2d12e54e40e5b7). Required independent review remains a protected-branch merge hold.