test / unit + widget + golden + a11y (push) Failing after 31s
test / integration_test (xvfb) (push) Has been skipped
test / bundle smoke (xvfb 5s) (push) Has been skipped
test / daemon subprocess + web WASM smoke (push) Has been skipped
test / dart doc (lib API) (push) Failing after 1m1s
The test was awaiting services.commands.execute('theme.pick') whose
Future doesn't complete until the dialog is dismissed — deadlock.
Fire-and-forget around pumpAndSettle, then tap Cancel, then await
the original future. Also tear the widget tree down before
services.dispose() so listening widgets unsubscribe first.
Pre-existing layout overflow in the welcome _StatusLine surfaced
when running the test at narrower viewports. Switched to a whole-
row FittedBox(scaleDown) — uniform shrink on narrow screens, no-op
at standard widths.
User flagged the hardcoded 'clide 2.0.0-dev' string. Replaced with
one generated lib/src/build_info.g.dart (gitignored, regenerated
by `make gen-build-info` from pubspec.yaml + git short SHA + UTC
clock). The same target re-syncs assets/licenses.yaml self.version
in place — no second source. Every make build/run/test depends on
it implicitly. Welcome status line now reads `clideVersion`. Stale
fontSize literals in welcome_view swept to typography constants;
clideFontMeta=13, clideFontDialogTitle=16, clideFontWelcomeBanner=52
added to fill gaps in the scale.
Co-Authored-By: Claude <noreply@anthropic.com>
230 lines
8.5 KiB
YAML
230 lines
8.5 KiB
YAML
# clide — licensing manifest.
|
|
#
|
|
# Three sections:
|
|
# - `self:` — clide's own license (MIT). Rendered first in the About
|
|
# screen so the user knows what they're running before they see
|
|
# the list of things it depends on.
|
|
# - `dependencies:` — third-party artefacts that SHIP in the clide
|
|
# binary: fonts, runtime Dart packages, native supporter tools,
|
|
# bundled data. The About screen renders these verbatim.
|
|
# - `dev_dependencies:` — build-time-only tooling: test runners,
|
|
# mocks, lints, golden-test harness. These never enter the shipped
|
|
# binary, so the About screen does not render them, but they're
|
|
# tracked here for audit completeness alongside the real list.
|
|
#
|
|
# Adding a new runtime dependency is a two-step commit:
|
|
# 1. Add the dependency itself (font file, `pubspec.yaml` entry, etc.)
|
|
# 2. Add the entry under `dependencies:` below in the same commit, so
|
|
# the About screen stays accurate and the prefer-zero-deps
|
|
# guardrail is enforced by the obvious visible consequence: an
|
|
# extra row in the list.
|
|
#
|
|
# Adding a new dev-only dependency is the same two-step commit, just
|
|
# under `dev_dependencies:` instead. The guardrail still applies —
|
|
# dev deps are supply-chain risk too — but they don't pollute the
|
|
# user-facing About screen.
|
|
#
|
|
# See CLAUDE.md "Dependencies & supply chain" for the full rule, and
|
|
# `decisions/tooling.md` for the D-record that pins it.
|
|
|
|
schema_version: 1
|
|
|
|
# clide itself. Listed first so the About screen can render "You're
|
|
# looking at clide vX, MIT-licensed" at the top of the panel before
|
|
# the bundled-dependency list underneath. The root LICENSE is the
|
|
# authoritative copy; `app/assets/LICENSE` is a mirror bundled so the
|
|
# About screen can read it at runtime.
|
|
self:
|
|
name: clide
|
|
# Auto-synced from pubspec.yaml `version:` by `make gen-build-info`
|
|
# (runs implicitly on every build/run/test). Don't hand-edit; bump
|
|
# pubspec instead.
|
|
version: "2.1.0"
|
|
homepage: https://github.com/postmeridiem/clide
|
|
license: MIT
|
|
license_file: assets/LICENSE
|
|
copyright: "© 2026 Jeroen Schweitzer"
|
|
|
|
# Runtime dependencies — ship in the clide binary.
|
|
dependencies:
|
|
- name: JetBrains Mono
|
|
kind: font
|
|
version: "2.304"
|
|
homepage: https://github.com/JetBrains/JetBrainsMono
|
|
license: OFL-1.1
|
|
license_file: assets/fonts/jetbrains_mono/OFL.txt
|
|
purpose: >-
|
|
Monospace face for terminal panes, diff views, code editors, and
|
|
any other monospace surface.
|
|
weights_bundled: [Regular, Italic, Bold, BoldItalic]
|
|
|
|
- name: Josefin Sans
|
|
kind: font
|
|
version: "variable"
|
|
homepage: https://fonts.google.com/specimen/Josefin+Sans
|
|
license: OFL-1.1
|
|
license_file: assets/fonts/josefin_sans/OFL.txt
|
|
purpose: >-
|
|
Application UI face. Default weight Light (300); full 100-700
|
|
range available via the variable-font weight axis.
|
|
weights_bundled: [VariableFont, Italic-VariableFont]
|
|
|
|
- name: Phosphor Icons
|
|
kind: font
|
|
version: "2.0.8"
|
|
homepage: https://phosphoricons.com
|
|
license: MIT
|
|
license_file: assets/fonts/phosphor/LICENSE
|
|
purpose: >-
|
|
Icon font for UI glyphs throughout the IDE — sidebar sections,
|
|
context panel, toolbar, and editor chrome. Regular, Bold, and
|
|
Fill weights bundled.
|
|
weights_bundled: [Regular, Bold, Fill]
|
|
|
|
- name: yaml
|
|
kind: dart-package
|
|
version: "3.1.3"
|
|
homepage: https://pub.dev/packages/yaml
|
|
license: MIT
|
|
purpose: >-
|
|
YAML parser for theme files and extension manifests. Justified
|
|
exception to prefer-zero-deps; Dart-team maintained.
|
|
|
|
- name: terminal (based on xterm.dart)
|
|
kind: inlined-source
|
|
version: "4.0.0"
|
|
homepage: https://github.com/TerminalStudio/xterm.dart
|
|
license: MIT
|
|
license_file: lib/src/terminal/LICENSE
|
|
purpose: >-
|
|
Terminal emulator (ANSI / xterm / truecolor parser + renderer).
|
|
Inlined from xterm.dart v4.0.0 by xuty (MIT) and modified:
|
|
Scrollable removed, quiver dependency replaced, zmodem/debugger
|
|
stripped, scroll forwarding rewritten. Original copyright and
|
|
MIT license preserved in lib/src/terminal/LICENSE.
|
|
|
|
- name: ffi
|
|
kind: dart-package
|
|
version: "2.1.3"
|
|
homepage: https://pub.dev/packages/ffi
|
|
license: BSD-3-Clause
|
|
purpose: >-
|
|
Allocator (`calloc`) and type helpers on top of dart:ffi. Used by
|
|
the core PTY wrapper for libc bindings (socketpair, recvmsg with
|
|
SCM_RIGHTS, ioctl). Dart-team maintained; zero transitive deps.
|
|
|
|
- name: dugite-native (Git)
|
|
kind: native-binary
|
|
version: "2.53.0"
|
|
homepage: https://github.com/desktop/dugite-native
|
|
license: GPL-2.0 (Git), MIT (dugite-native build scripts)
|
|
purpose: >-
|
|
Self-contained, relocatable Git distribution for macOS/Linux/Windows.
|
|
Bundled so clide can run git inside the macOS app sandbox without
|
|
depending on Homebrew or Xcode Command Line Tools. Same approach
|
|
used by GitHub Desktop and Tower. Binary not committed — downloaded
|
|
at build time via `make dugite-fetch`.
|
|
|
|
- name: tree-sitter
|
|
kind: native-shared-lib
|
|
version: "0.26.8"
|
|
homepage: https://github.com/tree-sitter/tree-sitter
|
|
license: MIT
|
|
purpose: >-
|
|
Incremental parsing library with embedded WASM grammar engine.
|
|
Vendored as libtree-sitter.so (wasmtime statically linked) in
|
|
app/native/. Called via dart:ffi. Loads grammar .wasm files
|
|
through its built-in WASM store API.
|
|
|
|
- name: wasmtime
|
|
kind: native-static-lib
|
|
version: "44.0.0"
|
|
homepage: https://github.com/bytecodealliance/wasmtime
|
|
license: Apache-2.0 with LLVM exception
|
|
license_file: native/linux-x64/WASMTIME-LICENSE
|
|
purpose: >-
|
|
WebAssembly runtime. Statically linked into libtree-sitter.so to
|
|
provide grammar WASM loading. Not called directly — tree-sitter's
|
|
C API wraps it.
|
|
|
|
- name: tree-sitter grammars
|
|
kind: wasm-assets
|
|
version: various
|
|
homepage: https://github.com/tree-sitter
|
|
license: MIT (most); Apache-2.0 (elixir, erlang, hcl, just)
|
|
purpose: >-
|
|
Language parsers for syntax highlighting. 47 grammars compiled to
|
|
WASM via wasi-sdk, loaded at runtime by tree-sitter's embedded
|
|
wasmtime engine. Source repos are tree-sitter/tree-sitter-<lang>
|
|
on GitHub; sqlite is dhcmrlchtdj/tree-sitter-sqlite (MIT).
|
|
|
|
- name: jovial_svg
|
|
kind: dart-package
|
|
version: "1.1.26"
|
|
homepage: https://pub.dev/packages/jovial_svg
|
|
license: BSD-3-Clause
|
|
purpose: >-
|
|
SVG renderer. CustomPaint-based — parses SVG at runtime into
|
|
a DAG of drawing commands and renders via Canvas. Used for
|
|
workspace SVG files and the app icon. Format engine, not UI
|
|
chrome.
|
|
|
|
- name: markdown
|
|
kind: dart-package
|
|
version: "7.2.2"
|
|
homepage: https://pub.dev/packages/markdown
|
|
license: BSD-3-Clause
|
|
purpose: >-
|
|
Markdown parser (AST only). Parses GFM (tables, task lists,
|
|
fenced code blocks) into a node tree. Clide owns the renderer
|
|
— walks the AST to produce Flutter widgets with tree-sitter
|
|
syntax highlighting in code blocks.
|
|
|
|
- name: flutter_widget_from_html_core
|
|
kind: dart-package
|
|
version: "0.17.2"
|
|
homepage: https://pub.dev/packages/flutter_widget_from_html_core
|
|
license: MIT
|
|
purpose: >-
|
|
HTML-to-widget renderer. Parses HTML into Flutter widgets
|
|
with no JavaScript execution. Used for rendering HTML content
|
|
in the viewer. Sandboxed — tag/attribute whitelist enforced
|
|
at usage site.
|
|
|
|
# Build-time-only dependencies — test runners, mocks, lints. Tracked
|
|
# here for audit completeness; NOT rendered in the About screen.
|
|
dev_dependencies:
|
|
- name: mocktail
|
|
kind: dart-package
|
|
version: "1.0.4"
|
|
homepage: https://pub.dev/packages/mocktail
|
|
license: MIT
|
|
purpose: >-
|
|
Mocks at IO / IPC boundaries. ChangeNotifier facades use
|
|
hand-rolled fakes instead of mocks (D-025).
|
|
|
|
- name: alchemist
|
|
kind: dart-package
|
|
version: "0.12.1"
|
|
homepage: https://pub.dev/packages/alchemist
|
|
license: MIT
|
|
purpose: >-
|
|
Golden-test framework; Ahem-font rendering for cross-platform
|
|
pixel stability on widget primitives (D-024).
|
|
|
|
- name: flutter_lints
|
|
kind: dart-package
|
|
version: "6.0.0"
|
|
homepage: https://pub.dev/packages/flutter_lints
|
|
license: BSD-3-Clause
|
|
purpose: Flutter-team-recommended analyzer lint set (app/).
|
|
|
|
- name: test
|
|
kind: dart-package
|
|
version: "1.30.0"
|
|
homepage: https://pub.dev/packages/test
|
|
license: BSD-3-Clause
|
|
purpose: >-
|
|
Dart test runner for the Flutter-free PTY tests under
|
|
`dart test --tags forkpty` (flutter_test is used elsewhere).
|