You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
feat(safe-outputs): rename upload-build-artifact to upload-build-attachment and add upload-pipeline-artifact (#404)
* feat(safe-outputs): rename upload-build-artifact to upload-build-attachment and add upload-pipeline-artifact
- Rename upload-build-artifact → upload-build-attachment to match ADO terminology
(the tool uses the build attachments REST API, not the deprecated build artifacts API)
- Add central canonical_safe_output_name() alias layer for backward compatibility:
old front-matter keys, NDJSON entries, and config are normalized to the new name
- Implement new upload-pipeline-artifact safe output that publishes files as
pipeline artifacts visible in the ADO Artifacts tab (3-step REST: create
container → upload file → associate artifact with build)
- Add ado_project_id field to ExecutionContext (from SYSTEM_TEAMPROJECTID)
- Update docs/safe-outputs.md with renamed tool, new tool, and attachment-type
clarification
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* refactor(safe-outputs): remove backward-compat alias, improve tool descriptions
- Remove canonical_safe_output_name() alias layer — no backward compatibility
for the old upload-build-artifact name
- Fix stale upload-build-artifact references in mcp.rs staged filenames/comments
- Improve MCP tool descriptions: clearly state that build attachments are NOT
visible in ADO UI and recommend upload-pipeline-artifact for user-visible files
- Add upload-build-attachment and upload-pipeline-artifact to AGENTS.md
architecture tree and README.md safe-outputs table
- Remove deprecation notice from docs/safe-outputs.md
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* fix(safe-outputs): fix swapped format args and TOCTOU file_size in MCP handlers
- Fix swapped effective_build_id/final_name in upload-pipeline-artifact
success message (the info!() log was correct but the returned
ExecutionResult message had them reversed)
- Use source_bytes.len() instead of metadata.len() for recorded file_size
in both upload-build-attachment and upload-pipeline-artifact MCP handlers,
closing a TOCTOU window where the source file could change between stat
and read
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* fix(safe-outputs): add project scope to container creation request
Include the project GUID in the container creation POST body so the
container is scoped to the project, matching the scope query param
used in the subsequent file upload step.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
---------
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
allowed-build-ids: [] # Optional — restrict target builds (skipped when targeting current build)
503
+
name-prefix: ""# Optional — prepended to the agent-supplied artifact name
504
+
max: 3# Maximum per run (default: 3)
505
+
```
506
+
507
+
**Notes:**
508
+
- Single-file only; directory uploads are not supported.
509
+
- When `build_id` is omitted and `allowed-build-ids` is configured, the allow-list check is skipped — the current build is implicitly trusted.
510
+
- Requires `SYSTEM_TEAMPROJECTID` to be available in the execution environment (set automatically by Azure DevOps).
458
511
459
512
### cache-memory (moved to `tools:`)
460
513
Memory is now configured as a first-class tool under `tools: cache-memory:` instead of `safe-outputs: memory:`. See the [Cache Memory section](./tools.md#cache-memory-cache-memory) in `docs/tools.md` for details.
0 commit comments