| Name | Modified | Size | Downloads / Week |
|---|---|---|---|
| Parent folder | |||
| README.md | 2026-09-01 | 4.6 kB | |
| vscode@0.44.6 source code.tar.gz | 2026-09-01 | 63.7 MB | |
| vscode@0.44.6 source code.zip | 2026-09-01 | 64.1 MB | |
| Totals: 3 Items | 127.8 MB | 1 | |
Thank you to @rfreytag for reporting the security issues resolved in this release.
Patch Changes
- Keep note creation inside the workspace in Restricted Mode. A template
filepaththat resolves outside the workspace roots (e.g. via../) is now refused when the workspace is untrusted, so opening an unfamiliar workspace can't turn note creation into a write — or, via theoverwritestrategy, a delete — anywhere on disk. Trusted workspaces are unchanged: templates are the user's own there, and filing a note into a sibling directory keeps working. This mirrors the containment@foam/core'snoteCreatealready applies to the CLI and MCP. -
bb903f9: Make the
@foam/corebarrel bundler-safe for non-Node runtimes (browsers, React Native): -
The exports that execute user-supplied JavaScript via Node's
vm—TemplateLoader,resolveDailyNote,noteCreate,renderJsQuery— moved out of the main barrel to the new@foam/core/scriptingsubpath (published asfoam-core/scripting). Migration: change the import specifier; the APIs are unchanged. - Platform detection rewritten as a pure, tested
detectPlatform()(exported, along withisReactNative). Fixes Node ≥ 21 being misclassified as web (Node now ships a globalnavigator). The previously exported but unusedisIOS,locale,Platform,Language,translationsConfigFile,isElectronSandboxedandglobalsare removed. stripFrontMatterno longer uses gray-matter, which requires Node'sBufferat call time. Behavior change: an unclosed opening---delimiter is no longer treated as frontmatter (gray-matter would swallow the whole document).- New portability gate in the build: the public barrel must type-check with
no Node and no DOM types (
tsconfig.portability.json).
foam-vscode and @foam/cli are bumped because they bundle @foam/core.
- The exported HTML report now carries a Content Security Policy that allows
only its own nonce'd script. Note content is rendered with raw-HTML
passthrough, so previously a
<script>or inlineon*=handler written into a note would run in the browser of whoever opened the shared report. Styling, images and links are unaffected — the policy restricts scripts only. - Correct the Restricted Mode capability description. It previously claimed "No
expressions are allowed in filters", but
jexlfilter expressions are in fact evaluated in untrusted workspaces — Jexl is sandboxed by design (no file system, network, or host access), so this is intended and safe. The description now accurately states that JavaScript queries (foam-query-js) and JavaScript templates are disabled while sandboxed Jexl filters still run. - Moved
EventLoopMonitorandformatMemoryUsagefrom foam-vscode into@foam/core(exported from the barrel). They were host-agnostic by construction —processfeature-detected,unrefoptional-chained — and belong next toLoadProfilerso the CLI can produce the same load report as the extension. No behavior change.foam-vscodeand@foam/cliare bumped because they bundle@foam/core. - 7b50c54: Added a workspace load report to help diagnose slow startups (#1689). The Foam output log now breaks the load time down into file reads, markdown parsing and unaccounted time, along with parser cache hit rate, extension host event loop lag, and the slowest notes to parse.
- Scope hover-tooltip trust to Foam's own commands. Tooltips built from note
content previously set
MarkdownString.isTrusted = true, which makes everycommand:link in the rendered markdown clickable — including dangerous built-ins such asworkbench.action.terminal.sendSequence. A note in a shared or cloned workspace could disguise a one-click arbitrary-command link. Trust is now restricted to an allowlist (foam-vscode.open-resource,foam-vscode.create-note); every othercommand:link renders inert. - be76f9e: Fixed Foam variables being duplicated when used as defaults for mirrored snippet tabstops (#1215).
- Image size parameters in embeds are now validated before being written into
the image's
styleattribute. Only plain CSS dimensions are accepted, so a value carrying a quote can no longer break out of the attribute. All documented forms (300,50%,300x200,400px,2em) are unchanged; undocumented keywords such asautoare dropped.