You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
* feat(reporter): surface manifest parse failures in FSRT output
Previously, manifest deserialization errors were silently swallowed via unwrap_or_default(), causing FSRT to scan an empty manifest and return zero findings with errors: false.
Change get_manifest() to return Result<ForgeManifest, serde_yaml::Error> and handle parse failures in scan_directory() by returning a structured error report with errors: true and a detailed error_message field, e.g.:
'Could not process manifest, failed on modules.scheduledTrigger[0].interval: unknown variant `fiveMinute`, expected one of `hour`, `day`, `week` at line 27 column 17'
Add error_message: String field (default empty) to Report. Add Report::error() constructor, has_errors() and error_message() accessors.
* fix(manifest): support endpoint-routed triggers
Allow modules.trigger entries to deserialize with endpoint instead of function, matching Forge manifest behavior where endpoint is required when function is omitted.
This prevents valid endpoint-routed lifecycle triggers from failing manifest processing with missing field function.
* fix(manifest): support boolean macro config
Allow Confluence macro modules to deserialize config: true in addition to config objects with function handlers.
This prevents valid macro manifests from failing manifest processing.
* fix(manifest): default missing permissions to empty scopes
Allow manifests without a permissions block to deserialize by defaulting permissions to Perms::default(), equivalent to permissions.scopes: [].
This prevents apps that omit permissions from failing manifest processing before scanning.
* fix(manifest): support i18n jira admin page titles
Allow jira:adminPage title to deserialize from either a plain string or an i18n object.
This prevents valid manifests using title.i18n from failing manifest processing with invalid type map
* fix(manifest): own rovo agent descriptions
Deserialize rovo:agent description as an owned String instead of a borrowed str so YAML strings requiring escape processing, such as descriptions containing newlines, do not fail manifest processing.
This prevents valid Rovo agent manifests from failing with expected a borrowed string.
* fix(manifest): own rovo agent text fields
Deserialize rovo:agent description and conversationStarters as owned Strings instead of borrowed strs.
YAML strings containing escape sequences such as \n require allocation during deserialization, so borrowed strs can fail manifest processing with expected a borrowed string. Owning these fields allows valid Rovo agent manifests with multiline or escaped text to parse correctly.
* fix(manifest): resources[].path string processing cannot be a borrowed string
* chore: fmt isssues
"You are a helpful assistant that helps users manage their project risks. \nYou can retrieve risks from the risk register, create new risks and update existing ones."
0 commit comments