Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
119 commits
Select commit Hold shift + click to select a range
3b0023b
Linux Changes
batunii May 31, 2026
c9d126a
Now we can patch the HTML and YAML directly instead of rewriting it.
batunii May 31, 2026
4984dd8
Linux Editing Works
batunii Jun 1, 2026
d53034a
More patches
batunii Jun 1, 2026
e080f0b
Documentation correctness
batunii Jun 1, 2026
e3eff16
Enforcing went too far
batunii Jun 1, 2026
4672294
This is version 0.12, this should make it less strict
batunii Jun 1, 2026
d956cc7
This is version 0.13
batunii Jun 1, 2026
9d395d4
Edited Logo and made a test suite
Jun 2, 2026
7a91fb8
Updated License
batunii Jun 2, 2026
72b39b5
Clean up repo, reorganize structure, add MPL 2.0 headers
Jun 3, 2026
1333181
Add CLAN mark logo to README, fix stale doc links
Jun 3, 2026
2912af9
Add full logo lockup SVGs (dark + light), use in README with picture tag
Jun 3, 2026
7c97443
Made changes to work with Windows
batunii Jun 3, 2026
bc7a271
Merge pull request #3 from saieeshward/feature/WindowsCheck
saieeshward Jun 3, 2026
8798501
Fix column replication bug in CLAN Viewer
Jun 3, 2026
bacfd95
Merge branch 'itsClobberingTime' into fix/column-replication
saieeshward Jun 3, 2026
4982dad
Merge pull request #4 from saieeshward/fix/column-replication
saieeshward Jun 3, 2026
383549f
Fix column replication bug in CLAN Viewer
Jun 3, 2026
ef2f9f4
Fix edit mode highlight toggle and persist edits across sessions
Jun 3, 2026
8a5b747
Add TODO.md
Jun 3, 2026
6c7b0ad
Revise TODO.md with completed tasks and new items
batunii Jun 4, 2026
1f4efe4
chore: packaging cleanups (#7, #8, #18, #32, #33)
Jun 8, 2026
d7c7a3e
chore: crate metadata + repo templates (#26, #28, #36, #37, #38)
Jun 8, 2026
486e095
fix+docs: version, sanitizer, perf, crate docs (#13, #16, #17, #27, #35)
Jun 8, 2026
c0ca81b
perf(sdk): central-directory has_entry + single-pass read_all_entries…
Jun 10, 2026
90cd723
fix(sdk): patch_decision skips validation, single-build handoff, loud…
Jun 10, 2026
9dcd1c6
fix(app): single save per edit, single file read, faster HTML passes …
Jun 10, 2026
fe1b91d
feat(cli): clan create accepts --output; positional form deprecated (…
Jun 10, 2026
1a028db
feat(sdk): token-lean agent context injection (#23, #24, #25)
Jun 10, 2026
973998d
docs: tick off completed TODO items (bug, perf, and token-optimisatio…
Jun 10, 2026
cd62efe
test: adversarial hardening of #20/#23/#24/#25 + behavior-equivalence…
Jun 10, 2026
ff86c6d
feat(cli): ASCII art welcome banner on first run (#31)
Jun 10, 2026
c380075
feat(sdk,cli): fork/join concurrency, deferred rendering, teachable i…
batunii Jun 10, 2026
ad83021
docs(spec): v1.1 — agent-only flow, fork/join, conflict adjudication,…
batunii Jun 10, 2026
889ba41
docs: research pass 13 (agent flow, concurrency, tokens) + v1.1 TODO
batunii Jun 10, 2026
5295662
chore: v1.1.0 - version bump + docs/metadata correctness audit
batunii Jun 10, 2026
9be42ca
research: 10-flow multi-agent benchmark - CLAN vs ad-hoc, +/- human i…
batunii Jun 10, 2026
3f2a7f6
research: flow-11 metamorphosis benchmark - Brief -> Concept Deck -> …
batunii Jun 10, 2026
0d3f356
fix(sdk,cli): resolve benchmark findings F1-F3, F5-F12 (research/14)
batunii Jun 11, 2026
80b068e
fix(app): F4 — strip edit-bridge instrumentation + skip no-op patch s…
batunii Jun 11, 2026
5005d61
docs: v1.1 finding fixes — spec (view.source, merge suggestion, patch…
batunii Jun 11, 2026
c6fcfe9
test(app): verify F4 no-op save guard; serialize SAVE_COUNT tests
batunii Jun 11, 2026
c78506c
docs: mark F4 verified — clan-app builds (VS Build Tools reinstalled)
batunii Jun 11, 2026
20db896
test(sdk,cli): v2 edge-case suite — 20 new multi-agent tests (142 → 162)
batunii Jun 11, 2026
cad0374
docs(benchmark): patch HTML view with v2 test suite section
batunii Jun 11, 2026
ce01c37
bench(happy-path): LITE H1+H2 results appended to benchmark clan
batunii Jun 11, 2026
db45778
docs(bench): LITE F13-F15 backlog, research/15 plan, viewer-extensibi…
batunii Jun 11, 2026
7a44964
feat(sdk,cli): F13/F14 + F15(patch-data) — inline JSON, --set, --appe…
batunii Jun 11, 2026
880142c
feat(sdk,cli): F15(patch-html) — required attribution on view changes
batunii Jun 11, 2026
44bedd7
feat(sdk,cli): F15(patch-asset) — attributed asset writes; mark F13/F…
batunii Jun 11, 2026
98279fd
Test Book Updated
batunii Jun 11, 2026
8f44196
feat(sdk,cli): columnar TOON, F16 patch-html fixes, uniform-guide corpus
batunii Jun 11, 2026
78988ce
test(bench): heavy H1/H2 run artifacts (2026-06-11-H baseline)
batunii Jun 11, 2026
34c5d01
So many fixes, I don't even know where to go
batunii Jun 11, 2026
94eb79f
test(bench): full TESTBOOK run 2026-06-11-C/D — all automated claims …
Jun 11, 2026
d5b469d
docs(todo): add F17 (pack-html missing attribution flags) and F18 (un…
Jun 11, 2026
659e8ba
chore: include TestResult.clan in commit (was left unstaged)
Jun 11, 2026
ae9b8dc
ci: add CI and release GitHub Actions workflows
Jun 11, 2026
be4742f
fix(app): clear eslint errors blocking CI
Jun 12, 2026
904e00b
style: cargo fmt core crates; relax CI clippy gate
Jun 12, 2026
b030f1f
ci: trigger CI on pushes to feature/** branches
Jun 12, 2026
139c30d
feat(sdk,cli): F17/F18 — pack-html attribution flags + write-path guard
batunii Jun 12, 2026
ff7689f
Merge branch 'feature/MultiAgentic' of https://github.com/saieeshward…
batunii Jun 12, 2026
5a3f0ec
docs: polish README for open-source release
Jun 12, 2026
c5ae17b
style: cargo fmt F17/F18 additions
Jun 12, 2026
1298744
docs(readme): showcase benchmark results as tables with headline numbers
Jun 12, 2026
aaa6a06
docs(readme): tighten results section; rewrite Why a CLI around token…
Jun 12, 2026
6a69fd4
docs(readme): point results section at test-sandbox artifacts for aud…
Jun 12, 2026
850164e
test: scorecard run 2026-06-12 on macOS — 26/26 conformance, all clai…
Jun 12, 2026
11d9076
fix(hints): F2b — bound-key patch suppresses stale hint; fix T20 fals…
batunii Jun 12, 2026
c1066e4
Merge branch 'feature/MultiAgentic' of https://github.com/saieeshward…
batunii Jun 12, 2026
ad0ecc2
ci(release): universal macOS DMG, fix release-creation race, commit m…
Jun 12, 2026
8e5280f
ci(release): cross-compile Intel macOS CLI on arm64 runner (macos-13 …
Jun 12, 2026
daa27f7
style: cargo fmt — wrap over-long file_state_hints calls
Jun 12, 2026
68879f5
feat(app): replace placeholder purple-square icons with designed CLAN…
Jun 12, 2026
df4a03b
feat(app): use canonical ClanMark brand component in toolbar
Jun 12, 2026
b05877f
ci: cover the viewer's Tauri crate — clippy + test with WebKitGTK deps
Jun 12, 2026
043f4ad
Revert "ci: cover the viewer's Tauri crate — clippy + test with WebKi…
Jun 12, 2026
dcdd3f7
New Tests
batunii Jun 12, 2026
a88a364
Merge pull request #46 from saieeshward/feature/MultiAgentic
batunii Jun 12, 2026
431a589
docs(readme): launch polish — 2026-06-12 scorecard numbers, long-chai…
Jun 12, 2026
8892c32
chore(release): v1.1.1 — branded icons, release pipeline, launch README
Jun 12, 2026
2bf3369
Fixed the issue of not opening the files
batunii Jun 12, 2026
47dfc57
Merge branch 'docs/ci-and-readme' of https://github.com/saieeshward/c…
batunii Jun 12, 2026
ac2ab89
chore(release): v1.1.2 — .clan file associations and viewer file-open…
Jun 12, 2026
8fa86c0
docs(todo): tick shipped packaging items; add launch-announcement che…
Jun 12, 2026
e5a6ae4
ship single Windows MSI bundling CLI + viewer
batunii Jun 12, 2026
8de60b4
feat(release): bundle clan CLI into Linux .deb/.rpm packages
batunii Jun 12, 2026
f855491
Merge pull request #47 from saieeshward/feat/combined-windows-msi
batunii Jun 12, 2026
a078fd0
fix(app): add pending_open to empty_state test helper
Jun 12, 2026
4d44e9d
test: record TESTBOOK run 2026-06-12-I + claim-specific harness
Jun 12, 2026
4307d33
docs(readme): record run 2026-06-12-I results + honest claim updates
Jun 12, 2026
fecda5f
test: record full TESTBOOK run 2026-06-12-I sandbox artifacts
Jun 12, 2026
5d512d2
Included all the relevant licenses and notices for the open tech used
batunii Jun 12, 2026
fa577e0
Fixed Clash
batunii Jun 12, 2026
385fbfe
Merge pull request #49 from saieeshward/feat/combined-windows-msi
batunii Jun 12, 2026
bc773d0
fix(ci): commit Cargo.lock to stop floating deps breaking release builds
batunii Jun 13, 2026
745f1e6
docs(readme): reposition CLAN as format-first, not framework
Jun 13, 2026
07d1c06
Re Versioning
batunii Jun 13, 2026
1555401
docs(readme): add competitive landscape section and comparison table
Jun 13, 2026
9b64a17
Added Changelogs and fixed version numbers
batunii Jun 13, 2026
767e90c
fix(license): replace Apache-2.0 references with MPL-2.0 throughout
Jun 13, 2026
b186038
docs(readme): add per-platform install one-liners with exact release …
Jun 13, 2026
17fb678
docs(readme): fold xattr quarantine clear into install one-liners
Jun 13, 2026
5a6f2cc
docs(readme): switch install to brew tap saieeshward/clan
Jun 13, 2026
52da633
feat(install): add one-line install.sh for macOS and Linux
Jun 13, 2026
8d4e906
Making the App Image working by stripping the Libwayland
batunii Jun 13, 2026
dd9e769
fix(viewer): use clan:// custom scheme on Linux so the document renders
batunii Jun 13, 2026
8957eca
fix(viewer): disable WebKitGTK DMABUF/compositing on Linux
batunii Jun 13, 2026
7446703
Merge pull request #50 from saieeshward/fix/linux-viewer-document-render
batunii Jun 13, 2026
842077c
fix(ci): strip libwayland from the AppImage at the correct workspace …
batunii Jun 13, 2026
1e3fae2
Merge pull request #51 from saieeshward/fix/linux-viewer-document-render
batunii Jun 13, 2026
2d6be5b
Merge pull request #52 from saieeshward/test/run-2026-06-12-I
batunii Jun 13, 2026
d795af9
Removed the Tests
batunii Jun 13, 2026
6016298
Removed the More
batunii Jun 13, 2026
b615077
Removed the Design
batunii Jun 13, 2026
07ca1cb
Cosmetic Changes
batunii Jun 13, 2026
7738526
fix(ci): restore conformance harness deleted with test-sandbox
batunii Jun 13, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions .gitattributes
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
# Shell scripts must stay LF so they run on the Linux/macOS CI runners
# (a CRLF script breaks `bash` with a bad-interpreter / syntax error).
*.sh text eol=lf
37 changes: 37 additions & 0 deletions .github/ISSUE_TEMPLATE/bug_report.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
---
name: Bug report
about: Report a problem with the CLAN SDK, CLI, or Viewer
title: "[Bug] "
labels: bug
assignees: ''
---

## Description

A clear and concise description of what the bug is.

## Steps to reproduce

1. Run `clan ...`
2. Open file `...`
3. See error

## Expected behavior

What you expected to happen.

## Actual behavior

What actually happened. Include the full error message / stack trace if any.

## Environment

- Component: SDK / CLI / Viewer
- Version (`clan --version` or crate version):
- OS:
- Rust version (`rustc --version`, if building from source):
- Node version (`node --version`, for the Viewer):

## Additional context

A `.clan` file, screenshots, or logs that help reproduce the issue.
33 changes: 33 additions & 0 deletions .github/ISSUE_TEMPLATE/feature_request.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
---
name: Feature request
about: Suggest an idea or enhancement for CLAN
title: "[Feature] "
labels: enhancement
assignees: ''
---

## Problem

What problem are you trying to solve? Is your request related to a limitation
in the spec, SDK, CLI, or Viewer?

## Proposed solution

A clear and concise description of what you want to happen.

## Alternatives considered

Any alternative solutions or features you've considered.

## Scope

Which component(s) would this affect?

- [ ] Spec (`CLAN-SPEC.md`)
- [ ] SDK (`clan-sdk`)
- [ ] CLI (`clan-cli`)
- [ ] Viewer (`clan-viewer`)

## Additional context

Examples, mockups, or references that clarify the request.
27 changes: 27 additions & 0 deletions .github/PULL_REQUEST_TEMPLATE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
## Summary

Briefly describe what this PR changes and why.

## Related issues

Closes #

## Type of change

- [ ] Bug fix
- [ ] New feature
- [ ] Refactor / performance
- [ ] Documentation
- [ ] Build / packaging / CI

## Checklist

- [ ] `cargo build` passes
- [ ] `cargo test` passes
- [ ] `cargo clippy` reports no new warnings
- [ ] Docs / CHANGELOG updated if needed
- [ ] I have read [CONTRIBUTING.md](../CONTRIBUTING.md)

## Notes for reviewers

Anything reviewers should pay particular attention to.
35 changes: 35 additions & 0 deletions .github/scripts/set-version.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
#!/usr/bin/env bash
# Set the workspace version — the single source of truth for the `clan` CLI
# version and (via tauri.conf.json's omitted version → Cargo fallback) every
# desktop bundle. Called from the release workflow with the pushed tag.
#
# Usage: set-version.sh <version> e.g. set-version.sh 1.1.4
#
# Portable across the Linux/macOS/Windows GitHub runners: uses only bash + awk
# (Git Bash on Windows ships awk), so it needs no extra tooling to install.
set -euo pipefail

version="${1:?usage: set-version.sh <version>}"
version="${version#v}"

case "$version" in
[0-9]*.[0-9]*.[0-9]*) ;;
*) echo "error: '$version' is not a semver version" >&2; exit 1 ;;
esac

root="$(cd "$(dirname "$0")/../.." && pwd)"
cargo_toml="$root/Cargo.toml"

# Replace the first `version = "..."` line inside the [workspace.package] table
# only, leaving every other section untouched.
awk -v ver="$version" '
/^\[/ { in_pkg = ($0 == "[workspace.package]") }
in_pkg && !done && /^[[:space:]]*version[[:space:]]*=/ {
sub(/"[^"]*"/, "\"" ver "\""); done = 1
}
{ print }
END { if (!done) { print "error: version line not found in [workspace.package]" > "/dev/stderr"; exit 1 } }
' "$cargo_toml" > "$cargo_toml.tmp"
mv "$cargo_toml.tmp" "$cargo_toml"

echo "set workspace version to $version"
103 changes: 103 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,103 @@
name: CI

on:
push:
branches: [ main, 'feature/**' ]
pull_request:

# Cancel superseded runs on the same ref (e.g. force-pushes to a PR branch).
concurrency:
group: ci-${{ github.ref }}
cancel-in-progress: true

env:
CARGO_TERM_COLOR: always

jobs:
rust:
name: Rust — fmt · clippy · test
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4

- name: Install Rust toolchain
uses: dtolnay/rust-toolchain@stable
with:
components: rustfmt, clippy

- name: Cache cargo build
uses: Swatinem/rust-cache@v2

# Core library + CLI only. The Tauri app's Rust (app/src-tauri) needs
# GTK/WebKit system deps and is compiled in the desktop/release build.
- name: Format
run: cargo fmt -p clan-sdk -p clan-cli -- --check

# Clippy reports lints but does not block the build (no `-D warnings`)
# while pre-existing lint debt is paid down. Tighten later by adding
# `-- -D warnings` once the backlog is clear.
- name: Clippy
run: cargo clippy -p clan-sdk -p clan-cli --all-targets

- name: Test
run: cargo test -p clan-sdk -p clan-cli --all-targets

frontend:
name: Frontend — lint · tsc · build
runs-on: ubuntu-latest
defaults:
run:
working-directory: app
steps:
- uses: actions/checkout@v4

- name: Install Node
uses: actions/setup-node@v4
with:
node-version-file: app/.nvmrc
cache: npm
cache-dependency-path: app/package-lock.json

- name: Install dependencies
run: npm ci

- name: Lint
run: npm run lint

# `npm run build` is `tsc -b && vite build`, so this covers the
# TypeScript type-check gate as well as the production build.
- name: Type-check & build
run: npm run build

conformance:
name: CLI conformance harness
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4

- name: Install Rust toolchain
uses: dtolnay/rust-toolchain@stable

- name: Cache cargo build
uses: Swatinem/rust-cache@v2

- name: Install Node
uses: actions/setup-node@v4
with:
node-version: "20"

- name: Build clan CLI (release)
run: cargo build -p clan-cli --release

# Deterministic black-box assertions against the built binary.
# Exits non-zero on the number of hard failures.
- name: Run conformance harness
run: node test-sandbox/pipeline/conformance.mjs --clan "${{ github.workspace }}/target/release/clan"

- name: Upload conformance report
if: always()
uses: actions/upload-artifact@v4
with:
name: conformance-report
path: conformance.json
if-no-files-found: warn
Loading
Loading