CtrlK
BlogDocsLog inGet started
Tessl Logo

jbaruch/nanoclaw-travel

Travel assistant for NanoClaw: byAir flight notifications (delay, gate, connection risk, inbound aircraft delay, time-to-leave, arrival logistics), traffic-aware drive planning for in-person meetings (auto drive blocks + leave-by traffic rechecks), travel-booking gap checks, and nightly TripIt sync. Per-chat overlay tile.

77

Quality

96%

Does it follow best practices?

Impact

No eval scenarios have been run

SecuritybySnyk

Advisory

Suggest reviewing before use

Overview
Quality
Evals
Security
Files

route_error.pyskills/drive-planner/

"""A single drive-planner-owned routing-failure type — the route boundary.

The sweep planner and the recheck poll both price legs through an injected
`route(origin, destination)` callable so the pure decision cores stay decoupled
from `maps_client` (and CI-testable without it). Those cores need to catch a
routing failure — to record it as a `route_error` and move on — without a bare
`except Exception` (per `coding-policy: error-handling`, Specific Exceptions).
`RouteError` is that specific type: the live `_route_seconds` wrapper translates
the provider's `MapsError` / `urllib` transport errors into a `RouteError`, and
the pure cores catch only `RouteError`. A non-routing bug (e.g. a leg with no
anchor) is not a `RouteError` and propagates, as the rule requires.

stdlib-only per `coding-policy: dependency-management` (Stdlib First).
"""

from __future__ import annotations


class RouteError(Exception):
    """A leg could not be priced — the routing provider failed for this pair.

    Raised by the route wrapper after the provider's `MapsError` / transport
    error; caught by the sweep planner and recheck poll to record an un-priced
    leg rather than abort the batch. Carries the original message.
    """

CHANGELOG.md

README.md

tile.json