@photivra/engine 1.0.0 → 1.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/AGENTS.md +3 -3
- package/CHANGELOG.md +5 -0
- package/CITATION.cff +1 -1
- package/CONTRIBUTING.md +3 -3
- package/NODE_SUPPORT.md +9 -9
- package/README.md +7 -7
- package/SECURITY.md +1 -1
- package/dist/core/version.d.ts +6 -11
- package/dist/core/version.d.ts.map +1 -1
- package/dist/core/version.js +6 -11
- package/dist/core/version.js.map +1 -1
- package/docs/API_REFERENCE.md +1 -1
- package/docs/API_STYLE.md +11 -7
- package/docs/ARCHITECTURE.md +1 -1
- package/docs/AUTOMATION_COORDINATION.md +1 -1
- package/docs/CAPTURE_COLOR.md +1 -1
- package/docs/CAPTURE_CORRECTED_SDR.md +1 -1
- package/docs/CAPTURE_EXPORT_METADATA.md +1 -1
- package/docs/CAPTURE_SDR.md +1 -1
- package/docs/DEVELOPERS.md +6 -6
- package/docs/DIGITAL_OPTICS_FOUNDATION.md +1 -1
- package/docs/ENVIRONMENT_RAW_CAPTURE.md +1 -1
- package/docs/EXPORT_ACCEPTANCE.md +1 -1
- package/docs/GENERIC_TIER_PRESETS.md +2 -2
- package/docs/GEOMETRIC_PREPARATION_REUSE.md +1 -1
- package/docs/IMAGE_FORMATION.md +1 -1
- package/docs/LINEAR_CAPTURE_ENCODING.md +1 -1
- package/docs/MOTION_AND_SIGNAL.md +1 -1
- package/docs/NUMERICAL_CORRECTNESS.md +1 -1
- package/docs/PERFORMANCE_BASELINE.md +1 -1
- package/docs/PHOTOGRAPHIC_EXPORT.md +1 -1
- package/docs/PHYSICS_FOUNDATION.md +1 -1
- package/docs/POC_API.md +1 -1
- package/docs/POC_PROJECTION_REUSE.md +1 -1
- package/docs/PROCESSED_OUTPUT.md +1 -1
- package/docs/PRODUCTION_COMPOSITION.md +1 -1
- package/docs/PRODUCTION_ENVIRONMENT_CAPTURE.md +3 -3
- package/docs/PROVENANCE.md +1 -1
- package/docs/PSF_FOUNDATION.md +1 -1
- package/docs/RAW_FRAME_ENVELOPE.md +1 -1
- package/docs/RAW_FRAME_RECONSTRUCTION.md +2 -2
- package/docs/RELEASE_1_0.md +1 -0
- package/docs/RELEASE_1_0_1.md +61 -0
- package/docs/RELEASE_AUDIT.md +1 -0
- package/docs/SCENE_RADIANCE_AND_ILLUMINATION.md +1 -1
- package/docs/SCENE_SENSOR_QUADRATURE.md +1 -1
- package/docs/SCENE_SENSOR_TEMPORAL_EXPOSURE.md +1 -1
- package/docs/SCIENTIFIC_ASSURANCE.md +1 -1
- package/docs/SCIENTIFIC_CONFORMANCE.md +1 -1
- package/docs/SDR_RENDERING.md +2 -2
- package/docs/SENSOR_ENVIRONMENT_QUERY.md +1 -1
- package/docs/SENSOR_EQE_LOCAL_EXPOSURE.md +1 -1
- package/docs/SENSOR_EQE_TEMPORAL_EXPOSURE.md +1 -1
- package/docs/SENSOR_PSF_QUADRATURE.md +1 -1
- package/docs/SENSOR_RAW_FRAME.md +2 -2
- package/docs/SENSOR_RAW_PRODUCER.md +1 -1
- package/docs/SIGNAL_CONFORMANCE.md +1 -1
- package/docs/SIMULATED_CAPTURE.md +1 -1
- package/docs/STABILIZATION.md +1 -1
- package/docs/TEMPORAL_PHOTO_RAW.md +1 -1
- package/docs/TIER_ACCEPTANCE.md +1 -1
- package/docs/TIER_PRESET_ACCEPTANCE.md +2 -2
- package/docs/USAGE.md +1 -1
- package/docs/V1_COMPOSITION_MAP.md +2 -2
- package/docs/V1_HELPER_REUSE_REVIEW.md +1 -1
- package/docs/V1_PERFORMANCE_DISPOSITION.md +1 -1
- package/docs/api/camera-equivalent-focal-length.md +1 -1
- package/docs/api/camera-field-of-view.md +1 -1
- package/docs/api/camera-projected-object-size.md +1 -1
- package/docs/api/capture-capture-export-metadata.md +1 -1
- package/docs/api/capture-environment-raw-producer.md +1 -1
- package/docs/api/capture-focus-control.md +1 -1
- package/docs/api/capture-linear-encoding.md +1 -1
- package/docs/api/capture-photographic-export.md +1 -1
- package/docs/api/capture-raw-frame-reconstruction.md +1 -1
- package/docs/api/capture-release-sequence.md +1 -1
- package/docs/api/capture-sensor-raw-frame.md +1 -1
- package/docs/api/capture-sensor-raw-producer.md +1 -1
- package/docs/api/capture-simulated-capture.md +1 -1
- package/docs/api/color-capture-color.md +1 -1
- package/docs/api/color-white-balance.md +1 -1
- package/docs/api/composition-image-formation-plan.md +1 -1
- package/docs/api/composition-plan-consumer.md +1 -1
- package/docs/api/core-calculation-result.md +1 -1
- package/docs/api/core-configuration-error.md +1 -1
- package/docs/api/core-image-formation.md +1 -1
- package/docs/api/core-scientific-assurance.md +1 -1
- package/docs/api/core-spectral-composition.md +1 -1
- package/docs/api/core-spectral.md +1 -1
- package/docs/api/core-validation.md +1 -1
- package/docs/api/core-version.md +6 -6
- package/docs/api/equipment-exposure-capabilities.md +1 -1
- package/docs/api/equipment-generic-tier-assets.md +1 -1
- package/docs/api/equipment-generic-tier-presets.md +1 -1
- package/docs/api/equipment-iso-capabilities.md +1 -1
- package/docs/api/equipment-metering-capabilities.md +1 -1
- package/docs/api/equipment-release-capabilities.md +1 -1
- package/docs/api/exports.json +2 -2
- package/docs/api/exposure-exposure-duration-control.md +1 -1
- package/docs/api/exposure-exposure-mode-resolver.md +1 -1
- package/docs/api/exposure-exposure.md +1 -1
- package/docs/api/exposure-flash.md +1 -1
- package/docs/api/exposure-metering-scene-radiance.md +1 -1
- package/docs/api/exposure-metering-target.md +1 -1
- package/docs/api/exposure-metering-temporal.md +1 -1
- package/docs/api/exposure-metering.md +1 -1
- package/docs/api/exposure-program-line.md +1 -1
- package/docs/api/motion-camera-rotation.md +1 -1
- package/docs/api/motion-capture-rotation-inverse-mapping.md +1 -1
- package/docs/api/motion-capture-rotation-temporal-quadrature.md +1 -1
- package/docs/api/motion-capture-rotation-trajectory.md +1 -1
- package/docs/api/motion-capture-translation-parallax-temporal-quadrature.md +1 -1
- package/docs/api/motion-extended-object-projection.md +1 -1
- package/docs/api/motion-projected-motion.md +1 -1
- package/docs/api/optics-aperture.md +1 -1
- package/docs/api/optics-circle-of-confusion.md +1 -1
- package/docs/api/optics-complex-pupil-psf.md +1 -1
- package/docs/api/optics-depth-of-field.md +1 -1
- package/docs/api/optics-diffraction.md +1 -1
- package/docs/api/optics-focus-breathing.md +1 -1
- package/docs/api/optics-focus-state.md +1 -1
- package/docs/api/optics-front-of-lens-filter.md +1 -1
- package/docs/api/optics-illumination-vignetting.md +1 -1
- package/docs/api/optics-lateral-chromatic-aberration.md +1 -1
- package/docs/api/optics-lens-psf-profile.md +1 -1
- package/docs/api/optics-polygon-diffraction.md +1 -1
- package/docs/api/optics-profile-contract.md +1 -1
- package/docs/api/optics-psf-foundation.md +1 -1
- package/docs/api/optics-radial-distortion.md +1 -1
- package/docs/api/optics-scene-to-sensor-irradiance.md +1 -1
- package/docs/api/optics-scene-to-sensor-quadrature.md +1 -1
- package/docs/api/optics-sensor-environment-query.md +1 -1
- package/docs/api/optics-sensor-psf-quadrature.md +1 -1
- package/docs/api/optics-stray-light.md +1 -1
- package/docs/api/optics-thin-lens.md +1 -1
- package/docs/api/output-capture-corrected-sdr.md +1 -1
- package/docs/api/output-capture-geometry.md +1 -1
- package/docs/api/output-capture-sdr.md +1 -1
- package/docs/api/output-crop.md +1 -1
- package/docs/api/output-geometric-transforms.md +1 -1
- package/docs/api/output-lens-corrections.md +1 -1
- package/docs/api/output-sdr-rendering.md +1 -1
- package/docs/api/output-subject-framing-crop.md +1 -1
- package/docs/api/schema-camera.md +1 -1
- package/docs/api/schema-illumination-spectral.md +1 -1
- package/docs/api/schema-illumination-temporal.md +1 -1
- package/docs/api/schema-illumination.md +1 -1
- package/docs/api/schema-scene-radiance-temporal.md +1 -1
- package/docs/api/schema-scene-radiance.md +1 -1
- package/docs/api/schema-scene.md +1 -1
- package/docs/api/schema-validation.md +1 -1
- package/docs/api/sensor-accumulated-charge.md +1 -1
- package/docs/api/sensor-architecture.md +1 -1
- package/docs/api/sensor-camera-saturation-capacity.md +1 -1
- package/docs/api/sensor-capture-color-sampling-binding.md +1 -1
- package/docs/api/sensor-capture-mode-timing.md +1 -1
- package/docs/api/sensor-capture-mode.md +1 -1
- package/docs/api/sensor-color-sampling.md +1 -1
- package/docs/api/sensor-constant-rate-temporal-integration.md +1 -1
- package/docs/api/sensor-dark-current.md +1 -1
- package/docs/api/sensor-environment-photo-signal.md +1 -1
- package/docs/api/sensor-eqe-electron-rate.md +1 -1
- package/docs/api/sensor-eqe-local-exposure.md +1 -1
- package/docs/api/sensor-eqe-temporal-exposure.md +1 -1
- package/docs/api/sensor-exposure-window.md +1 -1
- package/docs/api/sensor-iso-signal-chain.md +1 -1
- package/docs/api/sensor-local-exposure-binding.md +1 -1
- package/docs/api/sensor-optical-stack.md +1 -1
- package/docs/api/sensor-photon-energy.md +1 -1
- package/docs/api/sensor-physical-charge-capacity.md +1 -1
- package/docs/api/sensor-pixel-pitch.md +1 -1
- package/docs/api/sensor-radiometry-readiness.md +1 -1
- package/docs/api/sensor-raw-readout.md +1 -1
- package/docs/api/sensor-raw-reconstruction.md +1 -1
- package/docs/api/sensor-readout-exposure-linkage.md +1 -1
- package/docs/api/sensor-readout-timing.md +1 -1
- package/docs/api/sensor-response-application-compatibility.md +1 -1
- package/docs/api/sensor-response-operating-range.md +1 -1
- package/docs/api/sensor-responsivity-photocurrent.md +1 -1
- package/docs/api/sensor-sampling-aperture.md +1 -1
- package/docs/api/sensor-scene-eqe-temporal-exposure.md +1 -1
- package/docs/api/sensor-sensor-geometry.md +1 -1
- package/docs/api/sensor-signal-noise.md +1 -1
- package/docs/api/sensor-spatial-sample-reduction.md +1 -1
- package/docs/api/sensor-spatial-sampling-quadrature.md +1 -1
- package/docs/api/sensor-spatio-spectral-reduction.md +1 -1
- package/docs/api/sensor-spectral-coverage.md +1 -1
- package/docs/api/sensor-spectral-quadrature.md +1 -1
- package/docs/api/sensor-spectral-response.md +1 -1
- package/docs/api/sensor-temporal-photo-signal.md +1 -1
- package/docs/api/simulation-poc-simulation.md +1 -1
- package/docs/api/stabilization-camera-shake.md +1 -1
- package/docs/api/stabilization-system.md +1 -1
- package/docs/examples/quick-start.mjs +1 -1
- package/package.json +1 -1
package/AGENTS.md
CHANGED
|
@@ -44,7 +44,7 @@ Treat this repository as a complete, standalone open-source scientific/business-
|
|
|
44
44
|
|
|
45
45
|
- Scientific equations and behavior are defined by implementation plus tests; documentation must agree with them.
|
|
46
46
|
- Public API shape and semantics are defined by exported TypeScript contracts, tests, and `docs/API_STYLE.md`.
|
|
47
|
-
- Root engine compatibility is versioned by `ENGINE_API_VERSION`; the composed `simulatePocCamera()` request/response contract is separately versioned by `POC_SIMULATION_API_VERSION`.
|
|
47
|
+
- Root engine compatibility is versioned by `ENGINE_API_VERSION`; the composed `simulatePocCamera()` request/response contract is separately versioned by `POC_SIMULATION_API_VERSION`. From 1.0.1, ENGINE_API_VERSION must equal the npm package version; the POC contract stays independent.
|
|
48
48
|
- If documentation, tests, and implementation disagree, do not guess. Determine the intended contract, fix the stale source, and add a regression test when behavior is involved.
|
|
49
49
|
- UI or downstream clients are never authoritative sources for camera science.
|
|
50
50
|
|
|
@@ -418,7 +418,7 @@ Backward compatibility matters.
|
|
|
418
418
|
- Prefer typed/config-object inputs for multi-parameter functions.
|
|
419
419
|
- Follow the conventions in `docs/API_STYLE.md`.
|
|
420
420
|
- Keep result/provenance structures consistent across modules.
|
|
421
|
-
- Keep `ENGINE_API_VERSION
|
|
421
|
+
- Keep `ENGINE_API_VERSION` aligned with the package version; keep `POC_SIMULATION_API_VERSION` and schema/model versions independent.
|
|
422
422
|
- Runtime parsers must fail closed on unknown enum/string values; TypeScript unions are not validation.
|
|
423
423
|
- Do not silently reinterpret an existing field or unit.
|
|
424
424
|
- If behavior must change, add regression tests and document compatibility impact.
|
|
@@ -576,7 +576,7 @@ Any further foundation composition still requires an explicit `POC_SIMULATION_AP
|
|
|
576
576
|
- Preserve full destination-to-source Jacobians, compatible-domain groups, resampler identity, prefilter requirements and valid-source masks/joint crops. Invalid support remains unavailable.
|
|
577
577
|
- Corrections warp already-sampled blur/noise; gain changes downstream signal/variance without rewriting photons. RAW metadata intent, camera mandatory settings and educational reference bypass are separate states.
|
|
578
578
|
- The bounded RGB executor accepts reconstructed-linear geometry/CA followed by gain only. Reject incompatible-domain or geometry-across-gain execution rather than reorder it. Production #111/#112 require their own explicit composition.
|
|
579
|
-
- Reconcile root API versions against other pending API branches before merge; schemas and
|
|
579
|
+
- Reconcile root API versions against other pending API branches before merge; the root API and package versions stay aligned while schemas and POC versions remain independent.
|
|
580
580
|
### Authoritative linear capture container
|
|
581
581
|
|
|
582
582
|
- #15A `SimulatedCapture` is a standalone immutable data commitment, not a radiance generator, virtual-camera color transform, quantizer, file serializer or production-stage activation.
|
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,10 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 1.0.1 candidate — publication pending
|
|
4
|
+
|
|
5
|
+
- Expand Node support to maintained 22/24 LTS plus 26 Current, with patched-major CI and the existing 22.13 minimum job, reviewed lifecycle windows and updated tooling guidance. Keep Node 24 build/typings baseline.
|
|
6
|
+
- Align the npm package and `ENGINE_API_VERSION` at 1.0.1 and enforce equality in source metadata, generated references and isolated packed consumers. Schema/model/POC/plan versions and scientific calculations are unchanged. New capture/plan creator identities and hashes can differ; archived records and acceptance artifacts retain their original versions. See `docs/RELEASE_1_0_1.md`.
|
|
7
|
+
|
|
3
8
|
## 1.0.0 candidate — publication pending owner tag
|
|
4
9
|
|
|
5
10
|
- Prepare the stable public distribution after all 32 V1 feature/science items and defect #178 are reviewed and merged. Package/lock/citation become 1.0.0; root contract 0.116.0 and every independent model/schema/POC/plan identity remain unchanged. No scientific arithmetic, seed, fixture hash, exported signature or accepted execution envelope changes.
|
package/CITATION.cff
CHANGED
|
@@ -9,7 +9,7 @@ abstract: "An open TypeScript engine for the science and mathematics of photogra
|
|
|
9
9
|
repository-code: "https://github.com/photivra/photivra"
|
|
10
10
|
url: "https://photivra.com"
|
|
11
11
|
license: "Apache-2.0"
|
|
12
|
-
version: "1.0.
|
|
12
|
+
version: "1.0.1"
|
|
13
13
|
keywords:
|
|
14
14
|
- photography
|
|
15
15
|
- camera optics
|
package/CONTRIBUTING.md
CHANGED
|
@@ -4,7 +4,7 @@ Contributions are welcome when they preserve scientific integrity, source proven
|
|
|
4
4
|
|
|
5
5
|
## Development setup
|
|
6
6
|
|
|
7
|
-
Node.js 22.13 or
|
|
7
|
+
Use a supported Node.js release: maintained 22 (minimum 22.13), maintained 24, or 26 Current. Prefer patched Node 24 for development/build tooling. The reproducible npm path is:
|
|
8
8
|
|
|
9
9
|
```sh
|
|
10
10
|
npm ci
|
|
@@ -14,7 +14,7 @@ npm run build
|
|
|
14
14
|
npm run pack:check
|
|
15
15
|
```
|
|
16
16
|
|
|
17
|
-
CI verifies maintained Node.js 22 (including minimum 22.13) and
|
|
17
|
+
CI verifies maintained Node.js 22 (including minimum 22.13), 24, and Node.js 26 Current; prefer patched Node 24 under [the runtime policy](NODE_SUPPORT.md). See [1.0.1 migration and release preparation](docs/RELEASE_1_0_1.md). For release preparation also run `npm run docs:check` and `npm run release:consumer-check` after build. The generated API reference must match root exports; regenerate with `node scripts/generate-api-reference.mjs` when public contracts change.
|
|
18
18
|
|
|
19
19
|
## Before submitting
|
|
20
20
|
|
|
@@ -24,7 +24,7 @@ CI verifies maintained Node.js 22 (including minimum 22.13) and 24; prefer patch
|
|
|
24
24
|
- Add meaningful analytical/regression tests.
|
|
25
25
|
- Update concise documentation when behavior, assumptions, limitations, schemas, version surfaces, or public APIs change.
|
|
26
26
|
- Preserve the browser-safe published-package boundary; Node-only transport code is repository-only contributor tooling and must not become a public package export.
|
|
27
|
-
- Keep npm/package version
|
|
27
|
+
- Keep npm/package version and `ENGINE_API_VERSION` equal; keep `POC_SIMULATION_API_VERSION` and schema/model versions independent.
|
|
28
28
|
- For sensor/capture work, preserve native coordinate conventions, active-capture vs output-crop separation, optical-axis offsets, and independent X/Y sampling.
|
|
29
29
|
- For provenance/calibration work, keep evidence origin separate from reuse rights and never treat geometric sample pitch as photon-collection area.
|
|
30
30
|
- Do not submit copied or adapted third-party code/data unless its license and provenance are explicitly compatible and recorded.
|
package/NODE_SUPPORT.md
CHANGED
|
@@ -2,9 +2,9 @@
|
|
|
2
2
|
|
|
3
3
|
Adopted: 2026-09-26. Applies to every Node.js repository in the Photivra organization, including contributor tooling, CI, build/deployment tooling, and supported Node.js execution environments. It does not change browser support or the browser-safe engine boundary.
|
|
4
4
|
|
|
5
|
-
## Maintained LTS
|
|
5
|
+
## Maintained LTS plus Current
|
|
6
6
|
|
|
7
|
-
"Actively maintained LTS" means an official Node.js release line in either **Active LTS** or **Maintenance LTS**, before its upstream end-of-life date.
|
|
7
|
+
"Actively maintained LTS" means an official Node.js release line in either **Active LTS** or **Maintenance LTS**, before its upstream end-of-life date. Starting with the 1.0.1 candidate, this repository supports all upstream-supported Active/Maintenance LTS lines plus the official Current release line. Prerelease/nightly, end-of-life, and commercial extended-support-only releases are not supported.
|
|
8
8
|
|
|
9
9
|
Use the official lifecycle, not "latest", a version-number parity rule, or an open-ended minimum version as evidence of support:
|
|
10
10
|
|
|
@@ -12,26 +12,26 @@ Use the official lifecycle, not "latest", a version-number parity rule, or an op
|
|
|
12
12
|
- https://github.com/nodejs/Release
|
|
13
13
|
- https://github.com/nodejs/Release/blob/main/schedule.json
|
|
14
14
|
|
|
15
|
-
As reverified against the official schedule on 2026-10-02 (original policy review 2026-09-26), Node 24 is Active LTS and Node 22 is Maintenance LTS. Node 26 is Current and is
|
|
15
|
+
As reverified against the official schedule on 2026-10-02 (original policy review 2026-09-26), Node 24 is Active LTS and Node 22 is Maintenance LTS. Node 26 is Current and is included in the support set. This is a dated snapshot: future lines must be reviewed and tested as the official lifecycle changes. Node 26 remains supported when it enters LTS, with its runtime LTS marker required from that date.
|
|
16
16
|
|
|
17
17
|
## Repository baselines
|
|
18
18
|
|
|
19
|
-
An eligible upstream line is not an untested repository compatibility claim.
|
|
19
|
+
An eligible upstream line is not an untested repository compatibility claim. This repository must explicitly record and test every line covered by the maintained-LTS-plus-Current policy. Prefer the newest qualified Active LTS line for normal development and builds; retain a qualified Maintenance LTS line where compatibility is already supported.
|
|
20
20
|
|
|
21
|
-
This repository
|
|
21
|
+
This repository tests Node 22, 24 and 26, including current patched releases of each line and the Node 22.13.0 minimum-version regression job. The normal tooling baseline and pinned `@types/node` major remain **24**. Use current patched releases for ordinary development/deployment; a historical minimum-version regression job is not a deployment recommendation.
|
|
22
22
|
|
|
23
|
-
Node 22-compatible code must not assume Node 24-only APIs merely because contributor tooling uses Node 24 typings. Keep the Node 22 runtime tests and the public browser-safe package boundary. A broad existing `engines.node` range is a compatibility hint, not
|
|
23
|
+
Node 22-compatible code must not assume Node 24-only APIs merely because contributor tooling uses Node 24 typings. Keep the Node 22 runtime tests and the public browser-safe package boundary. A broad existing `engines.node` range is a compatibility hint, not evidence of support for untested or EOL lines. Any manifest-range change must update its lockfile and follow package compatibility/release review; this policy does not rewrite already-published packages.
|
|
24
24
|
|
|
25
25
|
## CI and dependency enforcement
|
|
26
26
|
|
|
27
|
-
`.github/node-lts-policy.mjs` checks the actual Node build's LTS marker, this repository's approved major set,
|
|
27
|
+
`.github/node-lts-policy.mjs` checks the actual Node build's LTS marker, this repository's approved major set, reviewed upstream LTS and Current date windows, and the approved pinned typings major before dependency installation. `.github/test-node-lts-policy.mjs` covers acceptance and rejection boundaries. Both run before dependency installation in every verification matrix job.
|
|
28
28
|
|
|
29
|
-
The lifecycle snapshot is intentionally local and reviewed, not fetched from the network during ordinary CI. It uses UTC dates and fails closed on the recorded end-of-life date. Reverify the official schedule before changing the snapshot, before a baseline/release decision, and during regular dependency maintenance. Do not extend an expired window or
|
|
29
|
+
The lifecycle snapshot is intentionally local and reviewed, not fetched from the network during ordinary CI. It uses UTC dates and fails closed on the recorded end-of-life date. Reverify the official schedule before changing the snapshot, before a baseline/release decision, and during regular dependency maintenance. Do not extend an expired window or admit an unreviewed line merely to pass CI. The Current window ends when the line enters LTS; the runtime must then carry an LTS marker. A new Current line requires a coordinated snapshot and matrix review.
|
|
30
30
|
|
|
31
31
|
Routine minor/patch updates within an approved major may follow normal green-PR rules. Do not auto-merge a Node runtime, Node image, or `@types/node` major upgrade independently. Where Dependabot is configured, keep Node typings major upgrades out of its routine update queue while allowing supported-major updates.
|
|
32
32
|
|
|
33
33
|
## Lifecycle changes
|
|
34
34
|
|
|
35
|
-
Add a newly
|
|
35
|
+
Add a newly supported LTS or Current line through one coordinated review of the support policy/guard, CI, local version files, build environments, typings, manifest/lockfile compatibility, and tests. Update only files that exist and are relevant; do not introduce a new runtime or infrastructure merely for uniformity. Remove a line from the support set and CI before upstream EOL, documenting downstream compatibility implications. Never silently raise a library's minimum runtime or advertise an untested line.
|
|
36
36
|
|
|
37
37
|
All existing scientific, security, provenance, regression, artifact, and release gates remain in force. This rule does not authorize npm publication, tags, public release, or a default runtime-major upgrade.
|
package/README.md
CHANGED
|
@@ -17,10 +17,10 @@ The standalone [SDR rendering foundation](https://github.com/Photivra/photivra/b
|
|
|
17
17
|
|
|
18
18
|
## Quick start
|
|
19
19
|
|
|
20
|
-
After owner publication, install the ESM package below. During candidate review, use the verified tarball from the [release guide](https://github.com/Photivra/photivra/blob/main/docs/
|
|
20
|
+
After owner publication, install the ESM package below. During candidate review, use the verified tarball from the [release guide](https://github.com/Photivra/photivra/blob/main/docs/RELEASE_1_0_1.md):
|
|
21
21
|
|
|
22
22
|
```sh
|
|
23
|
-
npm install @photivra/engine@1.0.
|
|
23
|
+
npm install @photivra/engine@1.0.1
|
|
24
24
|
```
|
|
25
25
|
|
|
26
26
|
Calculate horizontal field of view for a 36 mm sensor dimension and 50 mm focal length:
|
|
@@ -37,7 +37,7 @@ console.log(horizontal.value.degrees);
|
|
|
37
37
|
console.log(horizontal.provenance);
|
|
38
38
|
```
|
|
39
39
|
|
|
40
|
-
Start with the [Developer Guide](https://github.com/Photivra/photivra/blob/main/docs/DEVELOPERS.md), then use the [Usage Guide](https://github.com/Photivra/photivra/blob/main/docs/USAGE.md) and [export-derived API reference](https://github.com/Photivra/photivra/blob/main/docs/API_REFERENCE.md). These documents describe the 1.0.0
|
|
40
|
+
Start with the [Developer Guide](https://github.com/Photivra/photivra/blob/main/docs/DEVELOPERS.md), then use the [Usage Guide](https://github.com/Photivra/photivra/blob/main/docs/USAGE.md) and [export-derived API reference](https://github.com/Photivra/photivra/blob/main/docs/API_REFERENCE.md). These documents describe the 1.0.1 candidate. The published 1.0.0 release remains available; installation of 1.0.1 becomes available after owner publication.
|
|
41
41
|
|
|
42
42
|
## Documentation
|
|
43
43
|
|
|
@@ -265,13 +265,13 @@ The calling application can then use those results while keeping the underlying
|
|
|
265
265
|
|
|
266
266
|
## Status
|
|
267
267
|
|
|
268
|
-
- Repository package version: `1.0.
|
|
269
|
-
- Engine API contract: `0.
|
|
268
|
+
- Repository package version: `1.0.1` (release candidate; publication is separate)
|
|
269
|
+
- Engine API contract: `1.0.1`
|
|
270
270
|
- Versioned generic tier reference assets: [GENERIC_TIER_PRESETS.md](https://github.com/Photivra/photivra/blob/main/docs/GENERIC_TIER_PRESETS.md).
|
|
271
271
|
- Composed POC simulation API contract: `0.20.0`
|
|
272
272
|
- Stability: 1.0 root-package compatibility policy; bounded scientific models and independent POC contract
|
|
273
273
|
|
|
274
|
-
|
|
274
|
+
From 1.0.1, package version and `ENGINE_API_VERSION` are equal. New captures/plans record 1.0.1; existing archives retain their original creator identities. Schema, model and POC contract versions remain independent. Breaking root contracts now require a package major release; additive and corrective changes follow [compatibility and migration](https://github.com/Photivra/photivra/blob/main/docs/RELEASE_1_0_1.md). A 1.0 package is not a claim of calibrated physical accuracy.
|
|
275
275
|
|
|
276
276
|
Creating a GitHub release/tag and publishing `@photivra/engine` are separate release actions. The tag-triggered publish workflow verifies that the `vX.Y.Z` tag matches the package version before publishing.
|
|
277
277
|
|
|
@@ -343,7 +343,7 @@ When the package is installed directly from a Git repository using normal npm li
|
|
|
343
343
|
|
|
344
344
|
## Development
|
|
345
345
|
|
|
346
|
-
Development and Node-only tooling
|
|
346
|
+
Development and Node-only tooling support maintained Node.js 22 (minimum 22.13), maintained 24, and 26 Current. Prefer patched Node 24 for builds. CI verifies Node.js 22.13 (minimum), patched 22 and 24 LTS, and 26 Current under [the runtime policy](NODE_SUPPORT.md).
|
|
347
347
|
|
|
348
348
|
The reproducible npm workflow uses the committed lockfile:
|
|
349
349
|
|
package/SECURITY.md
CHANGED
|
@@ -4,7 +4,7 @@ Please do not open a public issue containing vulnerability details.
|
|
|
4
4
|
|
|
5
5
|
## Supported versions
|
|
6
6
|
|
|
7
|
-
The 1.0.0
|
|
7
|
+
The published 1.0.0 release established the 1.x root-package compatibility line. Security fixes target the current maintained development/release line; older snapshots and pre-1.0 releases should not be assumed to receive fixes. The current 1.0.1 candidate is not yet published. Node runtime support follows [NODE_SUPPORT.md](NODE_SUPPORT.md), covering maintained LTS lines plus Current; older/EOL runtimes are not qualified.
|
|
8
8
|
|
|
9
9
|
## Reporting a vulnerability
|
|
10
10
|
|
package/dist/core/version.d.ts
CHANGED
|
@@ -1,14 +1,9 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
3
|
-
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
2
|
+
* Version of the public root-engine release, aligned with the npm package since 1.0.1.
|
|
3
|
+
* New captures and plans record this creator identity; archived records retain theirs.
|
|
4
|
+
* POC, schema and model contracts keep their independent versions.
|
|
5
|
+
* Release checks enforce equality with package.json and the packed distribution.
|
|
6
|
+
* @see docs/RELEASE_1_0_1.md
|
|
6
7
|
*/
|
|
7
|
-
|
|
8
|
-
* Version of the public root-engine API contract.
|
|
9
|
-
*
|
|
10
|
-
* This is distinct from the npm package version and all subsystem/schema
|
|
11
|
-
* contract versions.
|
|
12
|
-
*/
|
|
13
|
-
export declare const ENGINE_API_VERSION: "0.116.0";
|
|
8
|
+
export declare const ENGINE_API_VERSION: "1.0.1";
|
|
14
9
|
//# sourceMappingURL=version.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"version.d.ts","sourceRoot":"","sources":["../../src/core/version.ts"],"names":[],"mappings":"AAEA
|
|
1
|
+
{"version":3,"file":"version.d.ts","sourceRoot":"","sources":["../../src/core/version.ts"],"names":[],"mappings":"AAEA;;;;;;GAMG;AACH,eAAO,MAAM,kBAAkB,EAAG,OAAgB,CAAC"}
|
package/dist/core/version.js
CHANGED
|
@@ -1,15 +1,10 @@
|
|
|
1
1
|
// SPDX-License-Identifier: Apache-2.0
|
|
2
2
|
/**
|
|
3
|
-
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
6
|
-
*
|
|
3
|
+
* Version of the public root-engine release, aligned with the npm package since 1.0.1.
|
|
4
|
+
* New captures and plans record this creator identity; archived records retain theirs.
|
|
5
|
+
* POC, schema and model contracts keep their independent versions.
|
|
6
|
+
* Release checks enforce equality with package.json and the packed distribution.
|
|
7
|
+
* @see docs/RELEASE_1_0_1.md
|
|
7
8
|
*/
|
|
8
|
-
|
|
9
|
-
* Version of the public root-engine API contract.
|
|
10
|
-
*
|
|
11
|
-
* This is distinct from the npm package version and all subsystem/schema
|
|
12
|
-
* contract versions.
|
|
13
|
-
*/
|
|
14
|
-
export const ENGINE_API_VERSION = "0.116.0";
|
|
9
|
+
export const ENGINE_API_VERSION = "1.0.1";
|
|
15
10
|
//# sourceMappingURL=version.js.map
|
package/dist/core/version.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"version.js","sourceRoot":"","sources":["../../src/core/version.ts"],"names":[],"mappings":"AAAA,sCAAsC;AAEtC
|
|
1
|
+
{"version":3,"file":"version.js","sourceRoot":"","sources":["../../src/core/version.ts"],"names":[],"mappings":"AAAA,sCAAsC;AAEtC;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,OAAgB,CAAC"}
|
package/docs/API_REFERENCE.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Public API reference
|
|
2
2
|
|
|
3
|
-
Generated from the exact root exports for **@photivra/engine 1.0.
|
|
3
|
+
Generated from the exact root exports for **@photivra/engine 1.0.1 / root contract 1.0.1** by `node scripts/generate-api-reference.mjs`. No module deep import is supported.
|
|
4
4
|
|
|
5
5
|
Use [the developer guide](DEVELOPERS.md) for executable paths and scientific boundaries. Types are contracts, not runtime validation: parse untrusted data, preserve units/reference frames, read assessment blockers, and retain evidence/limitations. Optional properties do not imply a universal default. Model/schema IDs remain independent of the distribution.
|
|
6
6
|
|
package/docs/API_STYLE.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Public API Style
|
|
2
2
|
|
|
3
|
-
Release context: **package 1.0.
|
|
3
|
+
Release context: **package 1.0.1 candidate / root API 1.0.1**. Subsystem/model versions and dated introduction or measurement records below are independent historical identities; they are not distribution versions. See [developer navigation](DEVELOPERS.md) and [release contract](RELEASE_1_0_1.md).
|
|
4
4
|
|
|
5
5
|
The open engine should feel like one coherent library.
|
|
6
6
|
|
|
@@ -89,14 +89,14 @@ Do **not** automatically sum, average, add in quadrature, or otherwise collapse
|
|
|
89
89
|
|
|
90
90
|
## Versioning
|
|
91
91
|
|
|
92
|
-
Photivra
|
|
92
|
+
From 1.0.1, Photivra aligns its release and root API identities:
|
|
93
93
|
|
|
94
94
|
- npm/package version: distribution/release version;
|
|
95
|
-
- `ENGINE_API_VERSION`:
|
|
95
|
+
- `ENGINE_API_VERSION`: the same full version as the npm package;
|
|
96
96
|
- `POC_SIMULATION_API_VERSION`: composed `simulatePocCamera()` request/response contract;
|
|
97
97
|
- schema-specific versions such as sensor-architecture or radiometry-readiness schemas.
|
|
98
98
|
|
|
99
|
-
|
|
99
|
+
The release checker enforces package/root equality. Subsystem, schema and POC versions remain independent. A change to a parser/schema does not necessarily require changing the POC contract, and a POC response change does not necessarily mean the npm package has been released.
|
|
100
100
|
|
|
101
101
|
Before 1.0, public APIs may evolve with documented changes. Breaking or semantically meaningful contract changes must update the relevant version surface, tests, changelog, and migration/compatibility documentation. After 1.0, breaking public-contract changes require an appropriate major-version transition.
|
|
102
102
|
|
|
@@ -160,7 +160,7 @@ serialization keeps its existing validated JSON.stringify representation.
|
|
|
160
160
|
|
|
161
161
|
## Compatibility and deprecation policy
|
|
162
162
|
|
|
163
|
-
|
|
163
|
+
The package and root API share a release version. Update independent schema/model/POC versions only when their observable contracts change.
|
|
164
164
|
|
|
165
165
|
### Package version
|
|
166
166
|
|
|
@@ -168,7 +168,7 @@ The npm package version identifies a published distribution. It is not a proxy f
|
|
|
168
168
|
|
|
169
169
|
### `ENGINE_API_VERSION`
|
|
170
170
|
|
|
171
|
-
|
|
171
|
+
Set to the npm package version for every release, including patches. New records use this creator identity; parsers preserve historical archive identities.
|
|
172
172
|
|
|
173
173
|
### Subsystem/schema versions
|
|
174
174
|
|
|
@@ -228,4 +228,8 @@ Audit rule:
|
|
|
228
228
|
|
|
229
229
|
## Stable 1.0 distribution transition
|
|
230
230
|
|
|
231
|
-
|
|
231
|
+
Historically, package 1.0.0 retained `ENGINE_API_VERSION = "0.116.0"`: this independent root contract identity is already embedded in serialized captures and does not itself signal a published distribution. The package 1.0 policy now governs breaking changes despite that historical root ID. No schema/model/POC/plan version is reset. See [migration and release procedure](RELEASE_1_0.md).
|
|
232
|
+
|
|
233
|
+
## Aligned 1.0.1 release transition
|
|
234
|
+
|
|
235
|
+
Starting with 1.0.1, `ENGINE_API_VERSION` equals the full npm package version. Package and root API follow one SemVer release sequence; schema/model/POC/plan versions remain independent. Archived capture identities and measured artifacts are preserved. Newly created capture/plan bytes and identity hashes can change because their creator API field now records 1.0.1. See [migration and release procedure](RELEASE_1_0_1.md).
|
package/docs/ARCHITECTURE.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Architecture
|
|
2
2
|
|
|
3
|
-
Release context: **package 1.0.
|
|
3
|
+
Release context: **package 1.0.1 candidate / root API 1.0.1**. Subsystem/model versions and dated introduction or measurement records below are independent historical identities; they are not distribution versions. See [developer navigation](DEVELOPERS.md) and [release contract](RELEASE_1_0_1.md).
|
|
4
4
|
|
|
5
5
|
Photivra separates a reusable scientific core from optional composition and transport layers.
|
|
6
6
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Public-engine automation coordination
|
|
2
2
|
|
|
3
|
-
Release context: **package 1.0.
|
|
3
|
+
Release context: **package 1.0.1 candidate / root API 1.0.1**. Subsystem/model versions and dated introduction or measurement records below are independent historical identities; they are not distribution versions. See [developer navigation](DEVELOPERS.md) and [release contract](RELEASE_1_0_1.md).
|
|
4
4
|
|
|
5
5
|
This document coordinates the two recurring automation lanes that work only in the public
|
|
6
6
|
`Photivra/photivra` repository. It is process guidance, not a scientific roadmap. Open issues and
|
package/docs/CAPTURE_COLOR.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Virtual-camera linear color: #15B
|
|
2
2
|
|
|
3
|
-
Release context: **package 1.0.
|
|
3
|
+
Release context: **package 1.0.1 candidate / root API 1.0.1**. Subsystem/model versions and dated introduction or measurement records below are independent historical identities; they are not distribution versions. See [developer navigation](DEVELOPERS.md) and [release contract](RELEASE_1_0_1.md).
|
|
4
4
|
|
|
5
5
|
`resolveCaptureColorModel()` defines an ideal CIE 1931 2-degree colorimetric camera: co-sited red/green/blue channels are an invertible encoding of XYZ in the linear-sRGB primary basis, with D65 reference white. They are relative linear values, not electrons, spectral response measurements or commercial-camera RGB. Choosing this profile is an upstream producer assertion about sample meaning; naming arbitrary sensor data with its ID does not establish validity.
|
|
6
6
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Capture-bound corrections and SDR: #112 integration slice
|
|
2
2
|
|
|
3
|
-
Release context: **package 1.0.
|
|
3
|
+
Release context: **package 1.0.1 candidate / root API 1.0.1**. Subsystem/model versions and dated introduction or measurement records below are independent historical identities; they are not distribution versions. See [developer navigation](DEVELOPERS.md) and [release contract](RELEASE_1_0_1.md).
|
|
4
4
|
|
|
5
5
|
`calculateCaptureCorrectedSdr()` consumes the same immutable `SimulatedCapture` and explicit source/color/WB choice as `calculateCaptureSdr()`, then executes existing #117/#118 corrections before the existing SDR renderer. This bounded reference bridge does not replace the #111 composer, activate production stages, or complete #112/V1.
|
|
6
6
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Capture export metadata foundation (#16B)
|
|
2
2
|
|
|
3
|
-
Release context: **package 1.0.
|
|
3
|
+
Release context: **package 1.0.1 candidate / root API 1.0.1**. Subsystem/model versions and dated introduction or measurement records below are independent historical identities; they are not distribution versions. See [developer navigation](DEVELOPERS.md) and [release contract](RELEASE_1_0_1.md).
|
|
4
4
|
|
|
5
5
|
`createCaptureExportMetadataPair()` is a browser-safe, deterministic **semantic metadata projection**, not an image exporter or proof of RAW/JPEG pixel derivation. Both future writers consume its single shared object; each resource has a distinct caller-owned document UUID and saved-incarnation UUID. `imageDataPairing = "not-verified"` prevents metadata agreement being mistaken for image agreement.
|
|
6
6
|
|
package/docs/CAPTURE_SDR.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Capture-to-SDR adapter
|
|
2
2
|
|
|
3
|
-
Release context: **package 1.0.
|
|
3
|
+
Release context: **package 1.0.1 candidate / root API 1.0.1**. Subsystem/model versions and dated introduction or measurement records below are independent historical identities; they are not distribution versions. See [developer navigation](DEVELOPERS.md) and [release contract](RELEASE_1_0_1.md).
|
|
4
4
|
|
|
5
5
|
Current integration: [processed camera output](PROCESSED_OUTPUT.md) documents
|
|
6
6
|
the shared preview/export path and explicit plan 0.6.0 post-RAW activation.
|
package/docs/DEVELOPERS.md
CHANGED
|
@@ -1,29 +1,29 @@
|
|
|
1
1
|
# Developer guide
|
|
2
2
|
|
|
3
|
-
This is the entry point for **@photivra/engine 1.0.
|
|
3
|
+
This is the entry point for **@photivra/engine 1.0.1 candidate**, root API contract **1.0.1**. The candidate becomes an installable 1.0.1 distribution only after the owner tags and publishes it. Repository `main` may later describe newer development; use a published release's packaged docs or its exact tag for the stable contract. [Release notes and migration](RELEASE_1_0_1.md) explain the transition to aligned package/root versions.
|
|
4
4
|
|
|
5
5
|
Photivra is an Apache-2.0 ESM TypeScript calculation library with no runtime npm dependencies. It exposes explicit units, deterministic data, provenance and bounded scientific approximations. The package supplies no hosted API, renderer installation, UI, commercial camera calibration or automatic agent service. [Photivra's public site](https://photivra.com) is separate from the engine's license; public engine documentation is available here without an application account.
|
|
6
6
|
|
|
7
7
|
## Install and calculate
|
|
8
8
|
|
|
9
|
-
After publication, install `npm install @photivra/engine@1.0.
|
|
9
|
+
After publication, install `npm install @photivra/engine@1.0.1`. During candidate review, use the verified tarball described in [release preparation](RELEASE_1_0_1.md).
|
|
10
10
|
|
|
11
11
|
```ts
|
|
12
12
|
import { calculateFieldOfView, ENGINE_API_VERSION } from "@photivra/engine";
|
|
13
13
|
|
|
14
14
|
const horizontal = calculateFieldOfView({ focalLengthMm: 50, sensorDimensionMm: 36 });
|
|
15
|
-
console.log(ENGINE_API_VERSION); // 0.
|
|
15
|
+
console.log(ENGINE_API_VERSION); // 1.0.1: matches the package version
|
|
16
16
|
console.log(horizontal.value.degrees); // approximately 39.60, ideal infinity-focus geometry
|
|
17
17
|
console.log(horizontal.provenance); // read assumptions/status with the value
|
|
18
18
|
```
|
|
19
19
|
|
|
20
|
-
The root is browser-safe. Supported Node execution/tooling is Node 22.13+ within the maintained 22 line
|
|
20
|
+
The root is browser-safe. Supported Node execution/tooling is Node 22.13+ within the maintained 22 line, the maintained 24 line, and Node 26 Current; prefer patched Node 24. The broad manifest minimum does not qualify untested or EOL lines. A browser backend must supply the documented ES APIs (including `structuredClone`, typed arrays and Web Crypto where used); a browser-safe import graph is not a promise about every browser version or rendering speed. See [runtime policy](../NODE_SUPPORT.md).
|
|
21
21
|
|
|
22
22
|
Primitive calculations normally return `CalculationResult<T>` with `value`, `provenance` and optional `quality`. Parsers return validated values; plans/snapshots return their independently versioned records; assessments return explicit blockers; paired export returns a Promise because hashing is asynchronous. Do not infer calibrated accuracy from successful parsing, a complete stage graph, a generic tier name or deterministic replay.
|
|
23
23
|
|
|
24
24
|
## Find the operation by scientific task
|
|
25
25
|
|
|
26
|
-
Every row applies to package 1.0.
|
|
26
|
+
Every row applies to package/root API 1.0.1. Direct calculations are synchronous/browser-safe unless the row says otherwise. A listed primitive is not automatically an app feature or supported in every production combination. The [API reference](API_REFERENCE.md) resolves all root exports and exact signatures; the linked guides own equations, inputs, defaults, errors and limits.
|
|
27
27
|
|
|
28
28
|
| Task | Start here / executable evidence | Qualified boundary |
|
|
29
29
|
| --- | --- | --- |
|
|
@@ -57,4 +57,4 @@ Malformed configurations/non-finite values throw the established domain errors.
|
|
|
57
57
|
|
|
58
58
|
See [provenance](PROVENANCE.md), [license](../LICENSE), [NOTICE](../NOTICE), [third-party inventory](../THIRD_PARTY.md), [contributing](../CONTRIBUTING.md) and [security reporting](../SECURITY.md). Engine code/docs do not license the commercial application or its private assets. Report reproducible engine defects through [public issues](https://github.com/Photivra/photivra/issues).
|
|
59
59
|
|
|
60
|
-
Website navigation/documentation hosting belongs to [the app-side discovery ticket #45](https://github.com/Photivra/photivra-apps/issues/45), with navigation #298 and environments #300. Handoff: link the public engine repository, this developer guide, the
|
|
60
|
+
Website navigation/documentation hosting belongs to [the app-side discovery ticket #45](https://github.com/Photivra/photivra-apps/issues/45), with navigation #298 and environments #300. Handoff: link the public engine repository, this developer guide, the verified npm release package and capability examples from the public site. No unpublished `/developers` destination is linked here. Website launch is not an engine release prerequisite; access to the site returned HTTP 403 during this audit, so its content/navigation was not verified.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Stray light and digital lens correction foundations
|
|
2
2
|
|
|
3
|
-
Release context: **package 1.0.
|
|
3
|
+
Release context: **package 1.0.1 candidate / root API 1.0.1**. Subsystem/model versions and dated introduction or measurement records below are independent historical identities; they are not distribution versions. See [developer navigation](DEVELOPERS.md) and [release contract](RELEASE_1_0_1.md).
|
|
4
4
|
|
|
5
5
|
Issues #114, #118 and #117 add standalone browser-safe primitives. They do not enable a production-plan stage, change the POC, or supply a calibrated camera/lens preset. The public root API advances from 0.94.0 to 0.95.0; each new profile/prepared-map schema is 0.1.0. Package, POC, production-plan and PSF versions are unchanged. This branch incorporates merged polygon-diffraction PR #157 and reconciles the root API increment with that predecessor.
|
|
6
6
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Executed environment capture to native RAW
|
|
2
2
|
|
|
3
|
-
Release context: **package 1.0.
|
|
3
|
+
Release context: **package 1.0.1 candidate / root API 1.0.1**. Subsystem/model versions and dated introduction or measurement records below are independent historical identities; they are not distribution versions. See [developer navigation](DEVELOPERS.md) and [release contract](RELEASE_1_0_1.md).
|
|
4
4
|
|
|
5
5
|
`calculateEnvironmentSensorPhotoSignal()` executes one destination site's
|
|
6
6
|
bounded environment exposure. `simulateEnvironmentSensorRawFrame()` applies that
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Simulated Sensor RAW DNG / JPEG acceptance
|
|
2
2
|
|
|
3
|
-
Release context: **package 1.0.
|
|
3
|
+
Release context: **package 1.0.1 candidate / root API 1.0.1**. Subsystem/model versions and dated introduction or measurement records below are independent historical identities; they are not distribution versions. See [developer navigation](DEVELOPERS.md) and [release contract](RELEASE_1_0_1.md).
|
|
4
4
|
|
|
5
5
|
This record separates implemented export behavior, reproducible independent
|
|
6
6
|
checks and external application acceptance for #16. The files are synthetic
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Generic equipment tier reference assets
|
|
2
2
|
|
|
3
|
-
Release context: **package 1.0.
|
|
3
|
+
Release context: **package 1.0.1 candidate / root API 1.0.1**. Subsystem/model versions and dated introduction or measurement records below are independent historical identities; they are not distribution versions. See [developer navigation](DEVELOPERS.md) and [release contract](RELEASE_1_0_1.md).
|
|
4
4
|
|
|
5
5
|
`resolveGenericEquipmentTierCatalog({ presetVersion: "1.0.0" })` returns immutable
|
|
6
6
|
Consumer, Prosumer and Professional body/lens reference bundles. These are
|
|
@@ -139,7 +139,7 @@ There is no separate tier-specific browser approximation to compare here; the
|
|
|
139
139
|
public implementation remains browser-safe and uses the ordinary reference APIs.
|
|
140
140
|
No private application acceptance is invented.
|
|
141
141
|
|
|
142
|
-
Initial tier assets landed at root API 0.105.0; the current root API is 0.
|
|
142
|
+
Initial tier assets landed at root API 0.105.0; the current root API is 1.0.1.
|
|
143
143
|
This acceptance-only extension does not change runtime/API or asset definitions. Selection schema 0.1.0, asset version 1.0.0, npm package,
|
|
144
144
|
POC and production contracts remain independent. Human scientific/provenance
|
|
145
145
|
review and contribution-specific DCO certification are still required.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Call-local geometry preparation reuse: #43
|
|
2
2
|
|
|
3
|
-
Release context: **package 1.0.
|
|
3
|
+
Release context: **package 1.0.1 candidate / root API 1.0.1**. Subsystem/model versions and dated introduction or measurement records below are independent historical identities; they are not distribution versions. See [developer navigation](DEVELOPERS.md) and [release contract](RELEASE_1_0_1.md).
|
|
4
4
|
|
|
5
5
|
`calculateGeometricSamplingPlan()` already parses and copies a complete transform
|
|
6
6
|
list at its public boundary. It previously called the public scalar mapping API
|
package/docs/IMAGE_FORMATION.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Image-Formation Contract
|
|
2
2
|
|
|
3
|
-
Release context: **package 1.0.
|
|
3
|
+
Release context: **package 1.0.1 candidate / root API 1.0.1**. Subsystem/model versions and dated introduction or measurement records below are independent historical identities; they are not distribution versions. See [developer navigation](DEVELOPERS.md) and [release contract](RELEASE_1_0_1.md).
|
|
4
4
|
|
|
5
5
|
Photivra's image-formation contract defines **scientific ownership, coordinate semantics, and dependency/coupling boundaries** for current and future camera effects.
|
|
6
6
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Deterministic linear capture encoding: #15C
|
|
2
2
|
|
|
3
|
-
Release context: **package 1.0.
|
|
3
|
+
Release context: **package 1.0.1 candidate / root API 1.0.1**. Subsystem/model versions and dated introduction or measurement records below are independent historical identities; they are not distribution versions. See [developer navigation](DEVELOPERS.md) and [release contract](RELEASE_1_0_1.md).
|
|
4
4
|
|
|
5
5
|
`calculateLinearCaptureEncoding()` produces format-neutral unsigned 16-bit linear codes from one bounded inline `SimulatedCapture` plane. The exact plane/image-state identity is mandatory. The master stays unchanged; color, WB application, source reference value and upstream capture-saturation history accompany the encoded data. It neither chooses a file format nor invents a color conversion.
|
|
6
6
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Motion and Signal Foundation
|
|
2
2
|
|
|
3
|
-
Release context: **package 1.0.
|
|
3
|
+
Release context: **package 1.0.1 candidate / root API 1.0.1**. Subsystem/model versions and dated introduction or measurement records below are independent historical identities; they are not distribution versions. See [developer navigation](DEVELOPERS.md) and [release contract](RELEASE_1_0_1.md).
|
|
4
4
|
|
|
5
5
|
## Projected subject motion
|
|
6
6
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Numerical Correctness and Physical Units
|
|
2
2
|
|
|
3
|
-
Release context: **package 1.0.
|
|
3
|
+
Release context: **package 1.0.1 candidate / root API 1.0.1**. Subsystem/model versions and dated introduction or measurement records below are independent historical identities; they are not distribution versions. See [developer navigation](DEVELOPERS.md) and [release contract](RELEASE_1_0_1.md).
|
|
4
4
|
|
|
5
5
|
Photivra is a scientific engine. Numerical behavior and physical-unit meaning are public-contract concerns, not implementation details.
|
|
6
6
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Measured-performance baseline: #43 / #45
|
|
2
2
|
|
|
3
|
-
Release context: **package 1.0.
|
|
3
|
+
Release context: **package 1.0.1 candidate / root API 1.0.1**. Subsystem/model versions and dated introduction or measurement records below are independent historical identities; they are not distribution versions. See [developer navigation](DEVELOPERS.md) and [release contract](RELEASE_1_0_1.md).
|
|
4
4
|
|
|
5
5
|
This independent first slice records merged main `83a99a4c1ec525fd1add7cccff134fcee0f5159b`, root API 0.93.0, POC API 0.20.0, in `docs/benchmarks/2026-10-01-main-baseline.json`. No pending capture/output/correction/preset implementation is consumed. It does not close either issue or justify an optimization by itself.
|
|
6
6
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Simulated Sensor RAW DNG / JPEG export
|
|
2
2
|
|
|
3
|
-
Release context: **package 1.0.
|
|
3
|
+
Release context: **package 1.0.1 candidate / root API 1.0.1**. Subsystem/model versions and dated introduction or measurement records below are independent historical identities; they are not distribution versions. See [developer navigation](DEVELOPERS.md) and [release contract](RELEASE_1_0_1.md).
|
|
4
4
|
|
|
5
5
|
Current producer-derived files and external closure gates are recorded in
|
|
6
6
|
[Export acceptance](EXPORT_ACCEPTANCE.md). The new reproducible generator uses
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Physics Foundation
|
|
2
2
|
|
|
3
|
-
Release context: **package 1.0.
|
|
3
|
+
Release context: **package 1.0.1 candidate / root API 1.0.1**. Subsystem/model versions and dated introduction or measurement records below are independent historical identities; they are not distribution versions. See [developer navigation](DEVELOPERS.md) and [release contract](RELEASE_1_0_1.md).
|
|
4
4
|
|
|
5
5
|
Photivra starts with analytical models that can be independently tested and whose assumptions can be stated explicitly.
|
|
6
6
|
|
package/docs/POC_API.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Local POC Simulation API
|
|
2
2
|
|
|
3
|
-
Release context: **package 1.0.
|
|
3
|
+
Release context: **package 1.0.1 candidate / root API 1.0.1**. Subsystem/model versions and dated introduction or measurement records below are independent historical identities; they are not distribution versions. See [developer navigation](DEVELOPERS.md) and [release contract](RELEASE_1_0_1.md).
|
|
4
4
|
|
|
5
5
|
Photivra includes a minimal Node HTTP transport for proof-of-concept development and integration testing.
|
|
6
6
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Request-local defocus projection reuse: #45
|
|
2
2
|
|
|
3
|
-
Release context: **package 1.0.
|
|
3
|
+
Release context: **package 1.0.1 candidate / root API 1.0.1**. Subsystem/model versions and dated introduction or measurement records below are independent historical identities; they are not distribution versions. See [developer navigation](DEVELOPERS.md) and [release contract](RELEASE_1_0_1.md).
|
|
4
4
|
|
|
5
5
|
The measured candidate reuses the focus-plane image distance already calculated
|
|
6
6
|
inside `simulatePocCamera()` for its subject and defocus sweep. It is a small
|
package/docs/PROCESSED_OUTPUT.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Processed camera output
|
|
2
2
|
|
|
3
|
-
Release context: **package 1.0.
|
|
3
|
+
Release context: **package 1.0.1 candidate / root API 1.0.1**. Subsystem/model versions and dated introduction or measurement records below are independent historical identities; they are not distribution versions. See [developer navigation](DEVELOPERS.md) and [release contract](RELEASE_1_0_1.md).
|
|
4
4
|
|
|
5
5
|
Root API 0.115.0 completes the bounded SDR post-capture handoff for #112.
|
|
6
6
|
Production plan 0.6.0 adds explicit committed RAW processing. At introduction, package 0.6.0,
|