Skip to content

[PATCH] chore: merge develop to main - #53

Merged
alain-sv merged 16 commits into
mainfrom
release/patch-20260520-224241
May 20, 2026
Merged

[PATCH] chore: merge develop to main#53
alain-sv merged 16 commits into
mainfrom
release/patch-20260520-224241

Conversation

@alain-sv

Copy link
Copy Markdown
Contributor

Release PR created by just ship patch. Merge this PR after required checks pass; the publish workflow will bump the patch version from the merge commit token.

alain-sv added 16 commits May 13, 2026 14:20
Pin all uses of actions/checkout@v6 and actions/setup-python@v6 to
their commit SHAs across every workflow, closing the remaining
floating-tag attack surface.

- actions/checkout  → de0fac2e (v6)
- actions/setup-python → a309ff8b (v6)
…facts (#46)

Prevents parallel matrix jobs racing on the same Actions cache
reservation. Also records two CI tooling facts in AGENTS.md.
* feat: add supervaizer v2 contract primitives

* feat: add supervaizer v2 a2a action endpoint

* feat: expose supervaizer v2 registration in a2a card

* feat: add supervaizer v2 action decorator

* docs: update supervaizer v2 changelog

* precommit fix

* refactor: move controller api version to contracts

* minor

* fix: scope v2 action handlers by agent

* feat: guard supervaizer v2 agent identity

* feat: include v2 job state in sync result

* feat: add v2 resource form fields

* feat: add v2 resource option sources

* feat: add v2 awaiting form fields

* feat: load supervaizer v2 surfaces over a2a

* feat: expose local hello world v2 contract

* feat: add v2 job source target type

* feat: stream v2 action effects over a2a

* fix: advertise v2 push notifications as unsupported

* refactor: remove legacy dynamic choices

* feat: complete local hello world v2 hitl flow

* refactor: remove legacy job poll

* docs: refresh generated contract docs

* test: align v2 prompt editor fixture

* test: align v2 contact import fixture

* test: align v2 scenario builder fixture

* test: align v2 overview fixture

* test: align v2 campaign contact fixture

* feat: add v2 registration builder

* feat: type v2 dataset display metadata

* minor

* fix: precommit

* feat: add comprehensive documentation for SUPERVAIZER API, Admin Interface, CLI, Parameter Validation, Persistence, Protocols, and REST API

* minor

* chore: change copyright dates

from 2024-2025 to 2024-2026

* fix: harden agent model surface and v2 contract hygiene

Use modern typing in agent.py, keep server encrypted params internal,
document deterministic agent ids, tighten A2A health status rules, drop
legacy hello-world v2 input aliases, and clarify v2 contract fields.

* feat: enhance agent method validation and improve v2 action safety

- Introduced validation to reject agent methods using blocked module

  roots.- Added checks to ensure declared method paths are used in

  agent execution.- Enhanced v2 action results with replay safety

  metadata validation.- Updated changelog and documentation to reflect

  these changes.

* feat: add v2 resource import contracts

* test: align v2 contract fixtures

* minor

* fix: require auth for a2a controller

* minor
…alidation improvements

- Added optional `metadata` field to `V2CaseSnapshot` for case-level context.
- Implemented validation for Studio registration handshake to ensure API key consistency.
- Enhanced server API key handling for stability during reloads.
- Updated tests to cover new functionality and validation paths.
* docs: plan workspace agent grants

* docs: add Studio grant acceptance UX

* feat: add workspace agent authorization

* feat: add workspace binding protocol

* fix: stabilize workspace authorization

* ✨feat: add workspace auth helpers and use them in tests

* ✨feat: require workspace auth and tighten agent checks

* fix: require workspace auth for Studio A2A

* fix: harden workspace authorization checks

* fix: normalize malformed workspace auth inputs
…bility

- Added support for newline-delimited JSON logging when `SUPERVAIZER_LOG_FORMAT=json` is set.
- Updated logging configuration to allow structured logs for access-denial events.
- Enhanced `log_access_denied_api` and `log_access_denied_tailscale` functions to include structured fields.
- Added tests to verify structured logging outputs in `tests/test_common.py`.
@qodo-code-review

Copy link
Copy Markdown

Qodo reviews are paused for this user.

Troubleshooting steps vary by plan Learn more →

On a Teams plan?
Reviews resume once this user has a paid seat and their Git account is linked in Qodo.
Link Git account →

Using GitHub Enterprise Server, GitLab Self-Managed, or Bitbucket Data Center?
These require an Enterprise plan - Contact us
Contact us →

@alain-sv
alain-sv merged commit 9bf407c into main May 20, 2026
8 checks passed

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: d10e803f16

ℹ️ About Codex in GitHub

Codex has been enabled to automatically review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".

Comment thread src/supervaizer/common.py
def configure_controller_logging(
log_level: str,
*,
sink: TextIO = sys.stderr,

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Resolve stderr sink at call time

Avoid binding sys.stderr in a default argument here: default values are evaluated at import time, so if the process later replaces sys.stderr (for example pytest capture, embedding hosts, or runtime redirection), configure_controller_logging() will still write to the stale original stream and logs will bypass the active sink. The previous inline setup in Server.launch() resolved sys.stderr at call time; using sink: TextIO | None = None and assigning sink = sys.stderr inside the function preserves expected redirection behavior.

Useful? React with 👍 / 👎.

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