Initial implementation of progressive reloading#215
Merged
Conversation
# Conflicts: # .claude/settings.local.json # README.md
|
Review the following changes in direct dependencies. Learn more about Socket for GitHub.
|
Contributor
There was a problem hiding this comment.
Pull request overview
This pull request implements progressive/incremental reloading for watch mode, significantly improving the developer experience by only rebuilding affected pages when files change instead of performing full rebuilds.
Changes:
- Added progressive rebuild system with dependency tracking for layouts using
@11ty/dependency-tree-typescript - Modified esbuild to use watch mode with stable (non-hashed) filenames during development
- Implemented filtering support in buildPages to rebuild only affected pages and templates
- Added comprehensive watch file change decision tree with separate handling for rendering vs data changes
Reviewed changes
Copilot reviewed 12 out of 14 changed files in this pull request and generated 7 comments.
Show a summary per file
| File | Description |
|---|---|
types/@11ty__dependency-tree-typescript.d.ts |
TypeScript type definitions for the new dependency tracking package |
tsconfig.json |
Include types directory in TypeScript compilation |
plans/progressive-rebuild.md |
Detailed architectural design document for the progressive rebuild feature |
plans/global-data.md |
Future work planning for global data pipeline improvements |
package.json |
Added @11ty/dependency-tree-typescript dependency; moved c8 and cheerio to devDependencies |
lib/build-pages/worker.js |
Pass buildPagesOpts through workerData for filtered rebuilds |
lib/build-pages/index.js |
Add page/template filtering and postVars tracking for incremental rebuilds |
lib/build-esbuild/index.js |
Implement esbuild watch mode with stable filenames and onEnd callback |
index.js |
Complete watch mode rewrite with dependency tracking, rebuild maps, and intelligent file change handling |
examples/basic/src/layouts/child.layout.ts |
Correct import paths from .js to .ts extensions |
examples/basic/src/js-page/loose-assets/page.ts |
Correct import paths from .js to .ts extensions |
examples/basic/src/js-page/client.js |
Added console.log statement (appears to be debug code) |
README.md |
Document watch mode flow, file change decision tree, and progressive rebuild feature |
.claude/settings.local.json |
Add web fetch and GitHub CLI permissions (contains JSON syntax error) |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
bcomnes
commented
Feb 21, 2026
bcomnes
commented
Feb 21, 2026
bcomnes
commented
Feb 21, 2026
bcomnes
commented
Feb 21, 2026
bcomnes
commented
Feb 21, 2026
bcomnes
commented
Feb 21, 2026
bcomnes
commented
Feb 21, 2026
bcomnes
commented
Feb 21, 2026
bcomnes
commented
Feb 21, 2026
bcomnes
commented
Feb 21, 2026
bcomnes
commented
Feb 21, 2026
bcomnes
added a commit
that referenced
this pull request
Feb 21, 2026
- Export globalVarsNames, globalDataNames, esbuildSettingsNames,
markdownItSettingsNames, templateSuffixes from identify-pages.js and
import them in index.js — eliminates duplicated (and nodeHasTS-unaware)
constant definitions in the watch handler
- Add MAX_CONCURRENCY to index.js (consistent with build-pages/index.js)
and use it in all three buildWatchMaps pMap calls instead of hardcoded 8
- findDepsOf now console.warn on failure instead of silently returning []
- Fix resolveVars JSDoc return type: always returns Promise<object>, not
Promise<object|function>; remove stale type cast in buildWatchMaps
- Merge BuildPagesOpts into DomStackOpts (pageFilterPaths,
templateFilterPaths); drop the separate 5th buildPagesOpts parameter
from buildPages/buildPagesDirect — worker.js now destructures opts
- WorkerBuildStepResult is now a standalone typedef instead of
Omit<PageBuildStepResult,'errors'> & {...}
- Fix build-esbuild non-watch return to use extendedBuildOpts not buildOpts
- Remove debug console.log('hello world!') from js-page/client.js example
- Fix missing comma in .claude/settings.local.json
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Owner
Author
|
Issues resolved in https://github.com/bcomnes/domstack/pull/216/changes |
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.
Implement progressive reloading during watch builds.