Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
498 commits
Select commit Hold shift + click to select a range
6844256
perf(test): skip redundant type-check in jest via isolatedModules (#3…
scottschreckengaust Jun 16, 2026
aae0e66
fix(orchestration): friendly node name in the cascade reason (#247 UX…
isadeks Jun 16, 2026
51a4f1b
fix(orchestration): cascade of a no-dependents node must still refres…
isadeks Jun 16, 2026
f136d89
feat(jira): Jira Cloud integration -- parity with Linear (#288) (#302)
mayakost Jun 16, 2026
758d17b
chore(ci): default commit by github-actions (#361)
scottschreckengaust Jun 16, 2026
86fda64
chore(cicd): revert to AUTOMATION_GITHUB_TOKEN (#362)
scottschreckengaust Jun 16, 2026
93db8f6
fix(orchestration): clear rollup claim on cascade re-open so parent s…
isadeks Jun 16, 2026
e99ce50
fix(orchestration): @bgagent thread-reply ack must reply to the threa…
isadeks Jun 17, 2026
48ccc01
merge: upstream/main into deploy/247-dev (Jira #288 + LinearPostResul…
isadeks Jun 17, 2026
14cce82
feat(orchestration): embed the integration node's combined preview in…
isadeks Jun 17, 2026
37a9ad3
fix(agent): pin AgentCore log-delivery resources to deployed identity…
isadeks Jun 17, 2026
a5d00a6
fix(agent): also pin the 2 AgentCore Delivery links (#247 #58 deploy-…
isadeks Jun 17, 2026
08d73de
fix(orchestration): integration node no longer floods the parent epic…
isadeks Jun 17, 2026
834562c
feat(orchestration): route @bgagent comments left on the parent epic …
isadeks Jun 17, 2026
0e2806a
fix(jira): seed explicit JSON placeholder for stack-wide webhook secr…
mayakost Jun 17, 2026
5f08628
fix(orchestration): thread the trigger comment's issue id so a parent…
isadeks Jun 17, 2026
e44cd43
fix(orchestration): idempotency-claim parent-epic comment handling — …
isadeks Jun 17, 2026
d817ab8
fix(orchestration): bot must not trigger on its OWN comments — kill t…
isadeks Jun 17, 2026
0d5c6b0
feat(orchestration): platform settles the comment + sub-issue on iter…
isadeks Jun 17, 2026
d1ce1ec
refactor(agent): make the #58 log-delivery pins an OPT-IN, stack-gate…
isadeks Jun 17, 2026
d68be9e
Merge branch 'main' into deploy/247-dev
isadeks Jun 17, 2026
42a9c83
chore(security): allowlist orchestration idempotencyKey test fixtures…
isadeks Jun 17, 2026
533316c
style(agent): fix ruff lint + format to unblock CI build (#247 PR #373)
isadeks Jun 17, 2026
93a486d
fix(security): don't read the OAuth secret value in the orchestration…
isadeks Jun 17, 2026
5827092
docs(security): mark the orchestration_debug CodeQL alert as a docume…
isadeks Jun 17, 2026
d072709
style(cdk): resolve eslint debt blocking the PR #373 build (#247)
isadeks Jun 17, 2026
7fdda3d
test(cdk): make the _KNOWN_WRITEABLE_WORKFLOW_IDS parser tolerant of …
isadeks Jun 17, 2026
58da79a
docs(adr): ADR-017 — Linear agent-session as a future (flag-gated, po…
isadeks Jun 17, 2026
161d1fa
docs(adr): ADR-017 — record the Agents-API Preview spike findings (UX…
isadeks Jun 17, 2026
3a2456b
docs(adr): ADR-017 — agent-session spike re-run resolves the 10s-vs-l…
isadeks Jun 17, 2026
97fe24c
fix(jira): reactive token refresh + retry on 401 feedback-comment POS…
mayakost Jun 17, 2026
f241a71
docs(adr): ADR-017 — record that the agent-session toggle is not a no-op
isadeks Jun 17, 2026
17eba2f
perf(test): disable Lambda bundling in CDK unit-test synths (~15x per…
scottschreckengaust Jun 17, 2026
4f0b554
docs(governance): allow in-place refinement of accepted ADRs (refine …
scottschreckengaust Jun 18, 2026
200b527
feat(linear): teach agent to fetch attachments + docs via Linear MCP
isadeks May 27, 2026
d41ecad
fix(linear): wire AttachmentsBucket into LinearIntegration
isadeks May 27, 2026
44b3ac3
fix(linear): skip uploads.linear.app images in description pre-fetch
isadeks May 27, 2026
69d1898
fix(linear): teach agent to detect save_issue silent no-ops
isadeks May 27, 2026
4bff39d
chore(deps): upgrade dependencies (#367)
backgroundagents Jun 18, 2026
f2a9496
style(cdk): extract MAX_HINTED_ATTACHMENT_TITLES const in linear-issu…
isadeks Jun 18, 2026
66f78bc
feat(ops): automated ephemeral stack cleanup script (#109)
scottschreckengaust Jun 18, 2026
4eab526
merge: bring #247 orchestration + Linear-MCP attachments onto linear-…
isadeks Jun 18, 2026
a7dd713
merge: bring linear-vercel current with aws-samples/main (66f78bc)
isadeks Jun 18, 2026
386b586
fix(agent): persist build_passed/lint_passed to task record + skip in…
isadeks Jun 18, 2026
ada624b
fix(agent): annotate expr_values dict[str, object] + wrap lint-skip l…
isadeks Jun 18, 2026
419d3a9
fix(orchestration): clear stuck 👀 on disambiguation + smarter no-matc…
isadeks Jun 18, 2026
130b645
fix(agent): run shell-chained verify commands through bash -lc (#72 —…
isadeks Jun 18, 2026
9bb7cca
feat(orchestration): recovery cascade — comment-fix a failed child re…
isadeks Jun 18, 2026
4938b07
fix(orchestration): recovery resets skipped SUBTREE + reopens panel/r…
isadeks Jun 18, 2026
04b0b44
fix(orchestration): recovery must persist skipped→blocked BEFORE rele…
isadeks Jun 18, 2026
d3b0c2c
chore(deps): upgrade dependencies (#384)
backgroundagents Jun 18, 2026
b8a9ba2
chore(deps): upgrade dependencies (#394)
backgroundagents Jun 19, 2026
eb9f881
perf(orchestration): release ready children in bounded-parallel chunk…
isadeks Jun 21, 2026
8b98a50
Revert "perf(orchestration): release ready children in bounded-parall…
isadeks Jun 21, 2026
a391d38
docs(linear): document adding a sub-issue to a running epic (re-apply…
isadeks Jun 21, 2026
a55495d
feat(cli): operator commands for repos, platform introspection, and d…
krokoko Jun 22, 2026
0d9c7e2
fix(cdk): allow-list JiraIntegration* secret in bootstrap policy (#40…
isadeks Jun 22, 2026
c81e079
fix(cdk): grant s3:PutBucketVersioning in bootstrap policy (#404) (#405)
isadeks Jun 23, 2026
440f848
fix(cdk): grant lambda Tag/UntagResource on event-source-mappings (#4…
isadeks Jun 23, 2026
e076f8b
chore(deps): upgrade dependencies (#395)
backgroundagents Jun 23, 2026
e6ce821
chore(deps): actions: bump codecov/codecov-action (#397)
dependabot[bot] Jun 23, 2026
7a01d24
merge: bring linear-vercel current with aws-samples/main (e6ce821)
isadeks Jun 23, 2026
90f97de
fix(cdk): grant lambda Put/DeleteProvisionedConcurrencyConfig (#409) …
isadeks Jun 23, 2026
e42df00
docs(adr): renumber Linear agent-session ADR 017→018 (collision with …
isadeks Jun 23, 2026
6317731
feat(linear): #299 Mode B — auto-decompose an issue into a sub-issue …
isadeks Jun 23, 2026
95b8fd6
refactor(cdk): collapse AgentSessionRole trust+grant into admitComput…
krokoko Jun 23, 2026
82cfd18
fix(linear): #299 Mode B write-back — relation type is an enum + rest…
isadeks Jun 23, 2026
05a699d
fix(linear): A6 comment-iteration — answer questions, don't fake '✅ U…
isadeks Jun 23, 2026
11ad986
feat(linear): iteration-UX foundation — maturing-reply renderer + thr…
isadeks Jun 23, 2026
ab27dc8
docs(skills): audit deploy/submit-task/troubleshoot/status — stale cl…
isadeks Jun 23, 2026
543090b
feat(linear): iteration-UX platform side — one maturing reply per rou…
isadeks Jun 23, 2026
718b118
feat(linear): iteration-UX agent side — suppress redundant progress c…
isadeks Jun 23, 2026
102aba5
fix(cdk): iteration-UX running-total — GetItem per task, not a GSI pr…
isadeks Jun 23, 2026
cc6d912
fix(linear): iteration-UX — suppress standalone 🖼️ screenshot comment…
isadeks Jun 23, 2026
5aff058
feat(linear): iteration-UX — clickable PR link in reply + fix screens…
isadeks Jun 24, 2026
979ab69
docs: fix broken site images + in-body links + Slack app-install word…
isadeks Jun 24, 2026
489c2d2
fix(linear): iteration-UX — append preview link to the iteration repl…
isadeks Jun 24, 2026
d7f8b81
fix(linear): grant screenshot processor dynamodb:Query on LinearIssue…
isadeks Jun 24, 2026
fbdc53a
fix(linear): converge iteration preview link with terminal-settle (AB…
isadeks Jun 24, 2026
d81d887
fix(linear): iteration preview = clickable image thumbnail, not a dep…
isadeks Jun 24, 2026
38c5fa5
fix(linear): render iteration preview from durable DDB read, not the …
isadeks Jun 24, 2026
c9bb825
feat(#299): two-stage decomposition planner — critical assessor + dec…
isadeks Jun 24, 2026
4089c96
fix(#299): assessor splits on shippable value, not internal parts/bui…
isadeks Jun 25, 2026
4f9ec3d
fix(#299): assessor teaches the general discriminator, not enumerated…
isadeks Jun 25, 2026
7785f19
fix(#299): reframe decompose assessor around the reliability objective
isadeks Jun 25, 2026
20a4fed
fix(#299): agent's assessment decides whether to split — drop forced-…
isadeks Jun 25, 2026
9105a00
feat(slack): channel→repo default mapping (Slack parity F2)
isadeks Jun 25, 2026
472b45d
fix(ux): stress-audit findings — 7 real fixes across Mode B + iterati…
isadeks Jun 25, 2026
251f5ea
fix(ux): clear the audit's deferred-but-real tail (5 fixes)
isadeks Jun 25, 2026
dc34d1b
chore(cdk): auto-reclaim disk before deploy (clean:disk dep) — fix EN…
isadeks Jun 25, 2026
5e4ac17
chore(cdk): gate clean:disk's uv/docker prune on low free disk
isadeks Jun 25, 2026
338615f
fix: two bugs that prevent ECS Fargate from working (#494)
fibanez Jun 25, 2026
dbf685a
fix(orch): surface integration-node build failures (debuggability gap)
isadeks Jun 29, 2026
9e2bd45
fix(agent): build-verify timeout reads as 'timed out', not 'build fai…
isadeks Jun 29, 2026
e8a15ef
fix(agent-classifier): recognize 'Agent session error (subtype=…)' wr…
isadeks Jun 29, 2026
fc54da6
feat(agent): stuck/runaway guard — break a repeating-failing-command …
isadeks Jun 29, 2026
ed7445f
docs: cherry-pick manifest for the debuggability arc
isadeks Jun 29, 2026
1043269
feat(linear): mid-run liveness heartbeat on the iteration reply
isadeks Jun 29, 2026
10d0764
docs: mark a fix heartbeat built in the cherry-pick manifest
isadeks Jun 29, 2026
c47e486
fix: heartbeat covers STANDALONE iterations too, not just orchestration
isadeks Jun 29, 2026
32a6e09
fix: heartbeat resolves the reply issue from linear_issue_id for stan…
isadeks Jun 29, 2026
5e9a193
fix: stuck-guard is advisory-only — drop the bail, keep a one-time steer
isadeks Jun 29, 2026
b812e49
fix: post-agent build gate reports INERT (exit 127 / no-such-task), n…
isadeks Jun 29, 2026
2fd5fca
fix: enable corepack in the agent image so yarn/pnpm resolve
isadeks Jun 29, 2026
4757974
docs: manifest — several fixes main-bound, a fix now advisory-only, a…
isadeks Jun 29, 2026
bf66136
Merge remote-tracking branch 'upstream/main' into feat/slack-channel-…
isadeks Jun 29, 2026
8cb7cfa
wire ECS/Fargate substrate (context-gated) at 32GB/8vCPU for heavy bu…
isadeks Jun 29, 2026
11fb3a5
bump ECS Fargate to 64GB/16vCPU + BUILD_VERIFY_TIMEOUT_S=3600
isadeks Jun 29, 2026
82f57f3
fix(ecs): write task payload to S3, not inline overrides (#502)
isadeks Jun 29, 2026
4e03e44
chore: repo cleanup — roadmap removal, CLI dedupe, doc hygiene (#505)
krokoko Jun 30, 2026
e1a9230
fix(linear): grant screenshot processor dynamodb:GetItem on TaskTable…
isadeks Jun 30, 2026
27d7959
feat(cdk): single source of truth for invocable Bedrock models, conte…
isadeks Jun 30, 2026
53a13cb
feat: Bedrock cost attribution — session tags, request metadata, and …
krokoko Jun 30, 2026
2329001
fix(linear): harden + document the agent-mode pitfall (comments rende…
isadeks Jul 1, 2026
777ee0e
fix(ecs): map full payload to run_task so channel/build/cedar fields …
isadeks Jul 1, 2026
5a886bb
fix(ecs): grant task role GetSecretValue on bgagent-{linear,jira}-oau…
isadeks Jul 1, 2026
37a5c88
feat: unified task replay bundle for operators (#515) (#523)
krokoko Jul 1, 2026
172ec71
test(fix): stop context-hydration flake — delete ambient MEMORY_ID in…
isadeks Jul 1, 2026
f76c2d3
fix(linear): stop Mode B decompose from silently timing out on large …
isadeks Jul 1, 2026
c4b2b7e
feat(ci): dead-code detection gate — knip + no-unused-vars + vulture …
ClintEastman02 Jul 1, 2026
2de7e8c
chore(deps): upgrade dependencies (#522)
backgroundagents Jul 1, 2026
facb90c
fix(linear): give the Mode B decompose assessor repo context (ABCA-492)
isadeks Jul 1, 2026
7723355
docs(onboarding): operator-path fixes across QUICK_START + /setup + /…
isadeks Jul 2, 2026
29b0e01
fix(linear): deepen planner repo context + surface underspecified :de…
isadeks Jul 2, 2026
0017872
feat(#299): P1 — coding/decompose-v1 agent workflow (scaffolding)
isadeks Jul 3, 2026
19c39c0
feat(#299): P2 — decompose-v1 workflow + agent delivers plan as artifact
isadeks Jul 3, 2026
11442b9
feat(#299): agent-native decompose — webhook dispatches plan task, re…
isadeks Jul 3, 2026
274d8e5
refactor(#299): retire the inline decomposition planner (P5 cleanup)
isadeks Jul 3, 2026
db5a1fc
fix(#299): claim-once the decompose plan reconcile (stop duplicate pr…
isadeks Jul 5, 2026
44522e7
fix(#299): parse the plan even when the agent's message has braces be…
isadeks Jul 5, 2026
d9e6c7b
feat(#299): interactive revise loop — deny a plan with feedback → re-…
isadeks Jul 6, 2026
f0c51ed
fix(#299): stop planning-thread clutter + garbage revision run (3 bug…
isadeks Jul 6, 2026
ba12771
fix(#299): revise feedback no longer trips the content-policy guardra…
isadeks Jul 6, 2026
118bc24
feat(linear): first-time-user UX — labels help, plain-English plans, …
isadeks Jul 6, 2026
96ebaf1
fix(agent): sharpen clarify-before-spend to catch bare quality/goal a…
isadeks Jul 6, 2026
2135efe
feat(agent): clarify-before-spend via a deterministic request_clarifi…
isadeks Jul 6, 2026
a83d090
fix(orchestrator): pin read-only workflows to agentcore compute + hon…
isadeks Jul 6, 2026
98736c1
fix: baseline gitleaks false-positive test fixture (#530) (#534)
mandeep408 Jul 6, 2026
d1613a4
fix(orchestrator): planning inherits repo compute; honest decompose-f…
isadeks Jul 6, 2026
7617d72
fix(ecs): wire ARTIFACTS_BUCKET_NAME into the Fargate task (ECS-parit…
isadeks Jul 6, 2026
cb7c8c6
feat(compute): guard compute_type=ecs against a stack without the ECS…
isadeks Jul 6, 2026
a2e80db
fix(decompose): revise-loop QA batch — reject-guard, over-cap, nudge,…
isadeks Jul 6, 2026
f63b90b
fix(decompose): second PM QA batch — clarify-resume, mention word, si…
isadeks Jul 6, 2026
cc077da
fix(decompose): close the short-negation-with-instruction gap (T1, li…
isadeks Jul 6, 2026
f524f8c
feat(decompose): direct-manipulation command grammar for pending plan…
isadeks Jul 7, 2026
665414f
feat(decompose): mature the plan comment in place on structural comma…
isadeks Jul 7, 2026
37c2ada
feat(decompose): warm repo digest — cache exploration across revise r…
isadeks Jul 7, 2026
e038d69
fix(fanout): render the PR link on ✅ success, not only on ⚠️ (F-prlink)
isadeks Jul 7, 2026
a8632ff
feat(decompose): gate :decompose→single-task behind approval (F-singl…
isadeks Jul 7, 2026
1d57a11
feat(decompose): semantic revise matures the plan comment in place + …
isadeks Jul 7, 2026
c5c71b2
docs(decompose): plan-mode design + merge-handoff docs (+ Starlight m…
isadeks Jul 7, 2026
12c7a4a
chore(docs): tidy comment attributions + remove transient manifest
isadeks Jul 7, 2026
5b91595
docs(agents): split AGENTS.md and add post-merge lint workflow (#191)…
krokoko Jul 7, 2026
b93dcc6
fix(integ): gate integ CI on the existing deploy environment (#535)
ayushtr-aws Jul 7, 2026
953c099
chore(deps): actions: bump the all-actions group with 6 updates (#528)
dependabot[bot] Jul 7, 2026
6edfe87
chore(deps): upgrade dependencies (#526)
backgroundagents Jul 7, 2026
05f727b
feat(docs): add markdown-link-check to docs CI (#259) (#300)
ClintEastman02 Jul 7, 2026
2f63ad5
fix(#299): self-merge no longer corrupts the plan + dedup duplicate d…
isadeks Jul 7, 2026
1bf5392
fix(#299): revise edits the current plan (visible diff) + wrong-menti…
isadeks Jul 7, 2026
5e9d410
fix(#299): kill the silent :auto window, board-state on decompose, cl…
isadeks Jul 7, 2026
ba3f936
fix(security): suppress orch fixture via stopword, not SHA fingerprin…
mandeep408 Jul 7, 2026
a2fb58e
fix(#299): revise EDITS the current plan deterministically (no re-der…
isadeks Jul 8, 2026
7255219
fix(#299): settle 👀 on plan commands + revert :decompose to not-start…
isadeks Jul 8, 2026
ad05148
feat(#299): right-size ECS decompose planning onto a smaller Fargate …
isadeks Jul 8, 2026
2c31b97
docs(#299): document decompose plan-first mode + ECS right-sized plan…
isadeks Jul 8, 2026
8304221
fix(#299): move cdk-nag suppressions onto the shared ECS roles (was b…
isadeks Jul 8, 2026
19f4e52
chore(deps): upgrade dependencies (#543)
backgroundagents Jul 8, 2026
6e4151b
fix(#299): skip the pre-agent build/lint baseline for read-only workf…
isadeks Jul 8, 2026
385e32f
fix(#299): persona-stress decompose findings — revise visibility + co…
isadeks Jul 8, 2026
4bc412c
fix(#299): revert escalated-revise issue from In Progress once the re…
isadeks Jul 8, 2026
def0076
test(#299): AgentStack ECS gate now provisions both task defs (build …
isadeks Jul 8, 2026
21a5d4a
fix(#299): decompose names its assumption on an ambiguous target (PM …
isadeks Jul 8, 2026
b3e49c5
fix(#247): ECS RunTask on task-def FAMILY (deploy-race) + retry-vs-es…
isadeks Jul 8, 2026
63a12dc
feat(errors): 3-way transient/service/user classification + auto-retr…
isadeks Jul 8, 2026
6394a59
fix(errors): classify a build/verify command TIMEOUT (live-caught ABC…
isadeks Jul 8, 2026
6340aba
fix(jira): pin coding/new-task-v1 workflow_ref in webhook processor (…
ayushtr-aws Jul 8, 2026
b7bec9a
feat(#299): converge decompose thread on Mode-A shape — frozen plan r…
isadeks Jul 8, 2026
3cc65b5
feat(agent): observable blocker signal + bounded self-remediation (#2…
krokoko Jul 8, 2026
9467a94
docs(jira): align setup guide with implemented behavior (#552) (#554)
ayushtr-aws Jul 8, 2026
4a85c6b
fix(#247): re-trigger a terminal epic RETRIES its failed/skipped chil…
isadeks Jul 8, 2026
a2f9c51
fix(#247): epic retry must salt the idempotency key with the prior ta…
isadeks Jul 8, 2026
676da58
fix(#247): epic-retry UX — dedup the retry note + reposition the live…
isadeks Jul 8, 2026
092361e
feat(observability): correlation envelope across orchestrator logs, T…
krokoko Jul 8, 2026
3d84879
Merge remote-tracking branch 'upstream/main' into fix/492-decompose-r…
isadeks Jul 8, 2026
dd8b2d5
fix(#247): reconcile a build-failed child's Linear state out of In Re…
isadeks Jul 8, 2026
c14cba6
fix(agent): pre-agent build/lint baseline uses the 30min verify ceili…
isadeks Jul 8, 2026
7cb4a87
fix(agent): ensure claude-code native binary is placed at image build…
isadeks Jul 9, 2026
f012732
fix(#247): classify the claude Exec-format/broken-shim failure with r…
isadeks Jul 9, 2026
a6eeb8e
fix(#247): settle a build-failed child's ✅ reaction to ❌, not just it…
isadeks Jul 9, 2026
8035b71
fix(#247): ENOSPC/OOM build kills are infra faults, not build failure…
isadeks Jul 9, 2026
4c6ddde
chore: default agent model -> Opus 4.8 + max_turns 100->200 (port of …
isadeks Jul 9, 2026
f1ee965
fix(agent): explain WHY a task hit max_turns + catch loop-of-variatio…
isadeks Jul 9, 2026
545d32a
fix(#247): don't over-claim on a max_turns spin — offer BOTH remedies…
isadeks Jul 9, 2026
67d84db
fix(agent): log stdout on run_cmd failure so build-gate failures are …
isadeks Jul 9, 2026
4e1ea54
fix(agent): pre-agent baseline OOM-kill (exit 137) is infra, not 'alr…
isadeks Jul 9, 2026
cf34086
fix(cdk): raise BUILD task memory 64→120 GB (max Fargate) — ABCA-662 …
isadeks Jul 9, 2026
8a311a8
fix(agent): route an env-prefixed verify command (VAR=val cmd) throug…
isadeks Jul 9, 2026
ed7f9f4
fix(ci): remove broken integ teardown safety net + map stack name to …
ayushtr-aws Jul 9, 2026
19e394c
fix(cdk): cap jest maxWorkers 50%→25% — decouple build peak RAM from …
isadeks Jul 9, 2026
123a3af
style(agent): ruff one-line the needs_shell expr (self-mutation guard)
isadeks Jul 9, 2026
9e27e3a
fix(agent): mise-trust NESTED config roots, not just the repo root (A…
isadeks Jul 9, 2026
3fe99c9
fix(agent): surface the FAILING line from a parallel build DAG, not j…
isadeks Jul 9, 2026
510c7fb
style(agent): ruff quote-normalize in _FAILURE_LINE_MARKERS (self-mut…
isadeks Jul 9, 2026
3fbc6fb
fix(agent): stream build/lint verify output live → full log reaches C…
isadeks Jul 9, 2026
79e35ec
style(agent): ruff one-line streaming test calls (self-mutation guard)
isadeks Jul 9, 2026
7a2bde9
fix(cdk): make ecs-strategy top-of-file import hermetic vs ambient env
isadeks Jul 9, 2026
3fc9060
fix(cdk): grant ec2:DescribeAvailabilityZones to ECS agent task role …
isadeks Jul 9, 2026
5ea9670
fix(build): decouple cdk-test jest workers from cores + add pytest pe…
isadeks Jul 10, 2026
803c44b
fix(agent): pytest-timeout method thread→signal so a hung test is act…
isadeks Jul 10, 2026
7ff91bf
fix(agent): bound the aws_session concurrency test's Barrier + joins …
isadeks Jul 10, 2026
87c2ecf
perf(cdk): raise ECS jest workers 2→3 for the build gate (cdk:test is…
isadeks Jul 10, 2026
cf2408e
fix(cdk): normalize after cursor case + colon-truncation in approval-…
AshrafBen10 Jul 10, 2026
b16f062
fix(security): suppress uv-missing-dependency-cooldown on agent/pypro…
mandeep408 Jul 10, 2026
68b89e4
perf(cdk): ECS jest workers 3→4 (measured — cdk:test peaks ~2.2 GB, n…
isadeks Jul 10, 2026
1e607aa
fix(cdk): skip the redundant pre-push TEST hook in the agent containe…
isadeks Jul 10, 2026
db52d5f
feat(cli): add Jira invite-user command (#559)
ayushtr-aws Jul 10, 2026
5df1351
fix(agent): faulthandler watchdog + session-cache reset to kill the E…
isadeks Jul 10, 2026
309ce25
fix(cdk): grant the ECS task role AgentCore Memory write (F-2 ECS-par…
isadeks Jul 10, 2026
e2ee19c
fix: post-agent build OOM — prevent (serialize) + classify (137=infra…
isadeks Jul 11, 2026
3af6cc3
chore(deps): uv: bump the all-python group across 1 directory with 3 …
dependabot[bot] Jul 13, 2026
220131e
fix(errors): max_turns stays "Exceeded max turns" — observe the repea…
isadeks Jul 14, 2026
d6f4634
fix(bootstrap): grant missing Update* actions for DNS-firewall associ…
isadeks Jul 14, 2026
f765219
test(fix): stop context-hydration flake — delete ambient MEMORY_ID in…
isadeks Jul 14, 2026
3e2d9c7
Merge remote-tracking branch 'upstream/main' into linear-vercel
isadeks Jul 14, 2026
002079d
fix(workflows): repo-bound task without workflow_ref → coding/new-tas…
isadeks Jul 14, 2026
3fc1963
fix(fanout): render the PR link on ✅ success, not only on ⚠️ (ABCA-58…
isadeks Jul 14, 2026
65e96a8
feat(jira): post final status comments with cost, turns, and duration…
ayushtr-aws Jul 14, 2026
a746a9d
ci: add automated PR review gate workflow (#42)
isadeks Jul 14, 2026
8703f55
fix(ecs): write task payload to S3 instead of 8 KB containerOverrides…
isadeks Jul 14, 2026
4466a02
docs: add automated PR review gate setup guide (#43)
isadeks Jul 14, 2026
22705e8
feat(jira): transition originating issue across workflow as tasks pro…
ayushtr-aws Jul 14, 2026
8e31ac1
fix(agent): kill ECS baseline-build hang + early Linear ACK (ABCA-707)
isadeks Jul 15, 2026
a85ec68
fix(linear): start new work from a follow-up comment on a PR-less tas…
isadeks Jul 15, 2026
a9efaa6
Merge remote-tracking branch 'upstream/main' into chore/merge-main-in…
isadeks Jul 15, 2026
6dfb1e4
fix(ecs): drop over-privileged artifacts grant from ECS task role (mi…
isadeks Jul 15, 2026
98fed6e
fix(review-gate): sanitize Idempotency-Key to API-allowed charset (#48)
isadeks Jul 15, 2026
0565c1b
Revert "fix(review-gate): sanitize Idempotency-Key to API-allowed cha…
isadeks Jul 16, 2026
67acd37
Revert "docs: add automated PR review gate setup guide (#43)"
isadeks Jul 16, 2026
c2dcf93
Revert "ci: add automated PR review gate workflow (#42)"
isadeks Jul 16, 2026
0132d6d
fix(errors): classify agent-session/Exec-format failures + 3-way tran…
isadeks Jul 17, 2026
5ec6e14
fix(deps): bump astro to 7.1.3 + re-resolve brace-expansion to clear …
scottschreckengaust Jul 21, 2026
9549473
fix(agent): use GIT_AUTHOR/COMMITTER env vars instead of git config -…
scottschreckengaust Jul 21, 2026
beef46a
feat(jira): include Jira attachments and recent comments in task cont…
ayushtr-aws Jul 21, 2026
30d7b36
feat(tooling): add /review_prs command to batch-review a filtered set…
scottschreckengaust Jul 21, 2026
238eb30
feat(ecs): make the ECS Fargate compute backend usable (context-gated…
isadeks Jul 21, 2026
6bb51c5
Merge remote-tracking branch 'upstream/main' into lv-merge-main
isadeks Jul 22, 2026
c0bb849
fix(deps): re-resolve svgo + fast-xml-parser + fast-uri to clear osv-…
isadeks Jul 21, 2026
38dab2d
fix(merge): resolve lv↔main semantic conflicts surfaced by the build
isadeks Jul 22, 2026
2151382
docs(merge-check): add ecs post-merge marker
Jul 22, 2026
bedc5a0
merge: integrate abca-736 (merge-verify-ecs) sub-issue into epic inte…
Jul 22, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
77 changes: 77 additions & 0 deletions .abca/commands/commit.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,77 @@
# Commit to ABCA repo

## Persona

Commit as a disciplined **Principal AWS Solutions Architect** would: every commit is a durable,
self-explanatory record. Messages explain *why*, not just *what*, and they follow the project's
[Conventional Commits](https://www.conventionalcommits.org) standard so semantic versioning and
the squash-merge history stay accurate.

## Before You Commit

1. **Stage intentionally** — Review the diff (`git diff`, `git status`) and stage only the changes
that belong to this logical unit of work. Do not blanket-add unrelated files.
2. **Stay off `main`** — All work flows through a feature branch named
`(feat|fix|chore|docs)/<issue-number>-short-description`. If you are on `main`, stop and
create a branch/worktree first.
3. **Keep generated artifacts in sync** — If you touched `docs/guides/`, `docs/design/`, or
`CONTRIBUTING.md`, regenerate and stage the Starlight mirror (`mise //docs:sync`). If you
changed `cdk/src/handlers/shared/types.ts`, ensure `cli/src/types.ts` is updated in the same
commit.
4. **Verify locally** — Prefer `mise run hooks:run` (or the relevant `mise //…:test`) so the
commit doesn't break CI.

## Conventional Commit Format

```
<type>(<scope>): <short summary>

<body — the motivation: why this change, not a restatement of the diff>

<footer — issue refs and breaking changes>
```

### Rules

- **Title** — `<type>(<scope>): <summary>`, lowercase, imperative mood, **no trailing period**,
ideally ≤ 72 chars.
- **Type** — one of:
- `feat:` — a new feature (bumps MINOR)
- `fix:` — a bug fix (bumps PATCH)
- `chore:` — tooling, deps, or maintenance (no release bump)
- `docs:` — documentation only
- (also acceptable when they fit: `refactor:`, `test:`, `ci:`, `build:`, `perf:`)
- **Scope** — the affected module/package, e.g. `orchestrator`, `cdk`, `cli`, `agent`, `docs`,
`security`, `jest`. Pick the narrowest accurate scope.
- **Body** — describe motivation and context (the *why*). Wrap at ~72 chars. Optional for
trivial changes but expected for anything non-obvious.
- **Footer** — reference the governing issue with `Fixes #123` or `Closes #123`. For breaking
changes, add a `BREAKING CHANGE: <description>` line; MAJOR bumps are done explicitly.

### Examples

```
feat(orchestrator): add retry logic for transient GitHub API failures

The orchestrator now retries GitHub API calls up to 3 times with
exponential backoff when it receives 5xx responses during pre-flight.

Closes #123
```

```
fix(cli): keep request types in sync with the API shared types

Closes #148
```

```
docs(design): document Cedar HITL soft-deny gate behavior
```

## After Committing

- Confirm the message renders correctly (`git log -1`).
- Since maintainers squash-merge, keep the **PR title and description** in the same Conventional
Commit form — they become the final commit message.
- Push to the feature branch and open/update the PR against `main`.
161 changes: 161 additions & 0 deletions .abca/commands/review_pr.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,161 @@
# Review Pull Request in ABCA

## Persona

Review as a **Principal AWS Solutions Architect**. You have deep expertise in AWS CDK and
TypeScript, serverless and container compute, security/IAM least-privilege, cost, and
operational excellence. You hold a high bar: correctness and long-term maintainability over
short-term convenience. You are direct, specific, and you justify every concern with a concrete
risk, a file/line reference, and (where possible) a suggested fix. You distinguish blocking
issues from nits, and you never rubber-stamp.

This is **ABCA (Autonomous Background Coding Agents on AWS)** — a self-hosted platform for
background coding agents. Treat the review through the lens of that mission: changes must keep
the control plane reliable, bounded, and improvable.

## Review Process

### Stage 1: Understand the Context

1. Read the PR title and description carefully — does it explain *why*, not just *what*?
2. Identify and read linked issues with `gh issue view <n>`. Confirm the issue carries the
`approved` label and that the work matches the stated acceptance criteria (see
[ADR-003 contribution governance](../../docs/decisions/ADR-003-contribution-governance.md)).
3. Confirm the branch name follows `(feat|fix|chore|docs)/<issue-number>-short-description`.
A branch without an issue reference is unauthorized work — flag it.
4. Review the commit history (`gh pr view <n> --json commits` / `git log`) to understand the
progression of changes. Note labels, assignees, and CI check status.

### Stage 2: Vision & Direction Alignment

Before judging the code, judge the *intent*. Evaluate the change against the project's
north star in [docs/design/VISION.md](../../docs/design/VISION.md):

- **Fire-and-forget default; escalate by policy** — Does the change preserve the asynchronous,
unattended path for submitters? Does it make human escalation reachable, attributable, and
policy-gated rather than turning tasks into live pair-programming?
- **Bounded blast radius & cost** — Does it respect admission, orchestration, memory, policy,
HITL gates, cost limits, and observability? Does it widen blast radius without a documented
rationale?
- **Tenet trade-offs** — If the change trades a tenet away, is there an explicit ADR or RFC
([docs/decisions/](../../docs/decisions/)) documenting the decision? Undocumented tenet
trades are a blocking concern.
- **Reviewable outcomes** — Does the change keep outcomes inspectable (PRs, review comments,
validation evidence, audit trail)?

If the change clearly advances the vision and respects the tenets, it belongs. If not, say so
and point to the specific tenet or ADR.

### Stage 3: Deep Dive — Code, Security & Operations

**MANDATORY: you MUST invoke the available review plugins/agents — never substitute a
hand-review for them.** This is a hard process requirement, not a suggestion, and it holds
**regardless of how small or trivial the diff appears**. A "tiny" or "config-only" change is
not grounds to skip them; the plugins exist precisely to catch the blind spots a hand-review
misses. Invoke every agent whose scope the diff touches and fold its findings into your report.
You may only omit an agent whose scope the diff genuinely does not touch (e.g. skip
`silent-failure-hunter` when there is no error-handling code) — and when you do, **state in the
report which agents you ran and which you omitted, with a one-line reason for each omission**.
Omitting an in-scope agent, or reviewing by hand "because it's simple," is a process failure.

- `/review` or the **pr-review-toolkit** agents — `code-reviewer` (guidelines & style),
`silent-failure-hunter` (error handling & fallbacks), `type-design-analyzer` (new types),
`comment-analyzer` (comment accuracy), `pr-test-analyzer` (test coverage gaps).
- `/security-review` — for any IAM, Cedar policy, network, secrets, or input-gateway change.

Then apply principal-architect judgment over the diff:

- **Correctness & contracts** — Logic, edge cases, race conditions. If shared API shapes in
`cdk/src/handlers/shared/types.ts` changed, confirm `cli/src/types.ts` was kept in sync.
If a Cedar engine pin moved, confirm *both* `cedarpy` and `@cedar-policy/cedar-wasm` moved
together and parity fixtures were refreshed.
- **Security & least privilege** — IAM scoping, Cedar HITL gates, secrets handling, path-
traversal guards, input validation. Fail closed.
- **Bootstrap policy coverage (CDK deploy IAM)** — When the PR adds or changes constructs,
stacks, or handlers that introduce new CloudFormation resource types (new AWS services,
`AWS::SQS::Queue`, `AWS::CloudFront::*`, `AWS::SecretsManager::Secret`, Lambda layers,
application S3 buckets, etc.), verify the least-privilege bootstrap bundle was updated in
the **same PR**:
1. `cdk/src/bootstrap/policies/*.ts` — new actions and resource ARN patterns on the
CloudFormation execution role.
2. `cdk/src/bootstrap/resource-action-map.ts` — entry for each new CFN type (minimum
create-time IAM actions).
3. `BOOTSTRAP_VERSION` bumped in `cdk/src/bootstrap/version.ts` (minor when adding
permissions) and artifacts regenerated (`mise //cdk:bootstrap:generate` → committed
`cdk/bootstrap/policies/*.json`, `bootstrap-template.yaml`, `BOOTSTRAP_HASH`).
4. `docs/design/DEPLOYMENT_ROLES.md` golden baseline updated (required by
`cdk/test/bootstrap/golden-baseline.test.ts`).
5. `cdk/test/bootstrap/synth-coverage.test.ts` passes — run
`mise //cdk:test -- test/bootstrap/synth-coverage` or the full bootstrap suite.
**Flag as blocking** if constructs changed but bootstrap policies, the action map, or
version/artifacts were not updated. Missing ARN patterns (action present but resource
too narrow) are a common gap — check secret/queue/bucket naming against the patterns
in `application.ts` / `observability.ts`, not just action presence.
See [ADR-002](../../docs/decisions/ADR-002-least-privilege-bootstrap-policies.md) and
issue #350 for the failure mode this prevents.
- **AWS / CDK quality** — Prefer L2 constructs, sane removal policies, no hardcoded ARNs/account
IDs, cdk-nag clean. Watch for cost and operational footguns.
- **Tests** — Are unit tests added/updated under the matching `*/test/` tree? Do they cover the
new behavior and failure paths, not just the happy path?
- **Test performance (CDK synth)** — New/changed CDK tests must not re-enable Lambda bundling at
synth or synthesize the same stack repeatedly. `cdk/` disables bundling globally via
`test/setup/disable-bundling.ts` (~15× faster synth); flag any test that turns
`aws:cdk:bundling-stacks` back on (only valid via `postCliContext`, not constructor
`context` — the env var overwrites the latter) without asserting on a bundled asset, or
that calls `new App()` + `Template.fromStack()` per-test instead of once in `beforeAll`.
See #366.
- **Routing** — Changes should land in the right package per the AGENTS.md routing table
(agent runtime in `agent/`, API/Lambdas in `cdk/`, CLI in `cli/`).

**Human review heuristics (non-automatable)** — After automated agents, apply these four
dimensions. They are where agent output often looks plausible but isn't. Flag blocking issues when
a dimension is clearly violated:

- **Proportionality** — Does complexity match the problem? (new abstraction/factory/"engine"
for a one-off → AI002/AI003; files >800 lines — is size essential or accreted?)
- **Coherence** — Does it belong here? Same concept = same term across the repo? Parallel
structure with real substance, not copy-paste boilerplate (AI006)?
- **Clarity** — Do names communicate intent? Does error handling surface failures or hide
them behind plausible defaults (AI004)? Magic values that should live in
`contracts/constants.json` (AI007)?
- **Appropriateness** — Maintainable by this team? Integration code verified against *real*
API behavior, not only self-written mocks (AI001)? Tests assert what code *should* do,
not merely what it *does* (AI005)?

Include a **Human heuristics** subsection in Stage 5 output: one bullet per dimension
(pass or concern with `file:line` when applicable).

### Stage 4: Documentation — Did We Update It Where Needed?

Documentation drift is a blocking concern on this repo. Check:

- **Did the change require docs and did the PR include them?** New/changed behavior, contracts,
env vars, or commands must be reflected in `docs/guides/` or `docs/design/`, and ADRs added
to `docs/decisions/` for architectural decisions.
- **Generated mirror is in sync** — Edits to `docs/guides/`, `docs/design/`, or `CONTRIBUTING.md`
require regenerating the Starlight mirror under `docs/src/content/docs/` via
`mise //docs:sync` (or `cd docs && node scripts/sync-starlight.mjs`). A PR that edits sources
but ships a stale mirror will fail CI's "Fail build on mutation" step — flag it.
- **Never edit `docs/src/content/docs/` by hand** — it is generated.
- **AGENTS.md / README / package docs** — Updated if the developer flow, routing, or commands
changed.
- **Issue tracking reflects the change** — Confirm whatever this PR fixes or delivers is filed or updated as a [GitHub issue](https://github.com/aws-samples/sample-autonomous-cloud-coding-agents/issues) with an appropriate priority label (`P0`, `P1`, etc.). If the change completes planned work and no issue exists, flag it.

### Stage 5: Present to User

Summarize as a principal architect would in a PR review. Structure the output:

1. **Verdict** — Approve / Approve with nits / Request changes, with a one-line rationale.
2. **Vision alignment** — Does it fit where we're going? Cite the tenet or ADR.
3. **Blocking issues** — Numbered, each with `file:line`, the risk, and a suggested fix.
4. **Non-blocking suggestions / nits** — Clearly separated.
5. **Documentation** — What was updated, what is missing, mirror-sync status.
6. **Tests & CI** — Coverage assessment and check status. For CDK construct/stack changes,
explicitly note bootstrap synth-coverage status (pass / not applicable / missing updates).
7. **Review agents run** — List each plugin/agent you invoked (Stage 3) and, for any in-scope
agent you omitted, the one-line reason. This section is required — its absence means the
mandatory plugin step was skipped.
8. **Human heuristics** — Proportionality, Coherence, Clarity, Appropriateness (pass or concern
per dimension; cite `file:line` when not pass).

Be specific and actionable. Prefer concrete diffs over vague advice.
Loading
Loading