From the v0.6.0 architecture gap review (2026-05-29).
Problem
Every delete() returns a hardcoded True — it can never return False because failures raise — so the boolean is a meaningless flag:
src/notebooklm/_notebooks.py:511
src/notebooklm/_sources.py:624
src/notebooklm/_artifacts.py:567
src/notebooklm/_notes.py:201
Separately, rename() returns the updated object for notebooks/sources but returns None for artifacts (src/notebooklm/_artifacts.py:587).
Suggested direction
delete() -> None everywhere (failures already raise)
artifacts.rename() -> Artifact (match notebooks/sources)
Pre-1.0 breaking-change window.
From the v0.6.0 architecture gap review (2026-05-29).
Problem
Every
delete()returns a hardcodedTrue— it can never returnFalsebecause failures raise — so the boolean is a meaningless flag:src/notebooklm/_notebooks.py:511src/notebooklm/_sources.py:624src/notebooklm/_artifacts.py:567src/notebooklm/_notes.py:201Separately,
rename()returns the updated object for notebooks/sources but returnsNonefor artifacts (src/notebooklm/_artifacts.py:587).Suggested direction
delete()->Noneeverywhere (failures already raise)artifacts.rename()->Artifact(match notebooks/sources)Pre-1.0 breaking-change window.