odysseus/services/memory
Husam f23221420f
fix(skills): replace deprecated utcnow in skill timestamp helper (#5777)
* fix(skills): replace deprecated utcnow in skill timestamp helper

_now_iso() builds the 'created' value in skill frontmatter. datetime.utcnow()
returns a naive datetime and has been deprecated since Python 3.12, scheduled
for removal. Switch to the timezone-aware datetime.now(timezone.utc), keeping
the serialized YYYY-MM-DDTHH:MM:SSZ shape unchanged so existing skill files
keep parsing.

timezone.utc is used rather than the datetime.UTC alias, which is 3.11+ only.

Adds regression tests covering the deprecation, the serialized shape, and
UTC correctness under a non-UTC local timezone -- the last guards against a
bare datetime.now(), which yields the same shape but local wall time.

Fixes #5697

* test(skills): skip timezone mutation where unsupported

---------

Co-authored-by: Alexandre Teixeira <alexandremagteixeira@gmail.com>
2026-07-30 09:54:59 +01:00
..
__init__.py Odysseus v1.0 2026-05-31 23:58:26 +09:00
memory.py refactor(memory): canonicalize memory imports (#50) 2026-06-04 05:31:15 +01:00
memory_extractor.py fix(memory): make auto-memory extraction reliable for reasoning models (#3190) 2026-06-08 19:57:44 +02:00
memory_vector.py refactor(memory): canonicalize memory imports (#50) 2026-06-04 05:31:15 +01:00
service.py refactor(constants): single source of truth for data dir (#3368) 2026-06-08 09:58:52 +02:00
skill_extractor.py fix(memory): reject ambiguous multi-object outputs during skill extraction (#3985) 2026-06-15 10:44:43 +00:00
skill_format.py fix(skills): replace deprecated utcnow in skill timestamp helper (#5777) 2026-07-30 09:54:59 +01:00
skill_importer.py fix(skills): block private SSRF targets and revalidate redirects in importer (#5261) 2026-07-14 08:33:10 -06:00
skills.py fix(agent): skill-prescribed tools never reach the model's schema list (#4008) 2026-06-15 20:32:43 +09:00