)
: {};
const props = schema.properties ?? {};
const entries = Object.entries(props);
-
+
// Sort by hint order
const sorted = entries.sort((a, b) => {
const orderA = hintForPath([...path, a[0]], hints)?.order ?? 0;
@@ -514,7 +514,7 @@ function renderArray(params: {
${help ? html`${help}
` : nothing}
-
+
${arr.length === 0 ? html`
No items yet. Click "Add" to create one.
@@ -597,7 +597,7 @@ function renderMapField(params: {
Add Entry
-
+
${entries.length === 0 ? html`
No custom entries.
` : html`
diff --git a/ui/src/ui/views/config-form.render.ts b/ui/src/ui/views/config-form.render.ts
index e0985c93b..2e7dc5f4e 100644
--- a/ui/src/ui/views/config-form.render.ts
+++ b/ui/src/ui/views/config-form.render.ts
@@ -94,16 +94,16 @@ function matchesSearch(key: string, schema: JsonSchema, query: string): boolean
if (!query) return true;
const q = query.toLowerCase();
const meta = SECTION_META[key];
-
+
// Check key name
if (key.toLowerCase().includes(q)) return true;
-
+
// Check label and description
if (meta) {
if (meta.label.toLowerCase().includes(q)) return true;
if (meta.description.toLowerCase().includes(q)) return true;
}
-
+
return schemaMatches(schema, q);
}
@@ -192,8 +192,8 @@ export function renderConfigForm(props: ConfigFormProps) {
${icons.search}
- ${searchQuery
- ? `No settings match "${searchQuery}"`
+ ${searchQuery
+ ? `No settings match "${searchQuery}"`
: "No settings in this section"}
diff --git a/ui/src/ui/views/config-form.shared.ts b/ui/src/ui/views/config-form.shared.ts
index b37969a93..a6a8e2416 100644
--- a/ui/src/ui/views/config-form.shared.ts
+++ b/ui/src/ui/views/config-form.shared.ts
@@ -89,4 +89,3 @@ export function isSensitivePath(path: Array): boolean {
key.endsWith("key")
);
}
-
diff --git a/ui/src/ui/views/config-form.ts b/ui/src/ui/views/config-form.ts
index 0bcfe0a9c..146436ea6 100644
--- a/ui/src/ui/views/config-form.ts
+++ b/ui/src/ui/views/config-form.ts
@@ -5,4 +5,3 @@ export {
} from "./config-form.analyze";
export { renderNode } from "./config-form.node";
export { schemaType, type JsonSchema } from "./config-form.shared";
-
diff --git a/ui/src/ui/views/config.ts b/ui/src/ui/views/config.ts
index c45849d56..ff6f57f32 100644
--- a/ui/src/ui/views/config.ts
+++ b/ui/src/ui/views/config.ts
@@ -138,7 +138,7 @@ function computeDiff(
): Array<{ path: string; from: unknown; to: unknown }> {
if (!original || !current) return [];
const changes: Array<{ path: string; from: unknown; to: unknown }> = [];
-
+
function compare(orig: unknown, curr: unknown, path: string) {
if (orig === curr) return;
if (typeof orig !== typeof curr) {
@@ -164,7 +164,7 @@ function computeDiff(
compare(origObj[key], currObj[key], path ? `${path}.${key}` : key);
}
}
-
+
compare(original, current, "");
return changes;
}
@@ -258,7 +258,7 @@ export function renderConfig(props: ConfigProps) {
${validity}
-
+
-
+
-
+
-
+
@@ -358,7 +358,7 @@ export function renderConfig(props: ConfigProps) {
-
+
${hasChanges && props.formMode === "form" ? html`
diff --git a/zizmor.yml b/zizmor.yml
new file mode 100644
index 000000000..d864cbb6d
--- /dev/null
+++ b/zizmor.yml
@@ -0,0 +1,17 @@
+# zizmor configuration
+# https://docs.zizmor.sh/configuration/
+
+rules:
+ # Disable unpinned-uses - pinning to SHA hashes is a significant change
+ # that should be done deliberately, not enforced by pre-commit
+ unpinned-uses:
+ disable: true
+
+ # Disable excessive-permissions for now - adding explicit permissions
+ # blocks requires careful review of each workflow's needs
+ excessive-permissions:
+ disable: true
+
+ # Disable artipacked (persist-credentials) - low confidence finding
+ artipacked:
+ disable: true