ICS → Discourse Importer

Behaviour nuance: --time-only-dedupe is not truly “time-only”

One subtle but important detail from further testing:

  • With --time-only-dedupe, matching is not purely start/end
  • It still requires locations to be “close enough” (via close_enough_loc())

This leads to a useful behaviour:

  • Minor location noise (formatting, duplication, etc.) → same topic updated
  • Real location changes (e.g. C05 → C04) → new topic created

Practical effect

This means:

  • Room changes surface in Latest (new topic → visible to users)
  • Feed noise stays invisible (quiet updates or no-op)

So the system ends up acting as a signal vs noise filter:

  • Times define identity
  • Location changes are treated as meaningful
  • Description churn is ignored