slidesync 0.6.1__tar.gz → 0.6.2__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: slidesync
3
- Version: 0.6.1
3
+ Version: 0.6.2
4
4
  Summary: Bidirectional sync between a Slidev markdown deck and Google Slides as native, editable objects
5
5
  Author-email: Daniel Hails <slidesync@hails.info>
6
6
  License: MIT
@@ -22,7 +22,7 @@ Bidirectional sync between a [Slidev](https://sli.dev) markdown deck and **Googl
22
22
  Slides** — as native, editable objects (title/body/bullets/tables/positioned
23
23
  images, brand-styled text boxes), not pasted screenshots.
24
24
 
25
- Version: 0.6.1
25
+ Version: 0.6.2
26
26
 
27
27
  ```bash
28
28
  uvx slidesync --help # run without installing
@@ -4,7 +4,7 @@ Bidirectional sync between a [Slidev](https://sli.dev) markdown deck and **Googl
4
4
  Slides** — as native, editable objects (title/body/bullets/tables/positioned
5
5
  images, brand-styled text boxes), not pasted screenshots.
6
6
 
7
- Version: 0.6.1
7
+ Version: 0.6.2
8
8
 
9
9
  ```bash
10
10
  uvx slidesync --help # run without installing
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "slidesync"
3
- version = "0.6.1"
3
+ version = "0.6.2"
4
4
  authors = [
5
5
  { name = "Daniel Hails", email = "slidesync@hails.info" },
6
6
  ]
@@ -32,7 +32,7 @@ include = ["slidesync*"]
32
32
  dev = ["pytest>=8"]
33
33
 
34
34
  [tool.bumpver]
35
- current_version = "0.6.1"
35
+ current_version = "0.6.2"
36
36
  version_pattern = "MAJOR.MINOR.PATCH"
37
37
  commit_message = "bump version {old_version} -> {new_version}"
38
38
  commit = true
@@ -30,7 +30,7 @@ from slidesync._sync import (
30
30
  write_slidev,
31
31
  )
32
32
 
33
- __version__ = "0.6.1"
33
+ __version__ = "0.6.2"
34
34
 
35
35
  __all__ = [
36
36
  "Para",
@@ -2378,6 +2378,11 @@ def cmd_sync(args):
2378
2378
  local = _content_lines(sl.src or "", sl.template_name) or []
2379
2379
  status = classify_drift(base, local, live_lines)
2380
2380
  if status in ("clean", "converged"):
2381
+ if s["objectId"] != sl.object_id:
2382
+ # Rendered text matches, but the content hash moved — a
2383
+ # comment/notes-level local change that still needs a push.
2384
+ logger.info(f"[notes-edit] {sl.key} — push will update it")
2385
+ state["pushable"] = True
2381
2386
  continue
2382
2387
  if status == "local-edit":
2383
2388
  logger.info(f"[local-edit] {sl.key} — push will update it")
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: slidesync
3
- Version: 0.6.1
3
+ Version: 0.6.2
4
4
  Summary: Bidirectional sync between a Slidev markdown deck and Google Slides as native, editable objects
5
5
  Author-email: Daniel Hails <slidesync@hails.info>
6
6
  License: MIT
@@ -22,7 +22,7 @@ Bidirectional sync between a [Slidev](https://sli.dev) markdown deck and **Googl
22
22
  Slides** — as native, editable objects (title/body/bullets/tables/positioned
23
23
  images, brand-styled text boxes), not pasted screenshots.
24
24
 
25
- Version: 0.6.1
25
+ Version: 0.6.2
26
26
 
27
27
  ```bash
28
28
  uvx slidesync --help # run without installing
@@ -561,3 +561,15 @@ def test_force_push_does_not_churn_already_anchored_threads(env):
561
561
  _push(env, force=True) # re-render with UNCHANGED content -> same objectIds
562
562
  assert {t["id"] for t in env.drive.threads} == stable_ids, \
563
563
  "an already-anchored thread must not be deleted/recreated"
564
+
565
+
566
+ def test_comment_only_local_change_still_syncs(env):
567
+ # Converting a presenter note to an @-annotation changes no rendered text,
568
+ # but it changes the speaker notes + marker — sync must still push it.
569
+ env.path.write_text(env.path.read_text().replace(
570
+ "<!-- presenter note A -->", "<!-- @Ted: presenter note A -->"))
571
+ _sync_cmd(env)
572
+ slide = next(s for s in env.store.slides
573
+ if any("Takeaway A" in sh["text"] for sh in s["shapes"].values()))
574
+ assert "presenter note A" not in slide["notes"], \
575
+ "the @-annotation must leave the speaker-notes pane on the next sync"
File without changes
File without changes
File without changes
File without changes