Skip to content

Bundle the engine launcher into source-built debug apps#8

Open
jakimoai wants to merge 1 commit into
jjang-ai:mainfrom
jakimoai:jack/debug-engine-launcher-bundle
Open

Bundle the engine launcher into source-built debug apps#8
jakimoai wants to merge 1 commit into
jjang-ai:mainfrom
jakimoai:jack/debug-engine-launcher-bundle

Conversation

@jakimoai

@jakimoai jakimoai commented Jul 11, 2026

Copy link
Copy Markdown

Summary

Bundles ExploitBotEngine into source-built debug apps so the app resolves the same resource-based launcher layout used by distributed builds.

Problem

EngineManager checks the app resources first, but script/build_and_run.sh did not copy the engine into the generated app bundle. Source builds outside the hard-coded fallback location could report Engine launch script not found.

Root Cause

The runtime launcher supported a bundled resource path while the source debug build omitted those resources.

Fix

  • Copy ExploitBotEngine into Contents/Resources/ExploitBotEngine during source debug builds.
  • Exclude local environments, caches, tests, and package metadata from the copied resources.
  • Add a focused contract test for the bundle-copy behavior.

No model generation, scheduler, cache, parser, or chat UI behavior changes.

Why This Shape

The build now satisfies the launcher contract already implemented by EngineManager, without adding another source-checkout path assumption.

App Proof

Interface / Harness Result
Source debug app build PASS
Bundled ExploitBotEngine/launch.py PASS
Bundled vmlx_engine/server.py PASS
App launcher resolution PASS: resolved the launcher inside the generated app bundle
Python runtime resolution PASS: installed vMLX bundled Python selected with all required modules
Start Engine action PASS: engine process spawned and app entered Starting... on an allocated port

The process was stopped immediately after the launch-boundary capture to avoid competing with another active local runtime session. Model load and generation are outside this packaging-only change.

Visual Proof

The source-built app's Engine settings view was captured in Starting... state after the bundled launcher resolved and the process spawned, with no launcher-not-found error.

Follow-up / Out of Scope

  • Runtime request generation is isolated in a separate change.
  • UI stream-error rendering is isolated in a separate change.

Related PRs

Tests

  • bash -n script/build_and_run.sh script/package_release.sh
  • Focused app-proof launch-lock contract tests.
  • ./script/build_and_run.sh --build-only
  • App-backed launcher resolution and process-spawn proof.

@jakimoai
jakimoai marked this pull request as ready for review July 12, 2026 05:24
jjang-ai pushed a commit that referenced this pull request Jul 14, 2026
NetworkHostEntry already carried .signing and .shares (populated by
netexec/nxc ingestion) but the row rendered only ip/hostname/os/status.
The signing state ("signed", "not required", "required") and enumerated
share list often determine the next attack path, so hiding them behind
Copy-only context menus made critical evidence undiscoverable.

Added an info button per host row that opens NetworkHostDetailSheet with:
- Header: ip + optional hostname + status pill (Pwn3d! red / else green)
- Metadata grid: ip, hostname, os, smb signing, shares, status, likely tool
- Likely-tool heuristic: snmpwalk for status=="snmp"; netexec/nxc when
  signing or shares populated; otherwise nmap + netexec/nxc
- Scrollable selectable raw-output tail from ResultsStore.rawResults
  matched by tool name

Same shape as ReconResultDetailSheet (37ef439). Web #11 and Creds #7 land
next iter.
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