Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
292 commits
Select commit Hold shift + click to select a range
bb9fc60
Add MCP capture acceptance
gowtham0992 May 6, 2026
4f30653
Add raw capture redaction
gowtham0992 May 6, 2026
208dcc2
Add MCP capture redaction
gowtham0992 May 6, 2026
0bcf1fc
Add confirmed capture deletion
gowtham0992 May 6, 2026
cb08a21
Add MCP capture deletion
gowtham0992 May 6, 2026
da3d013
Show raw captures in memory dashboard
gowtham0992 May 6, 2026
510a62b
Filter web memory surfaces by project
gowtham0992 May 6, 2026
212db8c
Add CLI capture inbox
gowtham0992 May 6, 2026
6d7baf2
Add MCP capture inbox
gowtham0992 May 6, 2026
558c635
Filter memory inbox by project
gowtham0992 May 6, 2026
e887977
Surface captures in memory briefs
gowtham0992 May 6, 2026
ac44757
Add confirmed memory forgetting
gowtham0992 May 6, 2026
c7f797f
Report memory backlog in doctor
gowtham0992 May 6, 2026
6e145e5
Surface forget as secondary memory action
gowtham0992 May 6, 2026
33cc428
Show memory actions in web views
gowtham0992 May 6, 2026
1e29094
Add memory audit report
gowtham0992 May 6, 2026
f6ada3b
Add web memory audit view
gowtham0992 May 6, 2026
f5f5043
Highlight memory audit onboarding
gowtham0992 May 6, 2026
1731b63
Add web memory review actions
gowtham0992 May 6, 2026
9e8027c
Add web raw capture inbox
gowtham0992 May 6, 2026
da2c326
Add web memory brief
gowtham0992 May 6, 2026
eee7211
Add recall trust metadata
gowtham0992 May 6, 2026
e133374
Guard HTTP memory mutations
gowtham0992 May 6, 2026
3c612ff
Update unreleased memory notes
gowtham0992 May 6, 2026
873ff77
Add smart Link query packets
gowtham0992 May 6, 2026
8311978
Deduplicate web wiki cache plumbing
gowtham0992 May 6, 2026
1031262
Centralize Link log helpers
gowtham0992 May 6, 2026
d3de993
Smoke test smart query MCP tool
gowtham0992 May 6, 2026
936c5e6
Add wiki ingest validation gate
gowtham0992 May 6, 2026
ed2c5c2
Expose validation gate to agents
gowtham0992 May 6, 2026
36d6786
Add smart query budget followups
gowtham0992 May 6, 2026
7c61ccc
Harden raw static path resolution
gowtham0992 May 6, 2026
45ef04f
Share raw capture path helpers
gowtham0992 May 6, 2026
1102b41
Guard agent instruction contract
gowtham0992 May 6, 2026
9305fe6
Limit CI to pull requests
gowtham0992 May 6, 2026
1c284f1
Validate demo wiki in CI
gowtham0992 May 6, 2026
ef0f0ea
Update MCP package tool docs
gowtham0992 May 6, 2026
0262ceb
Add Link readiness status tool
gowtham0992 May 6, 2026
7c926f0
Add CLI readiness status
gowtham0992 May 6, 2026
37ccf90
Show readiness status after install
gowtham0992 May 6, 2026
a1928a3
Advertise Link status in agent contract
gowtham0992 May 6, 2026
ae3abb3
Update Python compatibility coverage
gowtham0992 May 6, 2026
00f4940
Simplify Link command onboarding
gowtham0992 May 6, 2026
5621712
Clarify Link memory model in UI
gowtham0992 May 6, 2026
65916c5
Polish Link header layout
gowtham0992 May 6, 2026
fa15641
Add first-use Link commands
gowtham0992 May 6, 2026
e8006d2
Guide Link ingest next steps
gowtham0992 May 6, 2026
a9b4194
Add read-only memory proposal UI
gowtham0992 May 6, 2026
5284c51
Improve graph controls for large wikis
gowtham0992 May 6, 2026
4e9e6aa
Share raw capture inbox core
gowtham0992 May 6, 2026
684f5c5
Guard runtime duplication in CI
gowtham0992 May 6, 2026
470f270
Add Link wiki schema migrations
gowtham0992 May 6, 2026
d76e0e0
Add first-run agent prompts to installers
gowtham0992 May 6, 2026
7044759
Add raw-source picker to memory proposals
gowtham0992 May 6, 2026
b652536
Add guided ingest status page
gowtham0992 May 6, 2026
29fc0e0
Add large-wiki smart query smoke test
gowtham0992 May 6, 2026
36ca362
Expose ingest status through MCP
gowtham0992 May 6, 2026
7d29ef4
Add safe actions to memory proposals
gowtham0992 May 6, 2026
6a48149
Add public tool contract guard
gowtham0992 May 6, 2026
dff4daa
Tighten memory mutation adapters
gowtham0992 May 6, 2026
03253af
Share memory audit risk reporting
gowtham0992 May 6, 2026
602837e
Share memory brief capture guidance
gowtham0992 May 6, 2026
ef2bfdc
Add first-use smoke gate
gowtham0992 May 6, 2026
97010a0
Add generated wiki index rebuild
gowtham0992 May 6, 2026
09214ee
Repair index drift in doctor fix
gowtham0992 May 6, 2026
d823bc5
Add local backup workflow
gowtham0992 May 6, 2026
c2275c9
Add guided ingest plan
gowtham0992 May 6, 2026
d0a6c10
Cap graph motion for large wikis
gowtham0992 May 6, 2026
1b0303b
Connect ingest sources to memory proposals
gowtham0992 May 6, 2026
c8f188d
Share installer first-run prompts
gowtham0992 May 6, 2026
943da89
Reduce graph rendering work at scale
gowtham0992 May 7, 2026
825cbfa
Clarify guided ingest workflow
gowtham0992 May 7, 2026
cf08e0a
Polish memory proposal approval flow
gowtham0992 May 7, 2026
bd138fa
Add large wiki release smoke
gowtham0992 May 7, 2026
1f53fef
Use token index for multi-word search
gowtham0992 May 7, 2026
84e08cc
Show first-run prompts on home page
gowtham0992 May 7, 2026
9267591
Share capture naming core
gowtham0992 May 7, 2026
fa66972
Show demo proof of value
gowtham0992 May 7, 2026
0517e4c
Polish README onboarding flow
gowtham0992 May 7, 2026
f86ae1b
Clarify ingest next step
gowtham0992 May 7, 2026
5ae9a36
Clarify memory proposal approval
gowtham0992 May 7, 2026
0a23b8e
Add graph neighborhood focus
gowtham0992 May 7, 2026
61cff80
Share text input cleanup
gowtham0992 May 7, 2026
e2e07d9
Validate demo proof path
gowtham0992 May 7, 2026
e6d8951
Clarify MCP package onboarding
gowtham0992 May 7, 2026
55bc180
Block tracked build artifacts
gowtham0992 May 7, 2026
488f5a7
Clarify integration onboarding
gowtham0992 May 7, 2026
80080f8
Summarize unreleased release highlights
gowtham0992 May 7, 2026
3db108c
Report runtime duplication audit details
gowtham0992 May 7, 2026
7564f04
Harden release publish commands
gowtham0992 May 7, 2026
8d0e3f1
Share default project resolution
gowtham0992 May 7, 2026
72853a4
Align README validation gate with CI
gowtham0992 May 7, 2026
4dc251c
Enforce large wiki smoke timings
gowtham0992 May 7, 2026
99217c0
Document large wiki timing guard
gowtham0992 May 7, 2026
06d912d
Require local action header for rebuild APIs
gowtham0992 May 7, 2026
ed8f1fc
Report smart query packet size
gowtham0992 May 7, 2026
3a160dd
Return bad request for missing context topic
gowtham0992 May 7, 2026
932622a
Move context API note to unreleased
gowtham0992 May 7, 2026
9024658
Avoid repeated large query followups
gowtham0992 May 7, 2026
e78d1c0
Add provenance to smart query packets
gowtham0992 May 7, 2026
dabdb2b
Precompute wiki search word indexes
gowtham0992 May 7, 2026
bfc3b50
Add local Link benchmark command
gowtham0992 May 7, 2026
c5568f6
Harden local server startup flags
gowtham0992 May 7, 2026
1309ede
Add guarded web memory approvals
gowtham0992 May 7, 2026
1613dd7
Expose local HTTP API version
gowtham0992 May 7, 2026
3815d03
Add optional SQLite FTS search acceleration
gowtham0992 May 7, 2026
54b1fb7
Extract shared search engine core
gowtham0992 May 7, 2026
192e1be
Report search backend in status
gowtham0992 May 7, 2026
809fa0f
Add benchmark readiness verdict
gowtham0992 May 7, 2026
ee52ba9
Surface post-ingest checks
gowtham0992 May 7, 2026
50170b7
Share benchmark health checks
gowtham0992 May 7, 2026
ef6187a
Close short-lived search caches
gowtham0992 May 7, 2026
7ba37c1
Add proposal review gate
gowtham0992 May 7, 2026
0f3f33b
Add starter prompts command
gowtham0992 May 7, 2026
82f5c33
Cover starter prompts in first-use smoke
gowtham0992 May 7, 2026
51d2971
Expose starter prompts in web UI
gowtham0992 May 7, 2026
6cc935d
Add MCP starter prompts tool
gowtham0992 May 7, 2026
8273f6a
Cover starter prompts in MCP smoke
gowtham0992 May 7, 2026
730a903
Add starter prompts to agent contract
gowtham0992 May 7, 2026
3b2fd5e
Share home starter prompts
gowtham0992 May 7, 2026
a1fcdad
Test starter prompt core
gowtham0992 May 7, 2026
257ddf6
Cover normalized starter prompt adapters
gowtham0992 May 7, 2026
a0938dd
Block secret-looking raw ingest
gowtham0992 May 7, 2026
246169a
Stream raw secret scans
gowtham0992 May 7, 2026
4270ac2
Document blocked raw secret ingest
gowtham0992 May 7, 2026
e155bae
Add ingest safety summary
gowtham0992 May 7, 2026
09e2bb0
Add ingest copy buttons
gowtham0992 May 7, 2026
d9be646
Clarify proposal source actions
gowtham0992 May 7, 2026
ba67184
Clarify benchmark readiness
gowtham0992 May 7, 2026
f56a1db
Document Link trust gates
gowtham0992 May 7, 2026
0b0a948
Fix blocked ingest next step
gowtham0992 May 7, 2026
cf6ec90
Tame labels on large graphs
gowtham0992 May 7, 2026
277e335
Speed up large graph rendering
gowtham0992 May 7, 2026
ed3daa8
Add browser raw source flow
gowtham0992 May 7, 2026
bc886eb
Show represented source completion in ingest
gowtham0992 May 7, 2026
b2b9f5e
Extract web markdown renderer
gowtham0992 May 7, 2026
a3ce746
Show ingest completion in CLI
gowtham0992 May 7, 2026
20fd63c
Throttle web cache freshness checks
gowtham0992 May 7, 2026
0915ed6
Extract web UI assets from server
gowtham0992 May 7, 2026
890ca28
Extract memory web renderers
gowtham0992 May 7, 2026
f93f6e4
Extract web layout shell
gowtham0992 May 7, 2026
244e0a4
Cap huge graph overview rendering
gowtham0992 May 7, 2026
b0c9d31
Add bounded graph summaries
gowtham0992 May 7, 2026
d12f22f
Cache graph edges during wiki indexing
gowtham0992 May 7, 2026
c426d78
Use cached graph links in local server
gowtham0992 May 7, 2026
9bd6386
Bound page metadata lists for agents
gowtham0992 May 7, 2026
61d193c
Reject unexpected local server hosts
gowtham0992 May 7, 2026
8c1a6c2
Extract local HTTP guard helpers
gowtham0992 May 7, 2026
323ef83
Bound backlink lists for agents
gowtham0992 May 7, 2026
3d31f4a
Benchmark bounded agent payloads
gowtham0992 May 7, 2026
88bd285
Extract static file guards from local server
gowtham0992 May 7, 2026
3cd79d7
Load large graphs as bounded overviews
gowtham0992 May 7, 2026
97fb835
Harden local mutation origins
gowtham0992 May 7, 2026
2b9eaf5
Extract web graph helpers
gowtham0992 May 7, 2026
934dfe1
Rate limit local mutations
gowtham0992 May 7, 2026
105af6f
Return retry headers for local rate limits
gowtham0992 May 7, 2026
e1e4fe2
Reject browser preflight explicitly
gowtham0992 May 7, 2026
a9fd4e6
Benchmark graph initial payloads
gowtham0992 May 7, 2026
b047429
Add local viewer CSP headers
gowtham0992 May 7, 2026
77a39d1
Return JSON for unsupported methods
gowtham0992 May 7, 2026
c39e281
Reject trace and connect as JSON
gowtham0992 May 7, 2026
2bd43b4
Gate demo graph and benchmark proof
gowtham0992 May 7, 2026
4736fea
Tighten local viewer security headers
gowtham0992 May 7, 2026
4d13e73
Extract local security header policy
gowtham0992 May 7, 2026
2703a35
Guard local-first release hygiene
gowtham0992 May 7, 2026
d14ac82
Make benchmark guidance actionable
gowtham0992 May 7, 2026
35b8d6e
Avoid caching local source media
gowtham0992 May 7, 2026
dc1dbd5
Polish local server startup errors
gowtham0992 May 7, 2026
d7a76c5
Report shared Link runtime version
gowtham0992 May 7, 2026
ddc5303
Avoid caching local viewer pages
gowtham0992 May 7, 2026
137a40e
Validate link serve ports early
gowtham0992 May 7, 2026
6cd12fc
Bound agent-facing CLI query inputs
gowtham0992 May 7, 2026
afdfa9b
Harden local HEAD responses
gowtham0992 May 7, 2026
5a031a3
Clarify MCP package privacy and scale
gowtham0992 May 7, 2026
ca62522
Centralize local no-store headers
gowtham0992 May 7, 2026
32a03b5
Expand public agent contract guard
gowtham0992 May 7, 2026
357a46a
Share HTTP limit parsing
gowtham0992 May 7, 2026
32b0b0d
Guard MCP package metadata version
gowtham0992 May 7, 2026
629aca6
Expand local-first network hygiene
gowtham0992 May 7, 2026
6a8f61b
Align MCP status version source
gowtham0992 May 7, 2026
7b17c55
Require MCP version parity in verifier
gowtham0992 May 7, 2026
dbaeb29
Quote MCP verifier repair commands
gowtham0992 May 7, 2026
498c14b
Cover doctor schema repair
gowtham0992 May 7, 2026
119da8d
Bound local HTTP query text
gowtham0992 May 7, 2026
6bcb0a8
Bound local proposal metadata
gowtham0992 May 7, 2026
45edbfe
Bound proposal page seed values
gowtham0992 May 7, 2026
815dac8
Harden smart query budget normalization
gowtham0992 May 7, 2026
c1b14c7
Harden direct proposal source loading
gowtham0992 May 7, 2026
5438618
Verify MCP SDK dependency
gowtham0992 May 7, 2026
42aff81
Clarify MCP verifier guidance
gowtham0992 May 7, 2026
b5418bd
Block direct socket clients in release hygiene
gowtham0992 May 7, 2026
e006ec1
Surface empty wiki readiness guidance
gowtham0992 May 7, 2026
80ad4d5
Document content-aware status counts
gowtham0992 May 7, 2026
4522992
Lock status content counts in contracts
gowtham0992 May 7, 2026
bfb5ac0
Add structured MCP verifier guidance
gowtham0992 May 7, 2026
d8e1d8b
Cover empty wiki status guidance
gowtham0992 May 7, 2026
cf3128a
Surface status degradation warnings
gowtham0992 May 7, 2026
dfcac12
Document structured readiness diagnostics
gowtham0992 May 7, 2026
3eee836
Block unreadable raw source ingest
gowtham0992 May 7, 2026
6ec24d5
Block ingest on unreadable source pages
gowtham0992 May 7, 2026
1643439
Surface proposal source access errors
gowtham0992 May 7, 2026
23b8f35
Keep web memory approvals conflict-safe
gowtham0992 May 7, 2026
c1bdf75
Preserve project in duplicate proposal commands
gowtham0992 May 7, 2026
434b200
Expose project on accepted captures
gowtham0992 May 7, 2026
0953374
Report unreadable capture files
gowtham0992 May 7, 2026
ed567cd
Surface capture read warnings in audits
gowtham0992 May 7, 2026
c9a51b9
Fail doctor on unreadable secret scans
gowtham0992 May 7, 2026
607a854
Clean up failed backup archives
gowtham0992 May 7, 2026
a78778d
Warn on unreadable backup archives
gowtham0992 May 7, 2026
57b9573
Report unreadable pages in validation
gowtham0992 May 7, 2026
8fe64fa
Handle backlink rebuild read errors
gowtham0992 May 7, 2026
3215c4e
Handle index rebuild read errors
gowtham0992 May 7, 2026
0135ba9
Let status report cache failures
gowtham0992 May 7, 2026
71e5f14
Degrade cache on unreadable pages
gowtham0992 May 7, 2026
182c29e
Use atomic writes for Link state
gowtham0992 May 7, 2026
eacbdc5
Optimize ingest status source matching
gowtham0992 May 7, 2026
3f43174
Avoid redundant memory resolver reads
gowtham0992 May 7, 2026
40fd9e3
Reuse cached links for context retrieval
gowtham0992 May 7, 2026
4578b56
Validate wiki backlinks in one pass
gowtham0992 May 7, 2026
57bb3b1
Add root lint policy
gowtham0992 May 7, 2026
874c9e0
Add HTTP viewer smoke test
gowtham0992 May 7, 2026
c4e8d49
Move demo content into core module
gowtham0992 May 7, 2026
ce61e6f
Add persistent wiki page cache
gowtham0992 May 7, 2026
1c32ed8
Add GitHub Pages product site
gowtham0992 May 7, 2026
13f8465
Redesign product site as nostalgic wiki
gowtham0992 May 7, 2026
b3972d2
Remove animated hero background from product site
gowtham0992 May 7, 2026
daf30de
Restructure README and docs site
gowtham0992 May 7, 2026
34d45b4
Fix docs screenshot containment
gowtham0992 May 8, 2026
099bd13
Add GitHub contributing guide
gowtham0992 May 8, 2026
8f2e237
Ignore generated wiki schema marker
gowtham0992 May 8, 2026
a3f436e
Clarify demo proof wiki
gowtham0992 May 8, 2026
d4bdc14
Harden local writes and context reads
gowtham0992 May 8, 2026
e458a39
Handle serve interrupt cleanly
gowtham0992 May 8, 2026
04ad008
Serve targets with current viewer
gowtham0992 May 8, 2026
71dd50f
Prefer numeric loopback URLs
gowtham0992 May 8, 2026
f69b244
Detect stale raw source ingest
gowtham0992 May 8, 2026
d84b3f1
Align doctor with validation gate
gowtham0992 May 8, 2026
24ac302
Clarify stale raw doctor warnings
gowtham0992 May 8, 2026
63b0e17
Refresh README product tour
gowtham0992 May 8, 2026
6f3a3c6
Cache-bust README product tour GIF
gowtham0992 May 8, 2026
c3f24bb
Add tasteful GitHub star prompts
gowtham0992 May 8, 2026
aa4ef70
Scale graph and page list for large wikis
gowtham0992 May 8, 2026
2fb2924
Keep large graph overview stable after data load
gowtham0992 May 8, 2026
d170eb2
Polish product docs and walkthrough media
gowtham0992 May 8, 2026
e895741
Improve MCP walkthrough media
gowtham0992 May 8, 2026
b7c8838
Rename MCP walkthrough asset
gowtham0992 May 8, 2026
ddd6291
Clean up MCP walkthrough caption
gowtham0992 May 8, 2026
09cb403
Add release positioning and safety polish
gowtham0992 May 8, 2026
dadd3ca
Prepare 1.1.0 release
gowtham0992 May 8, 2026
23eba68
Install MCP package in CI test job
gowtham0992 May 9, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
49 changes: 45 additions & 4 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,20 +2,33 @@ name: CI

on:
pull_request:
push:
branches: [main]
workflow_dispatch:

permissions:
contents: read

jobs:
lint:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4

- uses: actions/setup-python@v5
with:
python-version: "3.12"

- name: Install ruff
run: python -m pip install "ruff>=0.8,<1"

- name: Run ruff
run: python -m ruff check .

test:
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
python-version: ["3.10", "3.11", "3.12"]
python-version: ["3.10", "3.12", "3.14"]
steps:
- uses: actions/checkout@v4

Expand All @@ -24,19 +37,32 @@ jobs:
python-version: ${{ matrix.python-version }}

- name: Compile Python
run: python -m py_compile serve.py link.py scripts/check_release_hygiene.py scripts/prepare_release.py mcp_package/link_mcp/server.py mcp_package/link_mcp/__main__.py mcp_package/link_mcp/__init__.py
run: python -m py_compile serve.py link.py scripts/check_release_hygiene.py scripts/check_runtime_duplication.py scripts/check_tool_contract.py scripts/prepare_release.py scripts/smoke_first_use.py scripts/smoke_http_viewer.py scripts/smoke_large_wiki.py scripts/smoke_mcp_stdio.py mcp_package/link_core/*.py mcp_package/link_mcp/server.py mcp_package/link_mcp/__main__.py mcp_package/link_mcp/__init__.py

- name: Install MCP package for verification
run: python -m pip install ./mcp_package

- name: Run tests
run: python -m unittest discover -s tests

- name: Large wiki smoke test
if: matrix.python-version == '3.12'
run: python scripts/smoke_large_wiki.py --pages 1000

- name: Demo health smoke test
run: |
python scripts/smoke_first_use.py
python link.py demo /tmp/link-demo-ci --force
python /tmp/link-demo-ci/link.py doctor /tmp/link-demo-ci
python /tmp/link-demo-ci/link.py rebuild-backlinks /tmp/link-demo-ci
python /tmp/link-demo-ci/link.py validate /tmp/link-demo-ci
python /tmp/link-demo-ci/link.py doctor /tmp/link-demo-ci
PYTHONPATH=mcp_package python link.py verify-mcp /tmp/link-demo-ci --python python

- name: HTTP viewer smoke test
if: matrix.python-version == '3.12'
run: python scripts/smoke_http_viewer.py

installer-syntax:
runs-on: ubuntu-latest
steps:
Expand All @@ -57,6 +83,12 @@ jobs:
- name: Check tracked files for secret-looking data
run: python scripts/check_release_hygiene.py

- name: Check runtime duplication
run: python scripts/check_runtime_duplication.py

- name: Check tool contract
run: python scripts/check_tool_contract.py

package:
runs-on: ubuntu-latest
steps:
Expand All @@ -76,3 +108,12 @@ jobs:
- name: Check package metadata
working-directory: mcp_package
run: python -m twine check dist/*

- name: Install built wheel
working-directory: mcp_package
run: python -m pip install dist/*.whl

- name: MCP stdio smoke test
run: |
python link.py demo /tmp/link-mcp-smoke --force
python scripts/smoke_mcp_stdio.py /tmp/link-mcp-smoke/wiki
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@ wiki/explorations/*

# Keep index and log templates but ignore personal content
# (we ship empty versions in the repo)
wiki/_link_schema.json

# OS junk
.DS_Store
Expand All @@ -39,6 +40,8 @@ autoresearch/

# Local demo output
link-demo/
.link-backups/
.link-cache/

# Integration artifacts (generated by install scripts)
CLAUDE.md
Expand Down
236 changes: 236 additions & 0 deletions CHANGELOG.md

Large diffs are not rendered by default.

41 changes: 41 additions & 0 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
# Contributing To Link

Thanks for helping improve Link. The goal is simple: make local agent memory
easier to trust, inspect, and use.

Please open pull requests against `main` unless the maintainer asks for a
different target. The `develop` branch is a maintainer integration branch for
staging release work before it is proposed to `main`.

## Before Opening A PR

Run the local gate:

```bash
python3 -m pip install "ruff>=0.8,<1"
python3 -m ruff check .
python3 -m unittest discover -s tests
python3 scripts/check_release_hygiene.py
python3 scripts/check_runtime_duplication.py
python3 scripts/check_tool_contract.py
git diff --check
```

For UI changes, include a screenshot or GIF. For installer, MCP, memory-write,
HTTP API, or automation changes, call that out explicitly in the PR description.

## PR Description

Include:

- What changed.
- How you tested it.
- Whether it touches memory writes, installers, MCP behavior, HTTP endpoints, or
automation.
- Screenshots or GIFs for UI changes.

Do not include personal wiki data, raw sources, registry tokens, `.env` files, or
local MCP credentials in a PR.

Full contributor guide:
https://gowtham0992.github.io/link/contributing.html
Loading
Loading