# FieldDesk

FieldDesk is a small desktop demonstration of a practical support workflow for workplaces where the person reporting a problem may not have technical training.

The operator describes what is affected, chooses who will receive the handover, runs a limited set of safe checks or selects a clearly labelled demonstration scenario, and reviews the evidence. The result can be exported as a formatted Excel workbook or as a support package containing the workbook, readable text and structured JSON raw data. Nothing is sent automatically.

## Run locally

```powershell
uv sync --all-groups
uv run fielddesk
```

The application reads the active adapter and local IPv4 configuration, checks the configured gateway, performs an allowlisted DNS lookup and tests one fixed outbound TCP endpoint. It does not scan the local network, change device settings, execute user-entered commands or collect credentials. A gateway that blocks ICMP is reported as an observation, not as proof of an outage.

## Verify

```powershell
uv run ruff check .
uv run pytest
uv run python scripts/create_validation_artifacts.py
```

The last command creates deterministic review artifacts under `phase-7/validation/fielddesk`.

## Export boundary

The formatted workbook is for people who need to review or continue the case. The JSON file is a versioned raw handover for later integration. The text file can be read without Excel. Simulated printer, Wi-Fi, terminal and sensor rows remain visibly marked in every format.

## Windows demonstration package

The reviewed package is built as a one-folder Windows application so Qt's runtime files remain explicit and easier to inspect:

```powershell
uv run pyinstaller --noconfirm --clean --windowed --onedir --name FieldDesk src/fielddesk/__main__.py
```

The Phase 7 release folder contains `FieldDesk-Windows-x64.zip`. This unsigned demonstration package is suitable for a controlled review, not unattended production deployment. A customer release still requires an agreed signing identity, installer and update policy, malware scanning, supported Windows versions, and a rollback procedure.

## Demonstration boundary

Printer, access-point, terminal, and sensor scenarios are simulated. They illustrate how a future installation could present evidence from approved device integrations. A real deployment would require an agreed asset inventory, explicit permissions, retention rules, security review, and site-specific thresholds.

## Ownership and continuation

The code is separated into domain, application, infrastructure, and presentation layers. It can live in the customer's private repository and be extended through short, testable changes. The included tests are the first release gate; packaging, signing, deployment, monitoring, and update policy must be agreed for each production environment.
