Skip to content

Per-project route addresses, empty-body calls past Google's front end, and failing internal calls shown - #54

Merged
qfeuilla merged 1 commit into
mainfrom
deploy
Oct 8, 2026
Merged

qfeuilla merged 1 commit into
mainfrom
deploy

Conversation

@qfeuilla

@qfeuilla qfeuilla commented Oct 8, 2026

Copy link
Copy Markdown
Contributor

Fixes from the latest Tangle deploy round.

  • 411 on every internal call on Cloud Run. Body-less POSTs went out over HTTP/1.1 with no Content-Length, which Google's front end refuses. They now send Content-Length: 0 (weft_core::net::EmptyBody). HTTP/2 was tried and rejected: it multiplexes a worker's held run calls on one connection, which Cloud Run caps at 100 streams.
  • Two projects can serve the same path. Routes on the shared address now sit at /connect/<tenant>/<project id>/<path> (weft_core::route::SharedMount); the overlap check is per project. A data migration rewrites stored routes. A project's own port and API domain are unchanged.
  • Stuck work says why. Failing rings and run hand-offs are kept in a new unanswered_call table and shown by weft status, weft infra status and the infra wait line.
  • Activate while infra is changing names the infra as the blocker.
  • Terraform creates Cloud Logging's service agent before the sink that writes as it (provider ~> 7.28).
  • Docs, Tangle skills and the connect library updated; both extensions bumped.

Checked locally: workspace nextest, doc tests, clippy, parse-only build, examples, all db tests, JS checks, docs build, and the e2e tests covering same-path projects, live routes, a project's own address and the infra-change refusal.

…ty, and show weft's own calls that keep failing

- Body-less POSTs (a run handed to a worker, a role's tick, the CLI's
  empty POSTs, a token exchange) send Content-Length: 0. Google's front
  end refused them with 411 over HTTP/1.1, which left every cloud
  install unable to start infra or run anything. They stay HTTP/1.1:
  HTTP/2 would put a worker's held run calls on one connection capped
  at 100.
- A route on the install's shared address sits under its project:
  /connect/<tenant>/<project id>/<path>. Two projects may serve the same
  path; the overlap check compares one project's triggers. Stored routes
  are rewritten by a data migration.
- weft's calls that keep failing (a role it cannot wake, workers it
  cannot hand a run to) are kept in unanswered_call and shown by weft
  status, weft infra status and the infra wait line.
- Activate while infra is changing names the infra as the blocker.
- Terraform makes Cloud Logging's service agent before the sink that
  writes as it.
- The assistant setups say to run independent work on parallel agents.
- Docs, Tangle skills and the connect library speak the new address;
  both extensions bumped.
@qfeuilla
qfeuilla merged commit 23adbc6 into main Oct 8, 2026
22 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant