# OSS 1.6.0 qualification

Status: **published** on 2026-10-25T01:25:14Z (UTC).
[Public release](https://github.com/BitterSecurity/Decepticon/releases/tag/v1.6.0) from immutable commit
`01be70fe7c9bb3e9974251c7bf8e375966e14a4f`.
[Release workflow](https://github.com/BitterSecurity/Decepticon/actions/runs/40148422336)
completed successfully after protected candidate acceptance. Source package
versions retain the `0.0.0` sentinel; release builds stamp 1.6.0.

## Version and integration

At candidate selection, the newest published final was 1.5.4, published on 2026-10-23 at 05:59:20 UTC
from `3eb96117da314e0387c04086a3bd5ea005a06470`. The SAST removal already exists
in that tag; its stale Unreleased entry is not a new breaking change. The next
selected version was therefore **1.6.0** for compatible session controls, diagnostics,
Desktop adapters and recovery fixes. 1.5.1/1.5.3 drafts are not final releases.

Integrated work includes #1063–#1085: scope readiness, native policy/planning
isolation, diagnostics, stream recovery/transcripts, web terminal startup,
checkpointed runtime controls, dependency security, the public legacy Claude
catalog and the final subscription-effort/Compose-discovery follow-ups. The
web mount namespace correction preserves existing checkpoints and files. The
underlying feature branches retain their task PRs and validation. Catalog
subscription settings belong to the local overlay; the public catalog remains
separate from account and tenant authorization.

## Source qualification already observed

All installation resources use an isolated home, synthetic database
secrets, stack/project `decepticon-oss-release-20261024` and separate ports.
The user's original installation, credentials and volumes are preserved.

| Boundary | Observed result |
| --- | --- |
| Original scope defect | Launcher-generated mode-less scope is accepted by CLI/web shared readiness; unusable machine scope stays blocked. |
| Prior distribution | Downloaded 1.5.4 Linux launcher checksum verified; actual launcher created the scoped engagement and started isolated services in WSL. |
| Actual provider | 1.5.4 graph obtained a real `auth/gpt-6.1-sol` AI reply and persisted it. |
| Same-volume upgrade | Recreated agent service with candidate source; all 28 saved messages matched canonical JSON byte-for-byte before further operator turns. |
| Actual CLI | Launcher → services → installed CLI connected; `/doctor` rendered the scoped checkpoint. |
| Runtime controls | Intentionally unavailable primary entered the selected subscription fallback with effort `low` and threshold 4096; an AI reply persisted and rendered as an AI message in the actual CLI. Saved controls matched the request. |
| Scope failure | Empty machine allowlist blocked the actual CLI; the isolated scope fixture was restored afterward. |
| Compaction visibility | A skipped automatic compaction was visible, without claiming reduced context. |
| Exit | CLI exited while services remained running. |
| Actual desktop web | Windows Aside browser opened the isolated dashboard, imported the existing CLI engagement and displayed its objective. Actual WebSocket/PTY input invoked `load_opplan` at `/workspace`; the tool read revision 1 and an actual AI confirmation persisted and rendered. Thread metadata and checkpoint both use `/workspace`. |
| Web connection recovery | Deferred StrictMode initialization initially caused repeated handoffs; the ownership fix eliminated the loop in the same browser. Existing thread restoration remained scoped. |

Source qualification used locally built agent/CLI images and the published
1.5.4 gateway with the exact candidate gateway source/config applied only in
that disposable container. The gateway initially rejected effort with HTTP 400;
after correction a real low-effort subscription reply completed in 51.21s.
After the web AI confirmation, a later summarization request was refused by the
upstream provider's content policy; the CLI surfaced the error and did not claim
successful compaction. No provider-policy bypass or full-assessment completion
is claimed. This is separate from the measured OPPLAN read and AI response.
This source check does **not** replace the versioned candidate distribution gate.

Earlier affected gates passed: Python PR lane 5993 tests (43 external/live skips),
OAuth/config 377 tests, CLI 268, web 64, Desktop 30, launcher suites/vet, full web
lint/Prisma/production build, and npm workspace audit 0 findings including dev
packages. Cold host imports measured 21.5s for Ink, 18.1s for SDK and 22.5s for the
app; the real PTY regression uses a bounded startup deadline covering that cost.
A healthy Compose plugin took 5.956s through a PTY; discovery timeout is separate
from actual startup/readiness and operator cancellation.

The combined strict integration gate passed with **6,030 Python tests**, 48
external/platform skips, **272 CLI tests**, **71 web tests**, the full web
production build and zero Python type errors (809 existing warnings). Catalog
generation/checks and its seven tests also passed. Deferred StrictMode socket
ownership and the optional Blue monitor backoff retain their regression coverage.
The Blue integration preserves the contributor's commits (#1082/#1083).

The subsequent security correction (#1084) passed the full Python coverage gate:
**6,032 passed, 48 skipped**. Registry-wide locked Python dependencies, root npm
workspaces and the separate telemetry gateway lock all audit clean, including
optional/development packages. Local editable `0.0.0` package sentinels are not
registry distributions; the historical token-boundary advisory was checked against
the already-fixed source rather than suppressed. The gateway passed 51 tests,
type checking, production bundle and actual local Worker health/schema requests.
Its Zod upgrade retains the prior GUID, UTF-16 length and integer semantics.

The web state correction (#1085) passed **75 web tests**, **13 Compose/state
invariants**, a full production Docker build and all applicable CI/security jobs.
A real WebSocket/PTY writes an unsent composer draft. Two separate non-root image
containers on the same fresh named volume preserve Plan/Red draft/history data;
state directories are mode 0700 and files 0600. Explicit and legacy state locations
remain supported. This corrects the published image's unwritable default home.

On October 25 the host restart removed the private `/tmp` installation files;
Docker named data volumes survived. Missing file bind mounts prevented gateway
and graph startup. Qualification configuration and evidence were moved to
`decepticon-oss-release-evidence-20261025` outside `/tmp`, preserving the existing
named volumes. The regenerated private scope is a new fixture: the lost temporary
workspace files are not represented as an observed successful restart. The earlier
28-message same-volume source upgrade observation remains separate and valid.

## Final distribution acceptance and publication

The exact merged source passed required CI/security before tagging. The immutable
candidate passed acceptance before the final protected publish job was approved:

| Gate | Actual observation |
| --- | --- |
| Launchers | All six platform binary SHA-256 values match the manifest and GitHub asset digests; the downloaded Linux launcher reports `Decepticon 1.6.0`. |
| Configuration/skills | Both integrity manifests match all six exact tagged source files. |
| PyPI | Three public 1.6.0 packages, six wheel/sdist hashes, non-yanked metadata and exact sibling dependency pins verified. |
| Images | All eight immutable version digests and expected platforms verified: amd64/arm64 except REA amd64. |
| Signing/SBOM | All eight image signatures independently verified against the exact release workflow certificate identity/issuer; eight CycloneDX assets and successful signing/SBOM jobs reviewed. |
| Actual WSL launcher | Downloaded candidate `serve --engagement` starts the isolated services successfully; all seven service health checks pass with versioned product images and matching tagged configuration, without source overrides. |
| Actual CLI | Candidate launcher attaches the installed CLI; `/doctor` reports version 1.6.0, ready machine scope, the existing checkpoint and OPPLAN revision 1. |
| Actual model | An unavailable primary falls back once to `auth/gpt-6.1-sol`; an actual AI confirmation is persisted and rendered. Saved controls match requested low effort and threshold 4096. Effort is a request, not a guarantee of provider implementation. |
| Same-volume upgrade/restart | The supported candidate stop/start path preserves all four baseline threads and 28 messages, saved controls, workflow pins, workspace binding and plan revision. Both workspace fixture hashes match before further operator turns. |
| Scope failure | Temporarily empty machine scope is rejected by the actual CLI without adding an agent run; the original scope bytes are restored. A foreign engagement WebSocket is rejected with code 1008. |
| Desktop web | Windows Aside displays candidate version 1.6.0 and restores both Red and Plan unsent drafts after the image upgrade using the same named volume; screenshots retained locally. |
| Fresh web state | Two separate versioned image containers on a fresh volume preserve Unicode Plan/Red drafts/history under UID 1001, private directories and mode-0600 files. |
| Exit | Actual model CLI exits 0 while services remain available. |

The final workflow published GitHub release/assets and promoted latest after these
checks. The public release contains 18 assets. PyPI publication was independently
verified rather than inferred from the final job. Stable retains its seven-day
minimum and is not promoted by this release job. Source/package tags are immutable;
this post-publication record does not move the tag or bump runtime versions.

Known limitations observed and disclosed in the release notes:

- The sandbox SBOM exceeds Rekor's entry-size cap. Its attestation is stored in
  OCI rather than that transparency log; the image signature is independently
  verified and its full CycloneDX SBOM is attached. No absent SBOM transparency
  entry is represented as verified.
- The existing `decepticon stop` profile list (also present in 1.5.4) can leave
  the optional web container running. The core services are removed and data
  volumes retained; explicitly stop the optional dashboard service with Compose
  under the same installation/project when shutting it down. Owned qualification
  cleanup includes that service.
- Private QA recovery initially used an invalid provider-named model profile and
  incorrect host-port settings. These fixture settings were corrected before
  final acceptance. The launcher correctly rejected the stale pre-restart sandbox
  bind; its supported stop command removed the stale container before restart.
  These unsuccessful setup attempts are distinct from the final successful run.

Native Windows/macOS Desktop end-to-end acceptance and unconfigured optional
Blue/MCP/plugin deployments are not claimed by this WSL qualification. Their
covered unit/controlled HTTP boundaries remain distinct from deployment evidence.
