feat: one-time bindings (spec 010) and $interpolate service (spec 011)#27
Merged
feat: one-time bindings (spec 010) and $interpolate service (spec 011)#27
Conversation
Co-Authored-By: Claude <noreply@anthropic.com>
…slice 4) Co-Authored-By: Claude <noreply@anthropic.com>
Co-Authored-By: Claude <noreply@anthropic.com>
…010) Co-Authored-By: Claude <noreply@anthropic.com>
Runs the full 8-dimension audit (context/audits/2026-04-21/ — overall
76% / B) and fixes the P0 and most P1 findings.
- Add root CLAUDE.md and submodule READMEs (src/{core,parser,di,compiler})
so AI context stops being rediscovered from README each session.
Clears AI-01 FAIL and DOC-02 FAIL.
- Add .claude/hooks/block-sensitive.sh + wire it as a PreToolUse hook in
.claude/settings.json to deny agent reads of sensitive files
(environment, credential, and key patterns). Clears SEC-02 FAIL.
- Split scope.test.ts (2453 LOC) into 5 files and di.test.ts (2817 LOC)
into 7 files, grouped by concern. Test file count 6 to 16 (clears
SBP-04 WARN); largest file now 828 LOC (clears ARCH-06 hard-fail).
No behaviour changes — 883/883 tests still pass.
- Refresh README: move DI out of "Upcoming", correct Project Structure,
fix test count claim. Clears DOC-01 and DOC-04.
- Add OS-file patterns to .gitignore (clears SEC-05 WARN).
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude <noreply@anthropic.com>
Co-Authored-By: Claude <noreply@anthropic.com>
Co-Authored-By: Claude <noreply@anthropic.com>
Co-Authored-By: Claude <noreply@anthropic.com>
…lite Co-Authored-By: Claude <noreply@anthropic.com>
Co-Authored-By: Claude <noreply@anthropic.com>
Co-Authored-By: Claude <noreply@anthropic.com>
Add a ModuleRegistry augmentation interface and RequiredConfigRegistry / RequiredRunRegistry helpers. Typed config and run overloads now validate deps against Local & Required<Requires>, and createInjector's registry extraction unions in the run registries of transitively-required modules. Augment the ng module with $interpolate and $interpolateProvider so cross-module config deps (e.g. 'app' requires 'ng') infer without annotations. Co-Authored-By: Claude <noreply@anthropic.com>
Co-Authored-By: Claude <noreply@anthropic.com>
Co-Authored-By: Claude <noreply@anthropic.com>
Co-Authored-By: Claude <noreply@anthropic.com>
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.
Summary
literal/constant/oneTimeflags on AST nodes; scope wiresconstantWatchDelegate,oneTimeWatchDelegate, andoneTimeLiteralWatchDelegatefor::exprexpressions.$interpolateservice — DI-registered provider with configurable delimiters, scanner/compiler for{{expr}}text, and watch integration.Test plan
pnpm lint— cleanpnpm format:check— cleanpnpm typecheck— cleanpnpm test— 1038/1038 passing across 22 files🤖 Generated with Claude Code