diff --git a/web/src/assets/styles/app.css b/web/src/assets/styles/app.css
index d94699b..f4e36ad 100644
--- a/web/src/assets/styles/app.css
+++ b/web/src/assets/styles/app.css
@@ -91,6 +91,9 @@
.main.settings-main {
grid-template-rows: minmax(0, 1fr);
}
+.main.audit-detail-main {
+ grid-template-rows: minmax(0, 1fr);
+}
.workarea { overflow: auto; padding: 24px; }
.workarea.chat-workarea {
min-height: 0;
diff --git a/web/src/assets/styles/views/audit-view.css b/web/src/assets/styles/views/audit-view.css
index a2322ee..2599585 100644
--- a/web/src/assets/styles/views/audit-view.css
+++ b/web/src/assets/styles/views/audit-view.css
@@ -247,6 +247,7 @@ tbody tr.spotlight {
height: 100%;
overflow: auto;
display: grid;
+ align-content: start;
gap: 16px;
}
@@ -299,6 +300,10 @@ tbody tr.spotlight {
margin-top: 12px;
}
+.inline-review-meta {
+ margin-top: 10px;
+}
+
.hero-review-meta span {
display: inline-flex;
align-items: center;
@@ -366,7 +371,7 @@ tbody tr.spotlight {
}
.detail-grid.skill-md-detail-grid {
- grid-template-columns: minmax(0, 1fr) 360px;
+ grid-template-columns: minmax(0, 1fr) 372px;
align-items: stretch;
}
@@ -476,6 +481,7 @@ tbody tr.spotlight {
.skill-review-side {
align-content: start;
+ padding-right: 8px;
}
.review-card {
diff --git a/web/src/views/AppShellRouteView.vue b/web/src/views/AppShellRouteView.vue
index f6cf2fc..1880438 100644
--- a/web/src/views/AppShellRouteView.vue
+++ b/web/src/views/AppShellRouteView.vue
@@ -18,14 +18,15 @@
'workbench-main': activeView === 'workbench',
'requests-main': activeView === 'requests',
'approval-main': activeView === 'approval',
- 'policies-main': activeView === 'policies',
- 'audit-main': activeView === 'audit',
- 'employees-main': activeView === 'employees',
- 'settings-main': activeView === 'settings'
- }"
+ 'policies-main': activeView === 'policies',
+ 'audit-main': activeView === 'audit',
+ 'audit-detail-main': activeView === 'audit' && auditDetailOpen,
+ 'employees-main': activeView === 'employees',
+ 'settings-main': activeView === 'settings'
+ }"
>
-
-
+
@@ -151,8 +152,9 @@ import { useAppShell } from '../composables/useAppShell.js'
import { useSystemState } from '../composables/useSystemState.js'
import { filterNavItemsByAccess } from '../utils/accessControl.js'
-const employeeSummary = ref(null)
-const knowledgeSummary = ref(null)
+const employeeSummary = ref(null)
+const knowledgeSummary = ref(null)
+const auditDetailOpen = ref(false)
const {
activeCase,
diff --git a/web/src/views/scripts/AuditView.js b/web/src/views/scripts/AuditView.js
index 9e2bf70..e91d291 100644
--- a/web/src/views/scripts/AuditView.js
+++ b/web/src/views/scripts/AuditView.js
@@ -1,4 +1,4 @@
-import { computed, ref } from 'vue'
+import { computed, ref, watch } from 'vue'
const TYPE_META = {
skills: {
@@ -545,7 +545,8 @@ const assets = [
export default {
name: 'AuditView',
- setup() {
+ emits: ['detail-open-change'],
+ setup(props, { emit }) {
const tabs = [
{ id: 'skills', label: 'Skills' },
{ id: 'mcp', label: 'MCP' },
@@ -562,6 +563,14 @@ export default {
const tableColumns = computed(() => activeMeta.value.tableColumns)
const visibleSkills = computed(() => assets.filter((item) => item.type === activeType.value))
+ watch(
+ selectedSkill,
+ (value) => {
+ emit('detail-open-change', Boolean(value))
+ },
+ { immediate: true }
+ )
+
function openVersionSwitch(version) {
if (!selectedSkill.value || version.version === selectedSkill.value.version) {
return