Repository navigation
refactor(engine): ops/ only - delete the facade, locations and version shims (XWING-2440) - #125
Merged
github-actions[bot] merged 4 commits intoOct 28, 2026
Conversation
… (XWING-2440) traust's portfolio ops moved onto traust-core, so portfolio/ (graph, parsers, ops), the facade's .portfolio, adapters/checkov.py, storage.py, the portfolio/repo-graph location helpers, the graph/remote/s3/gcs extras and their tests go.
…resolver and the bundled rule copy (XWING-2440)
sweep/, adapters/{opengrep,_contract_bridge,ops}, corpus/ and
data/secure-code-audit/ moved to traust-core's DetectionQualityService
(or retired) and traust's sweep commands run on it; the facade loses
.sweep and .adapters, assets keeps only the engine version, and their
tests and ratchet entries go with them. Stacked on traust-engine#122.
# Conflicts: # .ratchet.json # uv.lock
…ersion shims (XWING-2440)
|
[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 28, 2026
fe9e912
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/11-consumer-adoption/11-shaun-core-api-only.md(part)Piece D of traust and traust-engine on the traust-core API only:
src/traust_enginenow holdsops/and nothing else. The facade, the location shims and the version shim are deleted. Notraust_contractsimport is left in src or tests, and.ratchet.jsonis empty.Built on lane B and lane C: this branch merges
refactor/delete-portfolio(#122) andrefactor/delete-sweep(#124) on top ofdevelopment, which already has #121 (refactor/ops-public-imports). So until those two merge, this diff also shows their changes. My own commit is the last one,2743593, after the merge commit3fc3b9d.Merge order: all lane A/B/C PRs first (#122, then #124), then this PR, then traust's
refactor/core-api-only.What changed (my commit)
src/traust_engine/engine.pyHarnessEnginefacade. Its last caller, traust's_registry.load_engine, is deleted in the traust PRsrc/traust_engine/_ops_base.pysrc/traust_engine/locations.pyLocations. traust-core'sLocationsowns themsrc/traust_engine/assets.pyharness_version(), used only fortraust_engine.__version__src/traust_engine/__init__.pyEngineLoopandPackonly.HarnessEngineand__version__are gone.ratchet.json{}: the_ops_base(contracts 1),engine(contracts 1) andlocations(contracts 1, state-file 1) entries are removedpyproject.toml/uv.locksigningextra (sigstore) and the unusedrequires_gitmarker are removedtests/conftest.pylocations.yaml,ANALYSIS_RESULTS_DIR,LAAS_TOKENand git-probe setup served deleted codetests/fixtures/{analysis-results,progress-tracker-stub,harnessing}/--core/--pack, the engine imports only core's public API, and no repo pins it any moresrc/traust_engine/storage.pywas already deleted in #122.Parity
HarnessEngine.load(config_home=…)(contractsload_context)Context.from_file/ traust'straust.context.load(). The engine service builds core'sContextfrom--core(ops/cli.py)locations.*accessors (workspace_dir,analysis_results_dir,progress_tracker_dir,rule_drafts_dir,feeds_cache_dir,findings_db,gitleaks_config_path,opengrep_rules_dir,require, …)traust_core.v1.context.Locations(same names, plusLocations.require)ContextOps(_workspace,_analysis_results,_progress_tracker)traust_engine.__version__importlib.metadata.version("traust-engine")). Nothing reads the attributeops/(EngineLoop,Pack, controller, admission, runner, shadow, cron, cli)Legacy files
engine.pyContext_ops_base.pylocations.pyLocationsresolves the same paths (coretests/v1/context/test_locations.pychecks parity with the engine)assets.py__version__duplicated package metadata and had no readerstorage.pyObjectStore)Deleted tests
tests/test_locations.py::test_analysis_results_location_reads_config,::test_unconfigured_returns_nonetests/v1/context/test_locations.py::test_locations_match_the_enginetests/test_config.py(10 tests:workspace_dir,progress_tracker_dir,rule_drafts_dir,feeds_cache_dirread/unset/fail-loud)tests/v1/context/test_locations.py::test_locations_match_the_engine,::test_require_names_the_missing_locationtests/test_config.py::test_gitleaks_config_path_reads_configtests/v1/context/test_tools.py(gitleaks config required / no local path form)tests/test_config.py::test_opengrep_rules_dir_reads_configLocations.opengrep_rulesis the fieldtests/test_config_resolution.py::test_env_var_wins,::test_default_home_used_only_when_it_exists,::test_missing_required_fails_closed,::test_optional_returns_none_when_absent(these tested contracts' resolver)tests/v1/context/test_home.py::test_the_environment_names_the_home_with_user_expanded,::test_the_default_home_counts_only_when_it_exists,::test_an_absent_required_file_names_the_home_and_its_template,::test_an_absent_optional_file_is_nonetests/test_engine_no_self_load.py::test_no_harness_load_outside_engine_classHarnessEngine: the class it guarded no longer exists. The engine's one composition root isops/cli.py(Context.from_file(--core))Changed tests
tests/test_config_resolution.py(module)Context".test_engine_ships_no_configis unchangedtests/conftest.pylocations.yaml,ANALYSIS_RESULTS_DIR,LAAS_TOKEN, git probe andrequires_gitfixture → privateTRAUST_CONFIG_HOMEonlyBehaviour changes
traust_engine.HarnessEngine,traust_engine.engine,traust_engine.locationsandtraust_engine.__version__no longer exist. traust drops its dependency on traust-engine in the companion PR, so nothing imports them.signingextra is gone. Nothing in the engine usedsigstore.Prose changes
None (no SKILL.md in this repo).
Done when (this repo)
The plan's grep also matches
traust_engine, so in this repo it hits only the engine's owntraust_engine.opsself-imports (src/traust_engine/**, tests/test_*.py), which are expected. Notraust_contractsortraust_ledgerimport is left, and noimport_module("traust_*").Quality checklist
Reviewer checks