Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
204 commits
Select commit Hold shift + click to select a range
92224c4
docs(ui): reproduce the review call feedback and plan the fixes
BernhardJackiewicz Oct 2, 2026
6a9a9d0
fix(ui): open node and symbol scopes one layer deep
BernhardJackiewicz Oct 2, 2026
2bc10e1
fix(ui): keep Selection details inside the galaxy stage
BernhardJackiewicz Oct 2, 2026
6e400a3
fix(ui): zoom the architecture scenes toward the cursor
BernhardJackiewicz Oct 2, 2026
e341a49
fix(ui): keep the galaxy canvas mounted while a scope re-lays out
BernhardJackiewicz Oct 2, 2026
0b03df4
fix(ui): zoom the galaxy toward the cursor
BernhardJackiewicz Oct 2, 2026
e46f376
fix(ui): say why the system structure is empty
BernhardJackiewicz Oct 2, 2026
c3fe308
fix(ui): describe Galaxy selections to the local agent as readable facts
BernhardJackiewicz Oct 2, 2026
69b2ac6
fix(ui): send trace_path direction and depth in the server's vocabulary
BernhardJackiewicz Oct 2, 2026
447e2d9
fix(ui): take scoped hierarchy hops from the discovered levels
BernhardJackiewicz Oct 2, 2026
b38ba08
fix(ui): answer caller and callee questions from the loaded graph
BernhardJackiewicz Oct 2, 2026
ef67255
fix(ui): frame the next scope picture along the kept view direction
BernhardJackiewicz Oct 2, 2026
0fb9504
fix(ui): reuse selection explanations and wait for complete scopes
BernhardJackiewicz Oct 2, 2026
0e8b2c1
fix(ui): keep the galaxy root pinned, marked and framed
BernhardJackiewicz Oct 2, 2026
41f7383
fix(store): bound the overview entries so Django-sized graphs render
BernhardJackiewicz Oct 2, 2026
9e27ae3
feat(ui): set and keep local agent token limits per model
BernhardJackiewicz Oct 2, 2026
369e999
feat(ui): show the local agent as a robot with a status lamp
BernhardJackiewicz Oct 2, 2026
080c79f
feat(ui): add a path and call order view to the scoped galaxy
BernhardJackiewicz Oct 2, 2026
db4c441
style(ui): replace long dashes in the browser agent code
BernhardJackiewicz Oct 2, 2026
8961287
fix(ui): offer flow entries when Behavior has no entry points
BernhardJackiewicz Oct 2, 2026
4cb8d6d
fix(ui): rank path targets by name and name the active step
BernhardJackiewicz Oct 2, 2026
01cc2c0
fix(ui): keep the scoped galaxy toolbar on one row
BernhardJackiewicz Oct 2, 2026
648daf7
fix(store): classify Python test files by name in the architecture pr…
BernhardJackiewicz Oct 2, 2026
2e0b8ea
fix(ui): keep the architecture overview readable inside large areas
BernhardJackiewicz Oct 2, 2026
b2d75ce
feat(ui): group endpoints and hide test routes in Routes
BernhardJackiewicz Oct 2, 2026
1c36129
fix(store): count route handlers as architecture entry points
BernhardJackiewicz Oct 2, 2026
016861e
chore(ui): clear the style gate hits outside the chat surfaces
BernhardJackiewicz Oct 2, 2026
d74fc71
fix(ui): count an answer that ends on its last allowed token as finished
BernhardJackiewicz Oct 2, 2026
d53b008
fix(ui): keep large Galaxy scopes whole for the local agent
BernhardJackiewicz Oct 2, 2026
ebef3d7
fix(ui): drop a stale galaxy path and leave Escape to overlays and fi…
BernhardJackiewicz Oct 2, 2026
ee5d4e8
fix(ui): list callers only for the selected symbol and only on list q…
BernhardJackiewicz Oct 2, 2026
37fd34b
fix(ui): keep the placeholder picture out of galaxy filters and counts
BernhardJackiewicz Oct 2, 2026
0f202d7
fix(ui): release the local agent when another tab picks another model
BernhardJackiewicz Oct 2, 2026
fdb8142
fix(ui): let the input limit decide how much evidence a question carries
BernhardJackiewicz Oct 2, 2026
62257fd
fix(ui): retire a cached explanation when its scope's evidence changed
BernhardJackiewicz Oct 2, 2026
9b26e19
fix(ui): treat a nested test package as product code in Routes
BernhardJackiewicz Oct 2, 2026
3ae2aa4
fix(ui): show exactly a route group's routes when it is opened
BernhardJackiewicz Oct 2, 2026
b504f0a
fix(ui): keep neighbouring architecture labels off each other's text
BernhardJackiewicz Oct 2, 2026
9bb07f5
test(ui): guard the scope heights and cursor zoom of the architecture…
BernhardJackiewicz Oct 2, 2026
6c1337b
fix(ui): give the add-index entry its own catalog keys
BernhardJackiewicz Oct 2, 2026
7c81674
fix(store): skip test-registered routes and rank indexed entry points…
BernhardJackiewicz Oct 2, 2026
7c7dce8
fix(store): give every overview group its share of listed entries
BernhardJackiewicz Oct 2, 2026
028b341
fix(store): keep a top-level test/ directory as a test signal for Python
BernhardJackiewicz Oct 2, 2026
9d6a5c8
style(store): split a declaration and name the entry point passes
BernhardJackiewicz Oct 2, 2026
971b223
Merge call-feedback stream: backend (C): architecture projection budg…
BernhardJackiewicz Oct 2, 2026
6a3001a
Merge call-feedback stream: architecture views, routes and style gate…
BernhardJackiewicz Oct 2, 2026
9931199
Merge call-feedback stream: galaxy scope stability, root framing and …
BernhardJackiewicz Oct 2, 2026
41b1e3e
Merge call-feedback stream: local agent evidence, answers, limits and…
BernhardJackiewicz Oct 2, 2026
da9d5c2
style(store): brace the new projection branches and classify nodes once
BernhardJackiewicz Oct 2, 2026
c970c04
fix(ui): keep the whole graph on screen while the first scope picture…
BernhardJackiewicz Oct 2, 2026
82a761f
fix(ui): add ranked flows to a short Behavior start list
BernhardJackiewicz Oct 2, 2026
70e0513
fix(ui): show percent-encoded route paths as people read them
BernhardJackiewicz Oct 2, 2026
e4bb705
test(ui): accept the call-feedback fixes with measured browser checks
BernhardJackiewicz Oct 2, 2026
dd336e5
chore(ui): record the green style gate and promise scan
BernhardJackiewicz Oct 2, 2026
f14674e
docs(ui): record the implementation and acceptance of the call feedback
BernhardJackiewicz Oct 2, 2026
a2bcaaf
fix(ui): wrap long lines in the expanded chat source block
BernhardJackiewicz Oct 3, 2026
2651fbc
fix(ui): head explanation evidence with words instead of numbered ids
BernhardJackiewicz Oct 3, 2026
7bc0e70
fix(ui): explain a cut answer and offer the way to a longer one
BernhardJackiewicz Oct 3, 2026
fb9b9d3
fix(ui): recognize caller questions with typos and offer unsure ones
BernhardJackiewicz Oct 3, 2026
80b8f79
feat(ui): add Galaxy back and forward and keep the scope on empty clicks
BernhardJackiewicz Oct 3, 2026
08cff6a
fix(ui): answer a question without context instead of asking the model
BernhardJackiewicz Oct 3, 2026
fbed70a
fix(ui): keep earlier answers about another file or selection out of …
BernhardJackiewicz Oct 3, 2026
a436eac
fix(ui): load deep Galaxy layers in large pages, show progress, allow…
BernhardJackiewicz Oct 3, 2026
3f29dc5
fix(ui): name the shown operation in the Behavior Start field
BernhardJackiewicz Oct 3, 2026
127db22
fix(ui): tell a project without deployment files from a read error
BernhardJackiewicz Oct 3, 2026
1999aab
fix(ui): show the part that tells similar route labels apart
BernhardJackiewicz Oct 3, 2026
d2f0826
fix(ui): record a repeated log message once per session with a count
BernhardJackiewicz Oct 3, 2026
196daaa
fix(ui): draw every Architecture scene in the green of the IDE
BernhardJackiewicz Oct 3, 2026
cbeed8b
fix(ui): keep the scoped Galaxy toolbar to one row with the chat open
BernhardJackiewicz Oct 3, 2026
ca9382d
fix(ui): keep folder and lane names clear of the map chips
BernhardJackiewicz Oct 3, 2026
371c271
fix(ui): name every Behavior call box and count the same calls
BernhardJackiewicz Oct 3, 2026
495e27a
fix(ui): show the loaded scope's relationships in Galaxy selection de…
BernhardJackiewicz Oct 3, 2026
0e95796
test(ui): check the Architecture and log fixes of the hand test in a …
BernhardJackiewicz Oct 3, 2026
c13c160
fix(ui): ground automatic explanations in listed facts and the symbol…
BernhardJackiewicz Oct 3, 2026
1ed66ce
fix(ui): frame a shown Galaxy path and keep its edge labels off node …
BernhardJackiewicz Oct 3, 2026
67c1015
fix(ui): bind Explore answers to the open file and say what kind it is
BernhardJackiewicz Oct 3, 2026
86af069
fix(ui): lay out the Galaxy scope hierarchy left, centre and right
BernhardJackiewicz Oct 3, 2026
95a3315
fix(ui): keep the agent across reloads and project switches from the …
BernhardJackiewicz Oct 3, 2026
96fbec6
fix(ui): make cancelling a Galaxy layer a step back in the history
BernhardJackiewicz Oct 3, 2026
d7ea48a
fix(ui): keep the configuration header in view at the output limit
BernhardJackiewicz Oct 3, 2026
6d75139
docs(ui): record the cancel and empty-canvas rules of the Galaxy history
BernhardJackiewicz Oct 3, 2026
0c84b05
fix(ui): resume the agent once per page after a project switch
BernhardJackiewicz Oct 3, 2026
f8757fa
fix(ui): word the no-context reply as a state, not a promise
BernhardJackiewicz Oct 3, 2026
3d214f5
fix(ui): read a stored chat topic defensively
BernhardJackiewicz Oct 3, 2026
ad1805d
fix(ui): keep a large finished Galaxy layer as an arranged cloud
BernhardJackiewicz Oct 3, 2026
b5c9f57
fix(ui): count only identical log entries and keep a count beside its…
BernhardJackiewicz Oct 3, 2026
f84638b
fix(ui): show the read source under a listed answer too
BernhardJackiewicz Oct 3, 2026
abee052
fix(ui): space the buttons under a suggested relationship answer
BernhardJackiewicz Oct 3, 2026
b838e20
test(ui): browser checks for the chat items of the hand test
BernhardJackiewicz Oct 3, 2026
64c1916
fix(ui): name a Behavior start that calls itself instead of counting it
BernhardJackiewicz Oct 3, 2026
a644d8c
fix(ui): keep folder names in place while the pointer moves over chips
BernhardJackiewicz Oct 3, 2026
f0bbaf1
fix(ui): show the differing end of routes with a long shared start
BernhardJackiewicz Oct 3, 2026
8c3491f
fix(ui): drop the prompt capacity note from a card with listed facts
BernhardJackiewicz Oct 3, 2026
112abd4
fix(ui): draw Behavior and Service map calls in the green of the scheme
BernhardJackiewicz Oct 3, 2026
8079aff
fix(tools): skip the style gate's committed report when it writes els…
BernhardJackiewicz Oct 3, 2026
d173178
fix(ui): keep the Galaxy selection on Back and cancel to the same root
BernhardJackiewicz Oct 3, 2026
a2e140f
fix(ui): name the Galaxy history group and the root source button
BernhardJackiewicz Oct 3, 2026
ec5fa40
fix(ui): name the real last line of a file in the source pager
BernhardJackiewicz Oct 3, 2026
15562c4
fix(ui): let a hovered chip keep its size so its neighbours stay
BernhardJackiewicz Oct 3, 2026
067e5ca
test(ui): check the review fixes of the hand test in a browser
BernhardJackiewicz Oct 3, 2026
284937d
fix(ui): count Galaxy layer progress per page and warn on hubs early
BernhardJackiewicz Oct 3, 2026
b7ee993
fix(ui): start a returning file or selection fresh in the chat prompt
BernhardJackiewicz Oct 3, 2026
3620691
fix(ui): read the symbol source for a listed answer and its model que…
BernhardJackiewicz Oct 3, 2026
e43a777
fix(ui): fit the scoped Galaxy toolbar by measuring instead of clipping
BernhardJackiewicz Oct 3, 2026
59a717a
fix(ui): read the direction of an unsure call question after the whol…
BernhardJackiewicz Oct 3, 2026
76ad98f
fix(ui): offer the choices under a German suggestion in German
BernhardJackiewicz Oct 3, 2026
55ebda4
fix(ui): count the jobs, triggers and actions of an open workflow file
BernhardJackiewicz Oct 3, 2026
169f6a5
fix(ui): name the function each Behavior call reaches in its facts
BernhardJackiewicz Oct 3, 2026
76fb819
fix(ui): keep names in a two-layer Galaxy hierarchy and tidy its edge…
BernhardJackiewicz Oct 3, 2026
b434037
fix(ui): shorten "All graph" in a narrow scoped Galaxy toolbar
BernhardJackiewicz Oct 3, 2026
4cf470b
test(ui): browser checks for the review findings on the chat items
BernhardJackiewicz Oct 3, 2026
cf0bd5e
Merge hand-test fixes: architecture views, colours, labels and log co…
BernhardJackiewicz Oct 3, 2026
5d13cec
Merge hand-test fixes: galaxy history, layers, toolbar, hierarchy and…
BernhardJackiewicz Oct 3, 2026
5282faa
Merge hand-test fixes: local agent grounding, context and lifecycle (…
BernhardJackiewicz Oct 3, 2026
c5c2a2d
fix(ui): say test routes are being checked while route evidence loads
BernhardJackiewicz Oct 3, 2026
844d412
test(ui): accept grounded explanations and wait for route evidence
BernhardJackiewicz Oct 3, 2026
9901f97
feat(ui): Architecture back and forward on the shared history (K27)
BernhardJackiewicz Oct 3, 2026
d354983
test(ui): browser check for Architecture back and forward (K27)
BernhardJackiewicz Oct 3, 2026
8e6edc8
fix(ui): keep Architecture cameras and call-chain position in the his…
BernhardJackiewicz Oct 3, 2026
e617e70
test(ui): browser check for Architecture cameras, call chain and type…
BernhardJackiewicz Oct 3, 2026
80dd23d
Merge hand-test fix: Architecture back and forward on the shared hist…
BernhardJackiewicz Oct 3, 2026
3b909a0
fix(ui): switch projects in the page and keep the loaded agent (K24)
BernhardJackiewicz Oct 3, 2026
ecf8618
fix(ui): offer the selection for a misspelled caller question and rea…
BernhardJackiewicz Oct 3, 2026
c46b3b2
fix(ui): explain configuration and text files by their facts only (K12)
BernhardJackiewicz Oct 3, 2026
a3224f7
fix(ui): describe an opened Architecture area with nothing selected (K7)
BernhardJackiewicz Oct 3, 2026
090cf0d
fix(ui): name the input limit in the note under a cut automatic expla…
BernhardJackiewicz Oct 3, 2026
1a60ba8
test(ui): browser checks for the in-page project switch and the chat …
BernhardJackiewicz Oct 3, 2026
2e6db07
fix(ui): end the source pager at the file's real last line (K13)
BernhardJackiewicz Oct 3, 2026
90de513
test(ui): acceptance G7 also measures the toolbar with the chat open …
BernhardJackiewicz Oct 3, 2026
33c3098
fix(ui): keep the root names in the Explore mini-Galaxy apart (K12)
BernhardJackiewicz Oct 3, 2026
bd02f3f
fix(ui): keep a Galaxy hierarchy truthful from two layers on (K5)
BernhardJackiewicz Oct 3, 2026
7e73441
feat(ui): spell out Back and Forward while the Galaxy toolbar has roo…
BernhardJackiewicz Oct 3, 2026
b864f93
test(ui): browser checks for the Galaxy completeness gaps (K2, K3, K5…
BernhardJackiewicz Oct 3, 2026
701ac90
fix(ui): count a YAML list of mappings as a list in the file facts (K12)
BernhardJackiewicz Oct 3, 2026
83c6220
fix(ui): count the parts outside an opened area in its card (K7)
BernhardJackiewicz Oct 3, 2026
0bb4c37
fix(ui): post each log line under the page it was written on (K24)
BernhardJackiewicz Oct 3, 2026
f2f30e8
fix(ui): keep the download progress across a project switch (K24)
BernhardJackiewicz Oct 3, 2026
b824b34
test(ui): browser checks for the K24 switch situations and the YAML f…
BernhardJackiewicz Oct 4, 2026
035ebe5
Merge completeness fixes: galaxy completeness gaps (K2, K3, K5, K12, …
BernhardJackiewicz Oct 4, 2026
04255f6
Merge completeness fixes: chat, agent and in-page project switch gaps…
BernhardJackiewicz Oct 4, 2026
ea8c623
test(ui): measure the typed-then-Back window inside the page (K27)
BernhardJackiewicz Oct 4, 2026
6bd3bef
docs(ui): record the hand test round K1 to K28 and its checks
BernhardJackiewicz Oct 4, 2026
1d4c4ad
test(ui): run the acceptance and architecture checks without a window
BernhardJackiewicz Oct 4, 2026
a93edb2
fix(ui): hide Change the output limit when the limit is at its maximu…
BernhardJackiewicz Oct 4, 2026
81e470b
fix(ui): keep Galaxy scene labels below its overlay panels
BernhardJackiewicz Oct 4, 2026
26bfbf5
fix(ui): compare named identifiers with the given text case-insensiti…
BernhardJackiewicz Oct 4, 2026
397b5dc
fix(ui): put Architecture Back and Forward first, as in Galaxy, and c…
BernhardJackiewicz Oct 4, 2026
03bbf2c
fix(ui): tell the chat when a Galaxy layer stopped at the render limi…
BernhardJackiewicz Oct 4, 2026
7b19d3c
fix(ui): list callers apart from other incoming relationships, with r…
BernhardJackiewicz Oct 4, 2026
5046bd2
fix(ui): ask the local model to answer in the language of the questio…
BernhardJackiewicz Oct 4, 2026
91d47cb
fix(ui): make the Architecture Refresh buttons say what they did (A3)
BernhardJackiewicz Oct 4, 2026
282df0a
fix(ui): keep path labels off the hierarchy band title
BernhardJackiewicz Oct 4, 2026
57090cb
fix(ui): let tooltips ignore fields of closed menus
BernhardJackiewicz Oct 4, 2026
3d51f86
fix(ui): make the Expand +1 warning true and show it at once
BernhardJackiewicz Oct 4, 2026
edf2417
fix(ui): make the Behavior start list findable: suggestions, alphabet…
BernhardJackiewicz Oct 4, 2026
1d861f6
fix(ui): answer general questions, empty prompts and file questions w…
BernhardJackiewicz Oct 4, 2026
7c02114
fix(ui): keep the workspace in the address on a project switch (A5)
BernhardJackiewicz Oct 4, 2026
0db6836
fix(ui): read a single unnamed list item of a configuration file with…
BernhardJackiewicz Oct 4, 2026
63e2f40
test(ui): expect file questions answered from the file in the chat ch…
BernhardJackiewicz Oct 4, 2026
bc7433a
Merge second hand test fixes: Galaxy labels, hierarchy band title, Ex…
BernhardJackiewicz Oct 4, 2026
6002e39
Merge second hand test fixes: Architecture navigation, Recent menus, …
BernhardJackiewicz Oct 4, 2026
789b18d
Merge second hand test fixes: chat facts, listed answers, name check,…
BernhardJackiewicz Oct 4, 2026
dc931f7
fix(ui): state that a selection's symbols are outside the loaded scope
BernhardJackiewicz Oct 4, 2026
27d0081
fix(ui): say in the chat how a layer stops at the render limit
BernhardJackiewicz Oct 4, 2026
a1059d9
fix(ui): call a finished scope fully loaded
BernhardJackiewicz Oct 4, 2026
a3432f8
fix(ui): keep the listed answer when the model is asked about it
BernhardJackiewicz Oct 4, 2026
9d6e69f
fix(ui): write relationship counts with their units
BernhardJackiewicz Oct 4, 2026
1b696ea
fix(ui): read "test" as a prompt without a question in any open file
BernhardJackiewicz Oct 4, 2026
a2fe871
fix(ui): head a listed answer with the callers it lists
BernhardJackiewicz Oct 4, 2026
c395bd5
fix(ui): say "Back to" and send a returned topic's own earlier turns
BernhardJackiewicz Oct 4, 2026
94ac121
fix(ui): say why the model sentence was left out
BernhardJackiewicz Oct 4, 2026
17ec5b8
fix(ui): paint the Galaxy overlays opaque so no scene label shows thr…
BernhardJackiewicz Oct 4, 2026
68dcdef
fix(ui): offer only what helps in the token limit note
BernhardJackiewicz Oct 4, 2026
4ba4d5a
fix(ui): flag only real names in the unknown names note
BernhardJackiewicz Oct 4, 2026
30d4d6a
fix(ui): outline INI files and say what well-known files are for
BernhardJackiewicz Oct 4, 2026
a5f3df2
fix(ui): keep German answers German and name the Galaxy controls
BernhardJackiewicz Oct 4, 2026
011f414
fix(ui): show the node hover card above the Galaxy panels
BernhardJackiewicz Oct 4, 2026
7763909
fix(ui): smooth the German chat wording and fit examples to the kind
BernhardJackiewicz Oct 4, 2026
da5751a
fix(ui): say what the selected code declares in grounded answers
BernhardJackiewicz Oct 4, 2026
6980f6d
fix(ui): leave out a path label that finds no free spot
BernhardJackiewicz Oct 4, 2026
1555765
fix(ui): write the Architecture card plainly and with one number format
BernhardJackiewicz Oct 4, 2026
ef95339
fix(ui): say why Expand +1 is blocked while a layer loads
BernhardJackiewicz Oct 4, 2026
376e106
fix(ui): answer general questions about code files from the file
BernhardJackiewicz Oct 4, 2026
0c79dd2
fix(ui): keep the Architecture subtab row in one place in every subtab
BernhardJackiewicz Oct 4, 2026
ddf7c70
fix(ui): show the current Behavior start apart when the filter misses it
BernhardJackiewicz Oct 4, 2026
0596fb1
fix(ui): take the Fit map label of both maps from the Architecture st…
BernhardJackiewicz Oct 4, 2026
42e4361
fix(ui): make the other Refresh buttons say what they did
BernhardJackiewicz Oct 4, 2026
7b6d2cf
fix(ui): wrap long lines of code blocks in chat answers
BernhardJackiewicz Oct 4, 2026
baf10f9
fix(ui): keep the chat's own notes and code lines out of the model hi…
BernhardJackiewicz Oct 4, 2026
be62214
fix(ui): read TOML arrays that run over several lines in the outline
BernhardJackiewicz Oct 4, 2026
424dbb9
Merge third round: opaque Galaxy panels, hover card, path labels, Exp…
BernhardJackiewicz Oct 4, 2026
b5a927a
Merge third round: chat keeps listed answers, code facts in grounded …
BernhardJackiewicz Oct 4, 2026
234e0f2
Merge third round: chat wording, counts with units, render limit sent…
BernhardJackiewicz Oct 4, 2026
8c48d58
docs(ui): record the second hand test round K29 to K44 and its checks
BernhardJackiewicz Oct 4, 2026
e868781
fix(ui): answer questions about the Galaxy view from its scope and ca…
BernhardJackiewicz Oct 4, 2026
7ad29a1
fix(ui): name Branch nodes for what they are and keep the ring note b…
BernhardJackiewicz Oct 4, 2026
df3d3d0
Merge hand test fix: name Branch nodes for what they are, keep the ri…
BernhardJackiewicz Oct 4, 2026
edbf36e
Merge hand test fix: answer questions about the Galaxy view from its …
BernhardJackiewicz Oct 4, 2026
652332e
fix(ui): read every footer of a search answer
BernhardJackiewicz Oct 4, 2026
ab4d61d
docs(ui): record the third hand test K45 to K49
BernhardJackiewicz Oct 4, 2026
ff3e88b
fix(ui): name the branch node in view answers and a folder by its path
BernhardJackiewicz Oct 4, 2026
0f9340d
fix(ui): rank a search hit by its name in the index too
BernhardJackiewicz Oct 4, 2026
5a75016
fix(ui): name the branch node in German answers as the Galaxy label does
BernhardJackiewicz Oct 4, 2026
94645e6
docs(ui): add the last checks of the third hand test
BernhardJackiewicz Oct 5, 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
  •  
  •  
  •  
317 changes: 317 additions & 0 deletions docs/development/pr-2068-call-feedback-plan.md

Large diffs are not rendered by default.

Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
204 changes: 204 additions & 0 deletions docs/development/pr-2068-galaxy-history.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,204 @@
# PR 2068: back and forward in Galaxy (K2) and Architecture (K27)

Both workspaces share one bounded history model and one set of rules, and each
keeps its own history. Galaxy came first and is described first; the section
"Architecture (K27)" lists what an Architecture entry holds and the few rules
Architecture adds.

## Galaxy (K2)

Hand test finding K2: a click on a node makes it the new root, and the only way
out is "All graph". This note fixes the concept before the code. K9 belongs to
it: a click on empty canvas no longer leaves the scope, so Back is the way to
undo a step.

### What an entry is

One entry is the complete question the Galaxy workspace answers at that moment:

| Field | Meaning |
|---|---|
| `scope` | The root identity: node id, qualified name and display name, or a file or folder path. Missing means "All graph". |
| `depth` | Loaded layers (hops). |
| `direction` | `both`, `inbound` or `outbound`. |
| `edgeTypes` | The traced relationship types, or all. |
| `trail` | The open path target (`path` to node id) or `calls` (call order), if one is shown. |
| `mode` | `galaxy` or `hierarchy`. |

The entry holds identities and parameters only, never loaded nodes, edges,
layouts or camera positions. Going back re-runs the scope; the bounded scope
cache (four results) and the neighbourhood cache make that fast in practice,
and nothing grows with the session.

"All graph" is an entry like any other, so Back after "All graph" returns to
the scope that was open before.

### Rules

1. **Bounded.** At most 25 entries. A push beyond that drops the oldest entry.
2. **Consecutive duplicates merge.** An entry equal to the current one (same
key over all fields) is not pushed. Revisiting the same root later is a new
entry, because it is a new step.
3. **Browser semantics.** Back and Forward move a cursor. A new navigation after
going back drops the forward branch.
4. **No browser history per step.** There is no `pushState` per step: a long
session would leave thousands of browser entries, and the browser Back button
would no longer leave the page. The address bar keeps its current role.
5. **Recent roots.** Besides the linear history a list of the last 8 distinct
roots (newest first) allows a direct jump. A jump is a new navigation: it
restores that root with its last depth, direction and edge types and drops the
forward branch. The list is independent of the cursor, so going back does not
shorten it.
6. **Keyboard.** Alt+Left is Back, Alt+Right is Forward, not while typing in a
field or the editor, and not while another surface takes the keys
(`escapeTaken`). The page prevents the browser default for these keys.
7. **Escape.** Escape first clears an open path, then leaves the scope ("All
graph"), which is itself a history entry.
8. **Per project.** A project switch starts a fresh history. A project that
arrives after the first render (from the address bar) keeps "All graph" as
the first entry.
9. **Cancel is Back.** The minus button while a layer loads (K8) moves the
cursor back to the previous depth instead of pushing it again, so Forward
retries the cancelled layer.
10. **Empty canvas.** A click on empty canvas inside a scope clears only the
path highlight (K9). That is a step of its own, so Back brings the path
back.
11. **Selection follows the root.** Back or Forward to "All graph" clears the
selection. An entry with another root selects that root once it is loaded.
An entry with the same root (another depth, direction or path, and a
cancelled layer) keeps the selection, so Selection details and the chat
context stay.

### Where it lives

- `graph-ui/src/graph/navigation-history.ts`: the generic, pure model
(`push`, `back`, `forward`, `recent`) over any entry with a key function.
Architecture (K27) uses the same module, see below.
- `graph-ui/src/galaxy/scope-history.ts`: the Galaxy entry, its key and the
tooltips that name a target ("Back to JSONBAgg · 2 layers").
- `GalaxyPanel.tsx`: derives the current entry from its state, pushes it when it
changes, restores an entry on Back, Forward or a recent jump, and shows the
Back and Forward buttons with disabled states and the Recent list in the
scoped toolbar.

### Not in scope

- No breadcrumb of the whole chain. The tooltips name the Back and Forward
targets, and the Recent list names the roots; a breadcrumb would cost the one
toolbar row that K3 asks for.
- No persistence across reloads. A reload starts with an empty history, the same
as a new browser tab.

## Architecture (K27)

Hand test finding K27: Architecture had several ways back that meant different
things. Overview had its location trail ("django-demo / django"), System
structure had a "← Back" that walked the focus, Behavior had a "← Back" that
walked the starts, and "Show these N routes" had no way back at all. Nothing
went forward. Architecture now uses the same model (`navigation-history.ts`)
and the same rules as Galaxy, with a history of its own.

### What an entry is

One entry is the place the workspace shows: the subtab and what that subtab
has opened.

| Field | Meaning |
|---|---|
| `view` | The subtab: Overview (Structure, or Entry points as its mode), Routes, Hotspots, System structure or Behavior. |
| `spatial` | Overview, Entry points, Hotspots and Endpoints draw one map: the opened area (`areaPath`) or file (`filePath`), the hotspot area, and Plan or 3D (`planar`). |
| `routes` | The Routes perspective: Service map or Endpoints. |
| `filter` | The Routes filter. An opened route group ("Show these N routes") is that filter. |
| `system.focus`, `system.expanded` | The System structure focus and the expanded groups. |
| `system.structurePlanar`, `system.behaviorPlanar` | Plan or 3D in System structure and in Behavior. Each keeps its own camera, as before K27. |
| `system.behavior` | The Behavior start, the destination ("Reach") and, after a followed call (double-click, "Follow calls from here"), the start the hops began from. |
| `system.behavior.position` | Where the journey stands: the indexed path to the destination ("Path 2"), the operation on that call chain, and the page of direct calls. |
| `system.shown` | The start Behavior shows when none was requested (the server picks one, or the first entry point), so a tooltip can name it. |

The entry holds identities, names and a few small numbers, never projections,
scenes or cameras. Its key covers only what the current subtab shows: a field
another subtab holds does not split a step, and the names are there for the
tooltips only. The Behavior start is the numeric identity of one analysis
snapshot and stays guarded by its generation, as before.

What another subtab holds stays out of that subtab entirely, not only out of
the key. The map reads the opened area or file only in Overview and the hotspot
area only in Hotspots, so Entry points and Endpoints neither draw nor report an
area opened in Overview, and the chat context there names nothing that is not
on screen. Back to Overview opens the area again.

Every view that draws a scene makes Plan or 3D a step: the shared map, System
structure and Behavior. Another path to a destination is a step too. Walking
the call chain (Previous, Next, the slider, a click on an operation) and paging
through direct calls are no steps, because Previous and Next already do that;
the entry keeps where the journey stood, so Back and Forward return to the same
operation. A new start, destination or followed call begins at the top of its
journey.

### Rules

All Galaxy rules apply: at most 25 entries, consecutive duplicates merge, a new
navigation after Back drops the forward branch, no `pushState` per step, a
Recent list of the last 8 distinct places that is independent of the cursor,
Alt+Left and Alt+Right neither while typing nor while another surface takes the
keys, and a fresh history per project (the workspace remounts per project).
Architecture adds:

1. **One Back.** Back, Forward and Recent sit beside the subtabs and serve the
whole workspace. The "← Back" buttons System structure and Behavior had in
their own toolbars are absorbed into it: there is one Back control with one
meaning, and a step in System structure or Behavior is one Back away like
any other. "Whole system" stays as a way to the top, and the Overview
location trail stays; both are ordinary steps.
2. **Separate from Galaxy.** Galaxy and Architecture each keep their own
history, and Alt+Left and Alt+Right act only in the active workspace.
3. **Typing is one step.** Typing in the Routes filter becomes a step once it
pauses (600 ms), not one step per key. A navigation, Back, Forward or a
Recent jump while typing first records what the field showed, so typed text
is never lost: Back leaves it for the place before the typing and Forward
returns to it. Forward while typing finds no forward branch, because the
text is a new navigation; it records the text and stays.
4. **The page's own choices are no steps.** What the page sets by itself (the
suggested Behavior start such as `main`, a reset after reindexing) replaces
the current step (`replaceNavigation`). As a step of its own, Back would land
on an empty Behavior, the page would pick `main` again, and Back would never
get past it. A replaced step that equals the step before or after it merges
with that step, so Back and Forward never lead to the same place twice.
5. **Followed calls.** A followed call is a new start that remembers where the
hops began. Empty background returns there, as it did before, and that is a
step too.
6. **Tooltips name the target**, for example "Back to Overview · django",
"Forward to Routes · Endpoints · /edit" or "Back to Behavior · get_autocommit
· followed from handle".
7. **The current step keeps its newest details.** A change that leaves the key
alone (a name known only later, a field another subtab holds) updates the
current entry in place (`refreshNavigation`) instead of adding a step. On
django-demo the suggested `main` is rejected once for a stale analysis
snapshot, the start is reset, and the journey shows `main` on its own; the
step is still named "Behavior · main".

### Where it lives

- `graph-ui/src/graph/navigation-history.ts`: the shared model, with
`replaceNavigation` for rule 4 and `refreshNavigation` for rule 7.
- `graph-ui/src/architecture/architecture-history.ts`: the Architecture entry,
its key, its recent place and the labels for tooltips and the Recent list.
- `graph-ui/src/architecture/use-architecture-history.ts`: the place as state,
pushing on a new key, restoring without a push, the filter pause and the keys.
- `ArchitecturePanel.tsx` holds the place and shows Back, Forward and Recent.
`SpatialArchitecture`, `RoutesArchitecture`, `SystemArchitecture` and
`BehaviorJourney` read their part of the place and report changes back
(`lifted-place.ts`). Rendered on their own, as in their unit tests, they keep
that part as their own state; none of them has a Back of its own.
- Tests: `architecture-history.test.ts` (entry, key, labels),
`ArchitecturePanel.history.test.tsx` (the wiring) and the browser run
`graph-ui/tools/handtest-fixes-k27.mjs` on django-demo and cbm.

### Not in scope

- Neither steps nor kept in the entry: the Entry points start and call depth,
selections, the relationship filters, the System structure checkboxes, and
the camera position (zoom, pan, "Fit"). Plan or 3D is a step, the camera
position is not.
- No persistence across reloads. As before, only the subtab is remembered per
project.
8 changes: 4 additions & 4 deletions graph-ui/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -161,10 +161,10 @@ flag, activity polling is disabled and an old Agents workspace selection opens
Explore. Browser-local chat is independent of this feature.

This is recorded tool activity from configured adapters, not automatic agent
observability. The bundled adapter supports Claude Code PostToolUse; other
clients need their own adapter. The flag does not install hooks or delete any
existing events in the daemon's SQLite store. Even in an enabled build, the
reader must turn activity on before the browser polls for events.
observability. The bundled adapter supports the PostToolUse hook installed
below; other clients need their own adapter. The flag does not install hooks or
delete any existing events in the daemon's SQLite store. Even in an enabled
build, the reader must turn activity on before the browser polls for events.

Arbeiten KI-Agenten in demselben Repository, kann die Galaxie sie zeigen: je
Agent ein kleiner leuchtender Koerper, der den Symbolknoten umkreist, an dem er
Expand Down
6 changes: 3 additions & 3 deletions graph-ui/fixtures/adr/cbm-preview.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

> Preview examples for cbm-preview. These editable notes capture frontend design choices discussed during development; they are not a historical ADR archive or graph-inferred facts. Status: proposed for review.

## 001 — Explain architecture from evidence
## 001: Explain architecture from evidence

**Status:** Proposed · **Scope:** Architecture workspace

Expand All @@ -22,7 +22,7 @@ Combine indexed graph relationships with source evidence. Keep the repository ma

**Implementation references:** `graph-ui/src/architecture/`, `src/store/architecture_projection.c`.

## 002 — Keep browser AI optional
## 002: Keep browser AI optional

**Status:** Proposed · **Scope:** Local chat

Expand All @@ -44,7 +44,7 @@ Run the chat model locally in the browser after explicit setup. Download weights

**Implementation references:** `graph-ui/src/browser-ai/`, `graph-ui/src/reader/MonacoReader.tsx`.

## 003 — Keep agent activity experimental
## 003: Keep agent activity experimental

**Status:** Proposed · **Scope:** Agents workspace

Expand Down
4 changes: 2 additions & 2 deletions graph-ui/fixtures/adr/train-ticket.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

> Preview examples for the indexed Train Ticket repository. These are proposed review notes for exercising the ADR workspace, not decisions attributed to the upstream maintainers.

## 001 — Review services as deployment boundaries
## 001: Review services as deployment boundaries

**Status:** Proposed · **Scope:** Routes review

Expand All @@ -20,7 +20,7 @@ Use detected service and container boundaries to organize the routes review. Kee
- A declared dependency alone does not prove that a request is sent.
- Services without discovered connections should remain visible.

## 002 — Follow a request through its evidence
## 002: Follow a request through its evidence

**Status:** Proposed · **Scope:** Cross-service investigation

Expand Down
2 changes: 1 addition & 1 deletion graph-ui/fixtures/adr/voting-services.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

> Preview example for voting-services. This proposed review note is test content, not an upstream architectural decision.

## 001 — Distinguish declared and observed connections
## 001: Distinguish declared and observed connections

**Status:** Proposed · **Scope:** Service map review

Expand Down
Loading
Loading