-
Notifications
You must be signed in to change notification settings - Fork 3.1k
feat(desktop): Implement loops ➿ #70604
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Merged
Changes from all commits
Commits
Show all changes
105 commits
Select commit
Hold shift + click to select a range
d3ec5e2
v1
charlesvien bdf4f42
v2
charlesvien 104508e
feat(tasks): add loops cloud agent automations
charlesvien d48aa04
chore(tasks): add language to loops doc code fence
charlesvien 8b3b2fe
chore(tasks): format loops docs with oxfmt
charlesvien 94a18d6
fix(tasks): resolve loops mypy errors
charlesvien 53cdfdd
chore(tasks): cover loop models in idor rules
charlesvien 2bd050d
fix(tasks): route loop wiring through facade
charlesvien ba139a7
test(mcp): update unit test snapshots
tests-posthog[bot] 39d1129
chore: update OpenAPI generated types
tests-posthog[bot] dd1413e
fix(tasks): enforce loop trigger payload cap on parsed body
charlesvien b599312
feat(tasks): auto-select loop model when left unset
charlesvien 3a2e671
test(tasks): prove loop behaviors round-trip through the api
charlesvien cc3d50a
Create LOOPS-ONE-OFF-TASKS.md
charlesvien e5fe3cb
test(mcp): update unit test snapshots
tests-posthog[bot] ed1b699
feat(tasks): cap loops per team and triggers per loop to prevent abuse
charlesvien b45b2ad
feat(tasks): add internal and origin_product to loops
charlesvien 3a0c0b2
feat(tasks): let loops attach to a context and maintain it
charlesvien 9196953
chore(tasks): add loops primitives audit doc
charlesvien 6e7be15
fix(tasks): close loop cross-tenant and visibility holes
charlesvien a9c3d71
fix(tasks): keep loop schedules in sync with the DB
charlesvien c75ded4
fix(tasks): make loop firing idempotent and overlap-safe
charlesvien 11f013d
fix(tasks): harden loop facade contract and lifecycle
charlesvien 72bd294
feat(tasks): loop DX, PSAK readback, ownership takeover, MCP tools
charlesvien 1ef20b1
chore(tasks): loop github filter tests and doc fixups
charlesvien 55b4aa4
updates
charlesvien 90e31fb
add doc for loop context.md and canvas outputs
charlesvien 353be0b
mcp renderering
charlesvien 0c13e40
test(mcp): update unit test snapshots
tests-posthog[bot] f2bd42f
chore: update OpenAPI generated types
tests-posthog[bot] 025cea8
test fixes
charlesvien d62b3e7
Update LoopReviewView.tsx
charlesvien 84b4878
reclaim loop run sandbox promptly when idle
charlesvien c23632c
terminalize background runs on their natural end
charlesvien 63d67d0
tell loop runs to finish via the finish tool
charlesvien 7cf643a
build loop table indexes concurrently
charlesvien 1e560c8
test
charlesvien ca30d33
Update 0061_loop_looptrigger_loopfire.py
charlesvien 2b17496
re-run ci
charlesvien ab76d54
add loop scope to access control inline types
charlesvien 6ee3405
reap stale loop runs to unblock new fires
charlesvien 08ecec6
make loops-create validation forgiving and clear
charlesvien 0babe49
redesign loop review card header and errors
charlesvien 0d86bc5
fixe
charlesvien d25dc5b
wire loop bookkeeping into workflow terminal path
charlesvien 05827c5
persist loop dispatch params for the reconciler
charlesvien 4e078ee
release webhook dedup key when a handler fails
charlesvien c31da65
harden loop sweeps, quota and schedule syncing
charlesvien 18c2d05
fix loops-create repo cap in tool description
charlesvien bee7918
revert hand-edits to generated kea blocks
charlesvien a70ed40
chore(tasks): reorganize loops docs
charlesvien dd0df32
fix(tasks): tear down spent loop schedules, surface loop cap
charlesvien ab6bc93
feat(tasks): raise per-project loop cap to 100
charlesvien 744a63e
fix(tasks): add loop to generated access control types
charlesvien 946734e
fix(tasks): eliminate zombie loop temporal schedules
charlesvien 6d0206f
fix(tasks): resolve critical loop write, run and audit-log bugs
charlesvien 2a586aa
fix(tasks): harden loop retention, reconciliation and create-cap races
charlesvien 75465d9
chore(tasks): document deferred loop hardening and next steps
charlesvien 73753d8
chore: clear mypy errors blocking the loops PR
charlesvien b210dcc
Update converters.py
charlesvien e19ba3a
chore(tasks): regenerate mcp types after rebase
charlesvien 5ad063b
chore(toolbar): raise graph budget for loop scope strings
charlesvien 6dc93f9
fix(tasks): scope non-PSAK loop triggers to visible loops
charlesvien f581afc
fix(tasks): recheck loop enabled under the fire lock
charlesvien 527f881
test(mcp): expect loops flag in tool filtering
charlesvien df30d77
fix(tasks): add loops flag to mcp tool test fixtures
charlesvien a707f6c
fix(tasks): count only dispatched fires toward rate caps
charlesvien 68fd0d4
fix(tasks): cancel deactivated user's runs on transferred loops
charlesvien 1196cbb
fix(tasks): enforce loop connector allowlist in sandbox runs
charlesvien ef77f5c
fix(tasks): require typed confirmation to create a loop via mcp
charlesvien af1160c
fix(tasks): bind loop repos to integration, gate destructive ops on c…
charlesvien 2f725ba
fix(tasks): never fire a loop whose owner is deactivated
charlesvien 96ece8b
fix(tasks): fail closed when a loop repo can't be verified
charlesvien 18569a9
fix(tasks): re-check loop owner active state under the fire lock
charlesvien bd261bf
fix(tasks): require current org membership to fire a loop
charlesvien c5a2b91
fix(tasks): offboard loops when a member is removed from the org
charlesvien 3007fa5
fix(tasks): only fire github-triggered loops for trusted actors
charlesvien f1bf910
revert(tasks): drop loops-create confirmed_action, it broke the revie…
charlesvien 5fddfe9
fix(tasks): drop push commit messages from loop trigger context
charlesvien 82e4c1b
fix(tasks): fail closed minting loop credentials for ineligible owner
charlesvien c1cd420
fix(tasks): re-read and lock loop owner eligibility at credential mint
charlesvien b959149
fix(tasks): gate loop credentials on team access, incl github tokens
charlesvien 71f41cc
fix(tasks): restrict non-psak loop triggering to the owner
charlesvien a212a9a
fix(tasks): lock org membership while minting loop credentials
charlesvien ba8e627
fix(tasks): fail closed on empty connector allowlist, recheck github …
charlesvien b4840b2
fix(tasks): require content-length to bound loop trigger parsing
charlesvien 55a31c4
fix(tasks): throttle loop github events and bound capped-fire writes
charlesvien e1ea1d3
fix(tasks): enforce object-level rbac on loop api paths
charlesvien 4584f2e
fix(tasks): hide deleted personal loop activity org-wide
charlesvien ac6f1c9
fix(tasks): gate loop github refresh paths on owner eligibility
charlesvien 3ab6854
fix(tasks): abort loop fire when owner changed after usage gate
charlesvien 15dd92d
fix(tasks): require confirmation to create loops via mcp
charlesvien 35f0602
chore: drop unused type ignore in personhog converters
charlesvien 39c3515
chore: update OpenAPI generated types
tests-posthog[bot] 20372c0
fix(tasks): apply loop rbac to activity log visibility
charlesvien 4a3d43d
chore(tasks): document mcp loop-create confirmation tradeoff
charlesvien acaac20
chore: fix mypy errors surfaced by ci environment
charlesvien 1a26542
fix(tasks): split loop creator backfill from schema migration
charlesvien 5fa5ca8
chore: scope cache signal test to its own on_commit call
charlesvien d28928e
chore: record loop receivers in setup baseline
charlesvien 7b0c2e8
chore(tasks): expect connector allowlist kwarg in followup test
charlesvien 0c00c1e
fix(tasks): gate loops-review mcp tool behind loops flag
charlesvien ba0e40a
fix(tasks): run loop bookkeeping when workflow start fails
charlesvien 161c337
fix(tasks): capture task_deleted via scoped client in sweep
charlesvien 71ec282
chore: update OpenAPI generated types
tests-posthog[bot] File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.