Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
50 commits
Select commit Hold shift + click to select a range
8860c27
todo
heitorrosa Aug 18, 2026
3f5c8da
fix: serialize with orjson inside sync_cache, per-thread event loop
heitorrosa Aug 18, 2026
8e44239
slop test
heitorrosa Aug 19, 2026
31cddb4
slop cache
heitorrosa Aug 19, 2026
9ecefc4
todo
heitorrosa Aug 25, 2026
f6dfe7c
add gitattributes to enforce consistent line endings
heitorrosa Sep 3, 2026
231e622
add shared scheduler singleton with jitter constants
heitorrosa Sep 3, 2026
f621e4a
register services with shared scheduler and route stocks sessions
heitorrosa Sep 3, 2026
6b20a19
harden authentication cookies sessions and forgevm sandbox
heitorrosa Sep 3, 2026
f86f52c
fetch prometheus field metadata via stocks fields endpoint
heitorrosa Sep 3, 2026
5f15953
presort stocks cache and batch memory embeddings
heitorrosa Sep 3, 2026
8831f9e
fix emptied models barrel with direct module imports
heitorrosa Sep 3, 2026
fed1c1d
update tests for fixes and identifier style
heitorrosa Sep 3, 2026
d7aec80
graphify
heitorrosa Sep 3, 2026
3f1ef43
remove wildcard proxy trust from service manager
heitorrosa Sep 3, 2026
8dc4ebd
use timezone-aware jwt expiry
heitorrosa Sep 3, 2026
6447c8f
replace jitter constants with literal values
heitorrosa Sep 3, 2026
14eaabc
narrow writer type for mypy
heitorrosa Sep 3, 2026
48754ed
.
heitorrosa Sep 3, 2026
e299aef
remove jitter from scheduled jobs
heitorrosa Sep 3, 2026
8821d5b
graphify
heitorrosa Sep 3, 2026
f2fa5da
fix scheduler mock patch target in cache test
heitorrosa Sep 3, 2026
c5812b6
add memory vector bench script
heitorrosa Sep 12, 2026
150b6ea
normalize embeddings on encode
heitorrosa Sep 12, 2026
80f7d2f
defer embedding blob on candidate prefilter
heitorrosa Sep 12, 2026
e0b8eca
add embedding renormalization backfill script
heitorrosa Sep 12, 2026
b4d3120
fuse vector, fulltext and recency scores
heitorrosa Sep 12, 2026
8239499
hoist bench imports out of timed region
heitorrosa Sep 12, 2026
00e57ca
harden embedding decoder input types
heitorrosa Sep 12, 2026
bf3ce29
add vector string codec
heitorrosa Sep 12, 2026
4465689
cache user embedding matrix
heitorrosa Sep 12, 2026
f322e4e
document vector scale-up runbook
heitorrosa Sep 12, 2026
e74354c
wire embedding matrix cache into memory search
heitorrosa Sep 12, 2026
906ff8b
return zero vector on degenerate minmax scale
heitorrosa Sep 12, 2026
d4fe1c2
key fulltext rank by memory id
heitorrosa Sep 12, 2026
039a384
invalidate matrix cache after embedding backfill
heitorrosa Sep 12, 2026
91f18b6
validate vector string brackets with slice
heitorrosa Sep 12, 2026
b397b54
use pytest raises in codec rejection test
heitorrosa Sep 12, 2026
e5aea8a
count embedding blob fetches in defer test
heitorrosa Sep 12, 2026
10ee012
remove vector lane one-shot artifacts
heitorrosa Sep 12, 2026
3bc773e
migrate matrix cache to cashews
heitorrosa Sep 12, 2026
bb4c118
port matrix cache into memory via cashews tags
heitorrosa Sep 12, 2026
abecd56
replace cashews import fallback with raw sentinel
heitorrosa Sep 12, 2026
4a1ef15
remove vector scaleup runbook
heitorrosa Sep 12, 2026
da70584
graphify
heitorrosa Sep 12, 2026
43fd9a0
fix mypy types in memory search
heitorrosa Sep 12, 2026
ee07e06
fix mypy column int cast in prometheus memory maintenance
heitorrosa Sep 12, 2026
f04a628
restore fallback fields in prometheus compact
heitorrosa Sep 12, 2026
0f03079
defer fastmcp client import to fix test collection
heitorrosa Sep 12, 2026
e1c5d4d
fix
heitorrosa Sep 12, 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
1 change: 1 addition & 0 deletions .gitattributes
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
* text=auto
1 change: 1 addition & 0 deletions .vscode/settings.json
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
{}
1 change: 1 addition & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -67,6 +67,7 @@ PROMETHEUS_PORT=3200
GEMINI_API.KEY=key
SEARXNG_URL=http://searxng:8888
FORGEVM_URL=http://forgevm:7423
FORGEVM_API_TOKEN=key
SANDBOX_IMAGE=sandbox-python:latest
SANDBOX_MEMORY=512
SANDBOX_CPU=1
Expand Down
4 changes: 2 additions & 2 deletions TODO.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,3 @@
- [ ] OpenUI and shadcn/ui

- [ ] Github OAuth
- [ ] Implement an user management system so the user can customize its name, change password, profile picture and settings
- [ ] Make an Password Recovery system and 2FA using the Email Protocol
Expand All @@ -12,6 +10,8 @@
- [ ] drop {service_name}_PORT and {serivce_name}_HOST and replace it with nginx managed services
- [ ] p99 latency and context switches monitor at /status
- [ ] feather cache for synced cache and with redis for a flock replacement
- [ ] prevent scraping by using a cookie token linked session, if theres more than one tab active with a cookie token, one page will be blocked, forcing hte user to use a single tab, similar to how whatsapp web works
- [ ] api routing via random uuids for page requests that might use the stocks api data, making the requests not reproducable and making hte work of scraping way harder

#

Expand Down
10 changes: 10 additions & 0 deletions config.py
Original file line number Diff line number Diff line change
Expand Up @@ -65,6 +65,7 @@ class PrometheusSettings(BaseSettings):
GEMINI_API_KEY: str = Field(default="", validation_alias=AliasChoices("GEMINI_API.KEY"))
SEARXNG_URL: str = Field(default="http://searxng:8888", validation_alias=AliasChoices("SEARXNG_URL"))
FORGEVM_URL: str = Field(default="http://forgevm:7423", validation_alias=AliasChoices("FORGEVM_URL"))
FORGEVM_API_TOKEN: str = Field(default="", validation_alias=AliasChoices("FORGEVM_API_TOKEN"))
SANDBOX_IMAGE: str = Field(default="sandbox-python:latest", validation_alias=AliasChoices("SANDBOX_IMAGE"))
SANDBOX_MEMORY: int = Field(default=512, validation_alias=AliasChoices("SANDBOX_MEMORY"))
SANDBOX_CPU: int = Field(default=1, validation_alias=AliasChoices("SANDBOX_CPU"))
Expand Down Expand Up @@ -124,6 +125,7 @@ class Config:
)

SessionLocal = sessionmaker(autocommit=False, autoflush=False, bind=engine)
StocksSessionLocal = sessionmaker(autocommit=False, autoflush=False, bind=stocksEngine)


def getSession():
Expand All @@ -132,3 +134,11 @@ def getSession():
yield db
finally:
db.close()


def getStocksSession():
db = StocksSessionLocal()
try:
yield db
finally:
db.close()
2 changes: 2 additions & 0 deletions docker-compose.yml
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,7 @@ services:
environment:
- FORGEVM_DATABASE_PATH=/data/forgevm.db
- FORGEVM_LOGGING_LEVEL=info
- FORGEVM_API_TOKEN=${FORGEVM_API_TOKEN:-}

api:
build:
Expand All @@ -52,6 +53,7 @@ services:
environment:
- DEBUG_MODE=TRUE
- TZ=America/Sao_Paulo
- FORGEVM_API_TOKEN=${FORGEVM_API_TOKEN:-}

volumes:
- .:/app
Expand Down
3 changes: 2 additions & 1 deletion forgevm.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,8 @@ defaults:
vcpus: 1

auth:
enabled: false
enabled: true
token: "${FORGEVM_API_TOKEN}"

logging:
level: "info"
Expand Down
53 changes: 51 additions & 2 deletions graphify-out/.graphify_labels.json
Original file line number Diff line number Diff line change
Expand Up @@ -207,9 +207,14 @@
"205": "Community 205",
"206": "Community 206",
"207": "Community 207",
"208": "Community 208",
"209": "Community 209",
"210": "Community 210",
"211": "Community 211",
"212": "Community 212",
"213": "Community 213",
"214": "Community 214",
"215": "Community 215",
"216": "Community 216",
"217": "Community 217",
"218": "Community 218",
Expand Down Expand Up @@ -257,6 +262,7 @@
"260": "Community 260",
"261": "Community 261",
"262": "Community 262",
"263": "Community 263",
"264": "Community 264",
"265": "Community 265",
"266": "Community 266",
Expand Down Expand Up @@ -467,6 +473,7 @@
"471": "Community 471",
"472": "Community 472",
"473": "Community 473",
"474": "Community 474",
"475": "Community 475",
"476": "Community 476",
"477": "Community 477",
Expand All @@ -478,34 +485,76 @@
"483": "Community 483",
"484": "Community 484",
"485": "Community 485",
"486": "Community 486",
"487": "Community 487",
"488": "Community 488",
"489": "Community 489",
"490": "Community 490",
"491": "Community 491",
"492": "Community 492",
"493": "Community 493",
"494": "Community 494",
"495": "Community 495",
"496": "Community 496",
"497": "Community 497",
"498": "Community 498",
"499": "Community 499",
"500": "Community 500",
"501": "Community 501",
"502": "Community 502",
"503": "Community 503",
"504": "Community 504",
"505": "Community 505",
"506": "Community 506",
"507": "Community 507",
"508": "Community 508",
"509": "Community 509",
"510": "Community 510",
"511": "Community 511",
"512": "Community 512",
"513": "Community 513",
"514": "Community 514",
"515": "Community 515",
"516": "Community 516",
"517": "Community 517",
"518": "Community 518",
"519": "Community 519",
"520": "Community 520",
"521": "Community 521",
"522": "Community 522",
"527": "Community 527"
"523": "Community 523",
"524": "Community 524",
"525": "Community 525",
"526": "Community 526",
"527": "Community 527",
"528": "Community 528",
"531": "Community 531",
"532": "Community 532",
"533": "Community 533",
"534": "Community 534",
"536": "Community 536",
"537": "Community 537",
"538": "Community 538",
"540": "Community 540",
"542": "Community 542",
"545": "Community 545",
"546": "Community 546",
"547": "Community 547",
"548": "Community 548",
"549": "Community 549",
"550": "Community 550",
"551": "Community 551",
"552": "Community 552",
"553": "Community 553",
"554": "Community 554",
"555": "Community 555",
"556": "Community 556",
"557": "Community 557",
"558": "Community 558",
"559": "Community 559",
"561": "Community 561",
"562": "Community 562",
"563": "Community 563",
"566": "Community 566",
"567": "Community 567",
"568": "Community 568"
}
Loading
Loading