Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
46 commits
Select commit Hold shift + click to select a range
1c63b69
fix(ai): seed system+history via initialPrompts; let session manage s…
dobrinyonkov Jun 12, 2026
8c03d84
fix(ai): address PR review comments on session reseed and replay
dobrinyonkov Jun 22, 2026
d190430
refactor(ai): extract PromptBuilder behind AISessionManager delegation
dobrinyonkov Jun 23, 2026
a747830
refactor(ai): reshape AISessionManager into PromptClient transport bo…
dobrinyonkov Jun 23, 2026
2b59a28
docs(ai): add architecture V1 PRD, ADR, glossary and runner prompt
dobrinyonkov Jun 23, 2026
d7b6072
refactor(ai): introduce ConversationStore boundary
dobrinyonkov Jun 23, 2026
566a66c
chore(ai): close slices 02 and 03 in the V1 issue tracker
dobrinyonkov Jun 24, 2026
b846529
refactor(ai): introduce AssistantController and trim AIChat to a thin…
dobrinyonkov Jun 24, 2026
5f0530d
chore(ai): harden Assistant Controller capability states and rollback…
dobrinyonkov Jun 24, 2026
3675be1
chore(ai): use canonical capability vocabulary and fail-safe view dis…
dobrinyonkov Jun 24, 2026
0899998
chore(ai): close slice 04 in the V1 issue tracker
dobrinyonkov Jun 24, 2026
9208d1d
Merge origin/master into refactor/ai-assistant-architecture-v1
dobrinyonkov Jun 24, 2026
698916e
chore(ai): address review findings on the master merge
dobrinyonkov Jun 24, 2026
13399df
chore(ai): close slice 08 in the V1 issue tracker
dobrinyonkov Jun 25, 2026
d19b1f7
refactor(ai): render canonical Assistant Capability States in the AI tab
dobrinyonkov Jun 25, 2026
d624cee
refactor(ai): tighten AIChat view boundary and isolate its tests
dobrinyonkov Jun 25, 2026
11c75de
refactor(ai): pre-wire PromptClient streaming buffer
dobrinyonkov Jun 26, 2026
9f86eb7
chore(ai): close slice 07 in the V1 issue tracker
dobrinyonkov Jun 26, 2026
71f7962
refactor(ai): close ADR-0001 V1 transition and fix capability mapping
dobrinyonkov Jun 29, 2026
04287ce
refactor(ai): translate Assistant Capability State at the Prompt Clie…
dobrinyonkov Jun 29, 2026
6a40bdb
refactor(ai): extract AssistantTranscript module from AIChat
dobrinyonkov Jun 29, 2026
333351b
chore: gitignore agent workflow artifacts
dobrinyonkov Jun 29, 2026
23223a4
chore: gitignore CONTEXT.md and prompt.md
dobrinyonkov Jun 29, 2026
e6b3352
refactor(ai): remove dead AI public surface and de-duplicate tests
dobrinyonkov Jun 29, 2026
6409e9d
docs(ai): tighten comments and drop stale doc references
dobrinyonkov Jun 29, 2026
d4e0a9b
docs(ai): delete redundant JSDoc descriptions and test-flow markers
dobrinyonkov Jun 29, 2026
7985532
refactor(ai): switch new AI modules to const/let and 'that' alias
dobrinyonkov Jun 29, 2026
de47785
refactor(ai): replace 'that = this' aliasing with arrow callbacks
dobrinyonkov Jun 29, 2026
b06d354
docs(ai): tighten comments per writing style guide
dobrinyonkov Jun 29, 2026
e54bb6e
refactor(ai): destructure constructor options with defaults
dobrinyonkov Jun 29, 2026
8c5be37
refactor(ai): collapse capability state dispatch into a lookup table
dobrinyonkov Jun 29, 2026
6f367a9
test(ai): replace hand-rolled async iterator with async generator
dobrinyonkov Jun 29, 2026
6229b42
docs(ai): drop empty @private-only JSDoc blocks
dobrinyonkov Jun 29, 2026
ffd3ccc
refactor(ai): drop unused AssistantController.getCapabilityState()
dobrinyonkov Jun 29, 2026
572fe51
feat(ai): tear down AI session on devtools panel unload
dobrinyonkov Jun 29, 2026
c036cfa
feat(ai): scroll AI transcript to bottom when the tab becomes active
dobrinyonkov Jun 29, 2026
feb1195
docs(ai): drop empty JSDoc blocks left over from earlier passes
dobrinyonkov Jun 29, 2026
f386aed
fix(ai): refresh token counter UI after clearConversation / setUrl re…
dobrinyonkov Jun 29, 2026
c54533a
fix(ai): defer sendUserMessage during in-flight session reseed
dobrinyonkov Jun 29, 2026
13fe5da
fix(ai): make Inspection Context sticky and survive Clear History
dobrinyonkov Jun 30, 2026
db3fd0d
refactor(ai): remove "System" confirmations/errors from the chat tran…
dobrinyonkov Jul 1, 2026
1386753
chore(css): regenerate compiled CSS to catch .ai-error-slot drift
dobrinyonkov Jul 1, 2026
d753223
fix(ai): token counter contrast fix and severity ramp
dobrinyonkov Jul 1, 2026
5c951fd
fix(ai): hide token counter and Clear History button on empty convers…
dobrinyonkov Jul 1, 2026
285be09
docs(ai): trim redundant and verbose comments
dobrinyonkov Jul 1, 2026
7509b69
Merge origin/master into refactor/ai-assistant-architecture-v1
dobrinyonkov Jul 2, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 3 additions & 1 deletion .eslintrc
Original file line number Diff line number Diff line change
Expand Up @@ -66,6 +66,8 @@
"space-before-blocks": [2, "always"],
"consistent-this": [1, "that"],
"linebreak-style": [2, "unix"],
"quotes": [2, "single"]
"quotes": [2, "single"],
"no-var": 1,
"prefer-const": 1
}
}
9 changes: 8 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -26,4 +26,11 @@ package

# AI
AGENTS.md
CLAUDE.md
CLAUDE.md

# Agent workflow artifacts (PRDs, issues, ADRs, agent docs)
.scratch/
docs/adr/
docs/agents/
CONTEXT.md
prompt.md
19 changes: 19 additions & 0 deletions app/scripts/devtools/panel/ui5/main.js
Original file line number Diff line number Diff line change
Expand Up @@ -456,6 +456,25 @@
}
});

// Tear down the AI session when the panel page is unloaded so the background
// service worker disconnects the prompt-api port and destroys the model session.
window.addEventListener('beforeunload', function () {
aiChat.destroy();
});

// Notify the AI tab when it becomes active so the transcript scrolls to the
// latest turn. Deferred via requestAnimationFrame so the scroll runs after the
// TabBar click handler has flipped the `selected` attribute and the content is
// visible (scrollHeight on a hidden element is meaningless).
var aiTabElement = document.getElementById('ai-tab');
if (aiTabElement) {
aiTabElement.addEventListener('click', function () {
window.requestAnimationFrame(function () {
aiChat.onTabActivated();
});
});
}

// ================================================================================
// Communication
// ================================================================================
Expand Down
Loading
Loading