Quality gates / quality (pull_request) Canceled after 0s
Brings #82 up to today's `main` (1bbcc10) and resolves the two conflicts as ordered
unions: `package.json` `test`/`check:syntax` and the release builder's syntax allow-list
and evidence keys. Both sides only appended, so nothing was dropped.
Verifying the merge against main's RC attack suite (#40) found two real defects, each
fixed test-first:
- An oversized body destroyed the socket mid-upload, so the caller saw `fetch failed`
instead of the 413 it had already earned, and `security_attack_suite.mjs` could not
complete at all. New test in `tests/analyze-ingress.acceptance.test.js` failed with
`fetch failed` before the fix; `src/http-body.js` now keeps draining without buffering
and refuses on `end`, so the ceiling still holds and the refusal is readable.
- #16's per-caller budget turned the suite's own load phase into 8/8 429s, which would
have published refusals as analysis latency. The load phase now runs against a second
permissive target and the suite refuses to publish a load figure if any sample was
refused. `buildReport` also publishes `evidenceVerified`, so the verdict is
re-derivable from the report — asserted by #40's acceptance test, which only trips once
the verdict is GO.
Evidence on the merged tree: `npm test` 277/277, `test:security-attack` 8/8, the RC attack
suite returns VERDICT: GO with both P0 ingress cases passing (main is BLOCKED on exactly
those two), 14 browser acceptance suites green, and the release demo records end to end
(8:13, 97 captions) including the on-camera refusal scene.
40 lines
5.2 KiB
JSON
40 lines
5.2 KiB
JSON
{
|
|
"name": "timmy-talking-turd",
|
|
"version": "0.1.0",
|
|
"private": true,
|
|
"type": "module",
|
|
"scripts": {
|
|
"test": "node --test tests/domain.test.js tests/analysis.test.js tests/vision-service.test.js tests/vision-config.test.js tests/draft.test.js tests/suggestion.test.js tests/followup.test.js tests/vision-readiness.test.js tests/hermes-agent-service.test.js tests/agent-gateway.acceptance.test.js tests/staging-health.test.js tests/service-worker-runtime.test.js tests/training-ingest.test.js tests/ci-workflow.test.js tests/product-decisions.test.js tests/release-demo.test.js tests/selfhost-bootstrap.test.js tests/staging-config.test.js tests/threat-model.test.js tests/vision-corpus.test.js tests/vision-boundary.test.js tests/worker-benchmark.test.js tests/worker-ready.test.js tests/worker-container.test.js tests/summary.test.js tests/escalation-regression.test.js tests/grounded-chat.test.js tests/photo-lifecycle.test.js tests/training-contribution.test.js tests/portability.test.js tests/abstention-policy.test.js tests/release-security-gate.test.js tests/image-ingress.test.js tests/rate-limit.test.js tests/http-body.test.js tests/analyze-ingress.acceptance.test.js",
|
|
"test:ui": "node tests/ui.acceptance.mjs",
|
|
"test:photo": "node tests/photo-first.acceptance.mjs",
|
|
"test:mobile-capture": "node tests/mobile-capture.acceptance.mjs",
|
|
"test:ingress-capture": "node tests/ingress-capture.acceptance.mjs",
|
|
"test:sleek": "node tests/sleek-chat.acceptance.mjs",
|
|
"test:manual-fallback": "node tests/manual-fallback.acceptance.mjs",
|
|
"test:provisional": "node tests/provisional-suggestion.acceptance.mjs",
|
|
"test:followup": "node tests/followup.acceptance.mjs",
|
|
"test:vision-refusal": "node tests/vision-refusal.acceptance.mjs",
|
|
"test:staging-smoke": "node tests/staging.acceptance.mjs",
|
|
"test:pattern-summary": "node tests/pattern-summary.acceptance.mjs",
|
|
"test:grounded-chat": "node tests/grounded-chat.acceptance.mjs",
|
|
"test:photo-lifecycle": "node tests/photo-lifecycle.acceptance.mjs",
|
|
"test:training-contribution": "node tests/training-contribution.acceptance.mjs",
|
|
"check:syntax": "node --check app.js && node --check server.mjs && node --check service-worker.js && node --check src/analysis.js && node --check src/domain.js && node --check src/draft.js && node --check src/suggestion.js && node --check src/followup.js && node --check src/vision-readiness.js && node --check src/hermes-agent-service.js && node --check src/vision-config.js && node --check src/vision-service.js && node --check src/vision-corpus.js && node --check src/summary.js && node --check src/photo-lifecycle.js && node --check src/grounded-chat.js && node --check src/training-contribution.js && node --check src/abstention-policy.js && node --check src/release-security-gate.js && node --check scripts/security_attack_suite.mjs && node --check tests/security-attack.acceptance.mjs && node --check scripts/record_release_demo.mjs && node --check tests/staging.acceptance.mjs && node --check tests/manual-fallback.acceptance.mjs && node --check tests/provisional-suggestion.acceptance.mjs && node --check tests/followup.acceptance.mjs && node --check tests/vision-refusal.acceptance.mjs && bash -n scripts/bootstrap_selfhost_smolvlm.sh && bash -n scripts/run_selfhost_smolvlm.sh && python3 -m py_compile scripts/corpus_manifest.py scripts/review_corpus.py scripts/dataset_card.py scripts/ingest_training_photo.py scripts/build_release.py scripts/deploy_staging.py scripts/build_vision_corpus.py scripts/calibration_report.py scripts/operator_backup.py && node --check scripts/record_worker_benchmark.mjs && node --check scripts/abstention_policy_receipt.mjs && node --check tests/worker-readiness.acceptance.mjs && node --check tests/pattern-summary.acceptance.mjs && node --check tests/photo-lifecycle.acceptance.mjs && node --check tests/training-contribution.acceptance.mjs && node --check tests/portability.acceptance.mjs && node --check tests/grounded-chat.acceptance.mjs && bash -n scripts/worker_ready.sh && bash -n deploy/worker/entrypoint.sh && bash -n deploy/worker/build_image.sh && bash -n deploy/worker/run_worker_container.sh && node --check src/image-ingress.js && node --check src/rate-limit.js && node --check src/http-body.js && python3 -m py_compile scripts/ingest_training_photo.py scripts/build_release.py scripts/deploy_staging.py scripts/build_vision_corpus.py && node --check tests/ingress-capture.acceptance.mjs && node --check tests/analyze-ingress.acceptance.test.js",
|
|
"check:diff": "bash scripts/check_diff.sh",
|
|
"start": "node server.mjs",
|
|
"test:worker-readiness": "node tests/worker-readiness.acceptance.mjs",
|
|
"test:portability": "node tests/portability.acceptance.mjs",
|
|
"test:corpus": "python3 tests/corpus-manifest.test.py",
|
|
"test:calibration": "python3 tests/calibration-harness.test.py",
|
|
"test:policy": "node --test tests/abstention-policy.test.js",
|
|
"test:review": "python3 tests/corpus-review.test.py",
|
|
"test:dataset-card": "python3 tests/dataset-card.test.py",
|
|
"test:backup": "python3 tests/backup-restore.test.py",
|
|
"test:runbook": "python3 tests/production-runbook.test.py",
|
|
"test:security-attack": "node tests/security-attack.acceptance.mjs"
|
|
},
|
|
"devDependencies": {
|
|
"playwright": "^1.62.1"
|
|
}
|
|
}
|