🌐 AI搜索 & 代理 主页
Skip to content

Conversation

@AntonChesnokov
Copy link
Contributor

Marks Angular-authored signals with a ɵ debugName prefix and teaches DevTools to filter/sanitize those nodes, reducing noise in the signal graph.

Related to #65894

PR Checklist

Please check if your PR fulfills the following requirements:

PR Type

What kind of change does this PR introduce?

  • Bugfix
  • Feature
  • Code style update (formatting, local variables)
  • Refactoring (no functional changes, no api changes)
  • Build related changes
  • CI related changes
  • Documentation content changes
  • angular.dev application / infrastructure changes
  • Other... Please describe:

What is the current behavior?

Internal framework signals crowd the DevTools signal graph and are indistinguishable from user signals. Compiler-emitted debugNames for Angular sources were not consistently marked for filtering.

Issue Number: #65894

What is the new behavior?

Angular-authored signals get a ɵ debugName prefix from the compiler transform, and DevTools treats ɵ-prefixed nodes as internal. The signal graph hides prefixed/internal signals when the toggle is enabled,.
1

2

Does this PR introduce a breaking change?

  • Yes
  • No

Other information

Tests updated for the compiler transform and DevTools backend to cover the new prefixing/filtering behavior.

Marks Angular-authored signals with a ɵ debugName prefix and teaches DevTools to filter/sanitize those nodes, reducing noise in the signal graph.

Related to angular#65894
@pullapprove pullapprove bot requested a review from devversion December 10, 2025 17:25
@angular-robot angular-robot bot added detected: feature PR contains a feature commit area: devtools labels Dec 10, 2025
@ngbot ngbot bot added this to the Backlog milestone Dec 10, 2025
const isAngularSource =
fnName.startsWith('ɵ') ||
fnName.includes('ɵɵ') ||
/node_modules\/@angular\//.test(fnSource) ||
Copy link
Member

Choose a reason for hiding this comment

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

To me this rule isn't satisfiying. We probably don't want to exlude every signal from the graph but only the ones that are internal (ie not exposed as part of the public API).

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Updated.
New behaviour:

  • Prefix with "ɵ" anything inside Angular sources that’s clearly internal:
    -- class fields/getters/setters tagged @internal;
    -- private identifiers (#foo);
    -- names starting with _ or marked private;
    -- top-level signals that are not exported.

  • Keep original name:
    -- all user code;
    -- public class fields without internal markers;
    -- exported module-level constants.

See screenshots:
Screenshot 2025-12-11 at 16 45 54
Screenshot 2025-12-11 at 16 46 01

@JeanMeche JeanMeche requested review from dgp1130 and hawkgs and removed request for devversion December 11, 2025 10:35
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area: devtools detected: feature PR contains a feature commit

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants