tag:github.com,2008:https://github.com/johnsonlee/graphite/releasesTags from graphite2026-02-01T11:15:32Ztag:github.com,2008:Repository/1141070800/v0.1.0-beta.162026-02-01T11:19:08ZRelease v0.1.0-beta.16<p>feat: add multi-round iterative deletion to find-dead-code CLI (<a class="issue-link js-issue-link" href="https://github.com/johnsonlee/graphite/pull/25">#25</a>)</p>
<p>Add --iterate flag that enables delete-rebuild-reanalyze cycles until
<br />convergence, with --build-command for external rebuild and --max-rounds
<br />to cap iterations. Includes per-round statistics and summary reporting.</p>
<p>Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com></p>github-actionstag:github.com,2008:Repository/1141070800/v0.1.0-beta.152026-02-01T04:14:18ZRelease v0.1.0-beta.15<p>feat: add unreferenced field detection to find-dead-code CLI (<a class="issue-link js-issue-link" href="https://github.com/johnsonlee/graphite/pull/23">#23</a>)</p>
<p>Detect fields with no external FIELD_LOAD/FIELD_STORE references,
<br />with Lombok accessor linking, Spring API-aware exclusions, Jackson
<br />annotation filtering, and PSI-based source deletion for Java/Kotlin.</p>
<p>Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com></p>github-actionstag:github.com,2008:Repository/1141070800/v0.1.0-beta.142026-02-01T02:52:28ZRelease v0.1.0-beta.14<p>refactor: reduce buildGraph() from 6 view.classes iterations to 2 (<a class="issue-link js-issue-link" href="https://github.com/johnsonlee/graphite/pull/21">#21</a>)</p>
<p>Merge 6 separate process*() passes over view.classes into 2:
<br />- Pass 1 (all classes): type hierarchy + enum values
<br />- Pass 2 (filtered classes): methods + fields + endpoints + Jackson</p>
<p>Extract per-class methods from loop bodies and inline them into the
<br />2-pass structure. Document the decision not to parallelize (fastutil
<br />memory savings vs ConcurrentHashMap, shared mutable state barriers).</p>
<p>Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com></p>github-actionstag:github.com,2008:Repository/1141070800/v0.1.0-beta.132026-01-31T15:42:57ZRelease v0.1.0-beta.13<p>feat: add find-dead-code CLI command and achieve >= 98% test coverage (<a class="issue-link js-issue-link" href="https://github.com/johnsonlee/graphite/pull/19">…</a></p>
<p><a class="issue-link js-issue-link" href="https://github.com/johnsonlee/graphite/pull/19">…#19</a>)</p>
<p>Add find-dead-code CLI command with JSON output, Kover coverage, and
<br />comprehensive test coverage across all modules:</p>
<p>- graphite-core: 98.2% line coverage
<br />- graphite-sootup: 98.1% (fix ASM visitEnd() bug, remove dead code)
<br />- graphite-cli-find-args: 99.6%
<br />- graphite-cli-find-endpoints: 100%
<br />- graphite-cli-find-dead-code: 98.3%</p>
<p>Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com></p>github-actionstag:github.com,2008:Repository/1141070800/v0.1.0-beta.122026-01-30T08:04:55ZRelease v0.1.0-beta.12<p>perf: cache backward slice results in DataFlowAnalysis (<a class="issue-link js-issue-link" href="https://github.com/johnsonlee/graphite/pull/17">#17</a>)</p>
<p>When analyzing multiple argument indices per call site, the same
<br />argNodeId may be sliced repeatedly with independent visited sets.
<br />Cache results by NodeId to avoid redundant graph traversals.</p>
<p>Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com></p>github-actionstag:github.com,2008:Repository/1141070800/v0.1.0-beta.112026-01-30T04:53:25ZRelease v0.1.0-beta.11<p>Merge pull request <a class="issue-link js-issue-link" href="https://github.com/johnsonlee/graphite/pull/16">#16</a> from johnsonlee/remove/find-return-types-command</p>
<p>refactor: remove FindReturnTypesCommand superseded by find-endpoints</p>github-actionstag:github.com,2008:Repository/1141070800/v0.1.0-beta.102026-01-30T04:03:22Zv0.1.0-beta.10: docs: bump version to 0.1.0-beta.10 in README<p>docs: bump version to 0.1.0-beta.10 in README</p>
<p>Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com></p>johnsonleetag:github.com,2008:Repository/1141070800/v0.1.0-beta.92026-01-30T02:52:09ZRelease v0.1.0-beta.9<p>feat: support enum value references in enum constructor arguments</p>
<p>When one enum's constructor takes another enum constant as argument
<br />(e.g., TaskConfig.URGENT(Priority.HIGH)), the bytecode uses a getstatic
<br />field reference (JFieldRef) which was previously not tracked by the enum
<br />value extractor. The value was silently lost as null.</p>
<p>- Add EnumValueReference data class to represent cross-enum references
<br />- Track JFieldRef assignments in extractEnumValues() for enum constant
<br /> field reads (where field type == declaring class)
<br />- Handle JFieldRef in extractValueFromArg() for direct field references
<br /> in constructor arguments
<br />- Add test enums (Priority, TaskConfig, TaskConfigWithId) and test cases</p>
<p><a href="https://claude.ai/code/session_01GCAdzvUbK32TnWEKvkV7TG">https://claude.ai/code/session_01GCAdzvUbK32TnWEKvkV7TG</a></p>johnsonleetag:github.com,2008:Repository/1141070800/v0.1.0-beta.82026-01-29T23:42:43ZRelease v0.1.0-beta.8<p>Merge pull request <a class="issue-link js-issue-link" href="https://github.com/johnsonlee/graphite/pull/13">#13</a> from johnsonlee/fix/complete-constant-type-sup…</p>
<p>…port</p>
<p>fix: complete constant type support in SootUpAdapter</p>github-actionstag:github.com,2008:Repository/1141070800/v0.1.0-beta.72026-01-29T16:09:11Zv0.1.0-beta.7: docs: bump version to 0.1.0-beta.7 in README<p>docs: bump version to 0.1.0-beta.7 in README</p>
<p>Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com></p>johnsonlee