Skip to content

Codex/pr 01#91

Closed
staylor-v1 wants to merge 234 commits intosandialabs:mainfrom
staylor-v1:codex/PR-01
Closed

Codex/pr 01#91
staylor-v1 wants to merge 234 commits intosandialabs:mainfrom
staylor-v1:codex/PR-01

Conversation

@staylor-v1
Copy link
Copy Markdown

Motivation

  • Introduce a first-class project_type discriminator so the codebase can explicitly differentiate PT1/PT2/PT3 workflows and evolve viewer/ingest behavior per project type.
  • Keep backward compatibility by defaulting to PT1 and validate/normalize incoming values to reduce client fragility.

Description

  • Add project_type column to the projects model with server_default='PT1' and an index for efficient filtering (backend/core/models.py).
  • Extend Pydantic project schemas to include project_type with a regex constraint ^(PT1|PT2|PT3)$ and a validator to strip()/upper() incoming values (backend/core/schemas.py).
  • Add an Alembic migration 20260328_0005_add_project_type.py to create/drop the column and index (backend/alembic/versions/20260328_0005_add_project_type.py).
  • Add tests and an execution artifact: backend API/schema tests exercising default/normalization/invalid inputs and parametric simulated users for each project type, plus a planning artifact to guide later incremental PRs (backend/tests/test_projects_router.py, backend/tests/test_schemas.py, docs/planning/inspection-workbench-pr-artifact.md).

Testing

  • Executed the targeted test subset with /workspace/VISTA/.venv/bin/pytest -q backend/tests/test_projects_router.py backend/tests/test_schemas.py and the run passed:11 passed`.
  • An initial attempt using cd backend && pytest -q tests/test_projects_router.py tests/test_schemas.py failed in that environment due to a missing test dependency (pytest_asyncio), so the project's virtualenv test runner was used successfully.
  • Tests include parametric coverage across PT1, PT2, and PT3 with three simulated user scenarios per type, schema normalization checks (pt2 -> PT2), and rejection of invalid values (PT9).

garland3 and others added 30 commits December 6, 2025 17:19
This commit addresses multiple CI/CD pipeline failures:

1. CodeQL Configuration: Remove invalid 'name' field from config file
   - The 'name' field is not a valid top-level configuration option
   - Resolves "1 configuration not found" warning

2. CI/CD Pipeline Tests: Fix virtualenv activation in test job
   - Change from 'source' command to PATH export for better compatibility
   - Ensures Python environment is properly activated for test runner

3. Container Security Scan: Update Trivy action and configuration
   - Pin Trivy action to specific version (0.28.0) instead of @master
   - Add 'ignore-unfixed' option to reduce false positives
   - Add 'category' to SARIF upload for better organization

4. CodeQL JavaScript/TypeScript: Skip autobuild for JS analysis
   - JavaScript/TypeScript analysis doesn't require autobuild step
   - Only run autobuild for Python language matrix
   - Add explicit 'upload: true' parameter to analysis step

All changes maintain the no-emoji policy and follow existing code style.

Generated with feature

Co-Authored-By: feature Sonnet 4.5 <noreply@anthropic.com>
Co-authored-by: garland3 <1162675+garland3@users.noreply.github.com>
Add script to launch PostgreSQL and MinIO using Podman or Docker
Co-authored-by: garland3 <1162675+garland3@users.noreply.github.com>
Co-authored-by: garland3 <1162675+garland3@users.noreply.github.com>
Co-authored-by: garland3 <1162675+garland3@users.noreply.github.com>
Co-authored-by: garland3 <1162675+garland3@users.noreply.github.com>
Co-authored-by: garland3 <1162675+garland3@users.noreply.github.com>
Co-authored-by: garland3 <1162675+garland3@users.noreply.github.com>
Co-authored-by: garland3 <1162675+garland3@users.noreply.github.com>
Fix GraphQL scan artifact upload failure for projects without GraphQL
…r-mcp

Copilot/add backend support for mcp
Copilot AI and others added 27 commits March 18, 2026 14:42
…ze slider

- Add `thumbnailSize` (default 220) to gallery state defaults
- Change `viewMode` default to 'grid'; migrate legacy 'small'/'medium'/'large' values
- Replace S/M/L buttons with a range slider (100-500px) in ImageGallery
- Apply thumbnail size via inline gridTemplateColumns style in GalleryGridView
- Compute imagesPerPage dynamically from thumbnailSize
- Add CSS for slider control (.thumbnail-size-control, .thumbnail-size-slider, .thumbnail-size-label)
- Update ImageGallery tests; add 7 new migration tests to galleryState.test.js

Co-authored-by: travisdock <36681963+travisdock@users.noreply.github.com>
…y-grid

Replace gallery S/M/L size buttons with a continuous thumbnail size slider
- CalibrationManager: add matchedRule state, check calibration_rules in
  project metadata between image override and project default; add
  handleSaveMetadataRule handler; show rule info in purple label
- CalibrationEditForm: add imageMetadataKeys/onSaveMetadataRule props and
  Save for Matching Metadata section with key selector dropdown
- CalibrationManager.test.js: add 6 tests for metadata rule matching,
  priority, fallback, and saving

Co-authored-by: travisdock <36681963+travisdock@users.noreply.github.com>
Agent-Logs-Url: https://github.com/sandialabs/VISTA/sessions/17329e5f-6c33-4832-93b4-1875e80c00ea
  The metadata field fallback (image.metadata vs image.metadata_) was
  duplicated in loadCalibration and the imageMetadataKeys prop. Extract
  it into a shared imageMetadata useMemo at the component level so the
  resolution logic lives in one place.
  Reset isImageOverride when a metadata rule matches to prevent the
  UI from showing "Using image-specific calibration" after an override
  is cleared. Simplify validation guard to check truthiness instead of
  matching a specific error message prefix.
  After deleting calibration_override via API, the local image metadata
  still contained the old value, causing loadCalibration to short-circuit
  back to the override state. Now removes the key from the local object
  before reloading. Also renamed the button from "Revert to Project
  Default" to "Clear Image Override" since the fallback may be a metadata
  rule rather than the project default.
  handleClearOverride was directly deleting calibration_override from
  the image prop object, which violates React's immutability assumptions
  and can cause subtle bugs if the parent re-renders or references the
  same object. Use an overrideCleared ref instead to signal loadCalibration
  to skip the stale override check. The ref resets when the image changes
  or a new override is saved.
  validateCalibration now returns a structured result ({ error } or
  { warning }) instead of a plain string. Save handlers block only on
  actual errors (non-positive numbers), while unrealistic-but-valid
  values show a transient warning message and proceed with the save.
  The previous if (validation) check was treating both cases as hard
  errors.
  Add validation for rule.calibration shape (pixels_per_mm, pixels_per_inch)
  before using a matched metadata rule, preventing runtime errors from
  malformed rules. Fix useMemo dependency to track the metadata reference
  instead of the entire image object, avoiding unnecessary recalculations.
  Move the read-only calibration view (formatted values, status label,
  action buttons, empty state) into CalibrationDisplay.js. Extract shared
  validation and calibration data construction into top-level helpers,
  replacing the duplicated preamble across all three save handlers.
  Brings CalibrationManager.js from 558 lines down to 397.
…-per-metadata-again

Add metadata-based calibration rules as mid-priority calibration tier
…ests-into-groups

Add AGENTS workflow and planning docs (repo orchestration, triage, handoff)
Added adversarial functional testing and improvement to QA/Tester Role.
@staylor-v1 staylor-v1 closed this Apr 9, 2026
@staylor-v1 staylor-v1 deleted the codex/PR-01 branch April 9, 2026 20:49
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants