Skip to content

docs production-lifecycle widget keeps the weaker trust model that openadapt-web#394 removes #166

Description

@abrichr

Found while triaging OpenAdaptAI/openadapt-web#394 during the 2026-08-27 queue drain. Filing now because it becomes a real divergence the moment that PR lands, and it is easy to miss because nothing is broken today.

The situation

docs/javascripts/production-lifecycle.js in this repository is a second copy of the production lifecycle widget that also ships on openadapt.ai. openadapt-web#394 rewrites the web copy's trust model. This copy is not part of that PR.

The divergence, once #394 lands

The docs copy keeps the weaker of the two trust models:

docs copy (this repo) web copy after #394
artifact check evidence.openadapt.ai/api/v1/objects/sha256/{digest}, line 483 — fetches metadata and trusts a third party's exists: true / head_verified: true assertion fetches the real bytes and verifies them against the digest
admissions source mutable raw.githubusercontent.com/.../.github/main/..., lines 34 and 123 a URL carried inside the signed projection

Both differences have the same shape: the docs copy trusts a third party's assertion about an artifact, where the web copy verifies the artifact itself. The web change also removes a mutable main read, which is a source that can change under the reader.

Why this is worth filing rather than fixing inline

Nothing is broken right now, and #394 is parked behind the central trust work, so there is no deadline. But when it lands, docs.openadapt.ai and openadapt.ai will show the same widget making materially different trust claims, and the docs one will be the weaker. That is the kind of drift nobody notices until a discrepancy has to be explained to someone external.

Suggested resolution

Either port the same verification change to this copy when #394 lands, or extract the widget into one shared source so the two cannot drift again. The second is more work and removes the whole class of problem.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions