aidevops 3.25.0 → 3.25.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/VERSION +1 -1
- package/aidevops.sh +1 -1
- package/package.json +1 -1
- package/packages/gui-web/src/AppNavigation.tsx +33 -16
- package/packages/gui-web/src/styles.css +34 -3
- package/setup.sh +1 -1
package/README.md
CHANGED
|
@@ -58,7 +58,7 @@ The result: an AI operations platform that manages projects across every busines
|
|
|
58
58
|
[](https://github.com/marcusquinn)
|
|
59
59
|
|
|
60
60
|
<!-- Release & Version Info -->
|
|
61
|
-
[](https://github.com/marcusquinn/aidevops/releases)
|
|
62
62
|
[](https://www.npmjs.com/package/aidevops)
|
|
63
63
|
[](https://github.com/marcusquinn/homebrew-tap)
|
|
64
64
|
[](https://github.com/marcusquinn/aidevops)
|
package/VERSION
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
3.25.
|
|
1
|
+
3.25.1
|
package/aidevops.sh
CHANGED
package/package.json
CHANGED
|
@@ -221,14 +221,14 @@ function ConversationSidebar({ conversationMode, selectedLocalRepoIndex, setConv
|
|
|
221
221
|
{conversationMode === "people" ? <PeopleChannelList /> : <>
|
|
222
222
|
<button className="new-session-button" disabled title="Creating sessions needs an audited OpenCode write route." type="button">{text.newSession}</button>
|
|
223
223
|
<section className="repo-session-selector" aria-label={text.localRepoSelector}>
|
|
224
|
-
<button aria-label="Previous local repo" disabled={!canSelectPreviousRepo} onClick={() => setSelectedLocalRepoIndex(Math.max(0, selectedLocalRepoIndex - 1))} type="button"><FiChevronLeft /></button>
|
|
224
|
+
<button aria-label="Previous local repo" className="selector-step-button" disabled={!canSelectPreviousRepo} onClick={() => setSelectedLocalRepoIndex(Math.max(0, selectedLocalRepoIndex - 1))} type="button"><FiChevronLeft aria-hidden="true" /></button>
|
|
225
225
|
<label>
|
|
226
226
|
<span>{text.localRepos}</span>
|
|
227
227
|
<select onChange={(event) => setSelectedLocalRepoIndex(Number.parseInt(event.currentTarget.value, 10))} value={Math.min(selectedLocalRepoIndex, Math.max(0, repos.length - 1))}>
|
|
228
228
|
{repos.length === 0 ? <option value={0}>No local repos</option> : repos.map((repo, index) => <option key={repo.path_ref} value={index}>{repo.name}</option>)}
|
|
229
229
|
</select>
|
|
230
230
|
</label>
|
|
231
|
-
<button aria-label="Next local repo" disabled={!canSelectNextRepo} onClick={() => setSelectedLocalRepoIndex(Math.min(repos.length - 1, selectedLocalRepoIndex + 1))} type="button"><FiChevronRight /></button>
|
|
231
|
+
<button aria-label="Next local repo" className="selector-step-button" disabled={!canSelectNextRepo} onClick={() => setSelectedLocalRepoIndex(Math.min(repos.length - 1, selectedLocalRepoIndex + 1))} type="button"><FiChevronRight aria-hidden="true" /></button>
|
|
232
232
|
</section>
|
|
233
233
|
<section className="sidebar-group session-history-list">
|
|
234
234
|
<h2>{text.sessionHistory}</h2>
|
|
@@ -386,8 +386,20 @@ function SidebarFooter({ accentHue, fontPreference, fontSizePreference, setAccen
|
|
|
386
386
|
const [appearanceOpen, setAppearanceOpen] = useState(true);
|
|
387
387
|
const AppearanceChevron = appearanceOpen ? FiChevronDown : FiChevronUp;
|
|
388
388
|
const selectedFontFamily = fontFamilyForPreference(fontPreference);
|
|
389
|
+
const fontIndex = Math.max(0, fontOptions.findIndex((option) => option.value === fontPreference));
|
|
389
390
|
const fontSizeIndex = Math.max(0, fontSizeOptions.findIndex((option) => option.value === fontSizePreference));
|
|
391
|
+
const canSelectPreviousFont = fontIndex > 0;
|
|
392
|
+
const canSelectNextFont = fontIndex < fontOptions.length - 1;
|
|
390
393
|
const [hueInput, setHueInput] = useState(() => String(accentHue));
|
|
394
|
+
const setFontByIndex = (index: number) => {
|
|
395
|
+
const nextFont = fontOptions[index]?.value;
|
|
396
|
+
|
|
397
|
+
if (nextFont === undefined) {
|
|
398
|
+
return;
|
|
399
|
+
}
|
|
400
|
+
|
|
401
|
+
setFontPreference(nextFont);
|
|
402
|
+
};
|
|
391
403
|
const updateAccentHue = (value: number) => {
|
|
392
404
|
if (!Number.isFinite(value)) {
|
|
393
405
|
return;
|
|
@@ -486,20 +498,25 @@ function SidebarFooter({ accentHue, fontPreference, fontSizePreference, setAccen
|
|
|
486
498
|
{fontSizeOptions.map((option) => <span className={option.value === fontSizePreference ? "active" : ""} key={option.value}>{option.label}</span>)}
|
|
487
499
|
</div>
|
|
488
500
|
</div>
|
|
489
|
-
<
|
|
490
|
-
<span>{text.font}</span>
|
|
491
|
-
<
|
|
492
|
-
|
|
493
|
-
|
|
494
|
-
|
|
495
|
-
|
|
496
|
-
|
|
497
|
-
|
|
498
|
-
|
|
499
|
-
|
|
500
|
-
|
|
501
|
-
|
|
502
|
-
|
|
501
|
+
<div className="font-control">
|
|
502
|
+
<span id="appearance-font-selector-label">{text.font}</span>
|
|
503
|
+
<div className="selector-with-stepper font-selector-row">
|
|
504
|
+
<button aria-label="Previous font" className="selector-step-button" disabled={!canSelectPreviousFont} onClick={() => setFontByIndex(fontIndex - 1)} type="button"><FiChevronLeft aria-hidden="true" /></button>
|
|
505
|
+
<select
|
|
506
|
+
aria-labelledby="appearance-font-selector-label"
|
|
507
|
+
onChange={(event) => setFontPreference(event.currentTarget.value as FontPreference)}
|
|
508
|
+
style={{ fontFamily: selectedFontFamily }}
|
|
509
|
+
value={fontPreference}
|
|
510
|
+
>
|
|
511
|
+
{fontOptions.map((option) => (
|
|
512
|
+
<option key={option.value} style={{ fontFamily: option.fontFamily }} value={option.value}>
|
|
513
|
+
{option.label}
|
|
514
|
+
</option>
|
|
515
|
+
))}
|
|
516
|
+
</select>
|
|
517
|
+
<button aria-label="Next font" className="selector-step-button" disabled={!canSelectNextFont} onClick={() => setFontByIndex(fontIndex + 1)} type="button"><FiChevronRight aria-hidden="true" /></button>
|
|
518
|
+
</div>
|
|
519
|
+
</div>
|
|
503
520
|
</div>
|
|
504
521
|
: null}
|
|
505
522
|
</section>
|
|
@@ -383,16 +383,41 @@ code {
|
|
|
383
383
|
grid-template-columns: auto minmax(0, 1fr) auto;
|
|
384
384
|
}
|
|
385
385
|
|
|
386
|
-
.
|
|
386
|
+
.selector-with-stepper {
|
|
387
|
+
align-items: center;
|
|
388
|
+
display: grid;
|
|
389
|
+
gap: 8px;
|
|
390
|
+
grid-template-columns: auto minmax(0, 1fr) auto;
|
|
391
|
+
}
|
|
392
|
+
|
|
393
|
+
.repo-session-selector .selector-step-button,
|
|
394
|
+
.selector-step-button {
|
|
387
395
|
align-items: center;
|
|
388
396
|
background: var(--surface-muted);
|
|
389
397
|
border: 1px solid var(--border);
|
|
390
398
|
border-radius: 999px;
|
|
391
399
|
color: var(--text-secondary);
|
|
392
400
|
display: inline-flex;
|
|
393
|
-
height:
|
|
401
|
+
height: 40px;
|
|
394
402
|
justify-content: center;
|
|
395
|
-
|
|
403
|
+
}
|
|
404
|
+
|
|
405
|
+
.selector-step-button {
|
|
406
|
+
padding: 0;
|
|
407
|
+
width: 40px;
|
|
408
|
+
}
|
|
409
|
+
|
|
410
|
+
.selector-step-button:hover:not(:disabled),
|
|
411
|
+
.selector-step-button:focus-visible {
|
|
412
|
+
border-color: color-mix(in srgb, var(--accent) 40%, transparent);
|
|
413
|
+
color: var(--accent);
|
|
414
|
+
outline: none;
|
|
415
|
+
}
|
|
416
|
+
|
|
417
|
+
.selector-step-button svg {
|
|
418
|
+
height: 18px;
|
|
419
|
+
stroke-width: 2.5;
|
|
420
|
+
width: 18px;
|
|
396
421
|
}
|
|
397
422
|
|
|
398
423
|
.repo-session-selector label {
|
|
@@ -413,6 +438,7 @@ code {
|
|
|
413
438
|
border: 1px solid var(--border);
|
|
414
439
|
border-radius: 10px;
|
|
415
440
|
color: var(--text-primary);
|
|
441
|
+
min-height: 40px;
|
|
416
442
|
min-width: 0;
|
|
417
443
|
padding: 8px;
|
|
418
444
|
}
|
|
@@ -754,11 +780,16 @@ code {
|
|
|
754
780
|
border: 1px solid var(--border);
|
|
755
781
|
border-radius: 12px;
|
|
756
782
|
color: var(--text-primary);
|
|
783
|
+
min-height: 40px;
|
|
757
784
|
min-width: 0;
|
|
758
785
|
padding: 9px 10px;
|
|
759
786
|
width: 100%;
|
|
760
787
|
}
|
|
761
788
|
|
|
789
|
+
.font-selector-row {
|
|
790
|
+
align-items: center;
|
|
791
|
+
}
|
|
792
|
+
|
|
762
793
|
.app-inset {
|
|
763
794
|
display: grid;
|
|
764
795
|
grid-template-rows: auto minmax(0, 1fr);
|
package/setup.sh
CHANGED
|
@@ -12,7 +12,7 @@ shopt -s inherit_errexit 2>/dev/null || true
|
|
|
12
12
|
# AI Assistant Server Access Framework Setup Script
|
|
13
13
|
# Helps developers set up the framework for their infrastructure
|
|
14
14
|
#
|
|
15
|
-
# Version: 3.25.
|
|
15
|
+
# Version: 3.25.1
|
|
16
16
|
#
|
|
17
17
|
# Quick Install:
|
|
18
18
|
# npm install -g aidevops && aidevops update (recommended)
|