Third-party notices
Lattice itself is licensed Apache-2.0 (see LICENSE and NOTICE). This
file records the separate terms of components that are bundled, vendored, or
adapted into it. It ships with the application: Settings › About ›
Acknowledgements shows it whole and lists every package of its generated half
(src/settings/third-party-notices.ts reads that half, so a change to the
generator's output format must keep that parser working).
It has two halves. Everything above the generated boundary is written by
hand and covers components that need a human explanation — vendored code,
adapted code, and dependencies whose terms raise a question. Everything below
that boundary is produced by scripts/generate-notices.mjs and covers the
four dependency closures Lattice ships: the npm production tree, the crates
linked into the Rust binary, and the npm trees staged into the Synara and Open
Slide sidecars and bundled as Tauri resources. Regenerate it with pnpm notices; pnpm notices:check fails if it has drifted. The generator never touches the
hand-written half. When a package's published artifact omits its license text,
pnpm notices --fetch-upstream copies the file from the package's repository
into licenses/upstream/, where the generator reads it from then on.
The gaps section lists what is shipped but still not attributed. The generator resolved most of what used to be listed there; the entries that remain are the ones it genuinely cannot answer.
Cuelume
Lattice uses Cuelume for synthesized interface sounds.
MIT License
Copyright (c) 2026 Daniel Belyi
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
Trellis
The workspace's dockable panel layout is built with Trellis by Dan Fessler, pinned at @danfessler/trellis@0.2.0 and @danfessler/trellis-react@0.2.0 in package.json.
Uses Trellis by DanFessler - github.com/DanFessler/trellis
Trellis is not covered by Lattice's Apache License. @danfessler/trellis is licensed under its own non-commercial license (with a commercial tier), not Apache-2.0. Its terms, as the packages ship them:
- Non-commercial (free): use, modification and distribution for non-commercial purposes only. It excludes use that generates revenue, use developed within a for-profit organization, and use at a company with more than one employee or developer unless explicitly licensed; it forbids distributing a fork or derivative under a different license; and it requires the license file and attribution to be retained.
- Commercial: an active GitHub sponsorship of the author (github.com/sponsors/danfessler) at the individual or small-studio tier, for organizations with 10 or fewer developers; the rights last while the sponsorship is active, and the attribution above is required.
- Enterprise: more than 10 developers, by arrangement with the author.
These terms apply to anyone using Lattice, because Lattice ships Trellis to its users: someone using Lattice at a company or for a for-profit organization needs a Trellis license from its author.
The three license files are copied verbatim to public/licenses/trellis-LICENSE.md, public/licenses/trellis-LICENSE-NONCOMMERCIAL.md and public/licenses/trellis-LICENSE-COMMERCIAL.md, which Vite copies into the shipped application; the generated section below also reproduces the texts the packages ship. Lattice modifies Trellis only through the pnpm patch patches/@danfessler__trellis@0.2.0.patch (layout fixes); the packages' own license files are left untouched. The macOS About panel shows the attribution.
tldraw
The board editor is built with the tldraw SDK, pinned at tldraw@5.2.5 in package.json.
The verbatim license text is vendored at public/licenses/tldraw-LICENSE.md. It has to be: the published npm packages do not contain it. node_modules/tldraw/LICENSE.md is 104 bytes and reads, in full, "This code is licensed under the tldraw license" — a link, not a license — while the license itself lists among its conditions:
To include a verbatim copy of this License in any distribution of the Software.
Vite copies public/ into dist/, and src-tauri/tauri.conf.json sets frontendDist: "../dist", so the vendored copy is embedded in the shipped application binary as well as tracked in the source tree. scripts/generate-notices.mjs fails if the file goes missing, and reproduces it in the generated section below.
Which tldraw packages are actually covered
The scope is narrower than the package names suggest, and the license fields are not a reliable guide:
tldraw,@tldraw/editorand@tldraw/driverdeclare"SEE LICENSE IN LICENSE.md"and ship the link stub. These are the packages the tldraw license governs.@tldraw/utilsand@tldraw/validatealso declare"SEE LICENSE IN LICENSE.md", but the file they point at is an ordinary MIT license, Copyright (c) 2024 tldraw Inc. The declaration is misleading; the shipped text governs.@tldraw/state,@tldraw/state-react,@tldraw/storeand@tldraw/tlschemadeclare"MIT"and ship the MIT text.@tldraw/assetsdeclares"SEE LICENSE IN LICENSE.md"and ships the link stub, so its icons, translations and embed icons are covered by the tldraw license too. Its fonts are not tldraw's: see the next section.
Board fonts (@tldraw/assets)
tldraw's defaults load the board's fonts, icons, translations and embed icons from cdn.tldraw.com. Lattice instead bundles them from @tldraw/assets@5.2.5 (pinned to the tldraw version) through src/editor/board/board-asset-urls.ts; Vite emits them into dist/assets/, so they ship inside the application.
The sixteen .woff2 files are IBM Plex Sans, Serif and Mono (Copyright © 2017 IBM Corp. with Reserved Font Name "Plex") and Shantell Sans (Copyright 2022 The Shantell Sans Project Authors), all under the SIL Open Font License 1.1 and bundled unmodified.
Their metadata carries the copyright lines and a pointer to the OFL but not its text, so the license ships separately at public/licenses/tldraw-fonts-OFL.txt (both copyright notices plus the OFL), which Vite copies into the shipped application.
Terms that bear on redistribution
tldraw 5.x is not Apache-2.0 and not an OSI-approved license. Quoting the text (see the vendored copy for the whole document):
- Permissions are limited to using the Software in "Development Environments", modifying it, and bundling it "with your own projects".
- Among the conditions: "Not to use the Software in Production Environments"; "Not to disable, change, or interfere with the Software's License Key enforcement"; "Not to remove any copyright or other notices from the Software"; and "Not to make the Software available under a license that supersedes or negates the effect of this License."
- Production use is reached only through the separate "Trial license" and "Commercial license" sections, each of which turns on a License Key issued by tldraw.
- Both the warranty disclaimer and the liability limitation say "You must pass this […] on whenever you distribute the Software or derivative works."
Carve-out. Lattice is Apache-2.0, but the tldraw, @tldraw/editor and @tldraw/driver packages (and the parts of @tldraw/assets listed above) are licensed under the tldraw license, not Apache-2.0; NOTICE says so explicitly. Lattice does not relicense them, so the condition against making the Software "available under a license that supersedes or negates the effect of this License" is respected. The license key stays out of this repository: forks build tldraw in its unlicensed, watermarked mode, which does not interfere with key enforcement. (While Lattice was GPL-3.0, these restrictions conflicted with GPL-3.0 §7; that conflict ended with the relicense.)
What this repository can and cannot verify about its own grant
The board editor reads a license key from the VITE_TLDRAW_LICENSE_KEY environment variable at build time; the release workflow passes it from the VITE_TLDRAW_LICENSE_KEY repository secret. Builds without that key, including release builds when the secret is unset, run tldraw in its unlicensed, watermarked mode. The specific grant the maintainer holds is not recorded anywhere in this repository and needs confirming against whatever tldraw issued with the key.
An earlier revision of this file asserted that Lattice "ships under a tldraw Hobby license key". That claim is withdrawn: the license text defines only Development, Trial and Commercial categories and never uses the word "Hobby". A "Hobby" tier exists on tldraw's pricing page as a free, application-gated offering, but its watermark and commercial-use conditions are not published in the legal text, so nothing here can state what they are.
Lucide file glyphs (src/components/ui/file-glyphs.ts, src/project/project-tree-css.ts)
The file and folder glyphs in the project tree, the workspace tabs and the pickers are adapted from Lucide icons (ISC). Lucide's license and copyright notice are reproduced with the lucide-react package in the generated notices below.
Fluid Functionalism and Lina (src/components/ui/)
Several UI primitives are adapted from Fluid Functionalism (MIT, Copyright (c) 2026 Micka Touillaud): scroll-area.tsx, scroll-area.css, radio-group.tsx, switch.tsx, use-fluid-hover.ts, fluid-hover-highlight.tsx, and the spring presets in motion-values.ts.
Fluid Functionalism's scrollbar is itself adapted from Lina (MIT, Copyright (c) 2025 Sameer Singh), so scroll-area.tsx and scroll-area.css carry both notices.
Each file's header names what it was adapted from; preserve those headers.
Both projects use the same MIT text:
MIT License
Copyright (c) 2026 Micka Touillaud
Copyright (c) 2025 Sameer Singh
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
Open Slide create-theme skill (src-tauri/src/embedded_skills/create-theme/SKILL.md)
The bundled agent skill for creating presentation themes is adapted from Open Slide's own create-theme skill (packages/core/skills/create-theme/SKILL.md in open-slide/open-slide).
It keeps upstream's theme-specification layout (palette, typography, layout, fixed Title and Footer components, motion, aesthetic, example usage) and some of its example code, rewritten for Lattice projects.
Open Slide is MIT licensed, Copyright (c) 2026 Yiwei Ho, under the same MIT text as the section above.
The Open Slide runtime package itself is attributed in the generated Open Slide section below.
Ioskeley Mono (src/assets/fonts/ioskeley-mono/)
The editor and code face is Ioskeley Mono v2.0.0, Copyright (c) 2025 Ahmed Hatem, a custom build of Iosevka, Copyright (c) 2015-2026 Renzhi Li.
Both are licensed under the SIL Open Font License 1.1, and neither declares a Reserved Font Name.
Lattice bundles a subset of the .woff2 files (see the header of ioskeley-mono.css); under the OFL a subset is a Modified Version, which may be bundled with any software provided the copyright notice and license travel with it.
The subset's metadata keeps only the Iosevka copyright line and no license text, so the license ships separately: src/assets/fonts/ioskeley-mono/OFL.txt in the source tree, and public/licenses/ioskeley-mono-OFL.txt (both copyright lines plus the OFL), which Vite copies into the shipped application.
Timeless type family (release builds only; not in this repository)
Release builds set the interface and reading surfaces in the Timeless type family, Copyright 2026 Timeless Ventures Private Limited, Chennai, under the Timeless Free Font License 1.2.
That license allows embedding the fonts in an application but forbids putting "the fonts", which it defines to include their documentation, on a public repository, so neither the fonts nor the license is here: the release job reads both from a private repository, the build embeds the unmodified WOFF2 files and the unmodified LICENSE.pdf in the app's web assets, and Settings › About › Acknowledgements opens that license.
See docs/design-system.md, "Private interface fonts".
Conference LaTeX templates (src-tauri/templates/)
iclr-2026/, icml-2026/, neurips-2026/, acl/, cvpr-2027/ and aaai-2027/ bundle .sty and .bst files copied unchanged from the official conference packages, and the app copies them into new projects.
Each directory's UPSTREAM.md records the source URL, fetch date and SHA-256 of every copied file.
None of the six packages ships a separate license file. What the files themselves carry:
iclr2026_conference.bstandicml2026.bstderive from the natbibplainnatfamily and state that they "can be redistributed and/or modified under the terms of the LaTeX Project Public License" (version 1 or later; https://www.latex-project.org/lppl/), with copyright notices for Patrick W Daly (1993-2007) and Hal Daumé III (2010) and modification credits for J. Fürnkranz and, in the ICML file, Iain Murray.acl_natbib.bst(Copyright 1994-2011 Patrick W Daly; urlbst modifications Copyright 2002–23 Norman Gray),ieeenat_fullname.bst(derived fromabbrvnat.bst, Copyright 1993-2007 Patrick W Daly) andaaai2027.bst(generated from Patrick W Daly'smerlin.mbs) carry the same LPPL grant, version 1 or later.iclr2026_conference.sty,icml2026.styandneurips_2026.stycarry author credits in their header comments (Hugo Larochelle and the NIPS style authors; the ICML program chairs listed in the file; Roman Garnett and thenips15submit_e.styauthors) but no license grant.acl.sty(from the Association for Computational Linguistics'acl-style-files),cvpr.sty(from the CVPR author kit) andaaai2027.sty(from the AAAI-27 author kit, which warns that an AAAI paper may not modify it) carry no license grant either.
All twelve files are shipped byte-for-byte, so every notice and credit in them reaches users intact. Do not edit or strip their header comments; the LPPL in particular requires a modified .bst to be renamed and its changes identified.
The project keeps these templates bundled. The absence of a license grant on the six .sty files remains recorded in the gaps below.
Chinese university thesis templates (src-tauri/templates/thuthesis/, src-tauri/templates/ustcthesis/)
Both directories bundle files copied unchanged from the templates' official releases, and the app copies them into new projects. Each directory's UPSTREAM.md records the release, its SHA-256 and the SHA-256 of every copied file.
- ThuThesis 7.7.1 (https://github.com/tuna/thuthesis, also on CTAN as
thuthesis):thuthesis.cls, Copyright (C) 2005-2026 by Tsinghua University TUNA Association, andthuthesis-numeric.bstandthuthesis-author-year.bst, Copyright (C) 2016--2024 by Zeping Lee. All three may be distributed and/or modified under the LaTeX Project Public License, version 1.3c or later (https://www.latex-project.org/lppl.txt). The release also shipsthu-fig-logo.pdfandthu-text-logo.pdf, which the class draws on undergraduate thesis covers. They carry the emblem and name of Tsinghua University, taken unmodified (apart from cropping) from the university's visual identity system; the ThuThesis README notes that they are registered trademarks of Tsinghua University, to be used only for this template. - ustcthesis 5.0.2 (https://github.com/ustctug/ustcthesis):
ustcthesis.cls, Copyright (C) 2015-2026 by USTC TeX Users Group, andustcthesis-numeric.bstandustcthesis-authoryear.bst, Copyright (C) 2016-2026 by Zeping Lee, under the LaTeX Project Public License, version 1.3c or later; the repository is licensed LPPL 1.3c as a whole. The four PDFs underfigures/(ustc-logo.pdf,ustc-name.pdf,ustc-name-stxingkai.pdf,ustc-title-page-heading.pdf) are the cover artwork the class draws at those fixed paths and carry the emblem and name of the University of Science and Technology of China.
Every file ships byte-for-byte; the LPPL requires a modified file to be renamed and its changes identified, so do not edit them in place.
Realtime TeX live preview renderer (src/live-preview/)
The LuaLaTeX live preview draws rtex's display lists with code adapted from the Realtime TeX VS Code plugin (webview/render.ts, webview/model.ts, webview/opentype.d.ts, src/fontKey.ts, src/type1.ts, src/edits.ts, src/protocol.ts, src/resources.ts). Each adapted file names its source in its header.
MIT License
Copyright (c) 2026 Henry Yang
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
The engine itself, rtex (realtime-tex) 0.0.6, is not shipped with Lattice: turning the live preview on downloads its release archive (verified by SHA-256) into Lattice's Application Support folder, together with the archive's own LICENSE. It is licensed MIT, Copyright (c) 2026 Henry Yang and the realtime-tex contributors.
Claude Agent SDK (bundled in the Synara sidecar)
scripts/prepare-synara-sidecar.mjs installs the Synara server's production
dependencies into src-tauri/synara-runtime/server/node_modules/, and
tauri.conf.json bundles that directory whole. Two of the packages that land
there are proprietary, and this is called out by hand rather than left in
the generated list because it is the one closure finding that is not a
formality:
The versions below are the ones in the last generated Synara sidecar section; that section is authoritative when the pin moves.
| Package | license field |
LICENSE.md, in full |
|---|---|---|
@anthropic-ai/claude-agent-sdk@0.3.259 |
SEE LICENSE IN README.md |
"© Anthropic PBC. All rights reserved. Use is subject to the Legal Agreements outlined here: https://code.claude.com/docs/en/legal-and-compliance." |
@anthropic-ai/claude-agent-sdk-darwin-arm64@0.3.259 |
SEE LICENSE IN LICENSE.md |
same text |
Two observations, both checkable against the staged tree:
- What ships is the SDK, not the CLI. The platform package's
claudeexecutable is a 27-byte shim —#!/bin/sh/exec claude "$@"— written by the prepare script so that sessions run the user's own Claude Code installation. Anthropic's CLI binary is not redistributed.pnpm buildenforces this throughCLAUDE_PATH_LAUNCHER_BUDGET_BYTESinscripts/app-size-report.mjs. - The JavaScript SDK itself is still redistributed. Its JavaScript entry
points (
sdk.mjs,bridge.mjsandbrowser-sdk.js, each around a megabyte when this was last measured) are copied into the application bundle under an all-rights-reserved notice. Anthropic's published terms are the ones linked above; nothing in this repository records a grant to redistribute those files inside a third-party application.
That question has to be answered before a public release: either confirm the
redistribution grant with Anthropic, or stop bundling the SDK and resolve it
from the user's environment the way the claude executable already is.
The SEE LICENSE IN README.md field on the first package is also a dead
reference — the README it names contains no license text at all — so the
LICENSE.md quoted above is the only statement of terms in the artifact.
tantivy and jieba-rs (paper full-text search, src-tauri/src/papers/search_index.rs)
The Papers panel's full-text search and the agent's search_library tool run on tantivy (tantivy@0.27, MIT), with Chinese word segmentation from jieba-rs (jieba-rs@0.11, MIT), which compiles in the word-frequency dictionary (dict.txt) of the original Python jieba project (MIT).
tantivy's sub-crates (tantivy-bitpacker, tantivy-columnar, tantivy-common, tantivy-query-grammar, tantivy-sstable, tantivy-stacker, tantivy-tokenizer-api, ownedbytes) and jieba-rs publish no license file in their crate archives; the generated section reproduces the license each has in its repository, recovered by pnpm notices --fetch-upstream. The jieba dictionary is not a crate, so the generator never sees it. jieba-rs and the jieba dictionary are under these licenses, from their repositories:
MIT License
Copyright (c) 2018 - 2019 messense Copyright (c) 2019 Paul Meng
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
The MIT License (MIT)
Copyright (c) 2013 Sun Junyi
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
Font Awesome Free and VS Code Codicons icons (bundled in the Synara web client)
The Synara web client staged into the sidecar (synara-runtime/server/dist/client) renders icons from react-icons 5.6.0, the version Synara's lockfile pins at the revision in scripts/synara-runtime.json. Two of the packs it imports carry icons under the Creative Commons Attribution 4.0 International license (CC BY 4.0), which requires this attribution:
- Font Awesome Free 6.5.2 (
react-icons/fa6), by Fonticons, Inc. (https://fontawesome.com). Copyright (c) 2024 Fonticons, Inc. The icons are licensed under CC BY 4.0, https://creativecommons.org/licenses/by/4.0/; the full Font Awesome Free license is at https://fontawesome.com/license/free. The font files Font Awesome also publishes under the SIL OFL 1.1 are not shipped. - Codicons 0.0.35 (
react-icons/vsc), the icon font of Visual Studio Code, by Microsoft Corporation (https://github.com/microsoft/vscode-codicons). Copyright (c) Microsoft Corporation. The icons are licensed under CC BY 4.0, https://creativecommons.org/licenses/by/4.0/legalcode. The Microsoft names, logos and trademarks are not licensed.
Modifications: react-icons converts each icon's SVG path data into a React component. Neither icon set has been otherwise changed. The licensors provide the icons as-is and make no warranties; see section 5 of the license.
Known attribution gaps (TODO)
Everything below is shipped in the app or the repository but is not yet properly attributed above. This list exists so the gap is visible rather than silent. Appearing here does not by itself mean an item is a problem — for most of them it only means nobody has checked; a few (tldraw, the conference templates, the Claude Agent SDK, the Synara client's Central icons) are flagged because a real question was found. Remove an entry when it has been given a real section.
Items that used to be on this list and are now covered by the generated section
— the npm and crates.io closures, the Synara sidecar's node_modules, ExcelJS,
@pierre/trees and @pierre/diffs, and the bulk of Univer — were removed
rather than kept as reassurance. What remains is what a machine reading the
installed packages cannot answer.
- Conference LaTeX template style files (
src-tauri/templates/*/*.sty). Attribution is now recorded in the section above: the files ship unmodified with every in-file credit, and the five.bstfiles carry an LPPL grant. What stays open is that the six.styfiles (ICLR, ICML, NeurIPS, ACL, CVPR and AAAI) carry no license grant at all, so nothing on disk records permission to redistribute them. The project has chosen to keep them bundled; fetching them on demand or obtaining permission from the conference organisers would close this entry. (tutorial/is Lattice's own content, and the LPPL thesis templates are licensed; neither is affected.) - The Synara web client bundle.
generate-noticesscans the Synara sidecar'snode_modules, but the prebuilt web client undersynara-runtime/server/dist/clientbundles its own third-party code, and none of that is attributed here yet. Known items, from an audit of Lattice 0.1.341 and the pinned Synara source (scripts/synara-runtime.json):- Synara's web app depends on
react-icons(and@tabler/icons-react). At the pinned revision it imports elevenreact-iconspacks:fa6,fi,go,hi2,io,lu,pi,ri,si,tbandvsc. The two packs with CC BY 4.0 icons, Font Awesome Free (fa6) and VS Code Codicons (vsc), are now attributed in the section above. The rest are under the MIT, ISC, Apache-2.0 or CC0 licenses of their icon sets and still need their notices reproduced; the Simple Icons brand logos (si) are CC0 but remain their owners' trademarks. - The client ships raw SVGs from
apps/web/public/central-icons-fill/andcentral-icons-reversed/("Central icons", rendered byapps/web/src/lib/central-icons.tsx). The Synara repository records no license or provenance for them. If they are the commercial Central Icon System, redistributing the raw SVGs may not be permitted. This needs an answer from the Synara upstream. - Every other package compiled into the client bundle (rather than installed in
node_modules) is likewise unattributed until the generator, or Synara's own build, emits a notices file for it.
- Synara's web app depends on
- The Claude Agent SDK's redistribution grant. See the section above. Attribution is now complete — the terms are quoted in full — but whether Lattice may redistribute proprietary, all-rights-reserved JavaScript inside its application is a question only Anthropic can close.
- tldraw's license grant (
tldraw@5.2.5). See the tldraw section above. Attribution and the Apache-2.0 carve-out are resolved: the verbatim license is vendored atpublic/licenses/tldraw-LICENSE.md, reaches the shipped binary, andNOTICEexcludes the tldraw packages from the Apache License. Still open: which grant the project'sVITE_TLDRAW_LICENSE_KEYcorresponds to, which only tldraw can confirm. - Packages that declare a license but ship no text, and found none upstream. The generated "Unresolved attribution" sections list these, each with what
pnpm notices --fetch-upstreamfound when it looked in the package's repository. Most packages that ship no text — nearly all of them crates whose published archive omits theLICENSEfile at the root of their workspace — now have that file recovered from their repository, at the commit they were published from where one is recorded, and reproduced in the generated section: 115 in the npm and crates closures and 2 in the Open Slide runtime. The Synara sidecar section is carried over from a staging of an older pin, so it still lists five; four of those texts are already recovered inlicenses/upstream/and leave the list whenpnpm prepare:synaraandpnpm noticesnext regenerate it. What remains has no license file in its repository at all: the SPDX identifier is known, but MIT, BSD and ISC require the copyright notice specifically, and nothing upstream states one. The packages that used to declare no license at all are resolved:buffers@0.1.1left the tree when ExcelJS'sunzipperwas moved to a release without it (apnpm.overridesentry; ExcelJS's browser build, which is what Vite bundles, never contained it),khroma@2.1.0is no longer a dependency, and@univerjs/telemetry@0.25.1ships the Apache-2.0 license of the Univer repository, which the generator now records for it. harper-core's dictionary data (src-tauri/Cargo.toml). The crate itself is now attributed (Apache-2.0, though it ships no license text — see above). Its bundled dictionary and corpus data (dictionary.dict,annotations.json, the irregular-verb and proper-noun tables) may carry separate terms from the code; that has not been checked, and the generator only reads a crate's own license files.- Phosphor Icons (
src/animated-icons/bakai/*). These components are hand-rebuilt from Phosphor glyphs (each file's header names the source glyph and weight, e.g.Faders, FILL weight). Phosphor Icons is MIT; the required copyright notice is not reproduced anywhere in this repository. Not a dependency, so not covered by the generator. - The
@pierre/treespatch (patches/@pierre__trees@1.0.0-beta.6.patch). The package's own terms are now attributed (Apache-2.0). The patch is a modification, and Apache-2.0 §4(b) requires modified files to carry prominent notices of the change; whether the patch satisfies that has not been checked. - Univer's commercial tier (
@univerjs/*). Every Univer package in the tree declares Apache-2.0 and is attributed in the generated section. Univer is also marketed with a commercial tier, so confirm that the Apache-2.0 packages Lattice actually depends on are the whole story and that no feature in use falls under separate terms.
Generated third-party notices
Everything below this line is produced by node scripts/generate-notices.mjs
from the packages installed on disk. Do not edit it by hand — run
pnpm notices instead. pnpm notices:check fails if it has drifted.
Each closure lists its packages by declared license, then reproduces every
distinct license text once, together with all the copyright notices that
share it. Grouping is by license body with the copyright lines removed and
whitespace normalised, so the hundreds of MIT packages that differ only in
their copyright line collapse to one reproduction of the text plus every one
of their notices. Wording variants — MIT License versus (The MIT License),
or different quote characters — stay in separate groups on purpose; each
group reproduces one member's file verbatim.
Copyleft, reciprocal and source-available dependencies — npm and crates
Lattice ships under Apache-2.0. Everything below is a dependency whose
terms are not plainly permissive, listed so the interaction with that
license gets an answer rather than an assumption. A dual row offers a
permissive alternative, which Lattice elects (Apache-2.0 where offered) and
names in the row; a non-spdx row
has a misleading license field but a permissive license in the file it
points at.
The Synara sidecar has its own findings block further down; it is kept separate because that closure only exists once pnpm prepare:synara has staged it.
| Package | Closure | Declared | Finding |
|---|---|---|---|
@danfessler/trellis-react@0.2.0 |
npm | SEE LICENSE IN LICENSE.md |
source-available — non-SPDX license reference |
@danfessler/trellis@0.2.0 |
npm | SEE LICENSE IN LICENSE.md |
source-available — non-SPDX license reference |
@tldraw/assets@5.2.5 |
npm | SEE LICENSE IN LICENSE.md |
source-available — non-SPDX license reference |
@tldraw/driver@5.2.5 |
npm | SEE LICENSE IN LICENSE.md |
source-available — non-SPDX license reference |
@tldraw/editor@5.2.5 |
npm | SEE LICENSE IN LICENSE.md |
source-available — non-SPDX license reference |
tldraw@5.2.5 |
npm | SEE LICENSE IN LICENSE.md |
source-available — non-SPDX license reference |
colored@3.1.1 |
crates | MPL-2.0 |
weak-copyleft — file-level copyleft |
cssparser-macros@0.6.1 |
crates | MPL-2.0 |
weak-copyleft — file-level copyleft |
cssparser-macros@0.7.1 |
crates | MPL-2.0 |
weak-copyleft — file-level copyleft |
cssparser@0.36.0 |
crates | MPL-2.0 |
weak-copyleft — file-level copyleft |
cssparser@0.37.0 |
crates | MPL-2.0 |
weak-copyleft — file-level copyleft |
dtoa-short@0.3.5 |
crates | MPL-2.0 |
weak-copyleft — file-level copyleft |
option-ext@0.2.0 |
crates | MPL-2.0 |
weak-copyleft — file-level copyleft |
selectors@0.36.1 |
crates | MPL-2.0 |
weak-copyleft — file-level copyleft |
selectors@0.38.0 |
crates | MPL-2.0 |
weak-copyleft — file-level copyleft |
lightningcss@1.32.0 |
npm | MPL-2.0 |
weak-copyleft — file-level copyleft |
lightningcss@1.33.0 |
npm | MPL-2.0 |
weak-copyleft — file-level copyleft |
@fontsource-variable/inter@5.3.0 |
npm | OFL-1.1 |
reciprocal — SIL OFL (reserved-name and bundling terms) |
@fontsource/instrument-serif@5.3.0 |
npm | OFL-1.1 |
reciprocal — SIL OFL (reserved-name and bundling terms) |
htmlescape@0.3.1 |
crates | Apache-2.0 / MIT / MPL-2.0 |
dual — file-level copyleft offered as one alternative; Lattice elects Apache-2.0 |
r-efi@5.3.0 |
crates | MIT OR Apache-2.0 OR LGPL-2.1-or-later |
dual — LGPL offered as one alternative; Lattice elects Apache-2.0 |
r-efi@6.0.0 |
crates | MIT OR Apache-2.0 OR LGPL-2.1-or-later |
dual — LGPL offered as one alternative; Lattice elects Apache-2.0 |
jszip@3.10.1 |
npm | (MIT OR GPL-3.0-or-later) |
dual — GPL offered as one alternative; Lattice elects MIT |
@tldraw/utils@5.2.5 |
npm | SEE LICENSE IN LICENSE.md |
non-spdx — non-SPDX license field; the file it points at is a permissive license |
@tldraw/validate@5.2.5 |
npm | SEE LICENSE IN LICENSE.md |
non-spdx — non-SPDX license field; the file it points at is a permissive license |
Vendored license texts
Some packages point at a license they do not actually ship. The text is
vendored into this repository so that it is distributed with both the source
and the binary (public/ is copied into dist/, which tauri.conf.json
embeds via frontendDist). It is reproduced below like any other notice.
public/licenses/tldraw-LICENSE.md— for@tldraw/assets@5.2.5,@tldraw/driver@5.2.5,@tldraw/editor@5.2.5,tldraw@5.2.5, because the published package ships a 104-byte LICENSE.md containing only a link, while the license it links to requires "a verbatim copy of this License in any distribution of the Software".
Unresolved attribution — npm and crates
These are the packages this generator could not attribute from what is installed on disk. They are listed rather than omitted: an unattributed dependency in a shipped binary is a gap, not a rounding error.
Declared a license but shipped no license text (9)
The SPDX identifier is known, but the package contains no LICENSE,
COPYING or NOTICE file, so the copyright line those licenses require us
to reproduce is not available from the artifact we distribute. Where
pnpm notices --fetch-upstream looked for the text in the package's
repository and found none, the line says what it found instead.
block@0.1.6(crates) — declaredMIT— upstream: https://github.com/SSheldon/rust-block has no license file on the path to/, at the release or on its default branchhtmlescape@0.3.1(crates) — declaredApache-2.0 / MIT / MPL-2.0— upstream: https://github.com/veddan/rust-htmlescape has no license file on the path to/of its default branch, and no commit or tag identifies the releaser-efi@5.3.0(crates) — declaredMIT OR Apache-2.0 OR LGPL-2.1-or-later— upstream: https://github.com/r-efi/r-efi has no license file on the path to/, at the release or on its default branchr-efi@6.0.0(crates) — declaredMIT OR Apache-2.0 OR LGPL-2.1-or-later— upstream: https://github.com/r-efi/r-efi has no license file on the path to/, at the release or on its default branchselectors@0.36.1(crates) — declaredMPL-2.0— upstream: https://github.com/servo/stylo has no license file on the path toselectors, at the release or on its default branchselectors@0.38.0(crates) — declaredMPL-2.0— upstream: https://github.com/servo/stylo has no license file on the path toselectors, at the release or on its default branchot-json1@1.0.2(npm) — declaredISC— upstream: https://github.com/josephg/json1 has no license file on the path to/of its default branch, and no commit or tag identifies the releaseot-text-unicode@4.0.0(npm) — declaredISC— upstream: https://github.com/ottypes/text has no license file on the path to/of its default branch, and no commit or tag identifies the releaseunicount@1.1.0(npm) — declaredISC— upstream: https://github.com/josephg/unicount has no license file on the path to/, at the release or on its default branch
License texts recovered from upstream — npm and crates (115)
These packages declare a license but their published artifact omits the
text — usually a crate in a workspace whose LICENSE sits at the repository
root, which cargo package does not include. The verbatim file was taken
from the package's Git repository at the commit it was published from and
is kept in licenses/upstream/; it is reproduced in the license texts
below like any other notice. An entry marked default branch was taken
from the repository's current default branch instead, because no commit or
tag identifies the release or the release commit had no license file; the
source.json beside the file says which.
alloc-stdlib@0.2.4—LICENSEatae42d22078b9block2@0.6.2—LICENSE.mdatb4167b582b2fburn-cubecl-fusion@0.19.1—LICENSE-APACHE,LICENSE-MITata6da424feacfburn-cuda@0.19.1—LICENSE-APACHE,LICENSE-MITata6da424feacfburn-ir@0.19.1—LICENSE-APACHE,LICENSE-MITata6da424feacfburn-nn@0.19.1—LICENSE-APACHE,LICENSE-MITata6da424feacfburn-optim@0.19.1—LICENSE-APACHE,LICENSE-MITata6da424feacfburn-rocm@0.19.1—LICENSE-APACHE,LICENSE-MITata6da424feacfburn-router@0.19.1—LICENSE-APACHE,LICENSE-MITata6da424feacfburn-store@0.19.1—LICENSE-APACHE,LICENSE-MITata6da424feacfclipboard-win@5.4.1—LICENSEat3b27cf2bfd1acubecl-convolution@0.8.1—LICENSE-APACHE,LICENSE-MIT,NOTICE.mdat0e2ba072b1ebcubecl-cpp@0.8.1—LICENSE-APACHE,LICENSE-MIT,NOTICE.mdat0e2ba072b1ebcubecl-hip-sys@7.14.6085000—LICENSE-APACHE,LICENSE-MITat99b002ee9ac7cubecl-matmul@0.8.1—LICENSE-APACHE,LICENSE-MIT,NOTICE.mdat0e2ba072b1ebcubecl-opt@0.8.1—LICENSE-APACHE,LICENSE-MIT,NOTICE.mdat0e2ba072b1ebcubecl-quant@0.8.1—LICENSE-APACHE,LICENSE-MIT,NOTICE.mdat0e2ba072b1ebcubecl-random@0.8.1—LICENSE-APACHE,LICENSE-MIT,NOTICE.mdat0e2ba072b1ebcubecl-reduce@0.8.1—LICENSE-APACHE,LICENSE-MIT,NOTICE.mdat0e2ba072b1ebcubecl-std@0.8.1—LICENSE-APACHE,LICENSE-MIT,NOTICE.mdat0e2ba072b1ebdefmt-parser@1.0.0—LICENSE-APACHE,LICENSE-MITat4a8cdb44891edispatch2@0.3.1—LICENSE.mdat8852b424193cdlopen2_derive@0.4.3—LICENSEatcc80e4a0a90ddlopen2@0.8.2—LICENSEatcc80e4a0a90dembassy-futures@0.1.2—LICENSE-APACHE,LICENSE-CC-BY-SA,LICENSE-MIT,NOTICE.mdat3e8d8fec1528embassy-time-driver@0.2.2—LICENSE-APACHE,LICENSE-CC-BY-SA,LICENSE-MIT,NOTICE.mdat50c6aac5b9b3embassy-time@0.4.0—LICENSE-APACHE,LICENSE-CC-BY-SA,LICENSE-MIT,NOTICE.mdatcefdbfab2f1egl_generator@0.14.0—LICENSEatea503e8d5fb6gpu-alloc-types@0.3.1—COPYINGat7ddd1fe576fcgpu-alloc@0.6.2—COPYINGat61020bdcb4ebgpu-descriptor-types@0.2.0—COPYINGat9f2fb9546591gpu-descriptor@0.3.2—COPYINGatbb28b4e55b74harper-brill@2.7.0—LICENSEatdc1182cc2b33harper-core@2.7.0—LICENSEatdc1182cc2b33harper-pos-utils@2.7.0—LICENSEatdc1182cc2b33hexf-parse@0.2.1—LICENSE— default branchinclude_dir_macros@0.7.4—LICENSEatd742c6fffce9include_dir@0.7.4—LICENSEatd742c6fffce9include-flate-codegen@0.3.4—LICENSEat4118d8e5d30binclude-flate-compress@0.3.4—LICENSEat4118d8e5d30bjieba-macros@0.11.0—LICENSEat3a0d75cf7455jieba-rs@0.11.0—LICENSEat3a0d75cf7455jni-macros@0.22.4—LICENSE-APACHE,LICENSE-MITat33045a124105jni-sys-macros@0.4.1—LICENSE-APACHE,LICENSE-MITat64d77b7a5f11jni@0.22.4—LICENSE-APACHE,LICENSE-MITat5ae9458a4ec4khronos_api@3.1.0—LICENSEatf150967b1c44libappindicator-sys@0.9.0—LICENSE-APACHE,LICENSE-MITateafd1e3682a1macerator-macros@0.1.5—LICENSEat74ff68d11f16malloc_buf@0.0.6—LICENSE— default branchnaga@26.0.0—LICENSE.APACHE,LICENSE.MITat03f1b535ca23ndk-sys@0.6.0+11769913—LICENSE-APACHE,LICENSE-MITat49bbbba16c58ndk@0.9.0—LICENSE-APACHE,LICENSE-MITat49bbbba16c58objc2-app-kit@0.3.2—LICENSE.mdat7b1abfd750a2objc2-cloud-kit@0.3.2—LICENSE.mdat7b1abfd750a2objc2-core-data@0.3.2—LICENSE.mdat7b1abfd750a2objc2-core-foundation@0.3.2—LICENSE.mdat7b1abfd750a2objc2-core-graphics@0.3.2—LICENSE.mdat7b1abfd750a2objc2-core-image@0.3.2—LICENSE.mdat7b1abfd750a2objc2-core-location@0.3.2—LICENSE.mdat7b1abfd750a2objc2-core-text@0.3.2—LICENSE.mdat7b1abfd750a2objc2-encode@4.1.0—LICENSE.mdat8d214f547736objc2-exception-helper@0.1.1—LICENSE.mdat8d214f547736objc2-foundation@0.3.2—LICENSE.mdat7b1abfd750a2objc2-io-kit@0.3.2—LICENSE.mdat7b1abfd750a2objc2-io-surface@0.3.2—LICENSE.mdat7b1abfd750a2objc2-osa-kit@0.3.2—LICENSE.mdat7b1abfd750a2objc2-quartz-core@0.3.2—LICENSE.mdat7b1abfd750a2objc2-ui-kit@0.3.2—LICENSE.mdat7b1abfd750a2objc2-user-notifications@0.3.2—LICENSE.mdat7b1abfd750a2objc2-web-kit@0.3.2—LICENSE.mdat7b1abfd750a2objc2@0.6.4—LICENSE.mdat8852b424193cownedbytes@0.9.0—LICENSEatc6e77d27c605profiling@1.0.18—LICENSE-APACHE,LICENSE-MITat8271551172ebpulp-wasm-simd-flag@0.1.1—LICENSEat5eb07fd7b68ersqlite-vfs@0.1.1—LICENSEat1bb309784f25rustls-platform-verifier-android@0.1.1—LICENSE-APACHE,LICENSE-MIT— default branchspirv@0.3.0+sdk-1.3.268.0—LICENSEate91a5debc10ctantivy-bitpacker@0.27.0—LICENSEat50ac63df6608tantivy-columnar@0.27.0—LICENSEat67889269cae6tantivy-common@0.27.0—LICENSEat50ac63df6608tantivy-query-grammar@0.27.0—LICENSEat50ac63df6608
Lines 1–500 of 24215. Load more
# Third-party notices Lattice itself is licensed Apache-2.0 (see [`LICENSE`](LICENSE) and [`NOTICE`](NOTICE)). This file records the separate terms of components that are bundled, vendored, or adapted into it. It ships with the application: Settings › About › Acknowledgements shows it whole and lists every package of its generated half (`src/settings/third-party-notices.ts` reads that half, so a change to the generator's output format must keep that parser working). It has two halves. **Everything above the generated boundary is written by hand** and covers components that need a human explanation — vendored code, adapted code, and dependencies whose terms raise a question. **Everything below that boundary is produced by `scripts/generate-notices.mjs`** and covers the four dependency closures Lattice ships: the npm production tree, the crates linked into the Rust binary, and the npm trees staged into the Synara and Open Slide sidecars and bundled as Tauri resources. Regenerate it with `pnpm notices`; `pnpm notices:check` fails if it has drifted. The generator never touches the hand-written half. When a package's published artifact omits its license text, `pnpm notices --fetch-upstream` copies the file from the package's repository into `licenses/upstream/`, where the generator reads it from then on. The [gaps](#known-attribution-gaps-todo) section lists what is shipped but still not attributed. The generator resolved most of what used to be listed there; the entries that remain are the ones it genuinely cannot answer. ## Cuelume Lattice uses [Cuelume](https://github.com/Danilaa1/cuelume) for synthesized interface sounds. MIT License Copyright (c) 2026 Daniel Belyi Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ## Trellis The workspace's dockable panel layout is built with [Trellis](https://github.com/DanFessler/trellis) by Dan Fessler, pinned at `@danfessler/trellis@0.2.0` and `@danfessler/trellis-react@0.2.0` in `package.json`. Uses Trellis by DanFessler - github.com/DanFessler/trellis **Trellis is not covered by Lattice's Apache License.** `@danfessler/trellis` is licensed under its own non-commercial license (with a commercial tier), not Apache-2.0. Its terms, as the packages ship them: - **Non-commercial (free):** use, modification and distribution for non-commercial purposes only. It excludes use that generates revenue, use developed within a for-profit organization, and use at a company with more than one employee or developer unless explicitly licensed; it forbids distributing a fork or derivative under a different license; and it requires the license file and attribution to be retained. - **Commercial:** an active GitHub sponsorship of the author ([github.com/sponsors/danfessler](https://github.com/sponsors/danfessler)) at the individual or small-studio tier, for organizations with 10 or fewer developers; the rights last while the sponsorship is active, and the attribution above is required. - **Enterprise:** more than 10 developers, by arrangement with the author. These terms apply to anyone using Lattice, because Lattice ships Trellis to its users: someone using Lattice at a company or for a for-profit organization needs a Trellis license from its author. The three license files are copied verbatim to [`public/licenses/trellis-LICENSE.md`](public/licenses/trellis-LICENSE.md), [`public/licenses/trellis-LICENSE-NONCOMMERCIAL.md`](public/licenses/trellis-LICENSE-NONCOMMERCIAL.md) and [`public/licenses/trellis-LICENSE-COMMERCIAL.md`](public/licenses/trellis-LICENSE-COMMERCIAL.md), which Vite copies into the shipped application; the generated section below also reproduces the texts the packages ship. Lattice modifies Trellis only through the pnpm patch [`patches/@danfessler__trellis@0.2.0.patch`](patches/@danfessler__trellis@0.2.0.patch) (layout fixes); the packages' own license files are left untouched. The macOS About panel shows the attribution. ## tldraw The board editor is built with the [tldraw SDK](https://github.com/tldraw/tldraw), pinned at `tldraw@5.2.5` in `package.json`. **The verbatim license text is vendored at [`public/licenses/tldraw-LICENSE.md`](public/licenses/tldraw-LICENSE.md).** It has to be: the published npm packages do not contain it. `node_modules/tldraw/LICENSE.md` is 104 bytes and reads, in full, "This code is licensed under the [tldraw license](https://github.com/tldraw/tldraw/blob/main/LICENSE.md)" — a link, not a license — while the license itself lists among its conditions: > To include a verbatim copy of this License in any distribution of the Software. Vite copies `public/` into `dist/`, and `src-tauri/tauri.conf.json` sets `frontendDist: "../dist"`, so the vendored copy is embedded in the shipped application binary as well as tracked in the source tree. `scripts/generate-notices.mjs` fails if the file goes missing, and reproduces it in the generated section below. ### Which tldraw packages are actually covered The scope is narrower than the package names suggest, and the `license` fields are not a reliable guide: - `tldraw`, `@tldraw/editor` and `@tldraw/driver` declare `"SEE LICENSE IN LICENSE.md"` and ship the link stub. These are the packages the tldraw license governs. - `@tldraw/utils` and `@tldraw/validate` also declare `"SEE LICENSE IN LICENSE.md"`, but the file they point at is an ordinary **MIT** license, Copyright (c) 2024 tldraw Inc. The declaration is misleading; the shipped text governs. - `@tldraw/state`, `@tldraw/state-react`, `@tldraw/store` and `@tldraw/tlschema` declare `"MIT"` and ship the MIT text. - `@tldraw/assets` declares `"SEE LICENSE IN LICENSE.md"` and ships the link stub, so its icons, translations and embed icons are covered by the tldraw license too. Its fonts are not tldraw's: see the next section. ### Board fonts (`@tldraw/assets`) tldraw's defaults load the board's fonts, icons, translations and embed icons from `cdn.tldraw.com`. Lattice instead bundles them from `@tldraw/assets@5.2.5` (pinned to the `tldraw` version) through `src/editor/board/board-asset-urls.ts`; Vite emits them into `dist/assets/`, so they ship inside the application. The sixteen `.woff2` files are IBM Plex Sans, Serif and Mono (Copyright © 2017 IBM Corp. with Reserved Font Name "Plex") and Shantell Sans (Copyright 2022 The Shantell Sans Project Authors), all under the SIL Open Font License 1.1 and bundled unmodified. Their metadata carries the copyright lines and a pointer to the OFL but not its text, so the license ships separately at [`public/licenses/tldraw-fonts-OFL.txt`](public/licenses/tldraw-fonts-OFL.txt) (both copyright notices plus the OFL), which Vite copies into the shipped application. ### Terms that bear on redistribution tldraw 5.x is **not** Apache-2.0 and not an OSI-approved license. Quoting the text (see the vendored copy for the whole document): - Permissions are limited to using the Software in "Development Environments", modifying it, and bundling it "with your own projects". - Among the conditions: "Not to use the Software in Production Environments"; "Not to disable, change, or interfere with the Software's License Key enforcement"; "Not to remove any copyright or other notices from the Software"; and **"Not to make the Software available under a license that supersedes or negates the effect of this License."** - Production use is reached only through the separate "Trial license" and "Commercial license" sections, each of which turns on a License Key issued by tldraw. - Both the warranty disclaimer and the liability limitation say "You must pass this \[…\] on whenever you distribute the Software or derivative works." **Carve-out.** Lattice is Apache-2.0, but the `tldraw`, `@tldraw/editor` and `@tldraw/driver` packages (and the parts of `@tldraw/assets` listed above) are licensed under the tldraw license, not Apache-2.0; `NOTICE` says so explicitly. Lattice does not relicense them, so the condition against making the Software "available under a license that supersedes or negates the effect of this License" is respected. The license key stays out of this repository: forks build tldraw in its unlicensed, watermarked mode, which does not interfere with key enforcement. (While Lattice was GPL-3.0, these restrictions conflicted with GPL-3.0 §7; that conflict ended with the relicense.) ### What this repository can and cannot verify about its own grant The board editor reads a license key from the `VITE_TLDRAW_LICENSE_KEY` environment variable at build time; the release workflow passes it from the `VITE_TLDRAW_LICENSE_KEY` repository secret. Builds without that key, including release builds when the secret is unset, run tldraw in its unlicensed, watermarked mode. **The specific grant the maintainer holds is not recorded anywhere in this repository** and needs confirming against whatever tldraw issued with the key. An earlier revision of this file asserted that Lattice "ships under a tldraw Hobby license key". That claim is withdrawn: the license text defines only Development, Trial and Commercial categories and never uses the word "Hobby". A "Hobby" tier exists on tldraw's pricing page as a free, application-gated offering, but its watermark and commercial-use conditions are not published in the legal text, so nothing here can state what they are. ## Lucide file glyphs (`src/components/ui/file-glyphs.ts`, `src/project/project-tree-css.ts`) The file and folder glyphs in the project tree, the workspace tabs and the pickers are adapted from [Lucide](https://lucide.dev) icons (ISC). Lucide's license and copyright notice are reproduced with the `lucide-react` package in the generated notices below. ## Fluid Functionalism and Lina (`src/components/ui/`) Several UI primitives are adapted from [Fluid Functionalism](https://github.com/mickadesign/fluid-functionalism) (MIT, Copyright (c) 2026 Micka Touillaud): `scroll-area.tsx`, `scroll-area.css`, `radio-group.tsx`, `switch.tsx`, `use-fluid-hover.ts`, `fluid-hover-highlight.tsx`, and the spring presets in `motion-values.ts`. Fluid Functionalism's scrollbar is itself adapted from [Lina](https://github.com/SameerJS6/lina) (MIT, Copyright (c) 2025 Sameer Singh), so `scroll-area.tsx` and `scroll-area.css` carry both notices. Each file's header names what it was adapted from; preserve those headers. Both projects use the same MIT text: MIT License Copyright (c) 2026 Micka Touillaud Copyright (c) 2025 Sameer Singh Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ## Open Slide `create-theme` skill (`src-tauri/src/embedded_skills/create-theme/SKILL.md`) The bundled agent skill for creating presentation themes is adapted from Open Slide's own `create-theme` skill (`packages/core/skills/create-theme/SKILL.md` in [open-slide/open-slide](https://github.com/open-slide/open-slide)). It keeps upstream's theme-specification layout (palette, typography, layout, fixed Title and Footer components, motion, aesthetic, example usage) and some of its example code, rewritten for Lattice projects. Open Slide is MIT licensed, Copyright (c) 2026 Yiwei Ho, under the same MIT text as the section above. The Open Slide runtime package itself is attributed in the generated Open Slide section below. ## Ioskeley Mono (`src/assets/fonts/ioskeley-mono/`) The editor and code face is [Ioskeley Mono](https://github.com/ahatem/IoskeleyMono) v2.0.0, Copyright (c) 2025 Ahmed Hatem, a custom build of [Iosevka](https://github.com/be5invis/Iosevka), Copyright (c) 2015-2026 Renzhi Li. Both are licensed under the SIL Open Font License 1.1, and neither declares a Reserved Font Name. Lattice bundles a subset of the `.woff2` files (see the header of `ioskeley-mono.css`); under the OFL a subset is a Modified Version, which may be bundled with any software provided the copyright notice and license travel with it. The subset's metadata keeps only the Iosevka copyright line and no license text, so the license ships separately: `src/assets/fonts/ioskeley-mono/OFL.txt` in the source tree, and [`public/licenses/ioskeley-mono-OFL.txt`](public/licenses/ioskeley-mono-OFL.txt) (both copyright lines plus the OFL), which Vite copies into the shipped application. ## Timeless type family (release builds only; not in this repository) Release builds set the interface and reading surfaces in the [Timeless](https://timeless.co) type family, Copyright 2026 Timeless Ventures Private Limited, Chennai, under the Timeless Free Font License 1.2. That license allows embedding the fonts in an application but forbids putting "the fonts", which it defines to include their documentation, on a public repository, so neither the fonts nor the license is here: the release job reads both from a private repository, the build embeds the unmodified WOFF2 files and the unmodified `LICENSE.pdf` in the app's web assets, and Settings › About › Acknowledgements opens that license. See `docs/design-system.md`, "Private interface fonts". ## Conference LaTeX templates (`src-tauri/templates/`) `iclr-2026/`, `icml-2026/`, `neurips-2026/`, `acl/`, `cvpr-2027/` and `aaai-2027/` bundle `.sty` and `.bst` files copied unchanged from the official conference packages, and the app copies them into new projects. Each directory's `UPSTREAM.md` records the source URL, fetch date and SHA-256 of every copied file. None of the six packages ships a separate license file. What the files themselves carry: - `iclr2026_conference.bst` and `icml2026.bst` derive from the natbib `plainnat` family and state that they "can be redistributed and/or modified under the terms of the LaTeX Project Public License" (version 1 or later; https://www.latex-project.org/lppl/), with copyright notices for Patrick W Daly (1993-2007) and Hal Daumé III (2010) and modification credits for J. Fürnkranz and, in the ICML file, Iain Murray. - `acl_natbib.bst` (Copyright 1994-2011 Patrick W Daly; urlbst modifications Copyright 2002–23 Norman Gray), `ieeenat_fullname.bst` (derived from `abbrvnat.bst`, Copyright 1993-2007 Patrick W Daly) and `aaai2027.bst` (generated from Patrick W Daly's `merlin.mbs`) carry the same LPPL grant, version 1 or later. - `iclr2026_conference.sty`, `icml2026.sty` and `neurips_2026.sty` carry author credits in their header comments (Hugo Larochelle and the NIPS style authors; the ICML program chairs listed in the file; Roman Garnett and the `nips15submit_e.sty` authors) but no license grant. - `acl.sty` (from the Association for Computational Linguistics' `acl-style-files`), `cvpr.sty` (from the CVPR author kit) and `aaai2027.sty` (from the AAAI-27 author kit, which warns that an AAAI paper may not modify it) carry no license grant either. All twelve files are shipped byte-for-byte, so every notice and credit in them reaches users intact. Do not edit or strip their header comments; the LPPL in particular requires a modified `.bst` to be renamed and its changes identified. The project keeps these templates bundled. The absence of a license grant on the six `.sty` files remains recorded in the [gaps](#known-attribution-gaps-todo) below. ## Chinese university thesis templates (`src-tauri/templates/thuthesis/`, `src-tauri/templates/ustcthesis/`) Both directories bundle files copied unchanged from the templates' official releases, and the app copies them into new projects. Each directory's `UPSTREAM.md` records the release, its SHA-256 and the SHA-256 of every copied file. - **ThuThesis** 7.7.1 (https://github.com/tuna/thuthesis, also on CTAN as `thuthesis`): `thuthesis.cls`, Copyright (C) 2005-2026 by Tsinghua University TUNA Association, and `thuthesis-numeric.bst` and `thuthesis-author-year.bst`, Copyright (C) 2016--2024 by Zeping Lee. All three may be distributed and/or modified under the LaTeX Project Public License, version 1.3c or later (https://www.latex-project.org/lppl.txt). The release also ships `thu-fig-logo.pdf` and `thu-text-logo.pdf`, which the class draws on undergraduate thesis covers. They carry the emblem and name of Tsinghua University, taken unmodified (apart from cropping) from the university's visual identity system; the ThuThesis README notes that they are registered trademarks of Tsinghua University, to be used only for this template. - **ustcthesis** 5.0.2 (https://github.com/ustctug/ustcthesis): `ustcthesis.cls`, Copyright (C) 2015-2026 by USTC TeX Users Group, and `ustcthesis-numeric.bst` and `ustcthesis-authoryear.bst`, Copyright (C) 2016-2026 by Zeping Lee, under the LaTeX Project Public License, version 1.3c or later; the repository is licensed LPPL 1.3c as a whole. The four PDFs under `figures/` (`ustc-logo.pdf`, `ustc-name.pdf`, `ustc-name-stxingkai.pdf`, `ustc-title-page-heading.pdf`) are the cover artwork the class draws at those fixed paths and carry the emblem and name of the University of Science and Technology of China. Every file ships byte-for-byte; the LPPL requires a modified file to be renamed and its changes identified, so do not edit them in place. ## Realtime TeX live preview renderer (`src/live-preview/`) The LuaLaTeX live preview draws rtex's display lists with code adapted from the [Realtime TeX VS Code plugin](https://github.com/HenryXiaoYang/realtime-tex-vsc-plugin) (`webview/render.ts`, `webview/model.ts`, `webview/opentype.d.ts`, `src/fontKey.ts`, `src/type1.ts`, `src/edits.ts`, `src/protocol.ts`, `src/resources.ts`). Each adapted file names its source in its header. MIT License Copyright (c) 2026 Henry Yang Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. The engine itself, [rtex (realtime-tex)](https://github.com/HenryXiaoYang/realtime-tex) 0.0.6, is not shipped with Lattice: turning the live preview on downloads its release archive (verified by SHA-256) into Lattice's Application Support folder, together with the archive's own `LICENSE`. It is licensed MIT, Copyright (c) 2026 Henry Yang and the realtime-tex contributors. ## Claude Agent SDK (bundled in the Synara sidecar) `scripts/prepare-synara-sidecar.mjs` installs the Synara server's production dependencies into `src-tauri/synara-runtime/server/node_modules/`, and `tauri.conf.json` bundles that directory whole. Two of the packages that land there are **proprietary**, and this is called out by hand rather than left in the generated list because it is the one closure finding that is not a formality: The versions below are the ones in the last generated Synara sidecar section; that section is authoritative when the pin moves. | Package | `license` field | `LICENSE.md`, in full | | --- | --- | --- | | `@anthropic-ai/claude-agent-sdk@0.3.259` | `SEE LICENSE IN README.md` | "© Anthropic PBC. All rights reserved. Use is subject to the Legal Agreements outlined here: https://code.claude.com/docs/en/legal-and-compliance." | | `@anthropic-ai/claude-agent-sdk-darwin-arm64@0.3.259` | `SEE LICENSE IN LICENSE.md` | same text | Two observations, both checkable against the staged tree: - **What ships is the SDK, not the CLI.** The platform package's `claude` executable is a 27-byte shim — `#!/bin/sh` / `exec claude "$@"` — written by the prepare script so that sessions run the user's own Claude Code installation. Anthropic's CLI binary is *not* redistributed. `pnpm build` enforces this through `CLAUDE_PATH_LAUNCHER_BUDGET_BYTES` in `scripts/app-size-report.mjs`. - **The JavaScript SDK itself is still redistributed.** Its JavaScript entry points (`sdk.mjs`, `bridge.mjs` and `browser-sdk.js`, each around a megabyte when this was last measured) are copied into the application bundle under an all-rights-reserved notice. Anthropic's published terms are the ones linked above; nothing in this repository records a grant to redistribute those files inside a third-party application. That question has to be answered before a public release: either confirm the redistribution grant with Anthropic, or stop bundling the SDK and resolve it from the user's environment the way the `claude` executable already is. The `SEE LICENSE IN README.md` field on the first package is also a dead reference — the README it names contains no license text at all — so the `LICENSE.md` quoted above is the only statement of terms in the artifact. ## tantivy and jieba-rs (paper full-text search, `src-tauri/src/papers/search_index.rs`) The Papers panel's full-text search and the agent's `search_library` tool run on [tantivy](https://github.com/quickwit-oss/tantivy) (`tantivy@0.27`, MIT), with Chinese word segmentation from [jieba-rs](https://github.com/messense/jieba-rs) (`jieba-rs@0.11`, MIT), which compiles in the word-frequency dictionary (`dict.txt`) of the original Python [jieba](https://github.com/fxsjy/jieba) project (MIT). tantivy's sub-crates (`tantivy-bitpacker`, `tantivy-columnar`, `tantivy-common`, `tantivy-query-grammar`, `tantivy-sstable`, `tantivy-stacker`, `tantivy-tokenizer-api`, `ownedbytes`) and `jieba-rs` publish no license file in their crate archives; the generated section reproduces the license each has in its repository, recovered by `pnpm notices --fetch-upstream`. The jieba dictionary is not a crate, so the generator never sees it. jieba-rs and the jieba dictionary are under these licenses, from their repositories: MIT License Copyright (c) 2018 - 2019 messense Copyright (c) 2019 Paul Meng Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. The MIT License (MIT) Copyright (c) 2013 Sun Junyi Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ## Font Awesome Free and VS Code Codicons icons (bundled in the Synara web client) The Synara web client staged into the sidecar (`synara-runtime/server/dist/client`) renders icons from [`react-icons`](https://github.com/react-icons/react-icons) 5.6.0, the version Synara's lockfile pins at the revision in `scripts/synara-runtime.json`. Two of the packs it imports carry icons under the [Creative Commons Attribution 4.0 International license](https://creativecommons.org/licenses/by/4.0/) (CC BY 4.0), which requires this attribution: - **Font Awesome Free 6.5.2** (`react-icons/fa6`), by Fonticons, Inc. (https://fontawesome.com). Copyright (c) 2024 Fonticons, Inc. The icons are licensed under CC BY 4.0, https://creativecommons.org/licenses/by/4.0/; the full Font Awesome Free license is at https://fontawesome.com/license/free. The font files Font Awesome also publishes under the SIL OFL 1.1 are not shipped. - **Codicons 0.0.35** (`react-icons/vsc`), the icon font of Visual Studio Code, by Microsoft Corporation (https://github.com/microsoft/vscode-codicons). Copyright (c) Microsoft Corporation. The icons are licensed under CC BY 4.0, https://creativecommons.org/licenses/by/4.0/legalcode. The Microsoft names, logos and trademarks are not licensed. Modifications: `react-icons` converts each icon's SVG path data into a React component. Neither icon set has been otherwise changed. The licensors provide the icons as-is and make no warranties; see section 5 of the license. ## Known attribution gaps (TODO) Everything below is **shipped in the app or the repository but is not yet properly attributed above**. This list exists so the gap is visible rather than silent. Appearing here does not by itself mean an item is a problem — for most of them it only means nobody has checked; a few (tldraw, the conference templates, the Claude Agent SDK, the Synara client's Central icons) are flagged because a real question was found. Remove an entry when it has been given a real section. Items that used to be on this list and are now covered by the generated section — the npm and crates.io closures, the Synara sidecar's `node_modules`, ExcelJS, `@pierre/trees` and `@pierre/diffs`, and the bulk of Univer — were removed rather than kept as reassurance. What remains is what a machine reading the installed packages cannot answer. - **Conference LaTeX template style files** (`src-tauri/templates/*/*.sty`). Attribution is now recorded in the [section above](#conference-latex-templates-src-tauritemplates): the files ship unmodified with every in-file credit, and the five `.bst` files carry an LPPL grant. What stays open is that the six `.sty` files (ICLR, ICML, NeurIPS, ACL, CVPR and AAAI) carry **no license grant at all**, so nothing on disk records permission to redistribute them. The project has chosen to keep them bundled; fetching them on demand or obtaining permission from the conference organisers would close this entry. (`tutorial/` is Lattice's own content, and the LPPL thesis templates are licensed; neither is affected.) - **The Synara web client bundle.** `generate-notices` scans the Synara sidecar's `node_modules`, but the prebuilt web client under `synara-runtime/server/dist/client` bundles its own third-party code, and none of that is attributed here yet. Known items, from an audit of Lattice 0.1.341 and the pinned Synara source (`scripts/synara-runtime.json`): - Synara's web app depends on `react-icons` (and `@tabler/icons-react`). At the pinned revision it imports eleven `react-icons` packs: `fa6`, `fi`, `go`, `hi2`, `io`, `lu`, `pi`, `ri`, `si`, `tb` and `vsc`. The two packs with **CC BY 4.0** icons, Font Awesome Free (`fa6`) and VS Code Codicons (`vsc`), are now attributed in the [section above](#font-awesome-free-and-vs-code-codicons-icons-bundled-in-the-synara-web-client). The rest are under the MIT, ISC, Apache-2.0 or CC0 licenses of their icon sets and still need their notices reproduced; the Simple Icons brand logos (`si`) are CC0 but remain their owners' trademarks. - The client ships raw SVGs from `apps/web/public/central-icons-fill/` and `central-icons-reversed/` ("Central icons", rendered by `apps/web/src/lib/central-icons.tsx`). The Synara repository records **no license or provenance** for them. If they are the commercial Central Icon System, redistributing the raw SVGs may not be permitted. This needs an answer from the Synara upstream. - Every other package compiled into the client bundle (rather than installed in `node_modules`) is likewise unattributed until the generator, or Synara's own build, emits a notices file for it. - **The Claude Agent SDK's redistribution grant.** See the section above. Attribution is now complete — the terms are quoted in full — but whether Lattice may redistribute proprietary, all-rights-reserved JavaScript inside its application is a question only Anthropic can close. - **tldraw's license grant** (`tldraw@5.2.5`). See the tldraw section above. Attribution and the Apache-2.0 carve-out are resolved: the verbatim license is vendored at `public/licenses/tldraw-LICENSE.md`, reaches the shipped binary, and `NOTICE` excludes the tldraw packages from the Apache License. Still open: which grant the project's `VITE_TLDRAW_LICENSE_KEY` corresponds to, which only tldraw can confirm. - **Packages that declare a license but ship no text, and found none upstream.** The generated "Unresolved attribution" sections list these, each with what `pnpm notices --fetch-upstream` found when it looked in the package's repository. Most packages that ship no text — nearly all of them crates whose published archive omits the `LICENSE` file at the root of their workspace — now have that file recovered from their repository, at the commit they were published from where one is recorded, and reproduced in the generated section: 115 in the npm and crates closures and 2 in the Open Slide runtime. The Synara sidecar section is carried over from a staging of an older pin, so it still lists five; four of those texts are already recovered in `licenses/upstream/` and leave the list when `pnpm prepare:synara` and `pnpm notices` next regenerate it. What remains has no license file in its repository at all: the SPDX identifier is known, but MIT, BSD and ISC require the *copyright notice* specifically, and nothing upstream states one. The packages that used to declare no license at all are resolved: `buffers@0.1.1` left the tree when ExcelJS's `unzipper` was moved to a release without it (a `pnpm.overrides` entry; ExcelJS's browser build, which is what Vite bundles, never contained it), `khroma@2.1.0` is no longer a dependency, and `@univerjs/telemetry@0.25.1` ships the Apache-2.0 license of the Univer repository, which the generator now records for it. - **`harper-core`'s dictionary data** (`src-tauri/Cargo.toml`). The crate itself is now attributed (Apache-2.0, though it ships no license text — see above). Its bundled dictionary and corpus data (`dictionary.dict`, `annotations.json`, the irregular-verb and proper-noun tables) may carry separate terms from the code; that has not been checked, and the generator only reads a crate's own license files. - **Phosphor Icons** (`src/animated-icons/bakai/*`). These components are hand-rebuilt from Phosphor glyphs (each file's header names the source glyph and weight, e.g. `Faders`, FILL weight). Phosphor Icons is MIT; the required copyright notice is not reproduced anywhere in this repository. Not a dependency, so not covered by the generator. - **The `@pierre/trees` patch** (`patches/@pierre__trees@1.0.0-beta.6.patch`). The package's own terms are now attributed (Apache-2.0). The patch is a modification, and Apache-2.0 §4(b) requires modified files to carry prominent notices of the change; whether the patch satisfies that has not been checked. - **Univer's commercial tier** (`@univerjs/*`). Every Univer package in the tree declares Apache-2.0 and is attributed in the generated section. Univer is also marketed with a commercial tier, so confirm that the Apache-2.0 packages Lattice actually depends on are the whole story and that no feature in use falls under separate terms. <!-- BEGIN GENERATED NOTICES — do not edit below this line --> # Generated third-party notices Everything below this line is produced by `node scripts/generate-notices.mjs` from the packages installed on disk. **Do not edit it by hand** — run `pnpm notices` instead. `pnpm notices:check` fails if it has drifted. Each closure lists its packages by declared license, then reproduces every distinct license text once, together with all the copyright notices that share it. Grouping is by license body with the copyright lines removed and whitespace normalised, so the hundreds of MIT packages that differ only in their copyright line collapse to one reproduction of the text plus every one of their notices. Wording variants — `MIT License` versus `(The MIT License)`, or different quote characters — stay in separate groups on purpose; each group reproduces one member's file verbatim. ## Copyleft, reciprocal and source-available dependencies — npm and crates Lattice ships under Apache-2.0. Everything below is a dependency whose terms are *not* plainly permissive, listed so the interaction with that license gets an answer rather than an assumption. A `dual` row offers a permissive alternative, which Lattice elects (Apache-2.0 where offered) and names in the row; a `non-spdx` row has a misleading `license` field but a permissive license in the file it points at. The Synara sidecar has its own findings block further down; it is kept separate because that closure only exists once `pnpm prepare:synara` has staged it. | Package | Closure | Declared | Finding | | --- | --- | --- | --- | | `@danfessler/trellis-react@0.2.0` | npm | `SEE LICENSE IN LICENSE.md` | source-available — non-SPDX license reference | | `@danfessler/trellis@0.2.0` | npm | `SEE LICENSE IN LICENSE.md` | source-available — non-SPDX license reference | | `@tldraw/assets@5.2.5` | npm | `SEE LICENSE IN LICENSE.md` | source-available — non-SPDX license reference | | `@tldraw/driver@5.2.5` | npm | `SEE LICENSE IN LICENSE.md` | source-available — non-SPDX license reference | | `@tldraw/editor@5.2.5` | npm | `SEE LICENSE IN LICENSE.md` | source-available — non-SPDX license reference | | `tldraw@5.2.5` | npm | `SEE LICENSE IN LICENSE.md` | source-available — non-SPDX license reference | | `colored@3.1.1` | crates | `MPL-2.0` | weak-copyleft — file-level copyleft | | `cssparser-macros@0.6.1` | crates | `MPL-2.0` | weak-copyleft — file-level copyleft | | `cssparser-macros@0.7.1` | crates | `MPL-2.0` | weak-copyleft — file-level copyleft | | `cssparser@0.36.0` | crates | `MPL-2.0` | weak-copyleft — file-level copyleft | | `cssparser@0.37.0` | crates | `MPL-2.0` | weak-copyleft — file-level copyleft | | `dtoa-short@0.3.5` | crates | `MPL-2.0` | weak-copyleft — file-level copyleft | | `option-ext@0.2.0` | crates | `MPL-2.0` | weak-copyleft — file-level copyleft | | `selectors@0.36.1` | crates | `MPL-2.0` | weak-copyleft — file-level copyleft | | `selectors@0.38.0` | crates | `MPL-2.0` | weak-copyleft — file-level copyleft | | `lightningcss@1.32.0` | npm | `MPL-2.0` | weak-copyleft — file-level copyleft | | `lightningcss@1.33.0` | npm | `MPL-2.0` | weak-copyleft — file-level copyleft | | `@fontsource-variable/inter@5.3.0` | npm | `OFL-1.1` | reciprocal — SIL OFL (reserved-name and bundling terms) | | `@fontsource/instrument-serif@5.3.0` | npm | `OFL-1.1` | reciprocal — SIL OFL (reserved-name and bundling terms) | | `htmlescape@0.3.1` | crates | `Apache-2.0 / MIT / MPL-2.0` | dual — file-level copyleft offered as one alternative; Lattice elects Apache-2.0 | | `r-efi@5.3.0` | crates | `MIT OR Apache-2.0 OR LGPL-2.1-or-later` | dual — LGPL offered as one alternative; Lattice elects Apache-2.0 | | `r-efi@6.0.0` | crates | `MIT OR Apache-2.0 OR LGPL-2.1-or-later` | dual — LGPL offered as one alternative; Lattice elects Apache-2.0 | | `jszip@3.10.1` | npm | `(MIT OR GPL-3.0-or-later)` | dual — GPL offered as one alternative; Lattice elects MIT | | `@tldraw/utils@5.2.5` | npm | `SEE LICENSE IN LICENSE.md` | non-spdx — non-SPDX `license` field; the file it points at is a permissive license | | `@tldraw/validate@5.2.5` | npm | `SEE LICENSE IN LICENSE.md` | non-spdx — non-SPDX `license` field; the file it points at is a permissive license | ### Vendored license texts Some packages point at a license they do not actually ship. The text is vendored into this repository so that it is distributed with both the source and the binary (`public/` is copied into `dist/`, which `tauri.conf.json` embeds via `frontendDist`). It is reproduced below like any other notice. - [`public/licenses/tldraw-LICENSE.md`](public/licenses/tldraw-LICENSE.md) — for `@tldraw/assets@5.2.5`, `@tldraw/driver@5.2.5`, `@tldraw/editor@5.2.5`, `tldraw@5.2.5`, because the published package ships a 104-byte LICENSE.md containing only a link, while the license it links to requires "a verbatim copy of this License in any distribution of the Software". ## Unresolved attribution — npm and crates These are the packages this generator could **not** attribute from what is installed on disk. They are listed rather than omitted: an unattributed dependency in a shipped binary is a gap, not a rounding error. ### Declared a license but shipped no license text (9) The SPDX identifier is known, but the package contains no `LICENSE`, `COPYING` or `NOTICE` file, so the copyright line those licenses require us to reproduce is not available from the artifact we distribute. Where `pnpm notices --fetch-upstream` looked for the text in the package's repository and found none, the line says what it found instead. - `block@0.1.6` (crates) — declared `MIT` — upstream: https://github.com/SSheldon/rust-block has no license file on the path to `/`, at the release or on its default branch - `htmlescape@0.3.1` (crates) — declared `Apache-2.0 / MIT / MPL-2.0` — upstream: https://github.com/veddan/rust-htmlescape has no license file on the path to `/` of its default branch, and no commit or tag identifies the release - `r-efi@5.3.0` (crates) — declared `MIT OR Apache-2.0 OR LGPL-2.1-or-later` — upstream: https://github.com/r-efi/r-efi has no license file on the path to `/`, at the release or on its default branch - `r-efi@6.0.0` (crates) — declared `MIT OR Apache-2.0 OR LGPL-2.1-or-later` — upstream: https://github.com/r-efi/r-efi has no license file on the path to `/`, at the release or on its default branch - `selectors@0.36.1` (crates) — declared `MPL-2.0` — upstream: https://github.com/servo/stylo has no license file on the path to `selectors`, at the release or on its default branch - `selectors@0.38.0` (crates) — declared `MPL-2.0` — upstream: https://github.com/servo/stylo has no license file on the path to `selectors`, at the release or on its default branch - `ot-json1@1.0.2` (npm) — declared `ISC` — upstream: https://github.com/josephg/json1 has no license file on the path to `/` of its default branch, and no commit or tag identifies the release - `ot-text-unicode@4.0.0` (npm) — declared `ISC` — upstream: https://github.com/ottypes/text has no license file on the path to `/` of its default branch, and no commit or tag identifies the release - `unicount@1.1.0` (npm) — declared `ISC` — upstream: https://github.com/josephg/unicount has no license file on the path to `/`, at the release or on its default branch ## License texts recovered from upstream — npm and crates (115) These packages declare a license but their published artifact omits the text — usually a crate in a workspace whose LICENSE sits at the repository root, which `cargo package` does not include. The verbatim file was taken from the package's Git repository at the commit it was published from and is kept in `licenses/upstream/`; it is reproduced in the license texts below like any other notice. An entry marked *default branch* was taken from the repository's current default branch instead, because no commit or tag identifies the release or the release commit had no license file; the `source.json` beside the file says which. - `alloc-stdlib@0.2.4` — [`LICENSE`](https://github.com/dropbox/rust-alloc-no-stdlib/blob/ae42d22078b98549e987d2f03d12df7b984fde47/LICENSE) at `ae42d22078b9` - `block2@0.6.2` — [`LICENSE.md`](https://github.com/madsmtm/objc2/blob/b4167b582b2f75f9a1be75495c41b765344fd03c/LICENSE.md) at `b4167b582b2f` - `burn-cubecl-fusion@0.19.1` — [`LICENSE-APACHE`](https://github.com/tracel-ai/burn/blob/a6da424feacf6d82d6a0e81db197310796267c2b/LICENSE-APACHE), [`LICENSE-MIT`](https://github.com/tracel-ai/burn/blob/a6da424feacf6d82d6a0e81db197310796267c2b/LICENSE-MIT) at `a6da424feacf` - `burn-cuda@0.19.1` — [`LICENSE-APACHE`](https://github.com/tracel-ai/burn/blob/a6da424feacf6d82d6a0e81db197310796267c2b/LICENSE-APACHE), [`LICENSE-MIT`](https://github.com/tracel-ai/burn/blob/a6da424feacf6d82d6a0e81db197310796267c2b/LICENSE-MIT) at `a6da424feacf` - `burn-ir@0.19.1` — [`LICENSE-APACHE`](https://github.com/tracel-ai/burn/blob/a6da424feacf6d82d6a0e81db197310796267c2b/LICENSE-APACHE), [`LICENSE-MIT`](https://github.com/tracel-ai/burn/blob/a6da424feacf6d82d6a0e81db197310796267c2b/LICENSE-MIT) at `a6da424feacf` - `burn-nn@0.19.1` — [`LICENSE-APACHE`](https://github.com/tracel-ai/burn/blob/a6da424feacf6d82d6a0e81db197310796267c2b/LICENSE-APACHE), [`LICENSE-MIT`](https://github.com/tracel-ai/burn/blob/a6da424feacf6d82d6a0e81db197310796267c2b/LICENSE-MIT) at `a6da424feacf` - `burn-optim@0.19.1` — [`LICENSE-APACHE`](https://github.com/tracel-ai/burn/blob/a6da424feacf6d82d6a0e81db197310796267c2b/LICENSE-APACHE), [`LICENSE-MIT`](https://github.com/tracel-ai/burn/blob/a6da424feacf6d82d6a0e81db197310796267c2b/LICENSE-MIT) at `a6da424feacf` - `burn-rocm@0.19.1` — [`LICENSE-APACHE`](https://github.com/tracel-ai/burn/blob/a6da424feacf6d82d6a0e81db197310796267c2b/LICENSE-APACHE), [`LICENSE-MIT`](https://github.com/tracel-ai/burn/blob/a6da424feacf6d82d6a0e81db197310796267c2b/LICENSE-MIT) at `a6da424feacf` - `burn-router@0.19.1` — [`LICENSE-APACHE`](https://github.com/tracel-ai/burn/blob/a6da424feacf6d82d6a0e81db197310796267c2b/LICENSE-APACHE), [`LICENSE-MIT`](https://github.com/tracel-ai/burn/blob/a6da424feacf6d82d6a0e81db197310796267c2b/LICENSE-MIT) at `a6da424feacf` - `burn-store@0.19.1` — [`LICENSE-APACHE`](https://github.com/tracel-ai/burn/blob/a6da424feacf6d82d6a0e81db197310796267c2b/LICENSE-APACHE), [`LICENSE-MIT`](https://github.com/tracel-ai/burn/blob/a6da424feacf6d82d6a0e81db197310796267c2b/LICENSE-MIT) at `a6da424feacf` - `clipboard-win@5.4.1` — [`LICENSE`](https://github.com/DoumanAsh/clipboard-win/blob/3b27cf2bfd1adcfa6e0264eb51c1025ddaf0f342/LICENSE) at `3b27cf2bfd1a` - `cubecl-convolution@0.8.1` — [`LICENSE-APACHE`](https://github.com/tracel-ai/cubecl/blob/0e2ba072b1ebba595d65a90804e616e1b799ef16/LICENSE-APACHE), [`LICENSE-MIT`](https://github.com/tracel-ai/cubecl/blob/0e2ba072b1ebba595d65a90804e616e1b799ef16/LICENSE-MIT), [`NOTICE.md`](https://github.com/tracel-ai/cubecl/blob/0e2ba072b1ebba595d65a90804e616e1b799ef16/NOTICE.md) at `0e2ba072b1eb` - `cubecl-cpp@0.8.1` — [`LICENSE-APACHE`](https://github.com/tracel-ai/cubecl/blob/0e2ba072b1ebba595d65a90804e616e1b799ef16/LICENSE-APACHE), [`LICENSE-MIT`](https://github.com/tracel-ai/cubecl/blob/0e2ba072b1ebba595d65a90804e616e1b799ef16/LICENSE-MIT), [`NOTICE.md`](https://github.com/tracel-ai/cubecl/blob/0e2ba072b1ebba595d65a90804e616e1b799ef16/NOTICE.md) at `0e2ba072b1eb` - `cubecl-hip-sys@7.14.6085000` — [`LICENSE-APACHE`](https://github.com/tracel-ai/cubecl-hip/blob/99b002ee9ac7907d3c6c6eb80fd3e5c91c237976/LICENSE-APACHE), [`LICENSE-MIT`](https://github.com/tracel-ai/cubecl-hip/blob/99b002ee9ac7907d3c6c6eb80fd3e5c91c237976/LICENSE-MIT) at `99b002ee9ac7` - `cubecl-matmul@0.8.1` — [`LICENSE-APACHE`](https://github.com/tracel-ai/cubecl/blob/0e2ba072b1ebba595d65a90804e616e1b799ef16/LICENSE-APACHE), [`LICENSE-MIT`](https://github.com/tracel-ai/cubecl/blob/0e2ba072b1ebba595d65a90804e616e1b799ef16/LICENSE-MIT), [`NOTICE.md`](https://github.com/tracel-ai/cubecl/blob/0e2ba072b1ebba595d65a90804e616e1b799ef16/NOTICE.md) at `0e2ba072b1eb` - `cubecl-opt@0.8.1` — [`LICENSE-APACHE`](https://github.com/tracel-ai/cubecl/blob/0e2ba072b1ebba595d65a90804e616e1b799ef16/LICENSE-APACHE), [`LICENSE-MIT`](https://github.com/tracel-ai/cubecl/blob/0e2ba072b1ebba595d65a90804e616e1b799ef16/LICENSE-MIT), [`NOTICE.md`](https://github.com/tracel-ai/cubecl/blob/0e2ba072b1ebba595d65a90804e616e1b799ef16/NOTICE.md) at `0e2ba072b1eb` - `cubecl-quant@0.8.1` — [`LICENSE-APACHE`](https://github.com/tracel-ai/cubecl/blob/0e2ba072b1ebba595d65a90804e616e1b799ef16/LICENSE-APACHE), [`LICENSE-MIT`](https://github.com/tracel-ai/cubecl/blob/0e2ba072b1ebba595d65a90804e616e1b799ef16/LICENSE-MIT), [`NOTICE.md`](https://github.com/tracel-ai/cubecl/blob/0e2ba072b1ebba595d65a90804e616e1b799ef16/NOTICE.md) at `0e2ba072b1eb` - `cubecl-random@0.8.1` — [`LICENSE-APACHE`](https://github.com/tracel-ai/cubecl/blob/0e2ba072b1ebba595d65a90804e616e1b799ef16/LICENSE-APACHE), [`LICENSE-MIT`](https://github.com/tracel-ai/cubecl/blob/0e2ba072b1ebba595d65a90804e616e1b799ef16/LICENSE-MIT), [`NOTICE.md`](https://github.com/tracel-ai/cubecl/blob/0e2ba072b1ebba595d65a90804e616e1b799ef16/NOTICE.md) at `0e2ba072b1eb` - `cubecl-reduce@0.8.1` — [`LICENSE-APACHE`](https://github.com/tracel-ai/cubecl/blob/0e2ba072b1ebba595d65a90804e616e1b799ef16/LICENSE-APACHE), [`LICENSE-MIT`](https://github.com/tracel-ai/cubecl/blob/0e2ba072b1ebba595d65a90804e616e1b799ef16/LICENSE-MIT), [`NOTICE.md`](https://github.com/tracel-ai/cubecl/blob/0e2ba072b1ebba595d65a90804e616e1b799ef16/NOTICE.md) at `0e2ba072b1eb` - `cubecl-std@0.8.1` — [`LICENSE-APACHE`](https://github.com/tracel-ai/cubecl/blob/0e2ba072b1ebba595d65a90804e616e1b799ef16/LICENSE-APACHE), [`LICENSE-MIT`](https://github.com/tracel-ai/cubecl/blob/0e2ba072b1ebba595d65a90804e616e1b799ef16/LICENSE-MIT), [`NOTICE.md`](https://github.com/tracel-ai/cubecl/blob/0e2ba072b1ebba595d65a90804e616e1b799ef16/NOTICE.md) at `0e2ba072b1eb` - `defmt-parser@1.0.0` — [`LICENSE-APACHE`](https://github.com/knurling-rs/defmt/blob/4a8cdb44891ed57b8ff5a023b6bec7137c48708f/LICENSE-APACHE), [`LICENSE-MIT`](https://github.com/knurling-rs/defmt/blob/4a8cdb44891ed57b8ff5a023b6bec7137c48708f/LICENSE-MIT) at `4a8cdb44891e` - `dispatch2@0.3.1` — [`LICENSE.md`](https://github.com/madsmtm/objc2/blob/8852b424193ca41602281b3d7540d7c8ed51e49a/LICENSE.md) at `8852b424193c` - `dlopen2_derive@0.4.3` — [`LICENSE`](https://github.com/OpenByteDev/dlopen2/blob/cc80e4a0a90d499b677fdf7743699b4b3a43a989/LICENSE) at `cc80e4a0a90d` - `dlopen2@0.8.2` — [`LICENSE`](https://github.com/OpenByteDev/dlopen2/blob/cc80e4a0a90d499b677fdf7743699b4b3a43a989/LICENSE) at `cc80e4a0a90d` - `embassy-futures@0.1.2` — [`LICENSE-APACHE`](https://github.com/embassy-rs/embassy/blob/3e8d8fec15286eb25b8bba7d103c8fc279544551/LICENSE-APACHE), [`LICENSE-CC-BY-SA`](https://github.com/embassy-rs/embassy/blob/3e8d8fec15286eb25b8bba7d103c8fc279544551/LICENSE-CC-BY-SA), [`LICENSE-MIT`](https://github.com/embassy-rs/embassy/blob/3e8d8fec15286eb25b8bba7d103c8fc279544551/LICENSE-MIT), [`NOTICE.md`](https://github.com/embassy-rs/embassy/blob/3e8d8fec15286eb25b8bba7d103c8fc279544551/NOTICE.md) at `3e8d8fec1528` - `embassy-time-driver@0.2.2` — [`LICENSE-APACHE`](https://github.com/embassy-rs/embassy/blob/50c6aac5b9b3b0af18f5a7d61725cc8e4d1f7acb/LICENSE-APACHE), [`LICENSE-CC-BY-SA`](https://github.com/embassy-rs/embassy/blob/50c6aac5b9b3b0af18f5a7d61725cc8e4d1f7acb/LICENSE-CC-BY-SA), [`LICENSE-MIT`](https://github.com/embassy-rs/embassy/blob/50c6aac5b9b3b0af18f5a7d61725cc8e4d1f7acb/LICENSE-MIT), [`NOTICE.md`](https://github.com/embassy-rs/embassy/blob/50c6aac5b9b3b0af18f5a7d61725cc8e4d1f7acb/NOTICE.md) at `50c6aac5b9b3` - `embassy-time@0.4.0` — [`LICENSE-APACHE`](https://github.com/embassy-rs/embassy/blob/cefdbfab2f1efb0797f661a9d8cc0aa686fe881a/LICENSE-APACHE), [`LICENSE-CC-BY-SA`](https://github.com/embassy-rs/embassy/blob/cefdbfab2f1efb0797f661a9d8cc0aa686fe881a/LICENSE-CC-BY-SA), [`LICENSE-MIT`](https://github.com/embassy-rs/embassy/blob/cefdbfab2f1efb0797f661a9d8cc0aa686fe881a/LICENSE-MIT), [`NOTICE.md`](https://github.com/embassy-rs/embassy/blob/cefdbfab2f1efb0797f661a9d8cc0aa686fe881a/NOTICE.md) at `cefdbfab2f1e` - `gl_generator@0.14.0` — [`LICENSE`](https://github.com/brendanzab/gl-rs/blob/ea503e8d5fb6d73c6030e6191ce738cd3bf3433e/LICENSE) at `ea503e8d5fb6` - `gpu-alloc-types@0.3.1` — [`COPYING`](https://github.com/zakarumych/gpu-alloc/blob/7ddd1fe576fcfc503347eb97e476a47581479f22/COPYING) at `7ddd1fe576fc` - `gpu-alloc@0.6.2` — [`COPYING`](https://github.com/zakarumych/gpu-alloc/blob/61020bdcb4eb04fca6bbf748aeb9570e859236e0/COPYING) at `61020bdcb4eb` - `gpu-descriptor-types@0.2.0` — [`COPYING`](https://github.com/zakarumych/gpu-descriptor/blob/9f2fb9546591322e7b77ee1e79385e01effd85e4/COPYING) at `9f2fb9546591` - `gpu-descriptor@0.3.2` — [`COPYING`](https://github.com/zakarumych/gpu-descriptor/blob/bb28b4e55b742e0ea3e7a0968e7ee6287ba0e06a/COPYING) at `bb28b4e55b74` - `harper-brill@2.7.0` — [`LICENSE`](https://github.com/automattic/harper/blob/dc1182cc2b33603748105df074d6bb47f0de3720/LICENSE) at `dc1182cc2b33` - `harper-core@2.7.0` — [`LICENSE`](https://github.com/automattic/harper/blob/dc1182cc2b33603748105df074d6bb47f0de3720/LICENSE) at `dc1182cc2b33` - `harper-pos-utils@2.7.0` — [`LICENSE`](https://github.com/automattic/harper/blob/dc1182cc2b33603748105df074d6bb47f0de3720/LICENSE) at `dc1182cc2b33` - `hexf-parse@0.2.1` — [`LICENSE`](https://github.com/lifthrasiir/hexf/blob/0e69bc4f63895feb51e9b738a8a2d4ec9398957b/LICENSE) — *default branch* - `include_dir_macros@0.7.4` — [`LICENSE`](https://github.com/Michael-F-Bryan/include_dir/blob/d742c6fffce99ee89da91b934e7ce6fb2a82680c/LICENSE) at `d742c6fffce9` - `include_dir@0.7.4` — [`LICENSE`](https://github.com/Michael-F-Bryan/include_dir/blob/d742c6fffce99ee89da91b934e7ce6fb2a82680c/LICENSE) at `d742c6fffce9` - `include-flate-codegen@0.3.4` — [`LICENSE`](https://github.com/SOF3/include-flate/blob/4118d8e5d30b81c678f889b492945c39c019f846/LICENSE) at `4118d8e5d30b` - `include-flate-compress@0.3.4` — [`LICENSE`](https://github.com/SOF3/include-flate/blob/4118d8e5d30b81c678f889b492945c39c019f846/LICENSE) at `4118d8e5d30b` - `jieba-macros@0.11.0` — [`LICENSE`](https://github.com/messense/jieba-rs/blob/3a0d75cf7455e2006330a5b4e94156da272cd7b9/LICENSE) at `3a0d75cf7455` - `jieba-rs@0.11.0` — [`LICENSE`](https://github.com/messense/jieba-rs/blob/3a0d75cf7455e2006330a5b4e94156da272cd7b9/LICENSE) at `3a0d75cf7455` - `jni-macros@0.22.4` — [`LICENSE-APACHE`](https://github.com/jni-rs/jni-rs/blob/33045a124105c939d1e2cbdcb5a39e5d868ffa03/LICENSE-APACHE), [`LICENSE-MIT`](https://github.com/jni-rs/jni-rs/blob/33045a124105c939d1e2cbdcb5a39e5d868ffa03/LICENSE-MIT) at `33045a124105` - `jni-sys-macros@0.4.1` — [`LICENSE-APACHE`](https://github.com/jni-rs/jni-sys/blob/64d77b7a5f119d7b55b4e2c169a4668067ff59e6/LICENSE-APACHE), [`LICENSE-MIT`](https://github.com/jni-rs/jni-sys/blob/64d77b7a5f119d7b55b4e2c169a4668067ff59e6/LICENSE-MIT) at `64d77b7a5f11` - `jni@0.22.4` — [`LICENSE-APACHE`](https://github.com/jni-rs/jni-rs/blob/5ae9458a4ec44c5318f37ddc7569c1d4ae8a69e7/LICENSE-APACHE), [`LICENSE-MIT`](https://github.com/jni-rs/jni-rs/blob/5ae9458a4ec44c5318f37ddc7569c1d4ae8a69e7/LICENSE-MIT) at `5ae9458a4ec4` - `khronos_api@3.1.0` — [`LICENSE`](https://github.com/brendanzab/gl-rs/blob/f150967b1c44ae888e6676f93f639ebc82771bdc/LICENSE) at `f150967b1c44` - `libappindicator-sys@0.9.0` — [`LICENSE-APACHE`](https://github.com/tauri-apps/libappindicator-rs/blob/eafd1e3682a1247f595410266091e9684021cb6f/LICENSE-APACHE), [`LICENSE-MIT`](https://github.com/tauri-apps/libappindicator-rs/blob/eafd1e3682a1247f595410266091e9684021cb6f/LICENSE-MIT) at `eafd1e3682a1` - `macerator-macros@0.1.5` — [`LICENSE`](https://github.com/wingertge/macerator/blob/74ff68d11f164d3da077d673a0c0747e71f0c085/LICENSE) at `74ff68d11f16` - `malloc_buf@0.0.6` — [`LICENSE`](https://github.com/SSheldon/malloc_buf/blob/d9a3e539642bd90e07df458d226b19cdfa606863/LICENSE) — *default branch* - `naga@26.0.0` — [`LICENSE.APACHE`](https://github.com/gfx-rs/wgpu/blob/03f1b535ca2356d4d490540e76480b0116cf7d7f/LICENSE.APACHE), [`LICENSE.MIT`](https://github.com/gfx-rs/wgpu/blob/03f1b535ca2356d4d490540e76480b0116cf7d7f/LICENSE.MIT) at `03f1b535ca23` - `ndk-sys@0.6.0+11769913` — [`LICENSE-APACHE`](https://github.com/rust-mobile/ndk/blob/49bbbba16c58ff63cb8a0ad0eca5a9fb7ecaec25/LICENSE-APACHE), [`LICENSE-MIT`](https://github.com/rust-mobile/ndk/blob/49bbbba16c58ff63cb8a0ad0eca5a9fb7ecaec25/LICENSE-MIT) at `49bbbba16c58` - `ndk@0.9.0` — [`LICENSE-APACHE`](https://github.com/rust-mobile/ndk/blob/49bbbba16c58ff63cb8a0ad0eca5a9fb7ecaec25/LICENSE-APACHE), [`LICENSE-MIT`](https://github.com/rust-mobile/ndk/blob/49bbbba16c58ff63cb8a0ad0eca5a9fb7ecaec25/LICENSE-MIT) at `49bbbba16c58` - `objc2-app-kit@0.3.2` — [`LICENSE.md`](https://github.com/madsmtm/objc2/blob/7b1abfd750a2cacaea71d6a56ecfb83cb7de560b/LICENSE.md) at `7b1abfd750a2` - `objc2-cloud-kit@0.3.2` — [`LICENSE.md`](https://github.com/madsmtm/objc2/blob/7b1abfd750a2cacaea71d6a56ecfb83cb7de560b/LICENSE.md) at `7b1abfd750a2` - `objc2-core-data@0.3.2` — [`LICENSE.md`](https://github.com/madsmtm/objc2/blob/7b1abfd750a2cacaea71d6a56ecfb83cb7de560b/LICENSE.md) at `7b1abfd750a2` - `objc2-core-foundation@0.3.2` — [`LICENSE.md`](https://github.com/madsmtm/objc2/blob/7b1abfd750a2cacaea71d6a56ecfb83cb7de560b/LICENSE.md) at `7b1abfd750a2` - `objc2-core-graphics@0.3.2` — [`LICENSE.md`](https://github.com/madsmtm/objc2/blob/7b1abfd750a2cacaea71d6a56ecfb83cb7de560b/LICENSE.md) at `7b1abfd750a2` - `objc2-core-image@0.3.2` — [`LICENSE.md`](https://github.com/madsmtm/objc2/blob/7b1abfd750a2cacaea71d6a56ecfb83cb7de560b/LICENSE.md) at `7b1abfd750a2` - `objc2-core-location@0.3.2` — [`LICENSE.md`](https://github.com/madsmtm/objc2/blob/7b1abfd750a2cacaea71d6a56ecfb83cb7de560b/LICENSE.md) at `7b1abfd750a2` - `objc2-core-text@0.3.2` — [`LICENSE.md`](https://github.com/madsmtm/objc2/blob/7b1abfd750a2cacaea71d6a56ecfb83cb7de560b/LICENSE.md) at `7b1abfd750a2` - `objc2-encode@4.1.0` — [`LICENSE.md`](https://github.com/madsmtm/objc2/blob/8d214f5477365ffcbcbb7de058c86ed9a518efb7/LICENSE.md) at `8d214f547736` - `objc2-exception-helper@0.1.1` — [`LICENSE.md`](https://github.com/madsmtm/objc2/blob/8d214f5477365ffcbcbb7de058c86ed9a518efb7/LICENSE.md) at `8d214f547736` - `objc2-foundation@0.3.2` — [`LICENSE.md`](https://github.com/madsmtm/objc2/blob/7b1abfd750a2cacaea71d6a56ecfb83cb7de560b/LICENSE.md) at `7b1abfd750a2` - `objc2-io-kit@0.3.2` — [`LICENSE.md`](https://github.com/madsmtm/objc2/blob/7b1abfd750a2cacaea71d6a56ecfb83cb7de560b/LICENSE.md) at `7b1abfd750a2` - `objc2-io-surface@0.3.2` — [`LICENSE.md`](https://github.com/madsmtm/objc2/blob/7b1abfd750a2cacaea71d6a56ecfb83cb7de560b/LICENSE.md) at `7b1abfd750a2` - `objc2-osa-kit@0.3.2` — [`LICENSE.md`](https://github.com/madsmtm/objc2/blob/7b1abfd750a2cacaea71d6a56ecfb83cb7de560b/LICENSE.md) at `7b1abfd750a2` - `objc2-quartz-core@0.3.2` — [`LICENSE.md`](https://github.com/madsmtm/objc2/blob/7b1abfd750a2cacaea71d6a56ecfb83cb7de560b/LICENSE.md) at `7b1abfd750a2` - `objc2-ui-kit@0.3.2` — [`LICENSE.md`](https://github.com/madsmtm/objc2/blob/7b1abfd750a2cacaea71d6a56ecfb83cb7de560b/LICENSE.md) at `7b1abfd750a2` - `objc2-user-notifications@0.3.2` — [`LICENSE.md`](https://github.com/madsmtm/objc2/blob/7b1abfd750a2cacaea71d6a56ecfb83cb7de560b/LICENSE.md) at `7b1abfd750a2` - `objc2-web-kit@0.3.2` — [`LICENSE.md`](https://github.com/madsmtm/objc2/blob/7b1abfd750a2cacaea71d6a56ecfb83cb7de560b/LICENSE.md) at `7b1abfd750a2` - `objc2@0.6.4` — [`LICENSE.md`](https://github.com/madsmtm/objc2/blob/8852b424193ca41602281b3d7540d7c8ed51e49a/LICENSE.md) at `8852b424193c` - `ownedbytes@0.9.0` — [`LICENSE`](https://github.com/quickwit-oss/tantivy/blob/c6e77d27c605cb3cea1a933fa7d68632aeb7865e/LICENSE) at `c6e77d27c605` - `profiling@1.0.18` — [`LICENSE-APACHE`](https://github.com/aclysma/profiling/blob/8271551172eb6fa4cba47369aedd93790c623df9/LICENSE-APACHE), [`LICENSE-MIT`](https://github.com/aclysma/profiling/blob/8271551172eb6fa4cba47369aedd93790c623df9/LICENSE-MIT) at `8271551172eb` - `pulp-wasm-simd-flag@0.1.1` — [`LICENSE`](https://github.com/sarah-quinones/pulp/blob/5eb07fd7b68edf0a5e19f71737d315f72a510295/LICENSE) at `5eb07fd7b68e` - `rsqlite-vfs@0.1.1` — [`LICENSE`](https://github.com/Spxg/sqlite-wasm-rs/blob/1bb309784f25c401ddf95131dcde4c4cdad7aee7/LICENSE) at `1bb309784f25` - `rustls-platform-verifier-android@0.1.1` — [`LICENSE-APACHE`](https://github.com/rustls/rustls-platform-verifier/blob/8becdc1beaee80afee396a8c769d42fe9bd9cb4e/LICENSE-APACHE), [`LICENSE-MIT`](https://github.com/rustls/rustls-platform-verifier/blob/8becdc1beaee80afee396a8c769d42fe9bd9cb4e/LICENSE-MIT) — *default branch* - `spirv@0.3.0+sdk-1.3.268.0` — [`LICENSE`](https://github.com/gfx-rs/rspirv/blob/e91a5debc10c395b36db7721dfff6326d697a1e2/LICENSE) at `e91a5debc10c` - `tantivy-bitpacker@0.27.0` — [`LICENSE`](https://github.com/quickwit-oss/tantivy/blob/50ac63df66084b8f77bfd067b81b5b8076b8a905/LICENSE) at `50ac63df6608` - `tantivy-columnar@0.27.0` — [`LICENSE`](https://github.com/quickwit-oss/tantivy/blob/67889269cae67063c372bc236b102d632a021568/LICENSE) at `67889269cae6` - `tantivy-common@0.27.0` — [`LICENSE`](https://github.com/quickwit-oss/tantivy/blob/50ac63df66084b8f77bfd067b81b5b8076b8a905/LICENSE) at `50ac63df6608` - `tantivy-query-grammar@0.27.0` — [`LICENSE`](https://github.com/quickwit-oss/tantivy/blob/50ac63df66084b8f77bfd067b81b5b8076b8a905/LICENSE) at `50ac63df6608`