Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
382 commits
Select commit Hold shift + click to select a range
49306b4
fix(subgraph): remove trailing empty line in schema.graphql
kapustazh Sep 9, 2026
7cb629c
Merge pull request #48 from SWOFART/feat/graph-sponsor-qualification
kapustazh Sep 9, 2026
3c31393
docs: plan Arc Circle qualification path
SuPuHe Sep 9, 2026
779c6cf
Merge pull request #49 from SWOFART/docs/arc-circle-qualification-plan
selezenart Sep 9, 2026
f1cba90
feat(web): compose P5 frontend acceptance
SuPuHe Sep 9, 2026
f836b9a
feat(web): merge P5 frontend acceptance implementations
SuPuHe Sep 9, 2026
ded0655
merge: sync P5 comparison branch with develop
SuPuHe Sep 9, 2026
c38511c
Merge pull request #52 from SWOFART/feature/p5-compare-pr50
SuPuHe Sep 9, 2026
3b23a3c
feat(worker): add production runtime
SuPuHe Sep 9, 2026
da65a16
test(worker): wire integration ledger dependencies
SuPuHe Sep 9, 2026
7ae55c8
Merge pull request #53 from SWOFART/feature/production-worker-runtime
SuPuHe Sep 9, 2026
23f3a69
feat: package gate p6 demo
kapustazh Sep 9, 2026
265808f
Merge pull request #54 from SWOFART/milestone/gate-p6-release-candidate
SuPuHe Sep 9, 2026
99d2f47
fix: use pnpm version
SuPuHe Sep 9, 2026
78b9d74
Merge pull request #56 from SWOFART/feature/production-worker-runtime
SuPuHe Sep 9, 2026
d233118
feat(web): define the operator session port
kapustazh Sep 9, 2026
abc7454
feat(web): gate the console behind an operator sign-in surface
kapustazh Sep 9, 2026
5051150
feat(api): verify Privy access tokens against an operator allowlist
kapustazh Sep 9, 2026
c7504a8
feat(api): route credentials to one authenticator by token shape
kapustazh Sep 9, 2026
fc1d68c
feat(api): load and validate Privy operator auth configuration
kapustazh Sep 9, 2026
654fc9b
feat(api): compose Privy and service-bearer authenticators at runtime
kapustazh Sep 9, 2026
cd46bd8
feat(web): require an operator session before the console renders
kapustazh Sep 9, 2026
ab21bd6
style(web): format operator session wiring
kapustazh Sep 9, 2026
dd424c7
feat(web): mount the Privy provider lazily behind the session port
kapustazh Sep 9, 2026
18a554e
docs: describe the Privy operator sign-in boundary
kapustazh Sep 9, 2026
1125134
Merge pull request #57 from SWOFART/feature/privy-operator-auth
kapustazh Sep 9, 2026
87bf220
feat(web): Behance-grade minimalist dark glassmorphism landing and co…
kapustazh Sep 10, 2026
e0e0e78
Merge pull request #58 from SWOFART/feature/web-landing-redesign
kapustazh Sep 10, 2026
1b653ce
feat(auth): open wallet authentication with wildcard allowlist and UI…
kapustazh Sep 10, 2026
48ff88c
Merge pull request #59 from SWOFART/feature/open-wallet-auth
kapustazh Sep 10, 2026
74eb172
fix(web): buffer proxy request body, enforce CORS headers, and defaul…
kapustazh Sep 10, 2026
6a96878
Merge pull request #60 from SWOFART/fix/web-proxy-and-privy-app-id
kapustazh Sep 10, 2026
3364e05
fix(worker): preserve production runtime dependencies
kapustazh Sep 10, 2026
cd74390
Merge pull request #61 from SWOFART/fix/worker-runtime-deployment
kapustazh Sep 10, 2026
6a91d38
fix(worker): sign and broadcast on custom Arc chain without relayer
kapustazh Sep 10, 2026
a8180f1
fix(recovery): verify hashless graph candidates on Arc
SuPuHe Sep 10, 2026
27234e2
fix(worker): persist provider request identity before submit
SuPuHe Sep 10, 2026
6d0497c
fix(recovery): preserve verified receipt metadata
SuPuHe Sep 10, 2026
8d69d60
Merge pull request #62 from SWOFART/fix/worker-runtime-deployment
kapustazh Sep 10, 2026
608a9ce
fix(worker): require production subgraph mcp admission
SuPuHe Sep 10, 2026
d553ae4
fix(api): harden production operator authentication
SuPuHe Sep 10, 2026
26b7dca
feat(storage): persist operational metric events
SuPuHe Sep 10, 2026
d26b084
docs: document recovery hardening and fix integration fixtures
SuPuHe Sep 10, 2026
e74edf3
test(worker): reset operational metrics between integration cases
SuPuHe Sep 10, 2026
c140405
Merge pull request #63 from SWOFART/milestone/recovery-hardening
SuPuHe Sep 10, 2026
5bce38b
fix: harden settlement safety boundaries
SuPuHe Sep 10, 2026
c01bfb8
fix(recovery): query Arc subgraph via Studio
kapustazh Sep 10, 2026
6113131
Merge pull request #64 from SWOFART/fix/settlement-safety-hardening
SuPuHe Sep 10, 2026
95709a8
Merge pull request #65 from SWOFART/fix/studio-recovery-runtime
SuPuHe Sep 10, 2026
206ad43
fix(recovery): allow delivered reconciliation retries
kapustazh Sep 10, 2026
7a48310
docs(web): design for brand frontend repaint and wallet picker
selezenart Sep 10, 2026
0b7ca90
docs(web): add the brand frontend implementation plan
selezenart Sep 10, 2026
d6ce32c
docs(web): correct four defects found in the brand frontend plan pref…
selezenart Sep 10, 2026
6a48bcd
docs(web): give the lime field its own fixed ink token
selezenart Sep 10, 2026
c1c720a
Merge pull request #66 from SWOFART/fix/reconciliation-retry
kapustazh Sep 10, 2026
76ff39e
feat(brand): add the brand token package with a two-theme contrast audit
selezenart Sep 10, 2026
e9f9124
docs(plan): graph studio agent recovery plan and durable handoff context
kapustazh Sep 10, 2026
6fcaea1
feat(brand): add the commit-ring mark with its reduced cut
selezenart Sep 10, 2026
25a3596
fix: harden Arc Testnet settlement
SuPuHe Sep 10, 2026
dd79e71
Merge pull request #67 from SWOFART/fix/arc-testnet-hardening
SuPuHe Sep 10, 2026
60f43b8
docs(web): correct the hero vertex count to four per shape
selezenart Sep 10, 2026
08f2c11
feat(brand): derive the diagonal hero cut from the box size
selezenart Sep 10, 2026
e0f0a97
docs(web): restore globals before clearing storage in the theme teardown
selezenart Sep 10, 2026
f5ed5a5
feat(web): add theme selection with a pre-paint guard
selezenart Sep 10, 2026
6eec1dc
docs(web): wrap the brand alias to the repo print width
selezenart Sep 10, 2026
1a55b92
Merge remote-tracking branch 'origin/develop' into plan/graph-studio-…
SuPuHe Sep 10, 2026
29f27da
feat: implement Graph Studio agent recovery
SuPuHe Sep 10, 2026
0f39392
Merge pull request #68 from SWOFART/plan/graph-studio-agent-recovery
SuPuHe Sep 10, 2026
f02e9cd
feat(settlement-ui): remove allowlist display from PolicySummaryPanel
kapustazh Sep 10, 2026
3f8cbf6
feat(worker): remove recipient allowlist restriction and support wild…
kapustazh Sep 10, 2026
3f305ca
fix(worker,ui): wait for transaction receipt on submission and improv…
kapustazh Sep 10, 2026
7917bcd
style: format settlement-ui contract and cloudbuild config
kapustazh Sep 10, 2026
41ab54c
Merge pull request #69 from SWOFART/fix/arc-settlement-receipt-wait-a…
kapustazh Sep 10, 2026
eb232ec
fix: add shared API rate limiting and complete worker deploy config
SuPuHe Sep 10, 2026
c9f41c8
fix: harden Privy fallback and integration cleanup
SuPuHe Sep 10, 2026
db6c046
docs: reconcile production runtime and qualification status
SuPuHe Sep 10, 2026
9f81bee
test: avoid migration rollback fixture collision
SuPuHe Sep 10, 2026
86c8f86
Merge pull request #70 from SWOFART/fix/production-hardening-ops
SuPuHe Sep 10, 2026
9134b60
feat(web): repaint the console shell onto the brand tokens
selezenart Sep 10, 2026
1ff807f
fix(web): correct ink/panel-ink contrast bugs in the stylesheet
selezenart Sep 10, 2026
a133ed7
feat(web): put the commit-ring mark and the theme toggle in the shell
selezenart Sep 10, 2026
ce0f5e1
feat(web): cut the diagonal hero from derived geometry
selezenart Sep 10, 2026
4e4531e
docs: reshape plan around resumable paid tools
kapustazh Sep 10, 2026
f1298fa
Merge pull request #71 from SWOFART/feature/resumable-agent-tools-plan
SuPuHe Sep 10, 2026
a4ddd4f
feat(ui): read the slice palettes from the brand tokens
selezenart Sep 10, 2026
e962fcd
fix(brand): guard the contrast audit and fix panel border contrast
selezenart Sep 10, 2026
80dbb69
feat: implement plan gap analysis
SuPuHe Sep 10, 2026
0cccf6d
test: align CI coverage with job cabinet
SuPuHe Sep 10, 2026
0c9b899
test: isolate worker postgres integration suites
SuPuHe Sep 10, 2026
00a42ac
Merge pull request #72 from SWOFART/feat/implement-plan-gap-analysis
SuPuHe Sep 10, 2026
724bacd
feat(web): separate tools and jobs workspace
SuPuHe Sep 10, 2026
480c0ab
Merge pull request #73 from SWOFART/feat/implement-plan-gap-analysis
SuPuHe Sep 11, 2026
d75c02e
feat: add Arc transfer quote and approval demo
SuPuHe Sep 11, 2026
61d6d17
Merge pull request #74 from SWOFART/feat/arc-transfer-demo
SuPuHe Sep 11, 2026
43e69a4
feat(web): discover installed wallets over EIP-6963
selezenart Sep 11, 2026
0368f65
fix(web): harden EIP-6963 announcement validation and its test coverage
selezenart Sep 11, 2026
fb7a4fe
feat(web): add a searchable wallet picker
selezenart Sep 11, 2026
790fcc5
feat: add Circle x402 demo rail
kapustazh Sep 11, 2026
375c3c1
feat(web): sign in through Privy's headless SIWE flow
selezenart Sep 11, 2026
29c8474
fix(web): measure the hero before paint to stop the load flash
selezenart Sep 11, 2026
e4b0c25
fix(web): time out unresponsive wallet requests during sign-in
selezenart Sep 11, 2026
c58fdd2
docs: record x402 review evidence
kapustazh Sep 11, 2026
b340356
docs: fix context markdown lint
kapustazh Sep 11, 2026
8123087
docs(web): document the brand package and the theme guard
selezenart Sep 11, 2026
c89cbde
Merge pull request #75 from SWOFART/feature/circle-x402-demo
kapustazh Sep 11, 2026
60b91f6
Merge remote-tracking branch 'origin/milestone/brand-frontend' into f…
kapustazh Sep 11, 2026
2baf7ff
docs: fix markdown lint
kapustazh Sep 11, 2026
c44eb1a
docs: record final gate evidence
kapustazh Sep 11, 2026
2366762
Merge pull request #77 from SWOFART/feature/brand-frontend-integration
kapustazh Sep 11, 2026
4a962ff
feat: add job-aware activity audit
kapustazh Sep 11, 2026
9821680
docs: record activity audit checks
kapustazh Sep 11, 2026
3aa80ad
docs: record final activity state
kapustazh Sep 11, 2026
e0c37e1
docs: bind activity audit context
kapustazh Sep 11, 2026
51796da
docs: bind activity audit context
kapustazh Sep 11, 2026
842f98b
docs: bind activity audit context
kapustazh Sep 11, 2026
b22c79e
feat: add r4 response-loss drill
kapustazh Sep 11, 2026
ac277ca
docs: add r5 release packet
kapustazh Sep 11, 2026
709a713
Merge pull request #80 from SWOFART/feature/r5-release-submission
SuPuHe Sep 11, 2026
650034f
feat(web): make report payment inputs configurable
SuPuHe Sep 11, 2026
e03f46f
Merge pull request #82 from SWOFART/feature/frontend-report-payment-i…
SuPuHe Sep 11, 2026
7b13c72
feat: integrate paid API settlement into site
SuPuHe Sep 11, 2026
11b2e39
fix: clear paid API CI failures
SuPuHe Sep 11, 2026
4c9e2a3
test: include paid API records in postgres cleanup
SuPuHe Sep 11, 2026
dc128a7
Merge pull request #83 from SWOFART/feature/site-paid-api-settlement
SuPuHe Sep 11, 2026
f4c7597
feat: add Circle x402 seller service
SuPuHe Sep 11, 2026
1b7e6c1
Merge pull request #84 from SWOFART/feature/circle-seller-endpoint
SuPuHe Sep 11, 2026
ed3e634
fix(web): polish workspace loading state
kapustazh Sep 11, 2026
46d4c87
Merge pull request #85 from SWOFART/fix/workspace-loading-shell
kapustazh Sep 11, 2026
832525b
fix(web): allow seller proxy redirects safely
kapustazh Sep 11, 2026
1f9a7b8
fix(web): preserve wallet SIWE login
SuPuHe Sep 11, 2026
271b1af
Merge pull request #87 from SWOFART/fix/wallet-login
SuPuHe Sep 11, 2026
89eac17
docs: record deployment gate evidence
kapustazh Sep 11, 2026
e4a5376
fix(web): canonicalize wallet address for SIWE
SuPuHe Sep 11, 2026
a525313
Merge pull request #86 from SWOFART/fix/circle-seller-worker-proxy
kapustazh Sep 11, 2026
71b470a
Merge pull request #88 from SWOFART/fix/wallet-siwe-checksum
SuPuHe Sep 11, 2026
de8fa06
fix: persist seller worker origin
kapustazh Sep 11, 2026
b298768
fix(web): use Privy native login modal
SuPuHe Sep 11, 2026
fa8181a
Merge pull request #89 from SWOFART/fix/privy-native-login
SuPuHe Sep 11, 2026
f5a3fb3
Merge pull request #90 from SWOFART/fix/circle-seller-worker-proxy
kapustazh Sep 11, 2026
7dd6f48
fix: bound Privy reference IDs
kapustazh Sep 11, 2026
4d28073
Merge pull request #91 from SWOFART/fix/privy-reference-id-length
SuPuHe Sep 11, 2026
e7d2dac
fix(x402): reconcile Circle transfer UUIDs
kapustazh Sep 11, 2026
e3a92b0
docs: record Circle x402 PR
kapustazh Sep 11, 2026
4543519
test(storage): cover transfer migration
kapustazh Sep 11, 2026
bfaf733
Merge pull request #92 from SWOFART/fix/circle-x402-payment
kapustazh Sep 11, 2026
6ee6a59
feat(web): simplify payment workspace UX
kapustazh Sep 12, 2026
db757b4
Merge pull request #93 from SWOFART/feature/user-friendly-workspace
kapustazh Sep 12, 2026
b5ee5c2
fix(web): restore contrast and add rescue plan
kapustazh Sep 12, 2026
c6b2e4c
docs: record rescue draft PR handoff
kapustazh Sep 12, 2026
4790e6c
docs: fix handoff link formatting
kapustazh Sep 12, 2026
ac0439e
fix(x402): bind approval to quoted payment
kapustazh Sep 12, 2026
8988c06
docs: record Arc rescue handoff
kapustazh Sep 12, 2026
990b995
docs: refresh rescue handoff state
kapustazh Sep 12, 2026
24e3868
Merge pull request #94 from SWOFART/milestone/one-day-rescue
kapustazh Sep 12, 2026
cd2ea4c
fix(web): restore workspace hero and action states
kapustazh Sep 12, 2026
17a9310
fix(web): preserve selected tab contrast
kapustazh Sep 12, 2026
c6c5d5f
Merge pull request #95 from SWOFART/milestone/one-day-rescue
kapustazh Sep 12, 2026
0bb7988
feat(web): redesign payment proof and recovery
kapustazh Sep 12, 2026
a8727bb
fix: harden Privy settlement response handling
SuPuHe Sep 12, 2026
49709dc
feat: support user-funded wallet payments
SuPuHe Sep 12, 2026
0849a1e
merge: sync develop into user-wallet payment feature
SuPuHe Sep 12, 2026
1fafaf6
fix: preserve legacy workspace composition
SuPuHe Sep 12, 2026
7f89da6
test: align postgres fixtures with merged migrations
SuPuHe Sep 12, 2026
095eb33
Merge pull request #98 from SWOFART/fix/privy-native-login
SuPuHe Sep 12, 2026
30daa04
fix: show verified user wallet payment proof
SuPuHe Sep 12, 2026
8f07bba
Merge pull request #99 from SWOFART/fix/privy-native-login
SuPuHe Sep 12, 2026
ff146e4
fix(web): make the operator console readable in both themes (#96)
selezenart Sep 12, 2026
721866b
feat: add user-funded Circle x402 payments
SuPuHe Sep 12, 2026
bb4a760
merge: sync develop into Circle x402 payment feature
SuPuHe Sep 12, 2026
49c53eb
test: authorize paid API fixture before claim
SuPuHe Sep 12, 2026
0d378a2
test: select claimed paid API attempt deterministically
SuPuHe Sep 12, 2026
7aa1bd5
Merge pull request #100 from SWOFART/fix/circle-x402-persistence
SuPuHe Sep 12, 2026
ee60e0b
fix(web): clarify payment service labels (#102)
kapustazh Sep 12, 2026
3c80a88
Update copyright holder in LICENSE file
SuPuHe Sep 12, 2026
e236c07
fix(api): accept empty activity refresh body (#103)
kapustazh Sep 12, 2026
04dcf1a
fix(web): restore the settlement link and fade late panel content
selezenart Sep 12, 2026
b0c7bc8
fix(circle): allow normal user wallet approval delay
SuPuHe Sep 12, 2026
e4caaf6
Merge pull request #105 from SWOFART/fix/circle-x402-authorization-wi…
SuPuHe Sep 12, 2026
3463daf
Merge pull request #104 from SWOFART/fix/workspace-link-and-tab-fade
selezenart Sep 12, 2026
b193a0c
fix: recover user-wallet payments safely
SuPuHe Sep 12, 2026
4901035
Merge pull request #106 from SWOFART/fix/user-wallet-recovery
SuPuHe Sep 12, 2026
3048d8c
feat(web): add user-funded Circle Gateway deposits
SuPuHe Sep 12, 2026
034d3b3
Merge pull request #107 from SWOFART/fix/gateway-funding
SuPuHe Sep 12, 2026
bbb1052
fix(web): bind payments to Privy wallet (#108)
kapustazh Sep 12, 2026
7cc12e1
fix: widen Circle user-wallet authorization window
SuPuHe Sep 12, 2026
02987d8
docs: record Circle validity handoff
SuPuHe Sep 12, 2026
7cf0a56
merge: sync current develop into Circle validity fix
SuPuHe Sep 12, 2026
b74dcf0
docs: record merged Circle validity candidate
SuPuHe Sep 12, 2026
fd51572
fix(web): restore Privy wallet picker (#109)
kapustazh Sep 12, 2026
f748237
merge: sync latest develop into Circle validity fix
SuPuHe Sep 12, 2026
ba0afd4
docs: record latest develop sync
SuPuHe Sep 12, 2026
37e4615
Merge pull request #110 from SWOFART/fix/circle-x402-validity-window
SuPuHe Sep 12, 2026
1123107
fix(web): update website logo (#111)
kapustazh Sep 12, 2026
f225601
fix(web): pay with the actively selected wallet (#113)
kapustazh Sep 12, 2026
23e4373
fix(web): keep the dedicated Privy payer (#114)
kapustazh Sep 13, 2026
d1a7397
feat: persist paid API requests in request list
SuPuHe Sep 13, 2026
1cb2917
fix(web): route payment approval by wallet type (#116)
kapustazh Sep 13, 2026
90159b5
Merge pull request #115 from SWOFART/fix/paid-api-requests
SuPuHe Sep 13, 2026
b942732
fix(settlement): remove recipient allowlist (#117)
kapustazh Sep 13, 2026
91a7744
fix(web): pay console jobs through the server wallet (#118)
kapustazh Sep 13, 2026
bea51e1
remove: retire Circle paid API product
SuPuHe Sep 13, 2026
8cccf32
test: restore postgres cleanup dependencies
SuPuHe Sep 13, 2026
8e98cd8
test: assert direct arc provider identity
SuPuHe Sep 13, 2026
94f2438
Merge pull request #119 from SWOFART/feature/remove-circle-paid-api
SuPuHe Sep 13, 2026
3860c76
fix(web): restore user-wallet payment preparation
SuPuHe Sep 13, 2026
ed5cbc2
Merge pull request #121 from SWOFART/fix/restore-user-wallet-prepare
SuPuHe Sep 13, 2026
246a38a
feat: add Arc payment MCP endpoint (#120)
kapustazh Sep 13, 2026
3728338
fix(web): resolve Privy wallet payment selection
SuPuHe Sep 13, 2026
fb76eb0
Merge pull request #123 from SWOFART/fix/restore-user-wallet-prepare
SuPuHe Sep 13, 2026
6292052
feat: add personal MCP credentials (#122)
kapustazh Sep 13, 2026
5824fd6
fix(web): clarify direct payment copy (#125)
kapustazh Sep 13, 2026
5e1c9e9
feat: capture Graph evidence for every settlement (#124)
SuPuHe Sep 13, 2026
8432029
fix(web): polyfill Buffer for Privy transfers (#126)
kapustazh Sep 13, 2026
964d475
feat(web): add MCP profile shortcuts (land #127 on develop) (#129)
kapustazh Sep 13, 2026
72c4bd7
fix(mcp): let agent generate request key (#130)
kapustazh Sep 13, 2026
c163dff
fix(web): auto-verify user wallet payments
SuPuHe Sep 13, 2026
f6fd350
Merge pull request #132 from SWOFART/fix/privy-wallet-auto-verify
SuPuHe Sep 13, 2026
42fe4bb
feat(recovery): backfill Graph evidence and brand proof UI (#131)
kapustazh Sep 13, 2026
0ef1a5d
feat: route MCP payments through user wallets
SuPuHe Sep 13, 2026
8f87789
fix: normalize MCP payload conflicts
SuPuHe Sep 13, 2026
bffa03e
test: align MCP conflict assertion
SuPuHe Sep 13, 2026
d671af1
Merge pull request #133 from SWOFART/feature/mcp-user-wallet-payments
SuPuHe Sep 13, 2026
6be9c33
fix(web): resume supplier results and copy wallet address
SuPuHe Sep 13, 2026
266b6a7
Merge pull request #134 from SWOFART/fix/session-details-resume-result
SuPuHe Sep 13, 2026
26dfab5
fix(web): avoid repeated resume result polling
SuPuHe Sep 13, 2026
d07ed46
Merge pull request #135 from SWOFART/fix/session-details-resume-result
SuPuHe Sep 13, 2026
1824728
fix(web): wait for resumed supplier result
SuPuHe Sep 13, 2026
a5d2848
Merge pull request #136 from SWOFART/fix/session-details-resume-result
SuPuHe Sep 13, 2026
2a16abc
feat: add MCP wallet signing handoff link
SuPuHe Sep 13, 2026
a2903a1
fix(web): remove automatic resume polling
SuPuHe Sep 13, 2026
65200cc
Merge pull request #138 from SWOFART/fix/session-details-resume-result
SuPuHe Sep 13, 2026
a5beee8
fix: surface Graph evidence for site payment outcomes
SuPuHe Sep 13, 2026
7aac418
merge develop and preserve MCP signing link
SuPuHe Sep 13, 2026
68626d2
Merge pull request #137 from SWOFART/feat/mcp-signing-link
SuPuHe Sep 13, 2026
09250e4
docs: refresh README and add front-end derived banner
selezenart Sep 13, 2026
0f8dd9a
fix(web): re-read a pending delivery until the worker reports the result
selezenart Sep 13, 2026
3799ca2
Merge pull request #139 from SWOFART/fix/graph-transaction-evidence
SuPuHe Sep 13, 2026
1b038ea
Merge origin/develop into feature/readme-refresh
selezenart Sep 13, 2026
6ce0735
Merge pull request #141 from SWOFART/fix/pending-delivery-refresh
selezenart Sep 13, 2026
9177bbe
Merge pull request #140 from SWOFART/feature/readme-refresh
selezenart Sep 13, 2026
996e07b
fix(jobs): recover a delivery stranded in PENDING
selezenart Sep 13, 2026
df556f3
docs: reduce the README banner to the brand lock-up
selezenart Sep 13, 2026
5fd1d57
Merge remote-tracking branch 'origin/develop' into feature/readme-ref…
selezenart Sep 13, 2026
1cd2af1
Merge pull request #143 from SWOFART/feature/readme-refresh
selezenart Sep 13, 2026
5075217
Merge pull request #142 from SWOFART/fix/stranded-pending-delivery
selezenart Sep 13, 2026
6507e04
Add centered picture element to README
selezenart Sep 13, 2026
a5aacd2
fix(activity): scope indexed transfers to the workspace
selezenart Sep 13, 2026
96c1683
Merge pull request #144 from SWOFART/fix/workspace-scoped-activity-tr…
selezenart Sep 13, 2026
314106e
docs: require min-instances and no-cpu-throttling for the worker
selezenart Sep 13, 2026
8e89d5f
Merge pull request #145 from SWOFART/docs/worker-deploy-flags
selezenart Sep 13, 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
  •  
  •  
  •  
120 changes: 120 additions & 0 deletions .agent/AGENTS.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,120 @@
# OneShot Agent Policy

This policy applies to code, documentation, infrastructure, data, and agent
work in this repository.

## Instruction order

1. Follow system and user instructions.
2. Follow root `AGENTS.md` and this policy.
3. Follow the task-specific documents and repo skills routed by root
`AGENTS.md`.
4. Follow the narrowest applicable repository configuration.

Surface conflicts. Never silently weaken an invariant, review gate, or security
boundary.

## Tool neutrality

- Codex, Claude, Antigravity, Cursor, or another capable agent may implement
work, but all tools follow the same canonical repository policy.
- Tool adapters remain short pointers to root `AGENTS.md`; personal prompts,
permissions, models, and machine-specific commands stay in ignored files.
- Gate A and Gate B use separate fresh, read-only FreePi processes. Each verdict
records the reviewer tool, platform-reported model (or `not exposed by
platform`), and immutable Git identities required by
`.agent/IMPLEMENTATION_LOOP.md`.

## Product boundary

OneShot's core promise is: `One job. Many retries. One settlement.`

- OneShot owns authoritative Business Intent, Attempt, and Settlement state and
prevents duplicate committed settlements.
- Privy provides corporate wallet access and scoped authorization, policy, and
spending permissions.
- Arc is the USDC settlement rail.
- Direct Privy and Arc evidence resolves known transaction identities. The Graph
is the selected v1 hashless candidate-discovery layer after its C01 evidence
gate; it is never the duplicate-payment lock or settlement authority.

Read `.agent/PROJECT_CONTEXT.md`, `.agent/SECURITY_INVARIANTS.md`, and
`.agent/SPONSOR_REQUIREMENTS.md` before changing these boundaries.

## Non-negotiable invariants

- `1 business intent -> at most 1 committed settlement`.
- Keep one stable `business_intent_id` across retries, restarts, parallel
attempts, workers, and agent instances.
- Treat `UNKNOWN` settlement state as a reconciliation requirement. Never
blindly repay.
- Make state durable and transitions atomic and concurrency-safe.
- Represent money as integer atomic units or `bigint`, never JavaScript
floating point.
- External-index absence or delay is not proof that payment did not happen.
- Normal execution must not bypass Privy policy or OneShot controls.
- Use testnet only unless the user explicitly authorizes another network.
- Never log, expose, persist, commit, or send secrets, private keys, seed
phrases, tokens, wallet credentials, or sensitive runtime configuration.

## Before changing files

- Inspect the current branch, status, task acceptance criteria, relevant code,
existing diff, and any merge/rebase state.
- Preserve unrelated user work and keep it out of commits.
- Record material assumptions and active context in `.agent/context/`.
- Use current primary documentation for version-sensitive integrations.
- Do not create or materially revise the product implementation `plan.md` until
required skills and integration research are ready.

## Implementation quality

- Keep one branch and PR focused on one milestone or tightly related change.
- Preserve clear ownership among interface, orchestration, domain state, and
external adapters.
- Validate untrusted input at boundaries.
- Do not weaken compiler, lint, type, test, or security settings to get a pass.
- Add tests for behavior changes and regression fixes. Payment-related changes
select applicable cases from `.agent/TEST_MATRIX.md`.
- Do not leave dead code, unexplained suppressions, placeholder credentials, or
hidden follow-up work.
- Update documentation when behavior, contracts, or architecture change.

## Repository skills

- `oneshot-idempotency`: mandatory for intent, retry, worker, payment,
reconciliation, or settlement work.
- `oneshot-failure-injection`: mandatory for external-effect failure
boundaries.
- `sponsor-qualification`: mandatory before sponsor, demo, or release claims.

Personal workflow and review skills may supplement these rules. They never
replace OneShot policy or FreePi Gate A/B.

## Git and review policy

- Never implement directly on `main` or `develop`.
- Branch from current `develop`; target `develop` from short-lived
`feature/*`, `fix/*`, or `milestone/*` branches unless the user explicitly
names another short-lived branch.
- Never direct-push or force-push protected branches or rewrite shared history
without explicit user authorization.
- Follow `.agent/IMPLEMENTATION_LOOP.md` for local checks, staged-tree identity,
both independent FreePi reviews, CI, PR readiness, and invalidation rules.
- Only explicit `VERDICT: PASS` passes a gate. Missing, ambiguous, truncated,
stale, unauthenticated, or failed review output fails closed.
- Agents never merge a PR. A human reviews and explicitly authorizes the merge.

## Context retention

Follow `.agent/context/README.md`. Update the active record at milestone
boundaries, before handoff/session end, and before deliberate context reset or
compaction when possible. Never store secrets there.

## Agent-complete

Handoff only after intended scope is complete, local checks pass, the diff is
cleanly scoped, and current gate state is recorded. A change is ready for human
review only after Gate A, required CI, and Gate B pass for the exact applicable
tree/head. Report branch, commit, PR, checks, gate evidence, and remaining
risks. Never merge.
144 changes: 144 additions & 0 deletions .agent/IMPLEMENTATION_LOOP.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,144 @@
# OneShot Implementation Loop

This is the required path from a focused change to human review. `develop` is
the base. Gate A binds to one immutable candidate tree before the first push;
Gate B binds to the exact draft-PR head SHA and the same tree after required CI.

## 1. Scope and branch

1. Start from current `develop`.
2. Create one short-lived `feature/*`, `fix/*`, or `milestone/*` branch unless
the user explicitly names another short-lived branch.
3. Record goal, acceptance criteria, assumptions, non-goals, and branch state in
`.agent/context/`.
4. Never implement directly on `develop` or `main`.

## 2. Implement and validate

1. Make the smallest coherent change.
2. Use applicable repo skills and `.agent/TEST_MATRIX.md`.
3. Run local format, lint, type, test, build, and focused failure-injection
checks that exist for affected components.
4. Inspect tracked, staged, unstaged, ignored, and intended untracked changes
for scope, generated files, secrets, and unrelated work. Never open or send
ignored secret files to a reviewer.
5. Stage every intended file and only intended files. Gate A reviews a single
candidate tree, not a partially staged workspace.
6. Record concise command/result evidence in the active context. Keep full logs
only for failures that require diagnosis.

Do not bypass failures with force flags, skipped checks, broad ignores, lower
thresholds, or disabled hooks.

## 3. Capture immutable Gate A evidence

Refresh the base and record exact identities:

```bash
git fetch origin develop
git rev-parse origin/develop
git write-tree
git status --short
git diff --cached --check
git diff --cached <recorded-base-sha>
```

- `recorded-base-sha` is the printed full SHA, not a moving ref.
- `git write-tree` is the candidate tree SHA.
- For an already-created but unpushed merge commit, use
`git rev-parse "HEAD^{tree}"` and `git diff <recorded-base-sha> HEAD`; the
commit must have no additional workspace changes.
- Confirm no intended change is absent from the candidate and no unrelated file
is present.

## 4. FreePi Gate A: pre-push review

1. From the repository root, start exactly one fresh process:

```bash
npx free-pi-cli
```

2. In one message, tell the new session to read
`.agent/review-prompts/freepi-prepush-review.md`; provide only the task
acceptance criteria, recorded base SHA, candidate tree SHA, and whether the
tree is staged or the exact unpushed `HEAD` tree.
3. Let the reviewer inspect the candidate diff and routed repository documents
with its tools. Do not paste duplicate policy, complete file bodies, repeated
terminal output, or secrets into the prompt.
4. Accept only an explicit `VERDICT: PASS` containing the required reviewer,
model, base, target, and tree identities.

Each attempt uses a new `npx free-pi-cli` process. Never resume or reuse a
reviewer context. Any candidate-tree change invalidates Gate A and requires
local checks plus a new process. Missing evidence, ambiguity, truncation,
authentication/tool failure, or any verdict other than explicit PASS fails
closed.

## 5. Commit, push, and draft PR

Only after Gate A passes for the candidate tree:

1. If the tree is staged, commit it without changing content. If Gate A reviewed
an existing unpushed commit, do not amend it.
2. Confirm `git rev-parse "HEAD^{tree}"` equals the reviewed candidate tree.
3. Push the short-lived branch without force.
4. Create a draft PR targeting `develop`, never `main` for feature work.
5. Fill `.github/PULL_REQUEST_TEMPLATE.md`, including Gate A evidence.

## 6. Required CI

Wait for every required check on the exact draft-PR head SHA. Pending, skipped,
missing, or failing required checks are not green.

If a fix changes content, rerun local validation and fresh Gate A, commit, push,
and wait for CI again.

## 7. FreePi Gate B: exact PR review

1. Capture PR URL/number, base, head branch, exact full head SHA, head tree SHA,
full diff, required check results, and Gate A candidate tree.
2. Start a second fresh process from the repository root:

```bash
npx free-pi-cli
```

3. In one message, tell it to read
`.agent/review-prompts/freepi-pr-review.md` and provide only the captured
identities, PR URL, concise CI summary, acceptance criteria, and Gate A
verdict. Let the reviewer obtain the diff and public evidence with tools.
4. Accept only explicit `VERDICT: PASS` bound to the exact current PR head SHA
whose tree equals the Gate A candidate tree.

Any content change after Gate B invalidates both tree equality and Gate B.
Return to local validation, fresh Gate A, commit/push, green CI, then fresh Gate
B.

## 8. Human review and merge

After Gate A, required CI, and Gate B pass for the current tree/head:

1. Record both verdicts and evidence in the PR and context file.
2. Mark the draft ready for human review.
3. Report branch, SHA, tree SHA, PR URL, checks, gates, and residual risks.
4. Stop. Agents never merge; only a human may authorize and perform the merge.

## Review token discipline

- Canonical policy is linked, not copied into tool adapters or review prompts.
- Send each reviewer one compact instruction message. The reviewer reads only
documents routed by root `AGENTS.md` and files relevant to the diff.
- Reference immutable Git identities and concise check results instead of
pasting whole diffs, policy files, or successful logs into chat.
- Reviewers inspect silently and return one structured verdict. They do not
narrate file reads, repeat the task, or restate unchanged policy.
- Never reduce scope, skip evidence, or hide failures to save tokens. Token
discipline removes duplication, not review coverage.

## Privacy boundary

FreePi may review the candidate diff, tests, public documentation, and
non-sensitive check evidence only. Never provide `.env*`, ignored files,
private keys, seed phrases, access tokens, API secrets, wallet credentials, or
sensitive runtime configuration. If safe review is impossible, fail the gate.
100 changes: 100 additions & 0 deletions .agent/PROJECT_CONTEXT.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,100 @@
# OneShot Project Context

## Product statement

`One job. Many retries. One settlement.`

Product direction: **resumable paid tools for business agents**. User-facing
message: **Resume the job, not the payment.** The revised `plan.md` defines
R0–R5 for the next increment; it does not claim those features are implemented.

OneShot executes an approved business obligation safely despite retries,
crashes, lost responses, parallel workers, or multiple agent instances.

The core cardinality is:

`1 intent / N attempts / <=1 committed settlement`

This document defines ownership and vocabulary. It is not a product
implementation plan.

## Primary production vertical

The first user is a company that lets an autonomous agent purchase a paid API
operation or digital result in USDC. The company approves one business
obligation; retries, restarts, queue redelivery, parallel workers, and multiple
agent instances must all converge on the same Business Intent and at most one
committed settlement.

The current product exposes an agent API, execution worker, reconciliation
service, operator console, and audit/recovery timeline. The next increment
adds one supplier order/result connector, stable task identity above Business
Intent, and separate delivery state. A replacement agent resumes the same job
and retrieves its existing result without another payment. Delivery guarantees
depend on supplier idempotency and retrieval support, not on payment alone.

The planned UI separates a public landing page from an authenticated cabinet
for tools, jobs/results, wallet permissions, recovery/activity and developer
access. Raw transaction details remain available as advanced evidence.
Broad treasury, pooled budgets, payroll and arbitrary supplier integrations
are deferred. Privy B2B is the primary product pitch; Arc payments and Graph
evidence-based triage support the same workflow, not separate products.

## System ownership

- OneShot is authoritative for business-intent execution state, attempt state,
settlement state, and permission to create another external settlement.
- Privy is the corporate wallet and scoped authorization boundary. OneShot must
use its policies and spending permissions on the normal execution path.
- Arc is the real USDC settlement rail used by the demo.
- Direct Privy lookup and Arc RPC receipt/log evidence resolve known transaction
identities after ambiguous outcomes.
- The Graph is the selected v1 candidate-discovery layer when the transaction
hash is missing. C01 must prove live hashless discovery and AI-track value;
Graph results remain non-authoritative and can never authorize another payment.

When an external submission may have happened but the result is uncertain,
OneShot records `UNKNOWN` and reconciles. Missing external-index data never converts `UNKNOWN` into permission to submit again.

## Glossary

### Business Intent

The durable identity of one approved business obligation. Its
`business_intent_id` remains stable across retries, process restarts, queue
redelivery, parallel workers, and multiple agents. Payload differences do not
create a second settlement right when the identifier is the same.

### Attempt

One execution try for a Business Intent. Attempts are expendable and may fail or
repeat. Any number of Attempts can belong to one Business Intent.

### Settlement

The committed external USDC payment for a Business Intent. A Business Intent may
have zero or one committed Settlement, never more than one.

### Reconciliation

The process that resolves an ambiguous external effect using durable local
state, provider identifiers and receipts, Graph-discovered candidates, and Arc proof.
Reconciliation precedes any decision to retry payment when settlement state is
`UNKNOWN`.

### Recovery View

A derived, non-authoritative view assembled from durable OneShot records, live
Graph candidate discovery, and Arc verification. It helps operators and agents explain
and recover work but does not grant permission to create a Settlement.

## Decision test

Any design affecting retries or payments must answer:

1. What stable Business Intent does this Attempt belong to?
2. Which durable atomic transition grants the right to submit an external
Settlement?
3. How is an ambiguous submission reconciled without a blind retry?
4. How do parallel workers converge on at most one committed Settlement?
5. Which evidence is authoritative, and which evidence is only a Recovery View?
Loading
Loading