Skip to content

codelessly_sdk 7.2.0: run data-driven apps (auth, if/else, loops, uploads, cloud lists) - #64

Merged
rayliverified merged 6 commits into
masterfrom
claude/photo-gallery-mcp-n1m58j
Oct 18, 2026
Merged

rayliverified merged 6 commits into
masterfrom
claude/photo-gallery-mcp-n1m58j

Conversation

@rayliverified

Copy link
Copy Markdown
Contributor

Before: a published multi-user app ran into many problems:

  • No sign-in, if/else, loops or uploads.
  • Inline ${...} text didn't update.
  • Nodes hidden by conditions still took space.
  • Cloud lists with dates hung on their spinner.
  • Data-bound lists in dialogs went blank, and nav bar items did nothing.
  • Fields prefilled on load stayed empty, and outlined buttons had no outline.

After: the SDK runs the new auth, conditional, forEach and cloudFiles actions, and adds the ${auth.*} and ${result.*} variables plus field operations ($increment, $arrayUnion, …). It also:

  • Follows variable paths and accessors at every level.
  • Collapses runtime-hidden nodes.
  • Runs load actions after the first frame, in a chain that notifies.
  • Fixes each of the rendering issues above.

A shared photo gallery built entirely through the Editor MCP now works end to end in the browser. Every fix is listed in the project's blockers.md.

How: new action handlers in FunctionsRepository, auth and result variables in the context, path-aware variable resolution, and targeted fixes in the canvas, row/column, list/grid, rectangle, text field, nav bar and button transformers. Tests cover variable paths, auth and actions. This needs the matching CodelesslyAPI PR, which adds the new action models.


Generated by Claude Code

…esult variables, field operations

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VJ3E2NmBuiBkBnmDDmQBcz
Inline text listens to variable paths, string accessors (initial, timeAgo,
date) work on predefined variables, downcase is fixed, JSON writes keep typed
values, list conditions compare raw lists, on-load actions run after the
first frame and setResult merges results.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VJ3E2NmBuiBkBnmDDmQBcz
… data

A node hidden by a condition gives up its space (and its taps), a
scrollable column that centers its children still does while they fit,
and cloud loads and writes that run before the project's data access is
verified wait for it instead of hanging in the loading state.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VJ3E2NmBuiBkBnmDDmQBcz
…elds

- A snapshot listener that throws no longer stalls the action chain waiting
  on the first snapshot; dates in documents read through timeAgo and date.
- A flexing child hidden at runtime gives up its space with flex 0 and a
  zero size, so a visible sibling fills it and a hidden scrollable never
  sees unbounded constraints (a hidden grid computed NaN offsets).
- A sized frame with an ink well fills its size with the ink and children
  instead of shrinking to its unpositioned children, which hid the photo in
  a grid tile when its likes badge was hidden.
- Image fills whose URL path resolves to nothing load no image.
- A text field bound to a text variable clears when the variable is set to
  empty.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VJ3E2NmBuiBkBnmDDmQBcz
…ttons

- List and grid views shrink-wrap when their item count comes from data,
  so a bound list inside a dialog no longer gets unbounded height.
- Navigation bar items run their click reactions when selected.
- Canvas on-load actions notify listeners, so a field bound to a variable
  set on load shows the value; a text field also starts from its bound
  variable.
- Outlined buttons draw a 1px outline when no border width is set.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VJ3E2NmBuiBkBnmDDmQBcz
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VJ3E2NmBuiBkBnmDDmQBcz
@rayliverified rayliverified changed the title Run data-driven apps: auth, if/else, loops, uploads, cloud lists and layout fixes codelessly_sdk 7.2.0: run data-driven apps (auth, if/else, loops, uploads, cloud lists) Oct 18, 2026

Copy link
Copy Markdown
Contributor Author

The check job will stay red until codelessly_api 5.2.0 is on pub.dev (Codelessly/CodelesslyAPI#36). This PR uses the new AuthAction, ConditionalAction, ForEachAction and CloudFilesAction models, and CI resolves the API from pub. Locally, against the API branch, flutter analyze is clean and all 54 tests pass. Once 5.2.0 is published I'll re-run CI here.


Generated by Claude Code

@rayliverified
rayliverified merged commit 86d3cc8 into master Oct 18, 2026
1 of 3 checks passed
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.

2 participants