Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
551 commits
Select commit Hold shift + click to select a range
def2af4
test: select password sign-in before production form login
mvalancy Oct 24, 2026
eec3421
Compose reviewed main history and release gate corrections
mvalancy Oct 24, 2026
bfdf398
Patch optional Undici build dependency and guard consumer resolution
mvalancy Oct 24, 2026
c701e0a
docs: plan dynamic graph LOD through large-system delivery
mvalancy Oct 27, 2026
95ce099
docs: reuse CodeGraph techniques in the dynamic LOD plan
mvalancy Oct 27, 2026
a965940
feat: add readable semantic overview to the graph camera
mvalancy Oct 27, 2026
cfa222d
fix: retain readable detail through both zoom directions
mvalancy Oct 27, 2026
2b337b7
test: require semantic overview in headed acceptance
mvalancy Oct 27, 2026
9a5ee4f
docs: record semantic overview validation and remaining gates
mvalancy Oct 27, 2026
bedfff6
docs: clarify resolved review follow-ups
mvalancy Oct 27, 2026
fef4243
docs: record draft PR client permission evidence
mvalancy Oct 27, 2026
473ba9c
Patch optional Undici build dependency and guard consumer resolution
mvalancy Oct 24, 2026
8563a4a
Separate cold LOD fixture budgets and enforce owned cleanup
mvalancy Oct 27, 2026
541fa59
Reserve independent cleanup budget after LOD setup timeout
mvalancy Oct 27, 2026
c4066d1
Drain late seed responses before cleaning owned graphs
mvalancy Oct 27, 2026
8ad9683
Record fresh dev Undici validation and backport provenance
mvalancy Oct 27, 2026
52a4db7
Record forbidden seed writes in timeout regression ledger
mvalancy Oct 27, 2026
e44dc04
Require server-issued CAPTCHA proof for authentication actions
mvalancy Oct 27, 2026
3f8838c
Enforce verification readiness and socket-only challenge budgets
mvalancy Oct 27, 2026
2c8f098
Merge pull request #194 from GraphDone/fix/dev-undici-20261027
mvalancy Oct 27, 2026
53f979c
Merge remote-tracking branch 'origin/dev' into fix/server-captcha-202…
mvalancy Oct 27, 2026
5849f3c
Patch UUID consumer paths without changing federation APIs
mvalancy Oct 27, 2026
e201f30
Merge remote-tracking branch 'origin/dev' into fix/federation-uuid-20…
mvalancy Oct 27, 2026
862049e
Preserve explicit camera intent during initial graph framing
mvalancy Oct 27, 2026
800e5b4
Merge remote-tracking branch 'origin/dev' into feature/dynamic-lod-ov…
mvalancy Oct 27, 2026
f1da3d3
Retain initial-fit legibility coverage in camera regression
mvalancy Oct 27, 2026
51ddb3e
Guard all affected UUID release lines and date composed evidence
mvalancy Oct 27, 2026
6431271
Declare development mode without weakening configured authentication …
mvalancy Oct 27, 2026
6035ed6
Bind email token purpose and revoke prior sessions on password reset
mvalancy Oct 27, 2026
1ca264f
Merge pull request #192 from GraphDone/feature/dynamic-lod-overview-2…
mvalancy Oct 27, 2026
c14205c
Merge remote-tracking branch 'origin/dev' into fix/federation-uuid-20…
mvalancy Oct 27, 2026
49eb529
Merge remote-tracking branch 'origin/dev' into fix/server-captcha-202…
mvalancy Oct 27, 2026
105be3f
Enforce session revision in human agent and operations requests
mvalancy Oct 27, 2026
4411531
Merge branch 'fix/server-captcha-20261027' into fix/token-purpose-rev…
mvalancy Oct 27, 2026
9adc9f0
Upgrade React Router and verify application navigation contracts
mvalancy Oct 27, 2026
1332ef9
Clarify router version and validation evidence prose
mvalancy Oct 27, 2026
75e2793
Verify the existing selector-parser security backport and CSS consumers
mvalancy Oct 27, 2026
55ca50b
Verify installed router versions against patched locked consumers
mvalancy Oct 27, 2026
bede090
Merge pull request #196 from GraphDone/fix/federation-uuid-20261027
mvalancy Oct 27, 2026
c278c6e
Preserve chosen focus when initial dialog autofocus is delayed
mvalancy Oct 27, 2026
9b88dba
Merge branch 'fix/editor-focus-intent-20261027' into fix/router-secur…
mvalancy Oct 27, 2026
9a7d756
Merge branch 'fix/router-security-20261027' into test/css-security-ba…
mvalancy Oct 27, 2026
eb52d12
Merge branch 'test/css-security-backport-20261027' into fix/server-ca…
mvalancy Oct 27, 2026
3ecb39d
Merge branch 'fix/server-captcha-20261027' into fix/token-purpose-rev…
mvalancy Oct 27, 2026
bb1f317
Require verified provider evidence for atomic OAuth account linking
mvalancy Oct 27, 2026
f0d8d46
Merge branch 'fix/token-purpose-revocation-20261027' into fix/oauth-v…
mvalancy Oct 27, 2026
9b7d5c1
Reject unverified local links and bound asynchronous provider profile…
mvalancy Oct 27, 2026
7e8cb35
Recognize authenticated empty workspaces in route acceptance
mvalancy Oct 27, 2026
0d62ed0
Merge pull request #201 from GraphDone/fix/editor-focus-intent-20261027
mvalancy Oct 27, 2026
e867616
Keep all LOD and route checks in bounded required CI sequences
mvalancy Oct 27, 2026
bc42cbe
Merge branch 'fix/router-security-20261027' into test/css-security-ba…
mvalancy Oct 27, 2026
fef469e
Merge branch 'test/css-security-backport-20261027' into fix/server-ca…
mvalancy Oct 27, 2026
7642a6a
Merge branch 'fix/server-captcha-20261027' into fix/token-purpose-rev…
mvalancy Oct 27, 2026
3e7d7f6
Merge branch 'fix/token-purpose-revocation-20261027' into fix/oauth-v…
mvalancy Oct 27, 2026
c24ec3c
Keep disposable Git fixture maintenance within test ownership
mvalancy Oct 27, 2026
568346f
Merge branch 'test/css-security-backport-20261027' into fix/server-ca…
mvalancy Oct 27, 2026
b1e4ec1
Merge branch 'fix/server-captcha-20261027' into fix/token-purpose-rev…
mvalancy Oct 27, 2026
8c127a4
Merge branch 'fix/fixture-git-maintenance-20261027' into test/css-sec…
mvalancy Oct 27, 2026
69feb7a
Merge branch 'fix/token-purpose-revocation-20261027' into fix/oauth-v…
mvalancy Oct 27, 2026
70e7eb7
Merge pull request #198 from GraphDone/fix/router-security-20261027
mvalancy Oct 27, 2026
a79bf09
Attach CAPTCHA verification events before the first widget commit
mvalancy Oct 27, 2026
2af999e
Merge branch 'fix/server-captcha-20261027' into fix/token-purpose-rev…
mvalancy Oct 27, 2026
bb2f55e
Merge branch 'fix/token-purpose-revocation-20261027' into fix/oauth-v…
mvalancy Oct 27, 2026
a9ce673
Upgrade Vite and Vitest with preserved browser and test contracts
mvalancy Oct 27, 2026
7595448
Preserve optional skip evidence with Vitest 4 reporters
mvalancy Oct 27, 2026
a53871d
Preserve animated camera ownership across LOD exit
mvalancy Oct 27, 2026
7270d22
Merge commit 'a53871df748061db93eb0a833d1c67150e829485' into test/css…
mvalancy Oct 27, 2026
951cff4
Merge pull request #204 from GraphDone/fix/fixture-git-maintenance-20…
mvalancy Oct 27, 2026
fb39114
Merge commit '7270d22892be67125454ce3ac43c21e10ce7dfd6' into fix/serv…
mvalancy Oct 27, 2026
faba7be
Merge commit 'fb39114a9ce47d1a34b8631d5471f61ce5451804' into fix/toke…
mvalancy Oct 27, 2026
465e195
Merge commit 'faba7be797c39ee5a24a1d59377870390d1ff53e' into fix/oaut…
mvalancy Oct 27, 2026
6eb2e65
Merge commit '465e195a6388a5b0a13e015aadc49a6cd4e45d2c' into fix/tool…
mvalancy Oct 27, 2026
b12f8b2
Package production runtime consumers and verify actual images
mvalancy Oct 27, 2026
e893fc8
Observe fixed-camera title fitting on the actual source layer
mvalancy Oct 27, 2026
9d918e9
Observe camera resize readiness before idle motion sampling
mvalancy Oct 27, 2026
81a212b
Merge branch 'fix/lod-transition-ownership-20261027' into test/motion…
mvalancy Oct 27, 2026
18d7631
Merge branch 'test/motion-camera-readiness-20261027' into test/css-se…
mvalancy Oct 27, 2026
f6cd750
Merge branch 'test/css-security-backport-20261027' into fix/server-ca…
mvalancy Oct 27, 2026
c7967ff
Merge branch 'fix/server-captcha-20261027' into fix/token-purpose-rev…
mvalancy Oct 27, 2026
f88603e
Merge branch 'fix/token-purpose-revocation-20261027' into fix/oauth-v…
mvalancy Oct 27, 2026
190fe94
Merge branch 'fix/oauth-verified-identity-20261027' into fix/toolchai…
mvalancy Oct 27, 2026
406c96e
Merge branch 'fix/toolchain-security-20261027' into fix/runtime-image…
mvalancy Oct 27, 2026
13a6eb1
Update Turbo and Mermaid with installed consumer contracts
mvalancy Oct 27, 2026
d83a1e9
Merge branch 'fix/runtime-image-packaging-20261027' into fix/remainin…
mvalancy Oct 27, 2026
11a06ff
Record tooling migration boundaries and retained negative evidence
mvalancy Oct 27, 2026
d04dafb
Merge pull request #207 from GraphDone/fix/lod-transition-ownership-2…
mvalancy Oct 27, 2026
da94cfc
Merge pull request #210 from GraphDone/test/motion-camera-readiness-2…
mvalancy Oct 27, 2026
f9e71f4
Merge pull request #199 from GraphDone/test/css-security-backport-202…
mvalancy Oct 27, 2026
4d1ceb3
Merge pull request #195 from GraphDone/fix/server-captcha-20261027
mvalancy Oct 28, 2026
d66797a
Merge pull request #197 from GraphDone/fix/token-purpose-revocation-2…
mvalancy Oct 28, 2026
72d3d26
Merge pull request #202 from GraphDone/fix/oauth-verified-identity-20…
mvalancy Oct 28, 2026
9586216
Merge pull request #206 from GraphDone/fix/toolchain-security-20261027
mvalancy Oct 28, 2026
9f59e62
Merge pull request #211 from GraphDone/fix/runtime-image-packaging-20…
mvalancy Oct 28, 2026
cf3735f
Merge pull request #212 from GraphDone/fix/remaining-tooling-security…
mvalancy Oct 28, 2026
ce18e8c
Persist scoped layout recovery with fenced replay and explicit discard
mvalancy Oct 28, 2026
69c704d
Keep delayed recovery errors within their account scope
mvalancy Oct 28, 2026
c48aad2
Evaluate pinned Trixie self-host runtime with full OS triage and roll…
mvalancy Oct 28, 2026
817454c
Compose self-host base update with reviewed durable layout recovery
mvalancy Oct 28, 2026
ebe8729
Normalize advisory inventory line endings
mvalancy Oct 28, 2026
97a5b49
Merge pull request #213 from GraphDone/fix/durable-layout-recovery-20…
mvalancy Oct 28, 2026
bf8735e
Merge pull request #214 from GraphDone/fix/self-host-trixie-runtime-2…
mvalancy Oct 28, 2026
e77d002
ADAPT-7: add nested semantic cuts and parent navigation
mvalancy Oct 28, 2026
2c09dab
Preserve Auto LOD history and focus through representation changes
mvalancy Oct 28, 2026
3e068fc
Keep LOD component regression fixtures bounded and retain timing fail…
mvalancy Oct 28, 2026
e7f144b
Verify owned graph responses before nested LOD render assertions
mvalancy Oct 28, 2026
3002554
Compose current development with fail-closed main gates and current a…
mvalancy Oct 28, 2026
57de0b2
Include final nested LOD readiness regression in main candidate
mvalancy Oct 28, 2026
2cb4cb1
Align production acceptance fixtures with current runtime gates
mvalancy Oct 28, 2026
ed775f1
Route semantic connections as inspectable schematic buses
mvalancy Oct 28, 2026
ab819ae
Keep schematic review metrics focused on routing outcomes
mvalancy Oct 28, 2026
a5a9405
Keep bus inspection live and bound total routing work
mvalancy Oct 28, 2026
dd9de55
Check actual overview wiring and exact relationship navigation
mvalancy Oct 28, 2026
969e173
Require painted overview geometry and unambiguous item controls
mvalancy Oct 28, 2026
2ff60bd
LOD-WIRE-1: trace focused group buses with bounded neighbor pages
mvalancy Oct 28, 2026
32edef9
Count source member controls independently of relationship actions
mvalancy Oct 28, 2026
f8bab98
Cover relationship hub loops partitions and keyboard navigation in CI
mvalancy Oct 28, 2026
3caeb66
Keep relationship controls and owned visual evidence reliable
mvalancy Oct 28, 2026
e802a14
Merge pull request #216 from GraphDone/feat/nested-semantic-lod-20261028
mvalancy Oct 28, 2026
4a0fd63
feat(graph): define shared geometry for item wire paths
mvalancy Oct 28, 2026
4e80351
fix(graph): keep offset labels on their routed leg
mvalancy Oct 28, 2026
fc5045a
refactor(graph): share item wire paths across render consumers
mvalancy Oct 28, 2026
83c0efe
fix(graph): preserve hidden label sizing and opposite wire lanes
mvalancy Oct 28, 2026
314e1ec
test(graph): require stable camera and painted item wires
mvalancy Oct 28, 2026
1136a51
test(graph): exercise empty hidden-label measurements explicitly
mvalancy Oct 28, 2026
183e20d
feat(graph): reserve readable adaptive card and label geometry
mvalancy Oct 28, 2026
453ddd8
Merge pull request #221 from GraphDone/feat/item-schematic-wiring-202…
mvalancy Oct 28, 2026
2e5aba1
test(graph): gate readable symbols and 2000-item zoom journeys
mvalancy Oct 28, 2026
d7afcd1
fix(graph): bound label work and preserve visible interactions
mvalancy Oct 28, 2026
0b6e1a1
feat(graph): strengthen typography and reconcile revealed cards
mvalancy Oct 28, 2026
7148f1d
Place labels in visible route spans and verify painted zoom readiness
mvalancy Oct 28, 2026
bcdbe4a
Keep diagonal labels clear and trace controls readable
mvalancy Oct 28, 2026
04c3a8f
Plan relationship priority levels with per-pair fallback
mvalancy Oct 28, 2026
9661b47
Strengthen graph wires and workspace visual hierarchy
mvalancy Oct 28, 2026
bb1dd62
Preserve focused icon labels across pointer hover
mvalancy Oct 28, 2026
4459e9b
Exercise visible card editing in adaptive graph journeys
mvalancy Oct 28, 2026
31806a3
Define relationship priority with connected-pair fallback
mvalancy Oct 28, 2026
9b4110f
feat: select readable relationship priority with per-pair fallback
mvalancy Oct 28, 2026
706ed6b
fix: keep graph status and connection controls in shared flow
mvalancy Oct 28, 2026
deeb4d6
merge: bring shared graph control layout into priority work
mvalancy Oct 28, 2026
a081f7d
test: exercise priority coverage across two thousand loaded items
mvalancy Oct 28, 2026
39009cb
fix: preserve native scrolling over graph status controls
mvalancy Oct 28, 2026
d05c7b3
merge: retain native status scrolling with relationship priority
mvalancy Oct 28, 2026
1836073
fix: make unavailable priority preference storage an explicit no-op
mvalancy Oct 28, 2026
a148fe4
fix: preserve inspection and keyboard return across priority changes
mvalancy Oct 28, 2026
40de9a8
fix: give active radar charts the workspace typography baseline
mvalancy Oct 28, 2026
4ca27e3
merge: retain active chart typography in priority candidate
mvalancy Oct 28, 2026
7c1288e
test: retain priority accounting and screenshots in CI artifacts
mvalancy Oct 28, 2026
e957380
test: require readable fallback relationship evidence
mvalancy Oct 28, 2026
4c81366
Merge pull request #223 from GraphDone/feat/clean-graph-symbols-20261028
mvalancy Oct 28, 2026
2c9551b
fix: refresh relationship labels and counts after inspection
mvalancy Oct 28, 2026
55d0aa9
Preserve directional fallback and readable phone trace space
mvalancy Oct 28, 2026
d81a61d
Merge pull request #224 from GraphDone/feat/relationship-priority-202…
mvalancy Oct 28, 2026
73d7947
Make inspector content and nested previews readable
mvalancy Oct 28, 2026
50446e9
Keep long inspector titles and short windows usable
mvalancy Oct 28, 2026
96b2628
Keep drag intent and temporary state scoped to one gesture
mvalancy Oct 28, 2026
cd3a3b7
Keep inspector mode controls readable across system fonts
mvalancy Oct 28, 2026
fa5daff
Give inspector acceptance a separate bounded CI sequence
mvalancy Oct 28, 2026
7a0714d
Remove unused scalar dependency and patch the MCP Hono adapter
mvalancy Oct 28, 2026
74f0bbb
Integrate reviewed dependency correction with inspector acceptance
mvalancy Oct 28, 2026
80972c9
Merge pull request #226 from GraphDone/feat/readable-inspector-20261028
mvalancy Oct 29, 2026
ecec698
Organize agent setup, project access and shared handoffs
mvalancy Oct 29, 2026
bee18f0
Point agent API help to the named setup section
mvalancy Oct 29, 2026
19b1ec9
Make overview buses inspectable and emphasize their endpoints
mvalancy Oct 29, 2026
e20d8fb
Restore bus keyboard focus when zoom exits overview
mvalancy Oct 29, 2026
2426089
Use an explicit callback type in the focus regression
mvalancy Oct 29, 2026
0f0c710
fix(graph): resolve nearby bus input and keyboard ownership
mvalancy Oct 29, 2026
3d1c3cd
Merge pull request #230 from GraphDone/feat/agent-dialog-organization…
mvalancy Oct 29, 2026
796e6c5
merge: compose overview inspection with organized agent dialog
mvalancy Oct 29, 2026
aa3ed5d
docs(graph): define topology and clearance acceptance for organization
mvalancy Oct 29, 2026
54dca55
fix(graph): keep shared bus identity through pointer focus
mvalancy Oct 29, 2026
0bc5dec
test(graph): budget the expanded large-graph inspection journey
mvalancy Oct 29, 2026
d5d78ed
feat(graph): organize by topology and reserve wiring clearance
mvalancy Oct 29, 2026
390be4e
Merge pull request #232 from GraphDone/feat/overview-bus-inspection-2…
mvalancy Oct 29, 2026
db30cfa
fix(graph): retain complete organized scenes and readable centered fr…
mvalancy Oct 29, 2026
887dc7e
Merge remote-tracking branch 'origin/dev' into feat/topology-organiza…
mvalancy Oct 29, 2026
53bd278
fix(graph): keep small phone systems complete and verify painted reloads
mvalancy Oct 29, 2026
5a5af94
docs: retain actual overview zoom budget failure
mvalancy Oct 29, 2026
73c4d94
fix(graph): preserve card clearance during topology refinement
mvalancy Oct 29, 2026
716e1b0
feat(graph): show overview coverage and verify measured clearance
mvalancy Oct 29, 2026
b72a87e
fix(graph): use available phone overview space without shrinking cards
mvalancy Oct 29, 2026
66b0929
fix: defer hidden item graphics and refresh Items on return
mvalancy Oct 29, 2026
2a50662
fix: establish item routes before restoring arrow paint
mvalancy Oct 29, 2026
441c132
fix(graph): refresh the minimap after explicit organization
mvalancy Oct 29, 2026
14bfb38
docs(graph): record dense item LOD failure and local-view contract
mvalancy Oct 29, 2026
66593d0
feat(graph): model readable local item cuts with exact relationship c…
mvalancy Oct 29, 2026
d011edc
fix(graph): release canvas space after completed layout acknowledgments
mvalancy Oct 29, 2026
fb83fec
Merge pull request #236 from GraphDone/fix/overview-render-budget-202…
mvalancy Oct 29, 2026
1667b8e
feat(graph): render readable local views around dense items
mvalancy Oct 29, 2026
9c1f3ac
fix(web): align phone graph actions and navigation across the screen
mvalancy Oct 29, 2026
1f5ff57
Merge remote-tracking branch 'origin/dev' into feat/topology-organiza…
mvalancy Oct 29, 2026
06b4f22
fix(graph): preserve explicit local focus and recover changed filters
mvalancy Oct 29, 2026
a76238a
fix(graph): consume scoped local navigation intent once
mvalancy Oct 29, 2026
aab2dc7
refactor(graph): separate local navigation and card presentation
mvalancy Oct 29, 2026
4fbeba0
fix(graph): reserve full title envelope for narrow local pages
mvalancy Oct 29, 2026
27b1e48
test(graph): gate readable local neighborhoods and dense scale zoom
mvalancy Oct 29, 2026
f38bd1e
test(graph): keep focus regression compatible with scoped lint
mvalancy Oct 29, 2026
06ebcbd
test(graph): verify native isolation and canonical LOD geometry
mvalancy Oct 29, 2026
697714f
docs: remove one-off VM Tailscale troubleshooting note
mvalancy Nov 7, 2026
53392da
Merge fail-closed main promotion gates into current dev
mvalancy Nov 7, 2026
988e394
Publish releases from validated version tags; drop the placeholder de…
mvalancy Nov 7, 2026
206c7c4
chore: fold root tools/, public/, archive/ and loose configs into dom…
mvalancy Nov 7, 2026
1922763
docs: map the repo in AGENTS.md and guard the root with an allowlist
mvalancy Nov 7, 2026
b7c2ca4
chore: ignore symlinked node_modules so worktrees pass the root allow…
mvalancy Nov 7, 2026
f6b9bb7
Release gate: main first-parent commits and main-push jobs only; move…
mvalancy Nov 7, 2026
b664d65
fix: address review on root cleanup
mvalancy Nov 7, 2026
720cbef
fix(graph): keep the first phone tap on freshly organized items
mvalancy Nov 7, 2026
3abae8a
fix(graph): fit short chains to the viewport and frame them from the …
mvalancy Nov 7, 2026
8ee27ea
test(graph): set the 301-item overview pair floor to the reproducible…
mvalancy Nov 7, 2026
cf58c97
perf(graph): render items once when a zoom leaves the overview
mvalancy Nov 7, 2026
b9ef93b
docs: animated techno-futuristic hero banner at the top of the README
mvalancy Nov 7, 2026
c43a6db
fix(graph): defer the overview hand-off only for programmatic zooms
mvalancy Nov 7, 2026
ae47b26
fix(graph): keep the regular overview grid when it holds every card
mvalancy Nov 7, 2026
dd87b87
fix(graph): settle zoom to fit and keep focus on the visible card con…
mvalancy Nov 7, 2026
d196445
fix(agents): compact setup selects and fit approval on a 320x568 phone
mvalancy Nov 7, 2026
9c2217f
test(offline): use a role locator for the shared notes list
mvalancy Nov 7, 2026
48547e0
fix(deps): lock sucrase 3.35.1 to drop glob/minimatch advisories
mvalancy Nov 7, 2026
9a33dfe
fix: address review — bounded fit cache, keyboard-only focus hand-off…
mvalancy Nov 7, 2026
3601fc9
docs(agents): record review lessons for focus hand-off, fit cache and…
mvalancy Nov 7, 2026
1cb9ed5
Fix production web proxy: keep /api prefix and proxy /auth, /config, …
mvalancy Nov 7, 2026
337fca4
fix(graph): pack loose components to the viewport's aspect when it re…
mvalancy Nov 7, 2026
9defd8b
test(graph): pin portrait packing of three loose cards to one column
mvalancy Nov 7, 2026
13c4d18
Merge pull request #237 from GraphDone/docs/readme-hero-banner
mvalancy Nov 7, 2026
2d5c411
Merge remote-tracking branch 'origin/dev' into fix/release-gate-ui-a1…
mvalancy Nov 7, 2026
852f4a1
Merge dev into feat/topology-organization-20261028
mvalancy Nov 7, 2026
a6b482d
Production smoke: complete the advertised sign-in verification
mvalancy Nov 7, 2026
1b0a878
Merge pull request #245 from GraphDone/fix/release-gate-ui-a11y-20261107
mvalancy Nov 7, 2026
37c67f6
Merge remote-tracking branch 'origin/dev' into ci/release-pipeline
mvalancy Nov 7, 2026
b0d6b4d
Merge pull request #240 from GraphDone/docs/remove-vm-tailscale-note-dev
mvalancy Nov 7, 2026
7f7c5db
Merge pull request #242 from GraphDone/chore/root-structure-map
mvalancy Nov 7, 2026
ebd2ad1
Remove private repository and gateway references; guard public content
mvalancy Nov 7, 2026
b743647
Public-content guard: exclude its own rules from the scan
mvalancy Nov 7, 2026
7300420
Merge dev into feat/topology-organization-20261028
mvalancy Nov 7, 2026
bbb1c07
Merge remote-tracking branch 'origin/dev' into ci/release-pipeline
mvalancy Nov 7, 2026
150125c
Merge pull request #246 from GraphDone/docs/no-private-repo-refs
mvalancy Nov 7, 2026
d22f00e
Installer installs main (or GRAPHDONE_REF), never a deleted branch
mvalancy Nov 7, 2026
b48329e
Merge remote-tracking branch 'origin/dev' into ci/release-pipeline
mvalancy Nov 7, 2026
7f91b57
fix(graph): rebase local cards on the restored camera, not a lagging …
mvalancy Nov 7, 2026
5e76858
Merge dev into feat/topology-organization-20261028
mvalancy Nov 7, 2026
a116e79
test(graph): type the frame queue without the DOM-only global
mvalancy Nov 7, 2026
55e683d
Merge pull request #241 from GraphDone/ci/release-pipeline
mvalancy Nov 7, 2026
cc9a667
Merge remote-tracking branch 'origin/dev' into fix/installer-ref-243
mvalancy Nov 7, 2026
86192c1
Merge dev into feat/topology-organization-20261028
mvalancy Nov 7, 2026
90db67d
Merge pull request #247 from GraphDone/fix/installer-ref-243
mvalancy Nov 7, 2026
26e51c9
Version script: record the release version everywhere without re-reso…
mvalancy Nov 7, 2026
c58c492
Version contract: every recorded copy of the release version must match
mvalancy Nov 7, 2026
70f528a
Release version 0.4.0-alpha
mvalancy Nov 7, 2026
156f336
CI: run the version contract with the other repository contracts
mvalancy Nov 7, 2026
aff3a75
Merge pull request #248 from GraphDone/release/v0.4.0-alpha
mvalancy Nov 7, 2026
b9cf59f
Merge remote-tracking branch 'origin/dev' into feat/topology-organiza…
mvalancy Nov 7, 2026
dcde00a
Merge pull request #234 from GraphDone/feat/topology-organization-202…
mvalancy Nov 8, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
74 changes: 74 additions & 0 deletions .agents/inbox/2026-10-23-browser-startup-evidence.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,74 @@
# Distinguish the static loading shell from a mounted application and retain failure traces

Date: 2026-10-23. Searched `tests/e2e/quality/button-content.spec.ts`, the unified
manifest/adapter, Playwright configuration, prior responsive acceptance lessons,
`packages/web/index.html`, and `App.tsx`. Public tracking: #156.

The strict combined acceptance run on frozen
`f8a11e16a593738d485547eb1dfe117438cc3ed6` reported this failure before button
inspection on one route/viewport iteration:

```text
Locator: locator('main')
Timeout: 5000ms
Error: element(s) not found
Snapshot: GraphDone Logo / GraphDone Loading...
```

The screenshot and DOM snapshot exactly match the static HTML shell in
`packages/web/index.html`: Loading text and empty placeholder cards. React's
authenticated initialization screen instead says Initializing and includes
feature text; route Suspense appears inside Layout's main element. Thus this
failure establishes that the mounted application was unavailable at the
deadline, not that a button label was clipped. It does not by itself distinguish
delayed module loading/execution from a startup error.

The screenshot timestamp was 12:53:58 America/Los_Angeles. Docker build/export
work overlapped the run and the generic image build log completed at 12:55:38.
Resource contention is a hypothesis, not a proven cause. The original artifact
did not identify the current route or exact viewport; its 375-by-1144 full-page
PNG dimensions do not establish the viewport. No trace existed because the
global setting was on-first-retry while the strict sequence used zero retries.
Artifacts remain in the candidate worktree's ignored
`test-artifacts/playwright-output/quality-button-content-*/` directory and must
be preserved before another run.

Corrective rule: keep zero retries and existing deadlines, but record
retain-on-failure traces for required browser sequences. Label every route and
viewport iteration and attach bounded browser errors when the sweep fails.
Copy trace/diagnostic files into the retained unified report before another
Playwright process can clear its shared output directory. Do not equate the
absence of API errors with successful frontend startup.

Evidence-only correction on public PR175 base `1a16d4e`: three new controlled
child-process tests first failed because the actual Playwright command lacked
failure-only tracing. A fourth failed because the adapter dropped trace and JSON
attachments. After correction, Node 22.23.4 `npm run test:unified:lib` passed
156/156 with zero skips, including bounded event capture, credential/URL
sanitization, listener cleanup, and file retention after deleting the original
Playwright output. Playwright `--list` still collected the single unchanged
button sweep. Logs: `/tmp/core-browser-diagnostics-{red,retention-red,final}.log`.

Independent review then reproduced a source-boundary defect inherited from the
image/video materializer: an attachment could name an unrelated local file or
follow a symlink, copying it into a downloadable report. Owned outside-root
sentinels established the failure without reading real secrets. Four new CLI
controls failed before correction (outside-root source, file symlink, parent
directory symlink, and directory instead of a file). New downloadable files now
require regular files under the canonical repository `test-artifacts` root with
no symlink traversal; the adapter rejects unsafe evidence and the materializer
rechecks immediately before copying. The legitimate copy/retention case still
passes. Final stdlib validation: 160/160 passed, zero skips, recorded in
`/tmp/core-browser-diagnostics-reviewed.log`.

The custom JSON diagnostic capture applies bounded credential/URL redaction;
Playwright trace ZIPs remain raw and can contain network headers and bodies.
Retain those locally with the disposable test artifacts and share measured
summaries, not raw authenticated traces. Standalone and dashboard report views
both render these new files as escaped download links rather than images.

Limits: these checks validate evidence collection and command forwarding, not
the underlying startup failure or deployed health. No browser was launched and
no application code, deadline, retry policy, or assertion threshold changed in
this correction. A serialized complete acceptance rerun is still required;
retain the earlier failed run and distinguish observations from causal claims.
17 changes: 17 additions & 0 deletions .agents/inbox/2026-10-23-core-startup-and-save-evidence.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
# Builds and save acknowledgements need boundary-specific validation

Date: 2026-10-23. Existing guidance searched: `docs/quality/TEST_STRATEGY.md`,
the dated runtime/durability lessons, and `.agents/issues/INDEX.md`. This pointer
keeps the detailed incident records canonical rather than duplicating them.

| Symptom / cause | Canonical dated evidence, correction and limits |
| --- | --- |
| A successful build hid API peer-resolution and launcher failures | [Runtime validation](../../docs/quality/RUNTIME_VALIDATION_2026-10-23.md): use a pinned clean install, actual startup, supported runtimes and owned browser fixtures. Container/build success alone is not deployment evidence. |
| Missing/default production secrets were accepted; `.env` loaded after key capture | [Production secrets](../../docs/quality/PRODUCTION_SECRETS_2026-10-23.md): validate configuration before authentication initializes; negative controls must stop before DB/listen, with configured positive controls. The later integrated lint check found an ambient type annotation missed by typecheck; the type-only follow-up preserves runtime behavior. |
| A delayed save/refetch erased a newer date edit or repopulated cleared undo history | [Details-save completion](../../docs/quality/DETAILS_SAVE_COMPLETION_2026-10-23.md): preserve newer fields, scope completion to the current editor, require the expected acknowledgement, and retain the undo clear generation. Real Apollo regressions preserve failing-before evidence; they do not replace the combined browser gate. |

Commands, observed outputs, source revisions and scope limits remain in those
dated records and the [Core merge-validation ledger](../../docs/quality/CORE_VALIDATION_2026-10-23.md).
Keep failed runs and synthetic execution failures distinguishable from product
cases. Carry these pointers and their regressions through public review; neither
an unpublished local note nor a pending ledger field is a release pass.
11 changes: 11 additions & 0 deletions .agents/inbox/2026-10-23-dependency-audit-scope.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
# Audit counts need source reachability and bounded regression evidence

On 2026-10-23, the unchanged runtime lock at `6b2a007` produced 23 full-audit package entries and eight production-only entries. An isolated lint-tool correction reduced the full count to 17, while production remained eight. The canonical [security scope](../../docs/quality/SECURITY_SCOPE_2026-10-23.md) records families, priorities, authentication probes, and limits.

Evidence: `npm audit --package-lock-only --json`, `npm audit --omit=dev --json`, a clean lockfile install, `npm run lint`, `npm run test:unified:lib` (106 passed), and `npm run test` (434 passed, 25 database-gated skips). The minimatch regression fails against 9.0.3 at its bounded two-second child deadline and passes against the scoped 9.0.7 override. A separate real in-memory SQLite probe returned two successful verifications of one magic-link token; a synthetic CAPTCHA code was also accepted. No deployed credentials or shared database were inspected.

Cause: advisory severity and dependency classification do not describe the actual call site. Conversely, a browser-only lockout and a green production dependency gate do not establish backend abuse controls. Historical documentation had described UI attempt tracking as completed brute-force protection.

Corrective rule: record the exact source/lock snapshot, distinguish package entries from distinct vulnerabilities, trace runtime inputs and deployment packaging, reproduce suspected application gaps in owned fixtures, and keep version updates narrow enough to validate. Preserve negative controls in the existing harness; do not suppress findings by relabeling dependency categories.

Limits: reachability conclusions are bounded source observations, not proof of non-exploitability. Authentication follow-ups remain open. The security-scope document is the reviewable record; local log paths alone are not published validation.
42 changes: 42 additions & 0 deletions .agents/inbox/2026-10-23-dev-admin-integration.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
# Owner-authorized admin integration still needs independent evidence and post-merge checks

Date: 2026-10-23. Searched `CLAUDE.md`, the symptom index and the existing
live-ref/transport lesson. Earlier audit notes recorded a non-author approval
blocker. The owner then explicitly authorized leaving `dev` administrator
enforcement disabled permanently, with a high testing bar for agent integration.
This changed the operating authorization; it did not create a non-author review.

The first integration used the native admin merge for
[PR #157](https://github.com/GraphDone/GraphDone-Core/pull/157); no SSH fallback
was needed. Read-only
verification on 2026-10-23 returned:

```text
gh pr view 157 --repo GraphDone/GraphDone-Core --json state,headRefOid,mergeCommit,mergedAt
state: MERGED
head: 385e7679fabc60b80cd65cf0a1aa4cdf3d592514
merge: 9068cd31824991330c6d92196654e53e04e29063
mergedAt: 2026-10-23T22:22:22Z

git ls-remote origin refs/heads/dev
9068cd31824991330c6d92196654e53e04e29063 refs/heads/dev
```

The merge parents are `8a7de052eb60fe517f45681dc42b5b169d09c660` and the frozen
`385e767` head. Its complete tree `6bf014bcc30eb6e21c0deeae4db9c7d4effeaac2`
equals that validated source. A read-only protection query confirmed
`enforce_admins: false`, configured approval count 1, and force pushes/deletions
disabled. The owner-directed exemption is not an approval record. Post-merge
CI was still running when this lesson was prepared; issue closure remains gated
on its actual result.

Corrective rule: use the [canonical dev integration playbook](../playbooks/dev-admin-integration.md),
freeze and independently review the diff, preserve failed/passing evidence,
verify source/base/result provenance and complete post-merge checks. Keep the
standing exception scoped to `dev`; do not toggle protection or change identity.
Historical pre-authorization notes remain historical evidence.

Limits: this authorization does not cover `main`, release or deployment actions,
force pushes, history rewriting, expanded credentials or any other protection
change. The documented docs-only exception requires exhaustive non-document
byte-equivalence proof and independent review; it does not excuse final CI.
21 changes: 21 additions & 0 deletions .agents/inbox/2026-10-23-folder-delete-legacy-hierarchy.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
# Deletion authority includes pre-existing descendant folders

On 2026-10-23, review of SEC-FOLDER-1 found that validating a folder's owner was insufficient when older records could place another user's folder below it. The new creation/reparenting checks prevent new cross-domain trees, but do not repair existing records.

## Evidence

The real in-memory SQLite fixture initializes with `PRAGMA foreign_keys=0`, matching the store's current connection defaults. Deleting an owned parent succeeds and leaves a foreign descendant with a missing ancestor. With `PRAGMA foreign_keys=1`, the declared `ON DELETE CASCADE` removes the foreign descendant. Both the standalone and Neo4j-generated GraphQL schemas reached this SQLite behavior. No shared or production database was used.

Command: `npm run test --workspace @graphdone/server -- tests/folder-authorization.test.ts` with the new tests copied onto commit `0c2322cdfb2669c7fb2c057ea62df583736aba62`.

Observed on 2026-10-23: **10 failed, 32 passed**. The failures cover nested foreign descendants with foreign keys off/on, another writable ownership domain, and destinations inside the deleted subtree. With foreign keys on, the foreign descendant query returns an empty array after deletion. A legitimate same-domain cascading deletion remains a passing control.

After correction, `npm run test --workspace @graphdone/server` reports **70 passed**, including all 42 folder cases; server typechecking passes. Local evidence: `/tmp/graphdone-folder-subtree-baseline-final.log` and `/tmp/graphdone-folder-subtree-full-green.log`. These local paths are evidence pointers, not published validation artifacts.

## Cause and corrective rule

Authorization must cover every record a destructive operation can affect, including records connected through database cascades. Before moving any graph references or deleting a folder, recursively enumerate existing descendants, require write access to each, and require the same ownership domain. Reject a graph destination that is the deleted folder or one of its descendants. Use a cycle-safe recursive query so malformed legacy trees cannot loop indefinitely.

## Limits

This change does not migrate malformed hierarchies, enable foreign-key enforcement, or redefine valid same-domain folder deletion. It tests actual SQLite and both GraphQL schemas; graph metadata and the Neo4j version probe are simulated. Live backend and browser validation remain separate release gates. The repository had no `.agents/WRITING-IT-DOWN.md` or existing lesson index when this incident was recorded; the related API guidance and regression suite carry the rule with the fix.
9 changes: 9 additions & 0 deletions .agents/inbox/2026-10-23-magic-link-consumption.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
# Consume single-use identity tokens with a guarded database update

On 2026-10-23, real in-memory SQLite regressions on runtime base `5f0f454` reproduced concurrent magic-link replay and inactive-account acceptance. The selected before-fix run failed two cases and passed one. A further controlled delayed-write regression failed against the first fix `4f4b782` because its expiry timestamp was captured before the statement executed. The final full server run passed 39 cases, including all eleven new magic-link cases. Commands and evidence are recorded in the [review note](../../docs/quality/MAGIC_LINK_REPLAY_2026-10-23.md).

Cause: selecting an unused token does not reserve it. The previous update neither checked unused/expiry state again nor waited for its outcome before returning identity.

Corrective rule: atomically transition unused state using the database's execution-time expiry predicate, await completion, and require exactly one affected row before returning or creating identity. Check current account activity. Exercise real concurrent requests, expiry boundaries, and actual database failures; mock success callbacks alone cannot establish single-use behavior.

Limits: this shared verifier still serves both login and reset flows. Purpose separation, other authentication controls, and deployed HTTP/email behavior remain separate work. A failure after successful consumption deliberately requires a fresh link. No shared database or deployed secrets were used.
80 changes: 80 additions & 0 deletions .agents/inbox/2026-10-23-main-promotion-release-gates.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,80 @@
# A validated dev tree does not validate main-only publication or persistence

## Correction and verified runtime evidence — 2026-10-24 UTC

The original findings below led to the reviewed correction in
[PR #191](https://github.com/GraphDone/GraphDone-Core/pull/191). Publishing is now
read-only build validation; unfinished Release/Deploy actions explicitly fail.
Selected production validation is part of CI Success and runs on main PRs.
SQLite uses the actual server workspace volume path with migration guidance.

On clean `abc29d9dbe0da966cbc22976feebaa2dfced21c1`, the corrected owned HTTPS
stack passed all six headed smoke cases with zero Playwright retries, all seven
persistence checks, source invariance and owned container/volume/network cleanup.
The initial production browser failure is retained; it exposed a helper that
relied on development quick login instead of selecting the existing Password tab.
[Public result and limits](https://github.com/GraphDone/GraphDone-Core/pull/191#issuecomment-6377298729).

The actual main merge and its final CI remain tracked in
[#189](https://github.com/GraphDone/GraphDone-Core/issues/189). Exact-SHA publication
and real deployment are intentionally disabled and tracked in
[#190](https://github.com/GraphDone/GraphDone-Core/issues/190). This evidence does
not claim deployment to graphdone.com. The original inspection below is preserved
as historical cause and boundary evidence, not a current list of unfixed defects.


Date: 2026-10-23. Searched the symptom index, the dev admin-integration
playbook, and the validation ledger before inspecting main promotion.
The owner requested a clean, quota-conscious finish and promotion of good work
to main. Dev validation is complete; the remaining release work is tracked in
[issue #189](https://github.com/GraphDone/GraphDone-Core/issues/189).

Dated composition evidence:

```text
main: 775362eace0723c57b7ba3c7936645c9d0d36cb4
validated dev: ef495eff15ed7aac51e72dc7a1db1bb96d2b3695
local normal merge: 88ce10dc8c39b1687c180ff22db20744c4bf2996
merge parents: main775362ea + dev ef495eff
merge conflicts: none
merge tree: 6bdd9d820f98b9882c3dcf6a110badd88bfe78bc
all 683 tracked entries equal validated dev, including modes/types/blob IDs
```

The two main-only commits were merge wrappers whose trees equal their source
parents. Independent review confirmed the candidate's complete composition,
not its release readiness. The two documentation paths added by this handoff
are separate from that original byte-identical candidate; no runtime code was
changed for the checkpoint.

Read-only source findings at `ef495eff`:

- `.github/workflows/docker-publish.yml` runs even for main-target PRs and sets
`push: true` before validation; main publication can move `latest`.
- Main-only production smoke has no matching generated admin credential, weak
HTTP readiness and retry-tolerant raw smoke; `CI Success` omits that job.
- Compose mounts SQLite at `/app/data`, while the API workspace resolves its
database under `/app/packages/server/data`; recreation persistence needs an
owned-container negative/positive test.
- Deploy uses a missing root Dockerfile, unpinned CI-completion checkout and
echo/TODO deployment steps. A successful message is not a deployment.

Cause: development browser/API validation does not exercise the different
production Compose paths, registry event conditions or deployment actions.
A mergeable tree can therefore still have release blockers.

Corrective rule: inspect event side effects before opening the promotion PR;
make PR builds nonpublishing, pin publication to validated source, repair the
owned production fixture/readiness/result propagation, and verify SQLite
persistence through container recreation. Run one deliberate production-stack
gate after the focused correction. Preserve the existing main protections
unless the owner explicitly authorizes a different admin policy. The standing
dev exemption does not silently extend to main.

Resume in the order and acceptance criteria in issue #189. Do not open a main
PR while its existing hook still publishes to GHCR. Keep the reviewed source
and this handoff committed; do not force-push or rewrite either history.

Limits: these are source findings, not newly executed production failures.
No production-stack run, registry publication, deployment or main protection
change was performed for this review. No runtime resources were started.
Loading
Loading