# OSS 1.6.1 qualification

Status: **published** on 2026-10-25T14:55:13Z (UTC).
[Public release](https://github.com/BitterSecurity/Decepticon/releases/tag/v1.6.1). The complete release workflow succeeded after protected candidate acceptance.

Immutable source: `8c6c0fdccf59f53ad621493c2fb6481be297ef72` (tested tree `041905fe3f15e6e02465085f4646bebd4bb1b494`).
[Release workflow](https://github.com/BitterSecurity/Decepticon/actions/runs/40201660844).

## Version and integration

1.6.1 is a compatible patch after published 1.6.0: correct existing startup, passive scope discovery, terminal presentation and model routing/output behavior. Commands, protocols and saved data retain compatibility. Source version fields stay at the `0.0.0` sentinel; tagged builds stamp 1.6.1. The immutable tag is not moved for this post-publication record.

Product PRs: [#1088](https://github.com/BitterSecurity/Decepticon/pull/1088), [#1089](https://github.com/BitterSecurity/Decepticon/pull/1089), [#1091](https://github.com/BitterSecurity/Decepticon/pull/1091), [#1092](https://github.com/BitterSecurity/Decepticon/pull/1092), [#1093](https://github.com/BitterSecurity/Decepticon/pull/1093). The prior release documentation #1086 is also present in the tagged source. Model catalog/account availability has the explicit limits recorded in the [model contract audit](../model-contract-audit-2026-10-25.md); one working subscription model is not verification of all provider routes.

## Source and failure-path verification

The final merged source passed [CI](https://github.com/BitterSecurity/Decepticon/actions/runs/40197744183) and [security](https://github.com/BitterSecurity/Decepticon/actions/runs/40197744194). Local `make quality-strict` passed 6,156 Python tests, 48 explicit skips and 74.70% coverage; CLI 272, web 75 and telemetry 51 tests passed. Python type checks reported zero errors and 813 existing warnings. Full Go tests/vet, discovery race tests, CLI production compilation, web production build and dependency audits passed.

The 48 Python skips cover 40 deliberately stubbed Neo4j fixture tests, three missing optional Playwright checks, one missing optional transformers check, three Windows-only locking checks on Linux and one pre-existing SDK mock isolation skip. They are not represented as executed product verification. Actual Neo4j startup and an authenticated query were separately checked in the real stack.

| Affected boundary | Actual observation |
| --- | --- |
| Host port collision | Real Docker bind conflict on 7474 recovered to 7475; the isolated HTTP fixture returned 200, and restart retained the saved port. Full product startup also encountered occupied Neo4j HTTP/Bolt, PostgreSQL, LiteLLM and LangGraph ports and recovered without stopping their original owners. |
| Wiring | 34 architecture tests include actual Compose JSON rendering for changed host ports, fixed web container terminal port 3003, browser URLs/origins and internal DNS. Go host-health tests probe the remapped listener. |
| Scope creation | Real Go launcher created `terminal-release-check` from `example.com, *.decepticon.red`; seven passive suggestions produced nine reviewed targets. Literal wildcard patterns remained visible in the actual authorization review. |
| Partial discovery | Concurrent CT/DNS tests exercise shared deadline, partial results and concise source notes; external CT availability remains best-effort. Manual scope entry stays available. |
| Neutral presentation | Ink CLI, Markdown and Go forms share graphite/silver surfaces, neutral focus and explicit status glyphs. Actual terminal ANSI evidence retained; Markdown output kept code and glob syntax. |
| Source smoke/dogfood | Full Docker source builds, `make smoke` and real PTY `make dogfood` passed in WSL. `/doctor` reported machine scope ready. |
| Actual provider | Plan mode completed an idle, two-message exchange through `auth/gpt-5.6-luna`, rendering `OSS-PLAN-OK` without tools. |
| Source web terminal | Real WebSocket/PTY on host 23094 with web origin 23091 connected and passed `/doctor`; the old origin 3000 was rejected with code 1008. |
| Same-volume restart | Two threads, two messages/checkpoints and all three workspace file hashes survived full owned-stack teardown/recreation without deleting volumes. Existing saved ports stayed fixed; a newly encountered Skillogy conflict selected 9101. |

QA uses a separate installation, Compose project, synthetic database secrets and a private copy of authorized provider credentials. User installation files, credentials, existing port owners and data volumes are preserved. The selected host ports are Neo4j HTTP 7475/Bolt 7688, PostgreSQL 5433, LiteLLM 4001, LangGraph 2025, Skillogy 9101, web 23091 and terminal 23094. Container-internal ports remain fixed.

An initial smoke command used a default process credential instead of the QA installation's synthetic Neo4j credential. The configured authenticated query passed, and the corrected fixture exported its settings before a complete successful smoke rerun. An earlier local Red-mode canary probe was interrupted during OPPLAN initialization and is not claimed as completed inference or assessment. The later real Plan-mode exchange completed successfully. These unsuccessful setup/probe observations remain separate from the passing gates.

Source flow details: [port recovery](../verification/2026-10-25-port-recovery.md) and [neutral onboarding](../verification/2026-10-25-neutral-onboarding.md).

## Candidate distribution and publication

Before approving the protected final publish job, the downloaded Linux 1.6.1 launcher started the actual versioned product images with checksum-verified tagged configuration. All seven health checks passed (six core services plus optional web); the separate CLI service ran successfully and the real interactive CLI exited 0.

The same-volume upgrade preserved both baseline threads, both existing messages and checkpoint data, all three workspace file hashes and all eight saved host port settings before further operator input. The CLI restored the completed source response, reported version 1.6.1 and ready machine scope in `/doctor`, then completed a second real Plan-mode response `OSS-CANDIDATE-OK` with no tool messages. The original thread was idle with four messages afterward.

The actual CLI `/web up` command started the candidate dashboard at host 23091. A real WebSocket/PTY connected through terminal host 23094 with that origin, passed the embedded CLI `/doctor` in 17.208 seconds, and rejected the old origin 3000 with code 1008. The container listener remained on 3003. These functional terminal checks do not claim a new browser layout or multi-resolution UI audit.

The public release contains 18 assets, including the [image digest manifest](https://github.com/BitterSecurity/Decepticon/releases/download/v1.6.1/image-digests.txt), [launcher checksums](https://github.com/BitterSecurity/Decepticon/releases/download/v1.6.1/checksums.txt), configuration/skill manifests and eight CycloneDX SBOMs. All eight latest image channel digests match the verified versioned images; all eight stable digests are unchanged. Public Linux binary, checksum and image-digest downloads were verified. The candidate launcher `update --channel latest` reported already up to date at 1.6.1. PyPI success was checked separately from the final release job.

All six downloaded launcher hashes and the executed Linux launcher version, both configuration/skill manifests covering six tagged files, three PyPI package versions/six wheel-sdist hashes/exact sibling pins, eight image digests/platforms and eight CycloneDX assets were verified before publication. Seven images contain linux/amd64 and linux/arm64; REA is linux/amd64 only. All eight image signatures were independently verified with the exact tag's release-workflow certificate identity and GitHub Actions OIDC issuer. All eight signing/SBOM jobs succeeded.

The sandbox SBOM exceeds Rekor's entry-size cap; its attestation is attached to OCI with transparency-log upload disabled. The image signature is independently verified and the complete CycloneDX SBOM is attached to the release. No missing SBOM transparency entry is represented as verified. No other emitted signing/SBOM warning was observed.

## Upgrade and verification limits

Use `decepticon update --channel latest`; no database reset or manual migration is required. Host URLs can change on a real conflict, and selected values persist in the installation `.env`. A hardcoded custom Compose publication or exhausted port range remains an explicit actionable error. External CT/DNS failure cannot be eliminated by the client.

The existing optional web service can outlive `decepticon stop` because of its profile list; qualification cleanup explicitly includes the owned web profile. Native Windows/macOS full-product flows and unconfigured Blue/MCP/plugin deployments were not executed. No full autonomous security assessment is claimed. Stable keeps its separate minimum seven-day soak period; this release does not promote stable.
