Skip to content
Merged
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
48 changes: 48 additions & 0 deletions .github/workflows/training.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
name: Nightangel training verification

on:
workflow_dispatch:
schedule:
- cron: '17 6 * * *'
push:
branches: [main]
paths: ['training/progress.json']

permissions:
contents: read

jobs:
verify:
runs-on: ubuntu-latest
timeout-minutes: 90
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
with:
python-version: '3.12'
- name: Install verification dependencies
run: |
python -m pip install Pillow
python -m pip install torch --index-url https://download.pytorch.org/whl/cpu
- name: Repeat every offline test 1000 times
run: python tools/verify_1000.py --output output/githubverification
- name: Record training and verification summary
run: |
python - <<'PY'
import json,os,pathlib
out=pathlib.Path(os.environ['GITHUB_STEP_SUMMARY'])
result=json.loads(pathlib.Path('output/githubverification/1000-test-summary.json').read_text())
progress=pathlib.Path('training/progress.json')
text=f"Completed {result['completed_runs']} suite runs and {result['test_executions']} test executions.\n\n"
if progress.exists():
p=json.loads(progress.read_text())
text+=f"Latest local training report: {p.get('examples_seen',0)} examples, {p.get('updates',0)} updates, stage {p.get('stage')}.\n\n"
text+='Training runs on the owner computer. This workflow verifies code and records the last published progress.\n'
out.write_text(text)
PY
- uses: actions/upload-artifact@v4
if: always()
with:
name: nightangelverification
path: output/githubverification/
retention-days: 7
22 changes: 20 additions & 2 deletions .github/workflows/verify.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,11 @@ on:
branches: [main]
pull_request:
workflow_dispatch:
inputs:
full_verification:
description: Repeat every offline test 1000 times
type: boolean
default: false

permissions:
contents: read
Expand All @@ -22,10 +27,23 @@ jobs:
python-version: "3.12"

- name: Install test dependencies
run: python -m pip install Pillow
run: |
python -m pip install Pillow
python -m pip install torch --index-url https://download.pytorch.org/whl/cpu

- name: Run focused perception tests
- name: Run data, training pipeline, checkpoint, and perception tests
run: python -m unittest discover -s tests -v

- name: Repeat the complete suite 1000 times
if: github.event_name == 'workflow_dispatch' && inputs.full_verification
run: python tools/verify_1000.py --output output/githubverification

- uses: actions/upload-artifact@v4
if: always() && github.event_name == 'workflow_dispatch' && inputs.full_verification
with:
name: nightangelverification
path: output/githubverification/
retention-days: 7

- name: Confirm public project records exist
run: test -s README.md && test -s WORKLOG.md
5 changes: 4 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,9 @@ That workflow connects directly to the work I want to do professionally: careful
- `closed-loop`: tracks conservative visual candidates and records structured replay events.
- Browser extension and local bridge for connecting the game tab to the Python agent.
- Perception tests covering the current candidate-detection layer.
- Optional [Unsloth decision-training data preparation](docs/unsloth-decisions.md), with replay holdouts and action coverage checks. Model training and gameplay gains remain unverified.
- [Reusable training dataset](datasets/README.md): 159,890 verified examples, referenced gameplay images, preserved validation splits, provenance, and a local CPU vision/language adapter trainer. Full training is running; gameplay improvement remains unverified.
- [Nightangel training progress](training/README.md): meaningful progress recorded under the owner account, with complete repeated verification recorded in GitHub Actions.

## Verified experiment snapshot

Expand Down Expand Up @@ -68,7 +71,7 @@ Only enable live action during short, bounded tests after reviewing the captured

Meaningful sessions are recorded through small commits, dated build-log entries, and automatic test runs. The exact routine is documented in `CONTRIBUTING.md` so the public history shows evidence of real progress rather than artificial contribution activity.

Large replay frames, trained model binaries, local environments, and temporary output are intentionally excluded from version control.
Large replay frames, trained model binaries, local environments, and temporary output are intentionally excluded from version control. The [Unsloth guide](docs/unsloth-decisions.md) covers controller decisions and the broader verified human gameplay archive, with local exports and protected evaluation recordings.

## Safety and privacy

Expand Down
32 changes: 32 additions & 0 deletions WORKLOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,33 @@

This file is the public record of ongoing work. Each meaningful coding, data, training, or evaluation session should add one short entry with evidence and the next question.

## 2026-10-10 Nightangel contribution reporting

The working branch is named `nightangelflowerwin`. Added GitHub verification runs and a local reporter for meaningful daily training progress and milestones on `main`, attributed to the owner account. Reports exclude machine details and unchanged progress does not produce extra commits. The expanded suite has 26 tests; complete repeated verification is recorded in GitHub Actions. Model training remains local and gameplay validation remains unfinished.

## 2026-10-10 - Complete reusable corpus and repeated verification

- Changed: publish a portable corpus reader, complete CPU vision/language LoRA trainer, checkpoint publication guard, dataset section, and repeatable 1,000-run verifier. Export every final eligible example and original referenced image with relative paths, source attribution, hashes, and preserved validation splits.
- Data: 98,560 training and 61,330 validation examples across five explicitly separated tasks. All exported records were parsed and every referenced image decoded and hashed; decoded images do not overlap the two splits.
- Verification: the expanded 24-test suite completed 1,000 runs against frozen source hashes: 24,000 executions, zero failures. A separate 1,000-round check completed 5,000 checks with the actual local Qwen processor across all five domains. Complete result ledgers accompany the release. The public reader validated every exported example and image, and every target was checked against its task schema.
- Training: the local Unsloth Qwen3.5-0.8B base is training vision and language adapters through the Transformers/PEFT CPU reference backend. Training consumes a complete corpus pass and complete gameplay-image consolidation pass, with no step cap.
- Limitation: historical actions include unsuccessful controllers; engine observations are privileged data; HUD grounding is not action prediction. Training and full paired holdout evaluation are unfinished. No gameplay improvement or model promotion is claimed.
- Next: finish the complete training and holdout evaluation, then compare real engine gameplay against the current controller using fixed seeds and genuine exit evidence.

## 2026-10-10 - Broader Human Training Archive

- Changed: inventory archived model datasets and raw human inputs; export verified DoomSol keyboard recordings as cropped image/control conversations for optional Unsloth vision training. Preserve historical evaluation blocks, guard boundaries by 850 ms, remove exact duplicate examples and train/validation image overlap.
- Evidence: 12 tests pass. The local export contains 3,311 training examples (702 firing) and 800 validation examples (65 firing); 486 duplicate examples, 67 boundary examples and four shared training images were removed.
- Limitation: 7,195 derived rows have missing DoomSol provenance or belong to another game; simulator manifests are inventoried but excluded. Some captured sessions have no input rows. Main validation shares a recording with training and measures approximate synchronized imitation, not episode generalization. Model training has not run locally.
- Next: use the optional vision trainer with a compatible local model and compare held-out loss before any shadow gameplay evaluation.

## 2026-10-10 - Unsloth Decision Data Bridge

- Changed: export pre-decision browser observations to Unsloth's choice-model format; keep whole replays in separate partitions; remove exact state overlap; add an optional training entry point with class-coverage gates.
- Evidence: nine focused tests pass. Four retained local replays yield 233 train and 17 validation decisions, with 11 rejected decisions; all exported rows pass upstream question and gold-label validation.
- Limitation: the existing data lacks fire demonstrations and validation aim examples. Training is blocked by coverage checks; no model was trained and no gameplay improvement is claimed.
- Next: record reviewed demonstrations across independent episodes with all three action classes, then train and measure held-out imitation.

## 2026 08 27 Public verification workflow

- Changed: added a GitHub Actions workflow and a documented end-of-session routine.
Expand Down Expand Up @@ -39,3 +66,8 @@ This file is the public record of ongoing work. Each meaningful coding, data, tr
- Limitation:
- Next:
```
# 2026-10-10: Complete vision passes and a CPU reference backend

The archive trainer now defaults to a complete epoch, with an explicit debug-only step cap. CPU machines use Transformers/PEFT adapters in both the vision and language linear layers; compatible GPU machines retain the Unsloth backend. Real images and continuous control labels are preserved, and the CPU loss covers only the assistant action response. Checkpoints support resuming training.

Validation: all 12 repository tests pass; the archive's 3,311 training images and 800 held-out images pass content-hash, control-schema and overlap checks. A local Qwen3.5-0.8B vision forward pass, backward pass and saved adapter succeeded. Complete corpus training and gameplay improvement remain unverified. The broader local campaign and embedded-frame training audit remains outside the public repository.
Loading
Loading