Skip to content

Commit 66a851c

Browse files
Merge pull request #3222 from airbytehq/publish/granola-v0.1.30
chore(granola): bump to 0.1.30
2 parents a735412 + 2a28c5c commit 66a851c

File tree

4 files changed

+44
-9
lines changed

4 files changed

+44
-9
lines changed

connectors/granola/CHANGELOG.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,10 @@
11
# Granola changelog
22

3+
## [0.1.30] - 2026-04-09
4+
- Updated connector definition (YAML version 1.0.6)
5+
- Source commit: c5258deb
6+
- SDK version: 0.1.0
7+
38
## [0.1.29] - 2026-04-09
49
- Updated connector definition (YAML version 1.0.6)
510
- Source commit: 6bf360a5

connectors/granola/README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -106,7 +106,7 @@ See the official [Granola API reference](https://docs.granola.ai/introduction).
106106

107107
## Version information
108108

109-
- **Package version:** 0.1.29
109+
- **Package version:** 0.1.30
110110
- **Connector version:** 1.0.6
111-
- **Generated with Connector SDK commit SHA:** 6bf360a546d577c9f76e8a6b8abf9ffc4dbfcf3a
111+
- **Generated with Connector SDK commit SHA:** c5258debd165ab701252c1436d4acfb475bf92b9
112112
- **Changelog:** [View changelog](https://github.com/airbytehq/airbyte-agent-connectors/blob/main/connectors/granola/CHANGELOG.md)

connectors/granola/airbyte_agent_granola/_vendored/connector_sdk/executor/local_executor.py

Lines changed: 36 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,36 @@
6262

6363

6464
class ParamResolutionError(Exception):
65-
"""Raised when a path parameter cannot be resolved for entity probing."""
65+
"""Raised when a path parameter cannot be resolved for entity probing.
66+
67+
Covers structural resolution failures (unresolvable param, self-reference,
68+
parent with no LIST op, parent returning no records, missing parent key,
69+
max recursion depth). ``_probe_entity`` converts these into UNHEALTHY
70+
results so the backend controller classifies them as INCONCLUSIVE. SKIPPED
71+
is reserved exclusively for "this entity has no list/get action at all".
72+
73+
Execution failures from probing a parent entity use ParentProbeError
74+
instead, so the child can inherit the parent's ``status_code`` for
75+
401/403 -> FAILED classification.
76+
"""
77+
78+
79+
class ParentProbeError(Exception):
80+
"""Raised when a parent entity's LIST probe fails during param resolution.
81+
82+
Wraps the original exception's message with parent-entity context for
83+
debuggability, while preserving the parent's ``status_code`` so the child
84+
can be classified the same way the parent would be (401/403 -> FAILED,
85+
everything else -> INCONCLUSIVE at the backend controller layer).
86+
87+
Distinct from ``ParamResolutionError`` so the ``status_code`` survives --
88+
both route through ``_probe_entity``'s UNHEALTHY branch, but only
89+
ParentProbeError carries the parent's HTTP status.
90+
"""
91+
92+
def __init__(self, message: str, status_code: int | None = None) -> None:
93+
super().__init__(message)
94+
self.status_code = status_code
6695

6796

6897
class _OperationContext:
@@ -727,9 +756,7 @@ async def _probe_entity(
727756
# Also resolve query params that have a matching scoping or config
728757
# key, so explicit config values take precedence over defaults.
729758
for qp in endpoint.query_params:
730-
if qp not in params_needing_resolution and (
731-
qp in self._scoping_index or qp in self.config_values
732-
):
759+
if qp not in params_needing_resolution and (qp in self._scoping_index or qp in self.config_values):
733760
params_needing_resolution.append(qp)
734761
if params_needing_resolution:
735762
try:
@@ -744,7 +771,7 @@ async def _probe_entity(
744771
except ParamResolutionError as exc:
745772
return {
746773
"entity": entity_name,
747-
"status": CHECK_STATUS_SKIPPED,
774+
"status": CHECK_STATUS_UNHEALTHY,
748775
"error": str(exc),
749776
"status_code": None,
750777
"checked_action": action.value,
@@ -846,7 +873,10 @@ async def _resolve_path_params(
846873
parent_params,
847874
)
848875
except Exception as exc:
849-
raise ParamResolutionError(f"Parent entity '{parent_entity_name}' probe failed: {exc}") from exc
876+
raise ParentProbeError(
877+
f"Parent entity '{parent_entity_name}' probe failed: {exc}",
878+
status_code=getattr(exc, "status_code", None),
879+
) from exc
850880
records = result.data if isinstance(result.data, list) else []
851881
if not records:
852882
raise ParamResolutionError(f"Parent entity '{parent_entity_name}' returned no records")

connectors/granola/pyproject.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[project]
22
name = "airbyte-agent-granola"
3-
version = "0.1.29"
3+
version = "0.1.30"
44
description = "Airbyte Granola Connector for AI platforms"
55
readme = "README.md"
66
requires-python = ">=3.13"

0 commit comments

Comments
 (0)