Skip to content

Retain copyright fixes and protect live CSS - #53

Merged
Coding-Dev-Tools merged 43 commits into
masterfrom
codex/deadcode-copyright-20261013
Oct 19, 2026
Merged

Coding-Dev-Tools merged 43 commits into
masterfrom
codex/deadcode-copyright-20261013

Conversation

@Coding-Dev-Tools

@Coding-Dev-Tools Coding-Dev-Tools commented Oct 13, 2026 •

Copy link
Copy Markdown
Owner

Protect live CSS while distinguishing erased TypeScript declarations from runtime usage. CSS-module references remain visible through raw JSX attributes, nested expressions, Unicode and generic components, and code following closing elements. Complete named-default import lists now retain runtime bindings through trailing commas, other specifiers, quoted export names and legal comment gaps; type-only imports and noncode keep their existing boundaries.

CSS findings now describe complete rule boundaries. Split selector headers, multiline bodies and incomplete rules remain available for manual inspection, while complete one-line rules retain safe automatic removal. Existing stylesheet ownership, shared-rule protection, computed-value uncertainty, bounded JSX work, reconciled branch history and package policy remain covered.

All three PRs (#51, #52, #53) carry ba55f44ff7259b995cfd2bf85f7f3eb3262eb3ad (tree 4382cf55bfd1797d44a7000d0edf7f3036536317).

Validation on this exact revision:

  • Local Linux Python 3.10–3.13: 717 passed on each version, zero failures, errors or skips. All 660 predecessor cases remain, with 57 additive scanner/removal regressions. Observed statement coverage is 92%.
  • Ruff, formatting, offline lock/dependency checks, one wheel/source build, Twine, private offline installation and installed CLI scan/dry-run/removal controls pass.
  • Independent scanner/removal families pass, including runtime Node controls. Separate pinned TypeScript 5.9.3 comparisons pass for 232 preserve-mode cases and 21 react-jsx cases; these are bounded syntax/emission checks, with overlapping corpora.

The two findings from the preceding revision have been fixed and their threads resolved after publication. Current hosted checks and automated review are being refreshed. Independent protected-branch approval remains required for merging into master. Native Windows/macOS acceptance remains separate from this fresh Linux qualification.

October 19 review follow-up

Static computed object keys such as ['className'], escaped keys and static template keys now preserve live global CSS through scan and removal. The correction retains existing member assignments, comment/string/type exclusions and stylesheet ownership. It adds 33 regression cases; 271 focused local tests pass. The complete hosted Python 3.10–3.13 matrices pass at b893f1dc4f21d136fd8f72bff9da3c7c13914f39; Python 3.12 reports 750 passed, zero skipped. The reported review thread is resolved. Independent approval remains required before merge.

October 19 complete-line removal follow-up

Whole-line CSS removal now requires an isolated complete class-selector rule. Sibling element/ID rules, directives, non-class selector alternatives, unrepresented complex selectors and multiline comment edges remain diagnostic-only. The guard applies to global CSS/SCSS and CSS modules. A Windows test fixture now writes exact JavaScript CRLF continuation bytes, preserving the existing case.

Validation at 42dd27b4796470807baf310fbeeabb3bbeacd3c9: 249 focused CSS tests pass. 69 new rule-boundary cases cover scan, dry run and real removal. The complete hosted Python 3.10–3.13 matrices pass; Python 3.12 reports 819 passed, zero skipped. Ruff and formatting pass. All reported threads are resolved. The owner has explicitly authorized the existing administrator review exemption for this reviewed public batch, retaining passing automated tests/security checks and zero unresolved findings as merge conditions.

Coding-Dev-Tools and others added 24 commits May 16, 2026 20:28
…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
…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.
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
@github-actions

Copy link
Copy Markdown

Automated Code Review

Ruff lint: 0 issue(s)

Ruff format: Clean

Secret detection: 0 potential secret(s)

Verdict: PASS

Automated by Coding-Dev-Tools/.github reusable workflow.

@Coding-Dev-Tools
Coding-Dev-Tools marked this pull request as ready for review October 17, 2026 13:00
@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Oct 17, 2026 •

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review ✅ Completed 2026-10-19T04:43:55.913900Z 42dd27b New commits
ℹ️ 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" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 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".

Comment thread src/deadcode/scanner.py Outdated

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 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".

Comment thread src/deadcode/scanner.py

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 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".

Comment thread src/deadcode/scanner.py Outdated
@Coding-Dev-Tools Coding-Dev-Tools changed the title Preserve local copyright metadata correction Retain copyright fixes in the reconciled scanner release Oct 18, 2026
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.
@Coding-Dev-Tools Coding-Dev-Tools changed the title Retain copyright fixes in the reconciled scanner release Retain copyright fixes and TypeScript-safe CSS scanning Oct 18, 2026

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 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".

Comment thread src/deadcode/scanner.py
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.
@Coding-Dev-Tools Coding-Dev-Tools changed the title Retain copyright fixes and TypeScript-safe CSS scanning Retain copyright fixes and protect live CSS Oct 18, 2026

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: ac562307be

ℹ️ 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".

Comment thread src/deadcode/scanner.py Outdated

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: e4000b8f39

ℹ️ 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".

Comment thread src/deadcode/scanner.py Outdated

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: ba55f44ff7

ℹ️ 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".

Comment thread src/deadcode/_typescript.py Outdated
@Coding-Dev-Tools
Coding-Dev-Tools merged commit d5d32c0 into master Oct 19, 2026
19 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants