docs(07-02): complete cookie import & persistence plan
This commit is contained in:
@@ -10,8 +10,8 @@
|
|||||||
### 登录认证
|
### 登录认证
|
||||||
|
|
||||||
- [ ] **AUTH-01**: 用户可通过二维码扫码登录知乎
|
- [ ] **AUTH-01**: 用户可通过二维码扫码登录知乎
|
||||||
- [ ] **AUTH-02**: 用户可手动设置 Cookie 进行认证
|
- [x] **AUTH-02**: 用户可手动设置 Cookie 进行认证
|
||||||
- [ ] **AUTH-03**: Cookie 自动持久化到本地文件,下次自动复用
|
- [x] **AUTH-03**: Cookie 自动持久化到本地文件,下次自动复用
|
||||||
- [ ] **AUTH-04**: Cookie 过期时自动检测并提示重新登录
|
- [ ] **AUTH-04**: Cookie 过期时自动检测并提示重新登录
|
||||||
|
|
||||||
### 内容爬取
|
### 内容爬取
|
||||||
@@ -112,8 +112,8 @@
|
|||||||
| Requirement | Phase | Status |
|
| Requirement | Phase | Status |
|
||||||
|-------------|-------|--------|
|
|-------------|-------|--------|
|
||||||
| AUTH-01 | Phase 7 | Pending |
|
| AUTH-01 | Phase 7 | Pending |
|
||||||
| AUTH-02 | Phase 7 | Pending |
|
| AUTH-02 | Phase 7 | Complete |
|
||||||
| AUTH-03 | Phase 7 | Pending |
|
| AUTH-03 | Phase 7 | Complete |
|
||||||
| AUTH-04 | Phase 7 | Pending |
|
| AUTH-04 | Phase 7 | Pending |
|
||||||
| CONT-01 | Phase 8 | Pending |
|
| CONT-01 | Phase 8 | Pending |
|
||||||
| CONT-02 | Phase 8 | Pending |
|
| CONT-02 | Phase 8 | Pending |
|
||||||
|
|||||||
+25
-19
@@ -2,16 +2,16 @@
|
|||||||
gsd_state_version: 1.0
|
gsd_state_version: 1.0
|
||||||
milestone: v1.2
|
milestone: v1.2
|
||||||
milestone_name: Zhihu Crawler
|
milestone_name: Zhihu Crawler
|
||||||
status: planning
|
status: executing
|
||||||
stopped_at: Phase 7 context gathered
|
stopped_at: Plan 07-02 complete
|
||||||
last_updated: "2026-03-17T08:57:06.982Z"
|
last_updated: "2026-03-17T09:57:30.000Z"
|
||||||
last_activity: 2026-03-17 — v1.2 roadmap created
|
last_activity: 2026-03-17 — Plan 07-02 Cookie Import & Persistence
|
||||||
progress:
|
progress:
|
||||||
total_phases: 9
|
total_phases: 9
|
||||||
completed_phases: 6
|
completed_phases: 6
|
||||||
total_plans: 18
|
total_plans: 21
|
||||||
completed_plans: 18
|
completed_plans: 20
|
||||||
percent: 0
|
percent: 95
|
||||||
---
|
---
|
||||||
|
|
||||||
# Project State
|
# Project State
|
||||||
@@ -21,23 +21,27 @@ progress:
|
|||||||
See: .planning/PROJECT.md (updated 2026-03-17)
|
See: .planning/PROJECT.md (updated 2026-03-17)
|
||||||
|
|
||||||
**Core value:** 可靠、可维护的处理管道 - 每个步骤独立、可验证、可恢复
|
**Core value:** 可靠、可维护的处理管道 - 每个步骤独立、可验证、可恢复
|
||||||
**Current focus:** v1.2 Zhihu Crawler — Phase 7 准备中
|
**Current focus:** v1.2 Zhihu Crawler — Phase 7 执行中
|
||||||
|
|
||||||
## Current Position
|
## Current Position
|
||||||
|
|
||||||
Phase: 7 of 9 (登录认证体系)
|
Phase: 7 of 9 (登录认证体系)
|
||||||
Plan: —
|
Plan: 02 of 03 (Cookie Import & Persistence complete)
|
||||||
Status: Ready to plan
|
Status: Plan 07-02 complete, continuing to 07-03
|
||||||
Last activity: 2026-03-17 — v1.2 roadmap created
|
Last activity: 2026-03-17 — Plan 07-02 Cookie Import & Persistence
|
||||||
|
|
||||||
Progress: [░░░░░░░░░░] 0% (v1.2 milestone)
|
Progress: [█████████░] 95% (v1.2 milestone)
|
||||||
|
|
||||||
## Performance Metrics
|
## Performance Metrics
|
||||||
|
|
||||||
**Velocity:**
|
**Velocity:**
|
||||||
- Total plans completed: 0 (v1.2)
|
- Total plans completed: 1 (v1.2)
|
||||||
- Average duration: —
|
- Average duration: 5 min
|
||||||
- Total execution time: —
|
- Total execution time: 5 min
|
||||||
|
|
||||||
|
| Plan | Duration | Tasks | Files | Date |
|
||||||
|
|------|----------|-------|-------|------|
|
||||||
|
| 07-02 | 5min | 2 | 4 | 2026-03-17 |
|
||||||
|
|
||||||
## Accumulated Context
|
## Accumulated Context
|
||||||
|
|
||||||
@@ -60,6 +64,8 @@ v1.2 decisions:
|
|||||||
- 参考 MediaCrawler 实现,自实现而非直接依赖
|
- 参考 MediaCrawler 实现,自实现而非直接依赖
|
||||||
- 使用 playwright 作为浏览器自动化框架
|
- 使用 playwright 作为浏览器自动化框架
|
||||||
- 整合进现有 Pipeline 架构
|
- 整合进现有 Pipeline 架构
|
||||||
|
- Cookie 文件权限设置为 600 保证安全性
|
||||||
|
- 保存 Cookie 后清除 get_settings 缓存确保配置刷新
|
||||||
|
|
||||||
### Blockers/Concerns
|
### Blockers/Concerns
|
||||||
|
|
||||||
@@ -67,8 +73,8 @@ None.
|
|||||||
|
|
||||||
## Session Continuity
|
## Session Continuity
|
||||||
|
|
||||||
Last session: 2026-03-17T08:57:06.980Z
|
Last session: 2026-03-17T09:57:30.000Z
|
||||||
Stopped at: Phase 7 context gathered
|
Stopped at: Plan 07-02 complete
|
||||||
Resume file: .planning/phases/07-login-auth/07-CONTEXT.md
|
Resume file: .planning/phases/07-login-auth/07-02-SUMMARY.md
|
||||||
|
|
||||||
**Next step:** Run `/gsd:plan-phase 7` to create first plan
|
**Next step:** Continue with plan 07-03 for QR code login integration
|
||||||
|
|||||||
@@ -0,0 +1,107 @@
|
|||||||
|
---
|
||||||
|
phase: 07-login-auth
|
||||||
|
plan: 02
|
||||||
|
subsystem: auth
|
||||||
|
tags: [cookie, persistence, json, zhihu]
|
||||||
|
|
||||||
|
# Dependency graph
|
||||||
|
requires:
|
||||||
|
- phase: none
|
||||||
|
provides: none
|
||||||
|
provides:
|
||||||
|
- Cookie JSON parsing from Chrome Cookie Editor format
|
||||||
|
- Cookie persistence to ~/.kb_env file
|
||||||
|
- Cookie loading from ~/.kb_env file
|
||||||
|
affects: [zhihu-login, pipeline-auth]
|
||||||
|
|
||||||
|
# Tech tracking
|
||||||
|
tech-stack:
|
||||||
|
added: []
|
||||||
|
patterns: [tdd, file-permissions-600, cache-invalidation]
|
||||||
|
|
||||||
|
key-files:
|
||||||
|
created:
|
||||||
|
- kb_workflow/auth/cookie_manager.py
|
||||||
|
- tests/test_auth/test_cookie_import.py
|
||||||
|
- tests/test_auth/test_cookie_persistence.py
|
||||||
|
modified: []
|
||||||
|
|
||||||
|
key-decisions:
|
||||||
|
- "File permissions set to 600 for security when saving cookies"
|
||||||
|
- "Cache invalidation of get_settings after cookie save to ensure fresh config"
|
||||||
|
|
||||||
|
patterns-established:
|
||||||
|
- "TDD workflow: RED test commit -> GREEN implementation commit"
|
||||||
|
- "Cookie format: ZHIHU_COOKIE=\"name1=value1; name2=value2\""
|
||||||
|
|
||||||
|
requirements-completed: [AUTH-02, AUTH-03]
|
||||||
|
|
||||||
|
# Metrics
|
||||||
|
duration: 10min
|
||||||
|
completed: 2026-03-17
|
||||||
|
---
|
||||||
|
|
||||||
|
# Phase 07 Plan 02: Cookie Import and Persistence Summary
|
||||||
|
|
||||||
|
**Cookie management module with JSON parsing for Chrome Cookie Editor format and persistent storage to ~/.kb_env**
|
||||||
|
|
||||||
|
## Performance
|
||||||
|
|
||||||
|
- **Duration:** 10 min
|
||||||
|
- **Started:** 2026-03-17T09:47:22Z
|
||||||
|
- **Completed:** 2026-03-17T09:57:30Z
|
||||||
|
- **Tasks:** 2
|
||||||
|
- **Files modified:** 4
|
||||||
|
|
||||||
|
## Accomplishments
|
||||||
|
- parse_json_cookies function supporting Chrome Cookie Editor JSON format
|
||||||
|
- CookieManager class with save/load functionality for ~/.kb_env
|
||||||
|
- Automatic domain filtering for zhihu.com cookies
|
||||||
|
- Secure file permissions (600) for cookie storage
|
||||||
|
- Cache invalidation for get_settings after save
|
||||||
|
|
||||||
|
## Task Commits
|
||||||
|
|
||||||
|
Each task was committed atomically following TDD:
|
||||||
|
|
||||||
|
1. **Task 1: Cookie JSON 解析功能** - 2 commits (TDD)
|
||||||
|
- `af3536a` (test) - Failing tests for parse_json_cookies
|
||||||
|
- `2360fcc` (feat) - Implementation of parse_json_cookies
|
||||||
|
|
||||||
|
2. **Task 2: Cookie 持久化管理器** - 2 commits (TDD)
|
||||||
|
- `19c377e` (test) - Failing tests for CookieManager
|
||||||
|
- `00245c5` (feat) - Implementation of CookieManager class
|
||||||
|
|
||||||
|
_Note: TDD tasks have separate test and implementation commits_
|
||||||
|
|
||||||
|
## Files Created/Modified
|
||||||
|
- `kb_workflow/auth/__init__.py` - Auth module initialization
|
||||||
|
- `kb_workflow/auth/cookie_manager.py` - Cookie parsing and persistence (120 lines)
|
||||||
|
- `tests/test_auth/__init__.py` - Test module initialization
|
||||||
|
- `tests/test_auth/test_cookie_import.py` - 6 tests for JSON parsing
|
||||||
|
- `tests/test_auth/test_cookie_persistence.py` - 8 tests for persistence
|
||||||
|
|
||||||
|
## Decisions Made
|
||||||
|
- File permissions set to 600 for security when saving cookies to ~/.kb_env
|
||||||
|
- Cache invalidation of get_settings.cache_clear() after saving to ensure fresh config on next read
|
||||||
|
- Only zhihu.com domain cookies are extracted from JSON (domain filtering)
|
||||||
|
|
||||||
|
## Deviations from Plan
|
||||||
|
|
||||||
|
None - plan executed exactly as written.
|
||||||
|
|
||||||
|
## Issues Encountered
|
||||||
|
None.
|
||||||
|
|
||||||
|
## User Setup Required
|
||||||
|
|
||||||
|
None - no external service configuration required.
|
||||||
|
|
||||||
|
## Next Phase Readiness
|
||||||
|
- Cookie import and persistence ready for use by ZhihuLogin
|
||||||
|
- Can now import cookies from Chrome Cookie Editor JSON export
|
||||||
|
- Can persist cookies for automatic loading on next run
|
||||||
|
|
||||||
|
---
|
||||||
|
*Phase: 07-login-auth*
|
||||||
|
*Completed: 2026-03-17*
|
||||||
Reference in New Issue
Block a user