Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
15 changes: 15 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,20 @@
# Changelog

## 0.2.0 - 2026-07-31

- Adds an installable, SHA-256-locked server bridge for public X-Eve Living
Universe v0.2.2 / EveJS v0.12.3.1.
- Installs the current same-origin UI and API listener, secure `/x` link and
session flow, industrial and universe adapters, auth persistence, and chat
wiring.
- Enables native loopback use and Docker port/environment wiring while
preserving the game-port-plus-proxy Play readiness contract.
- Adds idempotent verification, automatic failure rollback, and an uninstall
path that restores the exact public baseline.
- Records focused server, live listener/static/API, package-integrity, and
clean install/rollback results; the release remains prerelease pending the
full native/Docker real-client and sustained-soak gate.

## 0.1.0 - 2026-07-31

Initial public developer handoff.
Expand Down
14 changes: 9 additions & 5 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,9 +8,11 @@ best changes are small, testable, and explicit about compatibility.
- Add live adapters for Contracts, Production, Salvage, or broader Logistics.
- Improve narrow-screen and keyboard map behavior.
- Remove or replace unused site scaffold code without breaking either build.
- Port the server reference onto the current public Living Universe release.
- Build a clean installer, rollback path, and Docker/native test matrix for
that overlay.
- Extend the current bridge with adapters for preview-only modules.
- Add the remaining Docker/native first-start, second-start, real-client, and
sustained-soak automation.
- Prepare a new hash-locked overlay when Living Universe publishes a later
release.

## Pull requests

Expand All @@ -20,8 +22,10 @@ best changes are small, testable, and explicit about compatibility.
3. Run `npm ci` and `npm run check`.
4. Add or update tests for behavior and security changes.
5. Do not commit tokens, local configuration, game stores, upstream server
trees, generated bundles, or personal deployment metadata.
trees, or personal deployment metadata. The one generated artifact that is
intentional is the versioned static UI under the bridge payload.

For server work, state the exact EveJS and Living Universe versions tested.
Do not call a reference overlay installable until it passes the gate in
For bridge changes, update the manifest hashes and repeat the clean install,
focused verification, listener smoke, and exact rollback gate described in
`docs/INTEGRATION.md`.
8 changes: 8 additions & 0 deletions Install-Server-Bridge.bat
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
@echo off
setlocal
if "%~1"=="" (
echo Usage: Install-Server-Bridge.bat C:\path\to\LivingUniverse
exit /b 2
)
node "%~dp0tools\x-command-bridge.mjs" install --target "%~f1"
exit /b %ERRORLEVEL%
68 changes: 57 additions & 11 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,11 +5,10 @@ operations screen, industrial crew controls, and a searchable universe map.

![X Command](public/og.png)

> **Development handoff:** the browser app is verified, but X Command is not
> included in the current public X-Eve Living Universe v0.2.2 release. A live
> connection requires the server bridge to be ported and packaged for that
> release. The code under `server-reference/` is a tested development
> reference, not a supported installer.
> **Current release:** v0.2.0 includes an installable server-bridge overlay for
> the public X-Eve Living Universe v0.2.2 / EveJS v0.12.3.1 release. It is an
> exact-version overlay: the installer verifies the public baseline before it
> changes anything and keeps a recoverable backup for uninstall.

## Current state

Expand All @@ -21,7 +20,9 @@ operations screen, industrial crew controls, and a searchable universe map.
| Automated interface tests | 20 passing |
| Industrial crew UI | Implemented against the documented bridge contract |
| Universe map UI | Implemented against the documented bridge contract |
| Current public Living Universe v0.2.2 | Bridge not included; live linking does not work yet |
| Server bridge for Living Universe v0.2.2 | Included as an exact-version installable overlay |
| Native listener smoke test | Passed on `127.0.0.1:26500` |
| Docker wiring | Included; requires rebuilding the local `evejs-local` image |
| Hosted community service | Not provided |

The detailed, evidence-based matrix is in [Project status](docs/STATUS.md).
Expand Down Expand Up @@ -49,6 +50,47 @@ That command lints the source, performs the production build, runs the 20
contract/rendering tests, and builds the standalone EveJS client into
`dist/evejs-client/`.

## Install the server bridge

Install the public
[X-Eve Living Universe v0.2.2](https://github.com/kaiwren986/evejs-living-universe/releases/tag/v0.2.2)
first, then stop its server and market processes. From this repository run:

```bat
Install-Server-Bridge.bat "C:\path\to\your\LivingUniverse"
```

The installer:

- accepts only the exact public v0.2.2 source baseline;
- backs up every shared file before changing it;
- installs the current static UI, API, auth store, universe and industrial
adapters, focused verifiers, and `/x` chat wiring;
- enables the loopback listener at `http://127.0.0.1:26500/` for native mode;
- exposes the same listener through Docker without making it a Play launcher
readiness requirement; and
- runs the three focused server verifiers before reporting success.

Native users can then start the server normally. Docker users must rebuild the
local image once after install:

```powershell
Set-Location "C:\path\to\your\LivingUniverse"
docker compose build init
docker compose up --detach
```

In game, type `/x` to create a short-lived, one-time character link. To remove
the bridge, stop the server and run:

```bat
Uninstall-Server-Bridge.bat "C:\path\to\your\LivingUniverse"
```

Docker users should rebuild `evejs-local` again after uninstall. See
[EveJS integration](docs/INTEGRATION.md) for configuration, security, remote
HTTPS, verification, and exact compatibility details.

## How live mode is intended to work

The current interface is designed to be bundled into the same EveJS server
Expand All @@ -62,7 +104,7 @@ and localhost HTTP are accepted; a separately hosted UI calling a different
API domain is not the current supported design.

See [EveJS integration](docs/INTEGRATION.md) for the API contract, security
rules, required wiring, and the current compatibility gap.
rules, overlay behavior, and remaining compatibility limits.

## Implemented surfaces

Expand All @@ -85,8 +127,12 @@ subset represented by the current contract.
- `app/` - interface, bridge bootstrap, and universe map.
- `evejs-client/` - standalone client entry point used by `build:evejs`.
- `tests/` - rendering, security, industrial, and universe contract tests.
- `bridge/v0.2.2-evejs-v0.12.3.1/` - installable, hash-locked server bridge
overlay and current static UI bundle.
- `tools/x-command-bridge.mjs` - install, verify, package-integrity, and
rollback command.
- `server-reference/v0.12.3.1/` - last verified server-side X Command modules
and verifiers; development reference only.
and verifiers; retained as historical development reference.
- `legacy-server/v0.12.2-patch-series/` - historical patch series; do not
apply it to v0.12.3.1.
- `docs/` - status, integration, and development guidance.
Expand All @@ -95,9 +141,9 @@ subset represented by the current contract.

X Command was designed beside
[X-Eve Living Universe](https://github.com/kaiwren986/evejs-living-universe).
That repository is the supported public Living Universe patch. Keep the two
projects separate until an X Command overlay has its own clean-install and
runtime gate.
That repository remains the supported public Living Universe patch. X Command
is distributed separately so its listener stays optional and does not alter
the Living Universe release or launcher readiness gate.

## License and independence

Expand Down
8 changes: 8 additions & 0 deletions Uninstall-Server-Bridge.bat
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
@echo off
setlocal
if "%~1"=="" (
echo Usage: Uninstall-Server-Bridge.bat C:\path\to\LivingUniverse
exit /b 2
)
node "%~dp0tools\x-command-bridge.mjs" uninstall --target "%~f1"
exit /b %ERRORLEVEL%
4 changes: 3 additions & 1 deletion app/globals.css
Original file line number Diff line number Diff line change
@@ -1,4 +1,6 @@
@import "tailwindcss";
@import "tailwindcss" source(none);
@source "./";
@source "../evejs-client";

:root {
--void: #05080a;
Expand Down
40 changes: 40 additions & 0 deletions bridge/v0.2.2-evejs-v0.12.3.1/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
# X Command server bridge 0.2.0

This overlay targets exactly:

- X-Eve Living Universe v0.2.2
- EveJS v0.12.3.1
- Windows native or Docker deployment from the public v0.2.2 package

Run the repository-root `Install-Server-Bridge.bat` with the Living Universe
install directory. The Node installer validates SHA-256 fingerprints from
`manifest.json`, backs up every shared file under
`_local/x-command/backups/`, copies the bridge modules and static UI, adds only
the required shared hooks, enables the listener, and runs the focused server
verifiers.

The overlay adds:

- the loopback HTTP listener and same-origin static UI on port 26500;
- one-time `/x` link exchange and HttpOnly session handling;
- character-scoped session, industrial, topology, snapshot, and route APIs;
- `xCommandAuth` game-store persistence;
- `/x`, `/x status`, and `/x reset` chat dispatch; and
- Docker environment and port wiring.

It does not make port 26500 part of `Play.bat` readiness. Game port 26000 and
proxy port 26002 remain sufficient, including when Docker keeps runtime
telemetry inside the container. This prevents X Command from causing a second
native server launch.

For Docker, rebuild `evejs-local` after install so the changed source and
assets enter the image:

```powershell
docker compose build init
docker compose up --detach
```

The uninstall command restores the exact backed-up source and removes only
files owned by this overlay. It refuses a modified installed bridge unless the
operator explicitly supplies `--force` to the Node command.

Large diffs are not rendered by default.

Large diffs are not rendered by default.

Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<meta
name="description"
content="X Command — capsuleer operations and empire navigation for EveJS."
/>
<title>X Command — Capsuleer Operations</title>
<script type="module" crossorigin src="/assets/index-CG2pp9Po.js"></script>
<link rel="stylesheet" crossorigin href="/assets/index-CBiB6eNy.css">
</head>
<body>
<div id="root"></div>
</body>
</html>
Loading
Loading