Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
2073 commits
Select commit Hold shift + click to select a range
ab0af7a
docs(admin): spec delegated admin scopes
philmerrell Jul 27, 2026
14f9f11
Merge pull request #768 from Boise-State-Development/feature/granular…
philmerrell Jul 27, 2026
97b5be5
docs(admin): resolve open questions on delegated admin scopes
philmerrell Jul 27, 2026
7787ef4
feat(rbac): add delegated admin scopes as an AppRole grant axis
philmerrell Jul 27, 2026
e081456
fix(inference): restore chat — stream_response never accepted turn_ag…
philmerrell Jul 27, 2026
109022b
Merge pull request #769 from Boise-State-Development/feature/admin-sc…
philmerrell Jul 27, 2026
0ecb878
Merge pull request #771 from Boise-State-Development/fix/stream-respo…
philmerrell Jul 27, 2026
42a5777
Merge pull request #770 from Boise-State-Development/feature/admin-sc…
philmerrell Jul 27, 2026
8544d87
fix(timestamps): stop emitting `+00:00Z`, which no browser can parse
philmerrell Jul 27, 2026
48e2673
Merge pull request #772 from Boise-State-Development/fix/iso8601-time…
philmerrell Jul 27, 2026
20c727d
feat(rbac): enforce delegated admin scopes on admin routes
philmerrell Jul 27, 2026
a2b0028
feat(marketplace): tell the reviewer when a listed Agent is unopenable
philmerrell Jul 27, 2026
822df2b
Merge pull request #774 from Boise-State-Development/feature/admin-sc…
philmerrell Jul 27, 2026
782a6e3
Merge pull request #773 from Boise-State-Development/feature/listing-…
philmerrell Jul 27, 2026
b70c863
feat(rbac): expose admin scopes over the API
philmerrell Jul 27, 2026
03a6a1d
Merge pull request #775 from Boise-State-Development/feature/admin-sc…
philmerrell Jul 27, 2026
d56588b
feat(gateway): migrate inbound auth to Cognito JWT (CUSTOM_JWT)
DerrickF Jul 28, 2026
9c3c11f
feat(gateway): send the signed-in user's token to the JWT Gateway
DerrickF Jul 28, 2026
d44c053
docs(gateway): warn forks about SigV4 callers before the JWT switch
DerrickF Jul 28, 2026
b0c68b9
Merge pull request #778 from Boise-State-Development/feature/gateway-…
DerrickF Jul 28, 2026
d80dc95
fix(gateway): default inbound auth to iam — the authorizer is immutable
DerrickF Jul 28, 2026
bae196e
Merge pull request #779 from Boise-State-Development/fix/gateway-inbo…
DerrickF Jul 28, 2026
84f0313
feat(rbac): gate the admin console on delegated scopes
philmerrell Jul 27, 2026
ec8ec22
fix(marketplace): require PUBLIC visibility to publish an agent
philmerrell Jul 29, 2026
037949d
Merge pull request #780 from Boise-State-Development/feature/admin-sc…
philmerrell Jul 29, 2026
2ece269
feat(marketplace): let authors go public from the submit dialog
philmerrell Jul 29, 2026
ae0d9a5
Merge pull request #781 from Boise-State-Development/fix/marketplace-…
philmerrell Jul 29, 2026
49a4f26
docs(marketplace): spec immutable agent version snapshots
philmerrell Jul 29, 2026
2d60eef
feat(agents): explain the rename at /assistants instead of redirecting
philmerrell Jul 29, 2026
de54ac8
Merge pull request #782 from Boise-State-Development/feat/assistants-…
philmerrell Jul 29, 2026
1bb5385
Merge pull request #783 from Boise-State-Development/feature/agent-ve…
philmerrell Jul 29, 2026
63d4ed4
feat(agents): add immutable AgentVersion snapshots (data layer)
philmerrell Jul 29, 2026
97d88df
feat(agents): rewrite the Assistants signpost for first-time users
philmerrell Jul 29, 2026
223ece5
Merge pull request #784 from Boise-State-Development/feature/agent-ve…
philmerrell Jul 29, 2026
3529c73
Merge pull request #785 from Boise-State-Development/feature/assistan…
philmerrell Jul 29, 2026
824ccab
feat(marketplace): serve immutable snapshots from the store
philmerrell Jul 29, 2026
0ad64ac
docs(gateway): record what Phase 1 actually delivered
DerrickF Jul 29, 2026
be6f41e
Merge pull request #787 from Boise-State-Development/feature/agent-ve…
philmerrell Jul 29, 2026
8d76556
feat(agents): run the approved snapshot, not the author's draft
philmerrell Jul 29, 2026
3c2bcdc
docs(marketplace): reconcile version-snapshots spec with what shipped
philmerrell Jul 29, 2026
e466f83
Merge pull request #789 from Boise-State-Development/feature/agent-ve…
philmerrell Jul 29, 2026
b778641
Merge pull request #790 from Boise-State-Development/docs/correct-ver…
philmerrell Jul 29, 2026
2189a2e
feat(marketplace): withdrawal becomes a request, and delete respects it
philmerrell Jul 30, 2026
c22a2a3
Merge pull request #791 from Boise-State-Development/feature/agent-li…
philmerrell Jul 30, 2026
ca5f270
fix(agents): delete a deleted Agent's version snapshots
philmerrell Jul 30, 2026
8e2a001
Merge pull request #792 from Boise-State-Development/fix/orphaned-age…
philmerrell Jul 30, 2026
4950ec7
feat(marketplace): show a reviewer what a submission changed
philmerrell Jul 30, 2026
6ae29b1
Merge pull request #793 from Boise-State-Development/feature/agent-re…
philmerrell Jul 30, 2026
f22a265
fix(tools): stop warning that context-bound tools are missing
philmerrell Jul 30, 2026
ab8c7d4
Merge pull request #794 from Boise-State-Development/fix/tool-filter-…
philmerrell Jul 30, 2026
36f9cef
fix(admin): surface the error banner after a failed category change
philmerrell Jul 30, 2026
5066179
feat(marketplace): admin page for publisher profiles
philmerrell Jul 30, 2026
ca35997
Merge pull request #795 from Boise-State-Development/feature/admin-pu…
philmerrell Jul 30, 2026
db8de28
fix(api-keys): resolve the key owner's real roles for RBAC
philmerrell Jul 30, 2026
70f7e33
fix(marketplace): close four version-snapshot gaps found in E2E testing
philmerrell Jul 30, 2026
63bcbbd
Merge pull request #799 from Boise-State-Development/fix/marketplace-…
philmerrell Jul 30, 2026
514d594
feat(marketplace): version rollback, and close the withdrawal origin gap
philmerrell Jul 31, 2026
219b63e
Merge pull request #800 from Boise-State-Development/feature/marketpl…
philmerrell Jul 31, 2026
bff021f
fix(marketplace): keep the version picker reachable after a rollback
philmerrell Jul 31, 2026
08e9bd8
fix(marketplace): show the reviewer why a diff is missing
philmerrell Jul 31, 2026
8b7080a
Merge pull request #801 from Boise-State-Development/fix/marketplace-…
philmerrell Jul 31, 2026
6460209
style(sidenav): put the New badge on the true brand ember
philmerrell Jul 31, 2026
326997e
feat(agents): make the share dialog the one surface for reach
philmerrell Jul 31, 2026
4169d94
Merge pull request #802 from Boise-State-Development/feature/agents-s…
philmerrell Jul 31, 2026
38ab3cd
Merge pull request #796 from Boise-State-Development/fix/api-key-role…
philmerrell Jul 31, 2026
c37429e
fix(admin): show which roles carry delegated admin power
philmerrell Jul 31, 2026
3108b89
feat(rbac): durable audit trail for role mutations (PR-5)
philmerrell Jul 31, 2026
19eaafa
fix(admin): don't claim a month is empty when the read failed
philmerrell Jul 31, 2026
3773e22
test(routes): stop rebuilding the admin app on every Hypothesis example
philmerrell Jul 31, 2026
81e6317
feat(tools): RFC 8693 token exchange for per-user calls to existing APIs
DerrickF Jul 31, 2026
962ce23
Merge pull request #788 from Boise-State-Development/docs/phase-1-del…
DerrickF Jul 31, 2026
5a31484
Merge pull request #803 from Boise-State-Development/feature/rfc8693-…
DerrickF Jul 31, 2026
ed6db80
fix(tools): normalise token_exchange_audience so whitespace cannot si…
DerrickF Jul 31, 2026
9f175a1
feat(docs-site): redesign landing page and add product roadmap
philmerrell Jul 31, 2026
31d19fa
fix(tools): enforce auth-mode validation on update, not just create
DerrickF Jul 31, 2026
822f5e6
Merge pull request #805 from Boise-State-Development/claude/docs-site…
philmerrell Jul 31, 2026
4c759ea
Merge pull request #807 from Boise-State-Development/fix/roles-list-a…
philmerrell Jul 31, 2026
cc8badd
Merge pull request #808 from Boise-State-Development/feature/admin-au…
philmerrell Jul 31, 2026
6022e8b
feat(spa): host-gate the assistants explainer and answer the legacy site
philmerrell Jul 31, 2026
62ce86e
refactor(spa): drop "shelf" and "reviewer" from marketplace copy
philmerrell Jul 31, 2026
956a720
Merge pull request #809 from Boise-State-Development/feature/assistan…
philmerrell Aug 1, 2026
13ac4c6
feat(marketplace): give feedback on an agent from the conversation
philmerrell Aug 1, 2026
d2419a9
Merge pull request #810 from Boise-State-Development/feature/agent-fe…
philmerrell Aug 1, 2026
733872e
fix(marketplace): let the feedback dialog scroll instead of clipping
philmerrell Aug 1, 2026
4200fbd
fix(marketplace): close the feedback dialog on a backdrop click
philmerrell Aug 1, 2026
2a99a8c
style(marketplace): right-align and quiet the feedback link
philmerrell Aug 1, 2026
d416c05
fix(spa): make backdrop-click dismiss work in every dialog
philmerrell Aug 1, 2026
86d4334
Merge pull request #811 from Boise-State-Development/fix/feedback-dia…
philmerrell Aug 1, 2026
a31ae16
style(spa): match the Knowledge base section to its sibling cards
philmerrell Aug 1, 2026
88cf3e4
Merge pull request #813 from Boise-State-Development/style/knowledge-…
philmerrell Aug 1, 2026
88ef1e5
fix(marketplace): give the reachability warning a row it can be read …
philmerrell Aug 1, 2026
56bc8e4
fix(security): scrub user-controlled values out of log records
philmerrell Aug 1, 2026
670e3be
Merge pull request #818 from Boise-State-Development/main
philmerrell Aug 1, 2026
b925601
fix(spa): stop the Memory Spaces kill switch from announcing itself
philmerrell Aug 1, 2026
28325b9
Merge pull request #819 from Boise-State-Development/fix/memory-space…
philmerrell Aug 1, 2026
019fdca
Merge remote-tracking branch 'origin/main' into backmerge/main-into-d…
philmerrell Aug 1, 2026
a853517
Merge pull request #821 from Boise-State-Development/backmerge/main-i…
philmerrell Aug 1, 2026
cd9dfa5
fix(assistants): degrade user-facing GSI reads to empty when the inde…
philmerrell Aug 1, 2026
c8097a5
feat(release): pre-merge guard for DynamoDB's one-GSI-per-UpdateTable…
philmerrell Aug 1, 2026
4591748
fix(marketplace): add taken_down → private so the delete refusal name…
philmerrell Aug 2, 2026
ad044a9
feat(spa): simplify the agent launch card
philmerrell Aug 2, 2026
be87e0f
Merge pull request #824 from Boise-State-Development/claude/takedown-…
philmerrell Aug 2, 2026
0f12c07
Merge pull request #823 from Boise-State-Development/feature/gsi-per-…
philmerrell Aug 2, 2026
ea95ecd
Merge pull request #822 from Boise-State-Development/fix/gsi-missing-…
philmerrell Aug 2, 2026
16f83a8
Merge pull request #825 from Boise-State-Development/agent-card-simplify
philmerrell Aug 2, 2026
732679a
Merge pull request #815 from Boise-State-Development/fix/codeql-log-i…
philmerrell Aug 2, 2026
7a8c222
fix(lambda-images): COPY the whole handler import closure
philmerrell Aug 2, 2026
da0ce56
Merge pull request #826 from Boise-State-Development/claude/knowledge…
philmerrell Aug 2, 2026
ef6c13d
fix(inference-api): arm AgentCore's idle reaper in /ping
philmerrell Aug 2, 2026
2d48f05
Merge pull request #827 from Boise-State-Development/claude/agentcore…
philmerrell Aug 2, 2026
b20a4b4
feat(marketplace): let authors ship updates to a live listing
philmerrell Aug 3, 2026
15569f2
Merge remote-tracking branch 'origin/develop' into feature/listing-up…
philmerrell Aug 3, 2026
c3e5c64
fix(marketplace): show the author the category their listing is alrea…
philmerrell Aug 3, 2026
3f1d661
feat(tui): add Textual terminal client (Phase 1)
colinmxs Aug 3, 2026
56ac2d0
Merge pull request #828 from Boise-State-Development/feature/listing-…
philmerrell Aug 3, 2026
1594e3a
Merge remote-tracking branch 'origin/main' into backmerge/main-into-d…
philmerrell Aug 3, 2026
28e538c
Merge pull request #830 from Boise-State-Development/backmerge/main-i…
philmerrell Aug 3, 2026
38532ae
docs: correct the 1.13.0 claim that reaping a microVM risks context loss
philmerrell Aug 3, 2026
7f0f1e6
Merge pull request #831 from Boise-State-Development/fix/session-rest…
philmerrell Aug 3, 2026
79eb80a
Merge pull request #804 from Boise-State-Development/fix/trim-token-e…
DerrickF Aug 3, 2026
c913712
docs(gateway): correct the plan — the Gateway does not perform the ex…
DerrickF Aug 3, 2026
0cbd47e
feat(auth): add public Cognito client for CLI PKCE auth
colinmxs Aug 4, 2026
19d9995
docs: spec the over-threshold compaction cache-spiral fix plan
philmerrell Aug 5, 2026
e985c38
docs: spec the extra_tools agent-cache bypass and fix direction
philmerrell Aug 5, 2026
5c1d2ae
Merge pull request #833 from Boise-State-Development/feature/compacti…
philmerrell Aug 5, 2026
7b79791
Merge pull request #834 from Boise-State-Development/feature/agent-ca…
philmerrell Aug 5, 2026
a57c025
docs: draft compaction v2 — versioned frozen prefix segments
philmerrell Aug 5, 2026
87f1b5c
Merge pull request #832 from Boise-State-Development/docs/correct-tok…
philmerrell Aug 5, 2026
347fa06
docs: document-context-offload spec, adversarial validation, and eval…
philmerrell Aug 5, 2026
487fa84
docs: cost-effectiveness plan of record (umbrella over the spec arc)
philmerrell Aug 5, 2026
b2a024e
Merge pull request #835 from Boise-State-Development/feature/compacti…
philmerrell Aug 5, 2026
38c13bd
Merge pull request #836 from Boise-State-Development/feature/document…
philmerrell Aug 5, 2026
97e7a0f
Merge pull request #837 from Boise-State-Development/feature/cost-eff…
philmerrell Aug 5, 2026
69cbf26
feat: classify partial prompt-cache prefix misses (#833 PR-1)
philmerrell Aug 5, 2026
79deaf5
Merge pull request #838 from Boise-State-Development/feature/partial-…
philmerrell Aug 5, 2026
7d5632d
feat: cache agents carrying artifact tools (#834 arm 1)
philmerrell Aug 5, 2026
a965042
docs: record arm 1's design decisions in the bypass spec
philmerrell Aug 5, 2026
585c2a2
docs: sync the spiral spec with what PR-1 actually shipped
philmerrell Aug 5, 2026
11a08c4
Merge pull request #840 from Boise-State-Development/feature/sync-spi…
philmerrell Aug 5, 2026
55e83e6
Merge develop into feature/agent-cache-artifact-builder
philmerrell Aug 5, 2026
f91d55f
Merge pull request #839 from Boise-State-Development/feature/agent-ca…
philmerrell Aug 5, 2026
245f439
test: controlled arm experiment for the agent-cache bypass (#834 G1)
philmerrell Aug 5, 2026
dc669fa
test: probe whether runtime session-id pinning gives cache affinity
philmerrell Aug 5, 2026
1c324d4
feat: pin conversations to a microVM via runtime session id
philmerrell Aug 5, 2026
c69e847
docs: record the G1 read — #834's cost thesis is disproven
philmerrell Aug 5, 2026
69b7812
Merge pull request #841 from Boise-State-Development/feature/runtime-…
philmerrell Aug 5, 2026
8a401a2
fix: point runtime Logs Insights widgets at the real log group
philmerrell Aug 5, 2026
477fbec
Merge pull request #842 from Boise-State-Development/feature/record-g…
philmerrell Aug 5, 2026
0ef4ce7
Merge pull request #843 from Boise-State-Development/feature/fix-runt…
philmerrell Aug 5, 2026
217483c
docs: post-merge verification splits the latency win in two
philmerrell Aug 5, 2026
e06c0dc
Merge pull request #844 from Boise-State-Development/feature/record-p…
philmerrell Aug 5, 2026
6561f9c
feat: quota runway — earlier warning rungs and a per-session cost notice
philmerrell Aug 5, 2026
c23f8dd
Merge pull request #845 from Boise-State-Development/feature/quota-ru…
philmerrell Aug 5, 2026
8a2976d
docs: measure where the model spend actually goes, across all convers…
philmerrell Aug 5, 2026
5664e62
Merge develop into feature/tui-client
colinmxs Aug 6, 2026
6bfe7b4
Merge pull request #846 from Boise-State-Development/feature/fleet-sp…
philmerrell Aug 6, 2026
ffcd1ac
fix(infra): stop exceeding the AgentCore Runtime 50-env-var limit
philmerrell Aug 6, 2026
ee01e4c
Merge pull request #847 from Boise-State-Development/fix/runtime-env-…
philmerrell Aug 6, 2026
bd13e66
fix(local-dev): stop tripping the SKIP_AUTH guard
colinmxs Aug 6, 2026
b94cacd
Merge pull request #848 from Boise-State-Development/feature/tui-client
colinmxs Aug 6, 2026
917d087
fix(agents): hydrate the saved enum param into the Designer's select
philmerrell Aug 7, 2026
405d352
revert(auth): remove the public Cognito client for CLI PKCE auth
colinmxs Aug 7, 2026
8e66b68
Merge pull request #850 from Boise-State-Development/revert/cli-cogni…
colinmxs Aug 7, 2026
a2b6bd6
fix(rbac): honour isPublic in tool access checks, not just the picker
philmerrell Aug 10, 2026
bbaed63
Merge pull request #852 from Boise-State-Development/feature/public-t…
philmerrell Aug 10, 2026
8f67ef5
chore: remove unused Any import from cache-arms experiment script
philmerrell Aug 11, 2026
59817da
Merge pull request #854 from Boise-State-Development/fix/experiment-s…
philmerrell Aug 11, 2026
89dcce7
Merge remote-tracking branch 'origin/main' into backmerge/main-into-d…
philmerrell Aug 11, 2026
84ec8ef
Merge pull request #849 from Boise-State-Development/fix/agent-effort…
philmerrell Aug 11, 2026
8d29498
Merge pull request #855 from Boise-State-Development/backmerge/main-i…
philmerrell Aug 11, 2026
600a167
docs: evaluate Bedrock Managed KB as a replacement for the S3 Vectors…
philmerrell Aug 11, 2026
37ee863
Merge pull request #856 from Boise-State-Development/claude/bedrock-k…
philmerrell Aug 11, 2026
49a2531
chore: upgrade strands and bedrock-agentcore to latest
philmerrell Aug 11, 2026
708bc44
fix: make cancellation reach in-flight MCP calls, and not outlive the…
philmerrell Aug 11, 2026
74b6989
perf: offload AgentCore Memory writes off the asyncio event loop
philmerrell Aug 11, 2026
163e1a1
Merge pull request #857 from Boise-State-Development/feature/upgrade-…
philmerrell Aug 11, 2026
e8f82d0
Merge pull request #858 from Boise-State-Development/feature/agent-ca…
philmerrell Aug 12, 2026
5e24889
Merge pull request #859 from Boise-State-Development/feature/session-…
philmerrell Aug 12, 2026
269b218
docs: spike AgentCore Evaluations, and scope the eval harness
philmerrell Aug 12, 2026
cd88718
fix(chat): release the turn lease when a dropped stream cancels teardown
philmerrell Aug 13, 2026
803c37b
fix(chat): keep SSE connections warm with keepalive comment frames
philmerrell Aug 13, 2026
5d16880
fix(chat): relay AgentCore's 424 rewrite of a single-flight 409 as 409
philmerrell Aug 13, 2026
4e0c8dc
Merge pull request #863 from Boise-State-Development/fix/stream-drop-…
philmerrell Aug 13, 2026
cd43a15
feat(sessions): attest page departures as navigated_away
philmerrell Aug 13, 2026
d7fb2d0
feat(infra): enable ALB access logs for connection-termination attrib…
philmerrell Aug 13, 2026
d84699f
Merge remote-tracking branch 'origin/main' into backmerge/main-into-d…
philmerrell Aug 13, 2026
adf3adf
Merge pull request #866 from Boise-State-Development/backmerge/main-i…
philmerrell Aug 13, 2026
1a91700
Merge pull request #862 from Boise-State-Development/feature/eval-har…
philmerrell Aug 13, 2026
e196c92
Merge pull request #864 from Boise-State-Development/feature/interrup…
philmerrell Aug 13, 2026
542e75b
docs: expand managed KB evaluation
DerrickF Aug 13, 2026
c75f528
Merge pull request #867 from Boise-State-Development/docs/managed-kb-…
DerrickF Aug 13, 2026
6cf7c85
feat(files): accept .pptx uploads and route them to the PowerPoint tools
philmerrell Aug 13, 2026
612eb91
Merge pull request #868 from Boise-State-Development/feature/pptx-att…
philmerrell Aug 13, 2026
3a65480
docs: run the G3 citations probe — the premise was wrong
philmerrell Aug 13, 2026
550fa07
Merge origin/develop into feature/g3-citations-probe
philmerrell Aug 13, 2026
6516483
fix(infra): grant app-api s3vectors:DeleteVectors and runtime user-se…
philmerrell Aug 14, 2026
ed70102
chore(kaizen): weekly research scan 2026-08-14
philmerrell Aug 14, 2026
4624fa1
fix(mcp): recover OAuth-gated MCP tools instead of dropping them sile…
philmerrell Aug 14, 2026
9c267db
Merge pull request #870 from Boise-State-Development/fix/prod-iam-vec…
philmerrell Aug 14, 2026
73615bc
feat(files): give .pptx attachments a slide-deck preview card
philmerrell Aug 14, 2026
97e0281
fix(files): keep diverted attachments in the [Attached files] marker
philmerrell Aug 14, 2026
ddc1a81
fix(streaming): abandon a stale pause instead of bricking the next turn
philmerrell Aug 14, 2026
a49d265
chore(kaizen): resolve nine stale review-queue entries
philmerrell Aug 14, 2026
5e24f06
chore(kaizen): weekly review prep 2026-08-14
philmerrell Aug 14, 2026
dc261d1
Merge pull request #871 from Boise-State-Development/kaizen/research-…
philmerrell Aug 14, 2026
490f9b4
Merge pull request #869 from Boise-State-Development/feature/g3-citat…
philmerrell Aug 14, 2026
3e37117
Merge pull request #872 from Boise-State-Development/fix/mcp-oauth-si…
philmerrell Aug 14, 2026
3e66dfc
Merge pull request #873 from Boise-State-Development/feature/pptx-att…
philmerrell Aug 14, 2026
c81e297
Merge pull request #874 from Boise-State-Development/fix/interrupt-re…
philmerrell Aug 14, 2026
8e90817
Merge pull request #875 from Boise-State-Development/kaizen/review-20…
philmerrell Aug 14, 2026
3c95be9
fix(mcp): only treat an auth failure as an OAuth consent gap
philmerrell Aug 14, 2026
ace2e3f
Merge pull request #876 from Boise-State-Development/fix/mcp-oauth-pr…
philmerrell Aug 14, 2026
fe691bf
Merge remote-tracking branch 'origin/main' into backmerge/main-into-d…
philmerrell Aug 17, 2026
4bf2baf
Merge pull request #878 from Boise-State-Development/backmerge/main-i…
philmerrell Aug 17, 2026
d8ebccf
fix(attachments): re-mint expired preview URLs instead of showing a b…
philmerrell Aug 25, 2026
3d964d8
fix(rbac): allow spaces in JWT role mappings and name the failing entry
philmerrell Aug 26, 2026
1a5a77d
Merge pull request #880 from Boise-State-Development/feature/jwt-role…
philmerrell Aug 26, 2026
97d743d
Merge pull request #879 from Boise-State-Development/fix/attachment-p…
philmerrell Aug 26, 2026
61852fb
feat(marketplace): submitting an agent makes it public, with a notice
philmerrell Aug 26, 2026
5d0bc2c
feat(marketplace): let admins read, test-drive and decline a submission
philmerrell Aug 26, 2026
95f89f8
Merge pull request #881 from Boise-State-Development/feature/submit-d…
philmerrell Aug 26, 2026
3775a45
Merge pull request #882 from Boise-State-Development/feature/marketpl…
philmerrell Aug 26, 2026
30d486a
fix(marketplace): make the review test drive big enough to use
philmerrell Aug 26, 2026
8d9b418
Merge pull request #883 from Boise-State-Development/fix/marketplace-…
philmerrell Aug 26, 2026
a223284
feat(kb): managed knowledge base migration — inert behind flags, upgr…
DerrickF Aug 27, 2026
fcf0832
fix(kb): pass the Environment tag value instead of guessing it (#885)
DerrickF Aug 27, 2026
bfcf955
feat(kb): ship the real kb-migration Lambda image
DerrickF Aug 27, 2026
a2de16d
Merge pull request #886 from Boise-State-Development/feat/kb-migratio…
DerrickF Aug 27, 2026
e3b10f8
fix(kb): give the dispatcher the worker name it actually reads
DerrickF Aug 27, 2026
ead8655
Merge pull request #887 from Boise-State-Development/fix/kb-migration…
DerrickF Aug 27, 2026
2182cae
fix(kb): grant the tag permissions provisioning and reconciliation need
DerrickF Aug 27, 2026
1fc0731
Merge pull request #888 from Boise-State-Development/fix/managed-kb-t…
DerrickF Aug 28, 2026
db3adf3
fix(marketplace): stop the review flow reporting failures twice
philmerrell Aug 28, 2026
554c0e7
fix(marketplace): report a refused decision beside the decision buttons
philmerrell Aug 28, 2026
1b04171
chore(kaizen): weekly research scan 2026-08-28
philmerrell Aug 28, 2026
41cb248
chore(kaizen): weekly review prep 2026-08-28
philmerrell Aug 28, 2026
8ab7d6a
Merge pull request #891 from Boise-State-Development/kaizen/research-…
philmerrell Aug 28, 2026
539d1d2
Merge pull request #892 from Boise-State-Development/kaizen/review-20…
philmerrell Aug 28, 2026
55f44ed
fix(fine-tuning): read every dataset format the UI accepts
philmerrell Aug 28, 2026
5601cba
fix(fine-tuning): make the admin cost dashboard count real spend
philmerrell Aug 28, 2026
70948dd
fix(fine-tuning): wire the runtime flags that gate the feature
philmerrell Aug 28, 2026
c1eaf3f
Merge pull request #890 from Boise-State-Development/fix/marketplace-…
philmerrell Aug 28, 2026
3d6dad9
Merge pull request #893 from Boise-State-Development/fix/fine-tuning-…
philmerrell Aug 28, 2026
237a595
fix(fine-tuning): reject instance types we have no price for
philmerrell Aug 28, 2026
0c1bb76
Merge pull request #894 from Boise-State-Development/fix/fine-tuning-…
philmerrell Aug 28, 2026
05aa3ca
fix(chat): let arrow keys walk the @-mention menu
philmerrell Aug 28, 2026
317a400
feat(chat): set @-mentions apart in the user's message
philmerrell Aug 28, 2026
c5fe72d
Merge pull request #895 from Boise-State-Development/fix/agent-mentio…
philmerrell Aug 28, 2026
8fc5f27
Release/1.16.0
philmerrell Aug 28, 2026
9babfb8
docs(release): correct the fine-tuning quota deployment note
philmerrell Aug 28, 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
1 change: 1 addition & 0 deletions .github/ACTIONS-REFERENCE.md
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,7 @@ GitHub provides two mechanisms for storing configuration values:
| CDK_FILE_UPLOAD_CORS_ORIGINS | Variable | No | None | Platform | Additional CORS origins for the file upload S3 bucket only (appended to global CORS origins) |
| CDK_FILE_UPLOAD_MAX_SIZE_MB | Variable | No | `10` | Platform | Maximum file upload size in megabytes |
| CDK_FINE_TUNING_CORS_ORIGINS | Variable | No | None | SageMaker Fine-Tuning | Additional CORS origins for the fine-tuning S3 bucket only (appended to global CORS origins) |
| CDK_FINE_TUNING_ENABLED | Variable | No | `true` | App API | Mounts the `/fine-tuning` and `/admin/fine-tuning` routers (sets the container's `FINE_TUNING_ENABLED`). Default ON; set to `false` as a kill switch. Storage and IAM are provisioned either way, so switching off never orphans datasets or trained models. |
| CDK_FINE_TUNING_DEFAULT_QUOTA_HOURS | Variable | No | `0` | App API | Default monthly GPU-hour quota for all authenticated users. `0` = whitelist-only (admin must grant each user). Positive value (e.g. `5`) = open access with that default budget. |
| CDK_FRONTEND_BUCKET_NAME | Variable | No | None | Frontend | S3 bucket name for frontend assets (defaults to generated name with account ID) |
| CDK_FRONTEND_CORS_ORIGINS | Variable | No | None | Frontend | Additional CORS origins for the frontend SSM export only (appended to global CORS origins) |
Expand Down
22 changes: 22 additions & 0 deletions .github/docs/deploy/step-03-github-config.md
Original file line number Diff line number Diff line change
Expand Up @@ -109,6 +109,28 @@ The per-origin cert vars below are **optional overrides** — set one only if yo
| `CDK_ARTIFACTS_EXTRA_FRAME_ANCESTORS` | — | Comma-separated extra origins (beyond `https://{CDK_DOMAIN_NAME}`) allowed to embed artifact iframes via CSP `frame-ancestors` — applied to both the CloudFront response-headers policy and the render Lambda. Set to `http://localhost:4200` to point a local SPA at this deployment. **Leave unset in production**: every listed origin can frame your users' artifacts (still render-token gated, but a real loosening on a shared environment). |
| `CDK_MCP_SANDBOX_EXTRA_FRAME_ANCESTORS` | — | Comma-separated extra origins (beyond `https://{CDK_DOMAIN_NAME}`) allowed to embed the MCP Apps sandbox proxy via CSP `frame-ancestors`. Set to `http://localhost:4200` to point a local SPA at this deployment. **Leave unset in production.** |
| `CDK_FINE_TUNING_CORS_ORIGINS` | — | Comma-separated extra CORS origins for the SageMaker fine-tuning data bucket, beyond `https://{CDK_DOMAIN_NAME}`. Optional — fine-tuning itself is always provisioned. |
| `CDK_FINE_TUNING_ENABLED` | `true` | Mounts the fine-tuning routers. Default ON — leave unset unless you want the kill switch. Note this is a *runtime* flag on the app-api container; the identically-named CDK stack gate was removed in the single-stack migration. |
| `CDK_FINE_TUNING_DEFAULT_QUOTA_HOURS` | `0` | Monthly GPU-hour quota auto-granted to any authenticated user. `0` = whitelist-only (an admin grants each user). A positive value (e.g. `10`) = open access with that budget. |

### Managed Knowledge Bases

Every variable below is **optional**. Leave them all unset for the shipped state: the managed knowledge-base backend is deployed but **dormant** — no knowledge base is created managed, no migration runs, and the daily reconciler reports what it *would* delete without deleting anything.

The three flags are independent opt-ins that each default to **off**. An unset GitHub Variable arrives at the deploy as an empty string, which is read as off — so forgetting one never silently arms it.

| Variable Name | Default | Description |
|---------------|---------|-------------|
| `CDK_MANAGED_KB_NEW_DEFAULT` | `false` | Set to `true` so newly created knowledge bases are provisioned on the managed backend instead of the legacy one. Existing knowledge bases are untouched. |
| `CDK_MANAGED_KB_MIGRATION_ENABLED` | `false` | Set to `true` to let the background migration worker run at all. While unset, the worker performs no work and its schedule stays disabled. |
| `CDK_MANAGED_KB_RECONCILER_ARMED` | `false` | Set to `true` to let the daily reconciler **delete** orphaned knowledge bases. While unset the reconciler still runs and still logs every deletion it intends to make — review those logs before arming it. |
| `CDK_MANAGED_KB_PER_OWNER_BYTES` | `104857600` (100 MB) | Per-owner stored-bytes cap for the standard role tier, **in bytes**. Deliberately below the 1 GB user-files precedent: at 30,000 users a 1 GB cap permits 30 TB. |
| `CDK_MANAGED_KB_PER_OWNER_ELEVATED_BYTES` | `1073741824` (1 GB) | Per-owner cap for the elevated, admin-granted tier, **in bytes**. |
| `CDK_MANAGED_KB_PER_KB_CEILING_BYTES` | `524288000` (500 MB) | Ceiling for any single knowledge base, **in bytes**, bounding one runaway corpus inside an owner's allowance. |
| `CDK_MANAGED_KB_RETENTION_WINDOW_DAYS` | `30` | How long legacy vector data is kept after a knowledge base is promoted to the managed backend, **in days**, so a rollback stays possible. Do not set below `30`. |
| `CDK_MANAGED_KB_STORAGE_ALARM_GB` | `500` | CloudWatch alarm threshold for **fleet-wide** managed knowledge base storage, **in GB**. The per-owner caps above bound one user; this is the only thing that bounds the whole account. |
| `CDK_MANAGED_KB_DAILY_COST_ALARM_USD` | `100` | CloudWatch alarm threshold for the rolled-up daily Knowledge-Base cost, **in USD**. Set alongside the storage alarm — per-owner caps alone permit roughly two orders of magnitude more spend than expected usage. |

> Accepted values for the three flags are `true`, `false`, `1`, `0`, or empty (empty means off). Anything else fails fast at deploy time with a message naming the variable.

---

Expand Down
83 changes: 83 additions & 0 deletions .github/workflows/backend.yml
Original file line number Diff line number Diff line change
Expand Up @@ -237,6 +237,89 @@ jobs:
- name: Deploy kb-sync worker image
run: bash scripts/build/deploy-image-lambda-one.sh kb-sync-worker

build-kb-migration:
name: Build kb-migration image
needs: test-backend
# Native ARM64 runner — all four kb-migration Lambdas are arm64 (see the
# managed-kb CDK construct), matching the kb-sync pattern.
runs-on: ubuntu-24.04-arm
environment: ${{ (github.ref == 'refs/heads/main' && 'production') || 'development' }}

permissions:
id-token: write
contents: read

env:
CDK_AWS_REGION: ${{ vars.AWS_REGION }}
CDK_AWS_ACCOUNT: ${{ vars.CDK_AWS_ACCOUNT }}
CDK_PROJECT_PREFIX: ${{ vars.CDK_PROJECT_PREFIX }}
AWS_REGION: ${{ vars.AWS_REGION }}
AWS_ACCOUNT_ID: ${{ vars.CDK_AWS_ACCOUNT }}
AWS_ROLE_ARN: ${{ secrets.AWS_ROLE_ARN }}
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}

outputs:
image_tag: ${{ steps.build.outputs.image_tag }}

steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
- uses: ./.github/actions/build-and-push-image
id: build
with:
image-name: kb-migration
aws-region: ${{ vars.AWS_REGION || 'us-west-2' }}
aws-role-arn: ${{ secrets.AWS_ROLE_ARN }}
aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }}
aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}

deploy-kb-migration-code:
name: Deploy kb-migration Lambda images
# ONE image, FOUR functions: dispatcher, worker, reconciler and ingestion
# consumer share the kb-migration image and differ only in
# ImageConfig.Command (CDK-owned), so a single job points all four at the
# freshly-built tag.
#
# This is the job that replaces the bootstrap stub
# (infrastructure/bootstrap-assets/kb-migration/) with the real handlers.
# Until it has run once, an enrolled knowledge base sits in `shadow` while
# the dispatcher ticks into a no-op — safe, because the work keys are sparse
# and the first real tick picks up everything that accumulated.
needs: [build-kb-migration, test-backend]
runs-on: ubuntu-24.04
environment: ${{ (github.ref == 'refs/heads/main' && 'production') || 'development' }}

permissions:
id-token: write
contents: read

env:
CDK_AWS_REGION: ${{ vars.AWS_REGION }}
CDK_AWS_ACCOUNT: ${{ vars.CDK_AWS_ACCOUNT }}
CDK_PROJECT_PREFIX: ${{ vars.CDK_PROJECT_PREFIX }}
AWS_REGION: ${{ vars.AWS_REGION }}
AWS_ACCOUNT_ID: ${{ vars.CDK_AWS_ACCOUNT }}
AWS_ROLE_ARN: ${{ secrets.AWS_ROLE_ARN }}
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}

steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
- uses: ./.github/actions/configure-aws-credentials
with:
aws-region: ${{ vars.AWS_REGION || 'us-west-2' }}
aws-role-arn: ${{ secrets.AWS_ROLE_ARN }}
aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }}
aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
- name: Deploy kb-migration dispatcher image
run: bash scripts/build/deploy-image-lambda-one.sh kb-migration-dispatcher
- name: Deploy kb-migration worker image
run: bash scripts/build/deploy-image-lambda-one.sh kb-migration-worker
- name: Deploy kb-migration reconciler image
run: bash scripts/build/deploy-image-lambda-one.sh kb-migration-reconciler
- name: Deploy kb-migration ingestion consumer image
run: bash scripts/build/deploy-image-lambda-one.sh kb-migration-ingestion-consumer

build-scheduled-runs:
name: Build scheduled-runs image
needs: test-backend
Expand Down
61 changes: 61 additions & 0 deletions .github/workflows/platform.yml
Original file line number Diff line number Diff line change
Expand Up @@ -57,6 +57,11 @@ jobs:
CDK_PROJECT_PREFIX: ${{ vars.CDK_PROJECT_PREFIX }}
CDK_DOMAIN_NAME: ${{ vars.CDK_DOMAIN_NAME }}
CDK_CORS_ORIGINS: ${{ vars.CDK_CORS_ORIGINS }}
# The Environment tag value. Not cosmetic: it is the filter the managed-KB
# reconciler and scripts/teardown/managed-kb.sh match knowledge bases on, so
# an unset value here made a dev deploy tag its knowledge bases 'prod' while
# teardown looked for 'dev' — matching nothing and reporting success.
CDK_TAG_ENVIRONMENT: ${{ vars.CDK_TAG_ENVIRONMENT }}
CDK_VPC_CIDR: ${{ vars.CDK_VPC_CIDR }}
CDK_ALB_SUBDOMAIN: ${{ vars.CDK_ALB_SUBDOMAIN }}
CDK_CERTIFICATE_ARN: ${{ vars.CDK_CERTIFICATE_ARN }}
Expand Down Expand Up @@ -128,6 +133,25 @@ jobs:
# and see the ones their role grants. Which skills a cohort gets is a
# role's `grantedSkills`, managed in the admin roles UI.
CDK_SKILLS_ENABLED: ${{ vars.CDK_SKILLS_ENABLED }}
# SageMaker fine-tuning. The tables, bucket, SageMaker role and IAM
# grants deploy unconditionally, but these two decide whether the feature
# is reachable and how it is rationed, and neither was forwarded before —
# so every deployed environment served 404s from `/fine-tuning/*` while
# the repo variable `CDK_FINE_TUNING_ENABLED` read "true".
#
# ENABLED is default ON with a kill switch: unset resolves to empty
# string, which config.ts treats as the default (on). Set it to "false"
# to dark-stop the routes; storage is untouched either way, so no dataset
# or trained model is orphaned.
#
# DEFAULT_QUOTA_HOURS picks the access model: `0` (the default) is
# whitelist-only, where an admin grants each user explicitly; a positive
# value auto-grants that monthly GPU-hour budget to any signed-in user.
CDK_FINE_TUNING_ENABLED: ${{ vars.CDK_FINE_TUNING_ENABLED }}
CDK_FINE_TUNING_DEFAULT_QUOTA_HOURS: ${{ vars.CDK_FINE_TUNING_DEFAULT_QUOTA_HOURS }}
# Extra CORS origins for the fine-tuning data bucket, beyond the global
# CDK_CORS_ORIGINS above. Also never forwarded until now.
CDK_FINE_TUNING_CORS_ORIGINS: ${{ vars.CDK_FINE_TUNING_CORS_ORIGINS }}
# Agent Designer /agents surface. Default OFF (opt-in) until the Phase-4
# Designer UI ships — a headless API helps no forker. Set the
# `CDK_AGENTS_API_ENABLED` variable to "true" in an environment (e.g. dev)
Expand All @@ -146,6 +170,43 @@ jobs:
# cdk.context.json stay inert.
CDK_MCP_TOKEN_ENRICHMENT_ENABLED: ${{ vars.CDK_MCP_TOKEN_ENRICHMENT_ENABLED }}
CDK_MCP_TOKEN_ENRICHMENT_CLAIMS: ${{ vars.CDK_MCP_TOKEN_ENRICHMENT_CLAIMS }}
# Managed knowledge bases (.kiro/specs/managed-kb-migration). THREE
# INDEPENDENT OPT-IN flags, all defaulting to OFF — the inverse of the
# kill-switch flags above, and the difference matters here. An unset
# GitHub Actions variable renders as an EMPTY STRING, not as absent, so
# a `!== 'false'` reading of an unset variable would resolve to TRUE and
# arm the feature on every fork. config.ts reads these with
# parseBooleanEnv, which maps both unset and empty to undefined and falls
# through to `false` (Requirement 19.8). Leave all three unset to deploy
# the managed backend without starting a fleet migration.
#
# CDK_MANAGED_KB_NEW_DEFAULT new KBs are created managed
# CDK_MANAGED_KB_MIGRATION_ENABLED the background migrator runs at all
# CDK_MANAGED_KB_RECONCILER_ARMED the daily reconciler DELETES orphans
# rather than only reporting them
#
# reconcilerArmed is the inverted one: the Reconciler is deployed and
# running from day one but DISARMED, so its judgement can be reviewed
# against real data before it deletes anything (Requirements 14.7, 19.7).
CDK_MANAGED_KB_NEW_DEFAULT: ${{ vars.CDK_MANAGED_KB_NEW_DEFAULT }}
CDK_MANAGED_KB_MIGRATION_ENABLED: ${{ vars.CDK_MANAGED_KB_MIGRATION_ENABLED }}
CDK_MANAGED_KB_RECONCILER_ARMED: ${{ vars.CDK_MANAGED_KB_RECONCILER_ARMED }}
# Storage cost controls. Byte_Caps are in BYTES (Requirement 12.2),
# defaulting to 100 MB standard / 1 GB elevated / 500 MB per knowledge
# base; the retention window is in DAYS and must stay >= 30
# (Requirement 15.11). Leave unset to take those defaults — these exist
# so an environment can tune them without a code change.
CDK_MANAGED_KB_PER_OWNER_BYTES: ${{ vars.CDK_MANAGED_KB_PER_OWNER_BYTES }}
CDK_MANAGED_KB_PER_OWNER_ELEVATED_BYTES: ${{ vars.CDK_MANAGED_KB_PER_OWNER_ELEVATED_BYTES }}
CDK_MANAGED_KB_PER_KB_CEILING_BYTES: ${{ vars.CDK_MANAGED_KB_PER_KB_CEILING_BYTES }}
CDK_MANAGED_KB_RETENTION_WINDOW_DAYS: ${{ vars.CDK_MANAGED_KB_RETENTION_WINDOW_DAYS }}
# Fleet-level alarm thresholds (Requirement 12.13). The Byte_Caps above
# bound ONE owner; these two bound the whole account, which is the gap
# between ~$169/month expected and ~$15,000/month that per-owner caps
# alone permit. Storage is in GB (default 500), daily cost in USD
# (default 100). Leave unset to take those defaults.
CDK_MANAGED_KB_STORAGE_ALARM_GB: ${{ vars.CDK_MANAGED_KB_STORAGE_ALARM_GB }}
CDK_MANAGED_KB_DAILY_COST_ALARM_USD: ${{ vars.CDK_MANAGED_KB_DAILY_COST_ALARM_USD }}
# Secrets
AWS_ROLE_ARN: ${{ secrets.AWS_ROLE_ARN }}
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
Expand Down
1 change: 1 addition & 0 deletions .kiro/specs/managed-kb-migration/.config.kiro
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
{"specId": "612a1431-367c-427e-8fe0-08872d03a9b9", "workflowType": "design-first", "specType": "feature"}
Loading