Skip to content

Comments

Initial implementation of progressive reloading#215

Merged
bcomnes merged 2 commits intonextfrom
progressive-rebuilds
Feb 21, 2026
Merged

Initial implementation of progressive reloading#215
bcomnes merged 2 commits intonextfrom
progressive-rebuilds

Conversation

@bcomnes
Copy link
Owner

@bcomnes bcomnes commented Feb 21, 2026

Implement progressive reloading during watch builds.

# Conflicts:
#	.claude/settings.local.json
#	README.md
Copilot AI review requested due to automatic review settings February 21, 2026 01:21
@socket-security
Copy link

socket-security bot commented Feb 21, 2026

Review the following changes in direct dependencies. Learn more about Socket for GitHub.

Diff Package Supply Chain
Security
Vulnerability Quality Maintenance License
Added@​11ty/​dependency-tree-typescript@​1.0.0641006487100
Addedpretty-tree@​1.0.0741008275100
Addedpretty@​2.0.010010010075100
Addedpackage-json@​10.0.110010010080100
Addedwrite-package@​7.2.09910010080100
Addedp-map@​7.0.410010010081100
Addedpackage-directory@​8.2.01001008985100
Addedread-pkg@​10.1.01001009385100
Addedtypescript@​5.9.31001009010090

View full report

Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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 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>
@bcomnes
Copy link
Owner Author

bcomnes commented Feb 21, 2026

Issues resolved in https://github.com/bcomnes/domstack/pull/216/changes

@bcomnes bcomnes merged commit 8b21bef into next Feb 21, 2026
10 checks passed
@bcomnes bcomnes deleted the progressive-rebuilds branch February 21, 2026 04:00
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