Skip to content

chore(xtest): rename the hexless feature to hexless_integrity - #662

Draft
pflynn-virtru wants to merge 1 commit into
mainfrom
refactor/xtest-hexless-integrity
Draft

pflynn-virtru wants to merge 1 commit into
mainfrom
refactor/xtest-hexless-integrity

Conversation

@pflynn-virtru

@pflynn-virtru pflynn-virtru commented Oct 19, 2026 •

Copy link
Copy Markdown
Member

Renames xtest's hexless feature, which means the TDF 4.3.0 hexless integrity hashes, to hexless_integrity. Also renames skip_hexless_skew to skip_hexless_integrity_skew.

hexless is about to also describe a policy-binding option (hexless_policy_binding, see opentdf/platform#4232), so the old feature gets an unambiguous name. Behavior is unchanged:

  • The feature name changes everywhere: the feature_type literal, the platform feature set, each SDK wrapper's cli.sh supports case, the bench fixtures, otdf-local, and the perf README.
  • No alias for the old name. XT_FORCE_SUPPORTS=hexless / force-supports: hexless now fails loudly at startup instead of silently doing nothing. No other opentdf repo references it.
  • If you have SDK builds installed locally under xtest/sdk/*/dist, reinstall them after pulling. Stale cli.sh copies answer the new name as unsupported.

Merge note: if #648 merges first, rebase this PR and rename the two skip_hexless_skew calls #648 adds (git grep -n skip_hexless_skew should then find nothing).

Checks: ruff check, ruff format --check, pyright, and the offline unit tests all pass; shellcheck and shfmt are clean on the three cli.sh.

🤖 Generated with Claude Code

Summary by CodeRabbit

  • Compatibility

    • Renamed the supported feature identifier from hexless to hexless_integrity, with existing version thresholds unchanged.
    • Updated SDK capability checks, target selection, and compatibility handling to use the new identifier.
  • Testing

    • Updated integration, legacy, PQC, policy, audit-log, and round-trip test coverage to recognize hexless_integrity.
    • Revised related documentation and skip messaging for consistent feature reporting.

The 'hexless' feature, representing TDF 4.3.0 hexless integrity hashes,
is renamed to 'hexless_integrity' to avoid ambiguity with the upcoming
'hexless_policy_binding' option. This is a pure rename with no
behavioral changes.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Signed-off-by: Paul Flynn <pflynn-virtru@users.noreply.github.com>
@coderabbitai

coderabbitai Bot commented Oct 19, 2026 •

Copy link
Copy Markdown

Review in Change Stack →

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration
  • Configuration used: Organization UI
  • Review profile: CHILL
  • Plan: Advanced
  • Run ID: 768f2dc2-5ba5-474d-b062-4bf989f6eb8a
📥 Commits

Reviewing files that changed from the base of the PR and between e17816b and 12cc017.

📒 Files selected for processing: 16
  • otdf-local/src/otdf_local/config/features.py
  • xtest/fixtures/bench.py
  • xtest/perf/README.md
  • xtest/sdk/go/cli.sh
  • xtest/sdk/java/cli.sh
  • xtest/sdk/js/cli.sh
  • xtest/tdfs.py
  • xtest/test_abac.py
  • xtest/test_audit_logs_integration.py
  • xtest/test_legacy.py
  • xtest/test_policytypes.py
  • xtest/test_pqc.py
  • xtest/test_root_signature.py
  • xtest/test_tdfs.py
  • xtest/test_tdfs_units.py
  • xtest/test_zip64.py

Included review availability: This review used your included allowance. Your plan provides up to 1 included review per hour; 0 remain after this review.

📝 Walkthrough

The hexless feature name is now hexless_integrity in feature detection, SDK capability checks, compatibility gates, target selection, benchmarks, documentation, and tests. Existing version thresholds and SDK version checks remain unchanged.

Changes: Hexless integrity feature rename

Layer / File(s) Summary
Feature naming and detection
otdf-local/src/otdf_local/config/features.py, xtest/tdfs.py, xtest/sdk/*/cli.sh
The feature type, platform feature computation, registry, and SDK support checks now use hexless_integrity. Existing version checks remain in place.
Compatibility and target selection
xtest/tdfs.py, xtest/fixtures/bench.py, xtest/perf/README.md
The SDK skew helper and target selection now check hexless_integrity. Benchmark comparability and target-mode checks, plus the related documentation, use the renamed feature.
Test compatibility gates
xtest/test_abac.py, xtest/test_audit_logs_integration.py, xtest/test_legacy.py, xtest/test_policytypes.py, xtest/test_pqc.py, xtest/test_root_signature.py, xtest/test_tdfs.py, xtest/test_tdfs_units.py, xtest/test_zip64.py
Tests now use the renamed feature and skew helper. The test inputs, assertions, and other test logic remain unchanged.

Priority: ⬇️ Low

Estimated code review effort: 2 (Simple) | ~10 minutes

Change: Other

Suggested reviewers: dmihalcik-virtru

Merge Risk: ⚪ Minimal · up to 12cc0

The rename is internally consistent and does not introduce an identified merge-blocking risk.

Pre-merge checks: Passed 4 · Failed 1

Failed Failed checks: 1 warning

Check name Status Explanation Resolution
Docstring Coverage Warning Docstring coverage is 38.10% which is insufficient. The required threshold is 80.00%. Docstring coverage is scoped to functions touched by this diff. Analyzed 63 functions across 15 files. (1 skipped:… Write docstrings for the functions missing them to satisfy the coverage threshold.
Passed Passed checks: 4 passed
Check name Status Explanation
Description Check Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check Passed The title clearly and concisely describes the primary change: renaming the xtest feature from hexless to hexless_integrity.
Linked Issues check Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check Passed Check skipped because no linked issues were found for this pull request.
Full details: Docstring Coverage

Explanation

Docstring coverage is 38.10% which is insufficient. The required threshold is 80.00%. Docstring coverage is scoped to functions touched by this diff. Analyzed 63 functions across 15 files. (1 skipped: 1 unsupported.)

Resolution

Write docstrings for the functions missing them to satisfy the coverage threshold.

  • Fix all pre-merge checks with AI
✨ Finishing Touches: 💡 2
📝 Generate docstrings: 💡
  • Commit to this branch
  • Create a new PR
🛠️ Fix failing CI checks: 💡
  • Commit to this branch
  • Create a new PR
🧪 Generate unit tests (beta)
  • Commit to this branch
  • Create a new PR
  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

A rabbit checks the feature name,
The old and new now match the same.
SDKs report the renamed sign,
Tests gate their paths in orderly line.
I nibble greens and hop away.

Comment @coderabbitai help to get the list of available commands.

@sonarqubecloud

Copy link
Copy Markdown

Quality Gate Failed Quality Gate failed

Failed conditions
9.0% Duplication on New Code (required ≤ 8%)

See analysis details on SonarQube Cloud

@pflynn-virtru pflynn-virtru changed the title refactor(xtest): rename the hexless feature to hexless_integrity chore(xtest): rename the hexless feature to hexless_integrity Oct 20, 2026
@pflynn-virtru

Copy link
Copy Markdown
Member Author

@coderabbitai review

@coderabbitai

coderabbitai Bot commented Oct 20, 2026 •

Copy link
Copy Markdown
✅ Action performed

Review finished.

Note: CodeRabbit is an incremental review system and does not re-review already reviewed commits. This command is applicable only when automatic reviews are paused.

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.

1 participant