Skip to content

feat: one-time bindings (spec 010) and $interpolate service (spec 011)#27

Merged
Mgrdich merged 16 commits intomasterfrom
expressions-v2
Apr 23, 2026
Merged

feat: one-time bindings (spec 010) and $interpolate service (spec 011)#27
Mgrdich merged 16 commits intomasterfrom
expressions-v2

Conversation

@Mgrdich
Copy link
Copy Markdown
Owner

@Mgrdich Mgrdich commented Apr 22, 2026

Summary

  • Spec 010: One-time bindings & constant watch optimization — parser attaches literal/constant/oneTime flags on AST nodes; scope wires constantWatchDelegate, oneTimeWatchDelegate, and oneTimeLiteralWatchDelegate for ::expr expressions.
  • Spec 011: $interpolate service — DI-registered provider with configurable delimiters, scanner/compiler for {{expr}} text, and watch integration.
  • AWOS workflow: tightened spec language rules, dropped product-definition-lite, applied P0/P1 audit remediations.

Test plan

  • pnpm lint — clean
  • pnpm format:check — clean
  • pnpm typecheck — clean
  • pnpm test — 1038/1038 passing across 22 files

🤖 Generated with Claude Code

Mgrdich and others added 16 commits April 20, 2026 14:53
…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>
@Mgrdich Mgrdich merged commit e5f8971 into master Apr 23, 2026
2 checks passed
@Mgrdich Mgrdich deleted the expressions-v2 branch April 23, 2026 18:24
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