Skip to content

[MS-1607] Make face capture acceptance thresholds remote-configurable - #1848

Open
meladRaouf wants to merge 1 commit into
mainfrom
feature/MS-1607-face-capture-thresholds-config
Open

meladRaouf wants to merge 1 commit into
mainfrom
feature/MS-1607-face-capture-thresholds-config

Conversation

@meladRaouf

Copy link
Copy Markdown
Collaborator

JIRA ticket
Will be released in: 2027.1.0

Notable changes

  • Face capture acceptance thresholds were hardcoded in LiveFeedbackViewModel, so tuning them required an app release. They are now read from the project's custom (experimental) configuration, with a single set of values applied across all face SDKs:
Key Default Allowed range
faceCaptureMaxYawDegrees 30 1–90 (clamped)
faceCaptureMaxRollDegrees 15 1–90 (clamped)
faceCaptureMinArea 0.2 0–1 (clamped)
faceCaptureMaxArea 0.5 0–1 (clamped)
  • If the configured min area is not below the max area, both fall back to the defaults.
  • Without any of these keys, behaviour is unchanged.

Testing guidance

  • With no custom config keys set, face capture behaves as before (±30° yaw, ±15° roll, 0.2–0.5 area).
  • Set e.g. "faceCaptureMaxYawDegrees": 10 in the project custom config, sync, and check that turning the head slightly now shows the "look straight" feedback.
  • Set "faceCaptureMaxArea": 0.35 and check that "too close" triggers earlier; set "faceCaptureMinArea": 0.1 and check that "too far" triggers later.
  • Repeat with a different face SDK to confirm the same values apply.

Additional work checklist

  • Effect on other features and security has been considered
  • Design document marked as "In development" (if applicable)
  • External (Gitbook) and internal (Confluence) Documentation is up to date (or ticket created)
  • Test cases in Testiny are up to date (or ticket created)
  • Other teams notified about the changes (if applicable)

🤖 Generated with Claude Code

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot review overview

🟡 Changes recommended

Non-finite values can block capture, and asynchronous initialization can process frames with stale defaults.

Review effort: Balanced
Findings: 1 High severity · 1 Medium severity

Open (2)
What changed in this PR

Makes face-capture acceptance thresholds remotely configurable while preserving existing defaults.

Changes:

  • Adds validated yaw, roll, and face-area configuration.
  • Applies thresholds across face SDKs.
  • Adds parsing and ViewModel tests.
File Description
ExperimentalProjectConfiguration.kt Defines and parses threshold configuration.
ExperimentalProjectConfigurationTest.kt Tests defaults, clamping, and invalid ranges.
LiveFeedbackViewModel.kt Applies configured thresholds during capture.
LiveFeedbackViewModelTest.kt Verifies configured feedback behavior.

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

@meladRaouf
meladRaouf force-pushed the feature/MS-1607-face-capture-thresholds-config branch from 1a405e3 to 0fdc93b Compare October 8, 2026 11:24
@meladRaouf
meladRaouf requested a balanced review from Copilot October 9, 2026 09:19

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🔵 Needs a closer look

Frame processing can accept a capture using defaults before asynchronously loaded project thresholds are applied.

0 open findings

2 resolved since last review

🧠 Review effort: Balanced

@meladRaouf
meladRaouf marked this pull request as ready for review October 9, 2026 10:03
@sonarqubecloud

sonarqubecloud Bot commented Oct 9, 2026

Copy link
Copy Markdown

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants