Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
42 commits
Select commit Hold shift + click to select a range
e415e8a
feat: add managed build environments
JWThewes Aug 11, 2026
48bd335
fix: simplify environment tool selection
JWThewes Aug 11, 2026
e640dcd
fix: stage Rust installer outside tool prefix
JWThewes Aug 11, 2026
3ebea5a
fix: include native linker for Rust environments
JWThewes Aug 11, 2026
a631f45
feat: allow reviewed environment security findings
JWThewes Aug 12, 2026
848be8c
fix: reduce AgentCore base image size
JWThewes Aug 12, 2026
f702256
fix: allow managed runtime workload identities
JWThewes Aug 12, 2026
6c4a682
fix: authorize workload identity directory
JWThewes Aug 12, 2026
03fec90
fix: retain managed environment base images
JWThewes Aug 12, 2026
d87a185
fix: write verification fixtures literally
JWThewes Aug 13, 2026
88ee743
fix: avoid polynomial environment id regex
JWThewes Aug 13, 2026
48ca733
feat: add managed tool catalog
JWThewes Aug 13, 2026
d0ddab1
Merge remote-tracking branch 'origin/main' into merge/390-tool-catalog
JWThewes Aug 13, 2026
d827ca3
fix: authorize environment reset queries
JWThewes Aug 13, 2026
4f6b61c
fix: alias managed tool update fields
JWThewes Aug 13, 2026
6bf6581
docs: explain managed tool workflows
JWThewes Aug 13, 2026
ccc0065
fix: unblock managed tool builds and reset
JWThewes Aug 13, 2026
767ade6
fix: delete all managed runtime endpoints during reset
JWThewes Aug 13, 2026
f15d84d
fix: isolate managed environment Lambda packages
JWThewes Aug 13, 2026
d2ad84c
refactor: remove managed environment reset
JWThewes Aug 14, 2026
1717ae8
fix: recover managed tool builds
JWThewes Aug 14, 2026
cb11b11
fix: allow native tool verification
JWThewes Aug 14, 2026
c4dd55d
fix: allow tool recommendations
JWThewes Aug 14, 2026
3f03c61
fix: clarify accepted tool scan limits
JWThewes Aug 14, 2026
b18c7fb
fix: build dependent managed tools
JWThewes Aug 14, 2026
b2f452e
test: avoid hostname regex in tool context
JWThewes Aug 14, 2026
fa980b6
fix: preserve tools in environment snapshots
JWThewes Sep 1, 2026
1e15fbf
docs: clarify managed environment test matrix
JWThewes Sep 1, 2026
08e0525
docs: add managed environment quick start
JWThewes Sep 1, 2026
e2ca1de
refactor: share runtime compatibility check
JWThewes Sep 1, 2026
d14faf8
fix: preserve runtime validation failures
JWThewes Sep 1, 2026
0697b88
fix: require non-root runtime verification
JWThewes Sep 1, 2026
92b9228
fix: report environment assignment conflicts
JWThewes Sep 1, 2026
52b1cd6
fix: retain successful tool initialization
JWThewes Sep 1, 2026
3f1ebfd
refactor: share environment resolution
JWThewes Sep 1, 2026
23217a1
perf: use eventual read for discussion snapshot
JWThewes Sep 1, 2026
60ccee6
refactor: name environment recipes by purpose
JWThewes Sep 1, 2026
1d820a7
fix: preserve discussion assist fallback
JWThewes Sep 1, 2026
170a2a6
fix: route agent utilities through project runtime
JWThewes Sep 1, 2026
656d145
refactor: consolidate managed build lifecycle
JWThewes Sep 1, 2026
7a9482d
Merge origin/main into feat/390-managed-build-environments
JWThewes Sep 1, 2026
14883fe
test: mark managed environment revisions published
JWThewes Sep 1, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
143 changes: 143 additions & 0 deletions docs/development/testing.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,149 @@
This guide covers contributor-facing integration tests that are intentionally
separate from the managed installation documentation.

## Managed build environment deployed-stack test

Use a disposable AWS account or logical environment for this test. Managed
environment image builds use CodeBuild, ECR scanning, S3, DynamoDB, Lambda,
EventBridge, and Bedrock AgentCore resources that incur charges until they are
removed.

Start from a checkout with AWS credentials for the test account. Create the
backend and variable files if this logical environment does not already exist.
The example below uses `managed-env-demo`; substitute your configured name
consistently:

```bash
export AIDLC_TEST_ENV=managed-env-demo
./scripts/bootstrap.sh "$AIDLC_TEST_ENV"
cp terraform/environments/dev.tfvars.example \
"terraform/environments/$AIDLC_TEST_ENV.tfvars"
```

Set `environment` and `aws_region` in the new tfvars file, then deploy the
infrastructure and frontend:

```bash
./scripts/deploy-terraform.sh "$AIDLC_TEST_ENV"
./scripts/deploy-frontend.sh "$AIDLC_TEST_ENV"
```

The following outputs identify the managed environment resources used during
diagnosis:

```bash
terraform -chdir=terraform output -raw environment_registry_table_name
terraform -chdir=terraform output -raw managed_environment_repository_name
terraform -chdir=terraform output -raw managed_environment_codebuild_project_name
terraform -chdir=terraform output -raw managed_environment_control_lambda_name
terraform -chdir=terraform output -raw managed_environment_status_lambda_name
terraform -chdir=terraform output -raw managed_environment_build_context_bucket_name
terraform -chdir=terraform output -raw managed_tool_repository_name
terraform -chdir=terraform output -raw managed_tool_codebuild_project_name
terraform -chdir=terraform output -raw managed_tool_control_lambda_name
terraform -chdir=terraform output -raw managed_tool_status_lambda_name
```

Sign in as a platform administrator and open **Platform Settings ->
Environments**. The deployment publishes only Standard. Within five minutes,
the catalog bootstrap creates Java, Go, Rust, Maven, and Gradle tool families
and queues their initial versions for import.

This test covers three distinct paths:

1. **Protected baseline:** Standard supplies Node.js and Python without catalog
imports.
2. **Shipped catalog tools:** Java, Go, Rust, Maven, and Gradle exercise the
bootstrap and import path.
3. **Administrator-created tools:** `.NET SDK` is a representative custom tool
used to exercise tool creation and presets. It is not otherwise privileged
or required by the platform.

### Verify shipped catalog tools

For each shipped tool:

1. Follow its CodeBuild log.
2. Confirm the source URL, retained source digest, publisher evidence, OCI
digest, SBOM, compressed size, and core compatibility evidence are visible.
3. Confirm the version command and representative build run as the non-root
runtime user.
4. Review ECR findings. Accept Critical or High findings only for this
disposable deployment. If ECR reports the normalized artifact as
unsupported, explicitly accept that scan limitation and confirm the
acceptance remains visible.
5. Publish the version. Mark Java as recommended before publishing Maven or
Gradle.

### Verify custom tool creation

Create a `.NET SDK` tool using an official Linux ARM64 SDK archive and the
`.NET` preset. Confirm source inspection, normalization, scanning, `dotnet
--version`, and a real console build succeed, then publish it.

### Verify environment composition

Create and publish the following environments based on Standard:

| Environment | Selected tools | Path under test |
| ----------- | ---------------------------------------------- | -------------------------- |
| Go | Go | A standalone shipped tool |
| Maven | Maven; recommended Java is added automatically | Tool dependency resolution |
| .NET | The administrator-created `.NET SDK` | Custom tool composition |

For each environment, confirm the generated Dockerfile copies tools from exact
OCI digests and retains the protected base entrypoint, command, user, port, and
health behavior. Confirm the projected and actual compressed image sizes stay
below the configured AgentCore image limit.

Create projects with small repositories that exercise each selected toolchain.
In **Project Settings -> Environment**, assign each published environment and
start a new intent. Confirm the intent detail and audit views show the exact
environment revision, image digest, runtime version, endpoint, compatibility
version, tool snapshots, and passed verification result.

To verify immutable intent targeting:

1. Start an intent and record its environment revision and runtime endpoint.
2. Change the project's environment assignment.
3. Resume, rewind, cancel, and stop the original intent.
4. Confirm its detail and audit views retain the original revision and
endpoint, while a newly created intent uses the new assignment.

To verify updates:

1. Publish a second Go tool version and leave the original recommended.
2. Confirm existing environments remain unchanged.
3. Mark the new Go version recommended and confirm affected environments show a
structured tool update warning.
4. Edit one affected environment to select the new exact version, then build
and publish it.
5. Publish a new Standard revision and confirm dependent environments retain
their published revisions until **Rebuild on latest base** is used.

Inspect failures through the UI or the resource outputs above. Critical and
High findings must stop at security review until a platform administrator
accepts them. The findings and acceptance record must remain visible after
publication. Image build, container validation, and AgentCore endpoint failures
must leave the previous published revision and project assignments unchanged.

When testing is complete, delete the test intents and retire the catalog-backed
test environments in the UI. Environment and tool images are retained while
the stack exists; the non-production repositories are force-deleted with the
stack. Managed AgentCore runtimes and endpoints are created by the control
plane rather than Terraform, so delete remaining test endpoints and runtimes
in the AgentCore console before destroying the logical deployment. Use the
revision details in **Platform Settings -> Environments** to identify the
runtime ID, version, and endpoint. The resources are also tagged with
`ManagedEnvironment` and `ManagedEnvironmentRevision`.

After those resources are removed, destroy the logical deployment:

```bash
./scripts/destroy.sh "$AIDLC_TEST_ENV"
unset AIDLC_TEST_ENV
```

## Enterprise SSO integration test

The repository includes a disposable Cognito User Pool that behaves as an
Expand Down
8 changes: 7 additions & 1 deletion docs/using-the-platform/creating-intents.md
Original file line number Diff line number Diff line change
Expand Up @@ -43,10 +43,16 @@ Only repositories where you explicitly picked a branch are overridden; all other

Creating the intent opens it on the workbench in **DRAFT** state, with a **Review & start** card showing the prompt, scope, and branch (read-only — these are set at creation). Starting the intent:

1. Pins the current workflow version and snapshots the project's runtime settings.
1. Uses the workflow, runtime settings, and exact managed-environment revision
snapshotted when the intent was created.
2. Compiles the execution plan for the chosen scope.
3. Checks the repositories out, creates the intent branch, and begins the first stage.

Select the desired published environment in **Project Settings -> Environment**
before creating the intent. Reassigning the project or publishing a newer
revision afterward does not change an existing intent's image, runtime, or
endpoint. See [Managed tools and environments](managed-environments.md#select-an-environment-for-a-project).

## Intent lifecycle

| State | Meaning |
Expand Down
9 changes: 8 additions & 1 deletion docs/using-the-platform/intent-observability.md
Original file line number Diff line number Diff line change
Expand Up @@ -61,7 +61,14 @@ Selecting a node shares the same drill-down as the observability page.

## The audit page

The **Audit** button opens the graph-usage audit: how agents read the graph (compact reads vs. full documents), enrichment spend, derivation health, structure-contract compliance, and coverage findings (for example, must-have requirements not covered by any story). It is the measurement surface for tuning context efficiency.
The **Audit** button opens the graph-usage audit: how agents read the graph
(compact reads vs. full documents), enrichment spend, derivation health,
structure-contract compliance, and coverage findings (for example, must-have
requirements not covered by any story). It also records the exact managed
environment revision, image digest, runtime version, endpoint, compatibility
version, and verification result used by the intent. It is the measurement
surface for tuning context efficiency and confirming which immutable runtime
executed a run.

## Project-level metrics

Expand Down
Loading
Loading