-
Notifications
You must be signed in to change notification settings - Fork 563
refactor: app mode — customizable layout #11317
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
Open
eliheuer
wants to merge
107
commits into
Comfy-Org:main
Choose a base branch
from
eliheuer:app-mode-semi-customizable-layout
base: main
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
Changes from 1 commit
Commits
Show all changes
107 commits
Select commit
Hold shift + click to select a range
d4ea383
feat(app-mode): layout grid primitive + system cells (Phase 1)
eliheuer 96330d5
feat(bento): Phase 2a — per-input cells with uniform width
eliheuer 0d31e3b
feat(bento): Phase 2b — per-output cells + design tokens
eliheuer 43302f8
feat(app-mode): semi-customizable floating panels MVP (Phase 4)
eliheuer 7da9659
style(app-mode): Phase 4 polish — typography, spacing, panel chrome
eliheuer 451752b
refactor(app-mode): rename bento/ -> layout/
eliheuer 1d16073
feat(app-mode): welcome screen — wordmark, copy, Run pill
eliheuer dde524f
feat(app-mode): unified chrome — shared sidebar + panel-matched cells
eliheuer 8f8aa62
style(app-mode): flush left-dock + surface Run errors as toast
eliheuer a4addaa
i18n(app-mode): route output-thumb alt + block-drag aria-label throug…
eliheuer e28af8c
feat(app-builder): WYSIWYG floating panel shared with App Mode
eliheuer d9ae0dd
feat(app-mode): hoist Run cluster out of panel + mirror welcome copy
eliheuer c9b8e53
Merge branch 'main' into app-mode-semi-customizable-layout
DrJKL 299292a
refactor(app-mode): address PR review feedback
eliheuer d436f54
fix(app-mode): second-round CodeRabbit feedback
eliheuer 385b611
fix(app-mode): third-round CodeRabbit feedback
eliheuer 9657403
Merge branch 'main' into app-mode-semi-customizable-layout
eliheuer 3361a66
refactor(app-mode): unify App Mode and Builder chrome + panel
eliheuer 3b70a54
refactor(app-mode): one grid system — fixed-gutter flex zones
eliheuer 551a702
polish(app-builder): grid-aligned chrome bars + unified blue / orange…
eliheuer 76dc717
polish(app-builder): highlight selectable widgets in builder:inputs
eliheuer 550d855
polish(app-builder): output-selection parity + footer cleanup
eliheuer 9adcea8
polish(app-mode): go/stop semantic cluster + run progress bar
eliheuer 916ad31
refactor(app-mode): route go/stop colors through local CSS vars
eliheuer d621c7d
chore(app-mode): pre-squash CR-pattern cleanup
eliheuer 69e1bff
Merge remote-tracking branch 'upstream/main' into app-mode-semi-custo…
eliheuer 82f1980
chore(app-mode): pre-squash cleanup from .agents/checks audit
eliheuer fd022de
refactor(app-mode): unify App Builder and App Mode into one WYSIWYG s…
eliheuer e8c7076
chore: drop unused type exports flagged by knip
eliheuer 38b197c
polish(app-mode): pre-draft-flip panel UX pass
eliheuer adc1db4
chore(app-mode): pre-review code-quality cleanup pass
eliheuer fbddb28
Merge remote-tracking branch 'upstream/main' into app-mode-semi-custo…
eliheuer d1f29f0
polish(app-mode): workspace pan/zoom + nav cluster + welcome touch-up
eliheuer 32ab581
polish(app-mode): panel-block reorder — architecture + visuals
eliheuer 583ba29
polish(app-mode): phase-3 drag demo + accent sweep
eliheuer 0628acf
feat(app-mode): output preview as a movable window
eliheuer 7c0d078
feat(app-mode): migrate run chrome into OutputWindow
eliheuer ccf166d
chore(app-mode): drop dead Interrupt/Progress cells
eliheuer 4083442
feat(app-mode): multi-window output workspace (scaffolding)
eliheuer f067835
refactor(app-mode): drop the thumbnail history strip
eliheuer fc8e2f3
feat(app-mode): multi-window polish — asset resolution + close + clea…
eliheuer 09d6ff6
polish(app-mode): UI pass — panel/window chrome, widget outlines, aut…
eliheuer 8f3b9be
polish(app-mode): output overlay + widget chrome refinements
eliheuer d2e637b
polish(app-mode): floating-panel layout fixes + pre-review cleanup
eliheuer 98f57a9
polish(app-mode): pan reliability + drag perf + dot-grid polish
eliheuer 8c3fb37
polish(app-mode): address outstanding review nits
eliheuer a4128c8
docs(app-mode): defer agent design-system discoverability work
eliheuer ea0601a
chore(app-mode): comment trim pass for review (-343 lines)
eliheuer 201fc1e
polish(app-mode): progress bar tracks sampler + window snap during drag
eliheuer bd4f9ef
chore(app-mode): trim small net-new files (-82 lines)
eliheuer 17ecf38
refactor(app-mode): extract shared PanelHeader component
eliheuer 895c0c1
refactor(app-mode): extract usePointerDrag base hook
eliheuer 56bbd35
chore(app-mode): trim PR-added comments in modified files (-15 lines)
eliheuer d8355f4
chore(app-mode): drop remaining `!` Tailwind in chrome cells
eliheuer 543f4b3
chore(app-mode): address CR review nits (batch 1/3)
eliheuer 75b77b0
chore(app-mode): address CR review minors (batch 2/3)
eliheuer d676184
fix(app-mode): address CR review majors (batch 3/3)
eliheuer ed93de5
docs(app-mode): drop stale check count in discoverability note
eliheuer 36c23a6
test(app-mode): fix LinearWelcome tests broken by run-pill addition
eliheuer ff60b57
polish(builder): step badges + Preview-step layout
eliheuer 1289e61
refactor(app-mode): drop temp accent/active tokens for design-system
eliheuer d4dc570
refactor(builder): unify selection chrome, drop zoom-dependent sizing
eliheuer f6a29be
refactor(design-system): fold layout tokens into style.css
eliheuer c497c8c
refactor(design-system): consolidate App Mode tokens, drop README
eliheuer 90f140b
chore(app-mode): trim noisy comments across new files
eliheuer 563742f
feat(app-mode): resize OutputWindow, smooth fly-to, grid-edge spawn
eliheuer 1d16598
feat(app-mode): align panel widgets + metadata-driven subtitle
eliheuer 61ff478
refactor(app-mode): extract FLIP composable, persist panel layout
eliheuer d434a0d
chore(app-mode): comment sweep + LinearArrange refactor
eliheuer 91bd183
refactor(app-mode): center welcome card; drop side-flip machinery
eliheuer b007a55
fix(app-mode): drop double focus-ring on widget pills
eliheuer 676a443
Merge branch 'main' into app-mode-semi-customizable-layout
DrJKL 13b3e09
feat(app-mode): no-zoom dashboard mode with adaptive bento layout
eliheuer 6f91765
feat(app-mode): add slicing-tree bento candidate
eliheuer 2a21d12
fix(app-mode): snap dashboard tiles to chrome cell grid
eliheuer c274133
feat(app-mode): fill canvas via slicing-tree + stretch + cover-fit
eliheuer 0d18fe0
feat(app-mode): asymmetric bento stretch — newest tile uncropped
eliheuer 8f00acb
feat(app-mode): cap dashboard at 9 tiles, full slicing-tree always
eliheuer 5edcdf8
fix(app-mode): drop the 8px body padding around output images
eliheuer 274d32c
fix(app-mode): N=1 stays uncropped, anchored opposite the panel
eliheuer 152653a
refactor(app-mode): rebuild dashboard layout for visual fidelity
eliheuer 1f0cfea
feat(app-mode): bento templates fill avail rect, hide header on small…
eliheuer de52814
refactor(app-mode): clean up output header chrome + fix panel-drag fr…
eliheuer 4754980
style(app-mode): match input-cell label/subtitle type, breathe out te…
eliheuer 681a959
feat(app-mode): theme toggle, zoom-mode parity, gradient skeletons
eliheuer 989754e
Merge remote-tracking branch 'upstream/main' into app-mode-semi-custo…
eliheuer 4fb60b8
refactor(app-mode): use palette tokens instead of local --app-mode-* …
eliheuer 2746856
refactor(app-mode): tighten design-system conformance
eliheuer 9c171c1
refactor(app-mode): conformance pass per AGENTS.md
eliheuer 055e46e
refactor(app-mode): minor cleanups from deep audit
eliheuer 2640d09
lint(autofix): tailwind class order in files using foreground tokens
eliheuer c6cf567
test(app-mode): include layout.panelRows in linearData expectations
eliheuer fd75632
test(app-mode): unit coverage for new store math
eliheuer 1acdb42
refactor(app-mode): scope foreground tokens to App Mode via arbitrary…
eliheuer a4d4145
Revert "lint(autofix): tailwind class order in files using foreground…
eliheuer 1a7300b
lint(autofix): canonical class names in pre-existing files
eliheuer 7e5a95a
fix(app-mode): evict by createdSeq, not mutable zIndex
eliheuer 6b9dfe8
fix(test): pass ComfyPage to reSaveAs instead of dereferencing Locator
eliheuer f357c57
fix(app-mode): spread graphNodes shallowRef on every assignment
eliheuer c668618
fix(app-mode): disable manual drag/resize on output windows in noZoom…
eliheuer 4c140cb
fix(app-mode): don't silently rerun current graph when output has no …
eliheuer 1a1025b
fix(app-mode): scope wheel-zoom to the workspace, leave panel scroll …
eliheuer c48d731
fix(app-mode): keep full-viewport backdrop hit-testable for pan/zoom
eliheuer 5a31405
fix(app-mode): address 5 minor CodeRabbit findings
eliheuer 2f7e90a
fix(app-mode): address 5 load-bearing CodeRabbit findings (round 2)
eliheuer 7a5e375
docs(adr): add 0009 App Mode + Builder unification; format pass
eliheuer c997195
fix(app-mode): address round-3 CodeRabbit findings (5 follow-ons + 4 …
eliheuer 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
fix(app-mode): address CR review majors (batch 3/3)
Accessibility: - style.css: keyboard focus indicator was killed by `outline: none` on `:focus`. Restore a visible 2px outline on `:focus-visible` for inputs / textareas / pill widgets so keyboard users see the active control (WCAG 2.4.7). Correctness: - BuilderBackdrop pan: add `e.preventDefault()` on pointerdown, wrap `setPointerCapture` in try/catch, release the capture on endDrag, and abandon on window blur — matches LayoutView's pan hardening so a pan can't get stuck waiting for a pointerup. - AppBuilder.nodeToDisplayTuple: string-normalize both sides of the selectedOutputs match, mirroring the other handlers in this file. After save/load the same logical NodeId can flip primitive type; strict equality made already-selected outputs render as unselected and re-exposed the add button. Architecture (Command-pattern): - appModeStore: add toggleSelectedInput / toggleSelectedOutput / removeSelectedOutput helpers as the single entry points for selection mutations. - AppBuilder: route handleClick + the add/remove overlay buttons through those store helpers instead of pushing/splicing the arrays directly. Drops the now-unused `remove` import. Documented follow-up: - AppOutput RAF loop: comment notes that mounting is already gated by `isSelectOutputsMode`; centralizing into a shared per-canvas RAF dispatcher across all AppInput/AppOutput instances is the right architectural fix but is out of scope for this PR.
- Loading branch information
commit d67618458f29ec45ae02464d14af65929e6ba7a9
Some comments aren't visible on the classic Files Changed page.
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
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.