refactor: eliminate remaining 15 any warnings and ratchet rule to error

- TaskCard: four catch((err: any) => err.message) promise handlers in
  archive/unarchive/delete/move → catch((err) => getErrorMessage(err)).
- InlineCreateCard + QuickEntryBox: .catch((err: any)) model-load handlers
  → getErrorMessage(err) with existing @fusion/core import.
- TerminalModal: drop (navigator as any).maxTouchPoints — modern lib.dom
  types already expose the property.
- serve.ts: remove unused any annotation on OpenRouter model mapper; the
  array element type is already inferred from json.data.
- pi.js, runtime-resolution.ts, dashboard.ts, serve.ts, dev-server-port-
  detect.ts, devserver-manager.ts: drop now-stale eslint-disable comments
  that the cleanup made redundant.

Fix a prompt-builder regression surfaced by agent's `any` cleanup: toolCall
with a raw string `arguments` field must be preserved verbatim (JSON-quoted)
rather than coerced to `{}`; restores a previously-passing test.

Then promote @typescript-eslint/no-explicit-any from warn → error. Future
new anys must either come with a one-line disable + justification or use a
real type. Workspace is now lint-clean (0 problems).

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
gsxdsm
2026-04-23 19:01:54 -07:00
parent 4cabe7f613
commit 4101af8547
12 changed files with 37 additions and 32 deletions

View File

@@ -866,8 +866,6 @@ export async function runDashboard(port: number, opts: { paused?: boolean; dev?:
//
// Create the skills adapter using the same DefaultPackageManager instance
// that was set up earlier for extension resolution.
//
// eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
const skillsAdapter = packageManager
? createSkillsAdapter({
// eslint-disable-next-line @typescript-eslint/no-explicit-any -- dashboard's resolve() uses a looser onMissing signature than pi's DefaultPackageManager

View File

@@ -524,7 +524,7 @@ export async function runServe(
};
}>;
};
const orModels = (json.data || []).map((m: any) => {
const orModels = (json.data || []).map((m) => {
const id = (m.id || "").toLowerCase();
const name = (m.name || "").toLowerCase();
const reasoning =
@@ -615,8 +615,6 @@ export async function runServe(
//
// Create the skills adapter using the same DefaultPackageManager instance
// that was set up earlier for extension resolution.
//
// eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
const skillsAdapter = packageManager
? createSkillsAdapter({
// eslint-disable-next-line @typescript-eslint/no-explicit-any -- dashboard's resolve() uses a looser onMissing signature than pi's DefaultPackageManager