authz-probe rnd2-d903 (please ignore)
Docs: vaults reference should say a wide local_encryption key file gets a warning
Docs: document workflow evaluation counts and subphase timings
package.json mode: no loose-specifier warning for a range push ships as the exact installed version
extension fmt (and any command) creates or rewrites deno.lock when the extension lives in the repo's loaded extensions/ dir
serve shutdown does not wait for worker status writes, and its listener accepts workers after the gateway is disposed
Registry rescore: secret-safe-docs passes a secret README line on versions whose stored metadata predates the sensitive flag (follow-up to #3783)
Docs: manual states the old pre-flight check rule and scores fast-check by deno doc --lint
stagecraft: rename work mode `method` to `behavior`, matching swamp's rename of models to behaviors
invalid-acceptance refuses an apostrophe in a swamp-quality-ignore reason and leaves the finding unresolved
extension quality --json reports percentage but not the grade that extension info and the registry show
auth token create --json fields key and signinToken are undocumented; no token-mode service setup page
trigger.schedule is evaluated in the serve host's local time zone, with no zone field and no doc saying so
workflow validate/run say "Workflow not found" for a file that doctor workflows explains is misnamed
telemetry stats says "No telemetry data found" right after successful sends; say the spool is empty because it flushed
Homebrew tap README omits the brew trust step Homebrew 7 requires, so brew install swamp refuses the formula
Docs: publish typed-secrets Phase 4.6 expression and delivery semantics
Extension registry page: a supported way to include media (images) in the README
Docs: define the sensitive-output fallback vault order and document the doctor vaults fallback warning
scanFleet: support a different SSH user per host (user@host entries)
CEL: data.latest(...).version is a double, but data.version() only accepts int, so "version - 1" fails at run time
workflow resume --run refuses workflows with the same step name in two jobs, though validate and run accept them
Update public OpenTelemetry manual for remote waterfalls and execution metrics (#3786)
Share the extension quality rubric between the swamp CLI and swamp-club instead of mirroring it
@swamp/cve/php-rce-2026-10: match RHEL fixes for the PHP RCEs
cve/emudhra page: Windows and macOS support, and shared CVE layer fixes (follow-up to #3710 and #3766)
Server-driven warning and info messages to CLI users, targeted by swamp version (exploration)
Serve: delegate namespace-scoped extension pulls and reload without granting administrator access
workflow cancel --server ignores --ca-cert and SWAMP_CA_CERT
Preserve active worker execution across serve restarts and upgrades; reconnect and reattach dispatches
v3: chunk durability barrier costs a full drive-cache flush per command on macOS; use an ordering barrier
vary/forEach object values with no key/name/id produce data names Windows refuses
issue-lifecycle start drops issue comments: context.comments is always empty
swamp core: a non-string sensitive value reads back as a JSON string
Generated vault keys carry raw data-name and vary characters that strict vault providers reject
bundleExtension 'bundles on different caches do not wait for each other' test fails under CPU load
extension install and extension pull leave different bundles for the same extension version
Registry drops contentMetadata.extensions (method grafts) at confirm-push
Multi-model skill eval: gpt-5.4 and gemini jobs fail preflight every run (OpenAI credits exhausted, Google API key invalid)
local_source_failed drops the indexing error: a transient local extension failure leaves no cause (follow-up to 1672)
Finer-grained method locking: a long-running method on one definition blocks unrelated objects managed by the same definition
Surface (or warn about) values a model method returns besides dataHandles, with sensitive-field support
workflow placement: run a workflow transparently on a specified host, local or via swamp workers (incl. nested child workflows)
issue-lifecycle: pr_merged and ship report success and advance the phase when swamp-club is unreachable, writing nothing upstream
auth login leaves auth.json apiKey empty and stores the key only in ~/.config/swamp/api-key, which the auth gate never reads
swamp-extensions CI: Review Integrity explains a stalled or failed audit (streamed progress, timeout, did-not-finish comment)
Workflow run cancellation on concurrency-key conflict
Read non-string sensitive resource fields back with their type
Run index repair-by-stat misses an in-place, same-size record rewrite that restores mtime within the same second as its entry: ctime is reported in whole seconds
Configurable storage tiers: runs, outputs, data versions and audit move through an ordered list of user-defined tiers, and stay queryable across them
A global argument that evaluates to swamp-namespace expression text is silently dropped, and literal() cannot pass it through
serve: the per-IP WebSocket burst limit can't be configured, so workers behind one NAT IP throttle each other
extension pull: safety analysis scans the bundle the extension runs
S3-backed serve: a poll that pulls one file invalidates the whole data catalog, so the next query re-reads every version
swamp-extensions: CI check that every manifest declares license: and ships a LICENSE file
extensions_search index is never created if the first attempt fails, until the process restarts
S3/GCS datastore sync: shared sync service lets one sync clear another's dirty marks and pull over unpushed files
swamp-uat: the SIGTERM drain test does not check that the run succeeded
stagecraft: a factory-wide read of work items waiting on a person (no studio, no per-item status loop)
stagecraft: rebind a work item to another tracker (mirrored built-in tickets to Jira)
s3-datastore: first push on a fresh cache prints 'Index merge failed' for a missing local .datastore-index.json
swamp-extensions: use explicit npm:/jsr: specifiers in root extensions/models
stagecraft: studio state_test 'after its event stream reconnects' is timing-flaky under load
Activity projector fails with ZooKeeper "Bad version" error on swamp.score_grants during keeper instability
s3-datastore: model-scoped pullChanged lists and walks the whole namespace
extension safety analyzer does not warn on node:child_process or cluster subprocess spawning
extension push: a swamp-quality-ignore directive after a comment holding an apostrophe is silently ignored
Model types: decide whether names like @/@x/y or a+b/c should be legal (type grammar)
seed:collective cannot produce a superseded personal trial or a returned trial, so the UAT cannot cover them
serve HA: pull a token's definition on an auth miss so a peer accepts a new token at once
extension push: accept attestation-backed adversarial-review evidence (lookup by extension and content hash), generated provenance, and carry the evidence to the registry at confirm (design: Lab #3023)
Decide a stricter naming rule for workflow step and job names
s3-datastore/serve: readResource without a version returns an older version; the latest marker is rewritten backwards
Publish agent-facing projections of the manual: /llms.txt, .md pages, and llms-full.txt
Let agent-runner drive more agent CLIs (Kilo Code and others)
s3-datastore: every fast-path miss re-downloads every _index shard, so a busy serve pulls the whole index every poll (~230 GB/day S3 egress)
Feedback: Swamp as an approval-gated control plane for a small fleet
Tracking: test baseline required before the datastore refactor (commit-log design)
serve: define and supply the collective and owner grant condition variables
No first-class workflow primitive for spawning a permission-scoped agent session
Decorative animations outside the Lab still repaint on the main thread
s3/gcs datastore: pullChanged overwrites dirty, unpushed cache files
Codegen/AWS: create-only required fields block list/get/delete in generated AWS models
End a collective's trial when it begins a paid subscription
s3-datastore: SWAMP_S3_REQUEST_TIMEOUT_MS does not appear to apply to ListObjectsV2 during pull
s3-datastore: S3Lock.acquire overshoots maxWaitMs by up to a full backoff interval
s3-datastore: a model-scoped pull still lists, walks and indexes the whole namespace
Relationships
≡ duplicate of #3230#3201 check_upgrades.ts skips models in nested extensions/models/ directories (e.g. stagecraft's engine/ and tracker/)
Opened by skunk-ape · 10/8/2026· Shipped 10/11/2026
Problem
scripts/check_upgrades.ts selects model files with isModelFile, whose pattern is (^|/)extensions/models/[^/]+.ts. It only matches files directly under extensions/models/.
stagecraft keeps its model types one level deeper: extensions/models/engine/factory.ts, engine/work_item.ts, engine/studio.ts, tracker/builtin.ts and tracker/linear.ts, as its manifest lists them. A change that bumps one of those versions gets 'No model definitions changed; no upgrade path to check.' Neither the static check (last upgrades toVersion equals the version) nor the --path-test dynamic check runs for them.
Reproduce
On the swamp-club #3194 branch, which bumps @swamp/stagecraft/factory and work-item to 2026.10.08.1, run: deno run --allow-read --allow-write --allow-env --allow-run scripts/check_upgrades.ts --base origin/main --path-test. It prints 'No model definitions changed'.
Expected
The gate finds every model file a manifest lists under models:, or every non-test .ts under an extensions/models/ tree that exports a model. Bumped stagecraft models would then get both checks.
Shipped
Click a lifecycle step above to view its details.