Skip to content

Conversation

@pull
Copy link

@pull pull bot commented Dec 3, 2025

See Commits and Changes for more details.


Created by pull[bot] (v2.0.0-alpha.4)

Can you help keep this open source service alive? 💖 Please sponsor : )

tonyespinoza1 and others added 6 commits December 3, 2025 08:32
* test: Add cross-space wish resolution test coverage

Add comprehensive test coverage for wish tag resolution across space
boundaries to verify correct behavior when patterns access data from
different spaces.

Tests verify:
- Home space tags (#favorites, #hashtag) correctly access user's home
  space even when pattern runs in a different space
- Pattern space tags (/, #default, etc.) correctly access the pattern's
  space, not home space
- Mixed access patterns work correctly in a single pattern
- Proper space isolation between home and pattern spaces

Related to CT-1090

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <[email protected]>

* fix: Format test file with deno fmt

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <[email protected]>

* test: Add cross-space charm auto-start test

Adds test to verify that when a wish in one space references a charm
in another space (via favorites/hashtags), the charm is properly
accessed and its data is available.

This addresses the CT-1090 comment about cross-space charms needing
to be accessible when accessed via wish.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <[email protected]>

---------

Co-authored-by: Tony Espinoza <[email protected]>
Co-authored-by: Claude <[email protected]>
This reverts commit 463978d.
…2191)

* refactor(ts-transformers): Simplify dataflow analyzer internal types

Two key simplifications to the data flow analysis code:

1. Replace localNodes with expressionToNodeId Map
   - Eliminates InternalAnalysis.localNodes field entirely
   - Parent-child relationships now tracked via O(1) Map lookup
   - Reduces merge complexity (no more localNodes concatenation)
   - ~30 lines removed across return sites

2. Eliminate DataFlowScopeInternal type
   - Merge into DataFlowScope by computing enriched parameters eagerly
   - Remove pre-computed `aggregated` Set in favor of on-demand computation
   - getAggregatedSymbols() walks parent chain when needed
   - Remove toDataFlowScope() conversion function

* refactor(ts-transformers): Unify synthetic/non-synthetic analysis paths

Remove the separate ~300 line synthetic node handling block by integrating
fallback logic into the unified expression handlers. This refactoring:

- Adds tryGetSymbol/tryGetType helpers that gracefully handle synthetic nodes
- Updates each expression handler to try checker methods first, then fall back
  to heuristics when dealing with synthetic nodes
- Removes duplicate logic that was maintained in two places
- Adds proper handlers for JsxSelfClosingElement and JsxFragment

Net result: 214 lines removed (432 deletions, 218 insertions)

* refactor(ts-transformers): Complete JSX handling in dataflow analyzer

The dataflow analyzer now provides complete, self-contained analysis
for JSX elements including both attributes and children.

Previously, attribute analysis used `ts.isExpression(attr)` which
always returned false for JsxAttribute nodes (dead code). The system
worked because the OpaqueRefJSXTransformer handled JSX at the visitor
level, but this created unclear contracts and hidden coupling.

Now the analyzer properly handles:
- JsxAttribute with expression initializers: `value={expr}`
- JsxSpreadAttribute: `{...expr}`
- JsxElement children (JsxExpression, nested elements)
- JsxSelfClosingElement
- JsxFragment

This makes the analyzer's contract clear: callers get correct results
regardless of how they traverse the AST.
@pull pull bot locked and limited conversation to collaborators Dec 3, 2025
@pull pull bot added the ⤵️ pull label Dec 3, 2025
@pull pull bot merged commit 819fa28 into ExaDev:main Dec 3, 2025
1 check was pending
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants