Repository navigation
ENG-685: chore(graphql): regenerate public schema and hooks from API main - #770
Merged
Merged
Conversation
…-685) Copy src/graphql/public/schema.graphql from lnflash/flash main at 374e5b90f300bdbe9c6d3296530672d3518d5691 (ENG-660, #527) with the refresh step that schema-drift-check prints, then run `yarn dev:codegen`. generated.ts is unedited codegen output. generated.gql does not change because no app document changed. The old snapshot was byte-identical to lnflash/flash@362c9725a0 (ENG-608, #515, 2026-09-25). The only schema change since then is ENG-653's payment splits (#526, aeef6b75f8), and all of it is additive: - Wallet.splits: [WalletSplit!]! on the interface and on BTCWallet, UsdWallet and UsdtWallet - Mutation.walletSplitsSet and Mutation.walletSplitDelete - new types WalletSplit and WalletSplitsSetPayload - new inputs WalletSplitInput, WalletSplitsSetInput and WalletSplitDeleteInput Codegen emits hooks only for operations the app declares. No app operation uses the new mutations yet, so generated.ts gains their types and argument types but no new hooks. Nothing the app sends changes. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01XkM7Bm1cnzugSFi6pGnoWj
islandbitcoin
pushed a commit
that referenced
this pull request
Oct 14, 2026
…G-685 schema ENG-685 (#770) regenerates public-schema.graphql from lnflash/flash main 374e5b90f; the regen only inserts lines, so every schema:N citation moved down by 3 to 69. Remapped programmatically via a line diff and verified against 15 known anchors (CashoutOffer, initiateCashout, FractionalCentAmount, WalletCurrency, BTCWallet, the six idempotencyKey inputs, ...). Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01XkM7Bm1cnzugSFi6pGnoWj
islandbitcoin
added a commit
that referenced
this pull request
Oct 14, 2026
…2) (#769) * docs: Flash AI Assistant tool registry + action-card spec (design v0.2) Design doc for the assistant's safety layer: a closed-intent tool registry over the two payment rails (GraphQL custodial USD/USDT, Breez Spark BTC), propose/dispose action cards with expiry, and the phased build plan. v0.2 corrects v0.1 against the checkout: BTC is a separate rail, conversion is a swap not a mutation, prepared actions expire, amounts are integers in minor units, contact resolution never auto-selects a low-confidence match, and citations are fixed. See section 11 of the doc. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01XkM7Bm1cnzugSFi6pGnoWj * docs(assistant): spec v0.2.1 — corrections from the Phase 1 plans Conversion fee probes were swapped (BTC→USD uses fetchBreezFee, USD→BTC uses lnUsdInvoiceFeeProbe); six idempotency inputs not five; sendPayment() and BtcRail move to app/payments/; BtcRail gains listPayments and a disabled state (Breez only initializes in advance mode); passcode-only devices fail closed; hand-written schema validator; decode-only decodePaymentRequest; single-use cashout offers; line fixes. See §11. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01XkM7Bm1cnzugSFi6pGnoWj * docs(assistant): spec v0.2.2 — owner decisions (auth policy hook, home entry, shipped intents) No mandatory biometric for text-initiated actions in v1; an authPolicy hook returns "none" for text and "biometric" for voice. Ask Flash opens from a home-screen entry point, not a tab. The grammar tier ships five intents and adding one must be additive (new §7.2). ENG-686 ship gate recorded. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01XkM7Bm1cnzugSFi6pGnoWj * docs(assistant): spec v0.2.3 — schema citations re-anchored to the ENG-685 schema ENG-685 (#770) regenerates public-schema.graphql from lnflash/flash main 374e5b90f; the regen only inserts lines, so every schema:N citation moved down by 3 to 69. Remapped programmatically via a line diff and verified against 15 known anchors (CashoutOffer, initiateCashout, FractionalCentAmount, WalletCurrency, BTCWallet, the six idempotencyKey inputs, ...). Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01XkM7Bm1cnzugSFi6pGnoWj * docs(assistant): mark Phase 0 done and cite the wallet-split operations (ENG-697) Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01XkM7Bm1cnzugSFi6pGnoWj --------- Co-authored-by: Dread <dread@example.com> Co-authored-by: Claude Fable 5.1 <noreply@anthropic.com>
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
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Problem
app/graphql/public-schema.graphqlwas last copied on 2026-09-25. It was byte-identical to lnflash/flash@362c9725a0 (ENG-608, #515). Since then the API'smaingained ENG-653 payment splits (lnflash/flash#526). Codegen cannot see fields the snapshot lacks, so ENG-684 Phase 1 would cite and generate against a stale schema. This is Phase 0 of ENG-684 (spec in #769,docs/ai-assistant-tool-registry.md§10 step 0). No behavior change.Closes #765, which
schema-drift-checkfiled on 2026-10-12 for exactly the 11 changes below. The workflow never closes its own issue: on a match it exits 0, and on the next drift it comments on whichever tracking issue is still open. Left open, #765 would bury that next drift under a body describing this one.Change
mainat374e5b90f300bdbe9c6d3296530672d3518d5691(ENG-660, ENG-660: reject and disable payment splits to inactive destination accounts flash#527, 2026-10-12). The last commit there to touchsrc/graphql/public/schema.graphqlisaeef6b75f8ce0024e60043a2fadb67d3ec853c15(ENG-653, [Enhancement] - Refactor map screen #526). ENG-660 did not change the public schema.schema-drift-check(.github/workflows/schema-drift.yml):curl -fsSL https://raw.githubusercontent.com/lnflash/flash/main/src/graphql/public/schema.graphql -o app/graphql/public-schema.graphql, thenyarn dev:codegen.The fetched file (sha256
558e8793…4767) is byte-identical to the same path fetched at the pinned commit through raw.githubusercontent and through the GitHub contents API, and flashmaindid not move during the fetch.app/graphql/generated.tsis exactly what codegen emitted, with no hand edits.app/graphql/generated.gqldid not change.What changed in the schema
All additive.
graphql-inspector diff(old snapshot vs new) reports 11 changes, no breaking changes.splits: [WalletSplit!]!on theWalletinterface and onUsdWallet,UsdtWalletandBTCWallet(always empty on BTC)walletSplitsSet(input: WalletSplitsSetInput!): WalletSplitsSetPayload!walletSplitDelete(input: WalletSplitDeleteInput!): SuccessPayload!WalletSplit { id, destinationWalletId, percent, enabled, createdAt }WalletSplitsSetPayload { errors, splits }WalletSplitInput { destination, percent },WalletSplitsSetInput { walletId, splits },WalletSplitDeleteInput { walletId, splitId }Removed: none. Renamed: none. No screen or operation is affected.
generated.tsgains the new types plusMutationWalletSplitsSetArgsandMutationWalletSplitDeleteArgs. It does not gainuseWalletSplitsSetMutationoruseWalletSplitDeleteMutation: codegen emits hooks only for operations the app declares, and no app document uses these mutations yet. The hooks appear when the first PR that needs them adds thegqldocument. Every added export isexport type, so nothing changes at runtime.How it was tested
In a fresh worktree after
yarn install --frozen-lockfile(Node 24.18.0, yarn 1.22.22):yarn check-code: pass. tsc, check:translations, check:codegen (regeneration reproduces the committedgenerated.tsbyte-for-byte), graphql-check ("All documents are valid").yarn tsc:check: pass (735 app files, 177 test files, includinggenerated.ts).yarn test: pass. 182 suites passed, 1 skipped (card-topup-cardsim, env-gated); 2365 tests passed, 6 skipped.yarn check:translation-drift: pass. No locale changes.BASE_SHA=<merge-base> node scripts/ci/lint-changed.mjs(the CI Lint gate): pass, no ESLint errors on changed lines.typos --config typos.toml: pass.graphql-inspector diff <old snapshot> <new snapshot>: 11 additions, no breaking changes.yarn eslint:check: fails with 1297 problems (1187 errors, 110 warnings) in 212 files. The report is identical with origin/main's copies of the two changed files, none of the problems are in them, and CI runs the changed-lines gate above instead.check:codegenand the strictschema-drift-check.No tests added: no behavior changes. The additions are erased TypeScript types.
check:codegen,graphql-checkandschema-drift-checkalready guard the snapshot, andidempotency-support.spec.ts, which reads it, still passes.Follow-ups
schema:Ncitations after this merges and before docs: Flash AI Assistant tool registry + action-card spec (design v0.2) #769 merges.docs/ai-assistant-tool-registry.mdcites 40 distinct lines of the 2026-09-25 snapshot, and this PR's six insertions move 35 of them onto other text:fygaroCheckoutCreateschema:1748would land oncreateInvite,UsdWalletschema:2515onLIVENESS_FRAME, andinterface Walletschema:2828-2836on a blank line. Shift by old line: 1-387 none, 388-1879 +3, 1880-2527 +15, 2528-2575 +20, 2576-2839 +25, 2840-2889 +28 (nothing is cited past 2889). No cited range straddles an insertion, so each range moves whole. The table below lists all 35, each checked line by line against both snapshots. Citing by symbol instead would survive the next weekly refresh. The same pass updates the spec preamble (regenerated 2026-09-25, commit ce85783bd) to 2026-10-13 and this PR's commit on main (branch headea22f81e0; the merge gives it a new sha), marks §10 step 0 done, and can citewalletSplitsSet(schema:1894) andwalletSplitDelete(schema:1887) in the declined-for-v1 list.CashoutOfferschema:786would land onROLLED_BACKand ENG-687'srealtimePriceschema:2177onglobals: Globals. Merging this PR moves ENG-685 to Done, which clears ENG-687's blocked-by, so ENG-697 is blocked by ENG-685 and blocks ENG-687 and ENG-688. Its remap covers the table below plus three ranges only the plans cite.walletSplitsSet/walletSplitDeletedocuments; their hooks generate then.#769 citation remap: 2026-09-25 snapshot line to this snapshot
type CashoutOfferschema:786schema:789CashoutRate.feeBasisPointsdocstringschema:823schema:826scalar FractionalCentAmountschema:977schema:980input InitiateCashoutInputschema:1282-1291schema:1285-1294IntraLedgerPaymentSendInput.idempotencyKeyschema:1315schema:1318IntraLedgerUsdPaymentSendInput.idempotencyKeyschema:1340schema:1343input LnInvoiceCreateInputschema:1407schema:1410input LnInvoiceFeeProbeInputschema:1436-1441schema:1439-1444LnInvoicePaymentInput.idempotencyKeyschema:1450schema:1453input LnNoAmountInvoiceCreateInputschema:1479schema:1482LnNoAmountInvoicePaymentInput.idempotencyKeyschema:1523schema:1526LnNoAmountUsdInvoicePaymentInput.idempotencyKeyschema:1550schema:1553input LnUsdInvoiceCreateInputschema:1577schema:1580input LnUsdInvoiceFeeProbeInputschema:1608-1611schema:1611-1614LnurlPaymentSendInput.idempotencyKeyschema:1625schema:1628type MapMarkerschema:1642-1645schema:1645-1648Mutation.createInviteschema:1745schema:1748Mutation.fygaroCheckoutCreateschema:1748schema:1751Mutation.initiateCashoutschema:1755schema:1758Mutation.lnUsdInvoiceCreateexpiry docstringsschema:1826-1837schema:1829-1840Mutation.requestCashoutschema:1861schema:1864Query.accountDefaultWalletschema:2135schema:2150Query.businessMapMarkersschema:2148schema:2163Query.realtimePriceschema:2177schema:2192Query.transactionDetailsschema:2179schema:2194type RealtimePriceschema:2206-2221schema:2221-2236input TransactionDetailsInputschema:2424-2427schema:2439-2442enum TxDirectionschema:2443-2446schema:2458-2461type UsdWalletschema:2515-2523schema:2530-2538type UsdtWalletschema:2563-2571schema:2583-2591User.contactsschema:2622schema:2647type UserContactschema:2652-2678schema:2677-2703interface Walletschema:2828-2836schema:2853-2861Wallet.balanceschema:2834schema:2859enum WalletCurrencyschema:2881-2885schema:2909-2913🤖 Generated with Claude Code
https://claude.ai/code/session_01XkM7Bm1cnzugSFi6pGnoWj