Skip to content

V1.0.0#70

Open
sembrestels wants to merge 133 commits into
masterfrom
next
Open

V1.0.0#70
sembrestels wants to merge 133 commits into
masterfrom
next

Conversation

@sembrestels

Copy link
Copy Markdown
Member

No description provided.

…processing;

enhance transaction handling with receipt log aggregation and error handling for
missing receipts.
The shared `stringLiteral` tokenizer state exited on the first quote of
either flavor, so JSON-like content inside a single-quoted string (e.g.
'{"key": "value"}') stopped being highlighted as a string after the inner
double quote. Split into separate `stringSingle` and `stringDouble` states
so each only terminates on its own delimiter, matching the core parser's
behavior.

Also pass --no-errors-on-unmatched to biome in lint-staged so files
excluded from biome's includes (like editor/evml.ts) don't break the
pre-commit hook.
Bumps @biomejs/biome to ^2.4.4 and runs `biome format --write .`. Most
of the diff is biome 2.4 wrapping object literals and switch-case bodies
that exceeded `lineWidth: 80`; biome 2.3.x was lenient about these.

No behavioral changes.
Runs `biome check --write --unsafe` to apply lint fixes (mostly
useTemplate, useImportType, noUnusedImports, noImportantStyles) and
re-organize imports.

Two spots needed targeted biome-ignores:

- modules/std/src/commands/deploy.ts: `useLiteralKeys` rewrote
  `opts["constructor"]` to `opts.constructor`, which then resolves to
  Object.prototype.constructor (Function) and breaks the cast to string.
- modules/aragonos/test/integration/commands/connect.test.ts:
  `useTemplate` rewrote `\`function \` + initializeSignature` to a
  template literal, which breaks viem's `parseAbiItem` type inference
  (it expects a string literal pattern, not an interpolated string).

Made-with: Cursor
- packages/sdk/src/types/bindings.ts: replace `Function` on
  `DefValue.run` with a discriminated union (`DefCommandValue` |
  `DefHelperValue`) so each `run` is typed as `CommandFunction` /
  `HelperFunction`. Adds a default generic to `CommandFunction` so it
  can be referenced without an explicit module type.
- packages/sdk/test/unit/type-validation.test.ts: prefix unused `sig`
  destructured argument with `_`.
- scripts/generate-docs.ts: drop unused `readlinkSync` import.
- biome.json: ignore `.turbo` cache files in the formatter.
Ensure package-local bunfig files still load the repo test preload now that Bun resolves the closest config.

Made-with: Cursor
Share interpretation between execution, prewarm, and hover so helper and variable values can render richer address cards without new hover-time RPC calls.

Made-with: Cursor
Code-splits Monaco out of the mobile critical path and introduces a
Shiki-based read view with twoslash-style hover popovers for addresses,
helpers, and variables. Adds a view/edit toggle whose preference rides
along on shared links. Also fixes a TheDAO-class false positive in
proxy detection by requiring implementation candidates to have
deployed bytecode.

Made-with: Cursor
Replaces Sourcify with Etherscan's unified V2 endpoint, gated by
VITE_ETHERSCAN_API_KEY. The address-hover renderer drops the noisy
"(unverified)" placeholder entirely and surfaces the implementation
contract's name on proxies (with a "via proxy" tag) instead of the
proxy shell's generic name. Also makes a tap on the script viewer
flip into the editor — equivalent to the toolbar's Edit button —
with carve-outs for hover-target taps and active text selections.

Made-with: Cursor
Prewarms helpers used as direct args to non-binding commands (e.g.
`print @token(DAI)`), which previously skipped the cache because the
walker only visited `load`/`set`/`switch`. Hover now finds the cached
address card for those calls too.

Reformats the variable hover as a single-line `**Variable** $name =
value` card, dropping the verbose "(variable)" tag and "defined on
line N" hint. The address card, when present, lives in its own
section so the renderer draws a divider between the two.

Restyles the Monaco hover widget to match the viewer popover:
shared palette via the editor theme, Ubuntu Mono typography, dark
scrollbars, and a bright-green section divider between cards. The
viewer's own divider is bumped up to match.

Flushes the editor's pending debounced sync on unmount so toggling
edit -> view within 150ms of typing no longer drops the latest text
on the floor (the Monaco model survives at module scope, but the
store -- which the viewer reads from -- went stale).

Made-with: Cursor
The prewarm walker previously fed `getCommandsUntilLine` a hardcoded
list of `["load", "set", "switch"]`, silently skipping every other
binding-producing command. Hovering `$voting` after `install $voting
voting:0.1.0`, `$myDao` after `new-dao`, `$myToken` after `new-token`,
or any variable defined by `deploy`, `sign`, `for` returned "no info";
helpers nested inside a `connect myDao { ... }` block whose body the
cursor wasn't in never reached the helper cache either.

Replaces the allowlist with a new `getAllCommandsUntilLine(line)`
traversal that visits every command in DFS pre-order regardless of
block nesting. Per-command behaviour is now driven entirely by the
node itself: `argDef.type === "variable"` seeds the USER binding,
custom argDef types with a `resolve()` hook (`module`, `dao`, ...)
get invoked, and any `eventCaptures` / `errorCaptures` on the node
seed placeholder bindings for their slot variables (and `boolVar`),
mirroring the runtime's `applyDestructure` `$`-prefixing rule. New
binding-producing commands therefore participate in prewarm with no
allowlist edits.

Hover suppresses the noisy `**Variable** $foo = $foo` rendering when
the binding value is the placeholder name (i.e. the command can't
predict its runtime output yet), so `$myContract` from `deploy`
shows as `**Variable** $myContract` rather than restating itself.

Adds regression coverage for the `deploy`-style variable, the
`-> Evt(...) [$a $b]` event capture, and the `-!>` / `-?!>` error
capture (both destructure and boolVar shapes).

Made-with: Cursor
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