Harden SSH and profile resolution boundaries
Some checks failed
ci / validate (push) Has been cancelled

Assistant: codex
Assistant-Model: gpt-5.6-sol
Assistant-Session: 01a0233b-178d-7162-b92f-31a31ea8ca9b
This commit is contained in:
tegwick 2026-08-23 12:53:05 +02:00
parent 60564fda68
commit 695438019c
8 changed files with 176 additions and 10 deletions

View file

@ -0,0 +1,66 @@
---
id: GLAS-WP-0010
type: workplan
title: "Harden SSH transport and profile refusal coverage"
domain: infotech
repo: glas-harness
status: finished
owner: codex
topic_slug: transport-and-resolution-hardening
created: "2026-08-23"
updated: "2026-08-23"
---
# Harden SSH transport and profile refusal coverage
## Reject option-like SSH targets
```task
id: GLAS-WP-0010-T01
status: done
priority: high
```
Require the optional SSH user and host components to begin with an
alphanumeric character, terminate SSH option parsing explicitly, and cover
both descriptor validation and direct transport construction with regression
tests.
**Completed 2026-08-23:** SSH user and host components must now start with an
alphanumeric character, the constructed command includes the `--` option
terminator, and both factory-created and directly constructed transports reject
option-like targets. Focused transport tests pass.
## Pin multi-revision profile selection semantics
```task
id: GLAS-WP-0010-T02
status: done
priority: medium
```
Retain the safer resolver behavior in which every revision, including a
disabled revision, makes an unpinned selector ambiguous. Correct the profile
documentation and add mixed enabled/disabled coverage.
**Completed 2026-08-23:** documentation now matches the existing fail-closed
resolver: every revision participates in unpinned ambiguity, while a pinned
disabled revision refuses. A mixed enabled/disabled catalog test locks in both
properties.
## Prove pre-sandbox refusal and publish
```task
id: GLAS-WP-0010-T03
status: done
priority: high
```
Add gateway tests proving disabled and ambiguous selections cannot call
sand-boxer, run the full suite and catalog validation, synchronize the
workplan, publish, and retain any actionable leftovers as live residuals.
**Completed 2026-08-23:** real-catalog gateway tests prove disabled and
ambiguous selectors return normalized resolution refusals without calling
sand-boxer. All 72 tests, catalog validation, and whitespace checks pass. No
actionable leftover was discovered, so no residual was created.