Repository navigation
refactor(engine): keep ops/ and traust's pending ops; delete what moved to core (XWING-2440) - #113
Merged
github-actions[bot] merged 3 commits intoOct 27, 2026
Conversation
…e what moved to core (XWING-2440) Deletes _util/, toolchain/, reporting/, compliance/, osv/, depsdev/, validation/, escaping.py, the scanner adapters other than opengrep and checkov, adapters/providers.py (register_providers), adapters/tools.py, registry/products.py and feeds.py, the bundled compliance data and gitleaks config, and their tests. The facade keeps metrics, models, adapters, sweep and portfolio: what traust's sweep stages, portfolio graph and metrics journal still call, each tagged PENDING(decision: ...). .ratchet.json drops the deleted files' entries.
|
[APPROVALNOTIFIER] This PR is APPROVED This pull-request has been approved by: smith-xyz The full list of commands accepted by this bot can be found here. The pull request process is described here DetailsNeeds approval from an approver in each of these files:
Approvers can indicate their approval by writing |
github-actions
Bot
merged commit Oct 27, 2026
4039118
into
traust-security:development
5 of 6 checks passed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Plan:
plans/traust-standardization/0-continuous-ops/in-review/17-shaun-traust-core-only.md(part)Wave 3 (traust-engine). Stacked on #112 (
test/pack-fixture-loop-tests, lane (f)'s engine PR), withdevelopment(#111) merged in. Merge #112 first.Chain: traust-core #225 / #223 / #222 / #229 → traust lanes a–e → traust#291 (lane f) → traust-engine #112 → this PR.
Scope (decided: keep what traust#291 still calls)
traust#291 keeps
traust-engineas a dependency for three ops that wait on Shaun's retire-or-port decision. So this PR deletes everything else that moved to core and keeps exactly what those ops reach. traust can still re-pin to this commit. The final engine deletions and traust's dependency drop are one follow-up after Shaun's three decisions, which is why this keeps "(part)".sweep/(ops, engine, benchmark, rule_lane, mining, calibration),corpus/resolver.py,adapters/opengrep.py,adapters/ops.pyPENDING(decision: sweep stages)portfolio/(ops, graph, parsers),adapters/checkov.py(the graph's K8s scanner)PENDING(decision: portfolio graph layers)metrics/(ops, history, spend, collect_spend, attribute_spend),registry/ops.py+models.py(engine.models.spend_row, pricing)PENDING(decision: metrics journal)engine.py(facade:ctx,metrics,models,adapters,sweep,portfolio),_ops_base.py,locations.py,storage.py,assets.py,adapters/_contract_bridge.py,data/secure-code-audit/opengrep-rules/ops/Reachability, proved: an AST import walk from traust#291's entry points (
HarnessEngine,locations.SWEEPS_REL,sweep.engine,sweep.benchmark,sweep.rule_lane,adapters.opengrep,portfolio.graph, the facade's ops) and fromops/reaches exactly the kept set. One attribute hop the import walk can't see:sweep/rule_lane.pycallsengine.adapters.rule_pack_dir()/rule_pack_allowlist_path(). Soadapters/ops.pyand the facade's.adaptersstay too, which lane (f)'s list missed. Every symbol traust#291'ssrc/uses was resolved against this branch (HarnessEngine.load()plus each facade method and module attribute).ops/imports: onlytraust_coreandops/itself. Nothing inops/imported a deleted module, so nothing had to switch.Legacy files
_util/(safe_exec,elf,redact,script_loader)ProcessRunner+ safe-exec policy, ELF fact enumerator (core #205)toolchain/adapters/gitleaks, grype, govulncheck, joern, yara, osv, osv_sbom, cloud_config, crypto_audit, crypto_probe, detection_quality, fleet_fix, compliance_sources,tools.py,providers.py(register_providers)register_*doors core calls itself. Crypto reuses core'sCryptoProbeand friendsreporting/ReportingService(#213, #215)compliance/,data/compliance/osv/,depsdev/validation/registry/products.py,registry/feeds.pyPortfolioServiceproducts /ctx.product_lookup; core feedsescaping.pydata/secure-code-audit/gitleaks-rules/,assets.default_gitleaks_config,assets.compliance_data_dirpacks/security/ContextOps.safe_exec_profile_mappyproject.tomljsonschema,referencingreporting/validate.pyimported them (tests still getjsonschemathrough core)Kept:
locations.py,_ops_base.pyandengine.py, which the brief listed for deletion. They are what the pending ops call (see Scope).Changed tests
Every changed or deleted test exercised code this PR deletes. No assertion on kept code changed.
test_adapter_contract_boundary:test_native_secret_scanner_identity_is_not_a_domain_fingerprint,test_grype_package_locations_survive_conversion,test_native_unknown_scanner_severity_cannot_be_relabelled_as_low_contract_bridgetests staytest_bundled_rule_packs:…_resolves_to_the_bundled_gitleaks_config,TestBundledGitleaksConfig::test_default_scan_reports_a_traust_detectortest_default_rule_packsruns the pack's copytest_config:test_resolve_gitleaks_config_uses_locations,…_rejects_remote_uritest_config::test_bundled_defaults_exist_on_diskdefault_gitleaks_config().is_file()line removed; the rule-pack assertion is unchangedtest_traust_engine:test_compliance_reference_data_ships_with_the_engine,test_compliance_ops_use_configured_paths,test_toolchain_ops_external_tools_from_context, the threesafe_execprofile teststest_traust_engine::test_namespace_ops_are_cached_per_enginecompliance/reporting/toolchainlines removed; the rest unchangedtests/conftest.pyunbound_safe_execmarker_util/safe_execdeletedDeleted test files (658 test functions; their code moved to core, see Legacy files)
test_adapter_observation_publication1,test_cloud_config_provider28,test_compliance_sources10,test_crypto_audit_scope4,test_crypto_probe47,test_depsdev20,test_detection_quality_sources15,test_escaping5,test_export_sarif23,test_fleet_fix_applier15,test_joern_reachability13,test_lint_threat_model41,test_native_adapter_artifact1,test_osv_api_adapter25,test_osv_client10,test_osv_sbom15,test_product_definitions22,test_redact8,test_register_providers11,test_resolve_compliance_scope15,test_review_surface_validation28,test_run_gitleaks11,test_run_govulncheck13,test_run_osv_scanner4,test_run_yara12,test_safe_exec27,test_safe_exec_wiring3,test_scanner_db_wiring10,test_script_loader1,test_threat_model_review_surfaces7,test_threat_rating20,test_tool_providers22,test_toolchain25,test_toolchain_e2e32,test_validate_report113,test_vuln_findings_baseline1. Also deleted: fixturestests/fixtures/cloud_config/andfleet_fix/(only those tests read them).Housekeeping
README (now the ops service plus the kept-for-traust table; dropped the rows for
gitleaks_config,product_definitions,sarif_tool_uriandSAFE_EXEC_DISABLED, which nothing reads any more), CONTRIBUTING (integration needs opengrep only), the package docstring, CODEOWNERS (rows for deleted files),.github/secret_scanning.yml(the gitleaks-rules path), and the pytest marker text.Behaviour changes
None to kept code.
HarnessEngineloses.compliance,.reportingand.toolchain, andContextOpslosessafe_exec_profile_map. traust#291 calls none of them.Validation
Core pin unchanged (
efd2797, ondevelopment). Pre-commit and pre-push hooks passed. I didn't watch CI.Merge order
What's left (one follow-up after Shaun's three decisions)
traust-enginefrom traust.# delete with the enginethat read deleted modules (test_adapters_core_parityreads_utiland the other adapters;test_registry_doorsreadsregistry.products). traust's own repoints are due at the same time: the SKILL.mdallowed-toolslines forpython3 -m traust_engine.reporting.render/.lint(cloud-config-audit, secure-container-audit, threat-register) and the prose namingtraust_engine.escaping.md_cell(track-findings). Those modules are gone here.Quality checklist