Skip to content

fix(eod): non-git + cross-OS gather; MIT relicense#18

Merged
Luispitik merged 2 commits into
mainfrom
fix/eod-nongit-crossos
Jun 1, 2026
Merged

fix(eod): non-git + cross-OS gather; MIT relicense#18
Luispitik merged 2 commits into
mainfrom
fix/eod-nongit-crossos

Conversation

@Luispitik

Copy link
Copy Markdown
Owner

/eod bug fixes (reported by @NestorPVsf)

Bug 1 — non-git projects vanished from /eod. observe_v3.py writes observations for a non-git cwd to the root homunculus/observations.jsonl with project_id: "global" (the project_name stays correct), but _eod-gather.sh only walked homunculus/projects/<hash>/ and never read the root. A full day of activity in any non-git folder surfaced as 0. The gather now reads the root too, grouping observations by project_name.

Bug 2 — gather not cross-OS. For a macOS + Windows shared observations.jsonl (e.g. Nextcloud), the file mixes C:\... and /Users/... paths. Node's path.basename is platform-specific (POSIX build ignores \), so "files touched" came out mangled on the foreign OS, and git could run against the other machine's path. Added baseName() (splits on both / and \), skip roots that don't exist locally before any git call, resolve HOME || USERPROFILE, and merge projects by project_name across machines.

Preserves the existing canonical _projects.json loader; adds SINAPSIS_HOMUNCULUS / SINAPSIS_SKILLS test overrides.

Tests

  • New tests/test-eod-gather.sh — 8 hermetic tests (root detection, name grouping, cross-OS basename, subdir+root merge, today-only filter, empty-dir, canonical loader, output shape).
  • No regressions: test-security 11/11, test-gstack-separation 18/18.

Also: relicense to MIT

Separate commit (chore: relicense under MIT) replaces the custom "Source Available" license with the standard MIT License; README badge + License section updated.

Verified live: /eod went from 0 → 7 projects / 316 observations on a real machine with non-git folders.

🤖 Generated with Claude Code

Luispitik and others added 2 commits June 1, 2026 21:27
observe_v3.py writes observations for a non-git cwd to the root
homunculus/observations.jsonl with project_id "global" (project_name stays
correct), but _eod-gather.sh only walked homunculus/projects/<hash>/ and never
read the root file. Writer and reader disagreed on where non-git projects live,
so a full day of work in any non-git folder surfaced as 0 in /eod.

- Read the root observations.jsonl too, grouping by project_name.
- baseName() splits on both / and \ (Node path.basename is platform-specific),
  fixing mangled "files touched" when a macOS+Windows shared file mixes paths.
- Skip roots that don't exist on the current machine before any git call;
  resolve HOME || USERPROFILE.
- Merge projects by name so the same project across two machines is one entry.
- Add SINAPSIS_HOMUNCULUS/SINAPSIS_SKILLS test overrides and
  tests/test-eod-gather.sh (8 hermetic tests).

Reported by @NestorPVsf.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Replace the custom "Source Available" license (commercial rights reserved to
Luis Salgado / SalgadoIA) with the standard MIT License. Update the README
license badge and License section to match.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@Luispitik Luispitik merged commit 552909d into main Jun 1, 2026
@Luispitik Luispitik deleted the fix/eod-nongit-crossos branch June 1, 2026 19:41
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant