Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
48 commits
Select commit Hold shift + click to select a range
d2fe672
compute: add explicit owner-bound BF16 native CPU candidate
erikleblansch Oct 4, 2026
f7e2c3b
compute: pin native converter dependency and preserve owned process c…
erikleblansch Oct 4, 2026
7308371
fix(compute): give native CPU options a unique CLI group
erikleblansch Oct 4, 2026
41c2f66
compute: retain closed native conversion failure stages
erikleblansch Oct 7, 2026
7739206
Merge durable transaction milestone into native inference candidate
erikleblansch Oct 7, 2026
4f06374
Verify effective Qwen3 rotary dimensions against pinned loader
erikleblansch Oct 7, 2026
10fd16d
Merge commit '47a6573294f74b6ac4def51f3d1f5d98764ede94' into feature/…
erikleblansch Oct 7, 2026
773d637
fix(compute): service owner controls during complete weight verification
erikleblansch Oct 7, 2026
f4cd8bd
fix(compute): bound complete native tensor validation and preserve lo…
erikleblansch Oct 7, 2026
bccd7f3
compute: classify native JSON rejection without private output
erikleblansch Oct 7, 2026
36d616f
Merge main public filter snapshot milestone into native CPU candidate
erikleblansch Oct 7, 2026
84cfc46
Bind native verification to measured source and executed GGUF
erikleblansch Oct 7, 2026
9e9086e
Merge commit '55bb4a2a1239d41285d13d24888d457266c0af0a' into feature/…
erikleblansch Oct 7, 2026
4e5126a
feat(compute): bind optional native tool output constraints
erikleblansch Oct 15, 2026
b8bd822
fix(ci): use the hosted native compiler tool path consistently
erikleblansch Oct 15, 2026
030c16f
style(compute): apply hosted output-constraint formatter feedback
erikleblansch Oct 15, 2026
9d04492
fix(compute): combine equivalent native admission rejections
erikleblansch Oct 15, 2026
85b5ae5
docs(compute): record selected output quality and real read evidence
erikleblansch Oct 15, 2026
cc14560
fix(compute): preserve closed private task boundary failures
erikleblansch Oct 15, 2026
5607f11
style(compute): apply hosted task diagnostic formatting
erikleblansch Oct 15, 2026
11bffbb
docs(compute): record verified task diagnostics and exact native retry
erikleblansch Oct 15, 2026
714ddb6
fix(compute): advise unused native model cache after confirmed cleanup
erikleblansch Oct 15, 2026
c969eb9
merge: integrate current core security and quote paths with native in…
erikleblansch Oct 15, 2026
51e9c5f
style(compute): apply hosted cache-hint test formatting
erikleblansch Oct 15, 2026
3630ff7
fix(compute): satisfy cache hint Clippy checks without changing behavior
erikleblansch Oct 15, 2026
a2216ec
feat: observe native memory admission without changing guard
erikleblansch Oct 15, 2026
d915844
Merge main storage lock correction and retain native trial outcomes
erikleblansch Oct 15, 2026
0091e75
style: apply hosted native memory formatter output
erikleblansch Oct 15, 2026
60a7386
fix: satisfy native memory diagnostic lint gates
erikleblansch Oct 15, 2026
126e96a
fix(compute): advise unchanged native source shards after verified cl…
erikleblansch Oct 15, 2026
5984797
style(compute): apply hosted formatter output to source-cache candidate
erikleblansch Oct 15, 2026
3146d2b
test: remove redundant source cache fixture qualification
erikleblansch Oct 15, 2026
2dd3898
fix: satisfy source cache lint guards without behavior changes
erikleblansch Oct 15, 2026
3327115
Release verified native source cache before GGUF preparation
erikleblansch Oct 15, 2026
2439892
feat: supervise bounded owner-native sessions with explicit lifetime …
erikleblansch Oct 15, 2026
d6d7c4d
style(compute): apply hosted native-session formatter feedback
erikleblansch Oct 15, 2026
48e2bfe
Merge verified main milestones into native model session candidate
erikleblansch Oct 15, 2026
00a4d73
fix(compute): resolve native session supervisor import and qualificat…
erikleblansch Oct 15, 2026
0746271
fix(compute): satisfy native session ownership lints
erikleblansch Oct 15, 2026
0de65f4
style(compute): apply hosted native cleanup formatting
erikleblansch Oct 15, 2026
0317732
fix(compute): preserve closed native-session failure diagnostics
erikleblansch Oct 15, 2026
a37f5cd
style(compute): apply hosted native diagnostic test formatting
erikleblansch Oct 15, 2026
01c90c5
merge: integrate current main with native session diagnostics
erikleblansch Oct 15, 2026
95ef454
Bound retained native KV allocation to full turn context
erikleblansch Oct 15, 2026
6d65bb1
fix(native): bind aligned Q1 scalar load to staged CPU source
erikleblansch Oct 15, 2026
985774f
merge: join native session candidate with current core
erikleblansch Oct 15, 2026
ded03e5
docs: record real coding task and storage trial boundaries
erikleblansch Oct 15, 2026
a410b01
docs: record joined native checks and listener trial outcome
erikleblansch Oct 15, 2026
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
181 changes: 181 additions & 0 deletions .github/workflows/native-cpu-contract.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,181 @@
name: Native CPU source contracts

on:
push:
branches:
- feature/native-cpu-inference
- feature/native-coding-output-constraint
- fix/native-session-context-capacity
- fix/native-q1-aligned-load
paths:
- workers/volparossa-ml/native-cpu/**
- workers/volparossa-ml/build_llama_cpu.py
- workers/volparossa-ml/convert_llama_cpu.py
- workers/volparossa-ml/llama_cpu.py
- workers/volparossa-ml/test_native_session.py
- workers/volparossa-ml/test_native_cpu_alignment.py
- .github/workflows/native-cpu-contract.yml
workflow_dispatch:

permissions:
contents: read

concurrency:
group: native-cpu-contract-${{ github.ref }}
cancel-in-progress: false

jobs:
native:
name: Source-only ${{ matrix.mode }}
runs-on: ubuntu-24.04
timeout-minutes: 40
strategy:
fail-fast: false
matrix:
mode: [normal, asan-ubsan]
env:
PYTHONDONTWRITEBYTECODE: '1'
NATIVE_MODE: ${{ matrix.mode }}
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
with:
ref: ${{ github.sha }}
persist-credentials: false
- name: Require disposable hosted runner and exact source
run: |
set -euo pipefail
test "$GITHUB_ACTIONS" = true
test "$RUNNER_ENVIRONMENT" = github-hosted
test "$RUNNER_OS" = Linux
test "$GITHUB_REPOSITORY" = VOLPAROSSA/volparossa
test "$GITHUB_WORKFLOW_SHA" = "$GITHUB_SHA"
test "$(git rev-parse HEAD)" = "$GITHUB_SHA"
test -z "$(git status --porcelain --untracked-files=all)"
env -i PATH=/usr/local/bin:/usr/bin:/bin /bin/bash -euo pipefail -c \
'for tool in cmake c++ cc git readelf nice python3; do command -v "$tool"; done'
mkdir -p build/native-contract
python3 -B - <<'PY'
import hashlib, json, os, subprocess
from pathlib import Path

def git(*args):
return subprocess.check_output(['git', *args])

head = os.environ['GITHUB_SHA']
paths = (
'workers/volparossa-ml/build_llama_cpu.py',
'workers/volparossa-ml/convert_llama_cpu.py',
'workers/volparossa-ml/llama_cpu.py',
'workers/volparossa-ml/native-cpu/CMakeLists.txt',
'workers/volparossa-ml/native-cpu/q1-aligned-load.patch',
'workers/volparossa-ml/native-cpu/abi-smoke.cpp',
'workers/volparossa-ml/native-cpu/adapter.cpp',
'workers/volparossa-ml/native-cpu/adapter.h',
'workers/volparossa-ml/native-cpu/session-state.h',
'workers/volparossa-ml/native-cpu/session-tests.cpp',
'workers/volparossa-ml/test_native_session.py',
'workers/volparossa-ml/test_native_cpu_alignment.py',
)
files = {}
for name in paths:
raw = git('show', head + ':' + name)
assert Path(name).read_bytes() == raw
files[name] = dict(bytes=len(raw), sha256=hashlib.sha256(raw).hexdigest(),
blob=git('rev-parse', head + ':' + name).decode().strip())
workflow = '.github/workflows/native-cpu-contract.yml'
record = dict(version=1, kind='native-cpu-contract-source',
source_commit=head, source_tree=git('rev-parse', 'HEAD^{tree}').decode().strip(),
workflow_commit=os.environ['GITHUB_WORKFLOW_SHA'], workflow_path=workflow,
workflow_sha256=hashlib.sha256(git('show', head + ':' + workflow)).hexdigest(),
mode=os.environ['NATIVE_MODE'], run_id=os.environ['GITHUB_RUN_ID'],
run_attempt=os.environ['GITHUB_RUN_ATTEMPT'], files=files,
model_execution=False, real_kv_memory_saving_proven=False)
with Path('build/native-contract/source.json').open('x') as stream:
stream.write(json.dumps(record, sort_keys=True) + '\n')
PY
- name: Check the same 98 inert Python cases in each matrix mode
run: |
set -euo pipefail
(
cd workers/volparossa-ml
timeout --kill-after=5s 120s \
env -i PATH=/usr/local/bin:/usr/bin:/bin LANG=C.UTF-8 PYTHONDONTWRITEBYTECODE=1 \
python3 -B -m unittest -v test_llama_cpu test_conversion_diagnostic \
test_native_output_constraint test_native_source_lifecycle test_native_session \
test_native_cpu_alignment
) 2>&1 | tee build/native-contract/python-contracts.log
python3 -B - <<'PY'
import json, os, re
from pathlib import Path
text = Path('build/native-contract/python-contracts.log').read_text()
cases = re.findall(r'^(test_[A-Za-z0-9_]+) \(([^)]+)\) \.\.\. ok$', text, re.M)
names = [scope + '::' + method for method, scope in cases]
assert len(names) == len(set(names)) == 98
assert re.findall(r'^Ran (\d+) tests in .+$', text, re.M) == ['98']
assert re.findall(r'^OK.*$', text, re.M) == ['OK']
record = dict(version=1, mode=os.environ['NATIVE_MODE'], passed=98, failed=0,
skipped=0, unique_tests_across_matrix=98, repeated_in_each_matrix_mode=True,
test_names=sorted(names), model_execution=False)
with Path('build/native-contract/python-contracts.json').open('x') as stream:
stream.write(json.dumps(record, sort_keys=True) + '\n')
PY
- name: Fetch the pinned upstream source only
run: |
set -euo pipefail
mkdir -p build/native-contract
git init build/native-contract/llama
git -C build/native-contract/llama remote add origin https://github.com/ggml-org/llama.cpp.git
git -C build/native-contract/llama fetch --depth=1 origin 7fe450e19305b828c199d602c23a8337aaa1f03b
git -C build/native-contract/llama checkout --detach 7fe450e19305b828c199d602c23a8337aaa1f03b
test "$(git -C build/native-contract/llama rev-parse HEAD)" = 7fe450e19305b828c199d602c23a8337aaa1f03b
- name: Compile and run bounded native and upstream checks without models
run: |
set -euo pipefail
flags=()
if test "$NATIVE_MODE" = asan-ubsan; then flags+=(--sanitize); fi
env -i PATH=/usr/local/bin:/usr/bin:/bin LANG=C.UTF-8 PYTHONDONTWRITEBYTECODE=1 \
python3 -B workers/volparossa-ml/build_llama_cpu.py \
--source "$PWD/build/native-contract/llama" \
--output "$PWD/build/native-contract/output" --execute --checks "${flags[@]}"
- name: Recheck original source after success or failure
if: always()
run: |
set -euo pipefail
mkdir -p build/native-contract
(
test "$(git rev-parse HEAD)" = "$GITHUB_SHA"
test "$GITHUB_WORKFLOW_SHA" = "$GITHUB_SHA"
git diff --exit-code HEAD
# Only the predeclared evidence/upstream/build directory is untracked output.
test -z "$(git status --porcelain --untracked-files=all -- . ':(exclude)build/native-contract')"
python3 -B - <<'PY'
import hashlib, json, os, subprocess
from pathlib import Path
record = json.loads(Path('build/native-contract/source.json').read_text())
assert record['source_commit'] == os.environ['GITHUB_SHA']
assert record['workflow_commit'] == os.environ['GITHUB_WORKFLOW_SHA']
assert record['source_tree'] == subprocess.check_output(
['git', 'rev-parse', 'HEAD^{tree}']).decode().strip()
for name, expected in record['files'].items():
raw = Path(name).read_bytes()
assert len(raw) == expected['bytes']
assert hashlib.sha256(raw).hexdigest() == expected['sha256']
assert hashlib.sha256(Path(record['workflow_path']).read_bytes()).hexdigest() == record['workflow_sha256']
print('NATIVE_SOURCE_UNCHANGED')
PY
) 2>&1 | tee build/native-contract/source-check.log
- name: Retain original source-only reports and logs, including failures
if: always()
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
with:
name: native-source-${{ matrix.mode }}-${{ github.sha }}
path: |
build/native-contract/source.json
build/native-contract/source-check.log
build/native-contract/python-contracts.json
build/native-contract/python-contracts.log
build/native-contract/output/build.json
build/native-contract/output/build.log
build/native-contract/output/checks.log
if-no-files-found: error
retention-days: 14
Loading
Loading