Project page lacks a timeline of all posts related to the project. Add a "Devlog" tab that lists posts in reverse chronological order.
Steps to Reproduce
Not provided.
Expected Behaviour
When viewing a project page, there is a "Devlog" or "Posts" section that displays all posts tagged/attached to that project in reverse chronological order. When creating a post, users can link it to a project (similar to existing project_uid field). Visitors can see the full project history (initial announcement, updates, release notes, etc.).
Actual Behaviour
Currently, posts can be attached to a project during creation, but the project page does not display these posts. Users must manually search for posts related to the project.
Environment
Not provided.
Reported by blindxfish via DevPlace.
Acceptance criteria
The ticket objective is satisfied: Add devlog timeline of related posts to project page
Commits
Commit
Summary
Node
2d72e0785ded
test(sveta): Write tests for devlog timeline
a6579fc028b8
dbe1e2670b94
feat(nadia): Add devlog section to project detail template
7bfee38d7ded
fda72c5afb99
feat(nadia): Add devlog route logic and schema update
8c955653b126
6b3df26a52e3
feat(nadia): Add database index and devlog query helper
17f01a1e325e
Run
Cost: 0.1040 USD · Nodes: 8 · Verification: make test
## What was built
## Summary
Project page lacks a timeline of all posts related to the project. Add a "Devlog" tab that lists posts in reverse chronological order.
## Steps to Reproduce
Not provided.
## Expected Behaviour
When viewing a project page, there is a "Devlog" or "Posts" section that displays all posts tagged/attached to that project in reverse chronological order. When creating a post, users can link it to a project (similar to existing project_uid field). Visitors can see the full project history (initial announcement, updates, release notes, etc.).
## Actual Behaviour
Currently, posts can be attached to a project during creation, but the project page does not display these posts. Users must manually search for posts related to the project.
## Environment
Not provided.
---
*Reported by **blindxfish** via DevPlace.*
## Acceptance criteria
- The ticket objective is satisfied: Add devlog timeline of related posts to project page
## Commits
| Commit | Summary | Node |
|---|---|---|
| `2d72e0785ded` | test(sveta): Write tests for devlog timeline | `a6579fc028b8` |
| `dbe1e2670b94` | feat(nadia): Add devlog section to project detail template | `7bfee38d7ded` |
| `fda72c5afb99` | feat(nadia): Add devlog route logic and schema update | `8c955653b126` |
| `6b3df26a52e3` | feat(nadia): Add database index and devlog query helper | `17f01a1e325e` |
## Run
Cost: 0.1040 USD · Nodes: 8 · Verification: make test
Closes #135
Outcome: done
Changed: devplacepy/database/schema.py:45, devplacepy/database/engagement.py:3-5,194-210, devplacepy/database/__init__.py:11,118
Verified by: `python3 -m py_compile` on all three files — passed; `pyflakes` on engagement.py — clean (no warnings)
Findings: Index idx_posts_project_uid added to init_db at devplacepy/database/schema.py:45 (CREATE INDEX IF NOT EXISTS on posts.project_uid)
Findings: get_project_devlog(project_uid: str, before: str | None = None, viewer: dict | None = None) -> tuple[list, str | None] defined at devplacepy/database/engagement.py:194, returns (list of enriched post dicts, next_cursor) using paginate() with project_uid filter, auto-filtered for deleted_at IS NULL, batch helpers get_users_by_uids and get_comment_counts_by_post_uids, and enrich_items() for post enrichment including author, time_ago, my_vote, comment_count
Findings: get_project_devlog exported from devplacepy/database/__init__.py via import (line 11) and __all__ (line 118)
Open: None
Confidence: high - all acceptance criteria met, syntax verified, no warnings introduced
Typosaurus-Run: 45c0aee6df2649ffaa248729bdfd5841
Typosaurus-Node: 17f01a1e325e40ecb73ffe423f78c4a9
Typosaurus-Agent: @nadia
Refs: #135
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
What was built
Summary
Project page lacks a timeline of all posts related to the project. Add a "Devlog" tab that lists posts in reverse chronological order.
Steps to Reproduce
Not provided.
Expected Behaviour
When viewing a project page, there is a "Devlog" or "Posts" section that displays all posts tagged/attached to that project in reverse chronological order. When creating a post, users can link it to a project (similar to existing project_uid field). Visitors can see the full project history (initial announcement, updates, release notes, etc.).
Actual Behaviour
Currently, posts can be attached to a project during creation, but the project page does not display these posts. Users must manually search for posts related to the project.
Environment
Not provided.
Reported by blindxfish via DevPlace.
Acceptance criteria
Commits
2d72e0785deda6579fc028b8dbe1e2670b947bfee38d7dedfda72c5afb998c955653b1266b3df26a52e317f01a1e325eRun
Cost: 0.1040 USD · Nodes: 8 · Verification: make test
Closes #135
```yaml Outcome: done Changed: devplacepy/templates/project_detail.html:116-128, devplacepy/static/css/projects.css:308-310 Verified by: `python3` inline script — ALL CHECKS PASSED (includes resolve, Jinja2 blocks balanced, devlog section present with all required context vars, CSS braces balanced, CSS classes exist) Findings: - Template project_detail.html:116-127 — Devlog section renders posts via `_post_card.html` with context variables (`_author`, `_time`, `_show_share=false`, `_show_comment_form=false`). - Template project_detail.html:123 — Pagination reuses `_load_more.html` via `{% set next_cursor = devlog_next_cursor %}{% include "_load_more.html" %}`. - Template project_detail.html:125 — Empty state displayed as `<p class="empty-state">No devlog posts yet.</p>` when `devlog_posts` is falsy. - CSS projects.css:308-310 — `.project-devlog` rule provides `margin-top: 1.5rem` separation from project detail article. - CSS projects.css:312-319 — `.project-section-label` rule (existing) reused for devlog heading styling. - No new CSS file reference added — `projects.css` and `post.css` were already loaded in the template `extra_head`. - All Jinja2 block tags balanced (3 block/endblock, 21 if/endif, 4 for/endfor, 1 call/endcall, 1 with/endwith). - All 9 `{% include %}` paths resolve to existing template files. - Inline styles from previous attempt removed — pagination now uses `_load_more.html` exclusively. Open: none Confidence: high — all 6 acceptance crit Typosaurus-Run: 45c0aee6df2649ffaa248729bdfd5841 Typosaurus-Node: 7bfee38d7ded4822a374ef066bcf85aa Typosaurus-Agent: @nadia Refs: #135