Skip to content

test(rsc): decrypt cache captures once in use cache example - #1403

Merged
hi-ogawa merged 26 commits into
mainfrom
refactor/use-cache-single-decode
Aug 6, 2026
Merged

test(rsc): decrypt cache captures once in use cache example#1403
hi-ogawa merged 26 commits into
mainfrom
refactor/use-cache-single-decode

Conversation

@hi-ogawa

@hi-ogawa hi-ogawa commented Aug 5, 2026

Copy link
Copy Markdown
Contributor

The protected-captures demo currently decrypts the same envelope once to derive logical cache identity and again inside the hoister-generated implementation.

This PR makes the cache runtime adapt encrypted transport arguments into decoded execution arguments. Captures are decrypted once and kept as the leading array used for both cache identity and private implementation invocation. The existing transform hooks are sufficient, so this does not require a new core transform primitive.

hi-ogawa and others added 22 commits August 5, 2026 09:26
Co-authored-by: OpenCode <noreply@opencode.ai>
Co-authored-by: OpenCode <noreply@opencode.ai>
Co-authored-by: OpenCode <noreply@opencode.ai>
Co-authored-by: OpenCode <noreply@opencode.ai>
Co-authored-by: OpenCode <noreply@opencode.ai>
Co-authored-by: OpenCode <noreply@opencode.ai>
Co-authored-by: OpenCode <noreply@opencode.ai>
Co-authored-by: OpenCode <noreply@opencode.ai>
Exclude React form transport fields from cache identity while preserving the original FormData for execution.

Co-authored-by: OpenCode <noreply@opencode.ai>
Co-authored-by: OpenCode <noreply@opencode.ai>
Keep FormData cache identity unchanged and point to custom form adaptation as the framework-level improvement path.

Co-authored-by: OpenCode <noreply@opencode.ai>
Store the asynchronous encryption result in the envelope so the cache wrapper can inspect its sentinel without awaiting the argument.

Co-authored-by: OpenCode <noreply@opencode.ai>
Co-authored-by: OpenCode <noreply@opencode.ai>
Co-authored-by: OpenCode <noreply@opencode.ai>
Co-authored-by: OpenCode <noreply@opencode.ai>
Co-authored-by: OpenCode <noreply@opencode.ai>
Adapt encrypted transport arguments to decoded implementation arguments in the cache runtime, allowing the generated implementation to destructure captures directly.

Co-authored-by: OpenCode <noreply@opencode.ai>
Base automatically changed from fix/issue-1393 to main August 5, 2026 09:19
Co-authored-by: OpenCode <noreply@opencode.ai>

# Conflicts:
#	packages/plugin-rsc/examples/use-cache-callable/callable-cache-plugin.ts
#	packages/plugin-rsc/examples/use-cache-callable/src/framework/use-cache-runtime.tsx
@hi-ogawa hi-ogawa changed the title refactor(rsc): decrypt cache captures once test(rsc): decrypt cache captures once Aug 6, 2026
hi-ogawa and others added 2 commits August 6, 2026 11:26
Co-authored-by: OpenCode <noreply@opencode.ai>

# Conflicts:
#	packages/plugin-rsc/examples/use-cache-callable/src/framework/use-cache-runtime.tsx
Use the decoded execution argument serialization directly for cache identity instead of flattening and encoding captures separately.

Co-authored-by: OpenCode <noreply@opencode.ai>
@hi-ogawa
hi-ogawa marked this pull request as ready for review August 6, 2026 02:42
Co-authored-by: OpenCode <noreply@opencode.ai>
@hi-ogawa hi-ogawa changed the title test(rsc): decrypt cache captures once test(rsc): decrypt cache captures once in use cache example Aug 6, 2026
@hi-ogawa
hi-ogawa merged commit 42ce5d4 into main Aug 6, 2026
23 checks passed
@hi-ogawa
hi-ogawa deleted the refactor/use-cache-single-decode branch August 6, 2026 02:55
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant