chore(deps)(deps-dev): Bump eslint from 9.39.4 to 10.3.0#6
Closed
dependabot[bot] wants to merge 149 commits into
Closed
chore(deps)(deps-dev): Bump eslint from 9.39.4 to 10.3.0#6dependabot[bot] wants to merge 149 commits into
dependabot[bot] wants to merge 149 commits into
Conversation
Locks the V1 scope, stack, monorepo structure, data model, key flows, PTP layer extraction strategy, AI agent design, camera compatibility approach, ptpcamerad workaround, security posture, testing strategy, and license model. 8 open questions left explicit for resolution before the implementation plan is written. Stack aligned with formray engineering-guidelines/12-technology-stacks.md: React 19 + TypeScript + Vite + Tailwind v4 + Zustand + Vitest + Zod. PTP layer forks filmkit (MIT, validated on user's X-S20 during brainstorming session). V2 reserved for Tauri 2.0 desktop wrapper. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Self-contained adversarial-review prompt for independent validation of the V1 design spec. Saved as project artifact for reproducibility of the brainstorming back-and-forth. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Applies Codex review R1 with the following major changes: Blockers: - B1: §6.4 uses Fuji vendor opcodes 0x900C/0x900D (not standard PTP), RAF object format 0xF802, filename FUP_FILE.dat. Re-validation required on X-S20. - B2: macOS demoted to experimental/beta in V1. V1 happy-path platforms = Linux + Windows + Android Chrome. macOS first-class support = V2 (Tauri helper). Chosen over pulling V2 into V1 (would break timeline). - B3: Privacy contradiction fixed. RAF preview = local-only; AI reference images = sent to Anthropic with explicit per-image consent + EXIF strip + size cap. API key = session-only by default. - B4: Atomic rollback claim removed. Replaced with pre-flight checks + backup-before-write + fail-loud + restore-from-backup-on-demand. - B5: .ffr.json declared as creative-recipe subset, not lossless preset. Lossless capture deferred to V2. High items addressed: - H1: capabilitySetId = cameraModel + firmwareVersion (not generation) - H2: PtpTransport DI, Uint8Array I/O, AbortSignal, typed errors, split @filmfork/ptp-fuji + @filmfork/ptp-fuji-webusb - H3: pinned-commit fork, "independent fork, not endorsed" language - H4: API key session-only default, persona opt-in - H5: URL recipes cannot push to camera in one click - H6: AI framed as starting recipe with confidence indicators - H7: §16 acceptance traceable 1:1 to §2 scope - H8: WCAG 2.2 AA, en + it i18n - H9: seed list = originals + explicit permissions only - H10: project renamed FilmFork (working title); FujiComp deprecated for trademark exposure Plus all M1-M8 and L1-L3 items, schema migrations, error taxonomy, diagnostic bundle, library export/import, browser matrix. Timeline revised from "8-10 weeks" to "10 weeks honest + 2 weeks buffer" given accepted scope cuts. Spec grew 510 -> 864 lines. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
- Preserves Codex R1 output verbatim for traceability - R2 prompt asks Codex to verify R1 fixes were actually applied, catch new issues introduced by the rewrite, and respect locked decisions (B2 macOS-beta, B5 creative-recipe, H10 FilmFork name, TS-not-Rust V1 stack) - Targets specific R2 risks: schema additions, vendor opcode completeness, backup-model gaps, error taxonomy completeness, AI confidence pseudo-precision, package split testability, firmware-keyed capability set fallback, macOS workaround safety, CSP coverage, EXIF stripping reliability, FilmFork TM sanity Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Applies Codex R2 review with the following changes: Blockers: - NB1 (schema vs filmkit-writable): §5 trimmed to filmkit-proven slot-writable subset only. Removed dRangePriority, longExposureNR, lensModulationOptimizer. WB modes reduced to filmkit-supported. All removed fields documented as V2 with explicit reinstatement criteria. §9 X-S20 capability fixed: monochromaticColor: true. §9 adds writableSlotProperties whitelist. Highs: - NH1: §6.3 replaces backup with transactional verified backup (read-all + verify-count + verify-critical-fields before mark verified=true). Restore offered only on verified backups. - NH2: §9 unknown-firmware policy = read-only by default, writes require explicit "experimental" confirmation gate. - NH3: §6.3 battery preflight replaced with manual UX confirmation; auto-check conditional on V1-dev property identification. - NH4: §6.2 + §11 EXIF strip = JPEG only, decode-to-canvas + re-encode + verifier scan, abort on failure. HEIF/PNG rejected. Mediums: - NM1: §7 deterministic confidence rubric with post-processing downgrade caps in confidence.ts; tests enforce. - NM2: §6.7 error taxonomy expanded with RafFormatInvalid, AiPayloadTooLarge, AiModelUnavailable, PtpTimeout, BackupIncomplete, FirmwareUnsupported, WebUSBUnsupported. UsbHttpsRequired renamed to WebUSBSecureContextRequired. - NM3: §6.4 cleanup narrowed to positively-identified handles only. - NM4: §8 transport contract added (timeout, chunk size, transaction ID, DATA/RESPONSE boundary ownership). - NM5: §10 + docs/macos-beta.md = safer-first sequence before -9. Min macOS 13 Ventura. - NM6: §11 CSP expanded with worker-src + manifest-src; csp-check in CI. - NM7: §15.9-15.16 restructured as ADR-eligible tasks with owner/output/pass-fail. Lows: Zod 4 latest stable, model IDs in config not prose, NOTICE narrowed to forked packages only. Locked decisions reaffirmed: B2 macOS-beta, B5 creative-recipe, H10 FilmFork working title, TS V1 stack. Spec grew 864 -> 964 lines. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Targeted verification of R2 finding closure (NB1, NH1-4, NM1-7, NL1-3) plus regression check on R3 changes: - §5 schema trim (removed dRangePriority, longExposureNR, LMO, WB modes; fixed monochromaticColor for X-S20) - §6.3 transactional verified backup - §6.4 narrowed cleanup - §6.7 expanded error taxonomy - §7 deterministic confidence rubric + EXIF JPEG-only - §8 transport contract - §9 writableSlotProperties whitelist + unknown-firmware safety - §10 macOS safer-first sequence - §11 expanded CSP - §13 NOTICE narrowed - §15.9-15.16 ADR-eligible task structure Drives toward convergence: yes/no/one-more-round verdict required. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> EOF )
Applies all four R3 findings: Blockers: - NB1 R3 (DRAuto): §5 dynamicRange enum trimmed to ["DR100", "DR200", "DR400"]; DRAuto value moved to deferred V2 list per filmkit's UI_DR_TO_PRESET only mapping 1/2/3. Highs: - NH1 R3 (backup target slot not verified): §6.3 transactional backup now begins with explicit slot-selection gate: SetDevicePropValue(D18C, targetSlot) + readback verification. Mismatch aborts with BackupIncomplete; nothing persisted. Mediums: - NM1 R3 (HEIC UX cliff): §6.2 EXIF rejection message is platform-aware. iPhone uploads get specific Photos app + Settings guidance for converting to JPEG. Lows: - NL1 R3 (AutoAmbiencePriority naming): §16 acceptance now requires explicit schema↔filmkit codec round-trip test for WB mode name. §17 changelog added (R3→R4). Convergence statement appended: spec ready for superpowers:writing-plans. All locked decisions preserved (B2 macOS-beta, B5 creative-recipe, H10 FilmFork, TS V1 stack). Timeline confirmed: 10 weeks + 2 buffer. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
R4 prompt is a tight convergence check, not another deep adversarial review. Verifies four R3 findings (NB1 DRAuto, NH1 backup slot verify, NM1 HEIC UX, NL1 AmbiencePriority codec) are closed in R4 and the 9 surgical edits introduced no regression. Output drives to a clean verdict: READY / ONE-MORE-ROUND / REGRESSION. If READY, recommends invoking superpowers:writing-plans. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> EOF )
Convergence reached after 4 rounds of adversarial review. All R3 findings (NB1 DRAuto, NH1 backup slot verify, NM1 HEIC UX, NL1 AmbiencePriority codec) confirmed FIXED. R4 surgical edits verified clean. Convergence statement warranted. Codex flags 3 implementation risks the plan must address: 1. Keep recipe schema and filmkit translator in lockstep 2. Make X-S20 manual hardware validation reproducible (logs/artifacts) 3. Treat WebUSB failure modes as first-class UX, not edge cases Next: superpowers:writing-plans Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> EOF )
User-driven (non-Codex) revision adding the differentiating product layer without expanding V1 scope into community/backend and without changing locked stack or scope decisions. Added: - §6.7 Camera-side iteration loop (R5 headline workflow): AI proposes starting recipe, camera renders real JPEG, user gives natural-language feedback, AI changes 1-3 targeted parameters, camera re-renders, deterministic diff displayed, history of last 10 iterations session-only, save chosen iteration to library. - §6.8 Recipe diff & visual comparison: deterministic rule-based lookup-table-driven (NOT AI) translator with en+it locales. - §5 Structured `reasoning` upgraded: visualEffect + reason + risk + confidence per parameter (was flat `explanation`). - §5 Local Taste Profile: separate Zod schema, opt-in `enabled` gate, structured fields (tone, grain, contrast, preferred sims, shooting contexts), 90-day TTL, first-class settings UI, included in library export/import. - §1 innovation positioning: "FilmFork is not only a recipe browser; it is a camera-backed look lab for iterating toward a personal Fuji style." Renumbered §6.7 typed errors -> §6.9; cross-references updated. Locked constraints preserved: TS/React stack, macOS beta in V1, creative recipe subset, schema = filmkit-proven only, no accounts/ community/backend/managed proxy in V1, privacy posture unchanged or stronger (iteration RAF stays browser-local; iteration history session-only). Timeline: target preserved at 10 weeks + 2 buffer; iteration loop composes existing surfaces (AI + preview + diff); ~1 week net add absorbed by buffer. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Validation-focused prompt: verify the five R5 additions (iteration loop, recipe diff, structured reasoning, Local Taste Profile, innovation positioning) are coherent and safe. Confirm locked constraints preserved (TS stack, macOS beta, creative recipe, filmkit-proven fields, no backend/community/proxy, privacy posture). Catch cross-reference regressions from §6.7 renumbering. Sanity-check "absorbed by existing buffer" timeline claim. Verdict: READY / ONE-MORE-ROUND / REGRESSION / SCOPE-VIOLATION. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Codex R5 review verdict: ONE-MORE-ROUND with two surgical fixes (locked constraints, schema integrity, cross-references all clean). R5.1 applies them: 1. §6.7 unknown-firmware gating corrected: render/preview is session-scoped D185 conversion-profile write that does NOT mutate persistent slot state. Only save→push (step 10) is gated by §6.3. User can iterate freely on unknown-firmware bodies. 2. Stale "persona" wording replaced with "Taste Profile" in §11 threat model, §14 V2 roadmap, §16 acceptance. 3. Sanitization wording strengthened: explicitly specified as strip+cap → wrap with sentinel markers → system prompt instructs Claude to treat block as data not instructions → never interpolated into command surface → local audit log. Standard prompt-injection defense pattern made explicit. R4 → R5 changelog extended with R5 → R5.1 sub-section. Title bumped R5 → R5.1. Codex verdict path satisfied: R5 ready for superpowers:writing-plans after these fixes. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
24 tasks covering monorepo bootstrap, recipe-schema package (Recipe + R5 structured reasoning + R5 TasteProfile + capability matrix + R5 recipe diff with en+it + schema migrations + AmbiencePriority codec test), ptp-fuji package (filmkit fork at pinned commit, PtpTransport DI, FujiCameraSession with state machine, typed error taxonomy, AbortSignal, FakeTransport), ptp-fuji-webusb + ai-agent stubs, CI workflow, schema↔translator lockstep gate (Codex risk #1), and initial documentation. Plan is split: Phase 1 of 7. Subsequent phases get their own plans after Phase 1 ships and is reviewed. Each task has TDD discipline (failing test → run → impl → run → commit) with full code blocks, exact file paths, exact commands. Self-review pass: spec coverage mapped, no placeholders, type consistency verified, R5 additions threaded through tasks 7/8/13/14. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Initialize npm workspaces with Node 22, TypeScript 5.7, Vitest, ESLint 9, Prettier 3. AGPL-3.0 LICENSE at root. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Strict mode + noUncheckedIndexedAccess + exactOptionalPropertyTypes per Formray module 12. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Renamed plan's .eslintrc.cjs to eslint.config.cjs (ESLint 9 flat-config filename convention; .cjs forces CommonJS despite package.json type=module). Added --no-error-on-unmatched-pattern to lint script so npm run lint exits 0 before any packages/* exists. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
MIT licensed. Strict TS, composite project reference for workspace incremental builds. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Identity, provenance, capability targeting, look-affecting params. Filmkit-proven slot-writable subset only — no DRAuto, dRangePriority, LMO, longExposureNR, extra WB modes. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Replaces flat explanation with three-field structure per spec §5. Payload caps preserved (max 40 entries; visualEffect ≤200, reason ≤300, risk ≤200). Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Separate Zod schema, opt-in via enabled gate (default false), structured preferences (tone/grain/contrast/film sims/contexts/notes), caps (10 pref sims, 8 contexts, 500-char notes), 90-day TTL field. Per spec §5 R5. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
X-S20 fw1.10: monochromaticColor=true (R3 fix), writableSlotProperties whitelist explicit, no unproven fields. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
*10 encoding for tone/color/sharpness/clarity (filmkit convention). Round-trip preserved for all V1 schema fields. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Locks the AutoAmbiencePriority (schema) ↔ AmbiencePriority (filmkit) mapping. When ptp-fuji's enum import lands in Phase 1, this test exposes any silent rename. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
v1 passthrough; future-version recipes rejected with clear update message. Migration chain extensible for v2+. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Deterministic delta-to-phrase lookup. en + it locales, parameter-by- parameter rules with stable ruleKey identifiers for tests. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Walks 14 flat parameter paths, applies en or it rule table, falls back to generic phrase if no rule matches. Cross-camera diff flags capability mismatch instead of diffing silently. Localized summary. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
…TREAM MIT licensed. NOTICE credits filmkit + RE chain. UPSTREAM pins exact filmkit commit SHA. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Direct copy of filmkit's src/ptp/, src/profile/, src/util/binary.ts. WebUSB references marked FIXME for Task 17 PtpTransport refactor. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Extracts WebUSB dependency behind a transport interface (refactor of filmkit copy). Typed errors per spec §6.9 with FilmForkError class. FakeTransport test helper enables pure-Node testing of session logic. Adaptations vs upstream filmkit: - src/ptp/transport.ts: USBTransport class replaced with PtpFraming helper that wraps an injected PtpTransport. WebUSB-specific connect/disconnect/endpoint-discovery code removed (lives in @filmfork/ptp-fuji-webusb in Phase 2). PTP framing methods (send/recv/sendCommand/sendDataCommand) now route through the transport interface and accept AbortSignal. - src/profile/preset-translate.ts: RawProp type re-declared inline (was imported from filmkit's session.ts which is not part of the Task 16 copy set). - All relative imports use .js extensions (NodeNext + verbatimModuleSyntax). - FilmForkError uses 'override readonly cause' to satisfy exactOptionalPropertyTypes; cause is only assigned when defined. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Co-Authored-By: Codex Opus 4.7 (1M context) <noreply@anthropic.com>
Co-Authored-By: Codex Opus 4.7 (1M context) <noreply@anthropic.com>
Co-Authored-By: Codex Opus 4.7 (1M context) <noreply@anthropic.com>
Co-Authored-By: Codex Opus 4.7 (1M context) <noreply@anthropic.com>
Co-Authored-By: Codex Opus 4.7 (1M context) <noreply@anthropic.com>
Co-Authored-By: Codex Opus 4.7 (1M context) <noreply@anthropic.com>
Co-Authored-By: Codex Opus 4.7 (1M context) <noreply@anthropic.com>
Co-Authored-By: Codex Opus 4.7 (1M context) <noreply@anthropic.com>
Co-Authored-By: Codex Opus 4.7 (1M context) <noreply@anthropic.com>
Co-Authored-By: Codex Opus 4.7 (1M context) <noreply@anthropic.com>
Co-Authored-By: Codex Opus 4.7 (1M context) <noreply@anthropic.com>
Co-Authored-By: Codex Opus 4.7 (1M context) <noreply@anthropic.com>
Co-Authored-By: Codex Opus 4.7 (1M context) <noreply@anthropic.com>
Co-Authored-By: Codex GPT-5 <noreply@anthropic.com>
Co-Authored-By: Codex GPT-5 <noreply@anthropic.com>
Co-Authored-By: Codex GPT-5 <noreply@anthropic.com>
Co-Authored-By: Codex GPT-5 <noreply@anthropic.com>
Co-Authored-By: Codex GPT-5 <noreply@anthropic.com>
Co-Authored-By: Codex GPT-5 <noreply@anthropic.com>
Co-Authored-By: Codex GPT-5 <noreply@anthropic.com>
Co-Authored-By: Codex GPT-5 <noreply@anthropic.com>
Co-Authored-By: Codex GPT-5 <noreply@anthropic.com>
Co-Authored-By: Codex GPT-5 <noreply@anthropic.com>
Co-Authored-By: Codex GPT-5 <noreply@anthropic.com>
Bumps [eslint](https://github.com/eslint/eslint) from 9.39.4 to 10.3.0. - [Release notes](https://github.com/eslint/eslint/releases) - [Commits](eslint/eslint@v9.39.4...v10.3.0) --- updated-dependencies: - dependency-name: eslint dependency-version: 10.3.0 dependency-type: direct:development update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] <support@github.com>
3d6933d to
0fd2720
Compare
Author
|
OK, I won't notify you again about this release, but will get in touch when a new version is available. If you'd rather skip all updates until the next major or minor version, let me know by commenting If you change your mind, just re-open this PR and I'll resolve any conflicts on it. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Bumps eslint from 9.39.4 to 10.3.0.
Release notes
Sourced from eslint's releases.
... (truncated)
Commits
788920410.3.05b69b4fBuild: changelog update for 10.3.0d32235eci: use pnpm ineslint-flat-config-utilstype integration test (#20826)b6ae5cffix: handle unavailable require cache (#20812)3ffb14echore: clean up typos in comments and JSDoc (#20821)6fb3685fix: rule suggestions cause continuation in class body (#20787)22eb58achore: add missing continue-on-error to ecosystem-tests.yml (#20818)88bf002ci: bump pnpm/action-setup from 6.0.1 to 6.0.3 (#20815)379571afeat: add suggestions for no-unused-private-class-members (#20773)97c8c33chore: update ilshidur/action-discord action to v0.4.0 (#20811)