Commit Graph
9 Commits
Author SHA1 Message Date
Miles WardandClaude Fable 5 1a13239fb6 CI: build release body with printf (heredoc broke the YAML block scalar)
Sync upstream and build images / sync-and-build (push) Successful in 26s
Co-Authored-By: Claude Fable 5 <[email protected]>
2026-09-10 15:39:33 -04:00
Miles WardandClaude Fable 5 5121d84b53 Transparent brand logo, per-tag releases, README rewrite, MIT license
- assets/: replace the white-background avatar with a transparent 512px
  PNG (brand blue #4d6bfe, tight-cropped) plus a 128px header variant.
  Same path, so the Unraid template icon keeps working.
- CI: every image tag in the registry now gets a v<tag> git tag on main
  and a Gitea release carrying digest, dsh/pnpm/base versions, deploy
  notes and the 0.1.2+ launch-token caveat. Idempotent, so it backfills
  the three existing tags on the next run.
- README rewritten to match OpenPXE/Discord-Authenticator: centered brand
  header, badges, contents, why/highlights, quick start, Unraid template,
  image contract, versions & upgrade procedure (0.1.5 session-format V3
  has no downgrade), plugins, security model, pipeline, layout.
- LICENSE: MIT for the build tooling.

Co-Authored-By: Claude Fable 5 <[email protected]>
2026-09-10 15:34:47 -04:00
Miles WardandClaude Fable 5 2d033c323b Post-incident hardening: pnpm, pinned versions, immutable tags, no more :latest
Sync upstream and build images / sync-and-build (push) Successful in 2m4s
- Dockerfile: install pnpm (pinned via PNPM_VERSION arg) alongside dsh so
  'dsh plugin --profile web add|update|remove' works in-container. Plain
  'npm i -g' instead of corepack: corepack shims resolve versions at runtime
  and write to a root-owned cache, breaking the uid-1000/read-only contract.
  All pnpm writable dirs (store via PNPM_HOME, cache/state via XDG vars)
  point into the /home/node/.dsh volume - verified zero rootfs writes.
- Dockerfile: ENTRYPOINT ['dsh'], CMD carries the patch flag AND --no-open
  (a headless server must not open a browser; on 0.1.2+ that can burn the
  one-time launch token). DSH_VERSION default pinned to 0.1.1-rc.2.
- CI: never publishes or moves 'latest' (deleted from the registry). Builds
  only missing immutable version tags; a toolchain freshness check rebuilds
  the pinned version as <ver>-rN when a newer pnpm or node base image ships.
  Every build passes a smoke test before push: dsh/pnpm versions match and
  the server boots with the baked patch, answering on the container's
  non-loopback interface (200 pre-token, 303/401 on 0.1.2+).
- README: operating contract - pinned version rationale, PostArgs-replace-CMD
  warning, 0.1.2 launch-token behavior, plugin management, lanmode
  incompatibility, template pinned to :0.1.1-rc.2.

Co-Authored-By: Claude Fable 5 <[email protected]>
2026-09-06 02:43:10 -04:00
Miles WardandClaude Fable 5 768de4ac75 Unraid template support: baked --patch layer, /workspace, logo, template in README
Sync upstream and build image / sync-and-build (push) Successful in 19s
- Ship /opt/deepseek-harness/web.cordis.patch.yml and pass it via upstream's
  --patch launcher flag (must precede the web command's own flags) instead of
  seeding DSH_HOME; entrypoint accepts template Post Arguments verbatim.
- Add /workspace (agent WORKDIR) and pin DSH_HOME=/home/node/.dsh; drop the
  implicit /home/node volume so templates mount .dsh and /workspace cleanly.
- README: Unraid template (repo/support/icon/versions corrected for this
  image, lanmode plugin caution), first-run chown note, DeepSeek logo.

Verified: no-args, flags-only, and full template invocations all serve the
web UI; trust fence still 403s unknown Hosts; state persists to mounted .dsh.

Co-Authored-By: Claude Fable 5 <[email protected]>
2026-09-02 03:07:45 -04:00
Miles WardandClaude Fable 5 f21287e5c0 Validation: separate dsh-own-code diff from dependency-tree noise
Co-Authored-By: Claude Fable 5 <[email protected]>
2026-09-02 02:54:01 -04:00
Miles WardandClaude Fable 5 af0cacd06c Validation: correct suspect image name (runzhliu), report containers using it
Co-Authored-By: Claude Fable 5 <[email protected]>
2026-09-02 02:51:36 -04:00
Miles WardandClaude Fable 5 b20949fcc9 Use scoped REGISTRY_TOKEN for registry auth; add suspect-image validation workflow
Sync upstream and build image / sync-and-build (push) Successful in 2m18s
The Actions GITHUB_TOKEN can push git refs but the container registry
rejects it (run 1 failure). Also adds a manual, never-executes-the-image
forensic workflow comparing a third-party image on the runner host's
daemon against the trusted build.

Co-Authored-By: Claude Fable 5 <[email protected]>
2026-09-02 02:47:42 -04:00
Miles WardandClaude Fable 5 94869972ea Bind via upstream profile patch layer instead of container IP
Sync upstream and build image / sync-and-build (push) Successful in 19s
dsh's webserver schema only accepts 127.0.0.1 or 0.0.0.0; the CLI refuses
0.0.0.0 by design. Seed $DSH_HOME/profiles/web/cordis.patch.yml (the
supported override) from the entrypoint instead. Verified: UI serves 200
through a published port, /api trust fence 403s unknown Hosts, and
--trusted-host pass-through lifts it.

Co-Authored-By: Claude Fable 5 <[email protected]>
2026-09-02 02:44:37 -04:00
Miles WardandClaude Fable 5 ca31308799 CI: mirror upstream and build trusted dsh container image
Sync upstream and build image / sync-and-build (push) Failing after 1m39s
Co-Authored-By: Claude Fable 5 <[email protected]>
2026-09-02 02:35:03 -04:00