feat: show publication card on master's degree hover (ISSTA 2021)
Build & Push Portfolio Image / build-push (push) Successful in 3m46s

This commit is contained in:
Story Crater Bot
2026-09-02 11:56:08 -07:00
parent 2defd4d074
commit 0a599ee9b3
2 changed files with 56 additions and 2 deletions
+20
View File
@@ -207,6 +207,26 @@ export default function Header() {
<h3 className="font-semibold text-gray-900 dark:text-white">{t.header.educationDetails.master.school}</h3>
<p className="text-sm text-gray-600 dark:text-gray-400 mt-1">{t.header.educationDetails.master.degree}</p>
<p className="text-xs text-gray-500 dark:text-gray-500 mt-2">{t.header.educationDetails.master.period}</p>
{(t.header.educationDetails.master as { publication?: { title: string; venue: string; url: string } }).publication && (
<a
href={(t.header.educationDetails.master as { publication: { url: string } }).publication.url}
target="_blank"
rel="noopener noreferrer"
className="mt-3 block p-3 rounded-lg border border-blue-200 dark:border-blue-800 bg-blue-50 dark:bg-blue-950 hover:border-blue-400 dark:hover:border-blue-600 transition-colors"
>
<div className="flex items-start gap-2">
<span className="text-blue-500 mt-0.5">📄</span>
<div>
<p className="text-xs font-semibold text-blue-700 dark:text-blue-300">
{(t.header.educationDetails.master as { publication: { title: string } }).publication.title}
</p>
<p className="text-xs text-blue-500 dark:text-blue-400 mt-1">
{(t.header.educationDetails.master as { publication: { venue: string } }).publication.venue}
</p>
</div>
</div>
</a>
)}
</div>
</div>
)}
+36 -2
View File
@@ -22,7 +22,12 @@
"master": {
"school": "University of Ottawa",
"degree": "Master's degree, Computer Science",
"period": "Sep 2019 Nov 2021"
"period": "Sep 2019 Nov 2021",
"publication": {
"title": "Automated Repair of Layout Cross Browser Issues Using Search-Based Techniques",
"venue": "ISSTA 2021",
"url": "https://dl.acm.org/doi/10.1145/3460319.3464816"
}
}
},
"contact": {
@@ -159,6 +164,18 @@
"description": "Distributed DataLakeHouse framework written in Go.",
"longDescription": "Fault-tolerant data pipelines with streaming semantics and efficient processing.",
"stat": "Public repository, active"
},
{
"title": "Poimen Memory System",
"description": "Distributed Graph-RAG infrastructure with hierarchical RBAC and wiki-link indexing.",
"longDescription": "Three-tier context retrieval pipeline with PageRank-style link scoring, hybrid search fusion (HNSW + BM25), and OIDC-based access control for multi-tenant knowledge graphs.",
"stat": "Graph-RAG, pgvector, OpenSearch, Rust + Actix-web",
"highlight": "Bidirectional wiki-link indexing with RRF fusion + hierarchical RBAC — 50ms signature match tier, graph-boosted hybrid search tier, Obsidian fallback.",
"bullets": [
"Graph-RAG with Wiki-Link Indexing (Rust, pgvector, OpenSearch): Built bidirectional link graph from [[wiki-link]] syntax during ingestion. PageRank-style score propagation boosts linked documents' relevance. RRF fusion merges HNSW cosine (pgvector) + BM25 lexical (OpenSearch). WikiScopedFilter constrains traversal to project boundaries.",
"Three-Tier Context Retrieval (Actix-web, tokio): Async pipeline — Tier 1: MD5 signature match (<50ms), Tier 2: graph-boosted hybrid search with link-distance decay, Tier 3: Obsidian API fallback. Budget-aware assembly drops lower tiers first. Shingle-based Jaccard deduplication (>0.5) prevents redundant chunks.",
"Hierarchical RBAC (Authentik OIDC, JWT, Kubernetes): Role → AccessRule[] → AccessScope model with project/visibility/owner/group constraints. JWT roles claim maps to YAML rules; AccessGuard.filter_resources() applies post-retrieval filtering. Dual-write indexer (eventual consistency via queue) maintains RBAC-aware views. SOPS/age encryption, ArgoCD deployment."
]
}
]
},
@@ -232,7 +249,12 @@
"master": {
"school": "渥太华大学",
"degree": "计算机科学硕士",
"period": "2019年9月 2021年11月"
"period": "2019年9月 2021年11月",
"publication": {
"title": "Automated Repair of Layout Cross Browser Issues Using Search-Based Techniques",
"venue": "ISSTA 2021",
"url": "https://dl.acm.org/doi/10.1145/3460319.3464816"
}
}
},
"contact": {
@@ -369,6 +391,18 @@
"description": "用Go编写的分布式数据湖仓库框架。",
"longDescription": "具有流语义和高效处理的容错数据管道。",
"stat": "公开仓库,活跃中"
},
{
"title": "Poimen记忆系统",
"description": "具有分层RBAC的分布式图RAG基础设施和维基链接索引。",
"longDescription": "三层上下文检索管道,支持PageRank风格的链接评分、混合搜索融合(HNSW + BM25)和基于OIDC的多租户知识图访问控制。",
"stat": "图-RAG, pgvector, OpenSearch, Rust + Actix-web",
"highlight": "双向维基链接索引配RRF融合 + 分层RBAC——50ms签名匹配层、图增强混合搜索层、Obsidian兜底。",
"bullets": [
"图-RAG维基链接索引化(Rust、pgvector、OpenSearch):从[[维基链接]]语法构建双向链接图。PageRank风格评分传播提升链接文档的相关性。RRF融合合并HNSW余弦相似度(pgvector+ BM25词汇排名(OpenSearch)。WikiScopedFilter将遍历限制在项目边界内。",
"三层上下文检索(Actix-web, tokio):异步管道——第1层:MD5签名匹配(<50ms),第2层:图增强混合搜索含链接距离衰减,第3层:Obsidian API兜底。预算感知的响应组装优先丢弃低优先层。基于瓦片的Jaccard去重(>0.5)防止冗余块。",
"分层RBACAuthentik OIDC、JWT、Kubernetes):角色→AccessRule[]→AccessScope模型,包含项目/可见性/所有者/组约束。JWT角色声明映射到YAML规则;AccessGuard.filter_resources()应用检索后过滤。双写索引器(通过队列保证最终一致性)维护RBAC感知视图。SOPS/age加密,ArgoCD部署。"
]
}
]
},