Skip to content

Add ingest skill, CRDT-based dedup, and daemon sync mode#1

Merged
TrebuhGnaw merged 6 commits into
SophonMe:mainfrom
AIContextMe:my-experiment
Apr 14, 2026
Merged

Add ingest skill, CRDT-based dedup, and daemon sync mode#1
TrebuhGnaw merged 6 commits into
SophonMe:mainfrom
AIContextMe:my-experiment

Conversation

@AIContextMe

Copy link
Copy Markdown
Contributor

Summary

  • Ingest skill: New aicontext-ingest skill that explores user data exports (Google Takeout, Amazon, ChatGPT, Claude, Chrome history), identifies ingestible sources, and generates DataSource classes to parse them into AIContext's unified activity database
  • CRDT-based dedup: Replace merge_reference with should_replace_reference using CRDT logic for more robust conflict resolution
  • Daemon sync mode: Enhanced CLI with daemon mode for periodic sync of dynamic data sources
  • Data source guides: Added documentation for 9 data source types (Amazon browsing/cart/media/orders/search, ChatGPT, Claude web, Chrome history, Google Takeout activity)
  • Bug fix: Make ingest skill optional and guard against empty ingestion table

Test plan

  • Verify aicontext ingest command works with a sample data export
  • Confirm CRDT-based should_replace_reference correctly handles merge conflicts
  • Test daemon sync mode starts and runs on schedule
  • Validate each data source guide matches the expected export format

🤖 Generated with Claude Code

AIContextMe and others added 6 commits April 13, 2026 00:59
…a sources

- Add ingest skill installation during `aicontext install`
- Support static/dynamic source modes; daemon skips static sources
- Load agent-generated data sources from ~/.aicontext/data_sources/
- Preserve agent-added sources in config during save
- Improve sync CLI with --daemon flag and better path/source validation

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
…rence

Move reference file conflict resolution from a naive "new replaces old"
method on DataSource to a CRDT function in dedup.py (larger file wins,
hash tiebreak). Remove _meta.json — read existing files directly from disk.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Update google_takeout_activity.md with comprehensive action prefix list,
  document \xa0 non-breaking space issue, and replace defensive fallback
  guidance with explicit skip-if-unknown policy
- Update SKILL.md to encourage parallel exploration/implementation and
  add no-defensive-fallbacks rule

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Reject dynamic data source requests and guide users to implement
DataSource classes in aicontext/sources/ instead.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
The ingest skill (ingest_skill.py / aicontext-ingest/) may not be
bundled. Guard its import in cmd_install so the install flow doesn't
crash when it's absent. Also fix a latent ValueError in
_print_ingestion_table when called with an empty results list.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Correct misleading data filenames in Amazon source guides to match actual
export names, add source_key field to all guides for unambiguous output
file naming, and update ChatGPT guide directory name.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@TrebuhGnaw TrebuhGnaw merged commit d33c556 into SophonMe:main Apr 14, 2026
8 checks passed
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.

2 participants