180 Commits
Author SHA1 Message Date
tt-a1i 5c1607ee74 Merge dev after #592 and regenerate combined diagram artifacts 2026-09-28 12:16:48 +08:00
tt-a1iandDevin <158243242+devin-ai-integration[bot]@users.noreply.github.com> aa9a27eeb7 fix(viewer): cap a narrow SVG to its share beside a docked rail
The narrow-diagram cap was computed from a reader width that already
includes the docked rail and its gap, so moving the notes beside a narrow,
tall diagram gave the SVG another 308px and doubled its scale. The cap now
subtracts the docked rail's share; the shell keeps its desktop floor.

Generated with [Devin](https://devin.ai)

Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-09-28 09:15:24 +08:00
tt-a1iandDevin <158243242+devin-ai-integration[bot]@users.noreply.github.com> cf326adcbf fix(viewer): keep relationship labels at the 6px floor in a first-screen fit
Dropping the primary-label floor let a narrow, tall architecture with titles
only shrink until its 8px relationship labels projected to 5.45px, failing
the browser readability gate. The reader's minimum scale now counts context
relationship labels in every layout: declared wide readers hold them to the
requested floor as before, and all other readers to the 6px hard floor.

Generated with [Devin](https://devin.ai)

Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-09-27 23:34:53 +08:00
tt-a1iandDevin <158243242+devin-ai-integration[bot]@users.noreply.github.com> 7abfa28f86 fix(sequence): place the legend below late content and rebuild the README proof
A valid late message with a note (y=477 on a 560px canvas) still drew
lifelines and its note into the legend band, because the lifeline end was
lifted to the content bottom. The legend now sits 12px below all timeline
content: a renderer-sized canvas grows to keep that gap, an authored showcase
canvas fails with the exact height to set, and lifelines stop above the
legend. The cache-miss example grows from 560 to 580px accordingly. The
README live proof is rebuilt from the updated gallery scene.

Generated with [Devin](https://devin.ai)

Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-09-27 23:32:32 +08:00
tt-a1iandDevin <158243242+devin-ai-integration[bot]@users.noreply.github.com> 5f39beac52 fix(viewer): keep a desktop reader shell around narrow tall diagrams
Fitting a narrow, tall diagram to the first screen shrank the whole page
shell to the SVG width, so the title wrapped under the toolbar and the zoom
controls clipped. The shell now keeps the desktop reader floor and the SVG
is centred at its fitted width.

Generated with [Devin](https://devin.ai)

Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-09-27 23:24:11 +08:00
tt-a1iandDevin <158243242+devin-ai-integration[bot]@users.noreply.github.com> dfc84483c7 fix(viewer): fit the whole diagram on the first screen with notes below
With summary notes below the diagram, the adaptive reader held primary
labels at 12px, so a tall architecture overflowed a 14-inch laptop screen
(OpenPI: 947px diagram in a 711px budget) and the reader could not see it
whole. The first screen now fits the complete diagram and its controls down
to the renderer's declared readable text floor; zoom restores detail, and
only a graph taller than that floor allows still scrolls.

Generated with [Devin](https://devin.ai)

Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-09-27 23:09:26 +08:00
tt-a1iandDevin <158243242+devin-ai-integration[bot]@users.noreply.github.com> d0223da881 fix(sequence): keep lifelines out of the legend and match label colors
Sequence lifelines ran down through the legend band, and message labels
used their own palette: default messages had green labels like the main
request path and async traces had orange labels on purple lines, so the
legend contradicted the drawing. Lifelines now stop at the timeline content
above the legend, colored lines share their color with their labels, and the
legend names the emphasis and default variants by meaning.

Generated with [Devin](https://devin.ai)

Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-09-27 22:39:56 +08:00
tt-a1iandDevin <158243242+devin-ai-integration[bot]@users.noreply.github.com> e1eab5c8da feat(lifecycle): schema v2 grid layout, UML state marks, and readable source badges
Lifecycle diagrams generated from real repositories looked tangled: lower
bands used a column grid offset from the main rail, fixed 36px gaps could not
hold reciprocal transitions or labels, the implied rail doubled authored main
transitions, and the runtime source badge sat on the lifecycle sigil.

Schema v2 renders one row per lane on a shared column grid with a dedicated
orthogonal router, adaptive gaps, and vertical row headers. Start and final
states get UML marks explained by the legend, decision no longer shares the
failure color, and label layout reserves the source badge. Schema v1 keeps
its exact state geometry.

Generated with [Devin](https://devin.ai)

Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-09-27 12:51:54 +08:00
tt-a1i 9f010bb211 Merge latest dev and regenerate delivery artifacts 2026-09-27 09:02:28 +08:00
tt-a1i 62088d6b8e fix: resolve dev starter and verification regressions 2026-09-27 00:35:12 +08:00
sunsunsun ed9409ed2b fix(viewer): remove ordinary share card exports
Remove Share Card and Copy Share Card from the export menu, their ordinary export APIs, and unused rendering fallbacks. Preserve full-diagram exports and route/reach cards, update regression coverage, and regenerate affected examples and packaged artifacts.

Fixes tt-a1i/archify#580
2026-09-26 23:56:36 +08:00
tt-a1iandDevin <158243242+devin-ai-integration[bot]@users.noreply.github.com> c93d16485a feat(viewer): notes below the diagram by default, first screen for the diagram
The right rail hid below-the-fold content on laptops and its index was
clipped to the diagram height. Notes now default below the diagram and
the right rail is an opt-in that the reader remembers.

- Bottom: cards keep one full-width row; the node index is one panel whose
  groups flow into columns, with the placement toggle in its header.
- The first screen is budgeted for the diagram and its controls only; in
  bottom mode primary labels may drop to the rail's 12px floor to fit, and
  taller graphs still scroll.
- The navigation dock lifts to the viewport floor while the stage runs
  below it; stage-rail decisions and receipts use its resting position.
- Right rail: runs past a short diagram down to the viewport floor instead
  of scrolling its index inside the diagram's height.
- visual-check excludes bottom notes from the one-screen fit and measures
  the dock at rest, matching the Reader; tests follow the new rules.
- Fix a README test still expecting the removed #view=dispatch-path link.

Generated with [Devin](https://devin.ai)

Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-09-26 00:01:24 +08:00
sunsunsun 3ed5eec06f fix(viewer): restore outline focus after route selection ends
Use the live Route phase to distinguish a refused endpoint from a stale
Finder context. Completed and cleared routes now allow outline focus;
active source/target picking still preserves refused selections. Extend
the Finder browser regression to cover both completed and cleared routes.

Update the MCO README proof assertions to require supported presentation
and reach links instead of the retired chapter URL, fixing the CI failure.
Regenerate Viewer artifacts, gallery digests, the delta receipt and ZIP.
Reuse the unchanged README GIF with its original capture hashes/revision
and an explicit source-equivalence rationale in the receipt.

Validation: the old outline failed four result/idle cases; all eight
source/target/context combinations pass after the fix. The old README
assertion failed and the corrected proof test passes. Local npm test had
2232 passes, 83 skips, and one stale GIF-receipt failure; after updating
that receipt, the affected suites pass (11 passed, one optional MCO skip).
ZIP rebuild bytes match. Browser regressions run in PR CI.

Ablation: removed the redundant Finder-history guard after verifying that
live Route phase alone preserves the acceptance cases. No new abstraction.
2026-09-25 20:20:52 +08:00
tt-a1iandDevin <158243242+devin-ai-integration[bot]@users.noreply.github.com> 397b28a4cf fix(viewer): address PR #566 review findings
- Node index: a Route pick the Finder refuses no longer falls back to
  focus, which cleared the active Route.
- Schemas keep accepting retired meta.views (ignored) so existing
  schema 1/2 files still validate, per the 2.x compatibility contract.
- Rail comfort check measures node label sizes directly, so the 12px
  default-collapse rule covers all five diagram types.
- Rail choices live in memory first; blocked localStorage no longer
  freezes collapse/expand/placement.
- Escape-collapsing the overlay rail returns focus to the reveal control.
- Oversized raster exports downscale below 1x instead of allocating a
  canvas over the pixel cap.
- README and Gallery drop removed chapter-playback links and copy;
  README demo captures and live-proof GIF re-recorded on the new shell.

Generated with [Devin](https://devin.ai)

Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-09-25 19:05:46 +08:00
tt-a1iandDevin <158243242+devin-ai-integration[bot]@users.noreply.github.com> fca0dc2f91 feat(viewer)!: refined reader shell, Viewer-style figures, and no guided views
UI/UX only, re-cut from dev so no renderer or authoring-rule changes ride
along (those made diagrams noisier in real use and were dropped).

- Reader shell: system UI type, grouped toolbar that scrolls with the page,
  refined style/export menus and navigation dock (Guide on "?", Map only
  when zoomed), plain-language Path copy and compact picking panel.
- Summary rail with node index for every diagram: right by default,
  collapsible, movable to the bottom, remembered per browser, and
  collapsed when docking would shrink primary text below 12px.
- Raster exports reproduce the Viewer page without controls (title row,
  canvas card, margins); background now covers non-zero viewBox origins.
- Canvas keeps dev's diagram colors and strokes; classic adds only a quiet
  dot field and lifted nodes.
- Remove guided views and story playback (breaking): meta.views is no
  longer accepted and fails with "remove unsupported property views".
- Skill: each diagram request goes into .archify/<type>-<slug>-<timestamp>/.

Generated with [Devin](https://devin.ai)

Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-09-25 17:20:44 +08:00
杨嘉伟 52703cfe98 Merge remote-tracking branch 'origin/dev' into fix/469-lock-exported-svg-theme
# Conflicts:
#	archify.zip
#	docs/assets/archify-live-proof.gif
#	docs/assets/archify-live-proof.json
#	docs/gallery.html
#	docs/gallery/manifest.json
2026-09-24 20:40:08 +08:00
杨嘉伟 6ea06c49a5 Merge remote-tracking branch 'origin/dev' into fix/469-lock-exported-svg-theme
# Conflicts:
#	archify.zip
#	docs/assets/archify-live-proof.gif
#	docs/assets/archify-live-proof.json
#	docs/gallery.html
#	docs/gallery/manifest.json
#	examples/checkout-platform-delta.html
#	examples/checkout-platform-delta.receipt.json
2026-09-24 20:23:51 +08:00
sunsunsun 2e01d7898d fix(workflow): preserve crossing diagnostics and normalize HTML analysis 2026-09-24 17:48:18 +08:00
sunsunsun c8942ed70e fix(workflow): separate shared routes and preserve constrained geometry 2026-09-24 17:24:29 +08:00
tt-a1i 1c1e47ad21 Fix viewer flash when switching dark and light themes (#553)
* fix(viewer): prevent flash during theme switches

* test(viewer): cover width stability on theme switch
2026-09-24 15:03:39 +08:00
杨嘉伟 0cccc81786 chore(showcase): refresh Viewer motion proof 2026-09-24 10:22:11 +08:00
杨嘉伟 4b19ded731 fix(viewer): honor fixed SVG export themes 2026-09-24 10:06:28 +08:00
tt-a1i 1ddb102bef fix(skill): prioritize first-draft composition guidance 2026-09-23 22:32:33 +08:00
tt-a1i ba52205ca8 chore(gallery): refresh embedded route review evidence 2026-09-23 19:10:20 +08:00
tt-a1i 6598913c07 build: refresh readable architecture viewer and package artifacts 2026-09-23 17:34:33 +08:00
tt-a1i 27d5791102 fix(viewer): preserve fitted height with compact toolbar clearance 2026-09-23 17:12:04 +08:00
tt-a1i 7665d78420 build: refresh diagrams and package for compact header clearance 2026-09-23 17:06:08 +08:00
tt-a1i 284276c85d fix(architecture): improve route choices and expose layout review evidence 2026-09-23 16:07:01 +08:00
杨嘉伟 bda8238bd1 chore(docs): refresh README showcase proof 2026-09-23 14:26:26 +08:00
tt-a1i 3155a7ec51 fix(architecture): preserve route clarity during automatic planning 2026-09-23 13:22:17 +08:00
杨嘉伟 e9a8224f35 fix(viewer): add fixed SVG theme exports 2026-09-23 13:05:46 +08:00
tt-a1i dc7bf091d5 chore: refresh viewer-dependent proof artifacts 2026-09-23 12:04:37 +08:00
tt-a1i 5b58c8bb88 fix(viewer): keep node masks opaque during hover trace 2026-09-23 11:54:29 +08:00
tt-a1i e93d252631 docs: remove Raven-specific manual ZIP install guidance 2026-09-23 10:48:57 +08:00
tt-a1i 5c9736e94c Merge dev and rebuild the skill archive 2026-09-22 23:33:24 +08:00
tt-a1i a9d99241a0 docs: sync current brand previews to dev (#518)
* docs: replace legacy logos in brand previews

* docs: preserve original artwork and replace only the logo
2026-09-22 22:57:17 +08:00
tt-a1i 7e0adec644 docs: record combined stability verification and corrections 2026-09-22 20:52:30 +08:00
tt-a1i ccde1166b5 test: gate recovery on Windows and record stability evidence 2026-09-22 20:33:45 +08:00
tt-a1i 564c2e5293 Merge remote-tracking branch 'origin/main' into codex/dev-stability-repair-20260922
# Conflicts:
#	.github/workflows/ci.yml
#	README.md
#	README_EN.md
#	README_ZH.md
#	archify/test/release-package-gates.test.mjs
2026-09-22 20:22:37 +08:00
tt-a1i ffd68ef220 feat(check): predict fixed-width viewport overflow before the browser gate
A canvas whose viewBox ratio is below the 1.55 wide threshold and that
declares no intrinsic-height fit renders at the full reader width, so its
1440x900 page height is a function of the viewBox alone: 1346px wide SVG
plus 126px of fixed chrome (187px with guided views). Such a candidate
passes validate, deliver and check and only fails at visual-check, after
the author has spent the whole delivery round; both maintainer replays of
a year-long holiday timeline lost most of their time exactly here.

Compute that height in the shared checker and report it as
composition/viewport-height with the maximum viewBox height at the current
width, the minimum width at the current height, and the architecture
escape hatch (omit meta.viewBox). The prediction matches Chrome to the
pixel on the three gallery artifacts that fail visual-check today
(972/1683/934px SVG). It is a warning in every profile for now, as
CONTRIBUTING asks of a new rule, so existing artifacts and the gallery
build keep passing while showcase authors see the non-zero warning count.

Regenerate examples, gallery, showcase, compare artifact, MCO case and
archify.zip for the settled reader template; the synthetic checker
fixtures use a 240x154 canvas so the new rule stays out of unrelated
composition tests.
2026-09-22 17:38:10 +08:00
tt-a1i 83d10786af build: regenerate examples, gallery, showcase, and skill archive
Re-render the checked-in examples and gallery artifacts from the combined
renderer and viewer source, rebuild the Checkout compare artifact and the
MCO case/showcase against their pinned repository, and rebuild archify.zip
with Node 22. The Chrome pipe transport test now derives the first-command
timeout from CHROME_STARTUP_TIMEOUT_MS instead of the former 15s literal.
2026-09-22 16:03:46 +08:00
tt-a1i a7c7e6271e Allow readable vertical scroll for tall diagrams 2026-09-22 12:17:41 +08:00
tt-a1i 1b7aa692f5 Fit compiler-measured architectures to desktop height 2026-09-22 12:17:08 +08:00
tt-a1i ad6bd3763b test: refresh icon evidence against dev and canonical package 2026-09-22 11:49:47 +08:00
tt-a1i c30c07e318 feat: support domain-specific node icons across diagram modes 2026-09-22 11:47:30 +08:00
tt-a1i 9b3d3f0cb9 Revert "Merge pull request #178 from Teamirni/workbuddy-agent"
This reverts commit 0f830c3d9c, reversing
changes made to 80a1338b16.
2026-09-21 23:43:46 +08:00
tt-a1i bc10014e59 Merge dev into WorkBuddy onboarding docs
Refresh the PR with the current dev tree after validating the documented manual Skill installation and onboarding contract.
2026-09-21 23:24:22 +08:00
tt-a1i e608d6af18 build: regenerate archive with official Node 22 compression 2026-09-21 23:00:51 +08:00
05bc389ad1 fix(renderers): clear labels without rejecting existing diagrams
Adapt the selective semantic-sigil clearance from #220 and stage-header
measurement from #257, retaining the sequence header fix already in dev
from #425. Cover workflow v1/v2 and preserve authored boxes, routes,
complete text, node font sizes and existing input acceptance.

Use a separate text row when narrow labels cannot share the icon rail;
fit only the decorative icon for deliberately short fixed boxes. Wrap
long stage titles when the node-free header space allows it.

Refs #199, #220, #257, #425

Co-authored-by: Souptik Chakraborty <62941615+Souptik96@users.noreply.github.com>
Co-authored-by: 276970789 <276970789@qq.com>
2026-09-21 22:57:08 +08:00
tt-a1i 5289f6867f feat: migrate website to Astro while preserving visual parity (#495)
* feat: migrate website to Astro with exact visual parity

* test: preserve deployment gates for verified website artifact

* test: anchor workflow job lookup at top-level job boundary

* fix(website): normalize whitespace in guide searches
2026-09-21 16:38:50 +08:00